From 6022e4c70b6deac04fda9e2e42a3fcdafbbd7722 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 25 Apr 2024 15:27:55 +0000 Subject: [PATCH] Deployed 1d100b5f8 to head with MkDocs 1.6.0 and mike 2.0.0 --- head/404.html | 3285 +++++ head/SUMMARY/index.html | 3362 +++++ .../blockchain_connector_framework.html | 622 - .../blockchain_connector_framework/index.html | 3910 +++++ head/architecture/index.html | 335 - .../internal_event_sequencing.html | 447 - .../internal_event_sequencing/index.html | 3597 +++++ .../multiparty_event_sequencing.html | 389 - .../multiparty_event_sequencing/index.html | 3506 +++++ .../node_component_architecture.html | 429 - .../node_component_architecture/index.html | 3526 +++++ head/architecture/ping_pong_txflow.html | 461 - head/architecture/ping_pong_txflow/index.html | 3556 +++++ head/architecture/plugin_architecture.html | 466 - .../plugin_architecture/index.html | 3570 +++++ head/{ => assets}/FireFly-Logo.svg | 0 head/assets/FireFly_Logo_White.svg | 1 + head/assets/css/just-the-docs-dark.css | 2258 --- head/assets/css/just-the-docs-default.css | 2260 --- head/assets/css/just-the-docs-light.css | 2258 --- head/assets/css/style.css | 2883 ---- head/{ => assets}/favicon.ico | Bin head/assets/images/favicon.png | Bin 0 -> 1870 bytes head/assets/images/search.svg | 1 - .../assets/javascripts/bundle.dd8806f2.min.js | 29 + .../javascripts/bundle.dd8806f2.min.js.map | 7 + .../javascripts/lunr/min/lunr.ar.min.js | 1 + .../javascripts/lunr/min/lunr.da.min.js | 18 + .../javascripts/lunr/min/lunr.de.min.js | 18 + .../javascripts/lunr/min/lunr.du.min.js | 18 + .../javascripts/lunr/min/lunr.el.min.js | 1 + .../javascripts/lunr/min/lunr.es.min.js | 18 + .../javascripts/lunr/min/lunr.fi.min.js | 18 + .../javascripts/lunr/min/lunr.fr.min.js | 18 + .../javascripts/lunr/min/lunr.he.min.js | 1 + .../javascripts/lunr/min/lunr.hi.min.js | 1 + .../javascripts/lunr/min/lunr.hu.min.js | 18 + .../javascripts/lunr/min/lunr.hy.min.js | 1 + .../javascripts/lunr/min/lunr.it.min.js | 18 + .../javascripts/lunr/min/lunr.ja.min.js | 1 + .../javascripts/lunr/min/lunr.jp.min.js | 1 + .../javascripts/lunr/min/lunr.kn.min.js | 1 + .../javascripts/lunr/min/lunr.ko.min.js | 1 + .../javascripts/lunr/min/lunr.multi.min.js | 1 + .../javascripts/lunr/min/lunr.nl.min.js | 18 + .../javascripts/lunr/min/lunr.no.min.js | 18 + .../javascripts/lunr/min/lunr.pt.min.js | 18 + .../javascripts/lunr/min/lunr.ro.min.js | 18 + .../javascripts/lunr/min/lunr.ru.min.js | 18 + .../javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + .../javascripts/lunr/min/lunr.sv.min.js | 18 + .../javascripts/lunr/min/lunr.ta.min.js | 1 + .../javascripts/lunr/min/lunr.te.min.js | 1 + .../javascripts/lunr/min/lunr.th.min.js | 1 + .../javascripts/lunr/min/lunr.tr.min.js | 18 + .../javascripts/lunr/min/lunr.vi.min.js | 1 + .../javascripts/lunr/min/lunr.zh.min.js | 1 + head/assets/javascripts/lunr/tinyseg.js | 206 + head/assets/javascripts/lunr/wordcut.js | 6708 +++++++++ .../workers/search.b8dbb3d2.min.js | 42 + .../workers/search.b8dbb3d2.min.js.map | 7 + head/assets/js/just-the-docs.js | 445 - head/assets/js/search-data.json | 5222 ------- head/assets/js/vendor/lunr.min.js | 6 - head/assets/js/versions.js | 20 - head/assets/js/versions.json | 3 - head/assets/project-icon.png | Bin 0 -> 16206 bytes head/assets/project-logo.png | Bin 0 -> 3770 bytes head/assets/stylesheets/main.66ac8b77.min.css | 1 + .../stylesheets/main.66ac8b77.min.css.map | 1 + .../stylesheets/palette.06af60db.min.css | 1 + .../stylesheets/palette.06af60db.min.css.map | 1 + head/config_docs_generate_test.go | 67 - head/config_docs_test.go | 70 - head/contributors/advanced_cli_usage.html | 502 - .../advanced_cli_usage/index.html | 3695 +++++ head/contributors/code_hierarchy.html | 580 - head/contributors/code_hierarchy/index.html | 3625 +++++ head/contributors/code_overview.html | 398 - head/contributors/code_overview/index.html | 3463 +++++ head/contributors/code_repositories.html | 344 - .../contributors/code_repositories/index.html | 3379 +++++ head/contributors/dev_environment_setup.html | 501 - .../dev_environment_setup/index.html | 3672 +++++ head/contributors/docs_setup.html | 426 - head/contributors/docs_setup/index.html | 3665 +++++ head/contributors/index.html | 3894 ++++- head/contributors/release_guide.html | 436 - head/contributors/release_guide/index.html | 3590 +++++ head/contributors/version_scheme.html | 374 - head/contributors/version_scheme/index.html | 3477 +++++ head/faqs/index.html | 3705 ++++- head/firefly_logo.png | Bin 20131 -> 0 bytes head/firefly_logo_36h.png | Bin 4234 -> 0 bytes head/gettingstarted/firefly_cli.html | 470 - head/gettingstarted/firefly_cli/index.html | 3653 +++++ head/gettingstarted/index.html | 3636 ++++- head/gettingstarted/sandbox.html | 546 - head/gettingstarted/sandbox/index.html | 3790 +++++ head/gettingstarted/setup_env.html | 511 - head/gettingstarted/setup_env/index.html | 3649 +++++ head/images/account_address.png | Bin 0 -> 713596 bytes head/images/add_network.png | Bin 0 -> 638290 bytes head/images/contract_address.png | Bin 0 -> 722727 bytes head/images/import_tokens.png | Bin 0 -> 527885 bytes head/images/launch_config.png | Bin head/images/network_details.png | Bin 0 -> 817198 bytes head/images/nft_contract_address.png | Bin 0 -> 729238 bytes head/images/nft_token_balance.png | Bin 0 -> 658549 bytes head/images/send_tokens.png | Bin 0 -> 723442 bytes head/images/settings.png | Bin 0 -> 594251 bytes head/images/tokens_received.png | Bin 0 -> 662051 bytes head/index.html | 3643 ++++- head/overview/gateway_features.html | 490 - head/overview/gateway_features/index.html | 3596 +++++ head/overview/index.html | 332 - head/overview/key_components/apps.html | 421 - head/overview/key_components/apps/index.html | 3546 +++++ head/overview/key_components/connectors.html | 375 - .../key_components/connectors/index.html | 3486 +++++ .../key_components/digital_assets.html | 407 - .../key_components/digital_assets/index.html | 3536 +++++ head/overview/key_components/flows.html | 436 - head/overview/key_components/flows/index.html | 3569 +++++ head/overview/key_components/index.html | 3358 +++++ .../key_components/orchestration_engine.html | 382 - .../orchestration_engine/index.html | 3492 +++++ head/overview/key_components/security.html | 387 - .../key_components/security/index.html | 3494 +++++ head/overview/key_components/tools.html | 357 - head/overview/key_components/tools/index.html | 3471 +++++ head/overview/key_features.html | 351 - head/overview/multiparty/broadcast.html | 418 - head/overview/multiparty/broadcast/index.html | 3526 +++++ head/overview/multiparty/data_exchange.html | 418 - .../multiparty/data_exchange/index.html | 3514 +++++ head/overview/multiparty/deterministic.html | 470 - .../multiparty/deterministic/index.html | 3566 +++++ head/overview/multiparty/index.html | 3435 +++++ head/overview/multiparty/multiparty_flow.html | 521 - .../multiparty/multiparty_flow/index.html | 3653 +++++ head/overview/multiparty_features.html | 427 - head/overview/public_vs_permissioned.html | 484 - .../public_vs_permissioned/index.html | 3564 +++++ head/overview/supernode_concept.html | 382 - head/overview/supernode_concept/index.html | 3473 +++++ head/overview/usage_patterns.html | 396 - head/overview/usage_patterns/index.html | 3476 +++++ head/reference/api_post_syntax.html | 355 - head/reference/api_post_syntax/index.html | 3447 +++++ head/reference/api_query_syntax.html | 576 - head/reference/api_query_syntax/index.html | 3706 +++++ .../blockchain_operation_errors.html | 486 - .../blockchain_operation_status.html | 701 - .../blockchain_operation_status/index.html | 3878 +++++ head/reference/config.html | 7337 ---------- head/reference/config/index.html | 11969 ++++++++++++++++ head/reference/events.html | 693 - head/reference/events/index.html | 3840 +++++ head/reference/firefly_interface_format.html | 569 - .../firefly_interface_format/index.html | 3716 +++++ head/reference/idempotency.html | 443 - head/reference/idempotency/index.html | 3552 +++++ head/reference/identities.html | 508 - head/reference/identities/index.html | 3688 +++++ head/reference/index.html | 363 - head/reference/microservices/fftokens.html | 1499 -- .../microservices/fftokens/index.html | 4819 +++++++ head/reference/microservices/index.html | 316 - head/reference/namespaces.html | 547 - head/reference/namespaces/index.html | 3704 +++++ head/reference/tls.html | 402 - head/reference/tls/index.html | 3517 +++++ head/reference/types/batch.html | 521 - head/reference/types/batch/index.html | 3622 +++++ head/reference/types/blockchainevent.html | 530 - .../types/blockchainevent/index.html | 3628 +++++ head/reference/types/contractapi.html | 601 - head/reference/types/contractapi/index.html | 3731 +++++ head/reference/types/contractlistener.html | 599 - .../types/contractlistener/index.html | 3721 +++++ head/reference/types/data.html | 600 - head/reference/types/data/index.html | 3722 +++++ head/reference/types/dataref.html | 383 - head/reference/types/datatype.html | 454 - head/reference/types/datatype/index.html | 3538 +++++ head/reference/types/event.html | 677 - head/reference/types/event/index.html | 3805 +++++ head/reference/types/ffi.html | 801 -- head/reference/types/ffi/index.html | 3942 +++++ head/reference/types/group.html | 558 - head/reference/types/group/index.html | 3643 +++++ head/reference/types/identity.html | 529 - head/reference/types/identity/index.html | 3626 +++++ head/reference/types/index.html | 412 - head/reference/types/message.html | 784 - head/reference/types/message/index.html | 3896 +++++ head/reference/types/namespace.html | 403 - head/reference/types/namespace/index.html | 3489 +++++ head/reference/types/nextpin.html | 411 - head/reference/types/nextpin/index.html | 3496 +++++ head/reference/types/operation.html | 470 - head/reference/types/operation/index.html | 3563 +++++ head/reference/types/operationwithdetail.html | 544 - .../types/operationwithdetail/index.html | 3631 +++++ head/reference/types/simpletypes.html | 402 - head/reference/types/simpletypes/index.html | 3532 +++++ head/reference/types/subscription.html | 1171 -- head/reference/types/subscription/index.html | 4259 ++++++ head/reference/types/tokenapproval.html | 528 - head/reference/types/tokenapproval/index.html | 3620 +++++ head/reference/types/tokenpool.html | 601 - head/reference/types/tokenpool/index.html | 3711 +++++ head/reference/types/tokentransfer.html | 589 - head/reference/types/tokentransfer/index.html | 3703 +++++ head/reference/types/transaction.html | 445 - head/reference/types/transaction/index.html | 3525 +++++ head/reference/types/verifier.html | 421 - head/reference/types/verifier/index.html | 3505 +++++ head/reference/types/wsack.html | 446 - head/reference/types/wsack/index.html | 3537 +++++ head/reference/types/wserror.html | 383 - head/reference/types/wserror/index.html | 3472 +++++ head/reference/types/wsstart.html | 840 -- head/reference/types/wsstart/index.html | 3997 ++++++ head/releasenotes/1.1_migration_guide.html | 568 - .../1.1_migration_guide/index.html | 3691 +++++ head/releasenotes/1.2_migration_guide.html | 655 - .../1.2_migration_guide/index.html | 3816 +++++ head/releasenotes/index.html | 3936 ++++- head/search/search_index.json | 1 + head/sitemap.xml | 3 + head/sitemap.xml.gz | Bin 0 -> 127 bytes head/stylesheets/extra.css | 3 + head/swagger/index.html | 3396 +++++ head/swagger/swagger.html | 346 - head/tutorials/basic_auth.html | 579 - head/tutorials/basic_auth/index.html | 3768 +++++ head/tutorials/broadcast_data.html | 644 - head/tutorials/broadcast_data/index.html | 3795 +++++ head/tutorials/chains/arbitrum.html | 471 - head/tutorials/chains/arbitrum/index.html | 3606 +++++ head/tutorials/chains/avalanche.html | 472 - head/tutorials/chains/avalanche/index.html | 3606 +++++ .../tutorials/chains/binance_smart_chain.html | 471 - .../chains/binance_smart_chain/index.html | 3606 +++++ .../tutorials/chains/fabric_test_network.html | 719 - .../chains/fabric_test_network/index.html | 3918 +++++ head/tutorials/chains/index.html | 3605 ++++- head/tutorials/chains/moonbeam.html | 471 - head/tutorials/chains/moonbeam/index.html | 3606 +++++ head/tutorials/chains/optimism.html | 460 - head/tutorials/chains/optimism/index.html | 3605 +++++ head/tutorials/chains/polygon_testnet.html | 472 - .../chains/polygon_testnet/index.html | 3607 +++++ head/tutorials/chains/tezos_testnet.html | 456 - .../tutorials/chains/tezos_testnet/index.html | 3602 +++++ head/tutorials/chains/zksync_testnet.html | 464 - .../chains/zksync_testnet/index.html | 3609 +++++ head/tutorials/create_custom_identity.html | 563 - .../create_custom_identity/index.html | 3784 +++++ head/tutorials/custom_contracts/ethereum.html | 1651 --- .../custom_contracts/ethereum/index.html | 5145 +++++++ head/tutorials/custom_contracts/fabric.html | 1286 -- .../custom_contracts/fabric/index.html | 4694 ++++++ head/tutorials/custom_contracts/index.html | 3696 ++++- head/tutorials/custom_contracts/pinning.html | 510 - .../custom_contracts/pinning/index.html | 3644 +++++ head/tutorials/custom_contracts/tezos.html | 1524 -- .../custom_contracts/tezos/index.html | 4755 ++++++ head/tutorials/define_datatype.html | 565 - head/tutorials/define_datatype/index.html | 3706 +++++ head/tutorials/events.html | 576 - head/tutorials/events/index.html | 3734 +++++ head/tutorials/index.html | 352 - head/tutorials/private_send.html | 723 - head/tutorials/private_send/index.html | 3879 +++++ head/tutorials/query_messages.html | 464 - head/tutorials/query_messages/index.html | 3596 +++++ head/tutorials/rotate_dx_certs.html | 550 - head/tutorials/rotate_dx_certs/index.html | 3706 +++++ head/tutorials/tokens/erc1155.html | 644 - head/tutorials/tokens/erc1155/index.html | 3826 +++++ head/tutorials/tokens/erc20.html | 890 -- head/tutorials/tokens/erc20/index.html | 4050 ++++++ head/tutorials/tokens/erc721.html | 897 -- head/tutorials/tokens/erc721/index.html | 4059 ++++++ head/tutorials/tokens/index.html | 3669 ++++- head/versions.json | 0 versions.json | 5 + 291 files changed, 407694 insertions(+), 82202 deletions(-) create mode 100644 head/404.html create mode 100644 head/SUMMARY/index.html delete mode 100644 head/architecture/blockchain_connector_framework.html create mode 100644 head/architecture/blockchain_connector_framework/index.html delete mode 100644 head/architecture/index.html delete mode 100644 head/architecture/internal_event_sequencing.html create mode 100644 head/architecture/internal_event_sequencing/index.html delete mode 100644 head/architecture/multiparty_event_sequencing.html create mode 100644 head/architecture/multiparty_event_sequencing/index.html delete mode 100644 head/architecture/node_component_architecture.html create mode 100644 head/architecture/node_component_architecture/index.html delete mode 100644 head/architecture/ping_pong_txflow.html create mode 100644 head/architecture/ping_pong_txflow/index.html delete mode 100644 head/architecture/plugin_architecture.html create mode 100644 head/architecture/plugin_architecture/index.html rename head/{ => assets}/FireFly-Logo.svg (100%) create mode 100644 head/assets/FireFly_Logo_White.svg delete mode 100644 head/assets/css/just-the-docs-dark.css delete mode 100644 head/assets/css/just-the-docs-default.css delete mode 100644 head/assets/css/just-the-docs-light.css delete mode 100644 head/assets/css/style.css rename head/{ => assets}/favicon.ico (100%) create mode 100644 head/assets/images/favicon.png delete mode 100644 head/assets/images/search.svg create mode 100644 head/assets/javascripts/bundle.dd8806f2.min.js create mode 100644 head/assets/javascripts/bundle.dd8806f2.min.js.map create mode 100644 head/assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 head/assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 head/assets/javascripts/lunr/tinyseg.js create mode 100644 head/assets/javascripts/lunr/wordcut.js create mode 100644 head/assets/javascripts/workers/search.b8dbb3d2.min.js create mode 100644 head/assets/javascripts/workers/search.b8dbb3d2.min.js.map delete mode 100644 head/assets/js/just-the-docs.js delete mode 100644 head/assets/js/search-data.json delete mode 100644 head/assets/js/vendor/lunr.min.js delete mode 100644 head/assets/js/versions.js delete mode 100644 head/assets/js/versions.json create mode 100644 head/assets/project-icon.png create mode 100644 head/assets/project-logo.png create mode 100644 head/assets/stylesheets/main.66ac8b77.min.css create mode 100644 head/assets/stylesheets/main.66ac8b77.min.css.map create mode 100644 head/assets/stylesheets/palette.06af60db.min.css create mode 100644 head/assets/stylesheets/palette.06af60db.min.css.map delete mode 100644 head/config_docs_generate_test.go delete mode 100644 head/config_docs_test.go delete mode 100644 head/contributors/advanced_cli_usage.html create mode 100644 head/contributors/advanced_cli_usage/index.html delete mode 100644 head/contributors/code_hierarchy.html create mode 100644 head/contributors/code_hierarchy/index.html delete mode 100644 head/contributors/code_overview.html create mode 100644 head/contributors/code_overview/index.html delete mode 100644 head/contributors/code_repositories.html create mode 100644 head/contributors/code_repositories/index.html delete mode 100644 head/contributors/dev_environment_setup.html create mode 100644 head/contributors/dev_environment_setup/index.html delete mode 100644 head/contributors/docs_setup.html create mode 100644 head/contributors/docs_setup/index.html delete mode 100644 head/contributors/release_guide.html create mode 100644 head/contributors/release_guide/index.html delete mode 100644 head/contributors/version_scheme.html create mode 100644 head/contributors/version_scheme/index.html delete mode 100644 head/firefly_logo.png delete mode 100644 head/firefly_logo_36h.png delete mode 100644 head/gettingstarted/firefly_cli.html create mode 100644 head/gettingstarted/firefly_cli/index.html delete mode 100644 head/gettingstarted/sandbox.html create mode 100644 head/gettingstarted/sandbox/index.html delete mode 100644 head/gettingstarted/setup_env.html create mode 100644 head/gettingstarted/setup_env/index.html create mode 100644 head/images/account_address.png create mode 100644 head/images/add_network.png create mode 100644 head/images/contract_address.png create mode 100644 head/images/import_tokens.png mode change 100755 => 100644 head/images/launch_config.png create mode 100644 head/images/network_details.png create mode 100644 head/images/nft_contract_address.png create mode 100644 head/images/nft_token_balance.png create mode 100644 head/images/send_tokens.png create mode 100644 head/images/settings.png create mode 100644 head/images/tokens_received.png delete mode 100644 head/overview/gateway_features.html create mode 100644 head/overview/gateway_features/index.html delete mode 100644 head/overview/index.html delete mode 100644 head/overview/key_components/apps.html create mode 100644 head/overview/key_components/apps/index.html delete mode 100644 head/overview/key_components/connectors.html create mode 100644 head/overview/key_components/connectors/index.html delete mode 100644 head/overview/key_components/digital_assets.html create mode 100644 head/overview/key_components/digital_assets/index.html delete mode 100644 head/overview/key_components/flows.html create mode 100644 head/overview/key_components/flows/index.html create mode 100644 head/overview/key_components/index.html delete mode 100644 head/overview/key_components/orchestration_engine.html create mode 100644 head/overview/key_components/orchestration_engine/index.html delete mode 100644 head/overview/key_components/security.html create mode 100644 head/overview/key_components/security/index.html delete mode 100644 head/overview/key_components/tools.html create mode 100644 head/overview/key_components/tools/index.html delete mode 100644 head/overview/key_features.html delete mode 100644 head/overview/multiparty/broadcast.html create mode 100644 head/overview/multiparty/broadcast/index.html delete mode 100644 head/overview/multiparty/data_exchange.html create mode 100644 head/overview/multiparty/data_exchange/index.html delete mode 100644 head/overview/multiparty/deterministic.html create mode 100644 head/overview/multiparty/deterministic/index.html create mode 100644 head/overview/multiparty/index.html delete mode 100644 head/overview/multiparty/multiparty_flow.html create mode 100644 head/overview/multiparty/multiparty_flow/index.html delete mode 100644 head/overview/multiparty_features.html delete mode 100644 head/overview/public_vs_permissioned.html create mode 100644 head/overview/public_vs_permissioned/index.html delete mode 100644 head/overview/supernode_concept.html create mode 100644 head/overview/supernode_concept/index.html delete mode 100644 head/overview/usage_patterns.html create mode 100644 head/overview/usage_patterns/index.html delete mode 100644 head/reference/api_post_syntax.html create mode 100644 head/reference/api_post_syntax/index.html delete mode 100644 head/reference/api_query_syntax.html create mode 100644 head/reference/api_query_syntax/index.html delete mode 100644 head/reference/blockchain_operation_errors.html delete mode 100644 head/reference/blockchain_operation_status.html create mode 100644 head/reference/blockchain_operation_status/index.html delete mode 100644 head/reference/config.html create mode 100644 head/reference/config/index.html delete mode 100644 head/reference/events.html create mode 100644 head/reference/events/index.html delete mode 100644 head/reference/firefly_interface_format.html create mode 100644 head/reference/firefly_interface_format/index.html delete mode 100644 head/reference/idempotency.html create mode 100644 head/reference/idempotency/index.html delete mode 100644 head/reference/identities.html create mode 100644 head/reference/identities/index.html delete mode 100644 head/reference/index.html delete mode 100644 head/reference/microservices/fftokens.html create mode 100644 head/reference/microservices/fftokens/index.html delete mode 100644 head/reference/microservices/index.html delete mode 100644 head/reference/namespaces.html create mode 100644 head/reference/namespaces/index.html delete mode 100644 head/reference/tls.html create mode 100644 head/reference/tls/index.html delete mode 100644 head/reference/types/batch.html create mode 100644 head/reference/types/batch/index.html delete mode 100644 head/reference/types/blockchainevent.html create mode 100644 head/reference/types/blockchainevent/index.html delete mode 100644 head/reference/types/contractapi.html create mode 100644 head/reference/types/contractapi/index.html delete mode 100644 head/reference/types/contractlistener.html create mode 100644 head/reference/types/contractlistener/index.html delete mode 100644 head/reference/types/data.html create mode 100644 head/reference/types/data/index.html delete mode 100644 head/reference/types/dataref.html delete mode 100644 head/reference/types/datatype.html create mode 100644 head/reference/types/datatype/index.html delete mode 100644 head/reference/types/event.html create mode 100644 head/reference/types/event/index.html delete mode 100644 head/reference/types/ffi.html create mode 100644 head/reference/types/ffi/index.html delete mode 100644 head/reference/types/group.html create mode 100644 head/reference/types/group/index.html delete mode 100644 head/reference/types/identity.html create mode 100644 head/reference/types/identity/index.html delete mode 100644 head/reference/types/index.html delete mode 100644 head/reference/types/message.html create mode 100644 head/reference/types/message/index.html delete mode 100644 head/reference/types/namespace.html create mode 100644 head/reference/types/namespace/index.html delete mode 100644 head/reference/types/nextpin.html create mode 100644 head/reference/types/nextpin/index.html delete mode 100644 head/reference/types/operation.html create mode 100644 head/reference/types/operation/index.html delete mode 100644 head/reference/types/operationwithdetail.html create mode 100644 head/reference/types/operationwithdetail/index.html delete mode 100644 head/reference/types/simpletypes.html create mode 100644 head/reference/types/simpletypes/index.html delete mode 100644 head/reference/types/subscription.html create mode 100644 head/reference/types/subscription/index.html delete mode 100644 head/reference/types/tokenapproval.html create mode 100644 head/reference/types/tokenapproval/index.html delete mode 100644 head/reference/types/tokenpool.html create mode 100644 head/reference/types/tokenpool/index.html delete mode 100644 head/reference/types/tokentransfer.html create mode 100644 head/reference/types/tokentransfer/index.html delete mode 100644 head/reference/types/transaction.html create mode 100644 head/reference/types/transaction/index.html delete mode 100644 head/reference/types/verifier.html create mode 100644 head/reference/types/verifier/index.html delete mode 100644 head/reference/types/wsack.html create mode 100644 head/reference/types/wsack/index.html delete mode 100644 head/reference/types/wserror.html create mode 100644 head/reference/types/wserror/index.html delete mode 100644 head/reference/types/wsstart.html create mode 100644 head/reference/types/wsstart/index.html delete mode 100644 head/releasenotes/1.1_migration_guide.html create mode 100644 head/releasenotes/1.1_migration_guide/index.html delete mode 100644 head/releasenotes/1.2_migration_guide.html create mode 100644 head/releasenotes/1.2_migration_guide/index.html create mode 100644 head/search/search_index.json create mode 100644 head/sitemap.xml create mode 100644 head/sitemap.xml.gz create mode 100644 head/stylesheets/extra.css create mode 100644 head/swagger/index.html delete mode 100644 head/swagger/swagger.html delete mode 100644 head/tutorials/basic_auth.html create mode 100644 head/tutorials/basic_auth/index.html delete mode 100644 head/tutorials/broadcast_data.html create mode 100644 head/tutorials/broadcast_data/index.html delete mode 100644 head/tutorials/chains/arbitrum.html create mode 100644 head/tutorials/chains/arbitrum/index.html delete mode 100644 head/tutorials/chains/avalanche.html create mode 100644 head/tutorials/chains/avalanche/index.html delete mode 100644 head/tutorials/chains/binance_smart_chain.html create mode 100644 head/tutorials/chains/binance_smart_chain/index.html delete mode 100644 head/tutorials/chains/fabric_test_network.html create mode 100644 head/tutorials/chains/fabric_test_network/index.html delete mode 100644 head/tutorials/chains/moonbeam.html create mode 100644 head/tutorials/chains/moonbeam/index.html delete mode 100644 head/tutorials/chains/optimism.html create mode 100644 head/tutorials/chains/optimism/index.html delete mode 100644 head/tutorials/chains/polygon_testnet.html create mode 100644 head/tutorials/chains/polygon_testnet/index.html delete mode 100644 head/tutorials/chains/tezos_testnet.html create mode 100644 head/tutorials/chains/tezos_testnet/index.html delete mode 100644 head/tutorials/chains/zksync_testnet.html create mode 100644 head/tutorials/chains/zksync_testnet/index.html delete mode 100644 head/tutorials/create_custom_identity.html create mode 100644 head/tutorials/create_custom_identity/index.html delete mode 100644 head/tutorials/custom_contracts/ethereum.html create mode 100644 head/tutorials/custom_contracts/ethereum/index.html delete mode 100644 head/tutorials/custom_contracts/fabric.html create mode 100644 head/tutorials/custom_contracts/fabric/index.html delete mode 100644 head/tutorials/custom_contracts/pinning.html create mode 100644 head/tutorials/custom_contracts/pinning/index.html delete mode 100644 head/tutorials/custom_contracts/tezos.html create mode 100644 head/tutorials/custom_contracts/tezos/index.html delete mode 100644 head/tutorials/define_datatype.html create mode 100644 head/tutorials/define_datatype/index.html delete mode 100644 head/tutorials/events.html create mode 100644 head/tutorials/events/index.html delete mode 100644 head/tutorials/index.html delete mode 100644 head/tutorials/private_send.html create mode 100644 head/tutorials/private_send/index.html delete mode 100644 head/tutorials/query_messages.html create mode 100644 head/tutorials/query_messages/index.html delete mode 100644 head/tutorials/rotate_dx_certs.html create mode 100644 head/tutorials/rotate_dx_certs/index.html delete mode 100644 head/tutorials/tokens/erc1155.html create mode 100644 head/tutorials/tokens/erc1155/index.html delete mode 100644 head/tutorials/tokens/erc20.html create mode 100644 head/tutorials/tokens/erc20/index.html delete mode 100644 head/tutorials/tokens/erc721.html create mode 100644 head/tutorials/tokens/erc721/index.html create mode 100644 head/versions.json diff --git a/head/404.html b/head/404.html new file mode 100644 index 000000000..49aca913a --- /dev/null +++ b/head/404.html @@ -0,0 +1,3285 @@ + + + + + + + + + + + + + + + + + + + Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/head/SUMMARY/index.html b/head/SUMMARY/index.html new file mode 100644 index 000000000..45db3ab52 --- /dev/null +++ b/head/SUMMARY/index.html @@ -0,0 +1,3362 @@ + + + + + + + + + + + + + + + + + + + SUMMARY - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

SUMMARY

+ + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/head/architecture/blockchain_connector_framework.html b/head/architecture/blockchain_connector_framework.html deleted file mode 100644 index d8dc1480b..000000000 --- a/head/architecture/blockchain_connector_framework.html +++ /dev/null @@ -1,622 +0,0 @@ - - - - - - - - - Blockchain Connector Toolkit - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Blockchain Connector Toolkit | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
-
- - - - - - - -
-
- - - - -
- -

- - - Blockchain Connector Toolkit - - -

- -

- - - Table of contents - - -

- - -
    -
  1. Blockchain Connector Framework
  2. -
  3. Connector Toolkit Architecture
  4. -
  5. Assumptions / Requirements
  6. -
  7. Nonce management in the simple transaction handler
      -
    1. Avoid multiple nonce management systems against the same signing key
    2. -
    3. Why “at source” nonce management was chosen vs. “at target”
    4. -
    -
  8. -
  9. Transaction Handler
  10. -
  11. Event Streams
  12. -

- - -

- - - Blockchain Connector Framework - - -

- - -

Hyperledger FireFly has a multi-tier pluggable architecture for supporting blockchains of -all shapes and sizes. This includes a remote API that allows a microservice connector to -be built from scratch in any programming language.

- -

It also includes the Connector Toolkit, which is a pluggable SDK in Golang that provides -a set of re-usable modules that can be used across blockchain implementations.

- -
-

This is the preferred way to build a new blockchain connector, if you are comfortable -with coding in Golang and there are language bindings available for the raw RPC interface -of your blockchain.

-
-

- - - Connector Toolkit Architecture - - -

- - -

FireFly Blockchain Connector Toolkit Architecture

- -

The core component of the FireFly Connector Framework for Blockchains is a Go module -called FireFly Transaction Manager (FFTM).

- -

FFTM is responsible for:

- -
    -
  • Submission of transactions to blockchains of all types -
      -
    • Protocol connectivity decoupled with additional lightweight API connector
    • -
    • Easy to add additional protocols that conform to normal patterns of TX submission / events
    • -
    -
  • -
  • Monitoring and updating blockchain operations -
      -
    • Receipts
    • -
    • Confirmations
    • -
    -
  • -
  • Extensible transaction handler with capabilities such as: -
      -
    • Nonce management: idempotent submission of transactions, and assignment of nonces
    • -
    • Transaction management: pre-signing transactions, resubmission, customizable policy engine
    • -
    • Gas management: Gas Gas station API integration
    • -
    • Transaction process history
    • -
    -
  • -
  • Event streaming -
      -
    • Protocol agnostic event polling/streaming support
    • -
    • Reliable checkpoint restart
    • -
    • At least once delivery API
    • -
    -
  • -
-

- - - Assumptions / Requirements - - -

- - -

The framework is currently constrained to blockchains that adhere to certain basic principals:

- -
    -
  1. Has transactions -
      -
    • That are signed
    • -
    • That can optionally have gas semantics (limits and prices, expressed in a blockchain specific way)
    • -
    -
  2. -
  3. Has events (or “logs”) -
      -
    • That are emitted as a deterministic outcome of transactions
    • -
    -
  4. -
  5. Has blocks -
      -
    • Containing zero or more transactions, with their associated events
    • -
    • With a sequential numeric order
    • -
    • With a hash
    • -
    • With a parent hash
    • -
    -
  6. -
  7. Has finality for transactions & events that can be expressed as a level of confidence over time -
      -
    • Confirmations: A number of sequential blocks in the canonical chain that contain the transaction
    • -
    -
  8. -
-

- - - Nonce management in the simple transaction handler - - -

- - -

The nonces for transactions is assigned as early as possible in the flow:

-
    -
  • Before the REST API for submission of the transaction occurs
  • -
  • After the FFCAPI blockchain connector verifies the transaction can be encoded successfully to the chain
  • -
  • With protection against multiple parallel API requests for the same signing address
  • -
  • With stateful persistence meaning the connector knows about all nonces it previously allocated, to avoids duplicates
  • -
- -

This “at source” allocation of nonces provides the strictest assurance of order of transactions possible, -because the order is locked in with the coordination of the business logic of the application submitting the transaction.

- -

As well as protecting against loss of transactions, this protects against duplication of transactions - even in crash -recovery scenarios with a sufficiently reliable persistence layer.

-

- - - Avoid multiple nonce management systems against the same signing key - - -

- - -

FFTM is optimized for cases where all transactions for a given signing address flow through the -same FireFly connector. If you have signing and nonce allocation happening elsewhere, not going through the -FireFly blockchain connector, then it is possible that the same nonce will be allocated in two places.

- -
-

Be careful that the signing keys for transactions you stream through the Nonce Management of the FireFly -blockchain connector are not used elsewhere.

-
- -

If you must have multiple systems performing nonce management against the same keys you use with FireFly nonce management, -you can set the transactions.nonceStateTimeout to 0 (or a low threshold like 100ms) to cause the nonce management -to query the pending transaction pool of the node every time a nonce is allocated.

- -

This reduces the window for concurrent nonce allocation to be small (basically the same as if you had -multiple simple web/mobile wallets used against the same key), but it does not eliminate it completely it.

-

- - - Why “at source” nonce management was chosen vs. “at target” - - -

- - -

The “at source” approach to ordering used in FFTM could be compared with the “at target” allocation of nonces used in -EthConnect).

- -

The “at target” approach optimizes for throughput and ability to send new transactions to the chain, -with an at-least-once delivery assurance to the applications.

- -

An “at target” algorithm as used in EthConnect could resume transaction delivery automatically without operator intervention -from almost all scenarios, including where nonces have been double allocated.

- -

However, “at target” comes with two compromises that mean FFTM chose the “at source” approach was chosen for FFTM:

- -
    -
  • -

    Individual transactions might fail in certain scenarios, and subsequent transactions will still be streamed to the chain. -While desirable for automation and throughput, this reduces the ordering guarantee for high value transactions.

    -
  • -
  • -

    In crash recovery scenarios the assurance is at-least-once delivery for “at target” ordering (rather than “exactly once”), -although the window can be made very small through various optimizations included in the EthConnect codebase.

    -
  • -
-

- - - Transaction Handler - - -

- - -

The transaction Handler is a pluggable component that allows customized logic to be applied to the -gas pricing, signing, submission and re-submission of transactions to the blockchain.

- -

The transaction Handler can store custom state in the state store of the FFTM code, which is also -reported in status within the FireFly API/Explorer on the operation.

- -

A reference implementation is provided that:

-
    -
  • Submits transactions via the underlying FFCAPI
  • -
  • Estimates gas price in one of three modes: -
      -
    • Fixed: It is specified via configuration
    • -
    • Connector: The FFCAPI is used to estimate the gas price (e.g. eth_gasPrice for EVM JSON/RPC)
    • -
    • Gas Oracle: A REST API is called the the result mapped via a Go template
    • -
    -
  • -
  • Re-submits transactions after a configurable stale time
  • -
  • Record detailed information about transaction sub-status and actions
  • -
  • Emit customized metrics for transaction processing
  • -
- -

The reference implementation is available here

-

- - - Event Streams - - -

- - -

One of the largest pieces of heavy lifting code in the FFTM codebase, is the event stream -support. This provides a WebSocket (and Webhook) interface that FireFly Core and the Tokens -Connectors connect to in order to receive ordered streams of events from the blockchain.

- -

The interface down to the blockchain layer is via go channels, and there are lifecycle -interactions over the FFCAPI to the blockchain specific code to add and remove listeners -for different types of blockchain events.

- -

Some high architectural principals that informed the code:

- -
    -
  • Event Stream -
      -
    • A delivery stream of events that have been confirmed
    • -
    • Only events that have reached finality are delivered to an event stream
    • -
    • FireFly creates a single event stream per namespace from core
    • -
    • Each token connector creates a single event stream
    • -
    • If one event stream is blocked, it must not block other streams in the FFTM based runtime
    • -
    -
  • -
  • Listener (/Subscription) -
      -
    • A blockchain specific specification for a set of events to listen to
    • -
    • Specifies an initial block to listen from, and will replay all events from that block
    • -
    • Can have multiple blockchain specific filters, to match multiple events
    • -
    • The order of delivery within a listener matches the blockchain across all filters -
      -
        -
      • Note that the EVMConnect implementation of FFCAPI attempts to make this true across all listeners -on an event stream. However, this is impossible when a new listener has been added, -and that listener is catching up from an old block.
      • -
      -
      -
    • -
    -
  • -
  • Compatibility -
      -
    • Has breaking changes from the API of EthConnect
    • -
    • A component that has been upgraded to support EVMConnect, -can maintain backwards compatibility with EthConnect
    • -
    -
  • -
  • Batching & Checkpoints -
      -
    • Delivery on event streams is via batches, with a single confirmation for each batch
    • -
    • At-least-once delivery of batches
    • -
    • Checkpoints are written after each batch
    • -
    -
  • -
  • Chain head stability -
      -
    • A configurable section of the head of the chain is considered unstable
    • -
    • If no events have been delivered for a listener, checkpoints are still moved forwards
    • -
    • These empty checkpoints will never be written in the unstable head of the chain
    • -
    -
  • -
  • Confirmation manager -
      -
    • Plugged in between detection of the events, and assembling into batches
    • -
    • Determines the final order based on order of confirmation on the blockchain
    • -
    -
  • -
- -

FireFly Connector Toolkit Event Streams

- - - - - - - - -
-
- - - - -
- -
- - - diff --git a/head/architecture/blockchain_connector_framework/index.html b/head/architecture/blockchain_connector_framework/index.html new file mode 100644 index 000000000..642058598 --- /dev/null +++ b/head/architecture/blockchain_connector_framework/index.html @@ -0,0 +1,3910 @@ + + + + + + + + + + + + + + + + + + + + + + + Blockchain Connector Toolkit - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Blockchain Connector Toolkit

+ + +

Blockchain Connector Framework

+

Hyperledger FireFly has a multi-tier pluggable architecture for supporting blockchains of +all shapes and sizes. This includes a remote API that allows a microservice connector to +be built from scratch in any programming language.

+

It also includes the Connector Toolkit, which is a pluggable SDK in Golang that provides +a set of re-usable modules that can be used across blockchain implementations.

+
+

This is the preferred way to build a new blockchain connector, if you are comfortable +with coding in Golang and there are language bindings available for the raw RPC interface +of your blockchain.

+
+

Connector Toolkit Architecture

+

FireFly Blockchain Connector Toolkit Architecture

+

The core component of the FireFly Connector Framework for Blockchains is a Go module +called FireFly Transaction Manager (FFTM).

+

FFTM is responsible for:

+
    +
  • +

    Submission of transactions to blockchains of all types

    +
  • +
  • +

    Protocol connectivity decoupled with additional lightweight API connector

    +
  • +
  • +

    Easy to add additional protocols that conform to normal patterns of TX submission / events

    +
  • +
  • +

    Monitoring and updating blockchain operations

    +
  • +
  • +

    Receipts

    +
  • +
  • +

    Confirmations

    +
  • +
  • +

    Extensible transaction handler with capabilities such as:

    +
  • +
  • +

    Nonce management: idempotent submission of transactions, and assignment of nonces

    +
  • +
  • Transaction management: pre-signing transactions, resubmission, customizable policy engine
  • +
  • Gas management: Gas Gas station API integration
  • +
  • +

    Transaction process history

    +
  • +
  • +

    Event streaming

    +
  • +
  • Protocol agnostic event polling/streaming support
  • +
  • Reliable checkpoint restart
  • +
  • At least once delivery API
  • +
+

Assumptions / Requirements

+

The framework is currently constrained to blockchains that adhere to certain basic principals:

+
    +
  1. +

    Has transactions

    +
  2. +
  3. +

    That are signed

    +
  4. +
  5. +

    That can optionally have gas semantics (limits and prices, expressed in a blockchain specific way)

    +
  6. +
  7. +

    Has events (or "logs")

    +
  8. +
  9. +

    That are emitted as a deterministic outcome of transactions

    +
  10. +
  11. +

    Has blocks

    +
  12. +
  13. +

    Containing zero or more transactions, with their associated events

    +
  14. +
  15. With a sequential numeric order
  16. +
  17. With a hash
  18. +
  19. +

    With a parent hash

    +
  20. +
  21. +

    Has finality for transactions & events that can be expressed as a level of confidence over time

    +
  22. +
  23. +

    Confirmations: A number of sequential blocks in the canonical chain that contain the transaction

    +
  24. +
+

Nonce management in the simple transaction handler

+

The nonces for transactions is assigned as early as possible in the flow:

+
    +
  • Before the REST API for submission of the transaction occurs
  • +
  • After the FFCAPI blockchain connector verifies the transaction can be encoded successfully to the chain
  • +
  • With protection against multiple parallel API requests for the same signing address
  • +
  • With stateful persistence meaning the connector knows about all nonces it previously allocated, to avoids duplicates
  • +
+

This "at source" allocation of nonces provides the strictest assurance of order of transactions possible, +because the order is locked in with the coordination of the business logic of the application submitting the transaction.

+

As well as protecting against loss of transactions, this protects against duplication of transactions - even in crash +recovery scenarios with a sufficiently reliable persistence layer.

+

Avoid multiple nonce management systems against the same signing key

+

FFTM is optimized for cases where all transactions for a given signing address flow through the +same FireFly connector. If you have signing and nonce allocation happening elsewhere, not going through the +FireFly blockchain connector, then it is possible that the same nonce will be allocated in two places.

+
+

Be careful that the signing keys for transactions you stream through the Nonce Management of the FireFly +blockchain connector are not used elsewhere.

+
+

If you must have multiple systems performing nonce management against the same keys you use with FireFly nonce management, +you can set the transactions.nonceStateTimeout to 0 (or a low threshold like 100ms) to cause the nonce management +to query the pending transaction pool of the node every time a nonce is allocated.

+

This reduces the window for concurrent nonce allocation to be small (basically the same as if you had +multiple simple web/mobile wallets used against the same key), but it does not eliminate it completely it.

+

Why "at source" nonce management was chosen vs. "at target"

+

The "at source" approach to ordering used in FFTM could be compared with the "at target" allocation of nonces used in +EthConnect).

+

The "at target" approach optimizes for throughput and ability to send new transactions to the chain, +with an at-least-once delivery assurance to the applications.

+

An "at target" algorithm as used in EthConnect could resume transaction delivery automatically without operator intervention +from almost all scenarios, including where nonces have been double allocated.

+

However, "at target" comes with two compromises that mean FFTM chose the "at source" approach was chosen for FFTM:

+
    +
  • +

    Individual transactions might fail in certain scenarios, and subsequent transactions will still be streamed to the chain. + While desirable for automation and throughput, this reduces the ordering guarantee for high value transactions.

    +
  • +
  • +

    In crash recovery scenarios the assurance is at-least-once delivery for "at target" ordering (rather than "exactly once"), + although the window can be made very small through various optimizations included in the EthConnect codebase.

    +
  • +
+

Transaction Handler

+

The transaction Handler is a pluggable component that allows customized logic to be applied to the +gas pricing, signing, submission and re-submission of transactions to the blockchain.

+

The transaction Handler can store custom state in the state store of the FFTM code, which is also +reported in status within the FireFly API/Explorer on the operation.

+

A reference implementation is provided that:

+
    +
  • Submits transactions via the underlying FFCAPI
  • +
  • Estimates gas price in one of three modes:
  • +
  • Fixed: It is specified via configuration
  • +
  • Connector: The FFCAPI is used to estimate the gas price (e.g. eth_gasPrice for EVM JSON/RPC)
  • +
  • Gas Oracle: A REST API is called the the result mapped via a Go template
  • +
  • Re-submits transactions after a configurable stale time
  • +
  • Record detailed information about transaction sub-status and actions
  • +
  • Emit customized metrics for transaction processing
  • +
+

The reference implementation is available here

+

Event Streams

+

One of the largest pieces of heavy lifting code in the FFTM codebase, is the event stream +support. This provides a WebSocket (and Webhook) interface that FireFly Core and the Tokens +Connectors connect to in order to receive ordered streams of events from the blockchain.

+

The interface down to the blockchain layer is via go channels, and there are lifecycle +interactions over the FFCAPI to the blockchain specific code to add and remove listeners +for different types of blockchain events.

+

Some high architectural principals that informed the code:

+
    +
  • Event Stream
  • +
  • A delivery stream of events that have been confirmed
  • +
  • Only events that have reached finality are delivered to an event stream
  • +
  • FireFly creates a single event stream per namespace from core
  • +
  • Each token connector creates a single event stream
  • +
  • If one event stream is blocked, it must not block other streams in the FFTM based runtime
  • +
  • Listener (/Subscription)
  • +
  • A blockchain specific specification for a set of events to listen to
  • +
  • Specifies an initial block to listen from, and will replay all events from that block
  • +
  • Can have multiple blockchain specific filters, to match multiple events
  • +
  • The order of delivery within a listener matches the blockchain across all filters + > - Note that the EVMConnect implementation of FFCAPI attempts to make this true across all listeners + > on an event stream. However, this is impossible when a new listener has been added, + > and that listener is catching up from an old block.
  • +
  • Compatibility
  • +
  • Has breaking changes from the API of EthConnect
  • +
  • A component that has been upgraded to support EVMConnect, + can maintain backwards compatibility with EthConnect
  • +
  • Batching & Checkpoints
  • +
  • Delivery on event streams is via batches, with a single confirmation for each batch
  • +
  • At-least-once delivery of batches
  • +
  • Checkpoints are written after each batch
  • +
  • Chain head stability
  • +
  • A configurable section of the head of the chain is considered unstable
  • +
  • If no events have been delivered for a listener, checkpoints are still moved forwards
  • +
  • These empty checkpoints will never be written in the unstable head of the chain
  • +
  • Confirmation manager
  • +
  • Plugged in between detection of the events, and assembling into batches
  • +
  • Determines the final order based on order of confirmation on the blockchain
  • +
+

FireFly Connector Toolkit Event Streams

+

Blockchain error messages

+

The receipt for a FireFly blockchain operation contains an extraInfo section that records additional information about the transaction. For example:

+
"receipt": {
+  ...
+  "extraInfo": [
+    {
+      {
+        "contractAddress":"0x87ae94ab290932c4e6269648bb47c86978af4436",
+        "cumulativeGasUsed":"33812",
+        "from":"0x2b1c769ef5ad304a4889f2a07a6617cd935849ae",
+        "to":"0x302259069aaa5b10dc6f29a9a3f72a8e52837cc3",
+        "gasUsed":"33812",
+        "status":"0",
+        "errorMessage":"Not enough tokens",
+      }
+    }
+  ],
+  ...
+},
+
+

The errorMessage field can be be set by a blockchain connector to provide FireFly and the end-user with more information about the reason why a tranasction failed. The blockchain connector can choose what information to include in errorMessage field. It may be set to an error message relating to the blockchain connector itself or an error message passed back from the blockchain or smart contract that was invoked.

+

Format of a firefly-evmconnect error message

+

The following section describes the way that the firefly-evmconnect plugin uses the errorMessage field. This serves both as an explanation of how EVM-based transaction errors will be formatted, and as a guide that other blockchain connectors may decide to follow.

+

The errorMessage field for a firefly-evmconnect transaction may contain one of the following:

+
    +
  1. +

    An error message from the FireFly blockchain connector

    +
  2. +
  3. +

    For example "FF23054", "Error return value unavailable"

    +
  4. +
  5. +

    A decoded error string from the blockchain transaction

    +
  6. +
  7. +

    For example Not enough tokens

    +
  8. +
  9. +

    This could be an error string from a smart contract e.g. require(requestedTokens <= allowance, "Not enough tokens");

    +
  10. +
  11. +

    An un-decoded byte string from the blockchain transaction

    +
  12. +
  13. +

    For example

    +
  14. +
+
FF23053: Error return value for custom error: 0x1320fa6a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000010
+
+
    +
  • This could be a custom error from a smart contract e.g.
  • +
+
error AllowanceTooSmall(uint256 requested, uint256 allowance);
+...
+revert AllowanceTooSmall({ requested: 100, allowance: 20 });
+
+
    +
  • If an error reason cannot be decoded the returnValue of the extraInfo will be set to the raw byte string. For example:
  • +
+
"receipt": {
+  ...
+  "extraInfo": [
+     {
+       {
+         "contractAddress":"0x87ae94ab290932c4e6269648bb47c86978af4436",
+         "cumulativeGasUsed":"33812",
+         "from":"0x2b1c769ef5ad304a4889f2a07a6617cd935849ae",
+         "to":"0x302259069aaa5b10dc6f29a9a3f72a8e52837cc3",
+         "gasUsed":"33812",
+         "status":"0",
+         "errorMessage":"FF23053: Error return value for custom error: 0x1320fa6a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000010",
+         "returnValue":"0x1320fa6a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000010"
+       }
+     }
+  ],
+  ...
+},
+
+

Retrieving EVM blockchain transaction errors

+

The ability of a blockchain connector such as firefly-evmconnect to retrieve the reason for a transaction failure, is dependent on by the configuration of the blockchain it is connected to. For an EVM blockchain the reason why a transaction failed is recorded with the REVERT op code, with a REASON set to the reason for the failure. By default, most EVM clients do not store this reason in the transaction receipt. This is typically to reduce resource consumption such as memory usage in the client. It is usually possible to configure an EVM client to store the revert reason in the transaction receipt. For example Hyperledger Besu™ provides the --revert-reason-enabled configuration option. If the transaction receipt does not contain the revert reason it is possible to request that an EVM client re-run the transaction and return a trace of all of the op-codes, including the final REVERT REASON. This can be a resource intensive request to submit to an EVM client, and is only available on archive nodes or for very recent blocks.

+

The firefly-evmconnect blockchain connector attempts to obtain the reason for a transaction revert and include it in the extraInfo field. It uses the following mechanisms, in this order:

+
    +
  1. Checks if the blockchain transaction receipt contains the revert reason.
  2. +
  3. If the revert reason is not in the receipt, and the connector.traceTXForRevertReason configuration option is set to true, calls debug_traceTransaction to obtain a full trace of the transaction and extract the revert reason. By default, connector.traceTXForRevertReason is set to false to avoid submitting high-resource requests to the EVM client.
  4. +
+

If the revert reason can be obtained using either mechanism above, the revert reason bytes are decoded in the following way:

+
    +
  • Attempts to decode the bytes as the standard Error(string) signature format and includes the decoded string in the errorMessage
  • +
  • If the reason is not a standard Error(String) error, sets the errorMessage to FF23053: Error return value for custom error: <raw hex string> and includes the raw byte string in the returnValue field.
  • +
+ + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/head/architecture/index.html b/head/architecture/index.html deleted file mode 100644 index 228f4a964..000000000 --- a/head/architecture/index.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - - - - - Architecture - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.architecture | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
-
- - - - - - - -
-
- - - -
- -

- - - Architecture - - -

- - -

This section contains a collection of technical architecture diagrams detailing the various runtime components of a FireFly deployment.

- - - - -
-

Table of contents

- - - - - - -
-
- - - - -
- -
- - - diff --git a/head/architecture/internal_event_sequencing.html b/head/architecture/internal_event_sequencing.html deleted file mode 100644 index 5654e8938..000000000 --- a/head/architecture/internal_event_sequencing.html +++ /dev/null @@ -1,447 +0,0 @@ - - - - - - - - - Internal Event Sequencing - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Internal Event Sequencing | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
-
- - - - - - - -
-
- - - - -
- -

- - - Internal Event Sequencing - - -

- -

- - - Table of contents - - -

- - -
    -
  1. Overview
  2. -
  3. App Instances
  4. -
  5. Outbound Sequencers
  6. -
  7. Inbound Aggregator
      -
    1. Events Table
    2. -
    -
  8. -
  9. Subscription Manager
  10. -
  11. Event Dispatcher
  12. -

- - -

- - - Overview - - -

- - -

Internal Event Sequencing

- -

One of the most important roles FireFly has, is to take actions being performed by the local apps, process them, get them confirmed, and then deliver back -as “stream of consciousness” to the application alongside all the other events that are coming into the application from other FireFly Nodes in the network.

- -

You might observe the problems solved in this architecture are similar to those in a message queuing system (like Apache Kafka, or a JMS/AMQP provider like ActiveMQ etc.).

- -

However, we cannot directly replace the internal logic with such a runtime - because FireFly’s job is to aggregate data from multiple runtimes that behave similarly to these:

-
    -
  • Private messaging in the Data Exchange
  • -
  • The blockchain ledger(s) themselves, which are a stream of sequenced events
  • -
  • The event dispatcher delivering messages to applications that have been sequenced by FireFly
  • -
- -

So FireFly provides the convenient REST based management interface to simplify the world for application developers, by aggregating the data from multiple locations, and delivering it to apps in a deterministic sequence.

- -

The sequence is made deterministic:

-
    -
  • Globally to all apps within the scope of the ledger, when a Blockchain ledger is used to pin events (see #10)
  • -
  • Locally for messages delivered through a single FireFly node into the network
  • -
  • Locally for all messages delivered to applications connected to a FireFly node, across blockchain
  • -
-

- - - App Instances - - -

- - -
    -
  • Broadcast messages to the network
  • -
  • Ingest ack when message persisted in local messages table
  • -
  • Consume events via Websocket connection into FireFly
  • -
-

- - - Outbound Sequencers - - -

- - -
    -
  • Broadcast or Private through IPFS or Private Data Storage
  • -
  • Long-running leader-elected jobs listening to the database (via event tables in SQL, etc.)
  • -
-

- - - Inbound Aggregator - - -

- - -
    -
  • Triggered each time an event is detected by the associated plugin.
  • -
  • It is the responsibility of the plugin to fire events sequentially. Can be workload managed but must be sequential.
  • -
-

- - - Events Table - - -

- - -
    -
  • Deliberately lightweight persisted object, that is generated as a byproduct of other persistent actions.
  • -
  • Records the local sequence of a specific event within the local node.
  • -
  • The highest level event type is the confirmation of a message, however the table can be extended for more granularity on event types.
  • -
-

- - - Subscription Manager - - -

- - -
    -
  • Responsible for filtering and delivering batches of events to the active event dispatchers.
  • -
  • Records the latest offset confirmed by each dispatcher.
  • -
-

- - - Event Dispatcher - - -

- - -
    -
  • Created with leadership election when WebSocket connection is made from an app into FireFly.
  • -
  • Extensible to other dispatchers (AMQP, etc.).
  • -
- - - - - - - - -
-
- - - - -
- -
- - - diff --git a/head/architecture/internal_event_sequencing/index.html b/head/architecture/internal_event_sequencing/index.html new file mode 100644 index 000000000..041e76cb4 --- /dev/null +++ b/head/architecture/internal_event_sequencing/index.html @@ -0,0 +1,3597 @@ + + + + + + + + + + + + + + + + + + + + + + + Internal Event Sequencing - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Internal Event Sequencing

+ + +

Overview

+

Internal Event Sequencing

+

One of the most important roles FireFly has, is to take actions being performed by the local apps, process them, get them confirmed, and then deliver back +as "stream of consciousness" to the application alongside all the other events that are coming into the application from other FireFly Nodes in the network.

+

You might observe the problems solved in this architecture are similar to those in a message queuing system (like Apache Kafka, or a JMS/AMQP provider like ActiveMQ etc.).

+

However, we cannot directly replace the internal logic with such a runtime - because FireFly's job is to aggregate data from multiple runtimes that behave similarly to these:

+
    +
  • Private messaging in the Data Exchange
  • +
  • The blockchain ledger(s) themselves, which are a stream of sequenced events
  • +
  • The event dispatcher delivering messages to applications that have been sequenced by FireFly
  • +
+

So FireFly provides the convenient REST based management interface to simplify the world for application developers, by aggregating the data from multiple locations, and delivering it to apps in a deterministic sequence.

+

The sequence is made deterministic:

+
    +
  • Globally to all apps within the scope of the ledger, when a Blockchain ledger is used to pin events (see #10)
  • +
  • Locally for messages delivered through a single FireFly node into the network
  • +
  • Locally for all messages delivered to applications connected to a FireFly node, across blockchain
  • +
+

App Instances

+
    +
  • Broadcast messages to the network
  • +
  • Ingest ack when message persisted in local messages table
  • +
  • Consume events via Websocket connection into FireFly
  • +
+

Outbound Sequencers

+
    +
  • Broadcast or Private through IPFS or Private Data Storage
  • +
  • Long-running leader-elected jobs listening to the database (via event tables in SQL, etc.)
  • +
+

Inbound Aggregator

+
    +
  • Triggered each time an event is detected by the associated plugin.
  • +
  • It is the responsibility of the plugin to fire events sequentially. Can be workload managed but must be sequential.
  • +
+

Events Table

+
    +
  • Deliberately lightweight persisted object, that is generated as a byproduct of other persistent actions.
  • +
  • Records the local sequence of a specific event within the local node.
  • +
  • The highest level event type is the confirmation of a message, however the table can be extended for more granularity on event types.
  • +
+

Subscription Manager

+
    +
  • Responsible for filtering and delivering batches of events to the active event dispatchers.
  • +
  • Records the latest offset confirmed by each dispatcher.
  • +
+

Event Dispatcher

+
    +
  • Created with leadership election when WebSocket connection is made from an app into FireFly.
  • +
  • Extensible to other dispatchers (AMQP, etc.).
  • +
+ + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/head/architecture/multiparty_event_sequencing.html b/head/architecture/multiparty_event_sequencing.html deleted file mode 100644 index cc26fac9d..000000000 --- a/head/architecture/multiparty_event_sequencing.html +++ /dev/null @@ -1,389 +0,0 @@ - - - - - - - - - Multiparty Event Sequencing - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Multiparty Event Sequencing | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
-
- - - - - - - -
-
- - - - -
- -

- - - Multiparty Event Sequencing - - -

- -

- - - Table of contents - - -

- - -
    -
  1. Transaction Submission
  2. -
  3. Blockchain Ordering
  4. -
  5. Message Assembly
  6. -
  7. Event Processing
  8. -

- - - -

Multiparty Event Sequencing

-

- - - Transaction Submission - - -

- - -
    -
  • An individual FireFly instance preserves the order that it received messages from application instances.
  • -
  • Where possible, batching is used to roll-up hundreds of transactions into a single blockchain transaction.
  • -
  • Blockchain allows these messages to be globally sequenced with messages submitted by other members of the network.
  • -
-

- - - Blockchain Ordering - - -

- - -
    -
  • All member FireFly runtimes see every transaction in the same sequence.
  • -
  • This includes when transactions are being submitted by both sides concurrently.
  • -
-

- - - Message Assembly - - -

- - -
    -
  • A queue of events is maintained for each matching app subscription.
  • -
  • The public/private payloads travel separately to the blockchain, and arrive at different times. FireFly assembles these together prior to delivery.
  • -
  • If data associated with a blockchain transaction is late, or does not arrive, all messages on the same “context” will be blocked.
  • -
  • It is good practice to send messages that don’t need to be processed in order, with different “context” fields. For example use the ID of your business transaction, or other long-running process / customer identifier.
  • -
-

- - - Event Processing - - -

- - -
    -
  • Events are processed consistently by all parties.
  • -
  • All FireFly runtimes see every event that they are subscribed to, in the same sequence.
  • -
  • The submitter must also apply the logic only in the sequence ordered by the blockhain. It cannot assume the order even if it is the member that submitted it.
  • -
- - - - - - - - -
-
- - - - -
- -
- - - diff --git a/head/architecture/multiparty_event_sequencing/index.html b/head/architecture/multiparty_event_sequencing/index.html new file mode 100644 index 000000000..5dfaa96c6 --- /dev/null +++ b/head/architecture/multiparty_event_sequencing/index.html @@ -0,0 +1,3506 @@ + + + + + + + + + + + + + + + + + + + + + + + Multiparty Event Sequencing - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Multiparty Event Sequencing

+ + +

Multiparty Event Sequencing

+

Transaction Submission

+
    +
  • An individual FireFly instance preserves the order that it received messages from application instances.
  • +
  • Where possible, batching is used to roll-up hundreds of transactions into a single blockchain transaction.
  • +
  • Blockchain allows these messages to be globally sequenced with messages submitted by other members of the network.
  • +
+

Blockchain Ordering

+
    +
  • All member FireFly runtimes see every transaction in the same sequence.
  • +
  • This includes when transactions are being submitted by both sides concurrently.
  • +
+

Message Assembly

+
    +
  • A queue of events is maintained for each matching app subscription.
  • +
  • The public/private payloads travel separately to the blockchain, and arrive at different times. FireFly assembles these together prior to delivery.
  • +
  • If data associated with a blockchain transaction is late, or does not arrive, all messages on the same "context" will be blocked.
  • +
  • It is good practice to send messages that don't need to be processed in order, with different "context" fields. For example use the ID of your business transaction, or other long-running process / customer identifier.
  • +
+

Event Processing

+
    +
  • Events are processed consistently by all parties.
  • +
  • All FireFly runtimes see every event that they are subscribed to, in the same sequence.
  • +
  • The submitter must also apply the logic only in the sequence ordered by the blockhain. It cannot assume the order even if it is the member that submitted it.
  • +
+ + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/head/architecture/node_component_architecture.html b/head/architecture/node_component_architecture.html deleted file mode 100644 index 0e521ea80..000000000 --- a/head/architecture/node_component_architecture.html +++ /dev/null @@ -1,429 +0,0 @@ - - - - - - - - - Node Component Architecture - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Node Component Architecture | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
-
- - - - - - - -
-
- - - - -
- -

- - - Node Component Architecture - - -

- -

- - - Table of contents - - -

- - -
    -
  1. What is a FireFly Node?
  2. -
  3. Runtimes
  4. -
  5. Responsibilities & Pluggable Elements
  6. -
  7. Code Structure
  8. -

- - -

- - - What is a FireFly Node? - - -

- - -

The core architecture of a FireFly node can be broken down into the following three areas:

- -
    -
  • The various runtimes encapsulating the node.
  • -
  • The core runtime responsibilities and pluggable elements.
  • -
  • The actual code running inside the node.
  • -
- -

FireFly Architecture Overview

-

- - - Runtimes - - -

- - -

What fundamentally is a node - left side of the above diagram.

- -
    -
  • It is a collection of multiple runtimes with a single unified HTTPS/Websocket API (exposed by the Core).
  • -
  • It has a private database, containing your private data, and data received from others in the network.
  • -
  • It has connectivity out to other parties in the network, through runtimes (Blockchain, Shared Filesystems, Messaging etc.).
  • -
-

- - - Responsibilities & Pluggable Elements - - -

- - -

What are the core runtime responsibilities, and pluggable elements - right side of the above diagram.

- -
    -
  • The core elements of function that FireFly performs, and which runtime is responsible. -
      -
    • This means some insight into core itself, and the jobs it performs, but not full code structure.
    • -
    • More importantly, what the split of responsibilities is between Connectors and Infrastructure Runtimes. -
        -
      • Connectors are the bridging runtimes, that know how to talk to a particular runtime. -
          -
        • They run separately to the core (like a microservice architecture of an app).
        • -
        • They can be written in any language (not just Go) - Java, TypeScript, Rust, Python, .NET etc.
        • -
        • They can use any network transport (not just HTTPS/Websockets) - GRPC, AMQP, UDP etc.
        • -
        • They connect to the core with a Golang shim - see separate Plugin Architecture discussion. -
          -
            -
          • In some special cases (like the Database) the Golang shim does not need a connector runtime.
          • -
          -
          -
        • -
        -
      • -
      • Infrastructure Runtimes are the core runtimes for multi-party system activities. -
          -
        • Blockchain nodes - Ethereum (Hyperledger Besu, Quorum, Geth), Hyperledger Fabric, Corda etc.
        • -
        • Shared strorage - IPFS etc.
        • -
        • Database - PostreSQL, CouchDB etc.
        • -
        -
      • -
      -
    • -
    -
  • -
-

- - - Code Structure - - -

- - -

What is the code structure inside the core.

- -
    -
  • The README.md is the reference for this.
  • -
  • Developers contributing to FireFly, on the core, or building new plugins, need this level of detail. -
    -
      -
    • A reconciliation is underway to ensure the medium-level view correlates well with this code structure.
    • -
    -
    -
  • -
- - - - - - - - -
-
- - - - -
- -
- - - diff --git a/head/architecture/node_component_architecture/index.html b/head/architecture/node_component_architecture/index.html new file mode 100644 index 000000000..cd43a0de5 --- /dev/null +++ b/head/architecture/node_component_architecture/index.html @@ -0,0 +1,3526 @@ + + + + + + + + + + + + + + + + + + + + + + + Node Component Architecture - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Node Component Architecture

+ + +

What is a FireFly Node?

+

The core architecture of a FireFly node can be broken down into the following three areas:

+
    +
  • The various runtimes encapsulating the node.
  • +
  • The core runtime responsibilities and pluggable elements.
  • +
  • The actual code running inside the node.
  • +
+

FireFly Architecture Overview

+

Runtimes

+

What fundamentally is a node - left side of the above diagram.

+
    +
  • It is a collection of multiple runtimes with a single unified HTTPS/Websocket API (exposed by the Core).
  • +
  • It has a private database, containing your private data, and data received from others in the network.
  • +
  • It has connectivity out to other parties in the network, through runtimes (Blockchain, Shared Filesystems, Messaging etc.).
  • +
+

Responsibilities & Pluggable Elements

+

What are the core runtime responsibilities, and pluggable elements - right side of the above diagram.

+
    +
  • The core elements of function that FireFly performs, and which runtime is responsible.
  • +
  • This means some insight into core itself, and the jobs it performs, but not full code structure.
  • +
  • More importantly, what the split of responsibilities is between Connectors and Infrastructure Runtimes.
      +
    • Connectors are the bridging runtimes, that know how to talk to a particular runtime.
    • +
    • They run separately to the core (like a microservice architecture of an app).
    • +
    • They can be written in any language (not just Go) - Java, TypeScript, Rust, Python, .NET etc.
    • +
    • They can use any network transport (not just HTTPS/Websockets) - GRPC, AMQP, UDP etc.
    • +
    • They connect to the core with a Golang shim - see separate Plugin Architecture discussion. + > - In some special cases (like the Database) the Golang shim does not need a connector runtime.
    • +
    • Infrastructure Runtimes are the core runtimes for multi-party system activities.
    • +
    • Blockchain nodes - Ethereum (Hyperledger Besu, Quorum, Geth), Hyperledger Fabric, Corda etc.
    • +
    • Shared strorage - IPFS etc.
    • +
    • Database - PostreSQL, CouchDB etc.
    • +
    +
  • +
+

Code Structure

+

What is the code structure inside the core.

+
    +
  • The README.md is the reference for this.
  • +
  • Developers contributing to FireFly, on the core, or building new plugins, need this level of detail.
    +
      +
    • A reconciliation is underway to ensure the medium-level view correlates well with this code structure.
    • +
    +
    +
  • +
+ + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/head/architecture/ping_pong_txflow.html b/head/architecture/ping_pong_txflow.html deleted file mode 100644 index 6a32abf5a..000000000 --- a/head/architecture/ping_pong_txflow.html +++ /dev/null @@ -1,461 +0,0 @@ - - - - - - - - - Example Transaction Flow - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Example Transaction Flow | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
-
- - - - - - - -
-
- - - - -
- -

- - - Example Transaction Flow (Ping Pong) - - -

- -

- - - Table of contents - - -

- - -
    -
  1. Overview
  2. -
  3. Broadcast Public Description of Binary Data Asset (Member 1)
  4. -
  5. Receive Public Description & Request Asset Data (Member 2)
  6. -
  7. Authorize & Transfer Data (Member 1)
  8. -
  9. Receive Data Asset (Member 2)
  10. -

- - -

- - - Overview - - -

- - -

Simple Ping Pong Tx Flow

- -

This demonstrates the problem that at its core FireFly is there to solve. The internal plumbing complexity of just a very simple set of Enterprise blockchain / multi-party system interactions.

- -
    -
  • Party A: Establish existence of a digital asset. -
      -
    • Nothing more than some binary data (an image, a document, a specification etc.).
    • -
    -
  • -
  • Party A: Broadcast some information about that asset to everyone, using blockchain to record, sequence and propagate. -
      -
    • So people can find it, or part of a more sophisticated workflow.
    • -
    -
  • -
  • Party B: Request the actual data - with evidence of that request tied to the blockchain. -
      -
    • Including some private data that’s sent to the Party A, reliably off-chain.
    • -
    -
  • -
  • Party A: Authorize the request, and send the data privately to Party B. -
      -
    • In this example there’s no blockchain involved in this step.
    • -
    -
  • -
- -

This is the kind of thing that enterprise projects have been solving ground-up since the dawn of enterprise blockchain, and the level of engineering required that is completely detached from business value, is very high.

- -

The “tramlines” view shows how FireFly’s pluggable model makes the job of the developer really simple:

-
    -
  • A few simple API calls from a modern web app.
  • -
  • Event triggered execution of application logic.
  • -
- -

This is deliberately a simple flow, and all kinds of additional layers might well layer on (and fit within the FireFly model):

-
    -
  • NFTs to track ownership etc. related to the digital asset.
  • -
  • Tokenized rewards/payments integrated with the authorization of the transfer of data.
  • -
  • Proof of deterministic execution of the logic to perform the authorization (on-chain, TEEs, ZKPs).
  • -
  • Human workflow, that is of course completely non-deterministic.
  • -
  • Multiple additional process steps, deterministic or not.
  • -
  • Inclusion of multiple additional parties (maybe it’s a request-for-tender, submit-tender flow for example).
  • -
  • etc.
  • -
-

- - - Broadcast Public Description of Binary Data Asset (Member 1) - - -

- - -
    -
  • Upload Blob of the actual data -
      -
    • Returns a hash of the payload
    • -
    -
  • -
  • Upload JSON containing the public index data -
      -
    • Includes the hash of the full payload
    • -
    -
  • -
  • Send a broadcast message with the public index data -
      -
    • Agree upon a primary key of the data as the “context”
    • -
    -
  • -
-

- - - Receive Public Description & Request Asset Data (Member 2) - - -

- - -
    -
  • Store data in your own off-chain database for rich, efficient query
  • -
  • Run automated logic to decide if you want to request the full data
  • -
  • Upload JSON for data request
  • -
  • Send a private message -
      -
    • Backed by blockchain in this flow
    • -
    -
  • -
-

- - - Authorize & Transfer Data (Member 1) - - -

- - -
    -
  • Inspect the request data
  • -
  • Retrieve data asset by hash
  • -
  • Send the private data in a private message -
      -
    • No blockchain in this flow
    • -
    -
  • -
-

- - - Receive Data Asset (Member 2) - - -

- - -
    -
  • Receive a link to your local copy of the asset data
  • -
- - - - - - - - -
-
- - - - -
- -
- - - diff --git a/head/architecture/ping_pong_txflow/index.html b/head/architecture/ping_pong_txflow/index.html new file mode 100644 index 000000000..8243370b5 --- /dev/null +++ b/head/architecture/ping_pong_txflow/index.html @@ -0,0 +1,3556 @@ + + + + + + + + + + + + + + + + + + + + + + + Example Transaction Flow - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Example Transaction Flow (Ping Pong)

+ + +

Overview

+

Simple Ping Pong Tx Flow

+

This demonstrates the problem that at its core FireFly is there to solve. The internal plumbing complexity of just a very simple set of Enterprise blockchain / multi-party system interactions.

+
    +
  • Party A: Establish existence of a digital asset.
  • +
  • Nothing more than some binary data (an image, a document, a specification etc.).
  • +
  • Party A: Broadcast some information about that asset to everyone, using blockchain to record, sequence and propagate.
  • +
  • So people can find it, or part of a more sophisticated workflow.
  • +
  • Party B: Request the actual data - with evidence of that request tied to the blockchain.
  • +
  • Including some private data that's sent to the Party A, reliably off-chain.
  • +
  • Party A: Authorize the request, and send the data privately to Party B.
  • +
  • In this example there's no blockchain involved in this step.
  • +
+

This is the kind of thing that enterprise projects have been solving ground-up since the dawn of enterprise blockchain, and the level of engineering required that is completely detached from business value, is very high.

+

The "tramlines" view shows how FireFly's pluggable model makes the job of the developer really simple:

+
    +
  • A few simple API calls from a modern web app.
  • +
  • Event triggered execution of application logic.
  • +
+

This is deliberately a simple flow, and all kinds of additional layers might well layer on (and fit within the FireFly model):

+
    +
  • NFTs to track ownership etc. related to the digital asset.
  • +
  • Tokenized rewards/payments integrated with the authorization of the transfer of data.
  • +
  • Proof of deterministic execution of the logic to perform the authorization (on-chain, TEEs, ZKPs).
  • +
  • Human workflow, that is of course completely non-deterministic.
  • +
  • Multiple additional process steps, deterministic or not.
  • +
  • Inclusion of multiple additional parties (maybe it's a request-for-tender, submit-tender flow for example).
  • +
  • etc.
  • +
+

Broadcast Public Description of Binary Data Asset (Member 1)

+
    +
  • Upload Blob of the actual data
  • +
  • Returns a hash of the payload
  • +
  • Upload JSON containing the public index data
  • +
  • Includes the hash of the full payload
  • +
  • Send a broadcast message with the public index data
  • +
  • Agree upon a primary key of the data as the "context"
  • +
+

Receive Public Description & Request Asset Data (Member 2)

+
    +
  • Store data in your own off-chain database for rich, efficient query
  • +
  • Run automated logic to decide if you want to request the full data
  • +
  • Upload JSON for data request
  • +
  • Send a private message
  • +
  • Backed by blockchain in this flow
  • +
+

Authorize & Transfer Data (Member 1)

+
    +
  • Inspect the request data
  • +
  • Retrieve data asset by hash
  • +
  • Send the private data in a private message
  • +
  • No blockchain in this flow
  • +
+

Receive Data Asset (Member 2)

+
    +
  • Receive a link to your local copy of the asset data
  • +
+ + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/head/architecture/plugin_architecture.html b/head/architecture/plugin_architecture.html deleted file mode 100644 index 2ae119f44..000000000 --- a/head/architecture/plugin_architecture.html +++ /dev/null @@ -1,466 +0,0 @@ - - - - - - - - - Plugin Architecture - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Plugin Architecture | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
-
- - - - - - - -
-
- - - - -
- -

- - - Plugin Architecture - - -

- -

- - - Table of contents - - -

- - -
    -
  1. Overview
  2. -
  3. FireFly Core
  4. -
  5. Plugin for Connector
  6. -
  7. Connector
  8. -
  9. Infrastructure Runtime
  10. -

- -
-

FireFly Plugin Architecture -This diagram shows the various plugins that are currently in the codebase and the layers in each plugin


- -

FireFly Plugin Architecture -This diagram shows the details of what goes into each layer of a FireFly plugin


-

- - - Overview - - -

- -

The FireFly node is built for extensibility, with separate pluggable runtimes orchestrated into a common API for developers. The mechanics of that -pluggability for developers of new connectors is explained below:

- -

This architecture is designed to provide separations of concerns to account for:

-
    -
  • Differences in code language for the low-level connection to a backend (Java for Corda for example)
  • -
  • Differences in transports, particularly for delivery of events: -
      -
    • Between FireFly Core and the Connector -
        -
      • Different transports other than HTTPS/WebSockets (GRPC etc.), and different wire protocols (socket.io, etc.)
      • -
      -
    • -
    • Between the Connector and the underlying Infrastructure Runtime -
        -
      • Often this is heavy lifting engineering within the connector
      • -
      -
    • -
    -
  • -
  • Differences in High Availability (HA) / Scale architectures -
      -
    • Between FireFly Core, and the Connector -
        -
      • Often for event management, and active/passive connector runtime is sufficient
      • -
      -
    • -
    • Between the Connector and the Infrastructure Runtime -
        -
      • The infrastructure runtimes have all kinds of variation here… think of the potential landscape here from PostreSQL through Besu/Fabric/Corda, to Hyperledger Avalon and even Main-net ethereum
      • -
      -
    • -
    -
  • -
-

- - - FireFly Core - - -

- - -
    -
  • Golang
  • -
  • N-way scalable cluster -
      -
    • Database is also pluggable via this architecture
    • -
    -
  • -
  • No long lived in-memory processing -
      -
    • All micro-batching must be recoverable
    • -
    -
  • -
  • Driven by single configuration set -
      -
    • Viper semantics - file, env var, cmdline flags
    • -
    -
  • -
-

- - - Plugin for Connector - - -

- - -
    -
  • Golang
  • -
  • Statically compiled in support at runtime -
      -
    • Go dynamic plugin support too immature
    • -
    -
  • -
  • Must be 100% FLOSS code (no GPL/LGPL etc.)
  • -
  • Contributed via PR to FF Core
  • -
  • Intended to be lightweight binding/mapping
  • -
  • Must adhere to FF Core Coding Standards
  • -
  • Scrutiny on addition of new frameworks/transports
  • -
-

- - - Connector - - -

- - -
    -
  • Node.js / Java / Golang, etc.
  • -
  • Runs/scales independently from FF core
  • -
  • Coded in any language, OSS or proprietary
  • -
  • One runtime or multiple
  • -
  • HA model can be active/passive or active/active
  • -
  • Expectation is all plugins need a connector -
      -
    • Some exceptions exist (e.g. database plugin)
    • -
    -
  • -
-

- - - Infrastructure Runtime - - -

- - -
    -
  • Besu, Quorum, Corda, Fabric, IPFS, Kafka, etc.
  • -
  • Runs/scales independently from FF Core
  • -
  • Coded in any language, OSS or proprietary
  • -
  • Not specific to FireFly
  • -
  • HA model can be active/passive or active/active
  • -
- - - - - - - - -
-
- - - - -
- -
- - - diff --git a/head/architecture/plugin_architecture/index.html b/head/architecture/plugin_architecture/index.html new file mode 100644 index 000000000..dff176b30 --- /dev/null +++ b/head/architecture/plugin_architecture/index.html @@ -0,0 +1,3570 @@ + + + + + + + + + + + + + + + + + + + + + + + Plugin Architecture - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Plugin Architecture

+ + +
+

FireFly Plugin Architecture +This diagram shows the various plugins that are currently in the codebase and the layers in each plugin

+
+

FireFly Plugin Architecture +This diagram shows the details of what goes into each layer of a FireFly plugin

+
+

Overview

+

The FireFly node is built for extensibility, with separate pluggable runtimes orchestrated into a common API for developers. The mechanics of that +pluggability for developers of new connectors is explained below:

+

This architecture is designed to provide separations of concerns to account for:

+
    +
  • Differences in code language for the low-level connection to a backend (Java for Corda for example)
  • +
  • Differences in transports, particularly for delivery of events:
  • +
  • Between FireFly Core and the Connector
      +
    • Different transports other than HTTPS/WebSockets (GRPC etc.), and different wire protocols (socket.io, etc.)
    • +
    +
  • +
  • Between the Connector and the underlying Infrastructure Runtime
      +
    • Often this is heavy lifting engineering within the connector
    • +
    +
  • +
  • Differences in High Availability (HA) / Scale architectures
  • +
  • Between FireFly Core, and the Connector
      +
    • Often for event management, and active/passive connector runtime is sufficient
    • +
    +
  • +
  • Between the Connector and the Infrastructure Runtime
      +
    • The infrastructure runtimes have all kinds of variation here... think of the potential landscape here from PostreSQL through Besu/Fabric/Corda, to Hyperledger Avalon and even Main-net ethereum
    • +
    +
  • +
+

FireFly Core

+
    +
  • Golang
  • +
  • N-way scalable cluster
  • +
  • Database is also pluggable via this architecture
  • +
  • No long lived in-memory processing
  • +
  • All micro-batching must be recoverable
  • +
  • Driven by single configuration set
  • +
  • Viper semantics - file, env var, cmdline flags
  • +
+

Plugin for Connector

+
    +
  • Golang
  • +
  • Statically compiled in support at runtime
  • +
  • Go dynamic plugin support too immature
  • +
  • Must be 100% FLOSS code (no GPL/LGPL etc.)
  • +
  • Contributed via PR to FF Core
  • +
  • Intended to be lightweight binding/mapping
  • +
  • Must adhere to FF Core Coding Standards
  • +
  • Scrutiny on addition of new frameworks/transports
  • +
+

Connector

+
    +
  • Node.js / Java / Golang, etc.
  • +
  • Runs/scales independently from FF core
  • +
  • Coded in any language, OSS or proprietary
  • +
  • One runtime or multiple
  • +
  • HA model can be active/passive or active/active
  • +
  • Expectation is all plugins need a connector
  • +
  • Some exceptions exist (e.g. database plugin)
  • +
+

Infrastructure Runtime

+
    +
  • Besu, Quorum, Corda, Fabric, IPFS, Kafka, etc.
  • +
  • Runs/scales independently from FF Core
  • +
  • Coded in any language, OSS or proprietary
  • +
  • Not specific to FireFly
  • +
  • HA model can be active/passive or active/active
  • +
+ + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/head/FireFly-Logo.svg b/head/assets/FireFly-Logo.svg similarity index 100% rename from head/FireFly-Logo.svg rename to head/assets/FireFly-Logo.svg diff --git a/head/assets/FireFly_Logo_White.svg b/head/assets/FireFly_Logo_White.svg new file mode 100644 index 000000000..9b8776e1f --- /dev/null +++ b/head/assets/FireFly_Logo_White.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/head/assets/css/just-the-docs-dark.css b/head/assets/css/just-the-docs-dark.css deleted file mode 100644 index 04bfaeadb..000000000 --- a/head/assets/css/just-the-docs-dark.css +++ /dev/null @@ -1,2258 +0,0 @@ -@charset "UTF-8"; -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ -/* Document ========================================================================== */ -/** 1. Correct the line height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. */ -html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } - -/* Sections ========================================================================== */ -/** Remove the margin in all browsers. */ -body { margin: 0; } - -/** Render the `main` element consistently in IE. */ -main { display: block; } - -/** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */ -h1 { font-size: 2em; margin: 0.67em 0; } - -/* Grouping content ========================================================================== */ -/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */ -hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } - -/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ -pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } - -/* Text-level semantics ========================================================================== */ -/** Remove the gray background on active links in IE 10. */ -a { background-color: transparent; } - -/** 1. Remove the bottom border in Chrome 57- 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ -abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } - -/** Add the correct font weight in Chrome, Edge, and Safari. */ -b, strong { font-weight: bolder; } - -/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ -code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } - -/** Add the correct font size in all browsers. */ -small { font-size: 80%; } - -/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } - -sub { bottom: -0.25em; } - -sup { top: -0.5em; } - -/* Embedded content ========================================================================== */ -/** Remove the border on images inside links in IE 10. */ -img { border-style: none; } - -/* Forms ========================================================================== */ -/** 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. */ -button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } - -/** Show the overflow in IE. 1. Show the overflow in Edge. */ -button, input { /* 1 */ overflow: visible; } - -/** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */ -button, select { /* 1 */ text-transform: none; } - -/** Correct the inability to style clickable types in iOS and Safari. */ -button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } - -/** Remove the inner border and padding in Firefox. */ -button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } - -/** Restore the focus styles unset by the previous rule. */ -button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } - -/** Correct the padding in Firefox. */ -fieldset { padding: 0.35em 0.75em 0.625em; } - -/** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */ -legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } - -/** Add the correct vertical alignment in Chrome, Firefox, and Opera. */ -progress { vertical-align: baseline; } - -/** Remove the default vertical scrollbar in IE 10+. */ -textarea { overflow: auto; } - -/** 1. Add the correct box sizing in IE 10. 2. Remove the padding in IE 10. */ -[type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } - -/** Correct the cursor style of increment and decrement buttons in Chrome. */ -[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } - -/** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ -[type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } - -/** Remove the inner padding in Chrome and Safari on macOS. */ -[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */ -::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } - -/* Interactive ========================================================================== */ -/* Add the correct display in Edge, IE 10+, and Firefox. */ -details { display: block; } - -/* Add the correct display in all browsers. */ -summary { display: list-item; } - -/* Misc ========================================================================== */ -/** Add the correct display in IE 10+. */ -template { display: none; } - -/** Add the correct display in IE 10. */ -[hidden] { display: none; } - -* { box-sizing: border-box; } - -::selection { color: #fff; background: #2c84fa; } - -html { font-size: 14px !important; scroll-behavior: smooth; } -@media (min-width: 31.25rem) { html { font-size: 16px !important; } } - -body { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: inherit; line-height: 1.4; color: #e6e1e8; background-color: #27262b; } - -ol, ul, dl, pre, address, blockquote, table, div, hr, form, fieldset, noscript .table-wrapper { margin-top: 0; } - -h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 1em; font-weight: 500; line-height: 1.25; color: #f5f6fa; } - -p { margin-top: 1em; margin-bottom: 1em; } - -a { color: #2c84fa; text-decoration: none; } - -a:not([class]) { text-decoration: none; background-image: linear-gradient(#44434d 0%, #44434d 100%); background-repeat: repeat-x; background-position: 0 100%; background-size: 1px 1px; } -a:not([class]):hover { background-image: linear-gradient(rgba(44, 132, 250, 0.45) 0%, rgba(44, 132, 250, 0.45) 100%); background-size: 1px 1px; } - -code { font-family: "SFMono-Regular", Menlo, Consolas, Monospace; font-size: 0.75em; line-height: 1.4; } - -figure, pre { margin: 0; } - -li { margin: 0.25em 0; } - -img { max-width: 100%; height: auto; } - -hr { height: 1px; padding: 0; margin: 2rem 0; background-color: #44434d; border: 0; } - -.side-bar { z-index: 0; display: flex; flex-wrap: wrap; background-color: #27262b; } -@media (min-width: 50rem) { .side-bar { flex-wrap: nowrap; position: fixed; width: 248px; height: 100%; flex-direction: column; border-right: 1px solid #44434d; align-items: flex-end; } } -@media (min-width: 66.5rem) { .side-bar { width: calc((100% - 1064px) / 2 + 264px); min-width: 264px; } } - -@media (min-width: 50rem) { .main { position: relative; max-width: 800px; margin-left: 248px; } } -@media (min-width: 66.5rem) { .main { margin-left: calc( (100% - 1064px) / 2 + 264px ); } } - -.main-content-wrap { padding-right: 1rem; padding-left: 1rem; padding-top: 1rem; padding-bottom: 1rem; } -@media (min-width: 50rem) { .main-content-wrap { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 50rem) { .main-content-wrap { padding-top: 2rem; padding-bottom: 2rem; } } - -.main-header { z-index: 0; display: none; background-color: #27262b; } -@media (min-width: 50rem) { .main-header { display: flex; justify-content: space-between; height: 60px; background-color: #27262b; border-bottom: 1px solid #44434d; } } -.main-header.nav-open { display: block; } -@media (min-width: 50rem) { .main-header.nav-open { display: flex; } } - -.site-nav, .site-header, .site-footer { width: 100%; } -@media (min-width: 66.5rem) { .site-nav, .site-header, .site-footer { width: 264px; } } - -.site-nav { display: none; } -.site-nav.nav-open { display: block; } -@media (min-width: 50rem) { .site-nav { display: block; padding-top: 3rem; padding-bottom: 1rem; overflow-y: auto; flex: 1 1 auto; } } - -.site-header { display: flex; min-height: 60px; align-items: center; } -@media (min-width: 50rem) { .site-header { height: 60px; max-height: 60px; border-bottom: 1px solid #44434d; } } - -.site-title { padding-right: 1rem; padding-left: 1rem; flex-grow: 1; display: flex; height: 100%; align-items: center; padding-top: 0.75rem; padding-bottom: 0.75rem; color: #f5f6fa; font-size: 18px !important; } -@media (min-width: 50rem) { .site-title { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-title { font-size: 24px !important; line-height: 1.25; } } -@media (min-width: 50rem) { .site-title { padding-top: 0.5rem; padding-bottom: 0.5rem; } } - -.site-logo { width: 100%; height: 100%; background-image: url("/firefly/head/images/hyperledger-firefly_color.svg"); background-repeat: no-repeat; background-position: left center; background-size: contain; } - -.site-button { display: flex; height: 100%; padding: 1rem; align-items: center; } - -@media (min-width: 50rem) { .site-header .site-button { display: none; } } -.site-title:hover { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); } - -.site-button:hover { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 100%); } - -body { position: relative; padding-bottom: 4rem; overflow-y: scroll; } -@media (min-width: 50rem) { body { position: static; padding-bottom: 0; } } - -.site-footer { padding-right: 1rem; padding-left: 1rem; position: absolute; bottom: 0; left: 0; padding-top: 1rem; padding-bottom: 1rem; color: #959396; font-size: 11px !important; } -@media (min-width: 50rem) { .site-footer { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-footer { font-size: 12px !important; } } -@media (min-width: 50rem) { .site-footer { position: static; justify-self: end; } } - -.icon { width: 1.5rem; height: 1.5rem; color: #2c84fa; } - -.main-content { line-height: 1.6; } -.main-content ol, .main-content ul, .main-content dl, .main-content pre, .main-content address, .main-content blockquote, .main-content .table-wrapper { margin-top: 0.5em; } -.main-content a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.main-content ul, .main-content ol { padding-left: 1.5em; } -.main-content li .highlight { margin-top: 0.25rem; } -.main-content ol { list-style-type: none; counter-reset: step-counter; } -.main-content ol > li { position: relative; } -.main-content ol > li::before { position: absolute; top: 0.2em; left: -1.6em; color: #959396; content: counter(step-counter); counter-increment: step-counter; font-size: 12px !important; } -@media (min-width: 31.25rem) { .main-content ol > li::before { font-size: 14px !important; } } -@media (min-width: 31.25rem) { .main-content ol > li::before { top: 0.11em; } } -.main-content ol > li ol { counter-reset: sub-counter; } -.main-content ol > li ol li::before { content: counter(sub-counter,lower-alpha); counter-increment: sub-counter; } -.main-content ul { list-style: none; } -.main-content ul > li::before { position: absolute; margin-left: -1.4em; color: #959396; content: "•"; } -.main-content .task-list { padding-left: 0; } -.main-content .task-list-item { display: flex; align-items: center; } -.main-content .task-list-item::before { content: ""; } -.main-content .task-list-item-checkbox { margin-right: 0.6em; } -.main-content hr + * { margin-top: 0; } -.main-content h1:first-of-type { margin-top: 0.5em; } -.main-content dl { display: grid; grid-template: auto / 10em 1fr; } -.main-content dt, .main-content dd { margin: 0.25em 0; } -.main-content dt { grid-column: 1; font-weight: 500; text-align: right; } -.main-content dt::after { content: ":"; } -.main-content dd { grid-column: 2; margin-bottom: 0; margin-left: 1em; } -.main-content dd blockquote:first-child, .main-content dd div:first-child, .main-content dd dl:first-child, .main-content dd dt:first-child, .main-content dd h1:first-child, .main-content dd h2:first-child, .main-content dd h3:first-child, .main-content dd h4:first-child, .main-content dd h5:first-child, .main-content dd h6:first-child, .main-content dd li:first-child, .main-content dd ol:first-child, .main-content dd p:first-child, .main-content dd pre:first-child, .main-content dd table:first-child, .main-content dd ul:first-child, .main-content dd .table-wrapper:first-child { margin-top: 0; } -.main-content dd dl:first-child dt:first-child, .main-content dd dl:first-child dd:nth-child(2), .main-content ol dl:first-child dt:first-child, .main-content ol dl:first-child dd:nth-child(2), .main-content ul dl:first-child dt:first-child, .main-content ul dl:first-child dd:nth-child(2) { margin-top: 0; } -.main-content .anchor-heading { position: absolute; right: -1rem; width: 1.5rem; height: 100%; padding-right: 0.25rem; padding-left: 0.25rem; overflow: visible; } -@media (min-width: 50rem) { .main-content .anchor-heading { right: auto; left: -1.5rem; } } -.main-content .anchor-heading svg { display: inline-block; width: 100%; height: 100%; color: #2c84fa; visibility: hidden; } -.main-content .anchor-heading:hover svg, .main-content h1:hover > .anchor-heading svg, .main-content h2:hover > .anchor-heading svg, .main-content h3:hover > .anchor-heading svg, .main-content h4:hover > .anchor-heading svg, .main-content h5:hover > .anchor-heading svg, .main-content h6:hover > .anchor-heading svg { visibility: visible; } -.main-content summary { cursor: pointer; } -.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { position: relative; margin-top: 1.5em; margin-bottom: 0.25em; } -.main-content h1:first-child, .main-content h2:first-child, .main-content h3:first-child, .main-content h4:first-child, .main-content h5:first-child, .main-content h6:first-child { margin-top: 0.5rem; } -.main-content h1 + table, .main-content h1 + .table-wrapper, .main-content h1 + .code-example, .main-content h1 + .highlighter-rouge, .main-content h2 + table, .main-content h2 + .table-wrapper, .main-content h2 + .code-example, .main-content h2 + .highlighter-rouge, .main-content h3 + table, .main-content h3 + .table-wrapper, .main-content h3 + .code-example, .main-content h3 + .highlighter-rouge, .main-content h4 + table, .main-content h4 + .table-wrapper, .main-content h4 + .code-example, .main-content h4 + .highlighter-rouge, .main-content h5 + table, .main-content h5 + .table-wrapper, .main-content h5 + .code-example, .main-content h5 + .highlighter-rouge, .main-content h6 + table, .main-content h6 + .table-wrapper, .main-content h6 + .code-example, .main-content h6 + .highlighter-rouge { margin-top: 1em; } -.main-content h1 + p, .main-content h2 + p, .main-content h3 + p, .main-content h4 + p, .main-content h5 + p, .main-content h6 + p { margin-top: 0; } - -.nav-list { padding: 0; margin-top: 0; margin-bottom: 0; list-style: none; } -.nav-list .nav-list-item { font-size: 14px !important; position: relative; margin: 0; } -@media (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 16px !important; } } -@media (min-width: 50rem) { .nav-list .nav-list-item { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 14px !important; } } - -.nav-list .nav-list-item .nav-list-link { display: block; min-height: 3rem; padding-top: 0.25rem; padding-bottom: 0.25rem; line-height: 2.5rem; padding-right: 3rem; padding-left: 1rem; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-link { min-height: 2rem; line-height: 1.5rem; padding-right: 2rem; padding-left: 2rem; } } -.nav-list .nav-list-item .nav-list-link.active { font-weight: 600; text-decoration: none; } -.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); } -.nav-list .nav-list-item .nav-list-expander { position: absolute; right: 0; width: 3rem; height: 3rem; padding-top: 0.75rem; padding-right: 0.75rem; padding-bottom: 0.75rem; padding-left: 0.75rem; color: #2c84fa; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-expander { width: 2rem; height: 2rem; padding-top: 0.5rem; padding-right: 0.5rem; padding-bottom: 0.5rem; padding-left: 0.5rem; } } -.nav-list .nav-list-item .nav-list-expander:hover { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 100%); } -.nav-list .nav-list-item .nav-list-expander svg { transform: rotate(90deg); } -.nav-list .nav-list-item > .nav-list { display: none; padding-left: 0.75rem; list-style: none; } -.nav-list .nav-list-item > .nav-list .nav-list-item { position: relative; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { color: #959396; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { color: #959396; } -.nav-list .nav-list-item.active > .nav-list-expander svg { transform: rotate(-90deg); } -.nav-list .nav-list-item.active > .nav-list { display: block; } - -.nav-category { padding-top: 0.5rem; padding-right: 1rem; padding-bottom: 0.5rem; padding-left: 1rem; font-weight: 600; text-align: end; text-transform: uppercase; border-bottom: 1px solid #44434d; font-size: 11px !important; } -@media (min-width: 31.25rem) { .nav-category { font-size: 12px !important; } } -@media (min-width: 50rem) { .nav-category { padding-right: 2rem; padding-left: 2rem; margin-top: 1rem; text-align: start; } - .nav-category:first-child { margin-top: 0; } } - -.aux-nav { height: 100%; overflow-x: auto; font-size: 11px !important; } -@media (min-width: 31.25rem) { .aux-nav { font-size: 12px !important; } } -.aux-nav .aux-nav-list { display: flex; height: 100%; padding: 0; margin: 0; list-style: none; } -.aux-nav .aux-nav-list-item { display: inline-block; height: 100%; padding: 0; margin: 0; } -@media (min-width: 50rem) { .aux-nav { padding-right: 1rem; } } - -@media (min-width: 50rem) { .breadcrumb-nav { margin-top: -1rem; } } - -.breadcrumb-nav-list { padding-left: 0; margin-bottom: 0.75rem; list-style: none; } - -.breadcrumb-nav-list-item { display: table-cell; font-size: 11px !important; } -@media (min-width: 31.25rem) { .breadcrumb-nav-list-item { font-size: 12px !important; } } -.breadcrumb-nav-list-item::before { display: none; } -.breadcrumb-nav-list-item::after { display: inline-block; margin-right: 0.5rem; margin-left: 0.5rem; color: #959396; content: "/"; } -.breadcrumb-nav-list-item:last-child::after { content: ""; } - -h1, .text-alpha { font-size: 32px !important; line-height: 1.25; font-weight: 300; } -@media (min-width: 31.25rem) { h1, .text-alpha { font-size: 36px !important; } } - -h2, .text-beta { font-size: 18px !important; } -@media (min-width: 31.25rem) { h2, .text-beta { font-size: 24px !important; line-height: 1.25; } } - -h3, .text-gamma { font-size: 16px !important; } -@media (min-width: 31.25rem) { h3, .text-gamma { font-size: 18px !important; } } - -h4, .text-delta { font-size: 11px !important; font-weight: 400; text-transform: uppercase; letter-spacing: 0.1em; } -@media (min-width: 31.25rem) { h4, .text-delta { font-size: 12px !important; } } - -h4 code { text-transform: none; } - -h5, .text-epsilon { font-size: 12px !important; color: #44434d; } -@media (min-width: 31.25rem) { h5, .text-epsilon { font-size: 14px !important; } } - -h6, .text-zeta { font-size: 11px !important; color: #44434d; } -@media (min-width: 31.25rem) { h6, .text-zeta { font-size: 12px !important; } } - -.text-small { font-size: 11px !important; } -@media (min-width: 31.25rem) { .text-small { font-size: 12px !important; } } - -.text-mono { font-family: "SFMono-Regular", Menlo, Consolas, Monospace !important; } - -.text-left { text-align: left !important; } - -.text-center { text-align: center !important; } - -.text-right { text-align: right !important; } - -.label, .label-blue { display: inline-block; padding-top: 0.16em; padding-right: 0.56em; padding-bottom: 0.16em; padding-left: 0.56em; margin-right: 0.5rem; margin-left: 0.5rem; color: #fff; text-transform: uppercase; vertical-align: middle; background-color: #2869e6; font-size: 11px !important; border-radius: 12px; } -@media (min-width: 31.25rem) { .label, .label-blue { font-size: 12px !important; } } - -.label-green { background-color: #009c7b; } - -.label-purple { background-color: #5e41d0; } - -.label-red { background-color: #e94c4c; } - -.label-yellow { color: #44434d; background-color: #f7d12e; } - -.btn { display: inline-block; box-sizing: border-box; padding-top: 0.3em; padding-right: 1em; padding-bottom: 0.3em; padding-left: 1em; margin: 0; font-family: inherit; font-size: inherit; font-weight: 500; line-height: 1.5; color: #2c84fa; text-decoration: none; vertical-align: baseline; cursor: pointer; background-color: #302d36; border-width: 0; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); appearance: none; } -.btn:focus { text-decoration: none; outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:focus:hover, .btn.selected:focus { box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:hover, .btn.zeroclipboard-is-hover { color: #227efa; } -.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { text-decoration: none; background-color: #2e2b33; } -.btn:active, .btn.selected, .btn.zeroclipboard-is-active { background-color: #29262e; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn.selected:hover { background-color: #cfcfcf; } -.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { color: rgba(102, 102, 102, 0.5); cursor: default; background-color: rgba(229, 229, 229, 0.5); background-image: none; box-shadow: none; } - -.btn-outline { color: #2c84fa; background: transparent; box-shadow: inset 0 0 0 2px #e6e1e8; } -.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { color: #1878fa; text-decoration: none; background-color: transparent; box-shadow: inset 0 0 0 3px #e6e1e8; } -.btn-outline:focus { text-decoration: none; outline: none; box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn-outline:focus:hover, .btn-outline.selected:focus { box-shadow: inset 0 0 0 2px #5c5962; } - -.btn-primary { color: #fff; background-color: #2448a7; background-image: linear-gradient(#2b55c4, #2448a7); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { color: #fff; background-color: #22459e; background-image: linear-gradient(#2850b7, #22459e); } -.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { background-color: #21439a; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-primary.selected:hover { background-color: #1d3a85; } - -.btn-purple { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } -.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-purple.selected:hover { background-color: #472cb2; } - -.btn-blue { color: #fff; background-color: #227efa; background-image: linear-gradient(#4593fb, #227efa); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { color: #fff; background-color: #1878fa; background-image: linear-gradient(#368afa, #1878fa); } -.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { background-color: #1375f9; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-blue.selected:hover { background-color: #0669ed; } - -.btn-green { color: #fff; background-color: #10ac7d; background-image: linear-gradient(#13cc95, #10ac7d); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-green:hover, .btn-green.zeroclipboard-is-hover { color: #fff; background-color: #0fa276; background-image: linear-gradient(#12be8b, #0fa276); } -.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { background-color: #0f9e73; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-green.selected:hover { background-color: #0d8662; } - -.search { position: relative; z-index: 2; flex-grow: 1; height: 4rem; padding: 0.5rem; transition: padding linear 200ms; } -@media (min-width: 50rem) { .search { position: relative !important; width: auto !important; height: 100% !important; padding: 0; transition: none; } } - -.search-input-wrap { position: relative; z-index: 1; height: 3rem; overflow: hidden; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); transition: height linear 200ms; } -@media (min-width: 50rem) { .search-input-wrap { position: absolute; width: 100%; max-width: 536px; height: 100% !important; border-radius: 0; box-shadow: none; transition: width ease 400ms; } } - -.search-input { position: absolute; width: 100%; height: 100%; padding-top: 0.5rem; padding-right: 1rem; padding-bottom: 0.5rem; padding-left: 2.5rem; font-size: 16px; background-color: #302d36; border-top: 0; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; } -@media (min-width: 50rem) { .search-input { padding-top: 1rem; padding-bottom: 1rem; padding-left: 3.5rem; font-size: 14px; background-color: #27262b; transition: padding-left linear 200ms; } } -.search-input:focus { outline: 0; } -.search-input:focus + .search-label .search-icon { color: #2c84fa; } - -.search-label { position: absolute; display: flex; height: 100%; padding-left: 1rem; } -@media (min-width: 50rem) { .search-label { padding-left: 2rem; transition: padding-left linear 200ms; } } -.search-label .search-icon { width: 1.2rem; height: 1.2rem; align-self: center; color: #959396; } - -.search-results { position: absolute; left: 0; display: none; width: 100%; max-height: calc(100% - 4rem); overflow-y: auto; background-color: #302d36; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } -@media (min-width: 50rem) { .search-results { top: 100%; width: 536px; max-height: calc(100vh - 200%) !important; } } - -.search-results-list { padding-left: 0; margin-bottom: 0.25rem; list-style: none; font-size: 14px !important; } -@media (min-width: 31.25rem) { .search-results-list { font-size: 16px !important; } } -@media (min-width: 50rem) { .search-results-list { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-results-list { font-size: 14px !important; } } - -.search-results-list-item { padding: 0; margin: 0; } - -.search-result { display: block; padding-top: 0.25rem; padding-right: 0.75rem; padding-bottom: 0.25rem; padding-left: 0.75rem; } -.search-result:hover, .search-result.active { background-color: #201f23; } - -.search-result-title { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; } -@media (min-width: 31.25rem) { .search-result-title { display: inline-block; width: 40%; padding-right: 0.5rem; vertical-align: top; } } - -.search-result-doc { display: flex; align-items: center; word-wrap: break-word; } -.search-result-doc.search-result-doc-parent { opacity: 0.5; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 14px !important; } } -@media (min-width: 50rem) { .search-result-doc.search-result-doc-parent { font-size: 11px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 12px !important; } } - -.search-result-doc .search-result-icon { width: 1rem; height: 1rem; margin-right: 0.5rem; color: #2c84fa; flex-shrink: 0; } -.search-result-doc .search-result-doc-title { overflow: auto; } - -.search-result-section { margin-left: 1.5rem; word-wrap: break-word; } - -.search-result-rel-url { display: block; margin-left: 1.5rem; overflow: hidden; color: #959396; text-overflow: ellipsis; white-space: nowrap; font-size: 9px !important; } -@media (min-width: 31.25rem) { .search-result-rel-url { font-size: 10px !important; } } - -.search-result-previews { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1rem; margin-left: 0.5rem; color: #959396; word-wrap: break-word; border-left: 1px solid; border-left-color: #44434d; font-size: 11px !important; } -@media (min-width: 31.25rem) { .search-result-previews { font-size: 12px !important; } } -@media (min-width: 31.25rem) { .search-result-previews { display: inline-block; width: 60%; padding-left: 0.5rem; margin-left: 0; vertical-align: top; } } - -.search-result-preview + .search-result-preview { margin-top: 0.25rem; } - -.search-result-highlight { font-weight: bold; } - -.search-no-result { padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-no-result { font-size: 14px !important; } } - -.search-button { position: fixed; right: 1rem; bottom: 1rem; display: flex; width: 3.5rem; height: 3.5rem; background-color: #302d36; border: 1px solid rgba(44, 132, 250, 0.3); border-radius: 1.75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); align-items: center; justify-content: center; } - -.search-overlay { position: fixed; top: 0; left: 0; z-index: 1; width: 0; height: 0; background-color: rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; } - -.search-active .search { position: fixed; top: 0; left: 0; width: 100%; height: 100%; padding: 0; } -.search-active .search-input-wrap { height: 4rem; border-radius: 0; } -@media (min-width: 50rem) { .search-active .search-input-wrap { width: 536px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } } -.search-active .search-input { background-color: #302d36; } -@media (min-width: 50rem) { .search-active .search-input { padding-left: 2.3rem; } } -@media (min-width: 50rem) { .search-active .search-label { padding-left: 0.6rem; } } -.search-active .search-results { display: block; } -.search-active .search-overlay { width: 100%; height: 100%; opacity: 1; transition: opacity ease 400ms, width 0s, height 0s; } -@media (min-width: 50rem) { .search-active .main { position: fixed; right: 0; left: 0; } } -.search-active .main-header { padding-top: 4rem; } -@media (min-width: 50rem) { .search-active .main-header { padding-top: 0; } } - -.table-wrapper { display: block; width: 100%; max-width: 100%; margin-bottom: 1.5rem; overflow-x: auto; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } - -table { display: table; min-width: 100%; border-collapse: separate; } - -th, td { font-size: 12px !important; min-width: 120px; padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; background-color: #302d36; border-bottom: 1px solid rgba(68, 67, 77, 0.5); border-left: 1px solid #44434d; } -@media (min-width: 31.25rem) { th, td { font-size: 14px !important; } } -th:first-of-type, td:first-of-type { border-left: 0; } - -tbody tr:last-of-type th, tbody tr:last-of-type td { border-bottom: 0; } -tbody tr:last-of-type td { padding-bottom: 0.75rem; } - -thead th { border-bottom: 1px solid #44434d; } - -code { padding: 0.2em 0.15em; font-weight: 400; background-color: #302d36; border: 1px solid #44434d; border-radius: 4px; } - -a:visited code { border-color: #44434d; } - -div.highlighter-rouge { padding: 0.75rem; margin-top: 0; margin-bottom: 0.75rem; overflow-x: auto; background-color: #302d36; border-radius: 4px; box-shadow: none; -webkit-overflow-scrolling: touch; } -div.highlighter-rouge div.highlight, div.highlighter-rouge pre.highlight, div.highlighter-rouge code { padding: 0; margin: 0; border: 0; } - -figure.highlight { padding: 0.75rem; margin-top: 0; margin-bottom: 0.75rem; background-color: #302d36; border-radius: 4px; box-shadow: none; -webkit-overflow-scrolling: touch; } -figure.highlight pre, figure.highlight code { padding: 0; margin: 0; border: 0; } - -.highlight .table-wrapper { padding: 0; margin: 0; border: 0; box-shadow: none; } -.highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 11px !important; min-width: 0; padding: 0; background-color: #302d36; border: 0; } -@media (min-width: 31.25rem) { .highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 12px !important; } } -.highlight .table-wrapper td.gl { padding-right: 0.75rem; } -.highlight .table-wrapper pre { margin: 0; line-height: 2; } - -.highlight .c { color: #586e75; } - -.highlight .err { color: #93a1a1; } - -.highlight .g { color: #93a1a1; } - -.highlight .k { color: #859900; } - -.highlight .l { color: #93a1a1; } - -.highlight .n { color: #93a1a1; } - -.highlight .o { color: #859900; } - -.highlight .x { color: #cb4b16; } - -.highlight .p { color: #93a1a1; } - -.highlight .cm { color: #586e75; } - -.highlight .cp { color: #859900; } - -.highlight .c1 { color: #586e75; } - -.highlight .cs { color: #859900; } - -.highlight .gd { color: #2aa198; } - -.highlight .ge { font-style: italic; color: #93a1a1; } - -.highlight .gr { color: #dc322f; } - -.highlight .gh { color: #cb4b16; } - -.highlight .gi { color: #859900; } - -.highlight .go { color: #93a1a1; } - -.highlight .gp { color: #93a1a1; } - -.highlight .gs { font-weight: bold; color: #93a1a1; } - -.highlight .gu { color: #cb4b16; } - -.highlight .gt { color: #93a1a1; } - -.highlight .kc { color: #cb4b16; } - -.highlight .kd { color: #268bd2; } - -.highlight .kn { color: #859900; } - -.highlight .kp { color: #859900; } - -.highlight .kr { color: #268bd2; } - -.highlight .kt { color: #dc322f; } - -.highlight .ld { color: #93a1a1; } - -.highlight .m { color: #2aa198; } - -.highlight .s { color: #2aa198; } - -.highlight .na { color: #555; } - -.highlight .nb { color: #b58900; } - -.highlight .nc { color: #268bd2; } - -.highlight .no { color: #cb4b16; } - -.highlight .nd { color: #268bd2; } - -.highlight .ni { color: #cb4b16; } - -.highlight .ne { color: #cb4b16; } - -.highlight .nf { color: #268bd2; } - -.highlight .nl { color: #555; } - -.highlight .nn { color: #93a1a1; } - -.highlight .nx { color: #555; } - -.highlight .py { color: #93a1a1; } - -.highlight .nt { color: #268bd2; } - -.highlight .nv { color: #268bd2; } - -.highlight .ow { color: #859900; } - -.highlight .w { color: #93a1a1; } - -.highlight .mf { color: #2aa198; } - -.highlight .mh { color: #2aa198; } - -.highlight .mi { color: #2aa198; } - -.highlight .mo { color: #2aa198; } - -.highlight .sb { color: #586e75; } - -.highlight .sc { color: #2aa198; } - -.highlight .sd { color: #93a1a1; } - -.highlight .s2 { color: #2aa198; } - -.highlight .se { color: #cb4b16; } - -.highlight .sh { color: #93a1a1; } - -.highlight .si { color: #2aa198; } - -.highlight .sx { color: #2aa198; } - -.highlight .sr { color: #dc322f; } - -.highlight .s1 { color: #2aa198; } - -.highlight .ss { color: #2aa198; } - -.highlight .bp { color: #268bd2; } - -.highlight .vc { color: #268bd2; } - -.highlight .vg { color: #268bd2; } - -.highlight .vi { color: #268bd2; } - -.highlight .il { color: #2aa198; } - -.code-example { padding: 0.75rem; margin-bottom: 0.75rem; overflow: auto; border: 1px solid #44434d; border-radius: 4px; } -.code-example + .highlighter-rouge, .code-example + figure.highlight { position: relative; margin-top: -1rem; border-right: 1px solid #44434d; border-bottom: 1px solid #44434d; border-left: 1px solid #44434d; border-top-left-radius: 0; border-top-right-radius: 0; } - -.text-grey-dk-000 { color: #959396 !important; } - -.text-grey-dk-100 { color: #5c5962 !important; } - -.text-grey-dk-200 { color: #44434d !important; } - -.text-grey-dk-250 { color: #302d36 !important; } - -.text-grey-dk-300 { color: #27262b !important; } - -.text-grey-lt-000 { color: #f5f6fa !important; } - -.text-grey-lt-100 { color: #eeebee !important; } - -.text-grey-lt-200 { color: #ecebed !important; } - -.text-grey-lt-300 { color: #e6e1e8 !important; } - -.text-blue-000 { color: #2c84fa !important; } - -.text-blue-100 { color: #2869e6 !important; } - -.text-blue-200 { color: #264caf !important; } - -.text-blue-300 { color: #183385 !important; } - -.text-green-000 { color: #41d693 !important; } - -.text-green-100 { color: #11b584 !important; } - -.text-green-200 { color: #009c7b !important; } - -.text-green-300 { color: #026e57 !important; } - -.text-purple-000 { color: #7253ed !important; } - -.text-purple-100 { color: #5e41d0 !important; } - -.text-purple-200 { color: #4e26af !important; } - -.text-purple-300 { color: #381885 !important; } - -.text-yellow-000 { color: #ffeb82 !important; } - -.text-yellow-100 { color: #fadf50 !important; } - -.text-yellow-200 { color: #f7d12e !important; } - -.text-yellow-300 { color: #e7af06 !important; } - -.text-red-000 { color: #f77e7e !important; } - -.text-red-100 { color: #f96e65 !important; } - -.text-red-200 { color: #e94c4c !important; } - -.text-red-300 { color: #dd2e2e !important; } - -.bg-grey-dk-000 { background-color: #959396 !important; } - -.bg-grey-dk-100 { background-color: #5c5962 !important; } - -.bg-grey-dk-200 { background-color: #44434d !important; } - -.bg-grey-dk-250 { background-color: #302d36 !important; } - -.bg-grey-dk-300 { background-color: #27262b !important; } - -.bg-grey-lt-000 { background-color: #f5f6fa !important; } - -.bg-grey-lt-100 { background-color: #eeebee !important; } - -.bg-grey-lt-200 { background-color: #ecebed !important; } - -.bg-grey-lt-300 { background-color: #e6e1e8 !important; } - -.bg-blue-000 { background-color: #2c84fa !important; } - -.bg-blue-100 { background-color: #2869e6 !important; } - -.bg-blue-200 { background-color: #264caf !important; } - -.bg-blue-300 { background-color: #183385 !important; } - -.bg-green-000 { background-color: #41d693 !important; } - -.bg-green-100 { background-color: #11b584 !important; } - -.bg-green-200 { background-color: #009c7b !important; } - -.bg-green-300 { background-color: #026e57 !important; } - -.bg-purple-000 { background-color: #7253ed !important; } - -.bg-purple-100 { background-color: #5e41d0 !important; } - -.bg-purple-200 { background-color: #4e26af !important; } - -.bg-purple-300 { background-color: #381885 !important; } - -.bg-yellow-000 { background-color: #ffeb82 !important; } - -.bg-yellow-100 { background-color: #fadf50 !important; } - -.bg-yellow-200 { background-color: #f7d12e !important; } - -.bg-yellow-300 { background-color: #e7af06 !important; } - -.bg-red-000 { background-color: #f77e7e !important; } - -.bg-red-100 { background-color: #f96e65 !important; } - -.bg-red-200 { background-color: #e94c4c !important; } - -.bg-red-300 { background-color: #dd2e2e !important; } - -.d-block { display: block !important; } - -.d-flex { display: flex !important; } - -.d-inline { display: inline !important; } - -.d-inline-block { display: inline-block !important; } - -.d-none { display: none !important; } - -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -.float-left { float: left !important; } - -.float-right { float: right !important; } - -.flex-justify-start { justify-content: flex-start !important; } - -.flex-justify-end { justify-content: flex-end !important; } - -.flex-justify-between { justify-content: space-between !important; } - -.flex-justify-around { justify-content: space-around !important; } - -.v-align-baseline { vertical-align: baseline !important; } - -.v-align-bottom { vertical-align: bottom !important; } - -.v-align-middle { vertical-align: middle !important; } - -.v-align-text-bottom { vertical-align: text-bottom !important; } - -.v-align-text-top { vertical-align: text-top !important; } - -.v-align-top { vertical-align: top !important; } - -.fs-1 { font-size: 9px !important; } -@media (min-width: 31.25rem) { .fs-1 { font-size: 10px !important; } } - -.fs-2 { font-size: 11px !important; } -@media (min-width: 31.25rem) { .fs-2 { font-size: 12px !important; } } - -.fs-3 { font-size: 12px !important; } -@media (min-width: 31.25rem) { .fs-3 { font-size: 14px !important; } } - -.fs-4 { font-size: 14px !important; } -@media (min-width: 31.25rem) { .fs-4 { font-size: 16px !important; } } - -.fs-5 { font-size: 16px !important; } -@media (min-width: 31.25rem) { .fs-5 { font-size: 18px !important; } } - -.fs-6 { font-size: 18px !important; } -@media (min-width: 31.25rem) { .fs-6 { font-size: 24px !important; line-height: 1.25; } } - -.fs-7 { font-size: 24px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-7 { font-size: 32px !important; } } - -.fs-8 { font-size: 32px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-8 { font-size: 36px !important; } } - -.fs-9 { font-size: 36px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-9 { font-size: 42px !important; } } - -.fs-10 { font-size: 42px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-10 { font-size: 48px !important; } } - -.fw-300 { font-weight: 300 !important; } - -.fw-400 { font-weight: 400 !important; } - -.fw-500 { font-weight: 500 !important; } - -.fw-700 { font-weight: 700 !important; } - -.lh-0 { line-height: 0 !important; } - -.lh-default { line-height: 1.4; } - -.lh-tight { line-height: 1.25; } - -.ls-5 { letter-spacing: 0.05em !important; } - -.ls-10 { letter-spacing: 0.1em !important; } - -.ls-0 { letter-spacing: 0 !important; } - -.text-uppercase { text-transform: uppercase !important; } - -.list-style-none { padding: 0 !important; margin: 0 !important; list-style: none !important; } -.list-style-none li::before { display: none !important; } - -.mx-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-0 { margin: 0 !important; } - -.mt-0 { margin-top: 0 !important; } - -.mr-0 { margin-right: 0 !important; } - -.mb-0 { margin-bottom: 0 !important; } - -.ml-0 { margin-left: 0 !important; } - -.mx-0 { margin-right: 0 !important; margin-left: 0 !important; } - -.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - -.mxn-0 { margin-right: -0 !important; margin-left: -0 !important; } - -.mx-0-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-1 { margin: 0.25rem !important; } - -.mt-1 { margin-top: 0.25rem !important; } - -.mr-1 { margin-right: 0.25rem !important; } - -.mb-1 { margin-bottom: 0.25rem !important; } - -.ml-1 { margin-left: 0.25rem !important; } - -.mx-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - -.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - -.mxn-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } - -.mx-1-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-2 { margin: 0.5rem !important; } - -.mt-2 { margin-top: 0.5rem !important; } - -.mr-2 { margin-right: 0.5rem !important; } - -.mb-2 { margin-bottom: 0.5rem !important; } - -.ml-2 { margin-left: 0.5rem !important; } - -.mx-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - -.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - -.mxn-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } - -.mx-2-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-3 { margin: 0.75rem !important; } - -.mt-3 { margin-top: 0.75rem !important; } - -.mr-3 { margin-right: 0.75rem !important; } - -.mb-3 { margin-bottom: 0.75rem !important; } - -.ml-3 { margin-left: 0.75rem !important; } - -.mx-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - -.my-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - -.mxn-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } - -.mx-3-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-4 { margin: 1rem !important; } - -.mt-4 { margin-top: 1rem !important; } - -.mr-4 { margin-right: 1rem !important; } - -.mb-4 { margin-bottom: 1rem !important; } - -.ml-4 { margin-left: 1rem !important; } - -.mx-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - -.my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - -.mxn-4 { margin-right: -1rem !important; margin-left: -1rem !important; } - -.mx-4-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-5 { margin: 1.5rem !important; } - -.mt-5 { margin-top: 1.5rem !important; } - -.mr-5 { margin-right: 1.5rem !important; } - -.mb-5 { margin-bottom: 1.5rem !important; } - -.ml-5 { margin-left: 1.5rem !important; } - -.mx-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - -.my-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - -.mxn-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } - -.mx-5-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-6 { margin: 2rem !important; } - -.mt-6 { margin-top: 2rem !important; } - -.mr-6 { margin-right: 2rem !important; } - -.mb-6 { margin-bottom: 2rem !important; } - -.ml-6 { margin-left: 2rem !important; } - -.mx-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - -.my-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - -.mxn-6 { margin-right: -2rem !important; margin-left: -2rem !important; } - -.mx-6-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-7 { margin: 2.5rem !important; } - -.mt-7 { margin-top: 2.5rem !important; } - -.mr-7 { margin-right: 2.5rem !important; } - -.mb-7 { margin-bottom: 2.5rem !important; } - -.ml-7 { margin-left: 2.5rem !important; } - -.mx-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - -.my-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - -.mxn-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } - -.mx-7-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-8 { margin: 3rem !important; } - -.mt-8 { margin-top: 3rem !important; } - -.mr-8 { margin-right: 3rem !important; } - -.mb-8 { margin-bottom: 3rem !important; } - -.ml-8 { margin-left: 3rem !important; } - -.mx-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - -.my-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - -.mxn-8 { margin-right: -3rem !important; margin-left: -3rem !important; } - -.mx-8-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-9 { margin: 3.5rem !important; } - -.mt-9 { margin-top: 3.5rem !important; } - -.mr-9 { margin-right: 3.5rem !important; } - -.mb-9 { margin-bottom: 3.5rem !important; } - -.ml-9 { margin-left: 3.5rem !important; } - -.mx-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - -.my-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - -.mxn-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } - -.mx-9-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-10 { margin: 4rem !important; } - -.mt-10 { margin-top: 4rem !important; } - -.mr-10 { margin-right: 4rem !important; } - -.mb-10 { margin-bottom: 4rem !important; } - -.ml-10 { margin-left: 4rem !important; } - -.mx-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - -.my-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - -.mxn-10 { margin-right: -4rem !important; margin-left: -4rem !important; } - -.mx-10-auto { margin-right: auto !important; margin-left: auto !important; } - -@media (min-width: 20rem) { .m-xs-0 { margin: 0 !important; } - .mt-xs-0 { margin-top: 0 !important; } - .mr-xs-0 { margin-right: 0 !important; } - .mb-xs-0 { margin-bottom: 0 !important; } - .ml-xs-0 { margin-left: 0 !important; } - .mx-xs-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xs-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xs-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 20rem) { .m-xs-1 { margin: 0.25rem !important; } - .mt-xs-1 { margin-top: 0.25rem !important; } - .mr-xs-1 { margin-right: 0.25rem !important; } - .mb-xs-1 { margin-bottom: 0.25rem !important; } - .ml-xs-1 { margin-left: 0.25rem !important; } - .mx-xs-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xs-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xs-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 20rem) { .m-xs-2 { margin: 0.5rem !important; } - .mt-xs-2 { margin-top: 0.5rem !important; } - .mr-xs-2 { margin-right: 0.5rem !important; } - .mb-xs-2 { margin-bottom: 0.5rem !important; } - .ml-xs-2 { margin-left: 0.5rem !important; } - .mx-xs-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xs-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xs-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 20rem) { .m-xs-3 { margin: 0.75rem !important; } - .mt-xs-3 { margin-top: 0.75rem !important; } - .mr-xs-3 { margin-right: 0.75rem !important; } - .mb-xs-3 { margin-bottom: 0.75rem !important; } - .ml-xs-3 { margin-left: 0.75rem !important; } - .mx-xs-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xs-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xs-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 20rem) { .m-xs-4 { margin: 1rem !important; } - .mt-xs-4 { margin-top: 1rem !important; } - .mr-xs-4 { margin-right: 1rem !important; } - .mb-xs-4 { margin-bottom: 1rem !important; } - .ml-xs-4 { margin-left: 1rem !important; } - .mx-xs-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xs-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xs-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 20rem) { .m-xs-5 { margin: 1.5rem !important; } - .mt-xs-5 { margin-top: 1.5rem !important; } - .mr-xs-5 { margin-right: 1.5rem !important; } - .mb-xs-5 { margin-bottom: 1.5rem !important; } - .ml-xs-5 { margin-left: 1.5rem !important; } - .mx-xs-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xs-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xs-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 20rem) { .m-xs-6 { margin: 2rem !important; } - .mt-xs-6 { margin-top: 2rem !important; } - .mr-xs-6 { margin-right: 2rem !important; } - .mb-xs-6 { margin-bottom: 2rem !important; } - .ml-xs-6 { margin-left: 2rem !important; } - .mx-xs-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xs-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xs-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 20rem) { .m-xs-7 { margin: 2.5rem !important; } - .mt-xs-7 { margin-top: 2.5rem !important; } - .mr-xs-7 { margin-right: 2.5rem !important; } - .mb-xs-7 { margin-bottom: 2.5rem !important; } - .ml-xs-7 { margin-left: 2.5rem !important; } - .mx-xs-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xs-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xs-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 20rem) { .m-xs-8 { margin: 3rem !important; } - .mt-xs-8 { margin-top: 3rem !important; } - .mr-xs-8 { margin-right: 3rem !important; } - .mb-xs-8 { margin-bottom: 3rem !important; } - .ml-xs-8 { margin-left: 3rem !important; } - .mx-xs-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xs-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xs-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 20rem) { .m-xs-9 { margin: 3.5rem !important; } - .mt-xs-9 { margin-top: 3.5rem !important; } - .mr-xs-9 { margin-right: 3.5rem !important; } - .mb-xs-9 { margin-bottom: 3.5rem !important; } - .ml-xs-9 { margin-left: 3.5rem !important; } - .mx-xs-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xs-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xs-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 20rem) { .m-xs-10 { margin: 4rem !important; } - .mt-xs-10 { margin-top: 4rem !important; } - .mr-xs-10 { margin-right: 4rem !important; } - .mb-xs-10 { margin-bottom: 4rem !important; } - .ml-xs-10 { margin-left: 4rem !important; } - .mx-xs-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xs-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xs-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 31.25rem) { .m-sm-0 { margin: 0 !important; } - .mt-sm-0 { margin-top: 0 !important; } - .mr-sm-0 { margin-right: 0 !important; } - .mb-sm-0 { margin-bottom: 0 !important; } - .ml-sm-0 { margin-left: 0 !important; } - .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-sm-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 31.25rem) { .m-sm-1 { margin: 0.25rem !important; } - .mt-sm-1 { margin-top: 0.25rem !important; } - .mr-sm-1 { margin-right: 0.25rem !important; } - .mb-sm-1 { margin-bottom: 0.25rem !important; } - .ml-sm-1 { margin-left: 0.25rem !important; } - .mx-sm-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-sm-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 31.25rem) { .m-sm-2 { margin: 0.5rem !important; } - .mt-sm-2 { margin-top: 0.5rem !important; } - .mr-sm-2 { margin-right: 0.5rem !important; } - .mb-sm-2 { margin-bottom: 0.5rem !important; } - .ml-sm-2 { margin-left: 0.5rem !important; } - .mx-sm-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-sm-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-3 { margin: 0.75rem !important; } - .mt-sm-3 { margin-top: 0.75rem !important; } - .mr-sm-3 { margin-right: 0.75rem !important; } - .mb-sm-3 { margin-bottom: 0.75rem !important; } - .ml-sm-3 { margin-left: 0.75rem !important; } - .mx-sm-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-sm-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-sm-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 31.25rem) { .m-sm-4 { margin: 1rem !important; } - .mt-sm-4 { margin-top: 1rem !important; } - .mr-sm-4 { margin-right: 1rem !important; } - .mb-sm-4 { margin-bottom: 1rem !important; } - .ml-sm-4 { margin-left: 1rem !important; } - .mx-sm-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-sm-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-sm-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 31.25rem) { .m-sm-5 { margin: 1.5rem !important; } - .mt-sm-5 { margin-top: 1.5rem !important; } - .mr-sm-5 { margin-right: 1.5rem !important; } - .mb-sm-5 { margin-bottom: 1.5rem !important; } - .ml-sm-5 { margin-left: 1.5rem !important; } - .mx-sm-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-sm-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-sm-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-6 { margin: 2rem !important; } - .mt-sm-6 { margin-top: 2rem !important; } - .mr-sm-6 { margin-right: 2rem !important; } - .mb-sm-6 { margin-bottom: 2rem !important; } - .ml-sm-6 { margin-left: 2rem !important; } - .mx-sm-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-sm-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-sm-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 31.25rem) { .m-sm-7 { margin: 2.5rem !important; } - .mt-sm-7 { margin-top: 2.5rem !important; } - .mr-sm-7 { margin-right: 2.5rem !important; } - .mb-sm-7 { margin-bottom: 2.5rem !important; } - .ml-sm-7 { margin-left: 2.5rem !important; } - .mx-sm-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-sm-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-sm-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-8 { margin: 3rem !important; } - .mt-sm-8 { margin-top: 3rem !important; } - .mr-sm-8 { margin-right: 3rem !important; } - .mb-sm-8 { margin-bottom: 3rem !important; } - .ml-sm-8 { margin-left: 3rem !important; } - .mx-sm-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-sm-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-sm-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 31.25rem) { .m-sm-9 { margin: 3.5rem !important; } - .mt-sm-9 { margin-top: 3.5rem !important; } - .mr-sm-9 { margin-right: 3.5rem !important; } - .mb-sm-9 { margin-bottom: 3.5rem !important; } - .ml-sm-9 { margin-left: 3.5rem !important; } - .mx-sm-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-sm-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-sm-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-10 { margin: 4rem !important; } - .mt-sm-10 { margin-top: 4rem !important; } - .mr-sm-10 { margin-right: 4rem !important; } - .mb-sm-10 { margin-bottom: 4rem !important; } - .ml-sm-10 { margin-left: 4rem !important; } - .mx-sm-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-sm-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-sm-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 50rem) { .m-md-0 { margin: 0 !important; } - .mt-md-0 { margin-top: 0 !important; } - .mr-md-0 { margin-right: 0 !important; } - .mb-md-0 { margin-bottom: 0 !important; } - .ml-md-0 { margin-left: 0 !important; } - .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-md-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 50rem) { .m-md-1 { margin: 0.25rem !important; } - .mt-md-1 { margin-top: 0.25rem !important; } - .mr-md-1 { margin-right: 0.25rem !important; } - .mb-md-1 { margin-bottom: 0.25rem !important; } - .ml-md-1 { margin-left: 0.25rem !important; } - .mx-md-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-md-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 50rem) { .m-md-2 { margin: 0.5rem !important; } - .mt-md-2 { margin-top: 0.5rem !important; } - .mr-md-2 { margin-right: 0.5rem !important; } - .mb-md-2 { margin-bottom: 0.5rem !important; } - .ml-md-2 { margin-left: 0.5rem !important; } - .mx-md-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-md-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 50rem) { .m-md-3 { margin: 0.75rem !important; } - .mt-md-3 { margin-top: 0.75rem !important; } - .mr-md-3 { margin-right: 0.75rem !important; } - .mb-md-3 { margin-bottom: 0.75rem !important; } - .ml-md-3 { margin-left: 0.75rem !important; } - .mx-md-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-md-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-md-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 50rem) { .m-md-4 { margin: 1rem !important; } - .mt-md-4 { margin-top: 1rem !important; } - .mr-md-4 { margin-right: 1rem !important; } - .mb-md-4 { margin-bottom: 1rem !important; } - .ml-md-4 { margin-left: 1rem !important; } - .mx-md-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-md-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-md-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 50rem) { .m-md-5 { margin: 1.5rem !important; } - .mt-md-5 { margin-top: 1.5rem !important; } - .mr-md-5 { margin-right: 1.5rem !important; } - .mb-md-5 { margin-bottom: 1.5rem !important; } - .ml-md-5 { margin-left: 1.5rem !important; } - .mx-md-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-md-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-md-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 50rem) { .m-md-6 { margin: 2rem !important; } - .mt-md-6 { margin-top: 2rem !important; } - .mr-md-6 { margin-right: 2rem !important; } - .mb-md-6 { margin-bottom: 2rem !important; } - .ml-md-6 { margin-left: 2rem !important; } - .mx-md-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-md-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-md-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 50rem) { .m-md-7 { margin: 2.5rem !important; } - .mt-md-7 { margin-top: 2.5rem !important; } - .mr-md-7 { margin-right: 2.5rem !important; } - .mb-md-7 { margin-bottom: 2.5rem !important; } - .ml-md-7 { margin-left: 2.5rem !important; } - .mx-md-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-md-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-md-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 50rem) { .m-md-8 { margin: 3rem !important; } - .mt-md-8 { margin-top: 3rem !important; } - .mr-md-8 { margin-right: 3rem !important; } - .mb-md-8 { margin-bottom: 3rem !important; } - .ml-md-8 { margin-left: 3rem !important; } - .mx-md-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-md-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-md-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 50rem) { .m-md-9 { margin: 3.5rem !important; } - .mt-md-9 { margin-top: 3.5rem !important; } - .mr-md-9 { margin-right: 3.5rem !important; } - .mb-md-9 { margin-bottom: 3.5rem !important; } - .ml-md-9 { margin-left: 3.5rem !important; } - .mx-md-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-md-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-md-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 50rem) { .m-md-10 { margin: 4rem !important; } - .mt-md-10 { margin-top: 4rem !important; } - .mr-md-10 { margin-right: 4rem !important; } - .mb-md-10 { margin-bottom: 4rem !important; } - .ml-md-10 { margin-left: 4rem !important; } - .mx-md-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-md-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-md-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 66.5rem) { .m-lg-0 { margin: 0 !important; } - .mt-lg-0 { margin-top: 0 !important; } - .mr-lg-0 { margin-right: 0 !important; } - .mb-lg-0 { margin-bottom: 0 !important; } - .ml-lg-0 { margin-left: 0 !important; } - .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-lg-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 66.5rem) { .m-lg-1 { margin: 0.25rem !important; } - .mt-lg-1 { margin-top: 0.25rem !important; } - .mr-lg-1 { margin-right: 0.25rem !important; } - .mb-lg-1 { margin-bottom: 0.25rem !important; } - .ml-lg-1 { margin-left: 0.25rem !important; } - .mx-lg-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-lg-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 66.5rem) { .m-lg-2 { margin: 0.5rem !important; } - .mt-lg-2 { margin-top: 0.5rem !important; } - .mr-lg-2 { margin-right: 0.5rem !important; } - .mb-lg-2 { margin-bottom: 0.5rem !important; } - .ml-lg-2 { margin-left: 0.5rem !important; } - .mx-lg-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-lg-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-3 { margin: 0.75rem !important; } - .mt-lg-3 { margin-top: 0.75rem !important; } - .mr-lg-3 { margin-right: 0.75rem !important; } - .mb-lg-3 { margin-bottom: 0.75rem !important; } - .ml-lg-3 { margin-left: 0.75rem !important; } - .mx-lg-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-lg-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-lg-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 66.5rem) { .m-lg-4 { margin: 1rem !important; } - .mt-lg-4 { margin-top: 1rem !important; } - .mr-lg-4 { margin-right: 1rem !important; } - .mb-lg-4 { margin-bottom: 1rem !important; } - .ml-lg-4 { margin-left: 1rem !important; } - .mx-lg-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-lg-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-lg-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 66.5rem) { .m-lg-5 { margin: 1.5rem !important; } - .mt-lg-5 { margin-top: 1.5rem !important; } - .mr-lg-5 { margin-right: 1.5rem !important; } - .mb-lg-5 { margin-bottom: 1.5rem !important; } - .ml-lg-5 { margin-left: 1.5rem !important; } - .mx-lg-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-lg-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-lg-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-6 { margin: 2rem !important; } - .mt-lg-6 { margin-top: 2rem !important; } - .mr-lg-6 { margin-right: 2rem !important; } - .mb-lg-6 { margin-bottom: 2rem !important; } - .ml-lg-6 { margin-left: 2rem !important; } - .mx-lg-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-lg-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-lg-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 66.5rem) { .m-lg-7 { margin: 2.5rem !important; } - .mt-lg-7 { margin-top: 2.5rem !important; } - .mr-lg-7 { margin-right: 2.5rem !important; } - .mb-lg-7 { margin-bottom: 2.5rem !important; } - .ml-lg-7 { margin-left: 2.5rem !important; } - .mx-lg-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-lg-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-lg-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-8 { margin: 3rem !important; } - .mt-lg-8 { margin-top: 3rem !important; } - .mr-lg-8 { margin-right: 3rem !important; } - .mb-lg-8 { margin-bottom: 3rem !important; } - .ml-lg-8 { margin-left: 3rem !important; } - .mx-lg-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-lg-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-lg-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 66.5rem) { .m-lg-9 { margin: 3.5rem !important; } - .mt-lg-9 { margin-top: 3.5rem !important; } - .mr-lg-9 { margin-right: 3.5rem !important; } - .mb-lg-9 { margin-bottom: 3.5rem !important; } - .ml-lg-9 { margin-left: 3.5rem !important; } - .mx-lg-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-lg-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-lg-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-10 { margin: 4rem !important; } - .mt-lg-10 { margin-top: 4rem !important; } - .mr-lg-10 { margin-right: 4rem !important; } - .mb-lg-10 { margin-bottom: 4rem !important; } - .ml-lg-10 { margin-left: 4rem !important; } - .mx-lg-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-lg-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-lg-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 87.5rem) { .m-xl-0 { margin: 0 !important; } - .mt-xl-0 { margin-top: 0 !important; } - .mr-xl-0 { margin-right: 0 !important; } - .mb-xl-0 { margin-bottom: 0 !important; } - .ml-xl-0 { margin-left: 0 !important; } - .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xl-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 87.5rem) { .m-xl-1 { margin: 0.25rem !important; } - .mt-xl-1 { margin-top: 0.25rem !important; } - .mr-xl-1 { margin-right: 0.25rem !important; } - .mb-xl-1 { margin-bottom: 0.25rem !important; } - .ml-xl-1 { margin-left: 0.25rem !important; } - .mx-xl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xl-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 87.5rem) { .m-xl-2 { margin: 0.5rem !important; } - .mt-xl-2 { margin-top: 0.5rem !important; } - .mr-xl-2 { margin-right: 0.5rem !important; } - .mb-xl-2 { margin-bottom: 0.5rem !important; } - .ml-xl-2 { margin-left: 0.5rem !important; } - .mx-xl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xl-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-3 { margin: 0.75rem !important; } - .mt-xl-3 { margin-top: 0.75rem !important; } - .mr-xl-3 { margin-right: 0.75rem !important; } - .mb-xl-3 { margin-bottom: 0.75rem !important; } - .ml-xl-3 { margin-left: 0.75rem !important; } - .mx-xl-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xl-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xl-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 87.5rem) { .m-xl-4 { margin: 1rem !important; } - .mt-xl-4 { margin-top: 1rem !important; } - .mr-xl-4 { margin-right: 1rem !important; } - .mb-xl-4 { margin-bottom: 1rem !important; } - .ml-xl-4 { margin-left: 1rem !important; } - .mx-xl-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xl-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xl-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 87.5rem) { .m-xl-5 { margin: 1.5rem !important; } - .mt-xl-5 { margin-top: 1.5rem !important; } - .mr-xl-5 { margin-right: 1.5rem !important; } - .mb-xl-5 { margin-bottom: 1.5rem !important; } - .ml-xl-5 { margin-left: 1.5rem !important; } - .mx-xl-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xl-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xl-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-6 { margin: 2rem !important; } - .mt-xl-6 { margin-top: 2rem !important; } - .mr-xl-6 { margin-right: 2rem !important; } - .mb-xl-6 { margin-bottom: 2rem !important; } - .ml-xl-6 { margin-left: 2rem !important; } - .mx-xl-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xl-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xl-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 87.5rem) { .m-xl-7 { margin: 2.5rem !important; } - .mt-xl-7 { margin-top: 2.5rem !important; } - .mr-xl-7 { margin-right: 2.5rem !important; } - .mb-xl-7 { margin-bottom: 2.5rem !important; } - .ml-xl-7 { margin-left: 2.5rem !important; } - .mx-xl-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xl-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xl-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-8 { margin: 3rem !important; } - .mt-xl-8 { margin-top: 3rem !important; } - .mr-xl-8 { margin-right: 3rem !important; } - .mb-xl-8 { margin-bottom: 3rem !important; } - .ml-xl-8 { margin-left: 3rem !important; } - .mx-xl-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xl-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xl-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 87.5rem) { .m-xl-9 { margin: 3.5rem !important; } - .mt-xl-9 { margin-top: 3.5rem !important; } - .mr-xl-9 { margin-right: 3.5rem !important; } - .mb-xl-9 { margin-bottom: 3.5rem !important; } - .ml-xl-9 { margin-left: 3.5rem !important; } - .mx-xl-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xl-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xl-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-10 { margin: 4rem !important; } - .mt-xl-10 { margin-top: 4rem !important; } - .mr-xl-10 { margin-right: 4rem !important; } - .mb-xl-10 { margin-bottom: 4rem !important; } - .ml-xl-10 { margin-left: 4rem !important; } - .mx-xl-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xl-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xl-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -.p-0 { padding: 0 !important; } - -.pt-0 { padding-top: 0 !important; } - -.pr-0 { padding-right: 0 !important; } - -.pb-0 { padding-bottom: 0 !important; } - -.pl-0 { padding-left: 0 !important; } - -.px-0 { padding-right: 0 !important; padding-left: 0 !important; } - -.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - -.p-1 { padding: 0.25rem !important; } - -.pt-1 { padding-top: 0.25rem !important; } - -.pr-1 { padding-right: 0.25rem !important; } - -.pb-1 { padding-bottom: 0.25rem !important; } - -.pl-1 { padding-left: 0.25rem !important; } - -.px-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - -.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - -.p-2 { padding: 0.5rem !important; } - -.pt-2 { padding-top: 0.5rem !important; } - -.pr-2 { padding-right: 0.5rem !important; } - -.pb-2 { padding-bottom: 0.5rem !important; } - -.pl-2 { padding-left: 0.5rem !important; } - -.px-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - -.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - -.p-3 { padding: 0.75rem !important; } - -.pt-3 { padding-top: 0.75rem !important; } - -.pr-3 { padding-right: 0.75rem !important; } - -.pb-3 { padding-bottom: 0.75rem !important; } - -.pl-3 { padding-left: 0.75rem !important; } - -.px-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - -.py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - -.p-4 { padding: 1rem !important; } - -.pt-4 { padding-top: 1rem !important; } - -.pr-4 { padding-right: 1rem !important; } - -.pb-4 { padding-bottom: 1rem !important; } - -.pl-4 { padding-left: 1rem !important; } - -.px-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - -.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - -.p-5 { padding: 1.5rem !important; } - -.pt-5 { padding-top: 1.5rem !important; } - -.pr-5 { padding-right: 1.5rem !important; } - -.pb-5 { padding-bottom: 1.5rem !important; } - -.pl-5 { padding-left: 1.5rem !important; } - -.px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - -.py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - -.p-6 { padding: 2rem !important; } - -.pt-6 { padding-top: 2rem !important; } - -.pr-6 { padding-right: 2rem !important; } - -.pb-6 { padding-bottom: 2rem !important; } - -.pl-6 { padding-left: 2rem !important; } - -.px-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - -.py-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - -.p-7 { padding: 2.5rem !important; } - -.pt-7 { padding-top: 2.5rem !important; } - -.pr-7 { padding-right: 2.5rem !important; } - -.pb-7 { padding-bottom: 2.5rem !important; } - -.pl-7 { padding-left: 2.5rem !important; } - -.px-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - -.py-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - -.p-8 { padding: 3rem !important; } - -.pt-8 { padding-top: 3rem !important; } - -.pr-8 { padding-right: 3rem !important; } - -.pb-8 { padding-bottom: 3rem !important; } - -.pl-8 { padding-left: 3rem !important; } - -.px-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - -.py-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - -.p-9 { padding: 3.5rem !important; } - -.pt-9 { padding-top: 3.5rem !important; } - -.pr-9 { padding-right: 3.5rem !important; } - -.pb-9 { padding-bottom: 3.5rem !important; } - -.pl-9 { padding-left: 3.5rem !important; } - -.px-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - -.py-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - -.p-10 { padding: 4rem !important; } - -.pt-10 { padding-top: 4rem !important; } - -.pr-10 { padding-right: 4rem !important; } - -.pb-10 { padding-bottom: 4rem !important; } - -.pl-10 { padding-left: 4rem !important; } - -.px-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - -.py-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - -@media (min-width: 20rem) { .p-xs-0 { padding: 0 !important; } - .pt-xs-0 { padding-top: 0 !important; } - .pr-xs-0 { padding-right: 0 !important; } - .pb-xs-0 { padding-bottom: 0 !important; } - .pl-xs-0 { padding-left: 0 !important; } - .px-xs-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xs-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xs-1 { padding: 0.25rem !important; } - .pt-xs-1 { padding-top: 0.25rem !important; } - .pr-xs-1 { padding-right: 0.25rem !important; } - .pb-xs-1 { padding-bottom: 0.25rem !important; } - .pl-xs-1 { padding-left: 0.25rem !important; } - .px-xs-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xs-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xs-2 { padding: 0.5rem !important; } - .pt-xs-2 { padding-top: 0.5rem !important; } - .pr-xs-2 { padding-right: 0.5rem !important; } - .pb-xs-2 { padding-bottom: 0.5rem !important; } - .pl-xs-2 { padding-left: 0.5rem !important; } - .px-xs-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xs-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xs-3 { padding: 0.75rem !important; } - .pt-xs-3 { padding-top: 0.75rem !important; } - .pr-xs-3 { padding-right: 0.75rem !important; } - .pb-xs-3 { padding-bottom: 0.75rem !important; } - .pl-xs-3 { padding-left: 0.75rem !important; } - .px-xs-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xs-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xs-4 { padding: 1rem !important; } - .pt-xs-4 { padding-top: 1rem !important; } - .pr-xs-4 { padding-right: 1rem !important; } - .pb-xs-4 { padding-bottom: 1rem !important; } - .pl-xs-4 { padding-left: 1rem !important; } - .px-xs-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xs-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xs-5 { padding: 1.5rem !important; } - .pt-xs-5 { padding-top: 1.5rem !important; } - .pr-xs-5 { padding-right: 1.5rem !important; } - .pb-xs-5 { padding-bottom: 1.5rem !important; } - .pl-xs-5 { padding-left: 1.5rem !important; } - .px-xs-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xs-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xs-6 { padding: 2rem !important; } - .pt-xs-6 { padding-top: 2rem !important; } - .pr-xs-6 { padding-right: 2rem !important; } - .pb-xs-6 { padding-bottom: 2rem !important; } - .pl-xs-6 { padding-left: 2rem !important; } - .px-xs-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xs-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xs-7 { padding: 2.5rem !important; } - .pt-xs-7 { padding-top: 2.5rem !important; } - .pr-xs-7 { padding-right: 2.5rem !important; } - .pb-xs-7 { padding-bottom: 2.5rem !important; } - .pl-xs-7 { padding-left: 2.5rem !important; } - .px-xs-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xs-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xs-8 { padding: 3rem !important; } - .pt-xs-8 { padding-top: 3rem !important; } - .pr-xs-8 { padding-right: 3rem !important; } - .pb-xs-8 { padding-bottom: 3rem !important; } - .pl-xs-8 { padding-left: 3rem !important; } - .px-xs-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xs-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xs-9 { padding: 3.5rem !important; } - .pt-xs-9 { padding-top: 3.5rem !important; } - .pr-xs-9 { padding-right: 3.5rem !important; } - .pb-xs-9 { padding-bottom: 3.5rem !important; } - .pl-xs-9 { padding-left: 3.5rem !important; } - .px-xs-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xs-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xs-10 { padding: 4rem !important; } - .pt-xs-10 { padding-top: 4rem !important; } - .pr-xs-10 { padding-right: 4rem !important; } - .pb-xs-10 { padding-bottom: 4rem !important; } - .pl-xs-10 { padding-left: 4rem !important; } - .px-xs-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xs-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 31.25rem) { .p-sm-0 { padding: 0 !important; } - .pt-sm-0 { padding-top: 0 !important; } - .pr-sm-0 { padding-right: 0 !important; } - .pb-sm-0 { padding-bottom: 0 !important; } - .pl-sm-0 { padding-left: 0 !important; } - .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-sm-1 { padding: 0.25rem !important; } - .pt-sm-1 { padding-top: 0.25rem !important; } - .pr-sm-1 { padding-right: 0.25rem !important; } - .pb-sm-1 { padding-bottom: 0.25rem !important; } - .pl-sm-1 { padding-left: 0.25rem !important; } - .px-sm-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-sm-2 { padding: 0.5rem !important; } - .pt-sm-2 { padding-top: 0.5rem !important; } - .pr-sm-2 { padding-right: 0.5rem !important; } - .pb-sm-2 { padding-bottom: 0.5rem !important; } - .pl-sm-2 { padding-left: 0.5rem !important; } - .px-sm-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-sm-3 { padding: 0.75rem !important; } - .pt-sm-3 { padding-top: 0.75rem !important; } - .pr-sm-3 { padding-right: 0.75rem !important; } - .pb-sm-3 { padding-bottom: 0.75rem !important; } - .pl-sm-3 { padding-left: 0.75rem !important; } - .px-sm-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-sm-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-sm-4 { padding: 1rem !important; } - .pt-sm-4 { padding-top: 1rem !important; } - .pr-sm-4 { padding-right: 1rem !important; } - .pb-sm-4 { padding-bottom: 1rem !important; } - .pl-sm-4 { padding-left: 1rem !important; } - .px-sm-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-sm-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-sm-5 { padding: 1.5rem !important; } - .pt-sm-5 { padding-top: 1.5rem !important; } - .pr-sm-5 { padding-right: 1.5rem !important; } - .pb-sm-5 { padding-bottom: 1.5rem !important; } - .pl-sm-5 { padding-left: 1.5rem !important; } - .px-sm-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-sm-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-sm-6 { padding: 2rem !important; } - .pt-sm-6 { padding-top: 2rem !important; } - .pr-sm-6 { padding-right: 2rem !important; } - .pb-sm-6 { padding-bottom: 2rem !important; } - .pl-sm-6 { padding-left: 2rem !important; } - .px-sm-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-sm-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-sm-7 { padding: 2.5rem !important; } - .pt-sm-7 { padding-top: 2.5rem !important; } - .pr-sm-7 { padding-right: 2.5rem !important; } - .pb-sm-7 { padding-bottom: 2.5rem !important; } - .pl-sm-7 { padding-left: 2.5rem !important; } - .px-sm-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-sm-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-sm-8 { padding: 3rem !important; } - .pt-sm-8 { padding-top: 3rem !important; } - .pr-sm-8 { padding-right: 3rem !important; } - .pb-sm-8 { padding-bottom: 3rem !important; } - .pl-sm-8 { padding-left: 3rem !important; } - .px-sm-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-sm-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-sm-9 { padding: 3.5rem !important; } - .pt-sm-9 { padding-top: 3.5rem !important; } - .pr-sm-9 { padding-right: 3.5rem !important; } - .pb-sm-9 { padding-bottom: 3.5rem !important; } - .pl-sm-9 { padding-left: 3.5rem !important; } - .px-sm-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-sm-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-sm-10 { padding: 4rem !important; } - .pt-sm-10 { padding-top: 4rem !important; } - .pr-sm-10 { padding-right: 4rem !important; } - .pb-sm-10 { padding-bottom: 4rem !important; } - .pl-sm-10 { padding-left: 4rem !important; } - .px-sm-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-sm-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 50rem) { .p-md-0 { padding: 0 !important; } - .pt-md-0 { padding-top: 0 !important; } - .pr-md-0 { padding-right: 0 !important; } - .pb-md-0 { padding-bottom: 0 !important; } - .pl-md-0 { padding-left: 0 !important; } - .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-md-1 { padding: 0.25rem !important; } - .pt-md-1 { padding-top: 0.25rem !important; } - .pr-md-1 { padding-right: 0.25rem !important; } - .pb-md-1 { padding-bottom: 0.25rem !important; } - .pl-md-1 { padding-left: 0.25rem !important; } - .px-md-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-md-2 { padding: 0.5rem !important; } - .pt-md-2 { padding-top: 0.5rem !important; } - .pr-md-2 { padding-right: 0.5rem !important; } - .pb-md-2 { padding-bottom: 0.5rem !important; } - .pl-md-2 { padding-left: 0.5rem !important; } - .px-md-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-md-3 { padding: 0.75rem !important; } - .pt-md-3 { padding-top: 0.75rem !important; } - .pr-md-3 { padding-right: 0.75rem !important; } - .pb-md-3 { padding-bottom: 0.75rem !important; } - .pl-md-3 { padding-left: 0.75rem !important; } - .px-md-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-md-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-md-4 { padding: 1rem !important; } - .pt-md-4 { padding-top: 1rem !important; } - .pr-md-4 { padding-right: 1rem !important; } - .pb-md-4 { padding-bottom: 1rem !important; } - .pl-md-4 { padding-left: 1rem !important; } - .px-md-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-md-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-md-5 { padding: 1.5rem !important; } - .pt-md-5 { padding-top: 1.5rem !important; } - .pr-md-5 { padding-right: 1.5rem !important; } - .pb-md-5 { padding-bottom: 1.5rem !important; } - .pl-md-5 { padding-left: 1.5rem !important; } - .px-md-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-md-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-md-6 { padding: 2rem !important; } - .pt-md-6 { padding-top: 2rem !important; } - .pr-md-6 { padding-right: 2rem !important; } - .pb-md-6 { padding-bottom: 2rem !important; } - .pl-md-6 { padding-left: 2rem !important; } - .px-md-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-md-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-md-7 { padding: 2.5rem !important; } - .pt-md-7 { padding-top: 2.5rem !important; } - .pr-md-7 { padding-right: 2.5rem !important; } - .pb-md-7 { padding-bottom: 2.5rem !important; } - .pl-md-7 { padding-left: 2.5rem !important; } - .px-md-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-md-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-md-8 { padding: 3rem !important; } - .pt-md-8 { padding-top: 3rem !important; } - .pr-md-8 { padding-right: 3rem !important; } - .pb-md-8 { padding-bottom: 3rem !important; } - .pl-md-8 { padding-left: 3rem !important; } - .px-md-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-md-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-md-9 { padding: 3.5rem !important; } - .pt-md-9 { padding-top: 3.5rem !important; } - .pr-md-9 { padding-right: 3.5rem !important; } - .pb-md-9 { padding-bottom: 3.5rem !important; } - .pl-md-9 { padding-left: 3.5rem !important; } - .px-md-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-md-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-md-10 { padding: 4rem !important; } - .pt-md-10 { padding-top: 4rem !important; } - .pr-md-10 { padding-right: 4rem !important; } - .pb-md-10 { padding-bottom: 4rem !important; } - .pl-md-10 { padding-left: 4rem !important; } - .px-md-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-md-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 66.5rem) { .p-lg-0 { padding: 0 !important; } - .pt-lg-0 { padding-top: 0 !important; } - .pr-lg-0 { padding-right: 0 !important; } - .pb-lg-0 { padding-bottom: 0 !important; } - .pl-lg-0 { padding-left: 0 !important; } - .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-lg-1 { padding: 0.25rem !important; } - .pt-lg-1 { padding-top: 0.25rem !important; } - .pr-lg-1 { padding-right: 0.25rem !important; } - .pb-lg-1 { padding-bottom: 0.25rem !important; } - .pl-lg-1 { padding-left: 0.25rem !important; } - .px-lg-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-lg-2 { padding: 0.5rem !important; } - .pt-lg-2 { padding-top: 0.5rem !important; } - .pr-lg-2 { padding-right: 0.5rem !important; } - .pb-lg-2 { padding-bottom: 0.5rem !important; } - .pl-lg-2 { padding-left: 0.5rem !important; } - .px-lg-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-lg-3 { padding: 0.75rem !important; } - .pt-lg-3 { padding-top: 0.75rem !important; } - .pr-lg-3 { padding-right: 0.75rem !important; } - .pb-lg-3 { padding-bottom: 0.75rem !important; } - .pl-lg-3 { padding-left: 0.75rem !important; } - .px-lg-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-lg-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-lg-4 { padding: 1rem !important; } - .pt-lg-4 { padding-top: 1rem !important; } - .pr-lg-4 { padding-right: 1rem !important; } - .pb-lg-4 { padding-bottom: 1rem !important; } - .pl-lg-4 { padding-left: 1rem !important; } - .px-lg-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-lg-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-lg-5 { padding: 1.5rem !important; } - .pt-lg-5 { padding-top: 1.5rem !important; } - .pr-lg-5 { padding-right: 1.5rem !important; } - .pb-lg-5 { padding-bottom: 1.5rem !important; } - .pl-lg-5 { padding-left: 1.5rem !important; } - .px-lg-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-lg-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-lg-6 { padding: 2rem !important; } - .pt-lg-6 { padding-top: 2rem !important; } - .pr-lg-6 { padding-right: 2rem !important; } - .pb-lg-6 { padding-bottom: 2rem !important; } - .pl-lg-6 { padding-left: 2rem !important; } - .px-lg-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-lg-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-lg-7 { padding: 2.5rem !important; } - .pt-lg-7 { padding-top: 2.5rem !important; } - .pr-lg-7 { padding-right: 2.5rem !important; } - .pb-lg-7 { padding-bottom: 2.5rem !important; } - .pl-lg-7 { padding-left: 2.5rem !important; } - .px-lg-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-lg-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-lg-8 { padding: 3rem !important; } - .pt-lg-8 { padding-top: 3rem !important; } - .pr-lg-8 { padding-right: 3rem !important; } - .pb-lg-8 { padding-bottom: 3rem !important; } - .pl-lg-8 { padding-left: 3rem !important; } - .px-lg-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-lg-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-lg-9 { padding: 3.5rem !important; } - .pt-lg-9 { padding-top: 3.5rem !important; } - .pr-lg-9 { padding-right: 3.5rem !important; } - .pb-lg-9 { padding-bottom: 3.5rem !important; } - .pl-lg-9 { padding-left: 3.5rem !important; } - .px-lg-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-lg-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-lg-10 { padding: 4rem !important; } - .pt-lg-10 { padding-top: 4rem !important; } - .pr-lg-10 { padding-right: 4rem !important; } - .pb-lg-10 { padding-bottom: 4rem !important; } - .pl-lg-10 { padding-left: 4rem !important; } - .px-lg-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-lg-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 87.5rem) { .p-xl-0 { padding: 0 !important; } - .pt-xl-0 { padding-top: 0 !important; } - .pr-xl-0 { padding-right: 0 !important; } - .pb-xl-0 { padding-bottom: 0 !important; } - .pl-xl-0 { padding-left: 0 !important; } - .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xl-1 { padding: 0.25rem !important; } - .pt-xl-1 { padding-top: 0.25rem !important; } - .pr-xl-1 { padding-right: 0.25rem !important; } - .pb-xl-1 { padding-bottom: 0.25rem !important; } - .pl-xl-1 { padding-left: 0.25rem !important; } - .px-xl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xl-2 { padding: 0.5rem !important; } - .pt-xl-2 { padding-top: 0.5rem !important; } - .pr-xl-2 { padding-right: 0.5rem !important; } - .pb-xl-2 { padding-bottom: 0.5rem !important; } - .pl-xl-2 { padding-left: 0.5rem !important; } - .px-xl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xl-3 { padding: 0.75rem !important; } - .pt-xl-3 { padding-top: 0.75rem !important; } - .pr-xl-3 { padding-right: 0.75rem !important; } - .pb-xl-3 { padding-bottom: 0.75rem !important; } - .pl-xl-3 { padding-left: 0.75rem !important; } - .px-xl-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xl-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xl-4 { padding: 1rem !important; } - .pt-xl-4 { padding-top: 1rem !important; } - .pr-xl-4 { padding-right: 1rem !important; } - .pb-xl-4 { padding-bottom: 1rem !important; } - .pl-xl-4 { padding-left: 1rem !important; } - .px-xl-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xl-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xl-5 { padding: 1.5rem !important; } - .pt-xl-5 { padding-top: 1.5rem !important; } - .pr-xl-5 { padding-right: 1.5rem !important; } - .pb-xl-5 { padding-bottom: 1.5rem !important; } - .pl-xl-5 { padding-left: 1.5rem !important; } - .px-xl-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xl-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xl-6 { padding: 2rem !important; } - .pt-xl-6 { padding-top: 2rem !important; } - .pr-xl-6 { padding-right: 2rem !important; } - .pb-xl-6 { padding-bottom: 2rem !important; } - .pl-xl-6 { padding-left: 2rem !important; } - .px-xl-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xl-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xl-7 { padding: 2.5rem !important; } - .pt-xl-7 { padding-top: 2.5rem !important; } - .pr-xl-7 { padding-right: 2.5rem !important; } - .pb-xl-7 { padding-bottom: 2.5rem !important; } - .pl-xl-7 { padding-left: 2.5rem !important; } - .px-xl-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xl-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xl-8 { padding: 3rem !important; } - .pt-xl-8 { padding-top: 3rem !important; } - .pr-xl-8 { padding-right: 3rem !important; } - .pb-xl-8 { padding-bottom: 3rem !important; } - .pl-xl-8 { padding-left: 3rem !important; } - .px-xl-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xl-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xl-9 { padding: 3.5rem !important; } - .pt-xl-9 { padding-top: 3.5rem !important; } - .pr-xl-9 { padding-right: 3.5rem !important; } - .pb-xl-9 { padding-bottom: 3.5rem !important; } - .pl-xl-9 { padding-left: 3.5rem !important; } - .px-xl-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xl-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xl-10 { padding: 4rem !important; } - .pt-xl-10 { padding-top: 4rem !important; } - .pr-xl-10 { padding-right: 4rem !important; } - .pb-xl-10 { padding-bottom: 4rem !important; } - .pl-xl-10 { padding-left: 4rem !important; } - .px-xl-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xl-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media print { .site-footer, .site-button, #edit-this-page, #back-to-top, .site-nav, .main-header { display: none !important; } - .side-bar { width: 100%; height: auto; border-right: 0 !important; } - .site-header { border-bottom: 1px solid #44434d; } - .site-title { font-size: 16px !important; font-weight: 700 !important; } - .text-small { font-size: 8pt !important; } - pre.highlight { border: 1px solid #44434d; } - .main { max-width: none; margin-left: 0; } } -.dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); z-index: 1; padding-left: 0; list-style-type: none; } - -.dropdown:hover .dropdown-content { display: flex; flex-direction: column; } - -.dropdown-content a { flex-grow: 1; padding: 1rem; background: none; } - -.dropdown-content a:hover { background: #eeebee; } diff --git a/head/assets/css/just-the-docs-default.css b/head/assets/css/just-the-docs-default.css deleted file mode 100644 index 7bf07dedc..000000000 --- a/head/assets/css/just-the-docs-default.css +++ /dev/null @@ -1,2260 +0,0 @@ -@charset "UTF-8"; -blockquote { background-color: #f5f6fa; padding: 0.25rem 1.5rem 0.25rem 1.5rem; border-radius: 4px; border-left: 0.25rem solid #ffca00; margin-inline-start: 1.5rem; margin-inline-end: 1.5rem; } - -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ -/* Document ========================================================================== */ -/** 1. Correct the line height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. */ -html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } - -/* Sections ========================================================================== */ -/** Remove the margin in all browsers. */ -body { margin: 0; } - -/** Render the `main` element consistently in IE. */ -main { display: block; } - -/** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */ -h1 { font-size: 2em; margin: 0.67em 0; } - -/* Grouping content ========================================================================== */ -/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */ -hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } - -/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ -pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } - -/* Text-level semantics ========================================================================== */ -/** Remove the gray background on active links in IE 10. */ -a { background-color: transparent; } - -/** 1. Remove the bottom border in Chrome 57- 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ -abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } - -/** Add the correct font weight in Chrome, Edge, and Safari. */ -b, strong { font-weight: bolder; } - -/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ -code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } - -/** Add the correct font size in all browsers. */ -small { font-size: 80%; } - -/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } - -sub { bottom: -0.25em; } - -sup { top: -0.5em; } - -/* Embedded content ========================================================================== */ -/** Remove the border on images inside links in IE 10. */ -img { border-style: none; } - -/* Forms ========================================================================== */ -/** 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. */ -button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } - -/** Show the overflow in IE. 1. Show the overflow in Edge. */ -button, input { /* 1 */ overflow: visible; } - -/** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */ -button, select { /* 1 */ text-transform: none; } - -/** Correct the inability to style clickable types in iOS and Safari. */ -button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } - -/** Remove the inner border and padding in Firefox. */ -button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } - -/** Restore the focus styles unset by the previous rule. */ -button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } - -/** Correct the padding in Firefox. */ -fieldset { padding: 0.35em 0.75em 0.625em; } - -/** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */ -legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } - -/** Add the correct vertical alignment in Chrome, Firefox, and Opera. */ -progress { vertical-align: baseline; } - -/** Remove the default vertical scrollbar in IE 10+. */ -textarea { overflow: auto; } - -/** 1. Add the correct box sizing in IE 10. 2. Remove the padding in IE 10. */ -[type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } - -/** Correct the cursor style of increment and decrement buttons in Chrome. */ -[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } - -/** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ -[type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } - -/** Remove the inner padding in Chrome and Safari on macOS. */ -[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */ -::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } - -/* Interactive ========================================================================== */ -/* Add the correct display in Edge, IE 10+, and Firefox. */ -details { display: block; } - -/* Add the correct display in all browsers. */ -summary { display: list-item; } - -/* Misc ========================================================================== */ -/** Add the correct display in IE 10+. */ -template { display: none; } - -/** Add the correct display in IE 10. */ -[hidden] { display: none; } - -* { box-sizing: border-box; } - -::selection { color: #fff; background: #6b00f2; } - -html { font-size: 14px !important; scroll-behavior: smooth; } -@media (min-width: 31.25rem) { html { font-size: 16px !important; } } - -body { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: inherit; line-height: 1.4; color: #5c5962; background-color: #fff; } - -ol, ul, dl, pre, address, blockquote, table, div, hr, form, fieldset, noscript .table-wrapper { margin-top: 0; } - -h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 1em; font-weight: 500; line-height: 1.25; color: #27262b; } - -p { margin-top: 1em; margin-bottom: 1em; } - -a { color: #6b00f2; text-decoration: none; } - -a:not([class]) { text-decoration: none; background-image: linear-gradient(#eeebee 0%, #eeebee 100%); background-repeat: repeat-x; background-position: 0 100%; background-size: 1px 1px; } -a:not([class]):hover { background-image: linear-gradient(rgba(107, 0, 242, 0.45) 0%, rgba(107, 0, 242, 0.45) 100%); background-size: 1px 1px; } - -code { font-family: "SFMono-Regular", Menlo, Consolas, Monospace; font-size: 0.75em; line-height: 1.4; } - -figure, pre { margin: 0; } - -li { margin: 0.25em 0; } - -img { max-width: 100%; height: auto; } - -hr { height: 1px; padding: 0; margin: 2rem 0; background-color: #eeebee; border: 0; } - -.side-bar { z-index: 0; display: flex; flex-wrap: wrap; background-color: #f5f6fa; } -@media (min-width: 50rem) { .side-bar { flex-wrap: nowrap; position: fixed; width: 248px; height: 100%; flex-direction: column; border-right: 1px solid #eeebee; align-items: flex-end; } } -@media (min-width: 66.5rem) { .side-bar { width: calc((100% - 1064px) / 2 + 264px); min-width: 264px; } } - -@media (min-width: 50rem) { .main { position: relative; max-width: 800px; margin-left: 248px; } } -@media (min-width: 66.5rem) { .main { margin-left: calc( (100% - 1064px) / 2 + 264px ); } } - -.main-content-wrap { padding-right: 1rem; padding-left: 1rem; padding-top: 1rem; padding-bottom: 1rem; } -@media (min-width: 50rem) { .main-content-wrap { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 50rem) { .main-content-wrap { padding-top: 2rem; padding-bottom: 2rem; } } - -.main-header { z-index: 0; display: none; background-color: #f5f6fa; } -@media (min-width: 50rem) { .main-header { display: flex; justify-content: space-between; height: 60px; background-color: #fff; border-bottom: 1px solid #eeebee; } } -.main-header.nav-open { display: block; } -@media (min-width: 50rem) { .main-header.nav-open { display: flex; } } - -.site-nav, .site-header, .site-footer { width: 100%; } -@media (min-width: 66.5rem) { .site-nav, .site-header, .site-footer { width: 264px; } } - -.site-nav { display: none; } -.site-nav.nav-open { display: block; } -@media (min-width: 50rem) { .site-nav { display: block; padding-top: 3rem; padding-bottom: 1rem; overflow-y: auto; flex: 1 1 auto; } } - -.site-header { display: flex; min-height: 60px; align-items: center; } -@media (min-width: 50rem) { .site-header { height: 60px; max-height: 60px; border-bottom: 1px solid #eeebee; } } - -.site-title { padding-right: 1rem; padding-left: 1rem; flex-grow: 1; display: flex; height: 100%; align-items: center; padding-top: 0.75rem; padding-bottom: 0.75rem; color: #27262b; font-size: 18px !important; } -@media (min-width: 50rem) { .site-title { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-title { font-size: 24px !important; line-height: 1.25; } } -@media (min-width: 50rem) { .site-title { padding-top: 0.5rem; padding-bottom: 0.5rem; } } - -.site-logo { width: 100%; height: 100%; background-image: url("/firefly/head/images/hyperledger-firefly_color.svg"); background-repeat: no-repeat; background-position: left center; background-size: contain; } - -.site-button { display: flex; height: 100%; padding: 1rem; align-items: center; } - -@media (min-width: 50rem) { .site-header .site-button { display: none; } } -.site-title:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); } - -.site-button:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); } - -body { position: relative; padding-bottom: 4rem; overflow-y: scroll; } -@media (min-width: 50rem) { body { position: static; padding-bottom: 0; } } - -.site-footer { padding-right: 1rem; padding-left: 1rem; position: absolute; bottom: 0; left: 0; padding-top: 1rem; padding-bottom: 1rem; color: #959396; font-size: 11px !important; } -@media (min-width: 50rem) { .site-footer { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-footer { font-size: 12px !important; } } -@media (min-width: 50rem) { .site-footer { position: static; justify-self: end; } } - -.icon { width: 1.5rem; height: 1.5rem; color: #6b00f2; } - -.main-content { line-height: 1.6; } -.main-content ol, .main-content ul, .main-content dl, .main-content pre, .main-content address, .main-content blockquote, .main-content .table-wrapper { margin-top: 0.5em; } -.main-content a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.main-content ul, .main-content ol { padding-left: 1.5em; } -.main-content li .highlight { margin-top: 0.25rem; } -.main-content ol { list-style-type: none; counter-reset: step-counter; } -.main-content ol > li { position: relative; } -.main-content ol > li::before { position: absolute; top: 0.2em; left: -1.6em; color: #959396; content: counter(step-counter); counter-increment: step-counter; font-size: 12px !important; } -@media (min-width: 31.25rem) { .main-content ol > li::before { font-size: 14px !important; } } -@media (min-width: 31.25rem) { .main-content ol > li::before { top: 0.11em; } } -.main-content ol > li ol { counter-reset: sub-counter; } -.main-content ol > li ol li::before { content: counter(sub-counter,lower-alpha); counter-increment: sub-counter; } -.main-content ul { list-style: none; } -.main-content ul > li::before { position: absolute; margin-left: -1.4em; color: #959396; content: "•"; } -.main-content .task-list { padding-left: 0; } -.main-content .task-list-item { display: flex; align-items: center; } -.main-content .task-list-item::before { content: ""; } -.main-content .task-list-item-checkbox { margin-right: 0.6em; } -.main-content hr + * { margin-top: 0; } -.main-content h1:first-of-type { margin-top: 0.5em; } -.main-content dl { display: grid; grid-template: auto / 10em 1fr; } -.main-content dt, .main-content dd { margin: 0.25em 0; } -.main-content dt { grid-column: 1; font-weight: 500; text-align: right; } -.main-content dt::after { content: ":"; } -.main-content dd { grid-column: 2; margin-bottom: 0; margin-left: 1em; } -.main-content dd blockquote:first-child, .main-content dd div:first-child, .main-content dd dl:first-child, .main-content dd dt:first-child, .main-content dd h1:first-child, .main-content dd h2:first-child, .main-content dd h3:first-child, .main-content dd h4:first-child, .main-content dd h5:first-child, .main-content dd h6:first-child, .main-content dd li:first-child, .main-content dd ol:first-child, .main-content dd p:first-child, .main-content dd pre:first-child, .main-content dd table:first-child, .main-content dd ul:first-child, .main-content dd .table-wrapper:first-child { margin-top: 0; } -.main-content dd dl:first-child dt:first-child, .main-content dd dl:first-child dd:nth-child(2), .main-content ol dl:first-child dt:first-child, .main-content ol dl:first-child dd:nth-child(2), .main-content ul dl:first-child dt:first-child, .main-content ul dl:first-child dd:nth-child(2) { margin-top: 0; } -.main-content .anchor-heading { position: absolute; right: -1rem; width: 1.5rem; height: 100%; padding-right: 0.25rem; padding-left: 0.25rem; overflow: visible; } -@media (min-width: 50rem) { .main-content .anchor-heading { right: auto; left: -1.5rem; } } -.main-content .anchor-heading svg { display: inline-block; width: 100%; height: 100%; color: #6b00f2; visibility: hidden; } -.main-content .anchor-heading:hover svg, .main-content h1:hover > .anchor-heading svg, .main-content h2:hover > .anchor-heading svg, .main-content h3:hover > .anchor-heading svg, .main-content h4:hover > .anchor-heading svg, .main-content h5:hover > .anchor-heading svg, .main-content h6:hover > .anchor-heading svg { visibility: visible; } -.main-content summary { cursor: pointer; } -.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { position: relative; margin-top: 1.5em; margin-bottom: 0.25em; } -.main-content h1:first-child, .main-content h2:first-child, .main-content h3:first-child, .main-content h4:first-child, .main-content h5:first-child, .main-content h6:first-child { margin-top: 0.5rem; } -.main-content h1 + table, .main-content h1 + .table-wrapper, .main-content h1 + .code-example, .main-content h1 + .highlighter-rouge, .main-content h2 + table, .main-content h2 + .table-wrapper, .main-content h2 + .code-example, .main-content h2 + .highlighter-rouge, .main-content h3 + table, .main-content h3 + .table-wrapper, .main-content h3 + .code-example, .main-content h3 + .highlighter-rouge, .main-content h4 + table, .main-content h4 + .table-wrapper, .main-content h4 + .code-example, .main-content h4 + .highlighter-rouge, .main-content h5 + table, .main-content h5 + .table-wrapper, .main-content h5 + .code-example, .main-content h5 + .highlighter-rouge, .main-content h6 + table, .main-content h6 + .table-wrapper, .main-content h6 + .code-example, .main-content h6 + .highlighter-rouge { margin-top: 1em; } -.main-content h1 + p, .main-content h2 + p, .main-content h3 + p, .main-content h4 + p, .main-content h5 + p, .main-content h6 + p { margin-top: 0; } - -.nav-list { padding: 0; margin-top: 0; margin-bottom: 0; list-style: none; } -.nav-list .nav-list-item { font-size: 14px !important; position: relative; margin: 0; } -@media (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 16px !important; } } -@media (min-width: 50rem) { .nav-list .nav-list-item { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 14px !important; } } - -.nav-list .nav-list-item .nav-list-link { display: block; min-height: 3rem; padding-top: 0.25rem; padding-bottom: 0.25rem; line-height: 2.5rem; padding-right: 3rem; padding-left: 1rem; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-link { min-height: 2rem; line-height: 1.5rem; padding-right: 2rem; padding-left: 2rem; } } -.nav-list .nav-list-item .nav-list-link.active { font-weight: 600; text-decoration: none; } -.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); } -.nav-list .nav-list-item .nav-list-expander { position: absolute; right: 0; width: 3rem; height: 3rem; padding-top: 0.75rem; padding-right: 0.75rem; padding-bottom: 0.75rem; padding-left: 0.75rem; color: #6b00f2; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-expander { width: 2rem; height: 2rem; padding-top: 0.5rem; padding-right: 0.5rem; padding-bottom: 0.5rem; padding-left: 0.5rem; } } -.nav-list .nav-list-item .nav-list-expander:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); } -.nav-list .nav-list-item .nav-list-expander svg { transform: rotate(90deg); } -.nav-list .nav-list-item > .nav-list { display: none; padding-left: 0.75rem; list-style: none; } -.nav-list .nav-list-item > .nav-list .nav-list-item { position: relative; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { color: #5c5962; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { color: #5c5962; } -.nav-list .nav-list-item.active > .nav-list-expander svg { transform: rotate(-90deg); } -.nav-list .nav-list-item.active > .nav-list { display: block; } - -.nav-category { padding-top: 0.5rem; padding-right: 1rem; padding-bottom: 0.5rem; padding-left: 1rem; font-weight: 600; text-align: end; text-transform: uppercase; border-bottom: 1px solid #eeebee; font-size: 11px !important; } -@media (min-width: 31.25rem) { .nav-category { font-size: 12px !important; } } -@media (min-width: 50rem) { .nav-category { padding-right: 2rem; padding-left: 2rem; margin-top: 1rem; text-align: start; } - .nav-category:first-child { margin-top: 0; } } - -.aux-nav { height: 100%; overflow-x: auto; font-size: 11px !important; } -@media (min-width: 31.25rem) { .aux-nav { font-size: 12px !important; } } -.aux-nav .aux-nav-list { display: flex; height: 100%; padding: 0; margin: 0; list-style: none; } -.aux-nav .aux-nav-list-item { display: inline-block; height: 100%; padding: 0; margin: 0; } -@media (min-width: 50rem) { .aux-nav { padding-right: 1rem; } } - -@media (min-width: 50rem) { .breadcrumb-nav { margin-top: -1rem; } } - -.breadcrumb-nav-list { padding-left: 0; margin-bottom: 0.75rem; list-style: none; } - -.breadcrumb-nav-list-item { display: table-cell; font-size: 11px !important; } -@media (min-width: 31.25rem) { .breadcrumb-nav-list-item { font-size: 12px !important; } } -.breadcrumb-nav-list-item::before { display: none; } -.breadcrumb-nav-list-item::after { display: inline-block; margin-right: 0.5rem; margin-left: 0.5rem; color: #959396; content: "/"; } -.breadcrumb-nav-list-item:last-child::after { content: ""; } - -h1, .text-alpha { font-size: 32px !important; line-height: 1.25; font-weight: 300; } -@media (min-width: 31.25rem) { h1, .text-alpha { font-size: 36px !important; } } - -h2, .text-beta { font-size: 18px !important; } -@media (min-width: 31.25rem) { h2, .text-beta { font-size: 24px !important; line-height: 1.25; } } - -h3, .text-gamma { font-size: 16px !important; } -@media (min-width: 31.25rem) { h3, .text-gamma { font-size: 18px !important; } } - -h4, .text-delta { font-size: 11px !important; font-weight: 400; text-transform: uppercase; letter-spacing: 0.1em; } -@media (min-width: 31.25rem) { h4, .text-delta { font-size: 12px !important; } } - -h4 code { text-transform: none; } - -h5, .text-epsilon { font-size: 12px !important; color: #44434d; } -@media (min-width: 31.25rem) { h5, .text-epsilon { font-size: 14px !important; } } - -h6, .text-zeta { font-size: 11px !important; color: #44434d; } -@media (min-width: 31.25rem) { h6, .text-zeta { font-size: 12px !important; } } - -.text-small { font-size: 11px !important; } -@media (min-width: 31.25rem) { .text-small { font-size: 12px !important; } } - -.text-mono { font-family: "SFMono-Regular", Menlo, Consolas, Monospace !important; } - -.text-left { text-align: left !important; } - -.text-center { text-align: center !important; } - -.text-right { text-align: right !important; } - -.label, .label-blue { display: inline-block; padding-top: 0.16em; padding-right: 0.56em; padding-bottom: 0.16em; padding-left: 0.56em; margin-right: 0.5rem; margin-left: 0.5rem; color: #fff; text-transform: uppercase; vertical-align: middle; background-color: #2869e6; font-size: 11px !important; border-radius: 12px; } -@media (min-width: 31.25rem) { .label, .label-blue { font-size: 12px !important; } } - -.label-green { background-color: #009c7b; } - -.label-purple { background-color: #5e41d0; } - -.label-red { background-color: #e94c4c; } - -.label-yellow { color: #44434d; background-color: #f7d12e; } - -.btn { display: inline-block; box-sizing: border-box; padding-top: 0.3em; padding-right: 1em; padding-bottom: 0.3em; padding-left: 1em; margin: 0; font-family: inherit; font-size: inherit; font-weight: 500; line-height: 1.5; color: #6b00f2; text-decoration: none; vertical-align: baseline; cursor: pointer; background-color: #f7f7f7; border-width: 0; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); appearance: none; } -.btn:focus { text-decoration: none; outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:focus:hover, .btn.selected:focus { box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:hover, .btn.zeroclipboard-is-hover { color: #6600e8; } -.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { text-decoration: none; background-color: #f4f4f4; } -.btn:active, .btn.selected, .btn.zeroclipboard-is-active { background-color: #efefef; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn.selected:hover { background-color: #cfcfcf; } -.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { color: rgba(102, 102, 102, 0.5); cursor: default; background-color: rgba(229, 229, 229, 0.5); background-image: none; box-shadow: none; } - -.btn-outline { color: #6b00f2; background: transparent; box-shadow: inset 0 0 0 2px #e6e1e8; } -.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { color: #6200de; text-decoration: none; background-color: transparent; box-shadow: inset 0 0 0 3px #e6e1e8; } -.btn-outline:focus { text-decoration: none; outline: none; box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn-outline:focus:hover, .btn-outline.selected:focus { box-shadow: inset 0 0 0 2px #5c5962; } - -.btn-primary { color: #fff; background-color: #6600e8; background-image: linear-gradient(#780dff, #6600e8); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { color: #fff; background-color: #6200de; background-image: linear-gradient(#7000fc, #6200de); } -.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { background-color: #6000d9; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-primary.selected:hover { background-color: #5400bf; } - -.btn-purple { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } -.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-purple.selected:hover { background-color: #472cb2; } - -.btn-blue { color: #fff; background-color: #227efa; background-image: linear-gradient(#4593fb, #227efa); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { color: #fff; background-color: #1878fa; background-image: linear-gradient(#368afa, #1878fa); } -.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { background-color: #1375f9; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-blue.selected:hover { background-color: #0669ed; } - -.btn-green { color: #fff; background-color: #10ac7d; background-image: linear-gradient(#13cc95, #10ac7d); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-green:hover, .btn-green.zeroclipboard-is-hover { color: #fff; background-color: #0fa276; background-image: linear-gradient(#12be8b, #0fa276); } -.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { background-color: #0f9e73; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-green.selected:hover { background-color: #0d8662; } - -.search { position: relative; z-index: 2; flex-grow: 1; height: 4rem; padding: 0.5rem; transition: padding linear 200ms; } -@media (min-width: 50rem) { .search { position: relative !important; width: auto !important; height: 100% !important; padding: 0; transition: none; } } - -.search-input-wrap { position: relative; z-index: 1; height: 3rem; overflow: hidden; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); transition: height linear 200ms; } -@media (min-width: 50rem) { .search-input-wrap { position: absolute; width: 100%; max-width: 536px; height: 100% !important; border-radius: 0; box-shadow: none; transition: width ease 400ms; } } - -.search-input { position: absolute; width: 100%; height: 100%; padding-top: 0.5rem; padding-right: 1rem; padding-bottom: 0.5rem; padding-left: 2.5rem; font-size: 16px; background-color: #fff; border-top: 0; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; } -@media (min-width: 50rem) { .search-input { padding-top: 1rem; padding-bottom: 1rem; padding-left: 3.5rem; font-size: 14px; background-color: #fff; transition: padding-left linear 200ms; } } -.search-input:focus { outline: 0; } -.search-input:focus + .search-label .search-icon { color: #6b00f2; } - -.search-label { position: absolute; display: flex; height: 100%; padding-left: 1rem; } -@media (min-width: 50rem) { .search-label { padding-left: 2rem; transition: padding-left linear 200ms; } } -.search-label .search-icon { width: 1.2rem; height: 1.2rem; align-self: center; color: #959396; } - -.search-results { position: absolute; left: 0; display: none; width: 100%; max-height: calc(100% - 4rem); overflow-y: auto; background-color: #fff; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } -@media (min-width: 50rem) { .search-results { top: 100%; width: 536px; max-height: calc(100vh - 200%) !important; } } - -.search-results-list { padding-left: 0; margin-bottom: 0.25rem; list-style: none; font-size: 14px !important; } -@media (min-width: 31.25rem) { .search-results-list { font-size: 16px !important; } } -@media (min-width: 50rem) { .search-results-list { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-results-list { font-size: 14px !important; } } - -.search-results-list-item { padding: 0; margin: 0; } - -.search-result { display: block; padding-top: 0.25rem; padding-right: 0.75rem; padding-bottom: 0.25rem; padding-left: 0.75rem; } -.search-result:hover, .search-result.active { background-color: #ebedf5; } - -.search-result-title { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; } -@media (min-width: 31.25rem) { .search-result-title { display: inline-block; width: 40%; padding-right: 0.5rem; vertical-align: top; } } - -.search-result-doc { display: flex; align-items: center; word-wrap: break-word; } -.search-result-doc.search-result-doc-parent { opacity: 0.5; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 14px !important; } } -@media (min-width: 50rem) { .search-result-doc.search-result-doc-parent { font-size: 11px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 12px !important; } } - -.search-result-doc .search-result-icon { width: 1rem; height: 1rem; margin-right: 0.5rem; color: #6b00f2; flex-shrink: 0; } -.search-result-doc .search-result-doc-title { overflow: auto; } - -.search-result-section { margin-left: 1.5rem; word-wrap: break-word; } - -.search-result-rel-url { display: block; margin-left: 1.5rem; overflow: hidden; color: #959396; text-overflow: ellipsis; white-space: nowrap; font-size: 9px !important; } -@media (min-width: 31.25rem) { .search-result-rel-url { font-size: 10px !important; } } - -.search-result-previews { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1rem; margin-left: 0.5rem; color: #959396; word-wrap: break-word; border-left: 1px solid; border-left-color: #eeebee; font-size: 11px !important; } -@media (min-width: 31.25rem) { .search-result-previews { font-size: 12px !important; } } -@media (min-width: 31.25rem) { .search-result-previews { display: inline-block; width: 60%; padding-left: 0.5rem; margin-left: 0; vertical-align: top; } } - -.search-result-preview + .search-result-preview { margin-top: 0.25rem; } - -.search-result-highlight { font-weight: bold; } - -.search-no-result { padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-no-result { font-size: 14px !important; } } - -.search-button { position: fixed; right: 1rem; bottom: 1rem; display: flex; width: 3.5rem; height: 3.5rem; background-color: #fff; border: 1px solid rgba(107, 0, 242, 0.3); border-radius: 1.75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); align-items: center; justify-content: center; } - -.search-overlay { position: fixed; top: 0; left: 0; z-index: 1; width: 0; height: 0; background-color: rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; } - -.search-active .search { position: fixed; top: 0; left: 0; width: 100%; height: 100%; padding: 0; } -.search-active .search-input-wrap { height: 4rem; border-radius: 0; } -@media (min-width: 50rem) { .search-active .search-input-wrap { width: 536px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } } -.search-active .search-input { background-color: #fff; } -@media (min-width: 50rem) { .search-active .search-input { padding-left: 2.3rem; } } -@media (min-width: 50rem) { .search-active .search-label { padding-left: 0.6rem; } } -.search-active .search-results { display: block; } -.search-active .search-overlay { width: 100%; height: 100%; opacity: 1; transition: opacity ease 400ms, width 0s, height 0s; } -@media (min-width: 50rem) { .search-active .main { position: fixed; right: 0; left: 0; } } -.search-active .main-header { padding-top: 4rem; } -@media (min-width: 50rem) { .search-active .main-header { padding-top: 0; } } - -.table-wrapper { display: block; width: 100%; max-width: 100%; margin-bottom: 1.5rem; overflow-x: auto; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } - -table { display: table; min-width: 100%; border-collapse: separate; } - -th, td { font-size: 12px !important; min-width: 120px; padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; background-color: #fff; border-bottom: 1px solid rgba(238, 235, 238, 0.5); border-left: 1px solid #eeebee; } -@media (min-width: 31.25rem) { th, td { font-size: 14px !important; } } -th:first-of-type, td:first-of-type { border-left: 0; } - -tbody tr:last-of-type th, tbody tr:last-of-type td { border-bottom: 0; } -tbody tr:last-of-type td { padding-bottom: 0.75rem; } - -thead th { border-bottom: 1px solid #eeebee; } - -code { padding: 0.2em 0.15em; font-weight: 400; background-color: #f5f6fa; border: 1px solid #eeebee; border-radius: 4px; } - -a:visited code { border-color: #eeebee; } - -div.highlighter-rouge { padding: 0.75rem; margin-top: 0; margin-bottom: 0.75rem; overflow-x: auto; background-color: #f5f6fa; border-radius: 4px; box-shadow: none; -webkit-overflow-scrolling: touch; } -div.highlighter-rouge div.highlight, div.highlighter-rouge pre.highlight, div.highlighter-rouge code { padding: 0; margin: 0; border: 0; } - -figure.highlight { padding: 0.75rem; margin-top: 0; margin-bottom: 0.75rem; background-color: #f5f6fa; border-radius: 4px; box-shadow: none; -webkit-overflow-scrolling: touch; } -figure.highlight pre, figure.highlight code { padding: 0; margin: 0; border: 0; } - -.highlight .table-wrapper { padding: 0; margin: 0; border: 0; box-shadow: none; } -.highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 11px !important; min-width: 0; padding: 0; background-color: #f5f6fa; border: 0; } -@media (min-width: 31.25rem) { .highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 12px !important; } } -.highlight .table-wrapper td.gl { padding-right: 0.75rem; } -.highlight .table-wrapper pre { margin: 0; line-height: 2; } - -.highlight .c { color: #586e75; } - -.highlight .err { color: #93a1a1; } - -.highlight .g { color: #93a1a1; } - -.highlight .k { color: #859900; } - -.highlight .l { color: #93a1a1; } - -.highlight .n { color: #93a1a1; } - -.highlight .o { color: #859900; } - -.highlight .x { color: #cb4b16; } - -.highlight .p { color: #93a1a1; } - -.highlight .cm { color: #586e75; } - -.highlight .cp { color: #859900; } - -.highlight .c1 { color: #586e75; } - -.highlight .cs { color: #859900; } - -.highlight .gd { color: #2aa198; } - -.highlight .ge { font-style: italic; color: #93a1a1; } - -.highlight .gr { color: #dc322f; } - -.highlight .gh { color: #cb4b16; } - -.highlight .gi { color: #859900; } - -.highlight .go { color: #93a1a1; } - -.highlight .gp { color: #93a1a1; } - -.highlight .gs { font-weight: bold; color: #93a1a1; } - -.highlight .gu { color: #cb4b16; } - -.highlight .gt { color: #93a1a1; } - -.highlight .kc { color: #cb4b16; } - -.highlight .kd { color: #268bd2; } - -.highlight .kn { color: #859900; } - -.highlight .kp { color: #859900; } - -.highlight .kr { color: #268bd2; } - -.highlight .kt { color: #dc322f; } - -.highlight .ld { color: #93a1a1; } - -.highlight .m { color: #2aa198; } - -.highlight .s { color: #2aa198; } - -.highlight .na { color: #555; } - -.highlight .nb { color: #b58900; } - -.highlight .nc { color: #268bd2; } - -.highlight .no { color: #cb4b16; } - -.highlight .nd { color: #268bd2; } - -.highlight .ni { color: #cb4b16; } - -.highlight .ne { color: #cb4b16; } - -.highlight .nf { color: #268bd2; } - -.highlight .nl { color: #555; } - -.highlight .nn { color: #93a1a1; } - -.highlight .nx { color: #555; } - -.highlight .py { color: #93a1a1; } - -.highlight .nt { color: #268bd2; } - -.highlight .nv { color: #268bd2; } - -.highlight .ow { color: #859900; } - -.highlight .w { color: #93a1a1; } - -.highlight .mf { color: #2aa198; } - -.highlight .mh { color: #2aa198; } - -.highlight .mi { color: #2aa198; } - -.highlight .mo { color: #2aa198; } - -.highlight .sb { color: #586e75; } - -.highlight .sc { color: #2aa198; } - -.highlight .sd { color: #93a1a1; } - -.highlight .s2 { color: #2aa198; } - -.highlight .se { color: #cb4b16; } - -.highlight .sh { color: #93a1a1; } - -.highlight .si { color: #2aa198; } - -.highlight .sx { color: #2aa198; } - -.highlight .sr { color: #dc322f; } - -.highlight .s1 { color: #2aa198; } - -.highlight .ss { color: #2aa198; } - -.highlight .bp { color: #268bd2; } - -.highlight .vc { color: #268bd2; } - -.highlight .vg { color: #268bd2; } - -.highlight .vi { color: #268bd2; } - -.highlight .il { color: #2aa198; } - -.code-example { padding: 0.75rem; margin-bottom: 0.75rem; overflow: auto; border: 1px solid #eeebee; border-radius: 4px; } -.code-example + .highlighter-rouge, .code-example + figure.highlight { position: relative; margin-top: -1rem; border-right: 1px solid #eeebee; border-bottom: 1px solid #eeebee; border-left: 1px solid #eeebee; border-top-left-radius: 0; border-top-right-radius: 0; } - -.text-grey-dk-000 { color: #959396 !important; } - -.text-grey-dk-100 { color: #5c5962 !important; } - -.text-grey-dk-200 { color: #44434d !important; } - -.text-grey-dk-250 { color: #302d36 !important; } - -.text-grey-dk-300 { color: #27262b !important; } - -.text-grey-lt-000 { color: #f5f6fa !important; } - -.text-grey-lt-100 { color: #eeebee !important; } - -.text-grey-lt-200 { color: #ecebed !important; } - -.text-grey-lt-300 { color: #e6e1e8 !important; } - -.text-blue-000 { color: #2c84fa !important; } - -.text-blue-100 { color: #2869e6 !important; } - -.text-blue-200 { color: #264caf !important; } - -.text-blue-300 { color: #183385 !important; } - -.text-green-000 { color: #41d693 !important; } - -.text-green-100 { color: #11b584 !important; } - -.text-green-200 { color: #009c7b !important; } - -.text-green-300 { color: #026e57 !important; } - -.text-purple-000 { color: #7253ed !important; } - -.text-purple-100 { color: #5e41d0 !important; } - -.text-purple-200 { color: #4e26af !important; } - -.text-purple-300 { color: #381885 !important; } - -.text-yellow-000 { color: #ffeb82 !important; } - -.text-yellow-100 { color: #fadf50 !important; } - -.text-yellow-200 { color: #f7d12e !important; } - -.text-yellow-300 { color: #e7af06 !important; } - -.text-red-000 { color: #f77e7e !important; } - -.text-red-100 { color: #f96e65 !important; } - -.text-red-200 { color: #e94c4c !important; } - -.text-red-300 { color: #dd2e2e !important; } - -.bg-grey-dk-000 { background-color: #959396 !important; } - -.bg-grey-dk-100 { background-color: #5c5962 !important; } - -.bg-grey-dk-200 { background-color: #44434d !important; } - -.bg-grey-dk-250 { background-color: #302d36 !important; } - -.bg-grey-dk-300 { background-color: #27262b !important; } - -.bg-grey-lt-000 { background-color: #f5f6fa !important; } - -.bg-grey-lt-100 { background-color: #eeebee !important; } - -.bg-grey-lt-200 { background-color: #ecebed !important; } - -.bg-grey-lt-300 { background-color: #e6e1e8 !important; } - -.bg-blue-000 { background-color: #2c84fa !important; } - -.bg-blue-100 { background-color: #2869e6 !important; } - -.bg-blue-200 { background-color: #264caf !important; } - -.bg-blue-300 { background-color: #183385 !important; } - -.bg-green-000 { background-color: #41d693 !important; } - -.bg-green-100 { background-color: #11b584 !important; } - -.bg-green-200 { background-color: #009c7b !important; } - -.bg-green-300 { background-color: #026e57 !important; } - -.bg-purple-000 { background-color: #7253ed !important; } - -.bg-purple-100 { background-color: #5e41d0 !important; } - -.bg-purple-200 { background-color: #4e26af !important; } - -.bg-purple-300 { background-color: #381885 !important; } - -.bg-yellow-000 { background-color: #ffeb82 !important; } - -.bg-yellow-100 { background-color: #fadf50 !important; } - -.bg-yellow-200 { background-color: #f7d12e !important; } - -.bg-yellow-300 { background-color: #e7af06 !important; } - -.bg-red-000 { background-color: #f77e7e !important; } - -.bg-red-100 { background-color: #f96e65 !important; } - -.bg-red-200 { background-color: #e94c4c !important; } - -.bg-red-300 { background-color: #dd2e2e !important; } - -.d-block { display: block !important; } - -.d-flex { display: flex !important; } - -.d-inline { display: inline !important; } - -.d-inline-block { display: inline-block !important; } - -.d-none { display: none !important; } - -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -.float-left { float: left !important; } - -.float-right { float: right !important; } - -.flex-justify-start { justify-content: flex-start !important; } - -.flex-justify-end { justify-content: flex-end !important; } - -.flex-justify-between { justify-content: space-between !important; } - -.flex-justify-around { justify-content: space-around !important; } - -.v-align-baseline { vertical-align: baseline !important; } - -.v-align-bottom { vertical-align: bottom !important; } - -.v-align-middle { vertical-align: middle !important; } - -.v-align-text-bottom { vertical-align: text-bottom !important; } - -.v-align-text-top { vertical-align: text-top !important; } - -.v-align-top { vertical-align: top !important; } - -.fs-1 { font-size: 9px !important; } -@media (min-width: 31.25rem) { .fs-1 { font-size: 10px !important; } } - -.fs-2 { font-size: 11px !important; } -@media (min-width: 31.25rem) { .fs-2 { font-size: 12px !important; } } - -.fs-3 { font-size: 12px !important; } -@media (min-width: 31.25rem) { .fs-3 { font-size: 14px !important; } } - -.fs-4 { font-size: 14px !important; } -@media (min-width: 31.25rem) { .fs-4 { font-size: 16px !important; } } - -.fs-5 { font-size: 16px !important; } -@media (min-width: 31.25rem) { .fs-5 { font-size: 18px !important; } } - -.fs-6 { font-size: 18px !important; } -@media (min-width: 31.25rem) { .fs-6 { font-size: 24px !important; line-height: 1.25; } } - -.fs-7 { font-size: 24px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-7 { font-size: 32px !important; } } - -.fs-8 { font-size: 32px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-8 { font-size: 36px !important; } } - -.fs-9 { font-size: 36px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-9 { font-size: 42px !important; } } - -.fs-10 { font-size: 42px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-10 { font-size: 48px !important; } } - -.fw-300 { font-weight: 300 !important; } - -.fw-400 { font-weight: 400 !important; } - -.fw-500 { font-weight: 500 !important; } - -.fw-700 { font-weight: 700 !important; } - -.lh-0 { line-height: 0 !important; } - -.lh-default { line-height: 1.4; } - -.lh-tight { line-height: 1.25; } - -.ls-5 { letter-spacing: 0.05em !important; } - -.ls-10 { letter-spacing: 0.1em !important; } - -.ls-0 { letter-spacing: 0 !important; } - -.text-uppercase { text-transform: uppercase !important; } - -.list-style-none { padding: 0 !important; margin: 0 !important; list-style: none !important; } -.list-style-none li::before { display: none !important; } - -.mx-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-0 { margin: 0 !important; } - -.mt-0 { margin-top: 0 !important; } - -.mr-0 { margin-right: 0 !important; } - -.mb-0 { margin-bottom: 0 !important; } - -.ml-0 { margin-left: 0 !important; } - -.mx-0 { margin-right: 0 !important; margin-left: 0 !important; } - -.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - -.mxn-0 { margin-right: -0 !important; margin-left: -0 !important; } - -.mx-0-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-1 { margin: 0.25rem !important; } - -.mt-1 { margin-top: 0.25rem !important; } - -.mr-1 { margin-right: 0.25rem !important; } - -.mb-1 { margin-bottom: 0.25rem !important; } - -.ml-1 { margin-left: 0.25rem !important; } - -.mx-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - -.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - -.mxn-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } - -.mx-1-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-2 { margin: 0.5rem !important; } - -.mt-2 { margin-top: 0.5rem !important; } - -.mr-2 { margin-right: 0.5rem !important; } - -.mb-2 { margin-bottom: 0.5rem !important; } - -.ml-2 { margin-left: 0.5rem !important; } - -.mx-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - -.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - -.mxn-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } - -.mx-2-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-3 { margin: 0.75rem !important; } - -.mt-3 { margin-top: 0.75rem !important; } - -.mr-3 { margin-right: 0.75rem !important; } - -.mb-3 { margin-bottom: 0.75rem !important; } - -.ml-3 { margin-left: 0.75rem !important; } - -.mx-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - -.my-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - -.mxn-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } - -.mx-3-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-4 { margin: 1rem !important; } - -.mt-4 { margin-top: 1rem !important; } - -.mr-4 { margin-right: 1rem !important; } - -.mb-4 { margin-bottom: 1rem !important; } - -.ml-4 { margin-left: 1rem !important; } - -.mx-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - -.my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - -.mxn-4 { margin-right: -1rem !important; margin-left: -1rem !important; } - -.mx-4-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-5 { margin: 1.5rem !important; } - -.mt-5 { margin-top: 1.5rem !important; } - -.mr-5 { margin-right: 1.5rem !important; } - -.mb-5 { margin-bottom: 1.5rem !important; } - -.ml-5 { margin-left: 1.5rem !important; } - -.mx-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - -.my-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - -.mxn-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } - -.mx-5-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-6 { margin: 2rem !important; } - -.mt-6 { margin-top: 2rem !important; } - -.mr-6 { margin-right: 2rem !important; } - -.mb-6 { margin-bottom: 2rem !important; } - -.ml-6 { margin-left: 2rem !important; } - -.mx-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - -.my-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - -.mxn-6 { margin-right: -2rem !important; margin-left: -2rem !important; } - -.mx-6-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-7 { margin: 2.5rem !important; } - -.mt-7 { margin-top: 2.5rem !important; } - -.mr-7 { margin-right: 2.5rem !important; } - -.mb-7 { margin-bottom: 2.5rem !important; } - -.ml-7 { margin-left: 2.5rem !important; } - -.mx-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - -.my-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - -.mxn-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } - -.mx-7-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-8 { margin: 3rem !important; } - -.mt-8 { margin-top: 3rem !important; } - -.mr-8 { margin-right: 3rem !important; } - -.mb-8 { margin-bottom: 3rem !important; } - -.ml-8 { margin-left: 3rem !important; } - -.mx-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - -.my-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - -.mxn-8 { margin-right: -3rem !important; margin-left: -3rem !important; } - -.mx-8-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-9 { margin: 3.5rem !important; } - -.mt-9 { margin-top: 3.5rem !important; } - -.mr-9 { margin-right: 3.5rem !important; } - -.mb-9 { margin-bottom: 3.5rem !important; } - -.ml-9 { margin-left: 3.5rem !important; } - -.mx-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - -.my-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - -.mxn-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } - -.mx-9-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-10 { margin: 4rem !important; } - -.mt-10 { margin-top: 4rem !important; } - -.mr-10 { margin-right: 4rem !important; } - -.mb-10 { margin-bottom: 4rem !important; } - -.ml-10 { margin-left: 4rem !important; } - -.mx-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - -.my-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - -.mxn-10 { margin-right: -4rem !important; margin-left: -4rem !important; } - -.mx-10-auto { margin-right: auto !important; margin-left: auto !important; } - -@media (min-width: 20rem) { .m-xs-0 { margin: 0 !important; } - .mt-xs-0 { margin-top: 0 !important; } - .mr-xs-0 { margin-right: 0 !important; } - .mb-xs-0 { margin-bottom: 0 !important; } - .ml-xs-0 { margin-left: 0 !important; } - .mx-xs-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xs-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xs-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 20rem) { .m-xs-1 { margin: 0.25rem !important; } - .mt-xs-1 { margin-top: 0.25rem !important; } - .mr-xs-1 { margin-right: 0.25rem !important; } - .mb-xs-1 { margin-bottom: 0.25rem !important; } - .ml-xs-1 { margin-left: 0.25rem !important; } - .mx-xs-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xs-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xs-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 20rem) { .m-xs-2 { margin: 0.5rem !important; } - .mt-xs-2 { margin-top: 0.5rem !important; } - .mr-xs-2 { margin-right: 0.5rem !important; } - .mb-xs-2 { margin-bottom: 0.5rem !important; } - .ml-xs-2 { margin-left: 0.5rem !important; } - .mx-xs-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xs-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xs-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 20rem) { .m-xs-3 { margin: 0.75rem !important; } - .mt-xs-3 { margin-top: 0.75rem !important; } - .mr-xs-3 { margin-right: 0.75rem !important; } - .mb-xs-3 { margin-bottom: 0.75rem !important; } - .ml-xs-3 { margin-left: 0.75rem !important; } - .mx-xs-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xs-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xs-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 20rem) { .m-xs-4 { margin: 1rem !important; } - .mt-xs-4 { margin-top: 1rem !important; } - .mr-xs-4 { margin-right: 1rem !important; } - .mb-xs-4 { margin-bottom: 1rem !important; } - .ml-xs-4 { margin-left: 1rem !important; } - .mx-xs-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xs-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xs-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 20rem) { .m-xs-5 { margin: 1.5rem !important; } - .mt-xs-5 { margin-top: 1.5rem !important; } - .mr-xs-5 { margin-right: 1.5rem !important; } - .mb-xs-5 { margin-bottom: 1.5rem !important; } - .ml-xs-5 { margin-left: 1.5rem !important; } - .mx-xs-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xs-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xs-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 20rem) { .m-xs-6 { margin: 2rem !important; } - .mt-xs-6 { margin-top: 2rem !important; } - .mr-xs-6 { margin-right: 2rem !important; } - .mb-xs-6 { margin-bottom: 2rem !important; } - .ml-xs-6 { margin-left: 2rem !important; } - .mx-xs-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xs-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xs-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 20rem) { .m-xs-7 { margin: 2.5rem !important; } - .mt-xs-7 { margin-top: 2.5rem !important; } - .mr-xs-7 { margin-right: 2.5rem !important; } - .mb-xs-7 { margin-bottom: 2.5rem !important; } - .ml-xs-7 { margin-left: 2.5rem !important; } - .mx-xs-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xs-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xs-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 20rem) { .m-xs-8 { margin: 3rem !important; } - .mt-xs-8 { margin-top: 3rem !important; } - .mr-xs-8 { margin-right: 3rem !important; } - .mb-xs-8 { margin-bottom: 3rem !important; } - .ml-xs-8 { margin-left: 3rem !important; } - .mx-xs-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xs-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xs-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 20rem) { .m-xs-9 { margin: 3.5rem !important; } - .mt-xs-9 { margin-top: 3.5rem !important; } - .mr-xs-9 { margin-right: 3.5rem !important; } - .mb-xs-9 { margin-bottom: 3.5rem !important; } - .ml-xs-9 { margin-left: 3.5rem !important; } - .mx-xs-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xs-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xs-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 20rem) { .m-xs-10 { margin: 4rem !important; } - .mt-xs-10 { margin-top: 4rem !important; } - .mr-xs-10 { margin-right: 4rem !important; } - .mb-xs-10 { margin-bottom: 4rem !important; } - .ml-xs-10 { margin-left: 4rem !important; } - .mx-xs-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xs-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xs-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 31.25rem) { .m-sm-0 { margin: 0 !important; } - .mt-sm-0 { margin-top: 0 !important; } - .mr-sm-0 { margin-right: 0 !important; } - .mb-sm-0 { margin-bottom: 0 !important; } - .ml-sm-0 { margin-left: 0 !important; } - .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-sm-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 31.25rem) { .m-sm-1 { margin: 0.25rem !important; } - .mt-sm-1 { margin-top: 0.25rem !important; } - .mr-sm-1 { margin-right: 0.25rem !important; } - .mb-sm-1 { margin-bottom: 0.25rem !important; } - .ml-sm-1 { margin-left: 0.25rem !important; } - .mx-sm-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-sm-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 31.25rem) { .m-sm-2 { margin: 0.5rem !important; } - .mt-sm-2 { margin-top: 0.5rem !important; } - .mr-sm-2 { margin-right: 0.5rem !important; } - .mb-sm-2 { margin-bottom: 0.5rem !important; } - .ml-sm-2 { margin-left: 0.5rem !important; } - .mx-sm-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-sm-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-3 { margin: 0.75rem !important; } - .mt-sm-3 { margin-top: 0.75rem !important; } - .mr-sm-3 { margin-right: 0.75rem !important; } - .mb-sm-3 { margin-bottom: 0.75rem !important; } - .ml-sm-3 { margin-left: 0.75rem !important; } - .mx-sm-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-sm-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-sm-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 31.25rem) { .m-sm-4 { margin: 1rem !important; } - .mt-sm-4 { margin-top: 1rem !important; } - .mr-sm-4 { margin-right: 1rem !important; } - .mb-sm-4 { margin-bottom: 1rem !important; } - .ml-sm-4 { margin-left: 1rem !important; } - .mx-sm-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-sm-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-sm-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 31.25rem) { .m-sm-5 { margin: 1.5rem !important; } - .mt-sm-5 { margin-top: 1.5rem !important; } - .mr-sm-5 { margin-right: 1.5rem !important; } - .mb-sm-5 { margin-bottom: 1.5rem !important; } - .ml-sm-5 { margin-left: 1.5rem !important; } - .mx-sm-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-sm-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-sm-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-6 { margin: 2rem !important; } - .mt-sm-6 { margin-top: 2rem !important; } - .mr-sm-6 { margin-right: 2rem !important; } - .mb-sm-6 { margin-bottom: 2rem !important; } - .ml-sm-6 { margin-left: 2rem !important; } - .mx-sm-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-sm-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-sm-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 31.25rem) { .m-sm-7 { margin: 2.5rem !important; } - .mt-sm-7 { margin-top: 2.5rem !important; } - .mr-sm-7 { margin-right: 2.5rem !important; } - .mb-sm-7 { margin-bottom: 2.5rem !important; } - .ml-sm-7 { margin-left: 2.5rem !important; } - .mx-sm-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-sm-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-sm-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-8 { margin: 3rem !important; } - .mt-sm-8 { margin-top: 3rem !important; } - .mr-sm-8 { margin-right: 3rem !important; } - .mb-sm-8 { margin-bottom: 3rem !important; } - .ml-sm-8 { margin-left: 3rem !important; } - .mx-sm-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-sm-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-sm-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 31.25rem) { .m-sm-9 { margin: 3.5rem !important; } - .mt-sm-9 { margin-top: 3.5rem !important; } - .mr-sm-9 { margin-right: 3.5rem !important; } - .mb-sm-9 { margin-bottom: 3.5rem !important; } - .ml-sm-9 { margin-left: 3.5rem !important; } - .mx-sm-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-sm-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-sm-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-10 { margin: 4rem !important; } - .mt-sm-10 { margin-top: 4rem !important; } - .mr-sm-10 { margin-right: 4rem !important; } - .mb-sm-10 { margin-bottom: 4rem !important; } - .ml-sm-10 { margin-left: 4rem !important; } - .mx-sm-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-sm-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-sm-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 50rem) { .m-md-0 { margin: 0 !important; } - .mt-md-0 { margin-top: 0 !important; } - .mr-md-0 { margin-right: 0 !important; } - .mb-md-0 { margin-bottom: 0 !important; } - .ml-md-0 { margin-left: 0 !important; } - .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-md-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 50rem) { .m-md-1 { margin: 0.25rem !important; } - .mt-md-1 { margin-top: 0.25rem !important; } - .mr-md-1 { margin-right: 0.25rem !important; } - .mb-md-1 { margin-bottom: 0.25rem !important; } - .ml-md-1 { margin-left: 0.25rem !important; } - .mx-md-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-md-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 50rem) { .m-md-2 { margin: 0.5rem !important; } - .mt-md-2 { margin-top: 0.5rem !important; } - .mr-md-2 { margin-right: 0.5rem !important; } - .mb-md-2 { margin-bottom: 0.5rem !important; } - .ml-md-2 { margin-left: 0.5rem !important; } - .mx-md-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-md-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 50rem) { .m-md-3 { margin: 0.75rem !important; } - .mt-md-3 { margin-top: 0.75rem !important; } - .mr-md-3 { margin-right: 0.75rem !important; } - .mb-md-3 { margin-bottom: 0.75rem !important; } - .ml-md-3 { margin-left: 0.75rem !important; } - .mx-md-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-md-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-md-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 50rem) { .m-md-4 { margin: 1rem !important; } - .mt-md-4 { margin-top: 1rem !important; } - .mr-md-4 { margin-right: 1rem !important; } - .mb-md-4 { margin-bottom: 1rem !important; } - .ml-md-4 { margin-left: 1rem !important; } - .mx-md-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-md-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-md-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 50rem) { .m-md-5 { margin: 1.5rem !important; } - .mt-md-5 { margin-top: 1.5rem !important; } - .mr-md-5 { margin-right: 1.5rem !important; } - .mb-md-5 { margin-bottom: 1.5rem !important; } - .ml-md-5 { margin-left: 1.5rem !important; } - .mx-md-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-md-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-md-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 50rem) { .m-md-6 { margin: 2rem !important; } - .mt-md-6 { margin-top: 2rem !important; } - .mr-md-6 { margin-right: 2rem !important; } - .mb-md-6 { margin-bottom: 2rem !important; } - .ml-md-6 { margin-left: 2rem !important; } - .mx-md-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-md-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-md-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 50rem) { .m-md-7 { margin: 2.5rem !important; } - .mt-md-7 { margin-top: 2.5rem !important; } - .mr-md-7 { margin-right: 2.5rem !important; } - .mb-md-7 { margin-bottom: 2.5rem !important; } - .ml-md-7 { margin-left: 2.5rem !important; } - .mx-md-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-md-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-md-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 50rem) { .m-md-8 { margin: 3rem !important; } - .mt-md-8 { margin-top: 3rem !important; } - .mr-md-8 { margin-right: 3rem !important; } - .mb-md-8 { margin-bottom: 3rem !important; } - .ml-md-8 { margin-left: 3rem !important; } - .mx-md-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-md-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-md-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 50rem) { .m-md-9 { margin: 3.5rem !important; } - .mt-md-9 { margin-top: 3.5rem !important; } - .mr-md-9 { margin-right: 3.5rem !important; } - .mb-md-9 { margin-bottom: 3.5rem !important; } - .ml-md-9 { margin-left: 3.5rem !important; } - .mx-md-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-md-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-md-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 50rem) { .m-md-10 { margin: 4rem !important; } - .mt-md-10 { margin-top: 4rem !important; } - .mr-md-10 { margin-right: 4rem !important; } - .mb-md-10 { margin-bottom: 4rem !important; } - .ml-md-10 { margin-left: 4rem !important; } - .mx-md-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-md-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-md-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 66.5rem) { .m-lg-0 { margin: 0 !important; } - .mt-lg-0 { margin-top: 0 !important; } - .mr-lg-0 { margin-right: 0 !important; } - .mb-lg-0 { margin-bottom: 0 !important; } - .ml-lg-0 { margin-left: 0 !important; } - .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-lg-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 66.5rem) { .m-lg-1 { margin: 0.25rem !important; } - .mt-lg-1 { margin-top: 0.25rem !important; } - .mr-lg-1 { margin-right: 0.25rem !important; } - .mb-lg-1 { margin-bottom: 0.25rem !important; } - .ml-lg-1 { margin-left: 0.25rem !important; } - .mx-lg-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-lg-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 66.5rem) { .m-lg-2 { margin: 0.5rem !important; } - .mt-lg-2 { margin-top: 0.5rem !important; } - .mr-lg-2 { margin-right: 0.5rem !important; } - .mb-lg-2 { margin-bottom: 0.5rem !important; } - .ml-lg-2 { margin-left: 0.5rem !important; } - .mx-lg-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-lg-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-3 { margin: 0.75rem !important; } - .mt-lg-3 { margin-top: 0.75rem !important; } - .mr-lg-3 { margin-right: 0.75rem !important; } - .mb-lg-3 { margin-bottom: 0.75rem !important; } - .ml-lg-3 { margin-left: 0.75rem !important; } - .mx-lg-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-lg-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-lg-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 66.5rem) { .m-lg-4 { margin: 1rem !important; } - .mt-lg-4 { margin-top: 1rem !important; } - .mr-lg-4 { margin-right: 1rem !important; } - .mb-lg-4 { margin-bottom: 1rem !important; } - .ml-lg-4 { margin-left: 1rem !important; } - .mx-lg-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-lg-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-lg-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 66.5rem) { .m-lg-5 { margin: 1.5rem !important; } - .mt-lg-5 { margin-top: 1.5rem !important; } - .mr-lg-5 { margin-right: 1.5rem !important; } - .mb-lg-5 { margin-bottom: 1.5rem !important; } - .ml-lg-5 { margin-left: 1.5rem !important; } - .mx-lg-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-lg-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-lg-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-6 { margin: 2rem !important; } - .mt-lg-6 { margin-top: 2rem !important; } - .mr-lg-6 { margin-right: 2rem !important; } - .mb-lg-6 { margin-bottom: 2rem !important; } - .ml-lg-6 { margin-left: 2rem !important; } - .mx-lg-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-lg-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-lg-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 66.5rem) { .m-lg-7 { margin: 2.5rem !important; } - .mt-lg-7 { margin-top: 2.5rem !important; } - .mr-lg-7 { margin-right: 2.5rem !important; } - .mb-lg-7 { margin-bottom: 2.5rem !important; } - .ml-lg-7 { margin-left: 2.5rem !important; } - .mx-lg-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-lg-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-lg-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-8 { margin: 3rem !important; } - .mt-lg-8 { margin-top: 3rem !important; } - .mr-lg-8 { margin-right: 3rem !important; } - .mb-lg-8 { margin-bottom: 3rem !important; } - .ml-lg-8 { margin-left: 3rem !important; } - .mx-lg-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-lg-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-lg-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 66.5rem) { .m-lg-9 { margin: 3.5rem !important; } - .mt-lg-9 { margin-top: 3.5rem !important; } - .mr-lg-9 { margin-right: 3.5rem !important; } - .mb-lg-9 { margin-bottom: 3.5rem !important; } - .ml-lg-9 { margin-left: 3.5rem !important; } - .mx-lg-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-lg-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-lg-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-10 { margin: 4rem !important; } - .mt-lg-10 { margin-top: 4rem !important; } - .mr-lg-10 { margin-right: 4rem !important; } - .mb-lg-10 { margin-bottom: 4rem !important; } - .ml-lg-10 { margin-left: 4rem !important; } - .mx-lg-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-lg-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-lg-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 87.5rem) { .m-xl-0 { margin: 0 !important; } - .mt-xl-0 { margin-top: 0 !important; } - .mr-xl-0 { margin-right: 0 !important; } - .mb-xl-0 { margin-bottom: 0 !important; } - .ml-xl-0 { margin-left: 0 !important; } - .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xl-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 87.5rem) { .m-xl-1 { margin: 0.25rem !important; } - .mt-xl-1 { margin-top: 0.25rem !important; } - .mr-xl-1 { margin-right: 0.25rem !important; } - .mb-xl-1 { margin-bottom: 0.25rem !important; } - .ml-xl-1 { margin-left: 0.25rem !important; } - .mx-xl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xl-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 87.5rem) { .m-xl-2 { margin: 0.5rem !important; } - .mt-xl-2 { margin-top: 0.5rem !important; } - .mr-xl-2 { margin-right: 0.5rem !important; } - .mb-xl-2 { margin-bottom: 0.5rem !important; } - .ml-xl-2 { margin-left: 0.5rem !important; } - .mx-xl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xl-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-3 { margin: 0.75rem !important; } - .mt-xl-3 { margin-top: 0.75rem !important; } - .mr-xl-3 { margin-right: 0.75rem !important; } - .mb-xl-3 { margin-bottom: 0.75rem !important; } - .ml-xl-3 { margin-left: 0.75rem !important; } - .mx-xl-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xl-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xl-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 87.5rem) { .m-xl-4 { margin: 1rem !important; } - .mt-xl-4 { margin-top: 1rem !important; } - .mr-xl-4 { margin-right: 1rem !important; } - .mb-xl-4 { margin-bottom: 1rem !important; } - .ml-xl-4 { margin-left: 1rem !important; } - .mx-xl-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xl-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xl-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 87.5rem) { .m-xl-5 { margin: 1.5rem !important; } - .mt-xl-5 { margin-top: 1.5rem !important; } - .mr-xl-5 { margin-right: 1.5rem !important; } - .mb-xl-5 { margin-bottom: 1.5rem !important; } - .ml-xl-5 { margin-left: 1.5rem !important; } - .mx-xl-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xl-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xl-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-6 { margin: 2rem !important; } - .mt-xl-6 { margin-top: 2rem !important; } - .mr-xl-6 { margin-right: 2rem !important; } - .mb-xl-6 { margin-bottom: 2rem !important; } - .ml-xl-6 { margin-left: 2rem !important; } - .mx-xl-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xl-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xl-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 87.5rem) { .m-xl-7 { margin: 2.5rem !important; } - .mt-xl-7 { margin-top: 2.5rem !important; } - .mr-xl-7 { margin-right: 2.5rem !important; } - .mb-xl-7 { margin-bottom: 2.5rem !important; } - .ml-xl-7 { margin-left: 2.5rem !important; } - .mx-xl-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xl-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xl-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-8 { margin: 3rem !important; } - .mt-xl-8 { margin-top: 3rem !important; } - .mr-xl-8 { margin-right: 3rem !important; } - .mb-xl-8 { margin-bottom: 3rem !important; } - .ml-xl-8 { margin-left: 3rem !important; } - .mx-xl-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xl-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xl-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 87.5rem) { .m-xl-9 { margin: 3.5rem !important; } - .mt-xl-9 { margin-top: 3.5rem !important; } - .mr-xl-9 { margin-right: 3.5rem !important; } - .mb-xl-9 { margin-bottom: 3.5rem !important; } - .ml-xl-9 { margin-left: 3.5rem !important; } - .mx-xl-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xl-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xl-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-10 { margin: 4rem !important; } - .mt-xl-10 { margin-top: 4rem !important; } - .mr-xl-10 { margin-right: 4rem !important; } - .mb-xl-10 { margin-bottom: 4rem !important; } - .ml-xl-10 { margin-left: 4rem !important; } - .mx-xl-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xl-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xl-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -.p-0 { padding: 0 !important; } - -.pt-0 { padding-top: 0 !important; } - -.pr-0 { padding-right: 0 !important; } - -.pb-0 { padding-bottom: 0 !important; } - -.pl-0 { padding-left: 0 !important; } - -.px-0 { padding-right: 0 !important; padding-left: 0 !important; } - -.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - -.p-1 { padding: 0.25rem !important; } - -.pt-1 { padding-top: 0.25rem !important; } - -.pr-1 { padding-right: 0.25rem !important; } - -.pb-1 { padding-bottom: 0.25rem !important; } - -.pl-1 { padding-left: 0.25rem !important; } - -.px-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - -.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - -.p-2 { padding: 0.5rem !important; } - -.pt-2 { padding-top: 0.5rem !important; } - -.pr-2 { padding-right: 0.5rem !important; } - -.pb-2 { padding-bottom: 0.5rem !important; } - -.pl-2 { padding-left: 0.5rem !important; } - -.px-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - -.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - -.p-3 { padding: 0.75rem !important; } - -.pt-3 { padding-top: 0.75rem !important; } - -.pr-3 { padding-right: 0.75rem !important; } - -.pb-3 { padding-bottom: 0.75rem !important; } - -.pl-3 { padding-left: 0.75rem !important; } - -.px-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - -.py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - -.p-4 { padding: 1rem !important; } - -.pt-4 { padding-top: 1rem !important; } - -.pr-4 { padding-right: 1rem !important; } - -.pb-4 { padding-bottom: 1rem !important; } - -.pl-4 { padding-left: 1rem !important; } - -.px-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - -.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - -.p-5 { padding: 1.5rem !important; } - -.pt-5 { padding-top: 1.5rem !important; } - -.pr-5 { padding-right: 1.5rem !important; } - -.pb-5 { padding-bottom: 1.5rem !important; } - -.pl-5 { padding-left: 1.5rem !important; } - -.px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - -.py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - -.p-6 { padding: 2rem !important; } - -.pt-6 { padding-top: 2rem !important; } - -.pr-6 { padding-right: 2rem !important; } - -.pb-6 { padding-bottom: 2rem !important; } - -.pl-6 { padding-left: 2rem !important; } - -.px-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - -.py-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - -.p-7 { padding: 2.5rem !important; } - -.pt-7 { padding-top: 2.5rem !important; } - -.pr-7 { padding-right: 2.5rem !important; } - -.pb-7 { padding-bottom: 2.5rem !important; } - -.pl-7 { padding-left: 2.5rem !important; } - -.px-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - -.py-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - -.p-8 { padding: 3rem !important; } - -.pt-8 { padding-top: 3rem !important; } - -.pr-8 { padding-right: 3rem !important; } - -.pb-8 { padding-bottom: 3rem !important; } - -.pl-8 { padding-left: 3rem !important; } - -.px-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - -.py-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - -.p-9 { padding: 3.5rem !important; } - -.pt-9 { padding-top: 3.5rem !important; } - -.pr-9 { padding-right: 3.5rem !important; } - -.pb-9 { padding-bottom: 3.5rem !important; } - -.pl-9 { padding-left: 3.5rem !important; } - -.px-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - -.py-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - -.p-10 { padding: 4rem !important; } - -.pt-10 { padding-top: 4rem !important; } - -.pr-10 { padding-right: 4rem !important; } - -.pb-10 { padding-bottom: 4rem !important; } - -.pl-10 { padding-left: 4rem !important; } - -.px-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - -.py-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - -@media (min-width: 20rem) { .p-xs-0 { padding: 0 !important; } - .pt-xs-0 { padding-top: 0 !important; } - .pr-xs-0 { padding-right: 0 !important; } - .pb-xs-0 { padding-bottom: 0 !important; } - .pl-xs-0 { padding-left: 0 !important; } - .px-xs-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xs-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xs-1 { padding: 0.25rem !important; } - .pt-xs-1 { padding-top: 0.25rem !important; } - .pr-xs-1 { padding-right: 0.25rem !important; } - .pb-xs-1 { padding-bottom: 0.25rem !important; } - .pl-xs-1 { padding-left: 0.25rem !important; } - .px-xs-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xs-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xs-2 { padding: 0.5rem !important; } - .pt-xs-2 { padding-top: 0.5rem !important; } - .pr-xs-2 { padding-right: 0.5rem !important; } - .pb-xs-2 { padding-bottom: 0.5rem !important; } - .pl-xs-2 { padding-left: 0.5rem !important; } - .px-xs-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xs-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xs-3 { padding: 0.75rem !important; } - .pt-xs-3 { padding-top: 0.75rem !important; } - .pr-xs-3 { padding-right: 0.75rem !important; } - .pb-xs-3 { padding-bottom: 0.75rem !important; } - .pl-xs-3 { padding-left: 0.75rem !important; } - .px-xs-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xs-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xs-4 { padding: 1rem !important; } - .pt-xs-4 { padding-top: 1rem !important; } - .pr-xs-4 { padding-right: 1rem !important; } - .pb-xs-4 { padding-bottom: 1rem !important; } - .pl-xs-4 { padding-left: 1rem !important; } - .px-xs-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xs-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xs-5 { padding: 1.5rem !important; } - .pt-xs-5 { padding-top: 1.5rem !important; } - .pr-xs-5 { padding-right: 1.5rem !important; } - .pb-xs-5 { padding-bottom: 1.5rem !important; } - .pl-xs-5 { padding-left: 1.5rem !important; } - .px-xs-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xs-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xs-6 { padding: 2rem !important; } - .pt-xs-6 { padding-top: 2rem !important; } - .pr-xs-6 { padding-right: 2rem !important; } - .pb-xs-6 { padding-bottom: 2rem !important; } - .pl-xs-6 { padding-left: 2rem !important; } - .px-xs-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xs-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xs-7 { padding: 2.5rem !important; } - .pt-xs-7 { padding-top: 2.5rem !important; } - .pr-xs-7 { padding-right: 2.5rem !important; } - .pb-xs-7 { padding-bottom: 2.5rem !important; } - .pl-xs-7 { padding-left: 2.5rem !important; } - .px-xs-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xs-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xs-8 { padding: 3rem !important; } - .pt-xs-8 { padding-top: 3rem !important; } - .pr-xs-8 { padding-right: 3rem !important; } - .pb-xs-8 { padding-bottom: 3rem !important; } - .pl-xs-8 { padding-left: 3rem !important; } - .px-xs-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xs-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xs-9 { padding: 3.5rem !important; } - .pt-xs-9 { padding-top: 3.5rem !important; } - .pr-xs-9 { padding-right: 3.5rem !important; } - .pb-xs-9 { padding-bottom: 3.5rem !important; } - .pl-xs-9 { padding-left: 3.5rem !important; } - .px-xs-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xs-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xs-10 { padding: 4rem !important; } - .pt-xs-10 { padding-top: 4rem !important; } - .pr-xs-10 { padding-right: 4rem !important; } - .pb-xs-10 { padding-bottom: 4rem !important; } - .pl-xs-10 { padding-left: 4rem !important; } - .px-xs-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xs-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 31.25rem) { .p-sm-0 { padding: 0 !important; } - .pt-sm-0 { padding-top: 0 !important; } - .pr-sm-0 { padding-right: 0 !important; } - .pb-sm-0 { padding-bottom: 0 !important; } - .pl-sm-0 { padding-left: 0 !important; } - .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-sm-1 { padding: 0.25rem !important; } - .pt-sm-1 { padding-top: 0.25rem !important; } - .pr-sm-1 { padding-right: 0.25rem !important; } - .pb-sm-1 { padding-bottom: 0.25rem !important; } - .pl-sm-1 { padding-left: 0.25rem !important; } - .px-sm-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-sm-2 { padding: 0.5rem !important; } - .pt-sm-2 { padding-top: 0.5rem !important; } - .pr-sm-2 { padding-right: 0.5rem !important; } - .pb-sm-2 { padding-bottom: 0.5rem !important; } - .pl-sm-2 { padding-left: 0.5rem !important; } - .px-sm-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-sm-3 { padding: 0.75rem !important; } - .pt-sm-3 { padding-top: 0.75rem !important; } - .pr-sm-3 { padding-right: 0.75rem !important; } - .pb-sm-3 { padding-bottom: 0.75rem !important; } - .pl-sm-3 { padding-left: 0.75rem !important; } - .px-sm-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-sm-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-sm-4 { padding: 1rem !important; } - .pt-sm-4 { padding-top: 1rem !important; } - .pr-sm-4 { padding-right: 1rem !important; } - .pb-sm-4 { padding-bottom: 1rem !important; } - .pl-sm-4 { padding-left: 1rem !important; } - .px-sm-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-sm-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-sm-5 { padding: 1.5rem !important; } - .pt-sm-5 { padding-top: 1.5rem !important; } - .pr-sm-5 { padding-right: 1.5rem !important; } - .pb-sm-5 { padding-bottom: 1.5rem !important; } - .pl-sm-5 { padding-left: 1.5rem !important; } - .px-sm-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-sm-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-sm-6 { padding: 2rem !important; } - .pt-sm-6 { padding-top: 2rem !important; } - .pr-sm-6 { padding-right: 2rem !important; } - .pb-sm-6 { padding-bottom: 2rem !important; } - .pl-sm-6 { padding-left: 2rem !important; } - .px-sm-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-sm-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-sm-7 { padding: 2.5rem !important; } - .pt-sm-7 { padding-top: 2.5rem !important; } - .pr-sm-7 { padding-right: 2.5rem !important; } - .pb-sm-7 { padding-bottom: 2.5rem !important; } - .pl-sm-7 { padding-left: 2.5rem !important; } - .px-sm-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-sm-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-sm-8 { padding: 3rem !important; } - .pt-sm-8 { padding-top: 3rem !important; } - .pr-sm-8 { padding-right: 3rem !important; } - .pb-sm-8 { padding-bottom: 3rem !important; } - .pl-sm-8 { padding-left: 3rem !important; } - .px-sm-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-sm-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-sm-9 { padding: 3.5rem !important; } - .pt-sm-9 { padding-top: 3.5rem !important; } - .pr-sm-9 { padding-right: 3.5rem !important; } - .pb-sm-9 { padding-bottom: 3.5rem !important; } - .pl-sm-9 { padding-left: 3.5rem !important; } - .px-sm-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-sm-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-sm-10 { padding: 4rem !important; } - .pt-sm-10 { padding-top: 4rem !important; } - .pr-sm-10 { padding-right: 4rem !important; } - .pb-sm-10 { padding-bottom: 4rem !important; } - .pl-sm-10 { padding-left: 4rem !important; } - .px-sm-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-sm-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 50rem) { .p-md-0 { padding: 0 !important; } - .pt-md-0 { padding-top: 0 !important; } - .pr-md-0 { padding-right: 0 !important; } - .pb-md-0 { padding-bottom: 0 !important; } - .pl-md-0 { padding-left: 0 !important; } - .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-md-1 { padding: 0.25rem !important; } - .pt-md-1 { padding-top: 0.25rem !important; } - .pr-md-1 { padding-right: 0.25rem !important; } - .pb-md-1 { padding-bottom: 0.25rem !important; } - .pl-md-1 { padding-left: 0.25rem !important; } - .px-md-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-md-2 { padding: 0.5rem !important; } - .pt-md-2 { padding-top: 0.5rem !important; } - .pr-md-2 { padding-right: 0.5rem !important; } - .pb-md-2 { padding-bottom: 0.5rem !important; } - .pl-md-2 { padding-left: 0.5rem !important; } - .px-md-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-md-3 { padding: 0.75rem !important; } - .pt-md-3 { padding-top: 0.75rem !important; } - .pr-md-3 { padding-right: 0.75rem !important; } - .pb-md-3 { padding-bottom: 0.75rem !important; } - .pl-md-3 { padding-left: 0.75rem !important; } - .px-md-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-md-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-md-4 { padding: 1rem !important; } - .pt-md-4 { padding-top: 1rem !important; } - .pr-md-4 { padding-right: 1rem !important; } - .pb-md-4 { padding-bottom: 1rem !important; } - .pl-md-4 { padding-left: 1rem !important; } - .px-md-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-md-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-md-5 { padding: 1.5rem !important; } - .pt-md-5 { padding-top: 1.5rem !important; } - .pr-md-5 { padding-right: 1.5rem !important; } - .pb-md-5 { padding-bottom: 1.5rem !important; } - .pl-md-5 { padding-left: 1.5rem !important; } - .px-md-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-md-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-md-6 { padding: 2rem !important; } - .pt-md-6 { padding-top: 2rem !important; } - .pr-md-6 { padding-right: 2rem !important; } - .pb-md-6 { padding-bottom: 2rem !important; } - .pl-md-6 { padding-left: 2rem !important; } - .px-md-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-md-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-md-7 { padding: 2.5rem !important; } - .pt-md-7 { padding-top: 2.5rem !important; } - .pr-md-7 { padding-right: 2.5rem !important; } - .pb-md-7 { padding-bottom: 2.5rem !important; } - .pl-md-7 { padding-left: 2.5rem !important; } - .px-md-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-md-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-md-8 { padding: 3rem !important; } - .pt-md-8 { padding-top: 3rem !important; } - .pr-md-8 { padding-right: 3rem !important; } - .pb-md-8 { padding-bottom: 3rem !important; } - .pl-md-8 { padding-left: 3rem !important; } - .px-md-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-md-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-md-9 { padding: 3.5rem !important; } - .pt-md-9 { padding-top: 3.5rem !important; } - .pr-md-9 { padding-right: 3.5rem !important; } - .pb-md-9 { padding-bottom: 3.5rem !important; } - .pl-md-9 { padding-left: 3.5rem !important; } - .px-md-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-md-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-md-10 { padding: 4rem !important; } - .pt-md-10 { padding-top: 4rem !important; } - .pr-md-10 { padding-right: 4rem !important; } - .pb-md-10 { padding-bottom: 4rem !important; } - .pl-md-10 { padding-left: 4rem !important; } - .px-md-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-md-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 66.5rem) { .p-lg-0 { padding: 0 !important; } - .pt-lg-0 { padding-top: 0 !important; } - .pr-lg-0 { padding-right: 0 !important; } - .pb-lg-0 { padding-bottom: 0 !important; } - .pl-lg-0 { padding-left: 0 !important; } - .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-lg-1 { padding: 0.25rem !important; } - .pt-lg-1 { padding-top: 0.25rem !important; } - .pr-lg-1 { padding-right: 0.25rem !important; } - .pb-lg-1 { padding-bottom: 0.25rem !important; } - .pl-lg-1 { padding-left: 0.25rem !important; } - .px-lg-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-lg-2 { padding: 0.5rem !important; } - .pt-lg-2 { padding-top: 0.5rem !important; } - .pr-lg-2 { padding-right: 0.5rem !important; } - .pb-lg-2 { padding-bottom: 0.5rem !important; } - .pl-lg-2 { padding-left: 0.5rem !important; } - .px-lg-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-lg-3 { padding: 0.75rem !important; } - .pt-lg-3 { padding-top: 0.75rem !important; } - .pr-lg-3 { padding-right: 0.75rem !important; } - .pb-lg-3 { padding-bottom: 0.75rem !important; } - .pl-lg-3 { padding-left: 0.75rem !important; } - .px-lg-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-lg-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-lg-4 { padding: 1rem !important; } - .pt-lg-4 { padding-top: 1rem !important; } - .pr-lg-4 { padding-right: 1rem !important; } - .pb-lg-4 { padding-bottom: 1rem !important; } - .pl-lg-4 { padding-left: 1rem !important; } - .px-lg-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-lg-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-lg-5 { padding: 1.5rem !important; } - .pt-lg-5 { padding-top: 1.5rem !important; } - .pr-lg-5 { padding-right: 1.5rem !important; } - .pb-lg-5 { padding-bottom: 1.5rem !important; } - .pl-lg-5 { padding-left: 1.5rem !important; } - .px-lg-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-lg-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-lg-6 { padding: 2rem !important; } - .pt-lg-6 { padding-top: 2rem !important; } - .pr-lg-6 { padding-right: 2rem !important; } - .pb-lg-6 { padding-bottom: 2rem !important; } - .pl-lg-6 { padding-left: 2rem !important; } - .px-lg-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-lg-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-lg-7 { padding: 2.5rem !important; } - .pt-lg-7 { padding-top: 2.5rem !important; } - .pr-lg-7 { padding-right: 2.5rem !important; } - .pb-lg-7 { padding-bottom: 2.5rem !important; } - .pl-lg-7 { padding-left: 2.5rem !important; } - .px-lg-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-lg-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-lg-8 { padding: 3rem !important; } - .pt-lg-8 { padding-top: 3rem !important; } - .pr-lg-8 { padding-right: 3rem !important; } - .pb-lg-8 { padding-bottom: 3rem !important; } - .pl-lg-8 { padding-left: 3rem !important; } - .px-lg-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-lg-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-lg-9 { padding: 3.5rem !important; } - .pt-lg-9 { padding-top: 3.5rem !important; } - .pr-lg-9 { padding-right: 3.5rem !important; } - .pb-lg-9 { padding-bottom: 3.5rem !important; } - .pl-lg-9 { padding-left: 3.5rem !important; } - .px-lg-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-lg-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-lg-10 { padding: 4rem !important; } - .pt-lg-10 { padding-top: 4rem !important; } - .pr-lg-10 { padding-right: 4rem !important; } - .pb-lg-10 { padding-bottom: 4rem !important; } - .pl-lg-10 { padding-left: 4rem !important; } - .px-lg-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-lg-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 87.5rem) { .p-xl-0 { padding: 0 !important; } - .pt-xl-0 { padding-top: 0 !important; } - .pr-xl-0 { padding-right: 0 !important; } - .pb-xl-0 { padding-bottom: 0 !important; } - .pl-xl-0 { padding-left: 0 !important; } - .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xl-1 { padding: 0.25rem !important; } - .pt-xl-1 { padding-top: 0.25rem !important; } - .pr-xl-1 { padding-right: 0.25rem !important; } - .pb-xl-1 { padding-bottom: 0.25rem !important; } - .pl-xl-1 { padding-left: 0.25rem !important; } - .px-xl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xl-2 { padding: 0.5rem !important; } - .pt-xl-2 { padding-top: 0.5rem !important; } - .pr-xl-2 { padding-right: 0.5rem !important; } - .pb-xl-2 { padding-bottom: 0.5rem !important; } - .pl-xl-2 { padding-left: 0.5rem !important; } - .px-xl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xl-3 { padding: 0.75rem !important; } - .pt-xl-3 { padding-top: 0.75rem !important; } - .pr-xl-3 { padding-right: 0.75rem !important; } - .pb-xl-3 { padding-bottom: 0.75rem !important; } - .pl-xl-3 { padding-left: 0.75rem !important; } - .px-xl-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xl-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xl-4 { padding: 1rem !important; } - .pt-xl-4 { padding-top: 1rem !important; } - .pr-xl-4 { padding-right: 1rem !important; } - .pb-xl-4 { padding-bottom: 1rem !important; } - .pl-xl-4 { padding-left: 1rem !important; } - .px-xl-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xl-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xl-5 { padding: 1.5rem !important; } - .pt-xl-5 { padding-top: 1.5rem !important; } - .pr-xl-5 { padding-right: 1.5rem !important; } - .pb-xl-5 { padding-bottom: 1.5rem !important; } - .pl-xl-5 { padding-left: 1.5rem !important; } - .px-xl-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xl-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xl-6 { padding: 2rem !important; } - .pt-xl-6 { padding-top: 2rem !important; } - .pr-xl-6 { padding-right: 2rem !important; } - .pb-xl-6 { padding-bottom: 2rem !important; } - .pl-xl-6 { padding-left: 2rem !important; } - .px-xl-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xl-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xl-7 { padding: 2.5rem !important; } - .pt-xl-7 { padding-top: 2.5rem !important; } - .pr-xl-7 { padding-right: 2.5rem !important; } - .pb-xl-7 { padding-bottom: 2.5rem !important; } - .pl-xl-7 { padding-left: 2.5rem !important; } - .px-xl-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xl-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xl-8 { padding: 3rem !important; } - .pt-xl-8 { padding-top: 3rem !important; } - .pr-xl-8 { padding-right: 3rem !important; } - .pb-xl-8 { padding-bottom: 3rem !important; } - .pl-xl-8 { padding-left: 3rem !important; } - .px-xl-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xl-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xl-9 { padding: 3.5rem !important; } - .pt-xl-9 { padding-top: 3.5rem !important; } - .pr-xl-9 { padding-right: 3.5rem !important; } - .pb-xl-9 { padding-bottom: 3.5rem !important; } - .pl-xl-9 { padding-left: 3.5rem !important; } - .px-xl-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xl-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xl-10 { padding: 4rem !important; } - .pt-xl-10 { padding-top: 4rem !important; } - .pr-xl-10 { padding-right: 4rem !important; } - .pb-xl-10 { padding-bottom: 4rem !important; } - .pl-xl-10 { padding-left: 4rem !important; } - .px-xl-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xl-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media print { .site-footer, .site-button, #edit-this-page, #back-to-top, .site-nav, .main-header { display: none !important; } - .side-bar { width: 100%; height: auto; border-right: 0 !important; } - .site-header { border-bottom: 1px solid #eeebee; } - .site-title { font-size: 16px !important; font-weight: 700 !important; } - .text-small { font-size: 8pt !important; } - pre.highlight { border: 1px solid #eeebee; } - .main { max-width: none; margin-left: 0; } } -.dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); z-index: 1; padding-left: 0; list-style-type: none; } - -.dropdown:hover .dropdown-content { display: flex; flex-direction: column; } - -.dropdown-content a { flex-grow: 1; padding: 1rem; background: none; } - -.dropdown-content a:hover { background: #eeebee; } diff --git a/head/assets/css/just-the-docs-light.css b/head/assets/css/just-the-docs-light.css deleted file mode 100644 index d84fd342b..000000000 --- a/head/assets/css/just-the-docs-light.css +++ /dev/null @@ -1,2258 +0,0 @@ -@charset "UTF-8"; -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ -/* Document ========================================================================== */ -/** 1. Correct the line height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. */ -html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } - -/* Sections ========================================================================== */ -/** Remove the margin in all browsers. */ -body { margin: 0; } - -/** Render the `main` element consistently in IE. */ -main { display: block; } - -/** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */ -h1 { font-size: 2em; margin: 0.67em 0; } - -/* Grouping content ========================================================================== */ -/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */ -hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } - -/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ -pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } - -/* Text-level semantics ========================================================================== */ -/** Remove the gray background on active links in IE 10. */ -a { background-color: transparent; } - -/** 1. Remove the bottom border in Chrome 57- 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ -abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } - -/** Add the correct font weight in Chrome, Edge, and Safari. */ -b, strong { font-weight: bolder; } - -/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ -code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } - -/** Add the correct font size in all browsers. */ -small { font-size: 80%; } - -/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } - -sub { bottom: -0.25em; } - -sup { top: -0.5em; } - -/* Embedded content ========================================================================== */ -/** Remove the border on images inside links in IE 10. */ -img { border-style: none; } - -/* Forms ========================================================================== */ -/** 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. */ -button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } - -/** Show the overflow in IE. 1. Show the overflow in Edge. */ -button, input { /* 1 */ overflow: visible; } - -/** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */ -button, select { /* 1 */ text-transform: none; } - -/** Correct the inability to style clickable types in iOS and Safari. */ -button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } - -/** Remove the inner border and padding in Firefox. */ -button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } - -/** Restore the focus styles unset by the previous rule. */ -button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } - -/** Correct the padding in Firefox. */ -fieldset { padding: 0.35em 0.75em 0.625em; } - -/** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */ -legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } - -/** Add the correct vertical alignment in Chrome, Firefox, and Opera. */ -progress { vertical-align: baseline; } - -/** Remove the default vertical scrollbar in IE 10+. */ -textarea { overflow: auto; } - -/** 1. Add the correct box sizing in IE 10. 2. Remove the padding in IE 10. */ -[type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } - -/** Correct the cursor style of increment and decrement buttons in Chrome. */ -[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } - -/** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ -[type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } - -/** Remove the inner padding in Chrome and Safari on macOS. */ -[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */ -::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } - -/* Interactive ========================================================================== */ -/* Add the correct display in Edge, IE 10+, and Firefox. */ -details { display: block; } - -/* Add the correct display in all browsers. */ -summary { display: list-item; } - -/* Misc ========================================================================== */ -/** Add the correct display in IE 10+. */ -template { display: none; } - -/** Add the correct display in IE 10. */ -[hidden] { display: none; } - -* { box-sizing: border-box; } - -::selection { color: #fff; background: #7253ed; } - -html { font-size: 14px !important; scroll-behavior: smooth; } -@media (min-width: 31.25rem) { html { font-size: 16px !important; } } - -body { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: inherit; line-height: 1.4; color: #5c5962; background-color: #fff; } - -ol, ul, dl, pre, address, blockquote, table, div, hr, form, fieldset, noscript .table-wrapper { margin-top: 0; } - -h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 1em; font-weight: 500; line-height: 1.25; color: #27262b; } - -p { margin-top: 1em; margin-bottom: 1em; } - -a { color: #7253ed; text-decoration: none; } - -a:not([class]) { text-decoration: none; background-image: linear-gradient(#eeebee 0%, #eeebee 100%); background-repeat: repeat-x; background-position: 0 100%; background-size: 1px 1px; } -a:not([class]):hover { background-image: linear-gradient(rgba(114, 83, 237, 0.45) 0%, rgba(114, 83, 237, 0.45) 100%); background-size: 1px 1px; } - -code { font-family: "SFMono-Regular", Menlo, Consolas, Monospace; font-size: 0.75em; line-height: 1.4; } - -figure, pre { margin: 0; } - -li { margin: 0.25em 0; } - -img { max-width: 100%; height: auto; } - -hr { height: 1px; padding: 0; margin: 2rem 0; background-color: #eeebee; border: 0; } - -.side-bar { z-index: 0; display: flex; flex-wrap: wrap; background-color: #f5f6fa; } -@media (min-width: 50rem) { .side-bar { flex-wrap: nowrap; position: fixed; width: 248px; height: 100%; flex-direction: column; border-right: 1px solid #eeebee; align-items: flex-end; } } -@media (min-width: 66.5rem) { .side-bar { width: calc((100% - 1064px) / 2 + 264px); min-width: 264px; } } - -@media (min-width: 50rem) { .main { position: relative; max-width: 800px; margin-left: 248px; } } -@media (min-width: 66.5rem) { .main { margin-left: calc( (100% - 1064px) / 2 + 264px ); } } - -.main-content-wrap { padding-right: 1rem; padding-left: 1rem; padding-top: 1rem; padding-bottom: 1rem; } -@media (min-width: 50rem) { .main-content-wrap { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 50rem) { .main-content-wrap { padding-top: 2rem; padding-bottom: 2rem; } } - -.main-header { z-index: 0; display: none; background-color: #f5f6fa; } -@media (min-width: 50rem) { .main-header { display: flex; justify-content: space-between; height: 60px; background-color: #fff; border-bottom: 1px solid #eeebee; } } -.main-header.nav-open { display: block; } -@media (min-width: 50rem) { .main-header.nav-open { display: flex; } } - -.site-nav, .site-header, .site-footer { width: 100%; } -@media (min-width: 66.5rem) { .site-nav, .site-header, .site-footer { width: 264px; } } - -.site-nav { display: none; } -.site-nav.nav-open { display: block; } -@media (min-width: 50rem) { .site-nav { display: block; padding-top: 3rem; padding-bottom: 1rem; overflow-y: auto; flex: 1 1 auto; } } - -.site-header { display: flex; min-height: 60px; align-items: center; } -@media (min-width: 50rem) { .site-header { height: 60px; max-height: 60px; border-bottom: 1px solid #eeebee; } } - -.site-title { padding-right: 1rem; padding-left: 1rem; flex-grow: 1; display: flex; height: 100%; align-items: center; padding-top: 0.75rem; padding-bottom: 0.75rem; color: #27262b; font-size: 18px !important; } -@media (min-width: 50rem) { .site-title { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-title { font-size: 24px !important; line-height: 1.25; } } -@media (min-width: 50rem) { .site-title { padding-top: 0.5rem; padding-bottom: 0.5rem; } } - -.site-logo { width: 100%; height: 100%; background-image: url("/firefly/head/images/hyperledger-firefly_color.svg"); background-repeat: no-repeat; background-position: left center; background-size: contain; } - -.site-button { display: flex; height: 100%; padding: 1rem; align-items: center; } - -@media (min-width: 50rem) { .site-header .site-button { display: none; } } -.site-title:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); } - -.site-button:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); } - -body { position: relative; padding-bottom: 4rem; overflow-y: scroll; } -@media (min-width: 50rem) { body { position: static; padding-bottom: 0; } } - -.site-footer { padding-right: 1rem; padding-left: 1rem; position: absolute; bottom: 0; left: 0; padding-top: 1rem; padding-bottom: 1rem; color: #959396; font-size: 11px !important; } -@media (min-width: 50rem) { .site-footer { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-footer { font-size: 12px !important; } } -@media (min-width: 50rem) { .site-footer { position: static; justify-self: end; } } - -.icon { width: 1.5rem; height: 1.5rem; color: #7253ed; } - -.main-content { line-height: 1.6; } -.main-content ol, .main-content ul, .main-content dl, .main-content pre, .main-content address, .main-content blockquote, .main-content .table-wrapper { margin-top: 0.5em; } -.main-content a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.main-content ul, .main-content ol { padding-left: 1.5em; } -.main-content li .highlight { margin-top: 0.25rem; } -.main-content ol { list-style-type: none; counter-reset: step-counter; } -.main-content ol > li { position: relative; } -.main-content ol > li::before { position: absolute; top: 0.2em; left: -1.6em; color: #959396; content: counter(step-counter); counter-increment: step-counter; font-size: 12px !important; } -@media (min-width: 31.25rem) { .main-content ol > li::before { font-size: 14px !important; } } -@media (min-width: 31.25rem) { .main-content ol > li::before { top: 0.11em; } } -.main-content ol > li ol { counter-reset: sub-counter; } -.main-content ol > li ol li::before { content: counter(sub-counter,lower-alpha); counter-increment: sub-counter; } -.main-content ul { list-style: none; } -.main-content ul > li::before { position: absolute; margin-left: -1.4em; color: #959396; content: "•"; } -.main-content .task-list { padding-left: 0; } -.main-content .task-list-item { display: flex; align-items: center; } -.main-content .task-list-item::before { content: ""; } -.main-content .task-list-item-checkbox { margin-right: 0.6em; } -.main-content hr + * { margin-top: 0; } -.main-content h1:first-of-type { margin-top: 0.5em; } -.main-content dl { display: grid; grid-template: auto / 10em 1fr; } -.main-content dt, .main-content dd { margin: 0.25em 0; } -.main-content dt { grid-column: 1; font-weight: 500; text-align: right; } -.main-content dt::after { content: ":"; } -.main-content dd { grid-column: 2; margin-bottom: 0; margin-left: 1em; } -.main-content dd blockquote:first-child, .main-content dd div:first-child, .main-content dd dl:first-child, .main-content dd dt:first-child, .main-content dd h1:first-child, .main-content dd h2:first-child, .main-content dd h3:first-child, .main-content dd h4:first-child, .main-content dd h5:first-child, .main-content dd h6:first-child, .main-content dd li:first-child, .main-content dd ol:first-child, .main-content dd p:first-child, .main-content dd pre:first-child, .main-content dd table:first-child, .main-content dd ul:first-child, .main-content dd .table-wrapper:first-child { margin-top: 0; } -.main-content dd dl:first-child dt:first-child, .main-content dd dl:first-child dd:nth-child(2), .main-content ol dl:first-child dt:first-child, .main-content ol dl:first-child dd:nth-child(2), .main-content ul dl:first-child dt:first-child, .main-content ul dl:first-child dd:nth-child(2) { margin-top: 0; } -.main-content .anchor-heading { position: absolute; right: -1rem; width: 1.5rem; height: 100%; padding-right: 0.25rem; padding-left: 0.25rem; overflow: visible; } -@media (min-width: 50rem) { .main-content .anchor-heading { right: auto; left: -1.5rem; } } -.main-content .anchor-heading svg { display: inline-block; width: 100%; height: 100%; color: #7253ed; visibility: hidden; } -.main-content .anchor-heading:hover svg, .main-content h1:hover > .anchor-heading svg, .main-content h2:hover > .anchor-heading svg, .main-content h3:hover > .anchor-heading svg, .main-content h4:hover > .anchor-heading svg, .main-content h5:hover > .anchor-heading svg, .main-content h6:hover > .anchor-heading svg { visibility: visible; } -.main-content summary { cursor: pointer; } -.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { position: relative; margin-top: 1.5em; margin-bottom: 0.25em; } -.main-content h1:first-child, .main-content h2:first-child, .main-content h3:first-child, .main-content h4:first-child, .main-content h5:first-child, .main-content h6:first-child { margin-top: 0.5rem; } -.main-content h1 + table, .main-content h1 + .table-wrapper, .main-content h1 + .code-example, .main-content h1 + .highlighter-rouge, .main-content h2 + table, .main-content h2 + .table-wrapper, .main-content h2 + .code-example, .main-content h2 + .highlighter-rouge, .main-content h3 + table, .main-content h3 + .table-wrapper, .main-content h3 + .code-example, .main-content h3 + .highlighter-rouge, .main-content h4 + table, .main-content h4 + .table-wrapper, .main-content h4 + .code-example, .main-content h4 + .highlighter-rouge, .main-content h5 + table, .main-content h5 + .table-wrapper, .main-content h5 + .code-example, .main-content h5 + .highlighter-rouge, .main-content h6 + table, .main-content h6 + .table-wrapper, .main-content h6 + .code-example, .main-content h6 + .highlighter-rouge { margin-top: 1em; } -.main-content h1 + p, .main-content h2 + p, .main-content h3 + p, .main-content h4 + p, .main-content h5 + p, .main-content h6 + p { margin-top: 0; } - -.nav-list { padding: 0; margin-top: 0; margin-bottom: 0; list-style: none; } -.nav-list .nav-list-item { font-size: 14px !important; position: relative; margin: 0; } -@media (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 16px !important; } } -@media (min-width: 50rem) { .nav-list .nav-list-item { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 14px !important; } } - -.nav-list .nav-list-item .nav-list-link { display: block; min-height: 3rem; padding-top: 0.25rem; padding-bottom: 0.25rem; line-height: 2.5rem; padding-right: 3rem; padding-left: 1rem; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-link { min-height: 2rem; line-height: 1.5rem; padding-right: 2rem; padding-left: 2rem; } } -.nav-list .nav-list-item .nav-list-link.active { font-weight: 600; text-decoration: none; } -.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); } -.nav-list .nav-list-item .nav-list-expander { position: absolute; right: 0; width: 3rem; height: 3rem; padding-top: 0.75rem; padding-right: 0.75rem; padding-bottom: 0.75rem; padding-left: 0.75rem; color: #7253ed; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-expander { width: 2rem; height: 2rem; padding-top: 0.5rem; padding-right: 0.5rem; padding-bottom: 0.5rem; padding-left: 0.5rem; } } -.nav-list .nav-list-item .nav-list-expander:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); } -.nav-list .nav-list-item .nav-list-expander svg { transform: rotate(90deg); } -.nav-list .nav-list-item > .nav-list { display: none; padding-left: 0.75rem; list-style: none; } -.nav-list .nav-list-item > .nav-list .nav-list-item { position: relative; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { color: #5c5962; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { color: #5c5962; } -.nav-list .nav-list-item.active > .nav-list-expander svg { transform: rotate(-90deg); } -.nav-list .nav-list-item.active > .nav-list { display: block; } - -.nav-category { padding-top: 0.5rem; padding-right: 1rem; padding-bottom: 0.5rem; padding-left: 1rem; font-weight: 600; text-align: end; text-transform: uppercase; border-bottom: 1px solid #eeebee; font-size: 11px !important; } -@media (min-width: 31.25rem) { .nav-category { font-size: 12px !important; } } -@media (min-width: 50rem) { .nav-category { padding-right: 2rem; padding-left: 2rem; margin-top: 1rem; text-align: start; } - .nav-category:first-child { margin-top: 0; } } - -.aux-nav { height: 100%; overflow-x: auto; font-size: 11px !important; } -@media (min-width: 31.25rem) { .aux-nav { font-size: 12px !important; } } -.aux-nav .aux-nav-list { display: flex; height: 100%; padding: 0; margin: 0; list-style: none; } -.aux-nav .aux-nav-list-item { display: inline-block; height: 100%; padding: 0; margin: 0; } -@media (min-width: 50rem) { .aux-nav { padding-right: 1rem; } } - -@media (min-width: 50rem) { .breadcrumb-nav { margin-top: -1rem; } } - -.breadcrumb-nav-list { padding-left: 0; margin-bottom: 0.75rem; list-style: none; } - -.breadcrumb-nav-list-item { display: table-cell; font-size: 11px !important; } -@media (min-width: 31.25rem) { .breadcrumb-nav-list-item { font-size: 12px !important; } } -.breadcrumb-nav-list-item::before { display: none; } -.breadcrumb-nav-list-item::after { display: inline-block; margin-right: 0.5rem; margin-left: 0.5rem; color: #959396; content: "/"; } -.breadcrumb-nav-list-item:last-child::after { content: ""; } - -h1, .text-alpha { font-size: 32px !important; line-height: 1.25; font-weight: 300; } -@media (min-width: 31.25rem) { h1, .text-alpha { font-size: 36px !important; } } - -h2, .text-beta { font-size: 18px !important; } -@media (min-width: 31.25rem) { h2, .text-beta { font-size: 24px !important; line-height: 1.25; } } - -h3, .text-gamma { font-size: 16px !important; } -@media (min-width: 31.25rem) { h3, .text-gamma { font-size: 18px !important; } } - -h4, .text-delta { font-size: 11px !important; font-weight: 400; text-transform: uppercase; letter-spacing: 0.1em; } -@media (min-width: 31.25rem) { h4, .text-delta { font-size: 12px !important; } } - -h4 code { text-transform: none; } - -h5, .text-epsilon { font-size: 12px !important; color: #44434d; } -@media (min-width: 31.25rem) { h5, .text-epsilon { font-size: 14px !important; } } - -h6, .text-zeta { font-size: 11px !important; color: #44434d; } -@media (min-width: 31.25rem) { h6, .text-zeta { font-size: 12px !important; } } - -.text-small { font-size: 11px !important; } -@media (min-width: 31.25rem) { .text-small { font-size: 12px !important; } } - -.text-mono { font-family: "SFMono-Regular", Menlo, Consolas, Monospace !important; } - -.text-left { text-align: left !important; } - -.text-center { text-align: center !important; } - -.text-right { text-align: right !important; } - -.label, .label-blue { display: inline-block; padding-top: 0.16em; padding-right: 0.56em; padding-bottom: 0.16em; padding-left: 0.56em; margin-right: 0.5rem; margin-left: 0.5rem; color: #fff; text-transform: uppercase; vertical-align: middle; background-color: #2869e6; font-size: 11px !important; border-radius: 12px; } -@media (min-width: 31.25rem) { .label, .label-blue { font-size: 12px !important; } } - -.label-green { background-color: #009c7b; } - -.label-purple { background-color: #5e41d0; } - -.label-red { background-color: #e94c4c; } - -.label-yellow { color: #44434d; background-color: #f7d12e; } - -.btn { display: inline-block; box-sizing: border-box; padding-top: 0.3em; padding-right: 1em; padding-bottom: 0.3em; padding-left: 1em; margin: 0; font-family: inherit; font-size: inherit; font-weight: 500; line-height: 1.5; color: #7253ed; text-decoration: none; vertical-align: baseline; cursor: pointer; background-color: #f7f7f7; border-width: 0; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); appearance: none; } -.btn:focus { text-decoration: none; outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:focus:hover, .btn.selected:focus { box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:hover, .btn.zeroclipboard-is-hover { color: #6a4aec; } -.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { text-decoration: none; background-color: #f4f4f4; } -.btn:active, .btn.selected, .btn.zeroclipboard-is-active { background-color: #efefef; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn.selected:hover { background-color: #cfcfcf; } -.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { color: rgba(102, 102, 102, 0.5); cursor: default; background-color: rgba(229, 229, 229, 0.5); background-image: none; box-shadow: none; } - -.btn-outline { color: #7253ed; background: transparent; box-shadow: inset 0 0 0 2px #e6e1e8; } -.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { color: #6341eb; text-decoration: none; background-color: transparent; box-shadow: inset 0 0 0 3px #e6e1e8; } -.btn-outline:focus { text-decoration: none; outline: none; box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn-outline:focus:hover, .btn-outline.selected:focus { box-shadow: inset 0 0 0 2px #5c5962; } - -.btn-primary { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } -.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-primary.selected:hover { background-color: #472cb2; } - -.btn-purple { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } -.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-purple.selected:hover { background-color: #472cb2; } - -.btn-blue { color: #fff; background-color: #227efa; background-image: linear-gradient(#4593fb, #227efa); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { color: #fff; background-color: #1878fa; background-image: linear-gradient(#368afa, #1878fa); } -.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { background-color: #1375f9; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-blue.selected:hover { background-color: #0669ed; } - -.btn-green { color: #fff; background-color: #10ac7d; background-image: linear-gradient(#13cc95, #10ac7d); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-green:hover, .btn-green.zeroclipboard-is-hover { color: #fff; background-color: #0fa276; background-image: linear-gradient(#12be8b, #0fa276); } -.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { background-color: #0f9e73; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-green.selected:hover { background-color: #0d8662; } - -.search { position: relative; z-index: 2; flex-grow: 1; height: 4rem; padding: 0.5rem; transition: padding linear 200ms; } -@media (min-width: 50rem) { .search { position: relative !important; width: auto !important; height: 100% !important; padding: 0; transition: none; } } - -.search-input-wrap { position: relative; z-index: 1; height: 3rem; overflow: hidden; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); transition: height linear 200ms; } -@media (min-width: 50rem) { .search-input-wrap { position: absolute; width: 100%; max-width: 536px; height: 100% !important; border-radius: 0; box-shadow: none; transition: width ease 400ms; } } - -.search-input { position: absolute; width: 100%; height: 100%; padding-top: 0.5rem; padding-right: 1rem; padding-bottom: 0.5rem; padding-left: 2.5rem; font-size: 16px; background-color: #fff; border-top: 0; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; } -@media (min-width: 50rem) { .search-input { padding-top: 1rem; padding-bottom: 1rem; padding-left: 3.5rem; font-size: 14px; background-color: #fff; transition: padding-left linear 200ms; } } -.search-input:focus { outline: 0; } -.search-input:focus + .search-label .search-icon { color: #7253ed; } - -.search-label { position: absolute; display: flex; height: 100%; padding-left: 1rem; } -@media (min-width: 50rem) { .search-label { padding-left: 2rem; transition: padding-left linear 200ms; } } -.search-label .search-icon { width: 1.2rem; height: 1.2rem; align-self: center; color: #959396; } - -.search-results { position: absolute; left: 0; display: none; width: 100%; max-height: calc(100% - 4rem); overflow-y: auto; background-color: #fff; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } -@media (min-width: 50rem) { .search-results { top: 100%; width: 536px; max-height: calc(100vh - 200%) !important; } } - -.search-results-list { padding-left: 0; margin-bottom: 0.25rem; list-style: none; font-size: 14px !important; } -@media (min-width: 31.25rem) { .search-results-list { font-size: 16px !important; } } -@media (min-width: 50rem) { .search-results-list { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-results-list { font-size: 14px !important; } } - -.search-results-list-item { padding: 0; margin: 0; } - -.search-result { display: block; padding-top: 0.25rem; padding-right: 0.75rem; padding-bottom: 0.25rem; padding-left: 0.75rem; } -.search-result:hover, .search-result.active { background-color: #ebedf5; } - -.search-result-title { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; } -@media (min-width: 31.25rem) { .search-result-title { display: inline-block; width: 40%; padding-right: 0.5rem; vertical-align: top; } } - -.search-result-doc { display: flex; align-items: center; word-wrap: break-word; } -.search-result-doc.search-result-doc-parent { opacity: 0.5; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 14px !important; } } -@media (min-width: 50rem) { .search-result-doc.search-result-doc-parent { font-size: 11px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 12px !important; } } - -.search-result-doc .search-result-icon { width: 1rem; height: 1rem; margin-right: 0.5rem; color: #7253ed; flex-shrink: 0; } -.search-result-doc .search-result-doc-title { overflow: auto; } - -.search-result-section { margin-left: 1.5rem; word-wrap: break-word; } - -.search-result-rel-url { display: block; margin-left: 1.5rem; overflow: hidden; color: #959396; text-overflow: ellipsis; white-space: nowrap; font-size: 9px !important; } -@media (min-width: 31.25rem) { .search-result-rel-url { font-size: 10px !important; } } - -.search-result-previews { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1rem; margin-left: 0.5rem; color: #959396; word-wrap: break-word; border-left: 1px solid; border-left-color: #eeebee; font-size: 11px !important; } -@media (min-width: 31.25rem) { .search-result-previews { font-size: 12px !important; } } -@media (min-width: 31.25rem) { .search-result-previews { display: inline-block; width: 60%; padding-left: 0.5rem; margin-left: 0; vertical-align: top; } } - -.search-result-preview + .search-result-preview { margin-top: 0.25rem; } - -.search-result-highlight { font-weight: bold; } - -.search-no-result { padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-no-result { font-size: 14px !important; } } - -.search-button { position: fixed; right: 1rem; bottom: 1rem; display: flex; width: 3.5rem; height: 3.5rem; background-color: #fff; border: 1px solid rgba(114, 83, 237, 0.3); border-radius: 1.75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); align-items: center; justify-content: center; } - -.search-overlay { position: fixed; top: 0; left: 0; z-index: 1; width: 0; height: 0; background-color: rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; } - -.search-active .search { position: fixed; top: 0; left: 0; width: 100%; height: 100%; padding: 0; } -.search-active .search-input-wrap { height: 4rem; border-radius: 0; } -@media (min-width: 50rem) { .search-active .search-input-wrap { width: 536px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } } -.search-active .search-input { background-color: #fff; } -@media (min-width: 50rem) { .search-active .search-input { padding-left: 2.3rem; } } -@media (min-width: 50rem) { .search-active .search-label { padding-left: 0.6rem; } } -.search-active .search-results { display: block; } -.search-active .search-overlay { width: 100%; height: 100%; opacity: 1; transition: opacity ease 400ms, width 0s, height 0s; } -@media (min-width: 50rem) { .search-active .main { position: fixed; right: 0; left: 0; } } -.search-active .main-header { padding-top: 4rem; } -@media (min-width: 50rem) { .search-active .main-header { padding-top: 0; } } - -.table-wrapper { display: block; width: 100%; max-width: 100%; margin-bottom: 1.5rem; overflow-x: auto; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } - -table { display: table; min-width: 100%; border-collapse: separate; } - -th, td { font-size: 12px !important; min-width: 120px; padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; background-color: #fff; border-bottom: 1px solid rgba(238, 235, 238, 0.5); border-left: 1px solid #eeebee; } -@media (min-width: 31.25rem) { th, td { font-size: 14px !important; } } -th:first-of-type, td:first-of-type { border-left: 0; } - -tbody tr:last-of-type th, tbody tr:last-of-type td { border-bottom: 0; } -tbody tr:last-of-type td { padding-bottom: 0.75rem; } - -thead th { border-bottom: 1px solid #eeebee; } - -code { padding: 0.2em 0.15em; font-weight: 400; background-color: #f5f6fa; border: 1px solid #eeebee; border-radius: 4px; } - -a:visited code { border-color: #eeebee; } - -div.highlighter-rouge { padding: 0.75rem; margin-top: 0; margin-bottom: 0.75rem; overflow-x: auto; background-color: #f5f6fa; border-radius: 4px; box-shadow: none; -webkit-overflow-scrolling: touch; } -div.highlighter-rouge div.highlight, div.highlighter-rouge pre.highlight, div.highlighter-rouge code { padding: 0; margin: 0; border: 0; } - -figure.highlight { padding: 0.75rem; margin-top: 0; margin-bottom: 0.75rem; background-color: #f5f6fa; border-radius: 4px; box-shadow: none; -webkit-overflow-scrolling: touch; } -figure.highlight pre, figure.highlight code { padding: 0; margin: 0; border: 0; } - -.highlight .table-wrapper { padding: 0; margin: 0; border: 0; box-shadow: none; } -.highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 11px !important; min-width: 0; padding: 0; background-color: #f5f6fa; border: 0; } -@media (min-width: 31.25rem) { .highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 12px !important; } } -.highlight .table-wrapper td.gl { padding-right: 0.75rem; } -.highlight .table-wrapper pre { margin: 0; line-height: 2; } - -.highlight .c { color: #586e75; } - -.highlight .err { color: #93a1a1; } - -.highlight .g { color: #93a1a1; } - -.highlight .k { color: #859900; } - -.highlight .l { color: #93a1a1; } - -.highlight .n { color: #93a1a1; } - -.highlight .o { color: #859900; } - -.highlight .x { color: #cb4b16; } - -.highlight .p { color: #93a1a1; } - -.highlight .cm { color: #586e75; } - -.highlight .cp { color: #859900; } - -.highlight .c1 { color: #586e75; } - -.highlight .cs { color: #859900; } - -.highlight .gd { color: #2aa198; } - -.highlight .ge { font-style: italic; color: #93a1a1; } - -.highlight .gr { color: #dc322f; } - -.highlight .gh { color: #cb4b16; } - -.highlight .gi { color: #859900; } - -.highlight .go { color: #93a1a1; } - -.highlight .gp { color: #93a1a1; } - -.highlight .gs { font-weight: bold; color: #93a1a1; } - -.highlight .gu { color: #cb4b16; } - -.highlight .gt { color: #93a1a1; } - -.highlight .kc { color: #cb4b16; } - -.highlight .kd { color: #268bd2; } - -.highlight .kn { color: #859900; } - -.highlight .kp { color: #859900; } - -.highlight .kr { color: #268bd2; } - -.highlight .kt { color: #dc322f; } - -.highlight .ld { color: #93a1a1; } - -.highlight .m { color: #2aa198; } - -.highlight .s { color: #2aa198; } - -.highlight .na { color: #555; } - -.highlight .nb { color: #b58900; } - -.highlight .nc { color: #268bd2; } - -.highlight .no { color: #cb4b16; } - -.highlight .nd { color: #268bd2; } - -.highlight .ni { color: #cb4b16; } - -.highlight .ne { color: #cb4b16; } - -.highlight .nf { color: #268bd2; } - -.highlight .nl { color: #555; } - -.highlight .nn { color: #93a1a1; } - -.highlight .nx { color: #555; } - -.highlight .py { color: #93a1a1; } - -.highlight .nt { color: #268bd2; } - -.highlight .nv { color: #268bd2; } - -.highlight .ow { color: #859900; } - -.highlight .w { color: #93a1a1; } - -.highlight .mf { color: #2aa198; } - -.highlight .mh { color: #2aa198; } - -.highlight .mi { color: #2aa198; } - -.highlight .mo { color: #2aa198; } - -.highlight .sb { color: #586e75; } - -.highlight .sc { color: #2aa198; } - -.highlight .sd { color: #93a1a1; } - -.highlight .s2 { color: #2aa198; } - -.highlight .se { color: #cb4b16; } - -.highlight .sh { color: #93a1a1; } - -.highlight .si { color: #2aa198; } - -.highlight .sx { color: #2aa198; } - -.highlight .sr { color: #dc322f; } - -.highlight .s1 { color: #2aa198; } - -.highlight .ss { color: #2aa198; } - -.highlight .bp { color: #268bd2; } - -.highlight .vc { color: #268bd2; } - -.highlight .vg { color: #268bd2; } - -.highlight .vi { color: #268bd2; } - -.highlight .il { color: #2aa198; } - -.code-example { padding: 0.75rem; margin-bottom: 0.75rem; overflow: auto; border: 1px solid #eeebee; border-radius: 4px; } -.code-example + .highlighter-rouge, .code-example + figure.highlight { position: relative; margin-top: -1rem; border-right: 1px solid #eeebee; border-bottom: 1px solid #eeebee; border-left: 1px solid #eeebee; border-top-left-radius: 0; border-top-right-radius: 0; } - -.text-grey-dk-000 { color: #959396 !important; } - -.text-grey-dk-100 { color: #5c5962 !important; } - -.text-grey-dk-200 { color: #44434d !important; } - -.text-grey-dk-250 { color: #302d36 !important; } - -.text-grey-dk-300 { color: #27262b !important; } - -.text-grey-lt-000 { color: #f5f6fa !important; } - -.text-grey-lt-100 { color: #eeebee !important; } - -.text-grey-lt-200 { color: #ecebed !important; } - -.text-grey-lt-300 { color: #e6e1e8 !important; } - -.text-blue-000 { color: #2c84fa !important; } - -.text-blue-100 { color: #2869e6 !important; } - -.text-blue-200 { color: #264caf !important; } - -.text-blue-300 { color: #183385 !important; } - -.text-green-000 { color: #41d693 !important; } - -.text-green-100 { color: #11b584 !important; } - -.text-green-200 { color: #009c7b !important; } - -.text-green-300 { color: #026e57 !important; } - -.text-purple-000 { color: #7253ed !important; } - -.text-purple-100 { color: #5e41d0 !important; } - -.text-purple-200 { color: #4e26af !important; } - -.text-purple-300 { color: #381885 !important; } - -.text-yellow-000 { color: #ffeb82 !important; } - -.text-yellow-100 { color: #fadf50 !important; } - -.text-yellow-200 { color: #f7d12e !important; } - -.text-yellow-300 { color: #e7af06 !important; } - -.text-red-000 { color: #f77e7e !important; } - -.text-red-100 { color: #f96e65 !important; } - -.text-red-200 { color: #e94c4c !important; } - -.text-red-300 { color: #dd2e2e !important; } - -.bg-grey-dk-000 { background-color: #959396 !important; } - -.bg-grey-dk-100 { background-color: #5c5962 !important; } - -.bg-grey-dk-200 { background-color: #44434d !important; } - -.bg-grey-dk-250 { background-color: #302d36 !important; } - -.bg-grey-dk-300 { background-color: #27262b !important; } - -.bg-grey-lt-000 { background-color: #f5f6fa !important; } - -.bg-grey-lt-100 { background-color: #eeebee !important; } - -.bg-grey-lt-200 { background-color: #ecebed !important; } - -.bg-grey-lt-300 { background-color: #e6e1e8 !important; } - -.bg-blue-000 { background-color: #2c84fa !important; } - -.bg-blue-100 { background-color: #2869e6 !important; } - -.bg-blue-200 { background-color: #264caf !important; } - -.bg-blue-300 { background-color: #183385 !important; } - -.bg-green-000 { background-color: #41d693 !important; } - -.bg-green-100 { background-color: #11b584 !important; } - -.bg-green-200 { background-color: #009c7b !important; } - -.bg-green-300 { background-color: #026e57 !important; } - -.bg-purple-000 { background-color: #7253ed !important; } - -.bg-purple-100 { background-color: #5e41d0 !important; } - -.bg-purple-200 { background-color: #4e26af !important; } - -.bg-purple-300 { background-color: #381885 !important; } - -.bg-yellow-000 { background-color: #ffeb82 !important; } - -.bg-yellow-100 { background-color: #fadf50 !important; } - -.bg-yellow-200 { background-color: #f7d12e !important; } - -.bg-yellow-300 { background-color: #e7af06 !important; } - -.bg-red-000 { background-color: #f77e7e !important; } - -.bg-red-100 { background-color: #f96e65 !important; } - -.bg-red-200 { background-color: #e94c4c !important; } - -.bg-red-300 { background-color: #dd2e2e !important; } - -.d-block { display: block !important; } - -.d-flex { display: flex !important; } - -.d-inline { display: inline !important; } - -.d-inline-block { display: inline-block !important; } - -.d-none { display: none !important; } - -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -.float-left { float: left !important; } - -.float-right { float: right !important; } - -.flex-justify-start { justify-content: flex-start !important; } - -.flex-justify-end { justify-content: flex-end !important; } - -.flex-justify-between { justify-content: space-between !important; } - -.flex-justify-around { justify-content: space-around !important; } - -.v-align-baseline { vertical-align: baseline !important; } - -.v-align-bottom { vertical-align: bottom !important; } - -.v-align-middle { vertical-align: middle !important; } - -.v-align-text-bottom { vertical-align: text-bottom !important; } - -.v-align-text-top { vertical-align: text-top !important; } - -.v-align-top { vertical-align: top !important; } - -.fs-1 { font-size: 9px !important; } -@media (min-width: 31.25rem) { .fs-1 { font-size: 10px !important; } } - -.fs-2 { font-size: 11px !important; } -@media (min-width: 31.25rem) { .fs-2 { font-size: 12px !important; } } - -.fs-3 { font-size: 12px !important; } -@media (min-width: 31.25rem) { .fs-3 { font-size: 14px !important; } } - -.fs-4 { font-size: 14px !important; } -@media (min-width: 31.25rem) { .fs-4 { font-size: 16px !important; } } - -.fs-5 { font-size: 16px !important; } -@media (min-width: 31.25rem) { .fs-5 { font-size: 18px !important; } } - -.fs-6 { font-size: 18px !important; } -@media (min-width: 31.25rem) { .fs-6 { font-size: 24px !important; line-height: 1.25; } } - -.fs-7 { font-size: 24px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-7 { font-size: 32px !important; } } - -.fs-8 { font-size: 32px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-8 { font-size: 36px !important; } } - -.fs-9 { font-size: 36px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-9 { font-size: 42px !important; } } - -.fs-10 { font-size: 42px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-10 { font-size: 48px !important; } } - -.fw-300 { font-weight: 300 !important; } - -.fw-400 { font-weight: 400 !important; } - -.fw-500 { font-weight: 500 !important; } - -.fw-700 { font-weight: 700 !important; } - -.lh-0 { line-height: 0 !important; } - -.lh-default { line-height: 1.4; } - -.lh-tight { line-height: 1.25; } - -.ls-5 { letter-spacing: 0.05em !important; } - -.ls-10 { letter-spacing: 0.1em !important; } - -.ls-0 { letter-spacing: 0 !important; } - -.text-uppercase { text-transform: uppercase !important; } - -.list-style-none { padding: 0 !important; margin: 0 !important; list-style: none !important; } -.list-style-none li::before { display: none !important; } - -.mx-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-0 { margin: 0 !important; } - -.mt-0 { margin-top: 0 !important; } - -.mr-0 { margin-right: 0 !important; } - -.mb-0 { margin-bottom: 0 !important; } - -.ml-0 { margin-left: 0 !important; } - -.mx-0 { margin-right: 0 !important; margin-left: 0 !important; } - -.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - -.mxn-0 { margin-right: -0 !important; margin-left: -0 !important; } - -.mx-0-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-1 { margin: 0.25rem !important; } - -.mt-1 { margin-top: 0.25rem !important; } - -.mr-1 { margin-right: 0.25rem !important; } - -.mb-1 { margin-bottom: 0.25rem !important; } - -.ml-1 { margin-left: 0.25rem !important; } - -.mx-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - -.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - -.mxn-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } - -.mx-1-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-2 { margin: 0.5rem !important; } - -.mt-2 { margin-top: 0.5rem !important; } - -.mr-2 { margin-right: 0.5rem !important; } - -.mb-2 { margin-bottom: 0.5rem !important; } - -.ml-2 { margin-left: 0.5rem !important; } - -.mx-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - -.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - -.mxn-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } - -.mx-2-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-3 { margin: 0.75rem !important; } - -.mt-3 { margin-top: 0.75rem !important; } - -.mr-3 { margin-right: 0.75rem !important; } - -.mb-3 { margin-bottom: 0.75rem !important; } - -.ml-3 { margin-left: 0.75rem !important; } - -.mx-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - -.my-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - -.mxn-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } - -.mx-3-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-4 { margin: 1rem !important; } - -.mt-4 { margin-top: 1rem !important; } - -.mr-4 { margin-right: 1rem !important; } - -.mb-4 { margin-bottom: 1rem !important; } - -.ml-4 { margin-left: 1rem !important; } - -.mx-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - -.my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - -.mxn-4 { margin-right: -1rem !important; margin-left: -1rem !important; } - -.mx-4-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-5 { margin: 1.5rem !important; } - -.mt-5 { margin-top: 1.5rem !important; } - -.mr-5 { margin-right: 1.5rem !important; } - -.mb-5 { margin-bottom: 1.5rem !important; } - -.ml-5 { margin-left: 1.5rem !important; } - -.mx-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - -.my-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - -.mxn-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } - -.mx-5-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-6 { margin: 2rem !important; } - -.mt-6 { margin-top: 2rem !important; } - -.mr-6 { margin-right: 2rem !important; } - -.mb-6 { margin-bottom: 2rem !important; } - -.ml-6 { margin-left: 2rem !important; } - -.mx-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - -.my-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - -.mxn-6 { margin-right: -2rem !important; margin-left: -2rem !important; } - -.mx-6-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-7 { margin: 2.5rem !important; } - -.mt-7 { margin-top: 2.5rem !important; } - -.mr-7 { margin-right: 2.5rem !important; } - -.mb-7 { margin-bottom: 2.5rem !important; } - -.ml-7 { margin-left: 2.5rem !important; } - -.mx-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - -.my-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - -.mxn-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } - -.mx-7-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-8 { margin: 3rem !important; } - -.mt-8 { margin-top: 3rem !important; } - -.mr-8 { margin-right: 3rem !important; } - -.mb-8 { margin-bottom: 3rem !important; } - -.ml-8 { margin-left: 3rem !important; } - -.mx-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - -.my-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - -.mxn-8 { margin-right: -3rem !important; margin-left: -3rem !important; } - -.mx-8-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-9 { margin: 3.5rem !important; } - -.mt-9 { margin-top: 3.5rem !important; } - -.mr-9 { margin-right: 3.5rem !important; } - -.mb-9 { margin-bottom: 3.5rem !important; } - -.ml-9 { margin-left: 3.5rem !important; } - -.mx-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - -.my-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - -.mxn-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } - -.mx-9-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-10 { margin: 4rem !important; } - -.mt-10 { margin-top: 4rem !important; } - -.mr-10 { margin-right: 4rem !important; } - -.mb-10 { margin-bottom: 4rem !important; } - -.ml-10 { margin-left: 4rem !important; } - -.mx-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - -.my-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - -.mxn-10 { margin-right: -4rem !important; margin-left: -4rem !important; } - -.mx-10-auto { margin-right: auto !important; margin-left: auto !important; } - -@media (min-width: 20rem) { .m-xs-0 { margin: 0 !important; } - .mt-xs-0 { margin-top: 0 !important; } - .mr-xs-0 { margin-right: 0 !important; } - .mb-xs-0 { margin-bottom: 0 !important; } - .ml-xs-0 { margin-left: 0 !important; } - .mx-xs-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xs-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xs-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 20rem) { .m-xs-1 { margin: 0.25rem !important; } - .mt-xs-1 { margin-top: 0.25rem !important; } - .mr-xs-1 { margin-right: 0.25rem !important; } - .mb-xs-1 { margin-bottom: 0.25rem !important; } - .ml-xs-1 { margin-left: 0.25rem !important; } - .mx-xs-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xs-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xs-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 20rem) { .m-xs-2 { margin: 0.5rem !important; } - .mt-xs-2 { margin-top: 0.5rem !important; } - .mr-xs-2 { margin-right: 0.5rem !important; } - .mb-xs-2 { margin-bottom: 0.5rem !important; } - .ml-xs-2 { margin-left: 0.5rem !important; } - .mx-xs-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xs-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xs-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 20rem) { .m-xs-3 { margin: 0.75rem !important; } - .mt-xs-3 { margin-top: 0.75rem !important; } - .mr-xs-3 { margin-right: 0.75rem !important; } - .mb-xs-3 { margin-bottom: 0.75rem !important; } - .ml-xs-3 { margin-left: 0.75rem !important; } - .mx-xs-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xs-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xs-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 20rem) { .m-xs-4 { margin: 1rem !important; } - .mt-xs-4 { margin-top: 1rem !important; } - .mr-xs-4 { margin-right: 1rem !important; } - .mb-xs-4 { margin-bottom: 1rem !important; } - .ml-xs-4 { margin-left: 1rem !important; } - .mx-xs-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xs-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xs-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 20rem) { .m-xs-5 { margin: 1.5rem !important; } - .mt-xs-5 { margin-top: 1.5rem !important; } - .mr-xs-5 { margin-right: 1.5rem !important; } - .mb-xs-5 { margin-bottom: 1.5rem !important; } - .ml-xs-5 { margin-left: 1.5rem !important; } - .mx-xs-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xs-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xs-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 20rem) { .m-xs-6 { margin: 2rem !important; } - .mt-xs-6 { margin-top: 2rem !important; } - .mr-xs-6 { margin-right: 2rem !important; } - .mb-xs-6 { margin-bottom: 2rem !important; } - .ml-xs-6 { margin-left: 2rem !important; } - .mx-xs-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xs-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xs-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 20rem) { .m-xs-7 { margin: 2.5rem !important; } - .mt-xs-7 { margin-top: 2.5rem !important; } - .mr-xs-7 { margin-right: 2.5rem !important; } - .mb-xs-7 { margin-bottom: 2.5rem !important; } - .ml-xs-7 { margin-left: 2.5rem !important; } - .mx-xs-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xs-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xs-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 20rem) { .m-xs-8 { margin: 3rem !important; } - .mt-xs-8 { margin-top: 3rem !important; } - .mr-xs-8 { margin-right: 3rem !important; } - .mb-xs-8 { margin-bottom: 3rem !important; } - .ml-xs-8 { margin-left: 3rem !important; } - .mx-xs-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xs-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xs-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 20rem) { .m-xs-9 { margin: 3.5rem !important; } - .mt-xs-9 { margin-top: 3.5rem !important; } - .mr-xs-9 { margin-right: 3.5rem !important; } - .mb-xs-9 { margin-bottom: 3.5rem !important; } - .ml-xs-9 { margin-left: 3.5rem !important; } - .mx-xs-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xs-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xs-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 20rem) { .m-xs-10 { margin: 4rem !important; } - .mt-xs-10 { margin-top: 4rem !important; } - .mr-xs-10 { margin-right: 4rem !important; } - .mb-xs-10 { margin-bottom: 4rem !important; } - .ml-xs-10 { margin-left: 4rem !important; } - .mx-xs-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xs-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xs-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 31.25rem) { .m-sm-0 { margin: 0 !important; } - .mt-sm-0 { margin-top: 0 !important; } - .mr-sm-0 { margin-right: 0 !important; } - .mb-sm-0 { margin-bottom: 0 !important; } - .ml-sm-0 { margin-left: 0 !important; } - .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-sm-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 31.25rem) { .m-sm-1 { margin: 0.25rem !important; } - .mt-sm-1 { margin-top: 0.25rem !important; } - .mr-sm-1 { margin-right: 0.25rem !important; } - .mb-sm-1 { margin-bottom: 0.25rem !important; } - .ml-sm-1 { margin-left: 0.25rem !important; } - .mx-sm-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-sm-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 31.25rem) { .m-sm-2 { margin: 0.5rem !important; } - .mt-sm-2 { margin-top: 0.5rem !important; } - .mr-sm-2 { margin-right: 0.5rem !important; } - .mb-sm-2 { margin-bottom: 0.5rem !important; } - .ml-sm-2 { margin-left: 0.5rem !important; } - .mx-sm-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-sm-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-3 { margin: 0.75rem !important; } - .mt-sm-3 { margin-top: 0.75rem !important; } - .mr-sm-3 { margin-right: 0.75rem !important; } - .mb-sm-3 { margin-bottom: 0.75rem !important; } - .ml-sm-3 { margin-left: 0.75rem !important; } - .mx-sm-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-sm-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-sm-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 31.25rem) { .m-sm-4 { margin: 1rem !important; } - .mt-sm-4 { margin-top: 1rem !important; } - .mr-sm-4 { margin-right: 1rem !important; } - .mb-sm-4 { margin-bottom: 1rem !important; } - .ml-sm-4 { margin-left: 1rem !important; } - .mx-sm-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-sm-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-sm-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 31.25rem) { .m-sm-5 { margin: 1.5rem !important; } - .mt-sm-5 { margin-top: 1.5rem !important; } - .mr-sm-5 { margin-right: 1.5rem !important; } - .mb-sm-5 { margin-bottom: 1.5rem !important; } - .ml-sm-5 { margin-left: 1.5rem !important; } - .mx-sm-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-sm-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-sm-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-6 { margin: 2rem !important; } - .mt-sm-6 { margin-top: 2rem !important; } - .mr-sm-6 { margin-right: 2rem !important; } - .mb-sm-6 { margin-bottom: 2rem !important; } - .ml-sm-6 { margin-left: 2rem !important; } - .mx-sm-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-sm-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-sm-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 31.25rem) { .m-sm-7 { margin: 2.5rem !important; } - .mt-sm-7 { margin-top: 2.5rem !important; } - .mr-sm-7 { margin-right: 2.5rem !important; } - .mb-sm-7 { margin-bottom: 2.5rem !important; } - .ml-sm-7 { margin-left: 2.5rem !important; } - .mx-sm-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-sm-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-sm-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-8 { margin: 3rem !important; } - .mt-sm-8 { margin-top: 3rem !important; } - .mr-sm-8 { margin-right: 3rem !important; } - .mb-sm-8 { margin-bottom: 3rem !important; } - .ml-sm-8 { margin-left: 3rem !important; } - .mx-sm-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-sm-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-sm-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 31.25rem) { .m-sm-9 { margin: 3.5rem !important; } - .mt-sm-9 { margin-top: 3.5rem !important; } - .mr-sm-9 { margin-right: 3.5rem !important; } - .mb-sm-9 { margin-bottom: 3.5rem !important; } - .ml-sm-9 { margin-left: 3.5rem !important; } - .mx-sm-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-sm-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-sm-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-10 { margin: 4rem !important; } - .mt-sm-10 { margin-top: 4rem !important; } - .mr-sm-10 { margin-right: 4rem !important; } - .mb-sm-10 { margin-bottom: 4rem !important; } - .ml-sm-10 { margin-left: 4rem !important; } - .mx-sm-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-sm-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-sm-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 50rem) { .m-md-0 { margin: 0 !important; } - .mt-md-0 { margin-top: 0 !important; } - .mr-md-0 { margin-right: 0 !important; } - .mb-md-0 { margin-bottom: 0 !important; } - .ml-md-0 { margin-left: 0 !important; } - .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-md-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 50rem) { .m-md-1 { margin: 0.25rem !important; } - .mt-md-1 { margin-top: 0.25rem !important; } - .mr-md-1 { margin-right: 0.25rem !important; } - .mb-md-1 { margin-bottom: 0.25rem !important; } - .ml-md-1 { margin-left: 0.25rem !important; } - .mx-md-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-md-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 50rem) { .m-md-2 { margin: 0.5rem !important; } - .mt-md-2 { margin-top: 0.5rem !important; } - .mr-md-2 { margin-right: 0.5rem !important; } - .mb-md-2 { margin-bottom: 0.5rem !important; } - .ml-md-2 { margin-left: 0.5rem !important; } - .mx-md-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-md-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 50rem) { .m-md-3 { margin: 0.75rem !important; } - .mt-md-3 { margin-top: 0.75rem !important; } - .mr-md-3 { margin-right: 0.75rem !important; } - .mb-md-3 { margin-bottom: 0.75rem !important; } - .ml-md-3 { margin-left: 0.75rem !important; } - .mx-md-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-md-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-md-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 50rem) { .m-md-4 { margin: 1rem !important; } - .mt-md-4 { margin-top: 1rem !important; } - .mr-md-4 { margin-right: 1rem !important; } - .mb-md-4 { margin-bottom: 1rem !important; } - .ml-md-4 { margin-left: 1rem !important; } - .mx-md-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-md-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-md-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 50rem) { .m-md-5 { margin: 1.5rem !important; } - .mt-md-5 { margin-top: 1.5rem !important; } - .mr-md-5 { margin-right: 1.5rem !important; } - .mb-md-5 { margin-bottom: 1.5rem !important; } - .ml-md-5 { margin-left: 1.5rem !important; } - .mx-md-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-md-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-md-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 50rem) { .m-md-6 { margin: 2rem !important; } - .mt-md-6 { margin-top: 2rem !important; } - .mr-md-6 { margin-right: 2rem !important; } - .mb-md-6 { margin-bottom: 2rem !important; } - .ml-md-6 { margin-left: 2rem !important; } - .mx-md-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-md-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-md-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 50rem) { .m-md-7 { margin: 2.5rem !important; } - .mt-md-7 { margin-top: 2.5rem !important; } - .mr-md-7 { margin-right: 2.5rem !important; } - .mb-md-7 { margin-bottom: 2.5rem !important; } - .ml-md-7 { margin-left: 2.5rem !important; } - .mx-md-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-md-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-md-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 50rem) { .m-md-8 { margin: 3rem !important; } - .mt-md-8 { margin-top: 3rem !important; } - .mr-md-8 { margin-right: 3rem !important; } - .mb-md-8 { margin-bottom: 3rem !important; } - .ml-md-8 { margin-left: 3rem !important; } - .mx-md-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-md-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-md-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 50rem) { .m-md-9 { margin: 3.5rem !important; } - .mt-md-9 { margin-top: 3.5rem !important; } - .mr-md-9 { margin-right: 3.5rem !important; } - .mb-md-9 { margin-bottom: 3.5rem !important; } - .ml-md-9 { margin-left: 3.5rem !important; } - .mx-md-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-md-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-md-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 50rem) { .m-md-10 { margin: 4rem !important; } - .mt-md-10 { margin-top: 4rem !important; } - .mr-md-10 { margin-right: 4rem !important; } - .mb-md-10 { margin-bottom: 4rem !important; } - .ml-md-10 { margin-left: 4rem !important; } - .mx-md-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-md-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-md-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 66.5rem) { .m-lg-0 { margin: 0 !important; } - .mt-lg-0 { margin-top: 0 !important; } - .mr-lg-0 { margin-right: 0 !important; } - .mb-lg-0 { margin-bottom: 0 !important; } - .ml-lg-0 { margin-left: 0 !important; } - .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-lg-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 66.5rem) { .m-lg-1 { margin: 0.25rem !important; } - .mt-lg-1 { margin-top: 0.25rem !important; } - .mr-lg-1 { margin-right: 0.25rem !important; } - .mb-lg-1 { margin-bottom: 0.25rem !important; } - .ml-lg-1 { margin-left: 0.25rem !important; } - .mx-lg-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-lg-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 66.5rem) { .m-lg-2 { margin: 0.5rem !important; } - .mt-lg-2 { margin-top: 0.5rem !important; } - .mr-lg-2 { margin-right: 0.5rem !important; } - .mb-lg-2 { margin-bottom: 0.5rem !important; } - .ml-lg-2 { margin-left: 0.5rem !important; } - .mx-lg-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-lg-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-3 { margin: 0.75rem !important; } - .mt-lg-3 { margin-top: 0.75rem !important; } - .mr-lg-3 { margin-right: 0.75rem !important; } - .mb-lg-3 { margin-bottom: 0.75rem !important; } - .ml-lg-3 { margin-left: 0.75rem !important; } - .mx-lg-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-lg-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-lg-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 66.5rem) { .m-lg-4 { margin: 1rem !important; } - .mt-lg-4 { margin-top: 1rem !important; } - .mr-lg-4 { margin-right: 1rem !important; } - .mb-lg-4 { margin-bottom: 1rem !important; } - .ml-lg-4 { margin-left: 1rem !important; } - .mx-lg-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-lg-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-lg-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 66.5rem) { .m-lg-5 { margin: 1.5rem !important; } - .mt-lg-5 { margin-top: 1.5rem !important; } - .mr-lg-5 { margin-right: 1.5rem !important; } - .mb-lg-5 { margin-bottom: 1.5rem !important; } - .ml-lg-5 { margin-left: 1.5rem !important; } - .mx-lg-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-lg-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-lg-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-6 { margin: 2rem !important; } - .mt-lg-6 { margin-top: 2rem !important; } - .mr-lg-6 { margin-right: 2rem !important; } - .mb-lg-6 { margin-bottom: 2rem !important; } - .ml-lg-6 { margin-left: 2rem !important; } - .mx-lg-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-lg-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-lg-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 66.5rem) { .m-lg-7 { margin: 2.5rem !important; } - .mt-lg-7 { margin-top: 2.5rem !important; } - .mr-lg-7 { margin-right: 2.5rem !important; } - .mb-lg-7 { margin-bottom: 2.5rem !important; } - .ml-lg-7 { margin-left: 2.5rem !important; } - .mx-lg-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-lg-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-lg-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-8 { margin: 3rem !important; } - .mt-lg-8 { margin-top: 3rem !important; } - .mr-lg-8 { margin-right: 3rem !important; } - .mb-lg-8 { margin-bottom: 3rem !important; } - .ml-lg-8 { margin-left: 3rem !important; } - .mx-lg-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-lg-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-lg-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 66.5rem) { .m-lg-9 { margin: 3.5rem !important; } - .mt-lg-9 { margin-top: 3.5rem !important; } - .mr-lg-9 { margin-right: 3.5rem !important; } - .mb-lg-9 { margin-bottom: 3.5rem !important; } - .ml-lg-9 { margin-left: 3.5rem !important; } - .mx-lg-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-lg-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-lg-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-10 { margin: 4rem !important; } - .mt-lg-10 { margin-top: 4rem !important; } - .mr-lg-10 { margin-right: 4rem !important; } - .mb-lg-10 { margin-bottom: 4rem !important; } - .ml-lg-10 { margin-left: 4rem !important; } - .mx-lg-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-lg-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-lg-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 87.5rem) { .m-xl-0 { margin: 0 !important; } - .mt-xl-0 { margin-top: 0 !important; } - .mr-xl-0 { margin-right: 0 !important; } - .mb-xl-0 { margin-bottom: 0 !important; } - .ml-xl-0 { margin-left: 0 !important; } - .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xl-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 87.5rem) { .m-xl-1 { margin: 0.25rem !important; } - .mt-xl-1 { margin-top: 0.25rem !important; } - .mr-xl-1 { margin-right: 0.25rem !important; } - .mb-xl-1 { margin-bottom: 0.25rem !important; } - .ml-xl-1 { margin-left: 0.25rem !important; } - .mx-xl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xl-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 87.5rem) { .m-xl-2 { margin: 0.5rem !important; } - .mt-xl-2 { margin-top: 0.5rem !important; } - .mr-xl-2 { margin-right: 0.5rem !important; } - .mb-xl-2 { margin-bottom: 0.5rem !important; } - .ml-xl-2 { margin-left: 0.5rem !important; } - .mx-xl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xl-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-3 { margin: 0.75rem !important; } - .mt-xl-3 { margin-top: 0.75rem !important; } - .mr-xl-3 { margin-right: 0.75rem !important; } - .mb-xl-3 { margin-bottom: 0.75rem !important; } - .ml-xl-3 { margin-left: 0.75rem !important; } - .mx-xl-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xl-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xl-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 87.5rem) { .m-xl-4 { margin: 1rem !important; } - .mt-xl-4 { margin-top: 1rem !important; } - .mr-xl-4 { margin-right: 1rem !important; } - .mb-xl-4 { margin-bottom: 1rem !important; } - .ml-xl-4 { margin-left: 1rem !important; } - .mx-xl-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xl-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xl-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 87.5rem) { .m-xl-5 { margin: 1.5rem !important; } - .mt-xl-5 { margin-top: 1.5rem !important; } - .mr-xl-5 { margin-right: 1.5rem !important; } - .mb-xl-5 { margin-bottom: 1.5rem !important; } - .ml-xl-5 { margin-left: 1.5rem !important; } - .mx-xl-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xl-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xl-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-6 { margin: 2rem !important; } - .mt-xl-6 { margin-top: 2rem !important; } - .mr-xl-6 { margin-right: 2rem !important; } - .mb-xl-6 { margin-bottom: 2rem !important; } - .ml-xl-6 { margin-left: 2rem !important; } - .mx-xl-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xl-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xl-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 87.5rem) { .m-xl-7 { margin: 2.5rem !important; } - .mt-xl-7 { margin-top: 2.5rem !important; } - .mr-xl-7 { margin-right: 2.5rem !important; } - .mb-xl-7 { margin-bottom: 2.5rem !important; } - .ml-xl-7 { margin-left: 2.5rem !important; } - .mx-xl-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xl-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xl-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-8 { margin: 3rem !important; } - .mt-xl-8 { margin-top: 3rem !important; } - .mr-xl-8 { margin-right: 3rem !important; } - .mb-xl-8 { margin-bottom: 3rem !important; } - .ml-xl-8 { margin-left: 3rem !important; } - .mx-xl-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xl-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xl-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 87.5rem) { .m-xl-9 { margin: 3.5rem !important; } - .mt-xl-9 { margin-top: 3.5rem !important; } - .mr-xl-9 { margin-right: 3.5rem !important; } - .mb-xl-9 { margin-bottom: 3.5rem !important; } - .ml-xl-9 { margin-left: 3.5rem !important; } - .mx-xl-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xl-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xl-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-10 { margin: 4rem !important; } - .mt-xl-10 { margin-top: 4rem !important; } - .mr-xl-10 { margin-right: 4rem !important; } - .mb-xl-10 { margin-bottom: 4rem !important; } - .ml-xl-10 { margin-left: 4rem !important; } - .mx-xl-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xl-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xl-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -.p-0 { padding: 0 !important; } - -.pt-0 { padding-top: 0 !important; } - -.pr-0 { padding-right: 0 !important; } - -.pb-0 { padding-bottom: 0 !important; } - -.pl-0 { padding-left: 0 !important; } - -.px-0 { padding-right: 0 !important; padding-left: 0 !important; } - -.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - -.p-1 { padding: 0.25rem !important; } - -.pt-1 { padding-top: 0.25rem !important; } - -.pr-1 { padding-right: 0.25rem !important; } - -.pb-1 { padding-bottom: 0.25rem !important; } - -.pl-1 { padding-left: 0.25rem !important; } - -.px-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - -.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - -.p-2 { padding: 0.5rem !important; } - -.pt-2 { padding-top: 0.5rem !important; } - -.pr-2 { padding-right: 0.5rem !important; } - -.pb-2 { padding-bottom: 0.5rem !important; } - -.pl-2 { padding-left: 0.5rem !important; } - -.px-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - -.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - -.p-3 { padding: 0.75rem !important; } - -.pt-3 { padding-top: 0.75rem !important; } - -.pr-3 { padding-right: 0.75rem !important; } - -.pb-3 { padding-bottom: 0.75rem !important; } - -.pl-3 { padding-left: 0.75rem !important; } - -.px-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - -.py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - -.p-4 { padding: 1rem !important; } - -.pt-4 { padding-top: 1rem !important; } - -.pr-4 { padding-right: 1rem !important; } - -.pb-4 { padding-bottom: 1rem !important; } - -.pl-4 { padding-left: 1rem !important; } - -.px-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - -.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - -.p-5 { padding: 1.5rem !important; } - -.pt-5 { padding-top: 1.5rem !important; } - -.pr-5 { padding-right: 1.5rem !important; } - -.pb-5 { padding-bottom: 1.5rem !important; } - -.pl-5 { padding-left: 1.5rem !important; } - -.px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - -.py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - -.p-6 { padding: 2rem !important; } - -.pt-6 { padding-top: 2rem !important; } - -.pr-6 { padding-right: 2rem !important; } - -.pb-6 { padding-bottom: 2rem !important; } - -.pl-6 { padding-left: 2rem !important; } - -.px-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - -.py-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - -.p-7 { padding: 2.5rem !important; } - -.pt-7 { padding-top: 2.5rem !important; } - -.pr-7 { padding-right: 2.5rem !important; } - -.pb-7 { padding-bottom: 2.5rem !important; } - -.pl-7 { padding-left: 2.5rem !important; } - -.px-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - -.py-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - -.p-8 { padding: 3rem !important; } - -.pt-8 { padding-top: 3rem !important; } - -.pr-8 { padding-right: 3rem !important; } - -.pb-8 { padding-bottom: 3rem !important; } - -.pl-8 { padding-left: 3rem !important; } - -.px-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - -.py-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - -.p-9 { padding: 3.5rem !important; } - -.pt-9 { padding-top: 3.5rem !important; } - -.pr-9 { padding-right: 3.5rem !important; } - -.pb-9 { padding-bottom: 3.5rem !important; } - -.pl-9 { padding-left: 3.5rem !important; } - -.px-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - -.py-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - -.p-10 { padding: 4rem !important; } - -.pt-10 { padding-top: 4rem !important; } - -.pr-10 { padding-right: 4rem !important; } - -.pb-10 { padding-bottom: 4rem !important; } - -.pl-10 { padding-left: 4rem !important; } - -.px-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - -.py-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - -@media (min-width: 20rem) { .p-xs-0 { padding: 0 !important; } - .pt-xs-0 { padding-top: 0 !important; } - .pr-xs-0 { padding-right: 0 !important; } - .pb-xs-0 { padding-bottom: 0 !important; } - .pl-xs-0 { padding-left: 0 !important; } - .px-xs-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xs-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xs-1 { padding: 0.25rem !important; } - .pt-xs-1 { padding-top: 0.25rem !important; } - .pr-xs-1 { padding-right: 0.25rem !important; } - .pb-xs-1 { padding-bottom: 0.25rem !important; } - .pl-xs-1 { padding-left: 0.25rem !important; } - .px-xs-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xs-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xs-2 { padding: 0.5rem !important; } - .pt-xs-2 { padding-top: 0.5rem !important; } - .pr-xs-2 { padding-right: 0.5rem !important; } - .pb-xs-2 { padding-bottom: 0.5rem !important; } - .pl-xs-2 { padding-left: 0.5rem !important; } - .px-xs-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xs-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xs-3 { padding: 0.75rem !important; } - .pt-xs-3 { padding-top: 0.75rem !important; } - .pr-xs-3 { padding-right: 0.75rem !important; } - .pb-xs-3 { padding-bottom: 0.75rem !important; } - .pl-xs-3 { padding-left: 0.75rem !important; } - .px-xs-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xs-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xs-4 { padding: 1rem !important; } - .pt-xs-4 { padding-top: 1rem !important; } - .pr-xs-4 { padding-right: 1rem !important; } - .pb-xs-4 { padding-bottom: 1rem !important; } - .pl-xs-4 { padding-left: 1rem !important; } - .px-xs-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xs-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xs-5 { padding: 1.5rem !important; } - .pt-xs-5 { padding-top: 1.5rem !important; } - .pr-xs-5 { padding-right: 1.5rem !important; } - .pb-xs-5 { padding-bottom: 1.5rem !important; } - .pl-xs-5 { padding-left: 1.5rem !important; } - .px-xs-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xs-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xs-6 { padding: 2rem !important; } - .pt-xs-6 { padding-top: 2rem !important; } - .pr-xs-6 { padding-right: 2rem !important; } - .pb-xs-6 { padding-bottom: 2rem !important; } - .pl-xs-6 { padding-left: 2rem !important; } - .px-xs-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xs-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xs-7 { padding: 2.5rem !important; } - .pt-xs-7 { padding-top: 2.5rem !important; } - .pr-xs-7 { padding-right: 2.5rem !important; } - .pb-xs-7 { padding-bottom: 2.5rem !important; } - .pl-xs-7 { padding-left: 2.5rem !important; } - .px-xs-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xs-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xs-8 { padding: 3rem !important; } - .pt-xs-8 { padding-top: 3rem !important; } - .pr-xs-8 { padding-right: 3rem !important; } - .pb-xs-8 { padding-bottom: 3rem !important; } - .pl-xs-8 { padding-left: 3rem !important; } - .px-xs-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xs-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xs-9 { padding: 3.5rem !important; } - .pt-xs-9 { padding-top: 3.5rem !important; } - .pr-xs-9 { padding-right: 3.5rem !important; } - .pb-xs-9 { padding-bottom: 3.5rem !important; } - .pl-xs-9 { padding-left: 3.5rem !important; } - .px-xs-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xs-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xs-10 { padding: 4rem !important; } - .pt-xs-10 { padding-top: 4rem !important; } - .pr-xs-10 { padding-right: 4rem !important; } - .pb-xs-10 { padding-bottom: 4rem !important; } - .pl-xs-10 { padding-left: 4rem !important; } - .px-xs-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xs-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 31.25rem) { .p-sm-0 { padding: 0 !important; } - .pt-sm-0 { padding-top: 0 !important; } - .pr-sm-0 { padding-right: 0 !important; } - .pb-sm-0 { padding-bottom: 0 !important; } - .pl-sm-0 { padding-left: 0 !important; } - .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-sm-1 { padding: 0.25rem !important; } - .pt-sm-1 { padding-top: 0.25rem !important; } - .pr-sm-1 { padding-right: 0.25rem !important; } - .pb-sm-1 { padding-bottom: 0.25rem !important; } - .pl-sm-1 { padding-left: 0.25rem !important; } - .px-sm-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-sm-2 { padding: 0.5rem !important; } - .pt-sm-2 { padding-top: 0.5rem !important; } - .pr-sm-2 { padding-right: 0.5rem !important; } - .pb-sm-2 { padding-bottom: 0.5rem !important; } - .pl-sm-2 { padding-left: 0.5rem !important; } - .px-sm-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-sm-3 { padding: 0.75rem !important; } - .pt-sm-3 { padding-top: 0.75rem !important; } - .pr-sm-3 { padding-right: 0.75rem !important; } - .pb-sm-3 { padding-bottom: 0.75rem !important; } - .pl-sm-3 { padding-left: 0.75rem !important; } - .px-sm-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-sm-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-sm-4 { padding: 1rem !important; } - .pt-sm-4 { padding-top: 1rem !important; } - .pr-sm-4 { padding-right: 1rem !important; } - .pb-sm-4 { padding-bottom: 1rem !important; } - .pl-sm-4 { padding-left: 1rem !important; } - .px-sm-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-sm-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-sm-5 { padding: 1.5rem !important; } - .pt-sm-5 { padding-top: 1.5rem !important; } - .pr-sm-5 { padding-right: 1.5rem !important; } - .pb-sm-5 { padding-bottom: 1.5rem !important; } - .pl-sm-5 { padding-left: 1.5rem !important; } - .px-sm-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-sm-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-sm-6 { padding: 2rem !important; } - .pt-sm-6 { padding-top: 2rem !important; } - .pr-sm-6 { padding-right: 2rem !important; } - .pb-sm-6 { padding-bottom: 2rem !important; } - .pl-sm-6 { padding-left: 2rem !important; } - .px-sm-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-sm-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-sm-7 { padding: 2.5rem !important; } - .pt-sm-7 { padding-top: 2.5rem !important; } - .pr-sm-7 { padding-right: 2.5rem !important; } - .pb-sm-7 { padding-bottom: 2.5rem !important; } - .pl-sm-7 { padding-left: 2.5rem !important; } - .px-sm-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-sm-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-sm-8 { padding: 3rem !important; } - .pt-sm-8 { padding-top: 3rem !important; } - .pr-sm-8 { padding-right: 3rem !important; } - .pb-sm-8 { padding-bottom: 3rem !important; } - .pl-sm-8 { padding-left: 3rem !important; } - .px-sm-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-sm-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-sm-9 { padding: 3.5rem !important; } - .pt-sm-9 { padding-top: 3.5rem !important; } - .pr-sm-9 { padding-right: 3.5rem !important; } - .pb-sm-9 { padding-bottom: 3.5rem !important; } - .pl-sm-9 { padding-left: 3.5rem !important; } - .px-sm-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-sm-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-sm-10 { padding: 4rem !important; } - .pt-sm-10 { padding-top: 4rem !important; } - .pr-sm-10 { padding-right: 4rem !important; } - .pb-sm-10 { padding-bottom: 4rem !important; } - .pl-sm-10 { padding-left: 4rem !important; } - .px-sm-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-sm-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 50rem) { .p-md-0 { padding: 0 !important; } - .pt-md-0 { padding-top: 0 !important; } - .pr-md-0 { padding-right: 0 !important; } - .pb-md-0 { padding-bottom: 0 !important; } - .pl-md-0 { padding-left: 0 !important; } - .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-md-1 { padding: 0.25rem !important; } - .pt-md-1 { padding-top: 0.25rem !important; } - .pr-md-1 { padding-right: 0.25rem !important; } - .pb-md-1 { padding-bottom: 0.25rem !important; } - .pl-md-1 { padding-left: 0.25rem !important; } - .px-md-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-md-2 { padding: 0.5rem !important; } - .pt-md-2 { padding-top: 0.5rem !important; } - .pr-md-2 { padding-right: 0.5rem !important; } - .pb-md-2 { padding-bottom: 0.5rem !important; } - .pl-md-2 { padding-left: 0.5rem !important; } - .px-md-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-md-3 { padding: 0.75rem !important; } - .pt-md-3 { padding-top: 0.75rem !important; } - .pr-md-3 { padding-right: 0.75rem !important; } - .pb-md-3 { padding-bottom: 0.75rem !important; } - .pl-md-3 { padding-left: 0.75rem !important; } - .px-md-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-md-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-md-4 { padding: 1rem !important; } - .pt-md-4 { padding-top: 1rem !important; } - .pr-md-4 { padding-right: 1rem !important; } - .pb-md-4 { padding-bottom: 1rem !important; } - .pl-md-4 { padding-left: 1rem !important; } - .px-md-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-md-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-md-5 { padding: 1.5rem !important; } - .pt-md-5 { padding-top: 1.5rem !important; } - .pr-md-5 { padding-right: 1.5rem !important; } - .pb-md-5 { padding-bottom: 1.5rem !important; } - .pl-md-5 { padding-left: 1.5rem !important; } - .px-md-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-md-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-md-6 { padding: 2rem !important; } - .pt-md-6 { padding-top: 2rem !important; } - .pr-md-6 { padding-right: 2rem !important; } - .pb-md-6 { padding-bottom: 2rem !important; } - .pl-md-6 { padding-left: 2rem !important; } - .px-md-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-md-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-md-7 { padding: 2.5rem !important; } - .pt-md-7 { padding-top: 2.5rem !important; } - .pr-md-7 { padding-right: 2.5rem !important; } - .pb-md-7 { padding-bottom: 2.5rem !important; } - .pl-md-7 { padding-left: 2.5rem !important; } - .px-md-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-md-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-md-8 { padding: 3rem !important; } - .pt-md-8 { padding-top: 3rem !important; } - .pr-md-8 { padding-right: 3rem !important; } - .pb-md-8 { padding-bottom: 3rem !important; } - .pl-md-8 { padding-left: 3rem !important; } - .px-md-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-md-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-md-9 { padding: 3.5rem !important; } - .pt-md-9 { padding-top: 3.5rem !important; } - .pr-md-9 { padding-right: 3.5rem !important; } - .pb-md-9 { padding-bottom: 3.5rem !important; } - .pl-md-9 { padding-left: 3.5rem !important; } - .px-md-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-md-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-md-10 { padding: 4rem !important; } - .pt-md-10 { padding-top: 4rem !important; } - .pr-md-10 { padding-right: 4rem !important; } - .pb-md-10 { padding-bottom: 4rem !important; } - .pl-md-10 { padding-left: 4rem !important; } - .px-md-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-md-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 66.5rem) { .p-lg-0 { padding: 0 !important; } - .pt-lg-0 { padding-top: 0 !important; } - .pr-lg-0 { padding-right: 0 !important; } - .pb-lg-0 { padding-bottom: 0 !important; } - .pl-lg-0 { padding-left: 0 !important; } - .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-lg-1 { padding: 0.25rem !important; } - .pt-lg-1 { padding-top: 0.25rem !important; } - .pr-lg-1 { padding-right: 0.25rem !important; } - .pb-lg-1 { padding-bottom: 0.25rem !important; } - .pl-lg-1 { padding-left: 0.25rem !important; } - .px-lg-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-lg-2 { padding: 0.5rem !important; } - .pt-lg-2 { padding-top: 0.5rem !important; } - .pr-lg-2 { padding-right: 0.5rem !important; } - .pb-lg-2 { padding-bottom: 0.5rem !important; } - .pl-lg-2 { padding-left: 0.5rem !important; } - .px-lg-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-lg-3 { padding: 0.75rem !important; } - .pt-lg-3 { padding-top: 0.75rem !important; } - .pr-lg-3 { padding-right: 0.75rem !important; } - .pb-lg-3 { padding-bottom: 0.75rem !important; } - .pl-lg-3 { padding-left: 0.75rem !important; } - .px-lg-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-lg-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-lg-4 { padding: 1rem !important; } - .pt-lg-4 { padding-top: 1rem !important; } - .pr-lg-4 { padding-right: 1rem !important; } - .pb-lg-4 { padding-bottom: 1rem !important; } - .pl-lg-4 { padding-left: 1rem !important; } - .px-lg-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-lg-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-lg-5 { padding: 1.5rem !important; } - .pt-lg-5 { padding-top: 1.5rem !important; } - .pr-lg-5 { padding-right: 1.5rem !important; } - .pb-lg-5 { padding-bottom: 1.5rem !important; } - .pl-lg-5 { padding-left: 1.5rem !important; } - .px-lg-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-lg-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-lg-6 { padding: 2rem !important; } - .pt-lg-6 { padding-top: 2rem !important; } - .pr-lg-6 { padding-right: 2rem !important; } - .pb-lg-6 { padding-bottom: 2rem !important; } - .pl-lg-6 { padding-left: 2rem !important; } - .px-lg-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-lg-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-lg-7 { padding: 2.5rem !important; } - .pt-lg-7 { padding-top: 2.5rem !important; } - .pr-lg-7 { padding-right: 2.5rem !important; } - .pb-lg-7 { padding-bottom: 2.5rem !important; } - .pl-lg-7 { padding-left: 2.5rem !important; } - .px-lg-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-lg-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-lg-8 { padding: 3rem !important; } - .pt-lg-8 { padding-top: 3rem !important; } - .pr-lg-8 { padding-right: 3rem !important; } - .pb-lg-8 { padding-bottom: 3rem !important; } - .pl-lg-8 { padding-left: 3rem !important; } - .px-lg-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-lg-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-lg-9 { padding: 3.5rem !important; } - .pt-lg-9 { padding-top: 3.5rem !important; } - .pr-lg-9 { padding-right: 3.5rem !important; } - .pb-lg-9 { padding-bottom: 3.5rem !important; } - .pl-lg-9 { padding-left: 3.5rem !important; } - .px-lg-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-lg-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-lg-10 { padding: 4rem !important; } - .pt-lg-10 { padding-top: 4rem !important; } - .pr-lg-10 { padding-right: 4rem !important; } - .pb-lg-10 { padding-bottom: 4rem !important; } - .pl-lg-10 { padding-left: 4rem !important; } - .px-lg-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-lg-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 87.5rem) { .p-xl-0 { padding: 0 !important; } - .pt-xl-0 { padding-top: 0 !important; } - .pr-xl-0 { padding-right: 0 !important; } - .pb-xl-0 { padding-bottom: 0 !important; } - .pl-xl-0 { padding-left: 0 !important; } - .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xl-1 { padding: 0.25rem !important; } - .pt-xl-1 { padding-top: 0.25rem !important; } - .pr-xl-1 { padding-right: 0.25rem !important; } - .pb-xl-1 { padding-bottom: 0.25rem !important; } - .pl-xl-1 { padding-left: 0.25rem !important; } - .px-xl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xl-2 { padding: 0.5rem !important; } - .pt-xl-2 { padding-top: 0.5rem !important; } - .pr-xl-2 { padding-right: 0.5rem !important; } - .pb-xl-2 { padding-bottom: 0.5rem !important; } - .pl-xl-2 { padding-left: 0.5rem !important; } - .px-xl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xl-3 { padding: 0.75rem !important; } - .pt-xl-3 { padding-top: 0.75rem !important; } - .pr-xl-3 { padding-right: 0.75rem !important; } - .pb-xl-3 { padding-bottom: 0.75rem !important; } - .pl-xl-3 { padding-left: 0.75rem !important; } - .px-xl-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xl-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xl-4 { padding: 1rem !important; } - .pt-xl-4 { padding-top: 1rem !important; } - .pr-xl-4 { padding-right: 1rem !important; } - .pb-xl-4 { padding-bottom: 1rem !important; } - .pl-xl-4 { padding-left: 1rem !important; } - .px-xl-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xl-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xl-5 { padding: 1.5rem !important; } - .pt-xl-5 { padding-top: 1.5rem !important; } - .pr-xl-5 { padding-right: 1.5rem !important; } - .pb-xl-5 { padding-bottom: 1.5rem !important; } - .pl-xl-5 { padding-left: 1.5rem !important; } - .px-xl-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xl-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xl-6 { padding: 2rem !important; } - .pt-xl-6 { padding-top: 2rem !important; } - .pr-xl-6 { padding-right: 2rem !important; } - .pb-xl-6 { padding-bottom: 2rem !important; } - .pl-xl-6 { padding-left: 2rem !important; } - .px-xl-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xl-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xl-7 { padding: 2.5rem !important; } - .pt-xl-7 { padding-top: 2.5rem !important; } - .pr-xl-7 { padding-right: 2.5rem !important; } - .pb-xl-7 { padding-bottom: 2.5rem !important; } - .pl-xl-7 { padding-left: 2.5rem !important; } - .px-xl-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xl-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xl-8 { padding: 3rem !important; } - .pt-xl-8 { padding-top: 3rem !important; } - .pr-xl-8 { padding-right: 3rem !important; } - .pb-xl-8 { padding-bottom: 3rem !important; } - .pl-xl-8 { padding-left: 3rem !important; } - .px-xl-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xl-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xl-9 { padding: 3.5rem !important; } - .pt-xl-9 { padding-top: 3.5rem !important; } - .pr-xl-9 { padding-right: 3.5rem !important; } - .pb-xl-9 { padding-bottom: 3.5rem !important; } - .pl-xl-9 { padding-left: 3.5rem !important; } - .px-xl-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xl-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xl-10 { padding: 4rem !important; } - .pt-xl-10 { padding-top: 4rem !important; } - .pr-xl-10 { padding-right: 4rem !important; } - .pb-xl-10 { padding-bottom: 4rem !important; } - .pl-xl-10 { padding-left: 4rem !important; } - .px-xl-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xl-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media print { .site-footer, .site-button, #edit-this-page, #back-to-top, .site-nav, .main-header { display: none !important; } - .side-bar { width: 100%; height: auto; border-right: 0 !important; } - .site-header { border-bottom: 1px solid #eeebee; } - .site-title { font-size: 16px !important; font-weight: 700 !important; } - .text-small { font-size: 8pt !important; } - pre.highlight { border: 1px solid #eeebee; } - .main { max-width: none; margin-left: 0; } } -.dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); z-index: 1; padding-left: 0; list-style-type: none; } - -.dropdown:hover .dropdown-content { display: flex; flex-direction: column; } - -.dropdown-content a { flex-grow: 1; padding: 1rem; background: none; } - -.dropdown-content a:hover { background: #eeebee; } diff --git a/head/assets/css/style.css b/head/assets/css/style.css deleted file mode 100644 index bc2033b3e..000000000 --- a/head/assets/css/style.css +++ /dev/null @@ -1,2883 +0,0 @@ -/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */ -/** 1. Change the default font family in all browsers (opinionated). 2. Prevent adjustments of font size after orientation changes in IE and iOS. */ -html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } - -/** Remove the margin in all browsers (opinionated). */ -body { margin: 0; } - -/* HTML5 display definitions ========================================================================== */ -/** Add the correct display in IE 9-. 1. Add the correct display in Edge, IE, and Firefox. 2. Add the correct display in IE. */ -article, aside, details, figcaption, figure, footer, header, main, menu, nav, section { /* 1 */ display: block; } - -summary { display: list-item; } - -/** Add the correct display in IE 9-. */ -audio, canvas, progress, video { display: inline-block; } - -/** Add the correct display in iOS 4-7. */ -audio:not([controls]) { display: none; height: 0; } - -/** Add the correct vertical alignment in Chrome, Firefox, and Opera. */ -progress { vertical-align: baseline; } - -/** Add the correct display in IE 10-. 1. Add the correct display in IE. */ -template, [hidden] { display: none !important; } - -/* Links ========================================================================== */ -/** Remove the gray background on active links in IE 10. */ -a { background-color: transparent; /* 1 */ } - -/** Remove the outline on focused links when they are also active or hovered in all browsers (opinionated). */ -a:active, a:hover { outline-width: 0; } - -/* Text-level semantics ========================================================================== */ -/** 1. Remove the bottom border in Firefox 39-. 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ -abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } - -/** Prevent the duplicate application of `bolder` by the next rule in Safari 6. */ -b, strong { font-weight: inherit; } - -/** Add the correct font weight in Chrome, Edge, and Safari. */ -b, strong { font-weight: bolder; } - -/** Add the correct font style in Android 4.3-. */ -dfn { font-style: italic; } - -/** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */ -h1 { font-size: 2em; margin: 0.67em 0; } - -/** Add the correct background and color in IE 9-. */ -mark { background-color: #ff0; color: #000; } - -/** Add the correct font size in all browsers. */ -small { font-size: 80%; } - -/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } - -sub { bottom: -0.25em; } - -sup { top: -0.5em; } - -/* Embedded content ========================================================================== */ -/** Remove the border on images inside links in IE 10-. */ -img { border-style: none; } - -/** Hide the overflow in IE. */ -svg:not(:root) { overflow: hidden; } - -/* Grouping content ========================================================================== */ -/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ -code, kbd, pre, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } - -/** Add the correct margin in IE 8. */ -figure { margin: 1em 40px; } - -/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */ -hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } - -/* Forms ========================================================================== */ -/** 1. Change font properties to `inherit` in all browsers (opinionated). 2. Remove the margin in Firefox and Safari. */ -button, input, select, textarea { font: inherit; /* 1 */ margin: 0; /* 2 */ } - -/** Restore the font weight unset by the previous rule. */ -optgroup { font-weight: bold; } - -/** Show the overflow in IE. 1. Show the overflow in Edge. */ -button, input { /* 1 */ overflow: visible; } - -/** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */ -button, select { /* 1 */ text-transform: none; } - -/** 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` controls in Android 4. 2. Correct the inability to style clickable types in iOS and Safari. */ -button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; /* 2 */ } - -/** Remove the inner border and padding in Firefox. */ -button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } - -/** Restore the focus styles unset by the previous rule. */ -button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } - -/** Change the border, margin, and padding in all browsers (opinionated). */ -fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } - -/** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */ -legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } - -/** Remove the default vertical scrollbar in IE. */ -textarea { overflow: auto; } - -/** 1. Add the correct box sizing in IE 10-. 2. Remove the padding in IE 10-. */ -[type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } - -/** Correct the cursor style of increment and decrement buttons in Chrome. */ -[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } - -/** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ -[type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } - -/** Remove the inner padding and cancel buttons in Chrome and Safari on OS X. */ -[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/** Correct the text style of placeholders in Chrome, Edge, and Safari. */ -::-webkit-input-placeholder { color: inherit; opacity: 0.54; } - -/** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */ -::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } - -* { box-sizing: border-box; } - -input, select, textarea, button { font-family: inherit; font-size: inherit; line-height: inherit; } - -body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 14px; line-height: 1.5; color: #24292e; background-color: #fff; } - -a { color: #0366d6; text-decoration: none; } -a:hover { text-decoration: underline; } - -b, strong { font-weight: 600; } - -hr, .rule { height: 0; margin: 15px 0; overflow: hidden; background: transparent; border: 0; border-bottom: 1px solid #dfe2e5; } -hr::before, .rule::before { display: table; content: ""; } -hr::after, .rule::after { display: table; clear: both; content: ""; } - -table { border-spacing: 0; border-collapse: collapse; } - -td, th { padding: 0; } - -button { cursor: pointer; border-radius: 0; } - -[hidden][hidden] { display: none !important; } - -details summary { cursor: pointer; } -details:not([open]) > *:not(summary) { display: none !important; } - -h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 0; } - -h1 { font-size: 32px; font-weight: 600; } - -h2 { font-size: 24px; font-weight: 600; } - -h3 { font-size: 20px; font-weight: 600; } - -h4 { font-size: 16px; font-weight: 600; } - -h5 { font-size: 14px; font-weight: 600; } - -h6 { font-size: 12px; font-weight: 600; } - -p { margin-top: 0; margin-bottom: 10px; } - -small { font-size: 90%; } - -blockquote { margin: 0; } - -ul, ol { padding-left: 0; margin-top: 0; margin-bottom: 0; } - -ol ol, ul ol { list-style-type: lower-roman; } - -ul ul ol, ul ol ol, ol ul ol, ol ol ol { list-style-type: lower-alpha; } - -dd { margin-left: 0; } - -tt, code { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 12px; } - -pre { margin-top: 0; margin-bottom: 0; font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 12px; } - -.octicon { vertical-align: text-bottom; } - -/* Fade in an element */ -.anim-fade-in { animation-name: fade-in; animation-duration: 1s; animation-timing-function: ease-in-out; } -.anim-fade-in.fast { animation-duration: 300ms; } - -@keyframes fade-in { 0% { opacity: 0; } - 100% { opacity: 1; } } -/* Fade out an element */ -.anim-fade-out { animation-name: fade-out; animation-duration: 1s; animation-timing-function: ease-out; } -.anim-fade-out.fast { animation-duration: 0.3s; } - -@keyframes fade-out { 0% { opacity: 1; } - 100% { opacity: 0; } } -/* Fade in and slide up an element */ -.anim-fade-up { opacity: 0; animation-name: fade-up; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease-out; animation-delay: 1s; } - -@keyframes fade-up { 0% { opacity: 0.8; transform: translateY(100%); } - 100% { opacity: 1; transform: translateY(0); } } -/* Fade an element out and slide down */ -.anim-fade-down { animation-name: fade-down; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease-in; } - -@keyframes fade-down { 0% { opacity: 1; transform: translateY(0); } - 100% { opacity: 0.5; transform: translateY(100%); } } -/* Grow an element width from 0 to 100% */ -.anim-grow-x { width: 0%; animation-name: grow-x; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease; animation-delay: 0.5s; } - -@keyframes grow-x { to { width: 100%; } } -/* Shrink an element from 100% to 0% */ -.anim-shrink-x { animation-name: shrink-x; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease-in-out; animation-delay: 0.5s; } - -@keyframes shrink-x { to { width: 0%; } } -/* Fade in an element and scale it fast */ -.anim-scale-in { animation-name: scale-in; animation-duration: 0.15s; animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5); } - -@keyframes scale-in { 0% { opacity: 0; transform: scale(0.5); } - 100% { opacity: 1; transform: scale(1); } } -/* Pulse an element's opacity */ -.anim-pulse { animation-name: pulse; animation-duration: 2s; animation-timing-function: linear; animation-iteration-count: infinite; } - -@keyframes pulse { 0% { opacity: 0.3; } - 10% { opacity: 1; } - 100% { opacity: 0.3; } } -/* Pulse in an element */ -.anim-pulse-in { animation-name: pulse-in; animation-duration: 0.5s; } - -@keyframes pulse-in { 0% { transform: scale3d(1, 1, 1); } - 50% { transform: scale3d(1.1, 1.1, 1.1); } - 100% { transform: scale3d(1, 1, 1); } } -/* Increase scale of an element on hover */ -.hover-grow { transition: transform 0.3s; backface-visibility: hidden; } -.hover-grow:hover { transform: scale(1.025); } - -/* Add a gray border on all sides */ -.border { border: 1px #e1e4e8 solid !important; } - -/* Add a gray border to the left and right */ -.border-y { border-top: 1px #e1e4e8 solid !important; border-bottom: 1px #e1e4e8 solid !important; } - -/* Remove borders from all sides */ -.border-0 { border: 0 !important; } - -.border-dashed { border-style: dashed !important; } - -/* Use with .border to turn the border blue */ -.border-blue { border-color: #0366d6 !important; } - -/* Use with .border to turn the border blue-light */ -.border-blue-light { border-color: #c8e1ff !important; } - -/* Use with .border to turn the border green */ -.border-green { border-color: #34d058 !important; } - -/* Use with .border to turn the border green light */ -.border-green-light { border-color: #a2cbac !important; } - -/* Use with .border to turn the border red */ -.border-red { border-color: #d73a49 !important; } - -/* Use with .border to turn the border red-light */ -.border-red-light { border-color: #cea0a5 !important; } - -/* Use with .border to turn the border purple */ -.border-purple { border-color: #6f42c1 !important; } - -/* Use with .border to turn the border yellow */ -.border-yellow { border-color: #d9d0a5 !important; } - -/* Use with .border to turn the border gray-light */ -.border-gray-light { border-color: #eaecef !important; } - -/* Use with .border to turn the border gray-dark */ -.border-gray-dark { border-color: #d1d5da !important; } - -/* Use with .border to turn the border rgba black 0.15 */ -.border-black-fade { border-color: rgba(27, 31, 35, 0.15) !important; } - -/* Add a gray border */ -/* Add a gray border to the top */ -.border-top { border-top: 1px #e1e4e8 solid !important; } - -/* Add a gray border to the right */ -.border-right { border-right: 1px #e1e4e8 solid !important; } - -/* Add a gray border to the bottom */ -.border-bottom { border-bottom: 1px #e1e4e8 solid !important; } - -/* Add a gray border to the left */ -.border-left { border-left: 1px #e1e4e8 solid !important; } - -/* Remove the top border */ -.border-top-0 { border-top: 0 !important; } - -/* Remove the right border */ -.border-right-0 { border-right: 0 !important; } - -/* Remove the bottom border */ -.border-bottom-0 { border-bottom: 0 !important; } - -/* Remove the left border */ -.border-left-0 { border-left: 0 !important; } - -/* Remove the border-radius */ -.rounded-0 { border-radius: 0 !important; } - -/* Add a border-radius to all corners */ -.rounded-1 { border-radius: 3px !important; } - -/* Add a 2x border-radius to all corners */ -.rounded-2 { border-radius: 6px !important; } - -.rounded-top-0 { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; } - -.rounded-top-1 { border-top-left-radius: 3px !important; border-top-right-radius: 3px !important; } - -.rounded-top-2 { border-top-left-radius: 6px !important; border-top-right-radius: 6px !important; } - -.rounded-right-0 { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; } - -.rounded-right-1 { border-top-right-radius: 3px !important; border-bottom-right-radius: 3px !important; } - -.rounded-right-2 { border-top-right-radius: 6px !important; border-bottom-right-radius: 6px !important; } - -.rounded-bottom-0 { border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important; } - -.rounded-bottom-1 { border-bottom-right-radius: 3px !important; border-bottom-left-radius: 3px !important; } - -.rounded-bottom-2 { border-bottom-right-radius: 6px !important; border-bottom-left-radius: 6px !important; } - -.rounded-left-0 { border-bottom-left-radius: 0 !important; border-top-left-radius: 0 !important; } - -.rounded-left-1 { border-bottom-left-radius: 3px !important; border-top-left-radius: 3px !important; } - -.rounded-left-2 { border-bottom-left-radius: 6px !important; border-top-left-radius: 6px !important; } - -@media (min-width: 544px) { /* Add a gray border */ - /* Add a gray border to the top */ - .border-sm-top { border-top: 1px #e1e4e8 solid !important; } - /* Add a gray border to the right */ - .border-sm-right { border-right: 1px #e1e4e8 solid !important; } - /* Add a gray border to the bottom */ - .border-sm-bottom { border-bottom: 1px #e1e4e8 solid !important; } - /* Add a gray border to the left */ - .border-sm-left { border-left: 1px #e1e4e8 solid !important; } - /* Remove the top border */ - .border-sm-top-0 { border-top: 0 !important; } - /* Remove the right border */ - .border-sm-right-0 { border-right: 0 !important; } - /* Remove the bottom border */ - .border-sm-bottom-0 { border-bottom: 0 !important; } - /* Remove the left border */ - .border-sm-left-0 { border-left: 0 !important; } - /* Remove the border-radius */ - .rounded-sm-0 { border-radius: 0 !important; } - /* Add a border-radius to all corners */ - .rounded-sm-1 { border-radius: 3px !important; } - /* Add a 2x border-radius to all corners */ - .rounded-sm-2 { border-radius: 6px !important; } - .rounded-sm-top-0 { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; } - .rounded-sm-top-1 { border-top-left-radius: 3px !important; border-top-right-radius: 3px !important; } - .rounded-sm-top-2 { border-top-left-radius: 6px !important; border-top-right-radius: 6px !important; } - .rounded-sm-right-0 { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; } - .rounded-sm-right-1 { border-top-right-radius: 3px !important; border-bottom-right-radius: 3px !important; } - .rounded-sm-right-2 { border-top-right-radius: 6px !important; border-bottom-right-radius: 6px !important; } - .rounded-sm-bottom-0 { border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important; } - .rounded-sm-bottom-1 { border-bottom-right-radius: 3px !important; border-bottom-left-radius: 3px !important; } - .rounded-sm-bottom-2 { border-bottom-right-radius: 6px !important; border-bottom-left-radius: 6px !important; } - .rounded-sm-left-0 { border-bottom-left-radius: 0 !important; border-top-left-radius: 0 !important; } - .rounded-sm-left-1 { border-bottom-left-radius: 3px !important; border-top-left-radius: 3px !important; } - .rounded-sm-left-2 { border-bottom-left-radius: 6px !important; border-top-left-radius: 6px !important; } } -@media (min-width: 768px) { /* Add a gray border */ - /* Add a gray border to the top */ - .border-md-top { border-top: 1px #e1e4e8 solid !important; } - /* Add a gray border to the right */ - .border-md-right { border-right: 1px #e1e4e8 solid !important; } - /* Add a gray border to the bottom */ - .border-md-bottom { border-bottom: 1px #e1e4e8 solid !important; } - /* Add a gray border to the left */ - .border-md-left { border-left: 1px #e1e4e8 solid !important; } - /* Remove the top border */ - .border-md-top-0 { border-top: 0 !important; } - /* Remove the right border */ - .border-md-right-0 { border-right: 0 !important; } - /* Remove the bottom border */ - .border-md-bottom-0 { border-bottom: 0 !important; } - /* Remove the left border */ - .border-md-left-0 { border-left: 0 !important; } - /* Remove the border-radius */ - .rounded-md-0 { border-radius: 0 !important; } - /* Add a border-radius to all corners */ - .rounded-md-1 { border-radius: 3px !important; } - /* Add a 2x border-radius to all corners */ - .rounded-md-2 { border-radius: 6px !important; } - .rounded-md-top-0 { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; } - .rounded-md-top-1 { border-top-left-radius: 3px !important; border-top-right-radius: 3px !important; } - .rounded-md-top-2 { border-top-left-radius: 6px !important; border-top-right-radius: 6px !important; } - .rounded-md-right-0 { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; } - .rounded-md-right-1 { border-top-right-radius: 3px !important; border-bottom-right-radius: 3px !important; } - .rounded-md-right-2 { border-top-right-radius: 6px !important; border-bottom-right-radius: 6px !important; } - .rounded-md-bottom-0 { border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important; } - .rounded-md-bottom-1 { border-bottom-right-radius: 3px !important; border-bottom-left-radius: 3px !important; } - .rounded-md-bottom-2 { border-bottom-right-radius: 6px !important; border-bottom-left-radius: 6px !important; } - .rounded-md-left-0 { border-bottom-left-radius: 0 !important; border-top-left-radius: 0 !important; } - .rounded-md-left-1 { border-bottom-left-radius: 3px !important; border-top-left-radius: 3px !important; } - .rounded-md-left-2 { border-bottom-left-radius: 6px !important; border-top-left-radius: 6px !important; } } -@media (min-width: 1012px) { /* Add a gray border */ - /* Add a gray border to the top */ - .border-lg-top { border-top: 1px #e1e4e8 solid !important; } - /* Add a gray border to the right */ - .border-lg-right { border-right: 1px #e1e4e8 solid !important; } - /* Add a gray border to the bottom */ - .border-lg-bottom { border-bottom: 1px #e1e4e8 solid !important; } - /* Add a gray border to the left */ - .border-lg-left { border-left: 1px #e1e4e8 solid !important; } - /* Remove the top border */ - .border-lg-top-0 { border-top: 0 !important; } - /* Remove the right border */ - .border-lg-right-0 { border-right: 0 !important; } - /* Remove the bottom border */ - .border-lg-bottom-0 { border-bottom: 0 !important; } - /* Remove the left border */ - .border-lg-left-0 { border-left: 0 !important; } - /* Remove the border-radius */ - .rounded-lg-0 { border-radius: 0 !important; } - /* Add a border-radius to all corners */ - .rounded-lg-1 { border-radius: 3px !important; } - /* Add a 2x border-radius to all corners */ - .rounded-lg-2 { border-radius: 6px !important; } - .rounded-lg-top-0 { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; } - .rounded-lg-top-1 { border-top-left-radius: 3px !important; border-top-right-radius: 3px !important; } - .rounded-lg-top-2 { border-top-left-radius: 6px !important; border-top-right-radius: 6px !important; } - .rounded-lg-right-0 { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; } - .rounded-lg-right-1 { border-top-right-radius: 3px !important; border-bottom-right-radius: 3px !important; } - .rounded-lg-right-2 { border-top-right-radius: 6px !important; border-bottom-right-radius: 6px !important; } - .rounded-lg-bottom-0 { border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important; } - .rounded-lg-bottom-1 { border-bottom-right-radius: 3px !important; border-bottom-left-radius: 3px !important; } - .rounded-lg-bottom-2 { border-bottom-right-radius: 6px !important; border-bottom-left-radius: 6px !important; } - .rounded-lg-left-0 { border-bottom-left-radius: 0 !important; border-top-left-radius: 0 !important; } - .rounded-lg-left-1 { border-bottom-left-radius: 3px !important; border-top-left-radius: 3px !important; } - .rounded-lg-left-2 { border-bottom-left-radius: 6px !important; border-top-left-radius: 6px !important; } } -@media (min-width: 1280px) { /* Add a gray border */ - /* Add a gray border to the top */ - .border-xl-top { border-top: 1px #e1e4e8 solid !important; } - /* Add a gray border to the right */ - .border-xl-right { border-right: 1px #e1e4e8 solid !important; } - /* Add a gray border to the bottom */ - .border-xl-bottom { border-bottom: 1px #e1e4e8 solid !important; } - /* Add a gray border to the left */ - .border-xl-left { border-left: 1px #e1e4e8 solid !important; } - /* Remove the top border */ - .border-xl-top-0 { border-top: 0 !important; } - /* Remove the right border */ - .border-xl-right-0 { border-right: 0 !important; } - /* Remove the bottom border */ - .border-xl-bottom-0 { border-bottom: 0 !important; } - /* Remove the left border */ - .border-xl-left-0 { border-left: 0 !important; } - /* Remove the border-radius */ - .rounded-xl-0 { border-radius: 0 !important; } - /* Add a border-radius to all corners */ - .rounded-xl-1 { border-radius: 3px !important; } - /* Add a 2x border-radius to all corners */ - .rounded-xl-2 { border-radius: 6px !important; } - .rounded-xl-top-0 { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; } - .rounded-xl-top-1 { border-top-left-radius: 3px !important; border-top-right-radius: 3px !important; } - .rounded-xl-top-2 { border-top-left-radius: 6px !important; border-top-right-radius: 6px !important; } - .rounded-xl-right-0 { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; } - .rounded-xl-right-1 { border-top-right-radius: 3px !important; border-bottom-right-radius: 3px !important; } - .rounded-xl-right-2 { border-top-right-radius: 6px !important; border-bottom-right-radius: 6px !important; } - .rounded-xl-bottom-0 { border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important; } - .rounded-xl-bottom-1 { border-bottom-right-radius: 3px !important; border-bottom-left-radius: 3px !important; } - .rounded-xl-bottom-2 { border-bottom-right-radius: 6px !important; border-bottom-left-radius: 6px !important; } - .rounded-xl-left-0 { border-bottom-left-radius: 0 !important; border-top-left-radius: 0 !important; } - .rounded-xl-left-1 { border-bottom-left-radius: 3px !important; border-top-left-radius: 3px !important; } - .rounded-xl-left-2 { border-bottom-left-radius: 6px !important; border-top-left-radius: 6px !important; } } -/* Add a 50% border-radius to make something into a circle */ -.circle { border-radius: 50% !important; } - -.box-shadow { box-shadow: 0 1px 1px rgba(27, 31, 35, 0.1) !important; } - -.box-shadow-medium { box-shadow: 0 1px 5px rgba(27, 31, 35, 0.15) !important; } - -.box-shadow-large { box-shadow: 0 1px 15px rgba(27, 31, 35, 0.15) !important; } - -.box-shadow-extra-large { box-shadow: 0 10px 50px rgba(27, 31, 35, 0.07) !important; } - -.box-shadow-none { box-shadow: none !important; } - -/* Set the background to $bg-white */ -.bg-white { background-color: #fff !important; } - -/* Set the background to $bg-blue */ -.bg-blue { background-color: #0366d6 !important; } - -/* Set the background to $bg-blue-light */ -.bg-blue-light { background-color: #f1f8ff !important; } - -/* Set the background to $bg-gray-dark */ -.bg-gray-dark { background-color: #24292e !important; } - -/* Set the background to $bg-gray */ -.bg-gray { background-color: #f6f8fa !important; } - -/* Set the background to $bg-gray-light */ -.bg-gray-light { background-color: #fafbfc !important; } - -/* Set the background to $bg-green */ -.bg-green { background-color: #28a745 !important; } - -/* Set the background to $bg-green-light */ -.bg-green-light { background-color: #dcffe4 !important; } - -/* Set the background to $bg-red */ -.bg-red { background-color: #d73a49 !important; } - -/* Set the background to $bg-red-light */ -.bg-red-light { background-color: #ffdce0 !important; } - -/* Set the background to $bg-yellow */ -.bg-yellow { background-color: #ffd33d !important; } - -/* Set the background to $bg-yellow-light */ -.bg-yellow-light { background-color: #fff5b1 !important; } - -/* Set the background to $bg-purple */ -.bg-purple { background-color: #6f42c1 !important; } - -/* Set the background to $bg-purple-light */ -.bg-purple-light { background-color: #f5f0ff !important; } - -.bg-shade-gradient { background-image: linear-gradient(180deg, rgba(27, 31, 35, 0.065), rgba(27, 31, 35, 0)) !important; background-repeat: no-repeat !important; background-size: 100% 200px !important; } - -/* Set the text color to $text-blue */ -.text-blue { color: #0366d6 !important; } - -/* Set the text color to $text-red */ -.text-red { color: #cb2431 !important; } - -/* Set the text color to $text-gray-light */ -.text-gray-light { color: #6a737d !important; } - -/* Set the text color to $text-gray */ -.text-gray { color: #586069 !important; } - -/* Set the text color to $text-gray-dark */ -.text-gray-dark { color: #24292e !important; } - -/* Set the text color to $text-green */ -.text-green { color: #28a745 !important; } - -/* Set the text color to $text-orange */ -.text-orange { color: #a04100 !important; } - -/* Set the text color to $text-orange-light */ -.text-orange-light { color: #e36209 !important; } - -/* Set the text color to $text-purple */ -.text-purple { color: #6f42c1 !important; } - -/* Set the text color to $text-white */ -.text-white { color: #fff !important; } - -/* Set the text color to inherit */ -.text-inherit { color: inherit !important; } - -.text-pending { color: #b08800 !important; } - -.bg-pending { color: #dbab09 !important; } - -.link-gray { color: #586069 !important; } -.link-gray:hover { color: #0366d6 !important; } - -.link-gray-dark { color: #24292e !important; } -.link-gray-dark:hover { color: #0366d6 !important; } - -/* Set the link color to $text-blue on hover Useful when you want only part of a link to turn blue on hover */ -.link-hover-blue:hover { color: #0366d6 !important; } - -/* Make a link $text-gray, then $text-blue on hover and removes the underline */ -.muted-link { color: #586069 !important; } -.muted-link:hover { color: #0366d6 !important; text-decoration: none; } - -.details-overlay[open] > summary::before { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 80; display: block; cursor: default; content: " "; background: transparent; } - -.details-overlay-dark[open] > summary::before { z-index: 99; background: rgba(27, 31, 35, 0.5); } - -.flex-row { flex-direction: row !important; } - -.flex-row-reverse { flex-direction: row-reverse !important; } - -.flex-column { flex-direction: column !important; } - -.flex-wrap { flex-wrap: wrap !important; } - -.flex-nowrap { flex-wrap: nowrap !important; } - -.flex-justify-start { justify-content: flex-start !important; } - -.flex-justify-end { justify-content: flex-end !important; } - -.flex-justify-center { justify-content: center !important; } - -.flex-justify-between { justify-content: space-between !important; } - -.flex-justify-around { justify-content: space-around !important; } - -.flex-items-start { align-items: flex-start !important; } - -.flex-items-end { align-items: flex-end !important; } - -.flex-items-center { align-items: center !important; } - -.flex-items-baseline { align-items: baseline !important; } - -.flex-items-stretch { align-items: stretch !important; } - -.flex-content-start { align-content: flex-start !important; } - -.flex-content-end { align-content: flex-end !important; } - -.flex-content-center { align-content: center !important; } - -.flex-content-between { align-content: space-between !important; } - -.flex-content-around { align-content: space-around !important; } - -.flex-content-stretch { align-content: stretch !important; } - -.flex-auto { flex: 1 1 auto !important; } - -.flex-shrink-0 { flex-shrink: 0 !important; } - -.flex-self-auto { align-self: auto !important; } - -.flex-self-start { align-self: flex-start !important; } - -.flex-self-end { align-self: flex-end !important; } - -.flex-self-center { align-self: center !important; } - -.flex-self-baseline { align-self: baseline !important; } - -.flex-self-stretch { align-self: stretch !important; } - -.flex-item-equal { flex-grow: 1; flex-basis: 0; } - -@media (min-width: 544px) { .flex-sm-row { flex-direction: row !important; } - .flex-sm-row-reverse { flex-direction: row-reverse !important; } - .flex-sm-column { flex-direction: column !important; } - .flex-sm-wrap { flex-wrap: wrap !important; } - .flex-sm-nowrap { flex-wrap: nowrap !important; } - .flex-sm-justify-start { justify-content: flex-start !important; } - .flex-sm-justify-end { justify-content: flex-end !important; } - .flex-sm-justify-center { justify-content: center !important; } - .flex-sm-justify-between { justify-content: space-between !important; } - .flex-sm-justify-around { justify-content: space-around !important; } - .flex-sm-items-start { align-items: flex-start !important; } - .flex-sm-items-end { align-items: flex-end !important; } - .flex-sm-items-center { align-items: center !important; } - .flex-sm-items-baseline { align-items: baseline !important; } - .flex-sm-items-stretch { align-items: stretch !important; } - .flex-sm-content-start { align-content: flex-start !important; } - .flex-sm-content-end { align-content: flex-end !important; } - .flex-sm-content-center { align-content: center !important; } - .flex-sm-content-between { align-content: space-between !important; } - .flex-sm-content-around { align-content: space-around !important; } - .flex-sm-content-stretch { align-content: stretch !important; } - .flex-sm-auto { flex: 1 1 auto !important; } - .flex-sm-shrink-0 { flex-shrink: 0 !important; } - .flex-sm-self-auto { align-self: auto !important; } - .flex-sm-self-start { align-self: flex-start !important; } - .flex-sm-self-end { align-self: flex-end !important; } - .flex-sm-self-center { align-self: center !important; } - .flex-sm-self-baseline { align-self: baseline !important; } - .flex-sm-self-stretch { align-self: stretch !important; } - .flex-sm-item-equal { flex-grow: 1; flex-basis: 0; } } -@media (min-width: 768px) { .flex-md-row { flex-direction: row !important; } - .flex-md-row-reverse { flex-direction: row-reverse !important; } - .flex-md-column { flex-direction: column !important; } - .flex-md-wrap { flex-wrap: wrap !important; } - .flex-md-nowrap { flex-wrap: nowrap !important; } - .flex-md-justify-start { justify-content: flex-start !important; } - .flex-md-justify-end { justify-content: flex-end !important; } - .flex-md-justify-center { justify-content: center !important; } - .flex-md-justify-between { justify-content: space-between !important; } - .flex-md-justify-around { justify-content: space-around !important; } - .flex-md-items-start { align-items: flex-start !important; } - .flex-md-items-end { align-items: flex-end !important; } - .flex-md-items-center { align-items: center !important; } - .flex-md-items-baseline { align-items: baseline !important; } - .flex-md-items-stretch { align-items: stretch !important; } - .flex-md-content-start { align-content: flex-start !important; } - .flex-md-content-end { align-content: flex-end !important; } - .flex-md-content-center { align-content: center !important; } - .flex-md-content-between { align-content: space-between !important; } - .flex-md-content-around { align-content: space-around !important; } - .flex-md-content-stretch { align-content: stretch !important; } - .flex-md-auto { flex: 1 1 auto !important; } - .flex-md-shrink-0 { flex-shrink: 0 !important; } - .flex-md-self-auto { align-self: auto !important; } - .flex-md-self-start { align-self: flex-start !important; } - .flex-md-self-end { align-self: flex-end !important; } - .flex-md-self-center { align-self: center !important; } - .flex-md-self-baseline { align-self: baseline !important; } - .flex-md-self-stretch { align-self: stretch !important; } - .flex-md-item-equal { flex-grow: 1; flex-basis: 0; } } -@media (min-width: 1012px) { .flex-lg-row { flex-direction: row !important; } - .flex-lg-row-reverse { flex-direction: row-reverse !important; } - .flex-lg-column { flex-direction: column !important; } - .flex-lg-wrap { flex-wrap: wrap !important; } - .flex-lg-nowrap { flex-wrap: nowrap !important; } - .flex-lg-justify-start { justify-content: flex-start !important; } - .flex-lg-justify-end { justify-content: flex-end !important; } - .flex-lg-justify-center { justify-content: center !important; } - .flex-lg-justify-between { justify-content: space-between !important; } - .flex-lg-justify-around { justify-content: space-around !important; } - .flex-lg-items-start { align-items: flex-start !important; } - .flex-lg-items-end { align-items: flex-end !important; } - .flex-lg-items-center { align-items: center !important; } - .flex-lg-items-baseline { align-items: baseline !important; } - .flex-lg-items-stretch { align-items: stretch !important; } - .flex-lg-content-start { align-content: flex-start !important; } - .flex-lg-content-end { align-content: flex-end !important; } - .flex-lg-content-center { align-content: center !important; } - .flex-lg-content-between { align-content: space-between !important; } - .flex-lg-content-around { align-content: space-around !important; } - .flex-lg-content-stretch { align-content: stretch !important; } - .flex-lg-auto { flex: 1 1 auto !important; } - .flex-lg-shrink-0 { flex-shrink: 0 !important; } - .flex-lg-self-auto { align-self: auto !important; } - .flex-lg-self-start { align-self: flex-start !important; } - .flex-lg-self-end { align-self: flex-end !important; } - .flex-lg-self-center { align-self: center !important; } - .flex-lg-self-baseline { align-self: baseline !important; } - .flex-lg-self-stretch { align-self: stretch !important; } - .flex-lg-item-equal { flex-grow: 1; flex-basis: 0; } } -@media (min-width: 1280px) { .flex-xl-row { flex-direction: row !important; } - .flex-xl-row-reverse { flex-direction: row-reverse !important; } - .flex-xl-column { flex-direction: column !important; } - .flex-xl-wrap { flex-wrap: wrap !important; } - .flex-xl-nowrap { flex-wrap: nowrap !important; } - .flex-xl-justify-start { justify-content: flex-start !important; } - .flex-xl-justify-end { justify-content: flex-end !important; } - .flex-xl-justify-center { justify-content: center !important; } - .flex-xl-justify-between { justify-content: space-between !important; } - .flex-xl-justify-around { justify-content: space-around !important; } - .flex-xl-items-start { align-items: flex-start !important; } - .flex-xl-items-end { align-items: flex-end !important; } - .flex-xl-items-center { align-items: center !important; } - .flex-xl-items-baseline { align-items: baseline !important; } - .flex-xl-items-stretch { align-items: stretch !important; } - .flex-xl-content-start { align-content: flex-start !important; } - .flex-xl-content-end { align-content: flex-end !important; } - .flex-xl-content-center { align-content: center !important; } - .flex-xl-content-between { align-content: space-between !important; } - .flex-xl-content-around { align-content: space-around !important; } - .flex-xl-content-stretch { align-content: stretch !important; } - .flex-xl-auto { flex: 1 1 auto !important; } - .flex-xl-shrink-0 { flex-shrink: 0 !important; } - .flex-xl-self-auto { align-self: auto !important; } - .flex-xl-self-start { align-self: flex-start !important; } - .flex-xl-self-end { align-self: flex-end !important; } - .flex-xl-self-center { align-self: center !important; } - .flex-xl-self-baseline { align-self: baseline !important; } - .flex-xl-self-stretch { align-self: stretch !important; } - .flex-xl-item-equal { flex-grow: 1; flex-basis: 0; } } -/* Set position to static */ -.position-static { position: static !important; } - -/* Set position to relative */ -.position-relative { position: relative !important; } - -/* Set position to absolute */ -.position-absolute { position: absolute !important; } - -/* Set position to fixed */ -.position-fixed { position: fixed !important; } - -/* Set top 0 */ -.top-0 { top: 0 !important; } - -/* Set right 0 */ -.right-0 { right: 0 !important; } - -/* Set bottom 0 */ -.bottom-0 { bottom: 0 !important; } - -/* Set left 0 */ -.left-0 { left: 0 !important; } - -/* Vertical align middle */ -.v-align-middle { vertical-align: middle !important; } - -/* Vertical align top */ -.v-align-top { vertical-align: top !important; } - -/* Vertical align bottom */ -.v-align-bottom { vertical-align: bottom !important; } - -/* Vertical align to the top of the text */ -.v-align-text-top { vertical-align: text-top !important; } - -/* Vertical align to the bottom of the text */ -.v-align-text-bottom { vertical-align: text-bottom !important; } - -/* Vertical align to the parent's baseline */ -.v-align-baseline { vertical-align: baseline !important; } - -/* Set the overflow hidden */ -.overflow-hidden { overflow: hidden !important; } - -/* Set the overflow scroll */ -.overflow-scroll { overflow: scroll !important; } - -/* Set the overflow auto */ -.overflow-auto { overflow: auto !important; } - -/* Clear floats around the element */ -.clearfix::before { display: table; content: ""; } -.clearfix::after { display: table; clear: both; content: ""; } - -/* Float to the left */ -.float-left { float: left !important; } - -/* Float to the right */ -.float-right { float: right !important; } - -/* No float */ -.float-none { float: none !important; } - -@media (min-width: 544px) { /* Float to the left */ - .float-sm-left { float: left !important; } - /* Float to the right */ - .float-sm-right { float: right !important; } - /* No float */ - .float-sm-none { float: none !important; } } -@media (min-width: 768px) { /* Float to the left */ - .float-md-left { float: left !important; } - /* Float to the right */ - .float-md-right { float: right !important; } - /* No float */ - .float-md-none { float: none !important; } } -@media (min-width: 1012px) { /* Float to the left */ - .float-lg-left { float: left !important; } - /* Float to the right */ - .float-lg-right { float: right !important; } - /* No float */ - .float-lg-none { float: none !important; } } -@media (min-width: 1280px) { /* Float to the left */ - .float-xl-left { float: left !important; } - /* Float to the right */ - .float-xl-right { float: right !important; } - /* No float */ - .float-xl-none { float: none !important; } } -/* Max width 100% */ -.width-fit { max-width: 100% !important; } - -/* Set the width to 100% */ -.width-full { width: 100% !important; } - -/* Max height 100% */ -.height-fit { max-height: 100% !important; } - -/* Set the height to 100% */ -.height-full { height: 100% !important; } - -/* Remove min-width from element */ -.min-width-0 { min-width: 0 !important; } - -/* Set the direction to rtl */ -.direction-rtl { direction: rtl !important; } - -/* Set the direction to ltr */ -.direction-ltr { direction: ltr !important; } - -@media (min-width: 544px) { /* Set the direction to rtl */ - .direction-sm-rtl { direction: rtl !important; } - /* Set the direction to ltr */ - .direction-sm-ltr { direction: ltr !important; } } -@media (min-width: 768px) { /* Set the direction to rtl */ - .direction-md-rtl { direction: rtl !important; } - /* Set the direction to ltr */ - .direction-md-ltr { direction: ltr !important; } } -@media (min-width: 1012px) { /* Set the direction to rtl */ - .direction-lg-rtl { direction: rtl !important; } - /* Set the direction to ltr */ - .direction-lg-ltr { direction: ltr !important; } } -@media (min-width: 1280px) { /* Set the direction to rtl */ - .direction-xl-rtl { direction: rtl !important; } - /* Set the direction to ltr */ - .direction-xl-ltr { direction: ltr !important; } } -/* Set a $size margin to all sides at $breakpoint */ -.m-0 { margin: 0 !important; } - -/* Set a $size margin on the top at $breakpoint */ -.mt-0 { margin-top: 0 !important; } - -/* Set a $size margin on the right at $breakpoint */ -.mr-0 { margin-right: 0 !important; } - -/* Set a $size margin on the bottom at $breakpoint */ -.mb-0 { margin-bottom: 0 !important; } - -/* Set a $size margin on the left at $breakpoint */ -.ml-0 { margin-left: 0 !important; } - -/* Set a $size margin on the left & right at $breakpoint */ -.mx-0 { margin-right: 0 !important; margin-left: 0 !important; } - -/* Set a $size margin on the top & bottom at $breakpoint */ -.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - -/* Set a $size margin to all sides at $breakpoint */ -.m-1 { margin: 4px !important; } - -/* Set a $size margin on the top at $breakpoint */ -.mt-1 { margin-top: 4px !important; } - -/* Set a $size margin on the right at $breakpoint */ -.mr-1 { margin-right: 4px !important; } - -/* Set a $size margin on the bottom at $breakpoint */ -.mb-1 { margin-bottom: 4px !important; } - -/* Set a $size margin on the left at $breakpoint */ -.ml-1 { margin-left: 4px !important; } - -/* Set a negative $size margin on top at $breakpoint */ -.mt-n1 { margin-top: -4px !important; } - -/* Set a negative $size margin on the right at $breakpoint */ -.mr-n1 { margin-right: -4px !important; } - -/* Set a negative $size margin on the bottom at $breakpoint */ -.mb-n1 { margin-bottom: -4px !important; } - -/* Set a negative $size margin on the left at $breakpoint */ -.ml-n1 { margin-left: -4px !important; } - -/* Set a $size margin on the left & right at $breakpoint */ -.mx-1 { margin-right: 4px !important; margin-left: 4px !important; } - -/* Set a $size margin on the top & bottom at $breakpoint */ -.my-1 { margin-top: 4px !important; margin-bottom: 4px !important; } - -/* Set a $size margin to all sides at $breakpoint */ -.m-2 { margin: 8px !important; } - -/* Set a $size margin on the top at $breakpoint */ -.mt-2 { margin-top: 8px !important; } - -/* Set a $size margin on the right at $breakpoint */ -.mr-2 { margin-right: 8px !important; } - -/* Set a $size margin on the bottom at $breakpoint */ -.mb-2 { margin-bottom: 8px !important; } - -/* Set a $size margin on the left at $breakpoint */ -.ml-2 { margin-left: 8px !important; } - -/* Set a negative $size margin on top at $breakpoint */ -.mt-n2 { margin-top: -8px !important; } - -/* Set a negative $size margin on the right at $breakpoint */ -.mr-n2 { margin-right: -8px !important; } - -/* Set a negative $size margin on the bottom at $breakpoint */ -.mb-n2 { margin-bottom: -8px !important; } - -/* Set a negative $size margin on the left at $breakpoint */ -.ml-n2 { margin-left: -8px !important; } - -/* Set a $size margin on the left & right at $breakpoint */ -.mx-2 { margin-right: 8px !important; margin-left: 8px !important; } - -/* Set a $size margin on the top & bottom at $breakpoint */ -.my-2 { margin-top: 8px !important; margin-bottom: 8px !important; } - -/* Set a $size margin to all sides at $breakpoint */ -.m-3 { margin: 16px !important; } - -/* Set a $size margin on the top at $breakpoint */ -.mt-3 { margin-top: 16px !important; } - -/* Set a $size margin on the right at $breakpoint */ -.mr-3 { margin-right: 16px !important; } - -/* Set a $size margin on the bottom at $breakpoint */ -.mb-3 { margin-bottom: 16px !important; } - -/* Set a $size margin on the left at $breakpoint */ -.ml-3 { margin-left: 16px !important; } - -/* Set a negative $size margin on top at $breakpoint */ -.mt-n3 { margin-top: -16px !important; } - -/* Set a negative $size margin on the right at $breakpoint */ -.mr-n3 { margin-right: -16px !important; } - -/* Set a negative $size margin on the bottom at $breakpoint */ -.mb-n3 { margin-bottom: -16px !important; } - -/* Set a negative $size margin on the left at $breakpoint */ -.ml-n3 { margin-left: -16px !important; } - -/* Set a $size margin on the left & right at $breakpoint */ -.mx-3 { margin-right: 16px !important; margin-left: 16px !important; } - -/* Set a $size margin on the top & bottom at $breakpoint */ -.my-3 { margin-top: 16px !important; margin-bottom: 16px !important; } - -/* Set a $size margin to all sides at $breakpoint */ -.m-4 { margin: 24px !important; } - -/* Set a $size margin on the top at $breakpoint */ -.mt-4 { margin-top: 24px !important; } - -/* Set a $size margin on the right at $breakpoint */ -.mr-4 { margin-right: 24px !important; } - -/* Set a $size margin on the bottom at $breakpoint */ -.mb-4 { margin-bottom: 24px !important; } - -/* Set a $size margin on the left at $breakpoint */ -.ml-4 { margin-left: 24px !important; } - -/* Set a negative $size margin on top at $breakpoint */ -.mt-n4 { margin-top: -24px !important; } - -/* Set a negative $size margin on the right at $breakpoint */ -.mr-n4 { margin-right: -24px !important; } - -/* Set a negative $size margin on the bottom at $breakpoint */ -.mb-n4 { margin-bottom: -24px !important; } - -/* Set a negative $size margin on the left at $breakpoint */ -.ml-n4 { margin-left: -24px !important; } - -/* Set a $size margin on the left & right at $breakpoint */ -.mx-4 { margin-right: 24px !important; margin-left: 24px !important; } - -/* Set a $size margin on the top & bottom at $breakpoint */ -.my-4 { margin-top: 24px !important; margin-bottom: 24px !important; } - -/* Set a $size margin to all sides at $breakpoint */ -.m-5 { margin: 32px !important; } - -/* Set a $size margin on the top at $breakpoint */ -.mt-5 { margin-top: 32px !important; } - -/* Set a $size margin on the right at $breakpoint */ -.mr-5 { margin-right: 32px !important; } - -/* Set a $size margin on the bottom at $breakpoint */ -.mb-5 { margin-bottom: 32px !important; } - -/* Set a $size margin on the left at $breakpoint */ -.ml-5 { margin-left: 32px !important; } - -/* Set a negative $size margin on top at $breakpoint */ -.mt-n5 { margin-top: -32px !important; } - -/* Set a negative $size margin on the right at $breakpoint */ -.mr-n5 { margin-right: -32px !important; } - -/* Set a negative $size margin on the bottom at $breakpoint */ -.mb-n5 { margin-bottom: -32px !important; } - -/* Set a negative $size margin on the left at $breakpoint */ -.ml-n5 { margin-left: -32px !important; } - -/* Set a $size margin on the left & right at $breakpoint */ -.mx-5 { margin-right: 32px !important; margin-left: 32px !important; } - -/* Set a $size margin on the top & bottom at $breakpoint */ -.my-5 { margin-top: 32px !important; margin-bottom: 32px !important; } - -/* Set a $size margin to all sides at $breakpoint */ -.m-6 { margin: 40px !important; } - -/* Set a $size margin on the top at $breakpoint */ -.mt-6 { margin-top: 40px !important; } - -/* Set a $size margin on the right at $breakpoint */ -.mr-6 { margin-right: 40px !important; } - -/* Set a $size margin on the bottom at $breakpoint */ -.mb-6 { margin-bottom: 40px !important; } - -/* Set a $size margin on the left at $breakpoint */ -.ml-6 { margin-left: 40px !important; } - -/* Set a negative $size margin on top at $breakpoint */ -.mt-n6 { margin-top: -40px !important; } - -/* Set a negative $size margin on the right at $breakpoint */ -.mr-n6 { margin-right: -40px !important; } - -/* Set a negative $size margin on the bottom at $breakpoint */ -.mb-n6 { margin-bottom: -40px !important; } - -/* Set a negative $size margin on the left at $breakpoint */ -.ml-n6 { margin-left: -40px !important; } - -/* Set a $size margin on the left & right at $breakpoint */ -.mx-6 { margin-right: 40px !important; margin-left: 40px !important; } - -/* Set a $size margin on the top & bottom at $breakpoint */ -.my-6 { margin-top: 40px !important; margin-bottom: 40px !important; } - -/* responsive horizontal auto margins */ -.mx-auto { margin-right: auto !important; margin-left: auto !important; } - -@media (min-width: 544px) { /* Set a $size margin to all sides at $breakpoint */ - .m-sm-0 { margin: 0 !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-sm-0 { margin-top: 0 !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-sm-0 { margin-right: 0 !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-sm-0 { margin-bottom: 0 !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-sm-0 { margin-left: 0 !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-sm-1 { margin: 4px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-sm-1 { margin-top: 4px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-sm-1 { margin-right: 4px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-sm-1 { margin-bottom: 4px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-sm-1 { margin-left: 4px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-sm-n1 { margin-top: -4px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-sm-n1 { margin-right: -4px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-sm-n1 { margin-bottom: -4px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-sm-n1 { margin-left: -4px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-sm-1 { margin-right: 4px !important; margin-left: 4px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-sm-1 { margin-top: 4px !important; margin-bottom: 4px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-sm-2 { margin: 8px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-sm-2 { margin-top: 8px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-sm-2 { margin-right: 8px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-sm-2 { margin-bottom: 8px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-sm-2 { margin-left: 8px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-sm-n2 { margin-top: -8px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-sm-n2 { margin-right: -8px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-sm-n2 { margin-bottom: -8px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-sm-n2 { margin-left: -8px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-sm-2 { margin-right: 8px !important; margin-left: 8px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-sm-2 { margin-top: 8px !important; margin-bottom: 8px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-sm-3 { margin: 16px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-sm-3 { margin-top: 16px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-sm-3 { margin-right: 16px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-sm-3 { margin-bottom: 16px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-sm-3 { margin-left: 16px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-sm-n3 { margin-top: -16px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-sm-n3 { margin-right: -16px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-sm-n3 { margin-bottom: -16px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-sm-n3 { margin-left: -16px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-sm-3 { margin-right: 16px !important; margin-left: 16px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-sm-3 { margin-top: 16px !important; margin-bottom: 16px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-sm-4 { margin: 24px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-sm-4 { margin-top: 24px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-sm-4 { margin-right: 24px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-sm-4 { margin-bottom: 24px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-sm-4 { margin-left: 24px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-sm-n4 { margin-top: -24px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-sm-n4 { margin-right: -24px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-sm-n4 { margin-bottom: -24px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-sm-n4 { margin-left: -24px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-sm-4 { margin-right: 24px !important; margin-left: 24px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-sm-4 { margin-top: 24px !important; margin-bottom: 24px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-sm-5 { margin: 32px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-sm-5 { margin-top: 32px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-sm-5 { margin-right: 32px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-sm-5 { margin-bottom: 32px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-sm-5 { margin-left: 32px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-sm-n5 { margin-top: -32px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-sm-n5 { margin-right: -32px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-sm-n5 { margin-bottom: -32px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-sm-n5 { margin-left: -32px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-sm-5 { margin-right: 32px !important; margin-left: 32px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-sm-5 { margin-top: 32px !important; margin-bottom: 32px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-sm-6 { margin: 40px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-sm-6 { margin-top: 40px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-sm-6 { margin-right: 40px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-sm-6 { margin-bottom: 40px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-sm-6 { margin-left: 40px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-sm-n6 { margin-top: -40px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-sm-n6 { margin-right: -40px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-sm-n6 { margin-bottom: -40px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-sm-n6 { margin-left: -40px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-sm-6 { margin-right: 40px !important; margin-left: 40px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-sm-6 { margin-top: 40px !important; margin-bottom: 40px !important; } - /* responsive horizontal auto margins */ - .mx-sm-auto { margin-right: auto !important; margin-left: auto !important; } } -@media (min-width: 768px) { /* Set a $size margin to all sides at $breakpoint */ - .m-md-0 { margin: 0 !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-md-0 { margin-top: 0 !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-md-0 { margin-right: 0 !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-md-0 { margin-bottom: 0 !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-md-0 { margin-left: 0 !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-md-1 { margin: 4px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-md-1 { margin-top: 4px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-md-1 { margin-right: 4px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-md-1 { margin-bottom: 4px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-md-1 { margin-left: 4px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-md-n1 { margin-top: -4px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-md-n1 { margin-right: -4px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-md-n1 { margin-bottom: -4px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-md-n1 { margin-left: -4px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-md-1 { margin-right: 4px !important; margin-left: 4px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-md-1 { margin-top: 4px !important; margin-bottom: 4px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-md-2 { margin: 8px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-md-2 { margin-top: 8px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-md-2 { margin-right: 8px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-md-2 { margin-bottom: 8px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-md-2 { margin-left: 8px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-md-n2 { margin-top: -8px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-md-n2 { margin-right: -8px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-md-n2 { margin-bottom: -8px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-md-n2 { margin-left: -8px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-md-2 { margin-right: 8px !important; margin-left: 8px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-md-2 { margin-top: 8px !important; margin-bottom: 8px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-md-3 { margin: 16px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-md-3 { margin-top: 16px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-md-3 { margin-right: 16px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-md-3 { margin-bottom: 16px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-md-3 { margin-left: 16px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-md-n3 { margin-top: -16px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-md-n3 { margin-right: -16px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-md-n3 { margin-bottom: -16px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-md-n3 { margin-left: -16px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-md-3 { margin-right: 16px !important; margin-left: 16px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-md-3 { margin-top: 16px !important; margin-bottom: 16px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-md-4 { margin: 24px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-md-4 { margin-top: 24px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-md-4 { margin-right: 24px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-md-4 { margin-bottom: 24px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-md-4 { margin-left: 24px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-md-n4 { margin-top: -24px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-md-n4 { margin-right: -24px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-md-n4 { margin-bottom: -24px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-md-n4 { margin-left: -24px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-md-4 { margin-right: 24px !important; margin-left: 24px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-md-4 { margin-top: 24px !important; margin-bottom: 24px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-md-5 { margin: 32px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-md-5 { margin-top: 32px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-md-5 { margin-right: 32px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-md-5 { margin-bottom: 32px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-md-5 { margin-left: 32px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-md-n5 { margin-top: -32px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-md-n5 { margin-right: -32px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-md-n5 { margin-bottom: -32px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-md-n5 { margin-left: -32px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-md-5 { margin-right: 32px !important; margin-left: 32px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-md-5 { margin-top: 32px !important; margin-bottom: 32px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-md-6 { margin: 40px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-md-6 { margin-top: 40px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-md-6 { margin-right: 40px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-md-6 { margin-bottom: 40px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-md-6 { margin-left: 40px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-md-n6 { margin-top: -40px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-md-n6 { margin-right: -40px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-md-n6 { margin-bottom: -40px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-md-n6 { margin-left: -40px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-md-6 { margin-right: 40px !important; margin-left: 40px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-md-6 { margin-top: 40px !important; margin-bottom: 40px !important; } - /* responsive horizontal auto margins */ - .mx-md-auto { margin-right: auto !important; margin-left: auto !important; } } -@media (min-width: 1012px) { /* Set a $size margin to all sides at $breakpoint */ - .m-lg-0 { margin: 0 !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-lg-0 { margin-top: 0 !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-lg-0 { margin-right: 0 !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-lg-0 { margin-bottom: 0 !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-lg-0 { margin-left: 0 !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-lg-1 { margin: 4px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-lg-1 { margin-top: 4px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-lg-1 { margin-right: 4px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-lg-1 { margin-bottom: 4px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-lg-1 { margin-left: 4px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-lg-n1 { margin-top: -4px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-lg-n1 { margin-right: -4px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-lg-n1 { margin-bottom: -4px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-lg-n1 { margin-left: -4px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-lg-1 { margin-right: 4px !important; margin-left: 4px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-lg-1 { margin-top: 4px !important; margin-bottom: 4px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-lg-2 { margin: 8px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-lg-2 { margin-top: 8px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-lg-2 { margin-right: 8px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-lg-2 { margin-bottom: 8px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-lg-2 { margin-left: 8px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-lg-n2 { margin-top: -8px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-lg-n2 { margin-right: -8px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-lg-n2 { margin-bottom: -8px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-lg-n2 { margin-left: -8px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-lg-2 { margin-right: 8px !important; margin-left: 8px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-lg-2 { margin-top: 8px !important; margin-bottom: 8px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-lg-3 { margin: 16px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-lg-3 { margin-top: 16px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-lg-3 { margin-right: 16px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-lg-3 { margin-bottom: 16px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-lg-3 { margin-left: 16px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-lg-n3 { margin-top: -16px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-lg-n3 { margin-right: -16px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-lg-n3 { margin-bottom: -16px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-lg-n3 { margin-left: -16px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-lg-3 { margin-right: 16px !important; margin-left: 16px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-lg-3 { margin-top: 16px !important; margin-bottom: 16px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-lg-4 { margin: 24px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-lg-4 { margin-top: 24px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-lg-4 { margin-right: 24px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-lg-4 { margin-bottom: 24px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-lg-4 { margin-left: 24px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-lg-n4 { margin-top: -24px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-lg-n4 { margin-right: -24px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-lg-n4 { margin-bottom: -24px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-lg-n4 { margin-left: -24px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-lg-4 { margin-right: 24px !important; margin-left: 24px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-lg-4 { margin-top: 24px !important; margin-bottom: 24px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-lg-5 { margin: 32px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-lg-5 { margin-top: 32px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-lg-5 { margin-right: 32px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-lg-5 { margin-bottom: 32px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-lg-5 { margin-left: 32px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-lg-n5 { margin-top: -32px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-lg-n5 { margin-right: -32px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-lg-n5 { margin-bottom: -32px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-lg-n5 { margin-left: -32px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-lg-5 { margin-right: 32px !important; margin-left: 32px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-lg-5 { margin-top: 32px !important; margin-bottom: 32px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-lg-6 { margin: 40px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-lg-6 { margin-top: 40px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-lg-6 { margin-right: 40px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-lg-6 { margin-bottom: 40px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-lg-6 { margin-left: 40px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-lg-n6 { margin-top: -40px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-lg-n6 { margin-right: -40px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-lg-n6 { margin-bottom: -40px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-lg-n6 { margin-left: -40px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-lg-6 { margin-right: 40px !important; margin-left: 40px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-lg-6 { margin-top: 40px !important; margin-bottom: 40px !important; } - /* responsive horizontal auto margins */ - .mx-lg-auto { margin-right: auto !important; margin-left: auto !important; } } -@media (min-width: 1280px) { /* Set a $size margin to all sides at $breakpoint */ - .m-xl-0 { margin: 0 !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-xl-0 { margin-top: 0 !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-xl-0 { margin-right: 0 !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-xl-0 { margin-bottom: 0 !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-xl-0 { margin-left: 0 !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-xl-1 { margin: 4px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-xl-1 { margin-top: 4px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-xl-1 { margin-right: 4px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-xl-1 { margin-bottom: 4px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-xl-1 { margin-left: 4px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-xl-n1 { margin-top: -4px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-xl-n1 { margin-right: -4px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-xl-n1 { margin-bottom: -4px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-xl-n1 { margin-left: -4px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-xl-1 { margin-right: 4px !important; margin-left: 4px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-xl-1 { margin-top: 4px !important; margin-bottom: 4px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-xl-2 { margin: 8px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-xl-2 { margin-top: 8px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-xl-2 { margin-right: 8px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-xl-2 { margin-bottom: 8px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-xl-2 { margin-left: 8px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-xl-n2 { margin-top: -8px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-xl-n2 { margin-right: -8px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-xl-n2 { margin-bottom: -8px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-xl-n2 { margin-left: -8px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-xl-2 { margin-right: 8px !important; margin-left: 8px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-xl-2 { margin-top: 8px !important; margin-bottom: 8px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-xl-3 { margin: 16px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-xl-3 { margin-top: 16px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-xl-3 { margin-right: 16px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-xl-3 { margin-bottom: 16px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-xl-3 { margin-left: 16px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-xl-n3 { margin-top: -16px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-xl-n3 { margin-right: -16px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-xl-n3 { margin-bottom: -16px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-xl-n3 { margin-left: -16px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-xl-3 { margin-right: 16px !important; margin-left: 16px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-xl-3 { margin-top: 16px !important; margin-bottom: 16px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-xl-4 { margin: 24px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-xl-4 { margin-top: 24px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-xl-4 { margin-right: 24px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-xl-4 { margin-bottom: 24px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-xl-4 { margin-left: 24px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-xl-n4 { margin-top: -24px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-xl-n4 { margin-right: -24px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-xl-n4 { margin-bottom: -24px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-xl-n4 { margin-left: -24px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-xl-4 { margin-right: 24px !important; margin-left: 24px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-xl-4 { margin-top: 24px !important; margin-bottom: 24px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-xl-5 { margin: 32px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-xl-5 { margin-top: 32px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-xl-5 { margin-right: 32px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-xl-5 { margin-bottom: 32px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-xl-5 { margin-left: 32px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-xl-n5 { margin-top: -32px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-xl-n5 { margin-right: -32px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-xl-n5 { margin-bottom: -32px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-xl-n5 { margin-left: -32px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-xl-5 { margin-right: 32px !important; margin-left: 32px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-xl-5 { margin-top: 32px !important; margin-bottom: 32px !important; } - /* Set a $size margin to all sides at $breakpoint */ - .m-xl-6 { margin: 40px !important; } - /* Set a $size margin on the top at $breakpoint */ - .mt-xl-6 { margin-top: 40px !important; } - /* Set a $size margin on the right at $breakpoint */ - .mr-xl-6 { margin-right: 40px !important; } - /* Set a $size margin on the bottom at $breakpoint */ - .mb-xl-6 { margin-bottom: 40px !important; } - /* Set a $size margin on the left at $breakpoint */ - .ml-xl-6 { margin-left: 40px !important; } - /* Set a negative $size margin on top at $breakpoint */ - .mt-xl-n6 { margin-top: -40px !important; } - /* Set a negative $size margin on the right at $breakpoint */ - .mr-xl-n6 { margin-right: -40px !important; } - /* Set a negative $size margin on the bottom at $breakpoint */ - .mb-xl-n6 { margin-bottom: -40px !important; } - /* Set a negative $size margin on the left at $breakpoint */ - .ml-xl-n6 { margin-left: -40px !important; } - /* Set a $size margin on the left & right at $breakpoint */ - .mx-xl-6 { margin-right: 40px !important; margin-left: 40px !important; } - /* Set a $size margin on the top & bottom at $breakpoint */ - .my-xl-6 { margin-top: 40px !important; margin-bottom: 40px !important; } - /* responsive horizontal auto margins */ - .mx-xl-auto { margin-right: auto !important; margin-left: auto !important; } } -/* Set a $size padding to all sides at $breakpoint */ -.p-0 { padding: 0 !important; } - -/* Set a $size padding to the top at $breakpoint */ -.pt-0 { padding-top: 0 !important; } - -/* Set a $size padding to the right at $breakpoint */ -.pr-0 { padding-right: 0 !important; } - -/* Set a $size padding to the bottom at $breakpoint */ -.pb-0 { padding-bottom: 0 !important; } - -/* Set a $size padding to the left at $breakpoint */ -.pl-0 { padding-left: 0 !important; } - -/* Set a $size padding to the left & right at $breakpoint */ -.px-0 { padding-right: 0 !important; padding-left: 0 !important; } - -/* Set a $size padding to the top & bottom at $breakpoint */ -.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - -/* Set a $size padding to all sides at $breakpoint */ -.p-1 { padding: 4px !important; } - -/* Set a $size padding to the top at $breakpoint */ -.pt-1 { padding-top: 4px !important; } - -/* Set a $size padding to the right at $breakpoint */ -.pr-1 { padding-right: 4px !important; } - -/* Set a $size padding to the bottom at $breakpoint */ -.pb-1 { padding-bottom: 4px !important; } - -/* Set a $size padding to the left at $breakpoint */ -.pl-1 { padding-left: 4px !important; } - -/* Set a $size padding to the left & right at $breakpoint */ -.px-1 { padding-right: 4px !important; padding-left: 4px !important; } - -/* Set a $size padding to the top & bottom at $breakpoint */ -.py-1 { padding-top: 4px !important; padding-bottom: 4px !important; } - -/* Set a $size padding to all sides at $breakpoint */ -.p-2 { padding: 8px !important; } - -/* Set a $size padding to the top at $breakpoint */ -.pt-2 { padding-top: 8px !important; } - -/* Set a $size padding to the right at $breakpoint */ -.pr-2 { padding-right: 8px !important; } - -/* Set a $size padding to the bottom at $breakpoint */ -.pb-2 { padding-bottom: 8px !important; } - -/* Set a $size padding to the left at $breakpoint */ -.pl-2 { padding-left: 8px !important; } - -/* Set a $size padding to the left & right at $breakpoint */ -.px-2 { padding-right: 8px !important; padding-left: 8px !important; } - -/* Set a $size padding to the top & bottom at $breakpoint */ -.py-2 { padding-top: 8px !important; padding-bottom: 8px !important; } - -/* Set a $size padding to all sides at $breakpoint */ -.p-3 { padding: 16px !important; } - -/* Set a $size padding to the top at $breakpoint */ -.pt-3 { padding-top: 16px !important; } - -/* Set a $size padding to the right at $breakpoint */ -.pr-3 { padding-right: 16px !important; } - -/* Set a $size padding to the bottom at $breakpoint */ -.pb-3 { padding-bottom: 16px !important; } - -/* Set a $size padding to the left at $breakpoint */ -.pl-3 { padding-left: 16px !important; } - -/* Set a $size padding to the left & right at $breakpoint */ -.px-3 { padding-right: 16px !important; padding-left: 16px !important; } - -/* Set a $size padding to the top & bottom at $breakpoint */ -.py-3 { padding-top: 16px !important; padding-bottom: 16px !important; } - -/* Set a $size padding to all sides at $breakpoint */ -.p-4 { padding: 24px !important; } - -/* Set a $size padding to the top at $breakpoint */ -.pt-4 { padding-top: 24px !important; } - -/* Set a $size padding to the right at $breakpoint */ -.pr-4 { padding-right: 24px !important; } - -/* Set a $size padding to the bottom at $breakpoint */ -.pb-4 { padding-bottom: 24px !important; } - -/* Set a $size padding to the left at $breakpoint */ -.pl-4 { padding-left: 24px !important; } - -/* Set a $size padding to the left & right at $breakpoint */ -.px-4 { padding-right: 24px !important; padding-left: 24px !important; } - -/* Set a $size padding to the top & bottom at $breakpoint */ -.py-4 { padding-top: 24px !important; padding-bottom: 24px !important; } - -/* Set a $size padding to all sides at $breakpoint */ -.p-5 { padding: 32px !important; } - -/* Set a $size padding to the top at $breakpoint */ -.pt-5 { padding-top: 32px !important; } - -/* Set a $size padding to the right at $breakpoint */ -.pr-5 { padding-right: 32px !important; } - -/* Set a $size padding to the bottom at $breakpoint */ -.pb-5 { padding-bottom: 32px !important; } - -/* Set a $size padding to the left at $breakpoint */ -.pl-5 { padding-left: 32px !important; } - -/* Set a $size padding to the left & right at $breakpoint */ -.px-5 { padding-right: 32px !important; padding-left: 32px !important; } - -/* Set a $size padding to the top & bottom at $breakpoint */ -.py-5 { padding-top: 32px !important; padding-bottom: 32px !important; } - -/* Set a $size padding to all sides at $breakpoint */ -.p-6 { padding: 40px !important; } - -/* Set a $size padding to the top at $breakpoint */ -.pt-6 { padding-top: 40px !important; } - -/* Set a $size padding to the right at $breakpoint */ -.pr-6 { padding-right: 40px !important; } - -/* Set a $size padding to the bottom at $breakpoint */ -.pb-6 { padding-bottom: 40px !important; } - -/* Set a $size padding to the left at $breakpoint */ -.pl-6 { padding-left: 40px !important; } - -/* Set a $size padding to the left & right at $breakpoint */ -.px-6 { padding-right: 40px !important; padding-left: 40px !important; } - -/* Set a $size padding to the top & bottom at $breakpoint */ -.py-6 { padding-top: 40px !important; padding-bottom: 40px !important; } - -@media (min-width: 544px) { /* Set a $size padding to all sides at $breakpoint */ - .p-sm-0 { padding: 0 !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-sm-0 { padding-top: 0 !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-sm-0 { padding-right: 0 !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-sm-0 { padding-bottom: 0 !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-sm-0 { padding-left: 0 !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-sm-1 { padding: 4px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-sm-1 { padding-top: 4px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-sm-1 { padding-right: 4px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-sm-1 { padding-bottom: 4px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-sm-1 { padding-left: 4px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-sm-1 { padding-right: 4px !important; padding-left: 4px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-sm-1 { padding-top: 4px !important; padding-bottom: 4px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-sm-2 { padding: 8px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-sm-2 { padding-top: 8px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-sm-2 { padding-right: 8px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-sm-2 { padding-bottom: 8px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-sm-2 { padding-left: 8px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-sm-2 { padding-right: 8px !important; padding-left: 8px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-sm-2 { padding-top: 8px !important; padding-bottom: 8px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-sm-3 { padding: 16px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-sm-3 { padding-top: 16px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-sm-3 { padding-right: 16px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-sm-3 { padding-bottom: 16px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-sm-3 { padding-left: 16px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-sm-3 { padding-right: 16px !important; padding-left: 16px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-sm-3 { padding-top: 16px !important; padding-bottom: 16px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-sm-4 { padding: 24px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-sm-4 { padding-top: 24px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-sm-4 { padding-right: 24px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-sm-4 { padding-bottom: 24px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-sm-4 { padding-left: 24px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-sm-4 { padding-right: 24px !important; padding-left: 24px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-sm-4 { padding-top: 24px !important; padding-bottom: 24px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-sm-5 { padding: 32px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-sm-5 { padding-top: 32px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-sm-5 { padding-right: 32px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-sm-5 { padding-bottom: 32px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-sm-5 { padding-left: 32px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-sm-5 { padding-right: 32px !important; padding-left: 32px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-sm-5 { padding-top: 32px !important; padding-bottom: 32px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-sm-6 { padding: 40px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-sm-6 { padding-top: 40px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-sm-6 { padding-right: 40px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-sm-6 { padding-bottom: 40px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-sm-6 { padding-left: 40px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-sm-6 { padding-right: 40px !important; padding-left: 40px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-sm-6 { padding-top: 40px !important; padding-bottom: 40px !important; } } -@media (min-width: 768px) { /* Set a $size padding to all sides at $breakpoint */ - .p-md-0 { padding: 0 !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-md-0 { padding-top: 0 !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-md-0 { padding-right: 0 !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-md-0 { padding-bottom: 0 !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-md-0 { padding-left: 0 !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-md-1 { padding: 4px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-md-1 { padding-top: 4px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-md-1 { padding-right: 4px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-md-1 { padding-bottom: 4px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-md-1 { padding-left: 4px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-md-1 { padding-right: 4px !important; padding-left: 4px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-md-1 { padding-top: 4px !important; padding-bottom: 4px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-md-2 { padding: 8px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-md-2 { padding-top: 8px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-md-2 { padding-right: 8px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-md-2 { padding-bottom: 8px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-md-2 { padding-left: 8px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-md-2 { padding-right: 8px !important; padding-left: 8px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-md-2 { padding-top: 8px !important; padding-bottom: 8px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-md-3 { padding: 16px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-md-3 { padding-top: 16px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-md-3 { padding-right: 16px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-md-3 { padding-bottom: 16px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-md-3 { padding-left: 16px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-md-3 { padding-right: 16px !important; padding-left: 16px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-md-3 { padding-top: 16px !important; padding-bottom: 16px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-md-4 { padding: 24px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-md-4 { padding-top: 24px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-md-4 { padding-right: 24px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-md-4 { padding-bottom: 24px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-md-4 { padding-left: 24px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-md-4 { padding-right: 24px !important; padding-left: 24px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-md-4 { padding-top: 24px !important; padding-bottom: 24px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-md-5 { padding: 32px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-md-5 { padding-top: 32px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-md-5 { padding-right: 32px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-md-5 { padding-bottom: 32px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-md-5 { padding-left: 32px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-md-5 { padding-right: 32px !important; padding-left: 32px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-md-5 { padding-top: 32px !important; padding-bottom: 32px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-md-6 { padding: 40px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-md-6 { padding-top: 40px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-md-6 { padding-right: 40px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-md-6 { padding-bottom: 40px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-md-6 { padding-left: 40px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-md-6 { padding-right: 40px !important; padding-left: 40px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-md-6 { padding-top: 40px !important; padding-bottom: 40px !important; } } -@media (min-width: 1012px) { /* Set a $size padding to all sides at $breakpoint */ - .p-lg-0 { padding: 0 !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-lg-0 { padding-top: 0 !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-lg-0 { padding-right: 0 !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-lg-0 { padding-bottom: 0 !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-lg-0 { padding-left: 0 !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-lg-1 { padding: 4px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-lg-1 { padding-top: 4px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-lg-1 { padding-right: 4px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-lg-1 { padding-bottom: 4px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-lg-1 { padding-left: 4px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-lg-1 { padding-right: 4px !important; padding-left: 4px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-lg-1 { padding-top: 4px !important; padding-bottom: 4px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-lg-2 { padding: 8px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-lg-2 { padding-top: 8px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-lg-2 { padding-right: 8px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-lg-2 { padding-bottom: 8px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-lg-2 { padding-left: 8px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-lg-2 { padding-right: 8px !important; padding-left: 8px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-lg-2 { padding-top: 8px !important; padding-bottom: 8px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-lg-3 { padding: 16px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-lg-3 { padding-top: 16px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-lg-3 { padding-right: 16px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-lg-3 { padding-bottom: 16px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-lg-3 { padding-left: 16px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-lg-3 { padding-right: 16px !important; padding-left: 16px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-lg-3 { padding-top: 16px !important; padding-bottom: 16px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-lg-4 { padding: 24px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-lg-4 { padding-top: 24px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-lg-4 { padding-right: 24px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-lg-4 { padding-bottom: 24px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-lg-4 { padding-left: 24px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-lg-4 { padding-right: 24px !important; padding-left: 24px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-lg-4 { padding-top: 24px !important; padding-bottom: 24px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-lg-5 { padding: 32px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-lg-5 { padding-top: 32px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-lg-5 { padding-right: 32px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-lg-5 { padding-bottom: 32px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-lg-5 { padding-left: 32px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-lg-5 { padding-right: 32px !important; padding-left: 32px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-lg-5 { padding-top: 32px !important; padding-bottom: 32px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-lg-6 { padding: 40px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-lg-6 { padding-top: 40px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-lg-6 { padding-right: 40px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-lg-6 { padding-bottom: 40px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-lg-6 { padding-left: 40px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-lg-6 { padding-right: 40px !important; padding-left: 40px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-lg-6 { padding-top: 40px !important; padding-bottom: 40px !important; } } -@media (min-width: 1280px) { /* Set a $size padding to all sides at $breakpoint */ - .p-xl-0 { padding: 0 !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-xl-0 { padding-top: 0 !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-xl-0 { padding-right: 0 !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-xl-0 { padding-bottom: 0 !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-xl-0 { padding-left: 0 !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-xl-1 { padding: 4px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-xl-1 { padding-top: 4px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-xl-1 { padding-right: 4px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-xl-1 { padding-bottom: 4px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-xl-1 { padding-left: 4px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-xl-1 { padding-right: 4px !important; padding-left: 4px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-xl-1 { padding-top: 4px !important; padding-bottom: 4px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-xl-2 { padding: 8px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-xl-2 { padding-top: 8px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-xl-2 { padding-right: 8px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-xl-2 { padding-bottom: 8px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-xl-2 { padding-left: 8px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-xl-2 { padding-right: 8px !important; padding-left: 8px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-xl-2 { padding-top: 8px !important; padding-bottom: 8px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-xl-3 { padding: 16px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-xl-3 { padding-top: 16px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-xl-3 { padding-right: 16px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-xl-3 { padding-bottom: 16px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-xl-3 { padding-left: 16px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-xl-3 { padding-right: 16px !important; padding-left: 16px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-xl-3 { padding-top: 16px !important; padding-bottom: 16px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-xl-4 { padding: 24px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-xl-4 { padding-top: 24px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-xl-4 { padding-right: 24px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-xl-4 { padding-bottom: 24px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-xl-4 { padding-left: 24px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-xl-4 { padding-right: 24px !important; padding-left: 24px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-xl-4 { padding-top: 24px !important; padding-bottom: 24px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-xl-5 { padding: 32px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-xl-5 { padding-top: 32px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-xl-5 { padding-right: 32px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-xl-5 { padding-bottom: 32px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-xl-5 { padding-left: 32px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-xl-5 { padding-right: 32px !important; padding-left: 32px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-xl-5 { padding-top: 32px !important; padding-bottom: 32px !important; } - /* Set a $size padding to all sides at $breakpoint */ - .p-xl-6 { padding: 40px !important; } - /* Set a $size padding to the top at $breakpoint */ - .pt-xl-6 { padding-top: 40px !important; } - /* Set a $size padding to the right at $breakpoint */ - .pr-xl-6 { padding-right: 40px !important; } - /* Set a $size padding to the bottom at $breakpoint */ - .pb-xl-6 { padding-bottom: 40px !important; } - /* Set a $size padding to the left at $breakpoint */ - .pl-xl-6 { padding-left: 40px !important; } - /* Set a $size padding to the left & right at $breakpoint */ - .px-xl-6 { padding-right: 40px !important; padding-left: 40px !important; } - /* Set a $size padding to the top & bottom at $breakpoint */ - .py-xl-6 { padding-top: 40px !important; padding-bottom: 40px !important; } } -.p-responsive { padding-right: 16px !important; padding-left: 16px !important; } -@media (min-width: 544px) { .p-responsive { padding-right: 40px !important; padding-left: 40px !important; } } -@media (min-width: 1012px) { .p-responsive { padding-right: 16px !important; padding-left: 16px !important; } } - -/* Set the font size to 26px */ -.h1 { font-size: 26px !important; } -@media (min-width: 768px) { .h1 { font-size: 32px !important; } } - -/* Set the font size to 22px */ -.h2 { font-size: 22px !important; } -@media (min-width: 768px) { .h2 { font-size: 24px !important; } } - -/* Set the font size to 18px */ -.h3 { font-size: 18px !important; } -@media (min-width: 768px) { .h3 { font-size: 20px !important; } } - -/* Set the font size to 16px */ -.h4 { font-size: 16px !important; } - -/* Set the font size to 14px */ -.h5 { font-size: 14px !important; } - -/* Set the font size to 12px */ -.h6 { font-size: 12px !important; } - -.h1, .h2, .h3, .h4, .h5, .h6 { font-weight: 600 !important; } - -/* Set the font size to 26px */ -.f1 { font-size: 26px !important; } -@media (min-width: 768px) { .f1 { font-size: 32px !important; } } - -/* Set the font size to 22px */ -.f2 { font-size: 22px !important; } -@media (min-width: 768px) { .f2 { font-size: 24px !important; } } - -/* Set the font size to 18px */ -.f3 { font-size: 18px !important; } -@media (min-width: 768px) { .f3 { font-size: 20px !important; } } - -/* Set the font size to 16px */ -.f4 { font-size: 16px !important; } -@media (min-width: 768px) { .f4 { font-size: 16px !important; } } - -/* Set the font size to 14px */ -.f5 { font-size: 14px !important; } - -/* Set the font size to 12px */ -.f6 { font-size: 12px !important; } - -/* Set the font size to 40px and weight to light */ -.f00-light { font-size: 40px !important; font-weight: 300 !important; } -@media (min-width: 768px) { .f00-light { font-size: 48px !important; } } - -/* Set the font size to 32px and weight to light */ -.f0-light { font-size: 32px !important; font-weight: 300 !important; } -@media (min-width: 768px) { .f0-light { font-size: 40px !important; } } - -/* Set the font size to 26px and weight to light */ -.f1-light { font-size: 26px !important; font-weight: 300 !important; } -@media (min-width: 768px) { .f1-light { font-size: 32px !important; } } - -/* Set the font size to 22px and weight to light */ -.f2-light { font-size: 22px !important; font-weight: 300 !important; } -@media (min-width: 768px) { .f2-light { font-size: 24px !important; } } - -/* Set the font size to 18px and weight to light */ -.f3-light { font-size: 18px !important; font-weight: 300 !important; } -@media (min-width: 768px) { .f3-light { font-size: 20px !important; } } - -/* Set the font size to ${#h6-size} */ -.text-small { font-size: 12px !important; } - -/* Large leading paragraphs */ -.lead { margin-bottom: 30px; font-size: 20px; font-weight: 300; color: #586069; } - -/* Set the line height to ultra condensed */ -.lh-condensed-ultra { line-height: 1 !important; } - -/* Set the line height to condensed */ -.lh-condensed { line-height: 1.25 !important; } - -/* Set the line height to default */ -.lh-default { line-height: 1.5 !important; } - -/* Set the line height to zero */ -.lh-0 { line-height: 0 !important; } - -/* Text align to the right */ -.text-right { text-align: right !important; } - -/* Text align to the left */ -.text-left { text-align: left !important; } - -/* Text align to the center */ -.text-center { text-align: center !important; } - -@media (min-width: 544px) { /* Text align to the right */ - .text-sm-right { text-align: right !important; } - /* Text align to the left */ - .text-sm-left { text-align: left !important; } - /* Text align to the center */ - .text-sm-center { text-align: center !important; } } -@media (min-width: 768px) { /* Text align to the right */ - .text-md-right { text-align: right !important; } - /* Text align to the left */ - .text-md-left { text-align: left !important; } - /* Text align to the center */ - .text-md-center { text-align: center !important; } } -@media (min-width: 1012px) { /* Text align to the right */ - .text-lg-right { text-align: right !important; } - /* Text align to the left */ - .text-lg-left { text-align: left !important; } - /* Text align to the center */ - .text-lg-center { text-align: center !important; } } -@media (min-width: 1280px) { /* Text align to the right */ - .text-xl-right { text-align: right !important; } - /* Text align to the left */ - .text-xl-left { text-align: left !important; } - /* Text align to the center */ - .text-xl-center { text-align: center !important; } } -/* Set the font weight to normal */ -.text-normal { font-weight: 400 !important; } - -/* Set the font weight to bold */ -.text-bold { font-weight: 600 !important; } - -/* Set the font to italic */ -.text-italic { font-style: italic !important; } - -/* Make text uppercase */ -.text-uppercase { text-transform: uppercase !important; } - -/* Underline text */ -.text-underline { text-decoration: underline !important; } - -/* Don't underline text */ -.no-underline { text-decoration: none !important; } - -/* Don't wrap white space */ -.no-wrap { white-space: nowrap !important; } - -/* Normal white space */ -.ws-normal { white-space: normal !important; } - -/* Allow long lines with no spaces to line break */ -.wb-break-all { word-break: break-all !important; } - -.text-emphasized { font-weight: 600; color: #24292e; } - -.list-style-none { list-style: none !important; } - -/* Add a dark text shadow */ -.text-shadow-dark { text-shadow: 0 1px 1px rgba(27, 31, 35, 0.25), 0 1px 25px rgba(27, 31, 35, 0.75); } - -/* Add a light text shadow */ -.text-shadow-light { text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); } - -/* Set to monospace font */ -.text-mono { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; } - -/* Disallow user from selecting text */ -.user-select-none { user-select: none !important; } - -.d-block { display: block !important; } - -.d-flex { display: flex !important; } - -.d-inline { display: inline !important; } - -.d-inline-block { display: inline-block !important; } - -.d-inline-flex { display: inline-flex !important; } - -.d-none { display: none !important; } - -.d-table { display: table !important; } - -.d-table-cell { display: table-cell !important; } - -@media (min-width: 544px) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-inline-flex { display: inline-flex !important; } - .d-sm-none { display: none !important; } - .d-sm-table { display: table !important; } - .d-sm-table-cell { display: table-cell !important; } } -@media (min-width: 768px) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-inline-flex { display: inline-flex !important; } - .d-md-none { display: none !important; } - .d-md-table { display: table !important; } - .d-md-table-cell { display: table-cell !important; } } -@media (min-width: 1012px) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-inline-flex { display: inline-flex !important; } - .d-lg-none { display: none !important; } - .d-lg-table { display: table !important; } - .d-lg-table-cell { display: table-cell !important; } } -@media (min-width: 1280px) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-inline-flex { display: inline-flex !important; } - .d-xl-none { display: none !important; } - .d-xl-table { display: table !important; } - .d-xl-table-cell { display: table-cell !important; } } -.v-hidden { visibility: hidden !important; } - -.v-visible { visibility: visible !important; } - -@media (max-width: 544px) { .hide-sm { display: none !important; } } -@media (min-width: 544px) and (max-width: 768px) { .hide-md { display: none !important; } } -@media (min-width: 768px) and (max-width: 1012px) { .hide-lg { display: none !important; } } -@media (min-width: 1012px) { .hide-xl { display: none !important; } } -/* Set the table-layout to fixed */ -.table-fixed { table-layout: fixed !important; } - -.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); word-wrap: normal; border: 0; } - -.show-on-focus { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); } -.show-on-focus:focus { z-index: 20; width: auto; height: auto; clip: auto; } - -.container { width: 980px; margin-right: auto; margin-left: auto; } -.container::before { display: table; content: ""; } -.container::after { display: table; clear: both; content: ""; } - -.container-md { max-width: 768px; margin-right: auto; margin-left: auto; } - -.container-lg { max-width: 1012px; margin-right: auto; margin-left: auto; } - -.container-xl { max-width: 1280px; margin-right: auto; margin-left: auto; } - -.columns { margin-right: -10px; margin-left: -10px; } -.columns::before { display: table; content: ""; } -.columns::after { display: table; clear: both; content: ""; } - -.column { float: left; padding-right: 10px; padding-left: 10px; } - -.one-third { width: 33.333333%; } - -.two-thirds { width: 66.666667%; } - -.one-fourth { width: 25%; } - -.one-half { width: 50%; } - -.three-fourths { width: 75%; } - -.one-fifth { width: 20%; } - -.four-fifths { width: 80%; } - -.centered { display: block; float: none; margin-right: auto; margin-left: auto; } - -.col-1 { width: 8.3333333333%; } - -.col-2 { width: 16.6666666667%; } - -.col-3 { width: 25%; } - -.col-4 { width: 33.3333333333%; } - -.col-5 { width: 41.6666666667%; } - -.col-6 { width: 50%; } - -.col-7 { width: 58.3333333333%; } - -.col-8 { width: 66.6666666667%; } - -.col-9 { width: 75%; } - -.col-10 { width: 83.3333333333%; } - -.col-11 { width: 91.6666666667%; } - -.col-12 { width: 100%; } - -@media (min-width: 544px) { .col-sm-1 { width: 8.3333333333%; } - .col-sm-2 { width: 16.6666666667%; } - .col-sm-3 { width: 25%; } - .col-sm-4 { width: 33.3333333333%; } - .col-sm-5 { width: 41.6666666667%; } - .col-sm-6 { width: 50%; } - .col-sm-7 { width: 58.3333333333%; } - .col-sm-8 { width: 66.6666666667%; } - .col-sm-9 { width: 75%; } - .col-sm-10 { width: 83.3333333333%; } - .col-sm-11 { width: 91.6666666667%; } - .col-sm-12 { width: 100%; } } -@media (min-width: 768px) { .col-md-1 { width: 8.3333333333%; } - .col-md-2 { width: 16.6666666667%; } - .col-md-3 { width: 25%; } - .col-md-4 { width: 33.3333333333%; } - .col-md-5 { width: 41.6666666667%; } - .col-md-6 { width: 50%; } - .col-md-7 { width: 58.3333333333%; } - .col-md-8 { width: 66.6666666667%; } - .col-md-9 { width: 75%; } - .col-md-10 { width: 83.3333333333%; } - .col-md-11 { width: 91.6666666667%; } - .col-md-12 { width: 100%; } } -@media (min-width: 1012px) { .col-lg-1 { width: 8.3333333333%; } - .col-lg-2 { width: 16.6666666667%; } - .col-lg-3 { width: 25%; } - .col-lg-4 { width: 33.3333333333%; } - .col-lg-5 { width: 41.6666666667%; } - .col-lg-6 { width: 50%; } - .col-lg-7 { width: 58.3333333333%; } - .col-lg-8 { width: 66.6666666667%; } - .col-lg-9 { width: 75%; } - .col-lg-10 { width: 83.3333333333%; } - .col-lg-11 { width: 91.6666666667%; } - .col-lg-12 { width: 100%; } } -@media (min-width: 1280px) { .col-xl-1 { width: 8.3333333333%; } - .col-xl-2 { width: 16.6666666667%; } - .col-xl-3 { width: 25%; } - .col-xl-4 { width: 33.3333333333%; } - .col-xl-5 { width: 41.6666666667%; } - .col-xl-6 { width: 50%; } - .col-xl-7 { width: 58.3333333333%; } - .col-xl-8 { width: 66.6666666667%; } - .col-xl-9 { width: 75%; } - .col-xl-10 { width: 83.3333333333%; } - .col-xl-11 { width: 91.6666666667%; } - .col-xl-12 { width: 100%; } } -.gutter { margin-right: -16px; margin-left: -16px; } -.gutter > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; } - -.gutter-condensed { margin-right: -8px; margin-left: -8px; } -.gutter-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; } - -.gutter-spacious { margin-right: -24px; margin-left: -24px; } -.gutter-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } - -@media (min-width: 544px) { .gutter-sm { margin-right: -16px; margin-left: -16px; } - .gutter-sm > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; } - .gutter-sm-condensed { margin-right: -8px; margin-left: -8px; } - .gutter-sm-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; } - .gutter-sm-spacious { margin-right: -24px; margin-left: -24px; } - .gutter-sm-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } } -@media (min-width: 768px) { .gutter-md { margin-right: -16px; margin-left: -16px; } - .gutter-md > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; } - .gutter-md-condensed { margin-right: -8px; margin-left: -8px; } - .gutter-md-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; } - .gutter-md-spacious { margin-right: -24px; margin-left: -24px; } - .gutter-md-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } } -@media (min-width: 1012px) { .gutter-lg { margin-right: -16px; margin-left: -16px; } - .gutter-lg > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; } - .gutter-lg-condensed { margin-right: -8px; margin-left: -8px; } - .gutter-lg-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; } - .gutter-lg-spacious { margin-right: -24px; margin-left: -24px; } - .gutter-lg-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } } -@media (min-width: 1280px) { .gutter-xl { margin-right: -16px; margin-left: -16px; } - .gutter-xl > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; } - .gutter-xl-condensed { margin-right: -8px; margin-left: -8px; } - .gutter-xl-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; } - .gutter-xl-spacious { margin-right: -24px; margin-left: -24px; } - .gutter-xl-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } } -.offset-1 { margin-left: 8.3333333333% !important; } - -.offset-2 { margin-left: 16.6666666667% !important; } - -.offset-3 { margin-left: 25% !important; } - -.offset-4 { margin-left: 33.3333333333% !important; } - -.offset-5 { margin-left: 41.6666666667% !important; } - -.offset-6 { margin-left: 50% !important; } - -.offset-7 { margin-left: 58.3333333333% !important; } - -.offset-8 { margin-left: 66.6666666667% !important; } - -.offset-9 { margin-left: 75% !important; } - -.offset-10 { margin-left: 83.3333333333% !important; } - -.offset-11 { margin-left: 91.6666666667% !important; } - -@media (min-width: 544px) { .offset-sm-1 { margin-left: 8.3333333333% !important; } - .offset-sm-2 { margin-left: 16.6666666667% !important; } - .offset-sm-3 { margin-left: 25% !important; } - .offset-sm-4 { margin-left: 33.3333333333% !important; } - .offset-sm-5 { margin-left: 41.6666666667% !important; } - .offset-sm-6 { margin-left: 50% !important; } - .offset-sm-7 { margin-left: 58.3333333333% !important; } - .offset-sm-8 { margin-left: 66.6666666667% !important; } - .offset-sm-9 { margin-left: 75% !important; } - .offset-sm-10 { margin-left: 83.3333333333% !important; } - .offset-sm-11 { margin-left: 91.6666666667% !important; } } -@media (min-width: 768px) { .offset-md-1 { margin-left: 8.3333333333% !important; } - .offset-md-2 { margin-left: 16.6666666667% !important; } - .offset-md-3 { margin-left: 25% !important; } - .offset-md-4 { margin-left: 33.3333333333% !important; } - .offset-md-5 { margin-left: 41.6666666667% !important; } - .offset-md-6 { margin-left: 50% !important; } - .offset-md-7 { margin-left: 58.3333333333% !important; } - .offset-md-8 { margin-left: 66.6666666667% !important; } - .offset-md-9 { margin-left: 75% !important; } - .offset-md-10 { margin-left: 83.3333333333% !important; } - .offset-md-11 { margin-left: 91.6666666667% !important; } } -@media (min-width: 1012px) { .offset-lg-1 { margin-left: 8.3333333333% !important; } - .offset-lg-2 { margin-left: 16.6666666667% !important; } - .offset-lg-3 { margin-left: 25% !important; } - .offset-lg-4 { margin-left: 33.3333333333% !important; } - .offset-lg-5 { margin-left: 41.6666666667% !important; } - .offset-lg-6 { margin-left: 50% !important; } - .offset-lg-7 { margin-left: 58.3333333333% !important; } - .offset-lg-8 { margin-left: 66.6666666667% !important; } - .offset-lg-9 { margin-left: 75% !important; } - .offset-lg-10 { margin-left: 83.3333333333% !important; } - .offset-lg-11 { margin-left: 91.6666666667% !important; } } -@media (min-width: 1280px) { .offset-xl-1 { margin-left: 8.3333333333% !important; } - .offset-xl-2 { margin-left: 16.6666666667% !important; } - .offset-xl-3 { margin-left: 25% !important; } - .offset-xl-4 { margin-left: 33.3333333333% !important; } - .offset-xl-5 { margin-left: 41.6666666667% !important; } - .offset-xl-6 { margin-left: 50% !important; } - .offset-xl-7 { margin-left: 58.3333333333% !important; } - .offset-xl-8 { margin-left: 66.6666666667% !important; } - .offset-xl-9 { margin-left: 75% !important; } - .offset-xl-10 { margin-left: 83.3333333333% !important; } - .offset-xl-11 { margin-left: 91.6666666667% !important; } } -.markdown-body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 1.5; word-wrap: break-word; } -.markdown-body::before { display: table; content: ""; } -.markdown-body::after { display: table; clear: both; content: ""; } -.markdown-body > *:first-child { margin-top: 0 !important; } -.markdown-body > *:last-child { margin-bottom: 0 !important; } -.markdown-body a:not([href]) { color: inherit; text-decoration: none; } -.markdown-body .absent { color: #cb2431; } -.markdown-body .anchor { float: left; padding-right: 4px; margin-left: -20px; line-height: 1; } -.markdown-body .anchor:focus { outline: none; } -.markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre { margin-top: 0; margin-bottom: 16px; } -.markdown-body hr { height: 0.25em; padding: 0; margin: 24px 0; background-color: #e1e4e8; border: 0; } -.markdown-body blockquote { padding: 0 1em; color: #6a737d; border-left: 0.25em solid #dfe2e5; } -.markdown-body blockquote > :first-child { margin-top: 0; } -.markdown-body blockquote > :last-child { margin-bottom: 0; } -.markdown-body kbd { display: inline-block; padding: 3px 5px; font-size: 11px; line-height: 10px; color: #444d56; vertical-align: middle; background-color: #fafbfc; border: solid 1px #c6cbd1; border-bottom-color: #959da5; border-radius: 3px; box-shadow: inset 0 -1px 0 #959da5; } - -.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { margin-top: 24px; margin-bottom: 16px; font-weight: 600; line-height: 1.25; } -.markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { color: #1b1f23; vertical-align: middle; visibility: hidden; } -.markdown-body h1:hover .anchor, .markdown-body h2:hover .anchor, .markdown-body h3:hover .anchor, .markdown-body h4:hover .anchor, .markdown-body h5:hover .anchor, .markdown-body h6:hover .anchor { text-decoration: none; } -.markdown-body h1:hover .anchor .octicon-link, .markdown-body h2:hover .anchor .octicon-link, .markdown-body h3:hover .anchor .octicon-link, .markdown-body h4:hover .anchor .octicon-link, .markdown-body h5:hover .anchor .octicon-link, .markdown-body h6:hover .anchor .octicon-link { visibility: visible; } -.markdown-body h1 tt, .markdown-body h1 code, .markdown-body h2 tt, .markdown-body h2 code, .markdown-body h3 tt, .markdown-body h3 code, .markdown-body h4 tt, .markdown-body h4 code, .markdown-body h5 tt, .markdown-body h5 code, .markdown-body h6 tt, .markdown-body h6 code { font-size: inherit; } -.markdown-body h1 { padding-bottom: 0.3em; font-size: 2em; border-bottom: 1px solid #eaecef; } -.markdown-body h2 { padding-bottom: 0.3em; font-size: 1.5em; border-bottom: 1px solid #eaecef; } -.markdown-body h3 { font-size: 1.25em; } -.markdown-body h4 { font-size: 1em; } -.markdown-body h5 { font-size: 0.875em; } -.markdown-body h6 { font-size: 0.85em; color: #6a737d; } - -.markdown-body ul, .markdown-body ol { padding-left: 2em; } -.markdown-body ul.no-list, .markdown-body ol.no-list { padding: 0; list-style-type: none; } -.markdown-body ul ul, .markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul { margin-top: 0; margin-bottom: 0; } -.markdown-body li { word-wrap: break-all; } -.markdown-body li > p { margin-top: 16px; } -.markdown-body li + li { margin-top: 0.25em; } -.markdown-body dl { padding: 0; } -.markdown-body dl dt { padding: 0; margin-top: 16px; font-size: 1em; font-style: italic; font-weight: 600; } -.markdown-body dl dd { padding: 0 16px; margin-bottom: 16px; } - -.markdown-body table { display: block; width: 100%; overflow: auto; } -.markdown-body table th { font-weight: 600; } -.markdown-body table th, .markdown-body table td { padding: 6px 13px; border: 1px solid #dfe2e5; } -.markdown-body table tr { background-color: #fff; border-top: 1px solid #c6cbd1; } -.markdown-body table tr:nth-child(2n) { background-color: #f6f8fa; } -.markdown-body table img { background-color: transparent; } - -.markdown-body img { max-width: 100%; box-sizing: content-box; background-color: #fff; } -.markdown-body img[align=right] { padding-left: 20px; } -.markdown-body img[align=left] { padding-right: 20px; } -.markdown-body .emoji { max-width: none; vertical-align: text-top; background-color: transparent; } -.markdown-body span.frame { display: block; overflow: hidden; } -.markdown-body span.frame > span { display: block; float: left; width: auto; padding: 7px; margin: 13px 0 0; overflow: hidden; border: 1px solid #dfe2e5; } -.markdown-body span.frame span img { display: block; float: left; } -.markdown-body span.frame span span { display: block; padding: 5px 0 0; clear: both; color: #24292e; } -.markdown-body span.align-center { display: block; overflow: hidden; clear: both; } -.markdown-body span.align-center > span { display: block; margin: 13px auto 0; overflow: hidden; text-align: center; } -.markdown-body span.align-center span img { margin: 0 auto; text-align: center; } -.markdown-body span.align-right { display: block; overflow: hidden; clear: both; } -.markdown-body span.align-right > span { display: block; margin: 13px 0 0; overflow: hidden; text-align: right; } -.markdown-body span.align-right span img { margin: 0; text-align: right; } -.markdown-body span.float-left { display: block; float: left; margin-right: 13px; overflow: hidden; } -.markdown-body span.float-left span { margin: 13px 0 0; } -.markdown-body span.float-right { display: block; float: right; margin-left: 13px; overflow: hidden; } -.markdown-body span.float-right > span { display: block; margin: 13px auto 0; overflow: hidden; text-align: right; } - -.markdown-body code, .markdown-body tt { padding: 0.2em 0.4em; margin: 0; font-size: 85%; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; } -.markdown-body code br, .markdown-body tt br { display: none; } -.markdown-body del code { text-decoration: inherit; } -.markdown-body pre { word-wrap: normal; } -.markdown-body pre > code { padding: 0; margin: 0; font-size: 100%; word-break: normal; white-space: pre; background: transparent; border: 0; } -.markdown-body .highlight { margin-bottom: 16px; } -.markdown-body .highlight pre { margin-bottom: 0; word-break: normal; } -.markdown-body .highlight pre, .markdown-body pre { padding: 16px; overflow: auto; font-size: 85%; line-height: 1.45; background-color: #f6f8fa; border-radius: 3px; } -.markdown-body pre code, .markdown-body pre tt { display: inline; max-width: auto; padding: 0; margin: 0; overflow: visible; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; } - -.markdown-body .csv-data td, .markdown-body .csv-data th { padding: 5px; overflow: hidden; font-size: 12px; line-height: 1; text-align: left; white-space: nowrap; } -.markdown-body .csv-data .blob-num { padding: 10px 8px 9px; text-align: right; background: #fff; border: 0; } -.markdown-body .csv-data tr { border-top: 0; } -.markdown-body .csv-data th { font-weight: 600; background: #f6f8fa; border-top: 0; } - -.highlight table td { padding: 5px; } - -.highlight table pre { margin: 0; } - -.highlight .cm { color: #999988; font-style: italic; } - -.highlight .cp { color: #999999; font-weight: bold; } - -.highlight .c1 { color: #999988; font-style: italic; } - -.highlight .cs { color: #999999; font-weight: bold; font-style: italic; } - -.highlight .c, .highlight .cd { color: #999988; font-style: italic; } - -.highlight .err { color: #a61717; background-color: #e3d2d2; } - -.highlight .gd { color: #000000; background-color: #ffdddd; } - -.highlight .ge { color: #000000; font-style: italic; } - -.highlight .gr { color: #aa0000; } - -.highlight .gh { color: #999999; } - -.highlight .gi { color: #000000; background-color: #ddffdd; } - -.highlight .go { color: #888888; } - -.highlight .gp { color: #555555; } - -.highlight .gs { font-weight: bold; } - -.highlight .gu { color: #aaaaaa; } - -.highlight .gt { color: #aa0000; } - -.highlight .kc { color: #000000; font-weight: bold; } - -.highlight .kd { color: #000000; font-weight: bold; } - -.highlight .kn { color: #000000; font-weight: bold; } - -.highlight .kp { color: #000000; font-weight: bold; } - -.highlight .kr { color: #000000; font-weight: bold; } - -.highlight .kt { color: #445588; font-weight: bold; } - -.highlight .k, .highlight .kv { color: #000000; font-weight: bold; } - -.highlight .mf { color: #009999; } - -.highlight .mh { color: #009999; } - -.highlight .il { color: #009999; } - -.highlight .mi { color: #009999; } - -.highlight .mo { color: #009999; } - -.highlight .m, .highlight .mb, .highlight .mx { color: #009999; } - -.highlight .sb { color: #d14; } - -.highlight .sc { color: #d14; } - -.highlight .sd { color: #d14; } - -.highlight .s2 { color: #d14; } - -.highlight .se { color: #d14; } - -.highlight .sh { color: #d14; } - -.highlight .si { color: #d14; } - -.highlight .sx { color: #d14; } - -.highlight .sr { color: #009926; } - -.highlight .s1 { color: #d14; } - -.highlight .ss { color: #990073; } - -.highlight .s { color: #d14; } - -.highlight .na { color: #008080; } - -.highlight .bp { color: #999999; } - -.highlight .nb { color: #0086B3; } - -.highlight .nc { color: #445588; font-weight: bold; } - -.highlight .no { color: #008080; } - -.highlight .nd { color: #3c5d5d; font-weight: bold; } - -.highlight .ni { color: #800080; } - -.highlight .ne { color: #990000; font-weight: bold; } - -.highlight .nf { color: #990000; font-weight: bold; } - -.highlight .nl { color: #990000; font-weight: bold; } - -.highlight .nn { color: #555555; } - -.highlight .nt { color: #000080; } - -.highlight .vc { color: #008080; } - -.highlight .vg { color: #008080; } - -.highlight .vi { color: #008080; } - -.highlight .nv { color: #008080; } - -.highlight .ow { color: #000000; font-weight: bold; } - -.highlight .o { color: #000000; font-weight: bold; } - -.highlight .w { color: #bbbbbb; } - -.highlight { background-color: #f8f8f8; } diff --git a/head/favicon.ico b/head/assets/favicon.ico similarity index 100% rename from head/favicon.ico rename to head/assets/favicon.ico diff --git a/head/assets/images/favicon.png b/head/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/head/assets/images/search.svg b/head/assets/images/search.svg deleted file mode 100644 index 421ca4df0..000000000 --- a/head/assets/images/search.svg +++ /dev/null @@ -1 +0,0 @@ -Search diff --git a/head/assets/javascripts/bundle.dd8806f2.min.js b/head/assets/javascripts/bundle.dd8806f2.min.js new file mode 100644 index 000000000..e22d189fd --- /dev/null +++ b/head/assets/javascripts/bundle.dd8806f2.min.js @@ -0,0 +1,29 @@ +"use strict";(()=>{var Fi=Object.create;var gr=Object.defineProperty;var ji=Object.getOwnPropertyDescriptor;var Wi=Object.getOwnPropertyNames,Dt=Object.getOwnPropertySymbols,Ui=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty,no=Object.prototype.propertyIsEnumerable;var oo=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,R=(e,t)=>{for(var r in t||(t={}))xr.call(t,r)&&oo(e,r,t[r]);if(Dt)for(var r of Dt(t))no.call(t,r)&&oo(e,r,t[r]);return e};var io=(e,t)=>{var r={};for(var o in e)xr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Dt)for(var o of Dt(e))t.indexOf(o)<0&&no.call(e,o)&&(r[o]=e[o]);return r};var yr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Di=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Wi(t))!xr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=ji(t,n))||o.enumerable});return e};var Vt=(e,t,r)=>(r=e!=null?Fi(Ui(e)):{},Di(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var ao=(e,t,r)=>new Promise((o,n)=>{var i=p=>{try{s(r.next(p))}catch(c){n(c)}},a=p=>{try{s(r.throw(p))}catch(c){n(c)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,a);s((r=r.apply(e,t)).next())});var co=yr((Er,so)=>{(function(e,t){typeof Er=="object"&&typeof so!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(H){return!!(H&&H!==document&&H.nodeName!=="HTML"&&H.nodeName!=="BODY"&&"classList"in H&&"contains"in H.classList)}function p(H){var mt=H.type,ze=H.tagName;return!!(ze==="INPUT"&&a[mt]&&!H.readOnly||ze==="TEXTAREA"&&!H.readOnly||H.isContentEditable)}function c(H){H.classList.contains("focus-visible")||(H.classList.add("focus-visible"),H.setAttribute("data-focus-visible-added",""))}function l(H){H.hasAttribute("data-focus-visible-added")&&(H.classList.remove("focus-visible"),H.removeAttribute("data-focus-visible-added"))}function f(H){H.metaKey||H.altKey||H.ctrlKey||(s(r.activeElement)&&c(r.activeElement),o=!0)}function u(H){o=!1}function h(H){s(H.target)&&(o||p(H.target))&&c(H.target)}function w(H){s(H.target)&&(H.target.classList.contains("focus-visible")||H.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(H.target))}function A(H){document.visibilityState==="hidden"&&(n&&(o=!0),te())}function te(){document.addEventListener("mousemove",J),document.addEventListener("mousedown",J),document.addEventListener("mouseup",J),document.addEventListener("pointermove",J),document.addEventListener("pointerdown",J),document.addEventListener("pointerup",J),document.addEventListener("touchmove",J),document.addEventListener("touchstart",J),document.addEventListener("touchend",J)}function ie(){document.removeEventListener("mousemove",J),document.removeEventListener("mousedown",J),document.removeEventListener("mouseup",J),document.removeEventListener("pointermove",J),document.removeEventListener("pointerdown",J),document.removeEventListener("pointerup",J),document.removeEventListener("touchmove",J),document.removeEventListener("touchstart",J),document.removeEventListener("touchend",J)}function J(H){H.target.nodeName&&H.target.nodeName.toLowerCase()==="html"||(o=!1,ie())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",A,!0),te(),r.addEventListener("focus",h,!0),r.addEventListener("blur",w,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var Yr=yr((Rt,Kr)=>{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Rt=="object"&&typeof Kr=="object"?Kr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Rt=="object"?Rt.ClipboardJS=r():t.ClipboardJS=r()})(Rt,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Ii}});var a=i(279),s=i.n(a),p=i(370),c=i.n(p),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(_){return!1}}var h=function(_){var O=f()(_);return u("cut"),O},w=h;function A(V){var _=document.documentElement.getAttribute("dir")==="rtl",O=document.createElement("textarea");O.style.fontSize="12pt",O.style.border="0",O.style.padding="0",O.style.margin="0",O.style.position="absolute",O.style[_?"right":"left"]="-9999px";var j=window.pageYOffset||document.documentElement.scrollTop;return O.style.top="".concat(j,"px"),O.setAttribute("readonly",""),O.value=V,O}var te=function(_,O){var j=A(_);O.container.appendChild(j);var D=f()(j);return u("copy"),j.remove(),D},ie=function(_){var O=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},j="";return typeof _=="string"?j=te(_,O):_ instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(_==null?void 0:_.type)?j=te(_.value,O):(j=f()(_),u("copy")),j},J=ie;function H(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?H=function(O){return typeof O}:H=function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},H(V)}var mt=function(){var _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},O=_.action,j=O===void 0?"copy":O,D=_.container,Y=_.target,ke=_.text;if(j!=="copy"&&j!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&H(Y)==="object"&&Y.nodeType===1){if(j==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(j==="cut"&&(Y.hasAttribute("readonly")||Y.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(ke)return J(ke,{container:D});if(Y)return j==="cut"?w(Y):J(Y,{container:D})},ze=mt;function Ie(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ie=function(O){return typeof O}:Ie=function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},Ie(V)}function _i(V,_){if(!(V instanceof _))throw new TypeError("Cannot call a class as a function")}function ro(V,_){for(var O=0;O<_.length;O++){var j=_[O];j.enumerable=j.enumerable||!1,j.configurable=!0,"value"in j&&(j.writable=!0),Object.defineProperty(V,j.key,j)}}function Ai(V,_,O){return _&&ro(V.prototype,_),O&&ro(V,O),V}function Ci(V,_){if(typeof _!="function"&&_!==null)throw new TypeError("Super expression must either be null or a function");V.prototype=Object.create(_&&_.prototype,{constructor:{value:V,writable:!0,configurable:!0}}),_&&br(V,_)}function br(V,_){return br=Object.setPrototypeOf||function(j,D){return j.__proto__=D,j},br(V,_)}function Hi(V){var _=Pi();return function(){var j=Wt(V),D;if(_){var Y=Wt(this).constructor;D=Reflect.construct(j,arguments,Y)}else D=j.apply(this,arguments);return ki(this,D)}}function ki(V,_){return _&&(Ie(_)==="object"||typeof _=="function")?_:$i(V)}function $i(V){if(V===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return V}function Pi(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(V){return!1}}function Wt(V){return Wt=Object.setPrototypeOf?Object.getPrototypeOf:function(O){return O.__proto__||Object.getPrototypeOf(O)},Wt(V)}function vr(V,_){var O="data-clipboard-".concat(V);if(_.hasAttribute(O))return _.getAttribute(O)}var Ri=function(V){Ci(O,V);var _=Hi(O);function O(j,D){var Y;return _i(this,O),Y=_.call(this),Y.resolveOptions(D),Y.listenClick(j),Y}return Ai(O,[{key:"resolveOptions",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof D.action=="function"?D.action:this.defaultAction,this.target=typeof D.target=="function"?D.target:this.defaultTarget,this.text=typeof D.text=="function"?D.text:this.defaultText,this.container=Ie(D.container)==="object"?D.container:document.body}},{key:"listenClick",value:function(D){var Y=this;this.listener=c()(D,"click",function(ke){return Y.onClick(ke)})}},{key:"onClick",value:function(D){var Y=D.delegateTarget||D.currentTarget,ke=this.action(Y)||"copy",Ut=ze({action:ke,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(Ut?"success":"error",{action:ke,text:Ut,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(D){return vr("action",D)}},{key:"defaultTarget",value:function(D){var Y=vr("target",D);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(D){return vr("text",D)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(D){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(D,Y)}},{key:"cut",value:function(D){return w(D)}},{key:"isSupported",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof D=="string"?[D]:D,ke=!!document.queryCommandSupported;return Y.forEach(function(Ut){ke=ke&&!!document.queryCommandSupported(Ut)}),ke}}]),O}(s()),Ii=Ri},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,p){for(;s&&s.nodeType!==n;){if(typeof s.matches=="function"&&s.matches(p))return s;s=s.parentNode}}o.exports=a},438:function(o,n,i){var a=i(828);function s(l,f,u,h,w){var A=c.apply(this,arguments);return l.addEventListener(u,A,w),{destroy:function(){l.removeEventListener(u,A,w)}}}function p(l,f,u,h,w){return typeof l.addEventListener=="function"?s.apply(null,arguments):typeof u=="function"?s.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(A){return s(A,f,u,h,w)}))}function c(l,f,u,h){return function(w){w.delegateTarget=a(w.target,f),w.delegateTarget&&h.call(l,w)}}o.exports=p},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(o,n,i){var a=i(879),s=i(438);function p(u,h,w){if(!u&&!h&&!w)throw new Error("Missing required arguments");if(!a.string(h))throw new TypeError("Second argument must be a String");if(!a.fn(w))throw new TypeError("Third argument must be a Function");if(a.node(u))return c(u,h,w);if(a.nodeList(u))return l(u,h,w);if(a.string(u))return f(u,h,w);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(u,h,w){return u.addEventListener(h,w),{destroy:function(){u.removeEventListener(h,w)}}}function l(u,h,w){return Array.prototype.forEach.call(u,function(A){A.addEventListener(h,w)}),{destroy:function(){Array.prototype.forEach.call(u,function(A){A.removeEventListener(h,w)})}}}function f(u,h,w){return s(document.body,u,h,w)}o.exports=p},817:function(o){function n(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var p=window.getSelection(),c=document.createRange();c.selectNodeContents(i),p.removeAllRanges(),p.addRange(c),a=p.toString()}return a}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,a,s){var p=this.e||(this.e={});return(p[i]||(p[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var p=this;function c(){p.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),p=0,c=s.length;for(p;p{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var ts=/["'&<>]/;ei.exports=rs;function rs(e){var t=""+e,r=ts.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function N(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],a;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(s){a={error:s}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function q(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||s(u,h)})})}function s(u,h){try{p(o[u](h))}catch(w){f(i[0][3],w)}}function p(u){u.value instanceof nt?Promise.resolve(u.value.v).then(c,l):f(i[0][2],u)}function c(u){s("next",u)}function l(u){s("throw",u)}function f(u,h){u(h),i.shift(),i.length&&s(i[0][0],i[0][1])}}function mo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof de=="function"?de(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(a){return new Promise(function(s,p){a=e[i](a),n(s,p,a.done,a.value)})}}function n(i,a,s,p){Promise.resolve(p).then(function(c){i({value:c,done:s})},a)}}function k(e){return typeof e=="function"}function ft(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var zt=ft(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function qe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Fe=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=de(a),p=s.next();!p.done;p=s.next()){var c=p.value;c.remove(this)}}catch(A){t={error:A}}finally{try{p&&!p.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var l=this.initialTeardown;if(k(l))try{l()}catch(A){i=A instanceof zt?A.errors:[A]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=de(f),h=u.next();!h.done;h=u.next()){var w=h.value;try{fo(w)}catch(A){i=i!=null?i:[],A instanceof zt?i=q(q([],N(i)),N(A.errors)):i.push(A)}}}catch(A){o={error:A}}finally{try{h&&!h.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new zt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)fo(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&qe(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&qe(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=Fe.EMPTY;function qt(e){return e instanceof Fe||e&&"closed"in e&&k(e.remove)&&k(e.add)&&k(e.unsubscribe)}function fo(e){k(e)?e():e.unsubscribe()}var $e={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var ut={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,a=n.isStopped,s=n.observers;return i||a?Tr:(this.currentObservers=null,s.push(r),new Fe(function(){o.currentObservers=null,qe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,a=o.isStopped;n?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,o){return new Eo(r,o)},t}(F);var Eo=function(e){re(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:Tr},t}(g);var _r=function(e){re(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(g);var Lt={now:function(){return(Lt.delegate||Date).now()},delegate:void 0};var _t=function(e){re(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=Lt);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,a=o._infiniteTimeWindow,s=o._timestampProvider,p=o._windowTime;n||(i.push(r),!a&&i.push(s.now()+p)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,a=n._buffer,s=a.slice(),p=0;p0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t}(vt);var So=function(e){re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(gt);var Hr=new So(To);var Oo=function(e){re(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=bt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var a=r.actions;o!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==o&&(bt.cancelAnimationFrame(o),r._scheduled=void 0)},t}(vt);var Mo=function(e){re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o=this._scheduled;this._scheduled=void 0;var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(gt);var me=new Mo(Oo);var M=new F(function(e){return e.complete()});function Yt(e){return e&&k(e.schedule)}function kr(e){return e[e.length-1]}function Xe(e){return k(kr(e))?e.pop():void 0}function He(e){return Yt(kr(e))?e.pop():void 0}function Bt(e,t){return typeof kr(e)=="number"?e.pop():t}var xt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Gt(e){return k(e==null?void 0:e.then)}function Jt(e){return k(e[ht])}function Xt(e){return Symbol.asyncIterator&&k(e==null?void 0:e[Symbol.asyncIterator])}function Zt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Gi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var er=Gi();function tr(e){return k(e==null?void 0:e[er])}function rr(e){return lo(this,arguments,function(){var r,o,n,i;return Nt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,nt(r.read())];case 3:return o=a.sent(),n=o.value,i=o.done,i?[4,nt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,nt(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function or(e){return k(e==null?void 0:e.getReader)}function W(e){if(e instanceof F)return e;if(e!=null){if(Jt(e))return Ji(e);if(xt(e))return Xi(e);if(Gt(e))return Zi(e);if(Xt(e))return Lo(e);if(tr(e))return ea(e);if(or(e))return ta(e)}throw Zt(e)}function Ji(e){return new F(function(t){var r=e[ht]();if(k(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Xi(e){return new F(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?b(function(n,i){return e(n,i,o)}):le,we(1),r?Be(t):zo(function(){return new ir}))}}function Fr(e){return e<=0?function(){return M}:x(function(t,r){var o=[];t.subscribe(T(r,function(n){o.push(n),e=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new g}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,p=s===void 0?!0:s;return function(c){var l,f,u,h=0,w=!1,A=!1,te=function(){f==null||f.unsubscribe(),f=void 0},ie=function(){te(),l=u=void 0,w=A=!1},J=function(){var H=l;ie(),H==null||H.unsubscribe()};return x(function(H,mt){h++,!A&&!w&&te();var ze=u=u!=null?u:r();mt.add(function(){h--,h===0&&!A&&!w&&(f=Wr(J,p))}),ze.subscribe(mt),!l&&h>0&&(l=new at({next:function(Ie){return ze.next(Ie)},error:function(Ie){A=!0,te(),f=Wr(ie,n,Ie),ze.error(Ie)},complete:function(){w=!0,te(),f=Wr(ie,a),ze.complete()}}),W(H).subscribe(l))})(c)}}function Wr(e,t){for(var r=[],o=2;oe.next(document)),e}function $(e,t=document){return Array.from(t.querySelectorAll(e))}function P(e,t=document){let r=fe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function fe(e,t=document){return t.querySelector(e)||void 0}function Re(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var xa=S(d(document.body,"focusin"),d(document.body,"focusout")).pipe(_e(1),Q(void 0),m(()=>Re()||document.body),B(1));function et(e){return xa.pipe(m(t=>e.contains(t)),K())}function kt(e,t){return C(()=>S(d(e,"mouseenter").pipe(m(()=>!0)),d(e,"mouseleave").pipe(m(()=>!1))).pipe(t?Ht(r=>Me(+!r*t)):le,Q(e.matches(":hover"))))}function Bo(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Bo(e,r)}function E(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Bo(o,n);return o}function sr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function wt(e){let t=E("script",{src:e});return C(()=>(document.head.appendChild(t),S(d(t,"load"),d(t,"error").pipe(v(()=>$r(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),L(()=>document.head.removeChild(t)),we(1))))}var Go=new g,ya=C(()=>typeof ResizeObserver=="undefined"?wt("https://unpkg.com/resize-observer-polyfill"):I(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>Go.next(t)))),v(e=>S(Ke,I(e)).pipe(L(()=>e.disconnect()))),B(1));function ce(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return ya.pipe(y(r=>r.observe(t)),v(r=>Go.pipe(b(o=>o.target===t),L(()=>r.unobserve(t)))),m(()=>ce(e)),Q(ce(e)))}function Tt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function cr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function Jo(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Ue(e){return{x:e.offsetLeft,y:e.offsetTop}}function Xo(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function Zo(e){return S(d(window,"load"),d(window,"resize")).pipe(Le(0,me),m(()=>Ue(e)),Q(Ue(e)))}function pr(e){return{x:e.scrollLeft,y:e.scrollTop}}function De(e){return S(d(e,"scroll"),d(window,"scroll"),d(window,"resize")).pipe(Le(0,me),m(()=>pr(e)),Q(pr(e)))}var en=new g,Ea=C(()=>I(new IntersectionObserver(e=>{for(let t of e)en.next(t)},{threshold:0}))).pipe(v(e=>S(Ke,I(e)).pipe(L(()=>e.disconnect()))),B(1));function tt(e){return Ea.pipe(y(t=>t.observe(e)),v(t=>en.pipe(b(({target:r})=>r===e),L(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function tn(e,t=16){return De(e).pipe(m(({y:r})=>{let o=ce(e),n=Tt(e);return r>=n.height-o.height-t}),K())}var lr={drawer:P("[data-md-toggle=drawer]"),search:P("[data-md-toggle=search]")};function rn(e){return lr[e].checked}function Je(e,t){lr[e].checked!==t&&lr[e].click()}function Ve(e){let t=lr[e];return d(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function wa(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ta(){return S(d(window,"compositionstart").pipe(m(()=>!0)),d(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function on(){let e=d(window,"keydown").pipe(b(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:rn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),b(({mode:t,type:r})=>{if(t==="global"){let o=Re();if(typeof o!="undefined")return!wa(o,r)}return!0}),pe());return Ta().pipe(v(t=>t?M:e))}function xe(){return new URL(location.href)}function pt(e,t=!1){if(G("navigation.instant")&&!t){let r=E("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function nn(){return new g}function an(){return location.hash.slice(1)}function sn(e){let t=E("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Sa(e){return S(d(window,"hashchange"),e).pipe(m(an),Q(an()),b(t=>t.length>0),B(1))}function cn(e){return Sa(e).pipe(m(t=>fe(`[id="${t}"]`)),b(t=>typeof t!="undefined"))}function $t(e){let t=matchMedia(e);return ar(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function pn(){let e=matchMedia("print");return S(d(window,"beforeprint").pipe(m(()=>!0)),d(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function Nr(e,t){return e.pipe(v(r=>r?t():M))}function zr(e,t){return new F(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let a=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+a*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function Ne(e,t){return zr(e,t).pipe(v(r=>r.text()),m(r=>JSON.parse(r)),B(1))}function ln(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),B(1))}function mn(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),B(1))}function fn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function un(){return S(d(window,"scroll",{passive:!0}),d(window,"resize",{passive:!0})).pipe(m(fn),Q(fn()))}function dn(){return{width:innerWidth,height:innerHeight}}function hn(){return d(window,"resize",{passive:!0}).pipe(m(dn),Q(dn()))}function bn(){return z([un(),hn()]).pipe(m(([e,t])=>({offset:e,size:t})),B(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(Z("size")),n=z([o,r]).pipe(m(()=>Ue(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:a,size:s},{x:p,y:c}])=>({offset:{x:a.x-p,y:a.y-c+i},size:s})))}function Oa(e){return d(e,"message",t=>t.data)}function Ma(e){let t=new g;return t.subscribe(r=>e.postMessage(r)),t}function vn(e,t=new Worker(e)){let r=Oa(t),o=Ma(t),n=new g;n.subscribe(o);let i=o.pipe(X(),ne(!0));return n.pipe(X(),Pe(r.pipe(U(i))),pe())}var La=P("#__config"),St=JSON.parse(La.textContent);St.base=`${new URL(St.base,xe())}`;function Te(){return St}function G(e){return St.features.includes(e)}function ye(e,t){return typeof t!="undefined"?St.translations[e].replace("#",t.toString()):St.translations[e]}function Se(e,t=document){return P(`[data-md-component=${e}]`,t)}function ae(e,t=document){return $(`[data-md-component=${e}]`,t)}function _a(e){let t=P(".md-typeset > :first-child",e);return d(t,"click",{once:!0}).pipe(m(()=>P(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function gn(e){if(!G("announce.dismiss")||!e.childElementCount)return M;if(!e.hidden){let t=P(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return C(()=>{let t=new g;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),_a(e).pipe(y(r=>t.next(r)),L(()=>t.complete()),m(r=>R({ref:e},r)))})}function Aa(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function xn(e,t){let r=new g;return r.subscribe(({hidden:o})=>{e.hidden=o}),Aa(e,t).pipe(y(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))}function Pt(e,t){return t==="inline"?E("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},E("div",{class:"md-tooltip__inner md-typeset"})):E("div",{class:"md-tooltip",id:e,role:"tooltip"},E("div",{class:"md-tooltip__inner md-typeset"}))}function yn(...e){return E("div",{class:"md-tooltip2",role:"tooltip"},E("div",{class:"md-tooltip2__inner md-typeset"},e))}function En(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return E("aside",{class:"md-annotation",tabIndex:0},Pt(t),E("a",{href:r,class:"md-annotation__index",tabIndex:-1},E("span",{"data-md-annotation-id":e})))}else return E("aside",{class:"md-annotation",tabIndex:0},Pt(t),E("span",{class:"md-annotation__index",tabIndex:-1},E("span",{"data-md-annotation-id":e})))}function wn(e){return E("button",{class:"md-clipboard md-icon",title:ye("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function qr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(p=>!e.terms[p]).reduce((p,c)=>[...p,E("del",null,c)," "],[]).slice(0,-1),i=Te(),a=new URL(e.location,i.base);G("search.highlight")&&a.searchParams.set("h",Object.entries(e.terms).filter(([,p])=>p).reduce((p,[c])=>`${p} ${c}`.trim(),""));let{tags:s}=Te();return E("a",{href:`${a}`,class:"md-search-result__link",tabIndex:-1},E("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&E("div",{class:"md-search-result__icon md-icon"}),r>0&&E("h1",null,e.title),r<=0&&E("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&e.tags.map(p=>{let c=s?p in s?`md-tag-icon md-tag--${s[p]}`:"md-tag-icon":"";return E("span",{class:`md-tag ${c}`},p)}),o>0&&n.length>0&&E("p",{class:"md-search-result__terms"},ye("search.result.term.missing"),": ",...n)))}function Tn(e){let t=e[0].score,r=[...e],o=Te(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),a=r.findIndex(l=>l.scoreqr(l,1)),...p.length?[E("details",{class:"md-search-result__more"},E("summary",{tabIndex:-1},E("div",null,p.length>0&&p.length===1?ye("search.result.more.one"):ye("search.result.more.other",p.length))),...p.map(l=>qr(l,1)))]:[]];return E("li",{class:"md-search-result__item"},c)}function Sn(e){return E("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>E("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?sr(r):r)))}function Qr(e){let t=`tabbed-control tabbed-control--${e}`;return E("div",{class:t,hidden:!0},E("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function On(e){return E("div",{class:"md-typeset__scrollwrap"},E("div",{class:"md-typeset__table"},e))}function Ca(e){let t=Te(),r=new URL(`../${e.version}/`,t.base);return E("li",{class:"md-version__item"},E("a",{href:`${r}`,class:"md-version__link"},e.title))}function Mn(e,t){return e=e.filter(r=>{var o;return!((o=r.properties)!=null&&o.hidden)}),E("div",{class:"md-version"},E("button",{class:"md-version__current","aria-label":ye("select.version")},t.title),E("ul",{class:"md-version__list"},e.map(Ca)))}var Ha=0;function ka(e){let t=z([et(e),kt(e)]).pipe(m(([o,n])=>o||n),K()),r=C(()=>Jo(e)).pipe(oe(De),ct(1),m(()=>Xo(e)));return t.pipe(Ae(o=>o),v(()=>z([t,r])),m(([o,n])=>({active:o,offset:n})),pe())}function $a(e,t){let{content$:r,viewport$:o}=t,n=`__tooltip2_${Ha++}`;return C(()=>{let i=new g,a=new _r(!1);i.pipe(X(),ne(!1)).subscribe(a);let s=a.pipe(Ht(c=>Me(+!c*250,Hr)),K(),v(c=>c?r:M),y(c=>c.id=n),pe());z([i.pipe(m(({active:c})=>c)),s.pipe(v(c=>kt(c,250)),Q(!1))]).pipe(m(c=>c.some(l=>l))).subscribe(a);let p=a.pipe(b(c=>c),ee(s,o),m(([c,l,{size:f}])=>{let u=e.getBoundingClientRect(),h=u.width/2;if(l.role==="tooltip")return{x:h,y:8+u.height};if(u.y>=f.height/2){let{height:w}=ce(l);return{x:h,y:-16-w}}else return{x:h,y:16+u.height}}));return z([s,i,p]).subscribe(([c,{offset:l},f])=>{c.style.setProperty("--md-tooltip-host-x",`${l.x}px`),c.style.setProperty("--md-tooltip-host-y",`${l.y}px`),c.style.setProperty("--md-tooltip-x",`${f.x}px`),c.style.setProperty("--md-tooltip-y",`${f.y}px`),c.classList.toggle("md-tooltip2--top",f.y<0),c.classList.toggle("md-tooltip2--bottom",f.y>=0)}),a.pipe(b(c=>c),ee(s,(c,l)=>l),b(c=>c.role==="tooltip")).subscribe(c=>{let l=ce(P(":scope > *",c));c.style.setProperty("--md-tooltip-width",`${l.width}px`),c.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(K(),be(me),ee(s)).subscribe(([c,l])=>{l.classList.toggle("md-tooltip2--active",c)}),z([a.pipe(b(c=>c)),s]).subscribe(([c,l])=>{l.role==="dialog"?(e.setAttribute("aria-controls",n),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",n)}),a.pipe(b(c=>!c)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),ka(e).pipe(y(c=>i.next(c)),L(()=>i.complete()),m(c=>R({ref:e},c)))})}function lt(e,{viewport$:t},r=document.body){return $a(e,{content$:new F(o=>{let n=e.title,i=yn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t})}function Pa(e,t){let r=C(()=>z([Zo(e),De(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:a,height:s}=ce(e);return{x:o-i.x+a/2,y:n-i.y+s/2}}));return et(e).pipe(v(o=>r.pipe(m(n=>({active:o,offset:n})),we(+!o||1/0))))}function Ln(e,t,{target$:r}){let[o,n]=Array.from(e.children);return C(()=>{let i=new g,a=i.pipe(X(),ne(!0));return i.subscribe({next({offset:s}){e.style.setProperty("--md-tooltip-x",`${s.x}px`),e.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),tt(e).pipe(U(a)).subscribe(s=>{e.toggleAttribute("data-md-visible",s)}),S(i.pipe(b(({active:s})=>s)),i.pipe(_e(250),b(({active:s})=>!s))).subscribe({next({active:s}){s?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Le(16,me)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(ct(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?e.style.setProperty("--md-tooltip-0",`${-s}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),d(n,"click").pipe(U(a),b(s=>!(s.metaKey||s.ctrlKey))).subscribe(s=>{s.stopPropagation(),s.preventDefault()}),d(n,"mousedown").pipe(U(a),ee(i)).subscribe(([s,{active:p}])=>{var c;if(s.button!==0||s.metaKey||s.ctrlKey)s.preventDefault();else if(p){s.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(c=Re())==null||c.blur()}}),r.pipe(U(a),b(s=>s===o),Ge(125)).subscribe(()=>e.focus()),Pa(e,t).pipe(y(s=>i.next(s)),L(()=>i.complete()),m(s=>R({ref:e},s)))})}function Ra(e){return e.tagName==="CODE"?$(".c, .c1, .cm",e):[e]}function Ia(e){let t=[];for(let r of Ra(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let a;for(;a=/(\(\d+\))(!)?/.exec(i.textContent);){let[,s,p]=a;if(typeof p=="undefined"){let c=i.splitText(a.index);i=c.splitText(s.length),t.push(c)}else{i.textContent=s,t.push(i);break}}}}return t}function _n(e,t){t.append(...Array.from(e.childNodes))}function fr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,a=new Map;for(let s of Ia(t)){let[,p]=s.textContent.match(/\((\d+)\)/);fe(`:scope > li:nth-child(${p})`,e)&&(a.set(p,En(p,i)),s.replaceWith(a.get(p)))}return a.size===0?M:C(()=>{let s=new g,p=s.pipe(X(),ne(!0)),c=[];for(let[l,f]of a)c.push([P(".md-typeset",f),P(`:scope > li:nth-child(${l})`,e)]);return o.pipe(U(p)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of c)l?_n(f,u):_n(u,f)}),S(...[...a].map(([,l])=>Ln(l,t,{target$:r}))).pipe(L(()=>s.complete()),pe())})}function An(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return An(t)}}function Cn(e,t){return C(()=>{let r=An(e);return typeof r!="undefined"?fr(r,e,t):M})}var Hn=Vt(Yr());var Fa=0;function kn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return kn(t)}}function ja(e){return ge(e).pipe(m(({width:t})=>({scrollable:Tt(e).width>t})),Z("scrollable"))}function $n(e,t){let{matches:r}=matchMedia("(hover)"),o=C(()=>{let n=new g,i=n.pipe(Fr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let a=[];if(Hn.default.isSupported()&&(e.closest(".copy")||G("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Fa++}`;let l=wn(c.id);c.insertBefore(l,e),G("content.tooltips")&&a.push(lt(l,{viewport$}))}let s=e.closest(".highlight");if(s instanceof HTMLElement){let c=kn(s);if(typeof c!="undefined"&&(s.classList.contains("annotate")||G("content.code.annotate"))){let l=fr(c,e,t);a.push(ge(s).pipe(U(i),m(({width:f,height:u})=>f&&u),K(),v(f=>f?l:M)))}}return $(":scope > span[id]",e).length&&e.classList.add("md-code__content"),ja(e).pipe(y(c=>n.next(c)),L(()=>n.complete()),m(c=>R({ref:e},c)),Pe(...a))});return G("content.lazy")?tt(e).pipe(b(n=>n),we(1),v(()=>o)):o}function Wa(e,{target$:t,print$:r}){let o=!0;return S(t.pipe(m(n=>n.closest("details:not([open])")),b(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(b(n=>n||!o),y(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Pn(e,t){return C(()=>{let r=new g;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),Wa(e,t).pipe(y(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))})}var Rn=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel rect,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel rect{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.attributeBoxEven,.attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Br,Da=0;function Va(){return typeof mermaid=="undefined"||mermaid instanceof Element?wt("https://unpkg.com/mermaid@10.7.0/dist/mermaid.min.js"):I(void 0)}function In(e){return e.classList.remove("mermaid"),Br||(Br=Va().pipe(y(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Rn,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),B(1))),Br.subscribe(()=>ao(this,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${Da++}`,r=E("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),a=r.attachShadow({mode:"closed"});a.innerHTML=n,e.replaceWith(r),i==null||i(a)})),Br.pipe(m(()=>({ref:e})))}var Fn=E("table");function jn(e){return e.replaceWith(Fn),Fn.replaceWith(On(e)),I({ref:e})}function Na(e){let t=e.find(r=>r.checked)||e[0];return S(...e.map(r=>d(r,"change").pipe(m(()=>P(`label[for="${r.id}"]`))))).pipe(Q(P(`label[for="${t.id}"]`)),m(r=>({active:r})))}function Wn(e,{viewport$:t,target$:r}){let o=P(".tabbed-labels",e),n=$(":scope > input",e),i=Qr("prev");e.append(i);let a=Qr("next");return e.append(a),C(()=>{let s=new g,p=s.pipe(X(),ne(!0));z([s,ge(e)]).pipe(U(p),Le(1,me)).subscribe({next([{active:c},l]){let f=Ue(c),{width:u}=ce(c);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let h=pr(o);(f.xh.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),z([De(o),ge(o)]).pipe(U(p)).subscribe(([c,l])=>{let f=Tt(o);i.hidden=c.x<16,a.hidden=c.x>f.width-l.width-16}),S(d(i,"click").pipe(m(()=>-1)),d(a,"click").pipe(m(()=>1))).pipe(U(p)).subscribe(c=>{let{width:l}=ce(o);o.scrollBy({left:l*c,behavior:"smooth"})}),r.pipe(U(p),b(c=>n.includes(c))).subscribe(c=>c.click()),o.classList.add("tabbed-labels--linked");for(let c of n){let l=P(`label[for="${c.id}"]`);l.replaceChildren(E("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),d(l.firstElementChild,"click").pipe(U(p),b(f=>!(f.metaKey||f.ctrlKey)),y(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return G("content.tabs.link")&&s.pipe(Ce(1),ee(t)).subscribe(([{active:c},{offset:l}])=>{let f=c.innerText.trim();if(c.hasAttribute("data-md-switching"))c.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let w of $("[data-tabs]"))for(let A of $(":scope > input",w)){let te=P(`label[for="${A.id}"]`);if(te!==c&&te.innerText.trim()===f){te.setAttribute("data-md-switching",""),A.click();break}}window.scrollTo({top:e.offsetTop-u});let h=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...h])])}}),s.pipe(U(p)).subscribe(()=>{for(let c of $("audio, video",e))c.pause()}),tt(e).pipe(v(()=>Na(n)),y(c=>s.next(c)),L(()=>s.complete()),m(c=>R({ref:e},c)))}).pipe(Qe(se))}function Un(e,{viewport$:t,target$:r,print$:o}){return S(...$(".annotate:not(.highlight)",e).map(n=>Cn(n,{target$:r,print$:o})),...$("pre:not(.mermaid) > code",e).map(n=>$n(n,{target$:r,print$:o})),...$("pre.mermaid",e).map(n=>In(n)),...$("table:not([class])",e).map(n=>jn(n)),...$("details",e).map(n=>Pn(n,{target$:r,print$:o})),...$("[data-tabs]",e).map(n=>Wn(n,{viewport$:t,target$:r})),...$("[title]",e).filter(()=>G("content.tooltips")).map(n=>lt(n,{viewport$:t})))}function za(e,{alert$:t}){return t.pipe(v(r=>S(I(!0),I(!1).pipe(Ge(2e3))).pipe(m(o=>({message:r,active:o})))))}function Dn(e,t){let r=P(".md-typeset",e);return C(()=>{let o=new g;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),za(e,t).pipe(y(n=>o.next(n)),L(()=>o.complete()),m(n=>R({ref:e},n)))})}var qa=0;function Qa(e,t){document.body.append(e);let{width:r}=ce(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=cr(t),n=typeof o!="undefined"?De(o):I({x:0,y:0}),i=S(et(t),kt(t)).pipe(K());return z([i,n]).pipe(m(([a,s])=>{let{x:p,y:c}=Ue(t),l=ce(t),f=t.closest("table");return f&&t.parentElement&&(p+=f.offsetLeft+t.parentElement.offsetLeft,c+=f.offsetTop+t.parentElement.offsetTop),{active:a,offset:{x:p-s.x+l.width/2-r/2,y:c-s.y+l.height+8}}}))}function Vn(e){let t=e.title;if(!t.length)return M;let r=`__tooltip_${qa++}`,o=Pt(r,"inline"),n=P(".md-typeset",o);return n.innerHTML=t,C(()=>{let i=new g;return i.subscribe({next({offset:a}){o.style.setProperty("--md-tooltip-x",`${a.x}px`),o.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),S(i.pipe(b(({active:a})=>a)),i.pipe(_e(250),b(({active:a})=>!a))).subscribe({next({active:a}){a?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe(Le(16,me)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(ct(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?o.style.setProperty("--md-tooltip-0",`${-a}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Qa(o,e).pipe(y(a=>i.next(a)),L(()=>i.complete()),m(a=>R({ref:e},a)))}).pipe(Qe(se))}function Ka({viewport$:e}){if(!G("header.autohide"))return I(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Ye(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),K()),o=Ve("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),K(),v(n=>n?r:I(!1)),Q(!1))}function Nn(e,t){return C(()=>z([ge(e),Ka(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),K((r,o)=>r.height===o.height&&r.hidden===o.hidden),B(1))}function zn(e,{header$:t,main$:r}){return C(()=>{let o=new g,n=o.pipe(X(),ne(!0));o.pipe(Z("active"),We(t)).subscribe(([{active:a},{hidden:s}])=>{e.classList.toggle("md-header--shadow",a&&!s),e.hidden=s});let i=ue($("[title]",e)).pipe(b(()=>G("content.tooltips")),oe(a=>Vn(a)));return r.subscribe(o),t.pipe(U(n),m(a=>R({ref:e},a)),Pe(i.pipe(U(n))))})}function Ya(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=ce(e);return{active:o>=n}}),Z("active"))}function qn(e,t){return C(()=>{let r=new g;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=fe(".md-content h1");return typeof o=="undefined"?M:Ya(o,t).pipe(y(n=>r.next(n)),L(()=>r.complete()),m(n=>R({ref:e},n)))})}function Qn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),K()),n=o.pipe(v(()=>ge(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),Z("bottom"))));return z([o,n,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:p},size:{height:c}}])=>(c=Math.max(0,c-Math.max(0,a-p,i)-Math.max(0,c+p-s)),{offset:a-i,height:c,active:a-i<=p})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function Ba(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return I(...e).pipe(oe(o=>d(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),B(1))}function Kn(e){let t=$("input",e),r=E("meta",{name:"theme-color"});document.head.appendChild(r);let o=E("meta",{name:"color-scheme"});document.head.appendChild(o);let n=$t("(prefers-color-scheme: light)");return C(()=>{let i=new g;return i.subscribe(a=>{if(document.body.setAttribute("data-md-color-switching",""),a.color.media==="(prefers-color-scheme)"){let s=matchMedia("(prefers-color-scheme: light)"),p=document.querySelector(s.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");a.color.scheme=p.getAttribute("data-md-color-scheme"),a.color.primary=p.getAttribute("data-md-color-primary"),a.color.accent=p.getAttribute("data-md-color-accent")}for(let[s,p]of Object.entries(a.color))document.body.setAttribute(`data-md-color-${s}`,p);for(let s=0;sa.key==="Enter"),ee(i,(a,s)=>s)).subscribe(({index:a})=>{a=(a+1)%t.length,t[a].click(),t[a].focus()}),i.pipe(m(()=>{let a=Se("header"),s=window.getComputedStyle(a);return o.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(p=>(+p).toString(16).padStart(2,"0")).join("")})).subscribe(a=>r.content=`#${a}`),i.pipe(be(se)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),Ba(t).pipe(U(n.pipe(Ce(1))),st(),y(a=>i.next(a)),L(()=>i.complete()),m(a=>R({ref:e},a)))})}function Yn(e,{progress$:t}){return C(()=>{let r=new g;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(y(o=>r.next({value:o})),L(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Gr=Vt(Yr());function Ga(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function Bn({alert$:e}){Gr.default.isSupported()&&new F(t=>{new Gr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||Ga(P(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(y(t=>{t.trigger.focus()}),m(()=>ye("clipboard.copied"))).subscribe(e)}function Gn(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function Ja(e,t){let r=new Map;for(let o of $("url",e)){let n=P("loc",o),i=[Gn(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let a of $("[rel=alternate]",o)){let s=a.getAttribute("href");s!=null&&i.push(Gn(new URL(s),t))}}return r}function ur(e){return mn(new URL("sitemap.xml",e)).pipe(m(t=>Ja(t,new URL(e))),ve(()=>I(new Map)))}function Xa(e,t){if(!(e.target instanceof Element))return M;let r=e.target.closest("a");if(r===null)return M;if(r.target||e.metaKey||e.ctrlKey)return M;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),I(new URL(r.href))):M}function Jn(e){let t=new Map;for(let r of $(":scope > *",e.head))t.set(r.outerHTML,r);return t}function Xn(e){for(let t of $("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return I(e)}function Za(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...G("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=fe(o),i=fe(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=Jn(document);for(let[o,n]of Jn(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Se("container");return je($("script",r)).pipe(v(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new F(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),M}),X(),ne(document))}function Zn({location$:e,viewport$:t,progress$:r}){let o=Te();if(location.protocol==="file:")return M;let n=ur(o.base);I(document).subscribe(Xn);let i=d(document.body,"click").pipe(We(n),v(([p,c])=>Xa(p,c)),pe()),a=d(window,"popstate").pipe(m(xe),pe());i.pipe(ee(t)).subscribe(([p,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",p)}),S(i,a).subscribe(e);let s=e.pipe(Z("pathname"),v(p=>ln(p,{progress$:r}).pipe(ve(()=>(pt(p,!0),M)))),v(Xn),v(Za),pe());return S(s.pipe(ee(e,(p,c)=>c)),e.pipe(Z("pathname"),v(()=>e),Z("hash")),e.pipe(K((p,c)=>p.pathname===c.pathname&&p.hash===c.hash),v(()=>i),y(()=>history.back()))).subscribe(p=>{var c,l;history.state!==null||!p.hash?window.scrollTo(0,(l=(c=history.state)==null?void 0:c.y)!=null?l:0):(history.scrollRestoration="auto",sn(p.hash),history.scrollRestoration="manual")}),e.subscribe(()=>{history.scrollRestoration="manual"}),d(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),t.pipe(Z("offset"),_e(100)).subscribe(({offset:p})=>{history.replaceState(p,"")}),s}var ri=Vt(ti());function oi(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,a)=>`${i}${a}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(0,ri.default)(a).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function It(e){return e.type===1}function dr(e){return e.type===3}function ni(e,t){let r=vn(e);return S(I(location.protocol!=="file:"),Ve("search")).pipe(Ae(o=>o),v(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:G("search.suggest")}}})),r}function ii({document$:e}){let t=Te(),r=Ne(new URL("../versions.json",t.base)).pipe(ve(()=>M)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:a,aliases:s})=>a===i||s.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),v(n=>d(document.body,"click").pipe(b(i=>!i.metaKey&&!i.ctrlKey),ee(o),v(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&n.has(s.href)){let p=s.href;return!i.target.closest(".md-version")&&n.get(p)===a?M:(i.preventDefault(),I(p))}}return M}),v(i=>{let{version:a}=n.get(i);return ur(new URL(i)).pipe(m(s=>{let c=xe().href.replace(t.base,"");return s.has(c.split("#")[0])?new URL(`../${a}/${c}`,t.base):new URL(i)}))})))).subscribe(n=>pt(n,!0)),z([r,o]).subscribe(([n,i])=>{P(".md-header__topic").appendChild(Mn(n,i))}),e.pipe(v(()=>o)).subscribe(n=>{var a;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let s=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(s)||(s=[s]);e:for(let p of s)for(let c of n.aliases.concat(n.version))if(new RegExp(p,"i").test(c)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let s of ae("outdated"))s.hidden=!1})}function ns(e,{worker$:t}){let{searchParams:r}=xe();r.has("q")&&(Je("search",!0),e.value=r.get("q"),e.focus(),Ve("search").pipe(Ae(i=>!i)).subscribe(()=>{let i=xe();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=et(e),n=S(t.pipe(Ae(It)),d(e,"keyup"),o).pipe(m(()=>e.value),K());return z([n,o]).pipe(m(([i,a])=>({value:i,focus:a})),B(1))}function ai(e,{worker$:t}){let r=new g,o=r.pipe(X(),ne(!0));z([t.pipe(Ae(It)),r],(i,a)=>a).pipe(Z("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(Z("focus")).subscribe(({focus:i})=>{i&&Je("search",i)}),d(e.form,"reset").pipe(U(o)).subscribe(()=>e.focus());let n=P("header [for=__search]");return d(n,"click").subscribe(()=>e.focus()),ns(e,{worker$:t}).pipe(y(i=>r.next(i)),L(()=>r.complete()),m(i=>R({ref:e},i)),B(1))}function si(e,{worker$:t,query$:r}){let o=new g,n=tn(e.parentElement).pipe(b(Boolean)),i=e.parentElement,a=P(":scope > :first-child",e),s=P(":scope > :last-child",e);Ve("search").subscribe(l=>s.setAttribute("role",l?"list":"presentation")),o.pipe(ee(r),Ur(t.pipe(Ae(It)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:a.textContent=f.length?ye("search.result.none"):ye("search.result.placeholder");break;case 1:a.textContent=ye("search.result.one");break;default:let u=sr(l.length);a.textContent=ye("search.result.other",u)}});let p=o.pipe(y(()=>s.innerHTML=""),v(({items:l})=>S(I(...l.slice(0,10)),I(...l.slice(10)).pipe(Ye(4),Vr(n),v(([f])=>f)))),m(Tn),pe());return p.subscribe(l=>s.appendChild(l)),p.pipe(oe(l=>{let f=fe("details",l);return typeof f=="undefined"?M:d(f,"toggle").pipe(U(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(b(dr),m(({data:l})=>l)).pipe(y(l=>o.next(l)),L(()=>o.complete()),m(l=>R({ref:e},l)))}function is(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=xe();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function ci(e,t){let r=new g,o=r.pipe(X(),ne(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),d(e,"click").pipe(U(o)).subscribe(n=>n.preventDefault()),is(e,t).pipe(y(n=>r.next(n)),L(()=>r.complete()),m(n=>R({ref:e},n)))}function pi(e,{worker$:t,keyboard$:r}){let o=new g,n=Se("search-query"),i=S(d(n,"keydown"),d(n,"focus")).pipe(be(se),m(()=>n.value),K());return o.pipe(We(i),m(([{suggest:s},p])=>{let c=p.split(/([\s-]+)/);if(s!=null&&s.length&&c[c.length-1]){let l=s[s.length-1];l.startsWith(c[c.length-1])&&(c[c.length-1]=l)}else c.length=0;return c})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(b(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(b(dr),m(({data:s})=>s)).pipe(y(s=>o.next(s)),L(()=>o.complete()),m(()=>({ref:e})))}function li(e,{index$:t,keyboard$:r}){let o=Te();try{let n=ni(o.search,t),i=Se("search-query",e),a=Se("search-result",e);d(e,"click").pipe(b(({target:p})=>p instanceof Element&&!!p.closest("a"))).subscribe(()=>Je("search",!1)),r.pipe(b(({mode:p})=>p==="search")).subscribe(p=>{let c=Re();switch(p.type){case"Enter":if(c===i){let l=new Map;for(let f of $(":first-child [href]",a)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,h])=>h-u);f.click()}p.claim()}break;case"Escape":case"Tab":Je("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof c=="undefined")i.focus();else{let l=[i,...$(":not(details) > [href], summary, details[open] [href]",a)],f=Math.max(0,(Math.max(0,l.indexOf(c))+l.length+(p.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}p.claim();break;default:i!==Re()&&i.focus()}}),r.pipe(b(({mode:p})=>p==="global")).subscribe(p=>{switch(p.type){case"f":case"s":case"/":i.focus(),i.select(),p.claim();break}});let s=ai(i,{worker$:n});return S(s,si(a,{worker$:n,query$:s})).pipe(Pe(...ae("search-share",e).map(p=>ci(p,{query$:s})),...ae("search-suggest",e).map(p=>pi(p,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ke}}function mi(e,{index$:t,location$:r}){return z([t,r.pipe(Q(xe()),b(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>oi(o.config)(n.searchParams.get("h"))),m(o=>{var a;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let p=s.textContent,c=o(p);c.length>p.length&&n.set(s,c)}for(let[s,p]of n){let{childNodes:c}=E("span",null,p);s.replaceWith(...Array.from(c))}return{ref:e,nodes:n}}))}function as(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(n,Math.max(0,s-i))-n,{height:a,locked:s>=i+n})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function Jr(e,o){var n=o,{header$:t}=n,r=io(n,["header$"]);let i=P(".md-sidebar__scrollwrap",e),{y:a}=Ue(i);return C(()=>{let s=new g,p=s.pipe(X(),ne(!0)),c=s.pipe(Le(0,me));return c.pipe(ee(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*a}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),c.pipe(Ae()).subscribe(()=>{for(let l of $(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:h}=ce(f);f.scrollTo({top:u-h/2})}}}),ue($("label[tabindex]",e)).pipe(oe(l=>d(l,"click").pipe(be(se),m(()=>l),U(p)))).subscribe(l=>{let f=P(`[id="${l.htmlFor}"]`);P(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),as(e,r).pipe(y(l=>s.next(l)),L(()=>s.complete()),m(l=>R({ref:e},l)))})}function fi(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return Ct(Ne(`${r}/releases/latest`).pipe(ve(()=>M),m(o=>({version:o.tag_name})),Be({})),Ne(r).pipe(ve(()=>M),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),Be({}))).pipe(m(([o,n])=>R(R({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return Ne(r).pipe(m(o=>({repositories:o.public_repos})),Be({}))}}function ui(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return Ne(r).pipe(ve(()=>M),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),Be({}))}function di(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return fi(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return ui(r,o)}return M}var ss;function cs(e){return ss||(ss=C(()=>{let t=__md_get("__source",sessionStorage);if(t)return I(t);if(ae("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return M}return di(e.href).pipe(y(o=>__md_set("__source",o,sessionStorage)))}).pipe(ve(()=>M),b(t=>Object.keys(t).length>0),m(t=>({facts:t})),B(1)))}function hi(e){let t=P(":scope > :last-child",e);return C(()=>{let r=new g;return r.subscribe(({facts:o})=>{t.appendChild(Sn(o)),t.classList.add("md-source__repository--active")}),cs(e).pipe(y(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))})}function ps(e,{viewport$:t,header$:r}){return ge(document.body).pipe(v(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),Z("hidden"))}function bi(e,t){return C(()=>{let r=new g;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(G("navigation.tabs.sticky")?I({hidden:!1}):ps(e,t)).pipe(y(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))})}function ls(e,{viewport$:t,header$:r}){let o=new Map,n=$(".md-nav__link",e);for(let s of n){let p=decodeURIComponent(s.hash.substring(1)),c=fe(`[id="${p}"]`);typeof c!="undefined"&&o.set(s,c)}let i=r.pipe(Z("height"),m(({height:s})=>{let p=Se("main"),c=P(":scope > :first-child",p);return s+.8*(c.offsetTop-p.offsetTop)}),pe());return ge(document.body).pipe(Z("height"),v(s=>C(()=>{let p=[];return I([...o].reduce((c,[l,f])=>{for(;p.length&&o.get(p[p.length-1]).tagName>=f.tagName;)p.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let h=f.offsetParent;for(;h;h=h.offsetParent)u+=h.offsetTop;return c.set([...p=[...p,l]].reverse(),u)},new Map))}).pipe(m(p=>new Map([...p].sort(([,c],[,l])=>c-l))),We(i),v(([p,c])=>t.pipe(jr(([l,f],{offset:{y:u},size:h})=>{let w=u+h.height>=Math.floor(s.height);for(;f.length;){let[,A]=f[0];if(A-c=u&&!w)f=[l.pop(),...f];else break}return[l,f]},[[],[...p]]),K((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([s,p])=>({prev:s.map(([c])=>c),next:p.map(([c])=>c)})),Q({prev:[],next:[]}),Ye(2,1),m(([s,p])=>s.prev.length{let i=new g,a=i.pipe(X(),ne(!0));if(i.subscribe(({prev:s,next:p})=>{for(let[c]of p)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[l]]of s.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",c===s.length-1)}),G("toc.follow")){let s=S(t.pipe(_e(1),m(()=>{})),t.pipe(_e(250),m(()=>"smooth")));i.pipe(b(({prev:p})=>p.length>0),We(o.pipe(be(se))),ee(s)).subscribe(([[{prev:p}],c])=>{let[l]=p[p.length-1];if(l.offsetHeight){let f=cr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:h}=ce(f);f.scrollTo({top:u-h/2,behavior:c})}}})}return G("navigation.tracking")&&t.pipe(U(a),Z("offset"),_e(250),Ce(1),U(n.pipe(Ce(1))),st({delay:250}),ee(i)).subscribe(([,{prev:s}])=>{let p=xe(),c=s[s.length-1];if(c&&c.length){let[l]=c,{hash:f}=new URL(l.href);p.hash!==f&&(p.hash=f,history.replaceState({},"",`${p}`))}else p.hash="",history.replaceState({},"",`${p}`)}),ls(e,{viewport$:t,header$:r}).pipe(y(s=>i.next(s)),L(()=>i.complete()),m(s=>R({ref:e},s)))})}function ms(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:a}})=>a),Ye(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return z([i,n]).pipe(m(([a,s])=>!(a&&s)),K(),U(o.pipe(Ce(1))),ne(!0),st({delay:250}),m(a=>({hidden:a})))}function gi(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new g,a=i.pipe(X(),ne(!0));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(U(a),Z("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),d(e,"click").subscribe(s=>{s.preventDefault(),window.scrollTo({top:0})}),ms(e,{viewport$:t,main$:o,target$:n}).pipe(y(s=>i.next(s)),L(()=>i.complete()),m(s=>R({ref:e},s)))}function xi({document$:e,viewport$:t}){e.pipe(v(()=>$(".md-ellipsis")),oe(r=>tt(r).pipe(U(e.pipe(Ce(1))),b(o=>o),m(()=>r),we(1))),b(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,lt(n,{viewport$:t}).pipe(U(e.pipe(Ce(1))),L(()=>n.removeAttribute("title")))})).subscribe(),e.pipe(v(()=>$(".md-status")),oe(r=>lt(r,{viewport$:t}))).subscribe()}function yi({document$:e,tablet$:t}){e.pipe(v(()=>$(".md-toggle--indeterminate")),y(r=>{r.indeterminate=!0,r.checked=!1}),oe(r=>d(r,"change").pipe(Dr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),ee(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function fs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Ei({document$:e}){e.pipe(v(()=>$("[data-md-scrollfix]")),y(t=>t.removeAttribute("data-md-scrollfix")),b(fs),oe(t=>d(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function wi({viewport$:e,tablet$:t}){z([Ve("search"),t]).pipe(m(([r,o])=>r&&!o),v(r=>I(r).pipe(Ge(r?400:100))),ee(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function us(){return location.protocol==="file:"?wt(`${new URL("search/search_index.js",Xr.base)}`).pipe(m(()=>__index),B(1)):Ne(new URL("search/search_index.json",Xr.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ot=Yo(),jt=nn(),Ot=cn(jt),Zr=on(),Oe=bn(),hr=$t("(min-width: 960px)"),Si=$t("(min-width: 1220px)"),Oi=pn(),Xr=Te(),Mi=document.forms.namedItem("search")?us():Ke,eo=new g;Bn({alert$:eo});var to=new g;G("navigation.instant")&&Zn({location$:jt,viewport$:Oe,progress$:to}).subscribe(ot);var Ti;((Ti=Xr.version)==null?void 0:Ti.provider)==="mike"&&ii({document$:ot});S(jt,Ot).pipe(Ge(125)).subscribe(()=>{Je("drawer",!1),Je("search",!1)});Zr.pipe(b(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=fe("link[rel=prev]");typeof t!="undefined"&&pt(t);break;case"n":case".":let r=fe("link[rel=next]");typeof r!="undefined"&&pt(r);break;case"Enter":let o=Re();o instanceof HTMLLabelElement&&o.click()}});xi({viewport$:Oe,document$:ot});yi({document$:ot,tablet$:hr});Ei({document$:ot});wi({viewport$:Oe,tablet$:hr});var rt=Nn(Se("header"),{viewport$:Oe}),Ft=ot.pipe(m(()=>Se("main")),v(e=>Qn(e,{viewport$:Oe,header$:rt})),B(1)),ds=S(...ae("consent").map(e=>xn(e,{target$:Ot})),...ae("dialog").map(e=>Dn(e,{alert$:eo})),...ae("header").map(e=>zn(e,{viewport$:Oe,header$:rt,main$:Ft})),...ae("palette").map(e=>Kn(e)),...ae("progress").map(e=>Yn(e,{progress$:to})),...ae("search").map(e=>li(e,{index$:Mi,keyboard$:Zr})),...ae("source").map(e=>hi(e))),hs=C(()=>S(...ae("announce").map(e=>gn(e)),...ae("content").map(e=>Un(e,{viewport$:Oe,target$:Ot,print$:Oi})),...ae("content").map(e=>G("search.highlight")?mi(e,{index$:Mi,location$:jt}):M),...ae("header-title").map(e=>qn(e,{viewport$:Oe,header$:rt})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Nr(Si,()=>Jr(e,{viewport$:Oe,header$:rt,main$:Ft})):Nr(hr,()=>Jr(e,{viewport$:Oe,header$:rt,main$:Ft}))),...ae("tabs").map(e=>bi(e,{viewport$:Oe,header$:rt})),...ae("toc").map(e=>vi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Ot})),...ae("top").map(e=>gi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Ot})))),Li=ot.pipe(v(()=>hs),Pe(ds),B(1));Li.subscribe();window.document$=ot;window.location$=jt;window.target$=Ot;window.keyboard$=Zr;window.viewport$=Oe;window.tablet$=hr;window.screen$=Si;window.print$=Oi;window.alert$=eo;window.progress$=to;window.component$=Li;})(); +//# sourceMappingURL=bundle.dd8806f2.min.js.map + diff --git a/head/assets/javascripts/bundle.dd8806f2.min.js.map b/head/assets/javascripts/bundle.dd8806f2.min.js.map new file mode 100644 index 000000000..17bf02572 --- /dev/null +++ b/head/assets/javascripts/bundle.dd8806f2.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/rxjs/node_modules/tslib/tslib.es6.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2024 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an -

This video is a walkthrough of the FireFly Sandbox and FireFly Explorer from the FireFly 1.0 launch webinar. At this point you should be able to follow along and try all these same things on your own machine.

- - -
- - -

When you set up your FireFly stack in the previous section, it should have printed some URLs like the following. Open the link in a browser for the `Sandbox UI for member ‘0’. It should be: http://127.0.0.1:5109

- -
ff start dev
-this will take a few seconds longer since this is the first time you're running this stack...
-done
-
-Web UI for member '0': http://127.0.0.1:5000/ui
-Sandbox UI for member '0': http://127.0.0.1:5109
-
-Web UI for member '1': http://127.0.0.1:5001/ui
-Sandbox UI for member '1': http://127.0.0.1:5209
-
-Web UI for member '2': http://127.0.0.1:5002/ui
-Sandbox UI for member '2': http://127.0.0.1:5309
-
-
-To see logs for your stack run:
-
-ff logs dev
-
-

- - - Sandbox Layout - - -

- - -

Sandbox Messages

- -

The Sandbox is split up into three columns:

-

- - - Left column: Prepare your request - - -

- -

On the left-hand side of the page, you can fill out simple form fields to construct messages and more. Some tabs have more types of requests on them in sections that can be expanded or collapsed. Across the top of this column there are three tabs that switch between the three main sets of functionality in the Sandbox. The next three sections of this guide will walk you through each one of these.

- -

The first tab we will explore is the MESSAGING tab. This is where we can send broadcasts and private messages.

-

- - - Middle column: Preview server code and see response - - -

- -

As you type in the form on the left side of the page, you may notice that the source code in the top middle of the page updates automatically. If you were building a backend app, this is an example of code that your app could use to call the FireFly SDK. The middle column also contains a RUN button to actually send the request.

-

- - - Right column: Events received on the WebSocket - - -

- -

On the right-hand side of the page you can see a stream of events being received on a WebSocket connection that the backend has open to FireFly. For example, as you make requests to send messages, you can see when the messages are asynchronously confirmed.

-

- - - Messages - - -

- - -

The Messages tab is where we can send broadcast and private messages to other members and nodes in the FireFly network. Messages can be a string, any arbitrary JSON object, or a binary file. For more details, please see the tutorial on Broadcasting data and Privately sending data.

-

- - - Things to try out - - -

- - -
    -
  • Send a broadcast message and view the data payload in every member’s FireFly Explorer
  • -
  • Send a private message to one member, and verify that the data payload is not visible in the third member’s FireFly Explorer
  • -
  • Send an image file and download it from another member’s FireFly Explorer
  • -
- -

Sandbox Messages

-

- - - Tokens - - -

- - -

The Tokens tab is where you can create token pools, and mint, burn, or transfer tokens. This works with both fungible and non-fungible tokens (NFTs). For more details, please see the Tokens tutorials.

-

- - - Things to try out - - -

- - -
    -
  • Create a fungible token pool and mint some tokens and view your balance in the FireFly Explorer
  • -
  • Transfer some amount of those tokens to another member and view the transfer transaction in the FireFly Explorer
  • -
  • Burn some amount of tokens and view the transaction and updated balances in the FireFly Explorer
  • -
  • Create a non-fungible token pool and mint some NFTs
  • -
  • Transfer an NFT to another member and verify the account balances in the FireFly Explorer
  • -
- -

Sandbox Tokens

-

- - - Contracts - - -

- - -

The Contracts section of the Sandbox lets you interact with custom smart contracts, right from your web browser! The Sandbox also provides some helpful tips on deploying your smart contract to the blockchain. For more details, please see the tutorial on Working with custom smart contracts.

- -

Sandbox Tokens

- -

Sandbox Tokens

-

- - - Things to try out - - -

- - -
    -
  • Create a contract interface and API, then view the Swagger UI for your new API
  • -
  • Create an event listener
  • -
  • Use the Swagger UI to call a smart contract function that emits an event. Verify that the event is received in the Sandbox and shows up in the FireFly Explorer.
  • -
-

- - - Go forth and build! - - -

- -

At this point you should have a pretty good understanding of some of the major features of Hyperledger FireFly. Now, using what you’ve learned, you can go and build your own Web3 app! Don’t forget to join the Hyperledger Discord server and come chat with us in the #firefly channel.

- - - - - - - - - - - - - - -
- - - - - diff --git a/head/gettingstarted/sandbox/index.html b/head/gettingstarted/sandbox/index.html new file mode 100644 index 000000000..be8840208 --- /dev/null +++ b/head/gettingstarted/sandbox/index.html @@ -0,0 +1,3790 @@ + + + + + + + + + + + + + + + + + + + + + + + ③ Use the Sandbox - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Use the Sandbox

+

Previous steps: Start your environment

+

If you haven't started a FireFly stack already, please go back to the previous step and read the guide on how to Start your environment.

+

← ② Start your environment

+

Now that you have a full network of three Supernodes running on your machine, let's look at the first two components that you will interact with: the FireFly Sandbox and the FireFly Explorer.

+

Video walkthrough

+ +

This video is a walkthrough of the FireFly Sandbox and FireFly Explorer from the FireFly 1.0 launch webinar. At this point you should be able to follow along and try all these same things on your own machine.

+ + +

Open the FireFly Sandbox for the first member

+

When you set up your FireFly stack in the previous section, it should have printed some URLs like the following. Open the link in a browser for the `Sandbox UI for member '0'. It should be: http://127.0.0.1:5109

+
ff start dev
+this will take a few seconds longer since this is the first time you're running this stack...
+done
+
+Web UI for member '0': http://127.0.0.1:5000/ui
+Sandbox UI for member '0': http://127.0.0.1:5109
+
+Web UI for member '1': http://127.0.0.1:5001/ui
+Sandbox UI for member '1': http://127.0.0.1:5209
+
+Web UI for member '2': http://127.0.0.1:5002/ui
+Sandbox UI for member '2': http://127.0.0.1:5309
+
+
+To see logs for your stack run:
+
+ff logs dev
+
+

Sandbox Layout

+

Sandbox Messages

+

The Sandbox is split up into three columns:

+

Left column: Prepare your request

+

On the left-hand side of the page, you can fill out simple form fields to construct messages and more. Some tabs have more types of requests on them in sections that can be expanded or collapsed. Across the top of this column there are three tabs that switch between the three main sets of functionality in the Sandbox. The next three sections of this guide will walk you through each one of these.

+

The first tab we will explore is the MESSAGING tab. This is where we can send broadcasts and private messages.

+

Middle column: Preview server code and see response

+

As you type in the form on the left side of the page, you may notice that the source code in the top middle of the page updates automatically. If you were building a backend app, this is an example of code that your app could use to call the FireFly SDK. The middle column also contains a RUN button to actually send the request.

+

Right column: Events received on the WebSocket

+

On the right-hand side of the page you can see a stream of events being received on a WebSocket connection that the backend has open to FireFly. For example, as you make requests to send messages, you can see when the messages are asynchronously confirmed.

+

Messages

+

The Messages tab is where we can send broadcast and private messages to other members and nodes in the FireFly network. Messages can be a string, any arbitrary JSON object, or a binary file. For more details, please see the tutorial on Broadcasting data and Privately sending data.

+

Things to try out

+
    +
  • Send a broadcast message and view the data payload in every member's FireFly Explorer
  • +
  • Send a private message to one member, and verify that the data payload is not visible in the third member's FireFly Explorer
  • +
  • Send an image file and download it from another member's FireFly Explorer
  • +
+

Sandbox Messages

+

Tokens

+

The Tokens tab is where you can create token pools, and mint, burn, or transfer tokens. This works with both fungible and non-fungible tokens (NFTs). For more details, please see the Tokens tutorials.

+

Things to try out

+
    +
  • Create a fungible token pool and mint some tokens and view your balance in the FireFly Explorer
  • +
  • Transfer some amount of those tokens to another member and view the transfer transaction in the FireFly Explorer
  • +
  • Burn some amount of tokens and view the transaction and updated balances in the FireFly Explorer
  • +
  • Create a non-fungible token pool and mint some NFTs
  • +
  • Transfer an NFT to another member and verify the account balances in the FireFly Explorer
  • +
+

Sandbox Tokens

+

Contracts

+

The Contracts section of the Sandbox lets you interact with custom smart contracts, right from your web browser! The Sandbox also provides some helpful tips on deploying your smart contract to the blockchain. For more details, please see the tutorial on Working with custom smart contracts.

+

Sandbox Tokens

+

Sandbox Tokens

+

Things to try out

+
    +
  • Create a contract interface and API, then view the Swagger UI for your new API
  • +
  • Create an event listener
  • +
  • Use the Swagger UI to call a smart contract function that emits an event. Verify that the event is received in the Sandbox and shows up in the FireFly Explorer.
  • +
+

Go forth and build!

+

At this point you should have a pretty good understanding of some of the major features of Hyperledger FireFly. Now, using what you've learned, you can go and build your own Web3 app! Don't forget to join the Hyperledger Discord server and come chat with us in the #firefly channel.

+ + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/head/gettingstarted/setup_env.html b/head/gettingstarted/setup_env.html deleted file mode 100644 index aa589b785..000000000 --- a/head/gettingstarted/setup_env.html +++ /dev/null @@ -1,511 +0,0 @@ - - - - - - - - - ② Start your environment - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -② Start your environment | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
-
- - - - - - - -
-
- - - - -
- -

- - - Start your environment - - -

- -

- - - Table of contents - - -

- - -
    -
  1. Previous steps: Install the FireFly CLI
  2. -
  3. A FireFly Stack
  4. -
  5. System Resources
  6. -
  7. Creating a new stack
      -
    1. Stack initialization options
    2. -
    3. Start your stack
    4. -
    -
  8. -
  9. Next steps: Use in the Sandbox
  10. -

-

- - - Previous steps: Install the FireFly CLI - - -

- -

If you haven’t set up the FireFly CLI already, please go back to the previous step and read the guide on how to Install the FireFly CLI.

- -

← ① Install the FireFly CLI

- -

Now that you have the FireFly CLI installed, you are ready to run some Supernodes on your machine!

-

- - - A FireFly Stack - - -

- - -

A FireFly stack is a collection of Supernodes with networking and configuration that are designed to work together on a single development machine. A stack has multiple members (also referred to organizations). Each member has their own Supernode within the stack. This allows developers to build and test data flows with a mix of public and private data between various parties, all within a single development environment.

- -

FireFly Stack

- -

The stack also contains an instance of the FireFly Sandbox for each member. This is an example of an end-user application that uses FireFly’s API. It has a backend and a frontend which are designed to walk developers through the features of FireFly, and provides code snippets as examples of how to build those features into their own application. The next section in this guide will walk you through using the Sandbox.

-

- - - System Resources - - -

- - -

The FireFly stack will run in a docker-compose project. For systems that run Docker containers inside a virtual machine, like macOS, you need to make sure that you’ve allocated enough memory to the Docker virtual machine. We recommend allocating 1GB per member. In this case, we’re going to set up a stack with 3 members, so please make sure you have at least 3 GB of RAM allocated in your Docker Desktop settings.

- -

Docker Resources

-

- - - Creating a new stack - - -

- - -

It’s really easy to create a new FireFly stack. The ff init command can create a new stack for you, and will prompt you for a few details such as the name, and how many members you want in your stack.

- -

To create an Ethereum based stack, run:

-
ff init ethereum
-
- -

To create an Fabric based stack, run:

-
ff init fabric
-
- -

Choose a stack name. For this guide, I will choose the name dev, but you can pick whatever you want:

-
stack name: dev
-
- -

Chose the number of members for your stack. For this guide, we should pick 3 members, so we can try out both public and private messaging use cases:

-
number of members: 3
-
- -

ff start

-

- - - Stack initialization options - - -

- - -

There are quite a few options that you can choose from when creating a new stack. For now, we’ll just stick with the defaults. To see the full list of Ethereum options, just run ff init ethereum --help or to see the full list of Fabric options run ff init fabric --help

- -
ff init ethereum --help
-Create a new FireFly local dev stack using an Ethereum blockchain
-
-Usage:
-  ff init ethereum [stack_name] [member_count] [flags]
-
-Flags:
-      --block-period int              Block period in seconds. Default is variable based on selected blockchain provider. (default -1)
-  -c, --blockchain-connector string   Blockchain connector to use. Options are: [evmconnect ethconnect] (default "evmconnect")
-  -n, --blockchain-node string        Blockchain node type to use. Options are: [geth besu remote-rpc] (default "geth")
-      --chain-id int                  The chain ID - also used as the network ID (default 2021)
-      --contract-address string       Do not automatically deploy a contract, instead use a pre-configured address
-  -h, --help                          help for ethereum
-      --remote-node-url string        For cases where the node is pre-existing and running remotely
-
-Global Flags:
-      --ansi string                   control when to print ANSI control characters ("never"|"always"|"auto") (default "auto")
-      --channel string                Select the FireFly release channel to use. Options are: [stable head alpha beta rc] (default "stable")
-      --connector-config string       The path to a yaml file containing extra config for the blockchain connector
-      --core-config string            The path to a yaml file containing extra config for FireFly Core
-  -d, --database string               Database type to use. Options are: [sqlite3 postgres] (default "sqlite3")
-  -e, --external int                  Manage a number of FireFly core processes outside of the docker-compose stack - useful for development and debugging
-  -p, --firefly-base-port int         Mapped port base of FireFly core API (1 added for each member) (default 5000)
-      --ipfs-mode string              Set the mode in which IFPS operates. Options are: [private public] (default "private")
-  -m, --manifest string               Path to a manifest.json file containing the versions of each FireFly microservice to use. Overrides the --release flag.
-      --multiparty                    Enable or disable multiparty mode (default true)
-      --node-name stringArray         Node name
-      --org-name stringArray          Organization name
-      --prometheus-enabled            Enables Prometheus metrics exposition and aggregation to a shared Prometheus server
-      --prometheus-port int           Port for the shared Prometheus server (default 9090)
-      --prompt-names                  Prompt for org and node names instead of using the defaults
-  -r, --release string                Select the FireFly release version to use. Options are: [stable head alpha beta rc] (default "latest")
-      --request-timeout int           Custom request timeout (in seconds) - useful for registration to public chains
-      --sandbox-enabled               Enables the FireFly Sandbox to be started with your FireFly stack (default true)
-  -s, --services-base-port int        Mapped port base of services (100 added for each member) (default 5100)
-  -t, --token-providers stringArray   Token providers to use. Options are: [none erc1155 erc20_erc721] (default [erc20_erc721])
-  -v, --verbose                       verbose log output
-
-

- - - Start your stack - - -

- - -

To start your stack simply run:

- -
ff start dev
-
- -

This may take a minute or two and in the background the FireFly CLI will do the following for you:

- -
    -
  • Download Docker images for all of the components of the Supernode
  • -
  • Initialize a new blockchain and blockchain node running inside a container
  • -
  • Set up configuration between all the components
  • -
  • Deploy FireFly’s BatchPin smart contract
  • -
  • Deploy an ERC-1155 token smart contract
  • -
  • Register an identity for each member and node
  • -
- -
-

NOTE: For macOS users, the default port (5000) is already in-use by ControlCe service (AirPlay Receiver). You can either disable this service in your environment, or use a different port when creating your stack (e.g. ff init dev -p 8000)

-
- -

After your stack finishes starting it will print out the links to each member’s UI and the Sandbox for that node:

- -
ff start dev
-this will take a few seconds longer since this is the first time you're running this stack...
-done
-
-Web UI for member '0': http://127.0.0.1:5000/ui
-Sandbox UI for member '0': http://127.0.0.1:5109
-
-Web UI for member '1': http://127.0.0.1:5001/ui
-Sandbox UI for member '1': http://127.0.0.1:5209
-
-Web UI for member '2': http://127.0.0.1:5002/ui
-Sandbox UI for member '2': http://127.0.0.1:5309
-
-
-To see logs for your stack run:
-
-ff logs dev
-
-
-

- - - Next steps: Use in the Sandbox - - -

- -

Now that you have some Supernodes running, it’s time to start playing: in the Sandbox!

- -

③ Use the Sandbox →

- - - - - - - - -
-
- - - - -
- -
- - - diff --git a/head/gettingstarted/setup_env/index.html b/head/gettingstarted/setup_env/index.html new file mode 100644 index 000000000..fadb7d550 --- /dev/null +++ b/head/gettingstarted/setup_env/index.html @@ -0,0 +1,3649 @@ + + + + + + + + + + + + + + + + + + + + + + + ② Start your environment - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Start your environment

+

Previous steps: Install the FireFly CLI

+

If you haven't set up the FireFly CLI already, please go back to the previous step and read the guide on how to Install the FireFly CLI.

+

← ① Install the FireFly CLI

+

Now that you have the FireFly CLI installed, you are ready to run some Supernodes on your machine!

+

A FireFly Stack

+

A FireFly stack is a collection of Supernodes with networking and configuration that are designed to work together on a single development machine. A stack has multiple members (also referred to organizations). Each member has their own Supernode within the stack. This allows developers to build and test data flows with a mix of public and private data between various parties, all within a single development environment.

+

FireFly Stack

+

The stack also contains an instance of the FireFly Sandbox for each member. This is an example of an end-user application that uses FireFly's API. It has a backend and a frontend which are designed to walk developers through the features of FireFly, and provides code snippets as examples of how to build those features into their own application. The next section in this guide will walk you through using the Sandbox.

+

System Resources

+

The FireFly stack will run in a docker-compose project. For systems that run Docker containers inside a virtual machine, like macOS, you need to make sure that you've allocated enough memory to the Docker virtual machine. We recommend allocating 1GB per member. In this case, we're going to set up a stack with 3 members, so please make sure you have at least 3 GB of RAM allocated in your Docker Desktop settings.

+

Docker Resources

+

Creating a new stack

+

It's really easy to create a new FireFly stack. The ff init command can create a new stack for you, and will prompt you for a few details such as the name, and how many members you want in your stack.

+

To create an Ethereum based stack, run:

+
ff init ethereum
+
+

To create an Fabric based stack, run:

+
ff init fabric
+
+

Choose a stack name. For this guide, I will choose the name dev, but you can pick whatever you want:

+
stack name: dev
+
+

Chose the number of members for your stack. For this guide, we should pick 3 members, so we can try out both public and private messaging use cases:

+
number of members: 3
+
+

ff start

+

Stack initialization options

+

There are quite a few options that you can choose from when creating a new stack. For now, we'll just stick with the defaults. To see the full list of Ethereum options, just run ff init ethereum --help or to see the full list of Fabric options run ff init fabric --help

+
ff init ethereum --help
+Create a new FireFly local dev stack using an Ethereum blockchain
+
+Usage:
+  ff init ethereum [stack_name] [member_count] [flags]
+
+Flags:
+      --block-period int              Block period in seconds. Default is variable based on selected blockchain provider. (default -1)
+  -c, --blockchain-connector string   Blockchain connector to use. Options are: [evmconnect ethconnect] (default "evmconnect")
+  -n, --blockchain-node string        Blockchain node type to use. Options are: [geth besu remote-rpc] (default "geth")
+      --chain-id int                  The chain ID - also used as the network ID (default 2021)
+      --contract-address string       Do not automatically deploy a contract, instead use a pre-configured address
+  -h, --help                          help for ethereum
+      --remote-node-url string        For cases where the node is pre-existing and running remotely
+
+Global Flags:
+      --ansi string                   control when to print ANSI control characters ("never"|"always"|"auto") (default "auto")
+      --channel string                Select the FireFly release channel to use. Options are: [stable head alpha beta rc] (default "stable")
+      --connector-config string       The path to a yaml file containing extra config for the blockchain connector
+      --core-config string            The path to a yaml file containing extra config for FireFly Core
+  -d, --database string               Database type to use. Options are: [sqlite3 postgres] (default "sqlite3")
+  -e, --external int                  Manage a number of FireFly core processes outside of the docker-compose stack - useful for development and debugging
+  -p, --firefly-base-port int         Mapped port base of FireFly core API (1 added for each member) (default 5000)
+      --ipfs-mode string              Set the mode in which IFPS operates. Options are: [private public] (default "private")
+  -m, --manifest string               Path to a manifest.json file containing the versions of each FireFly microservice to use. Overrides the --release flag.
+      --multiparty                    Enable or disable multiparty mode (default true)
+      --node-name stringArray         Node name
+      --org-name stringArray          Organization name
+      --prometheus-enabled            Enables Prometheus metrics exposition and aggregation to a shared Prometheus server
+      --prometheus-port int           Port for the shared Prometheus server (default 9090)
+      --prompt-names                  Prompt for org and node names instead of using the defaults
+  -r, --release string                Select the FireFly release version to use. Options are: [stable head alpha beta rc] (default "latest")
+      --request-timeout int           Custom request timeout (in seconds) - useful for registration to public chains
+      --sandbox-enabled               Enables the FireFly Sandbox to be started with your FireFly stack (default true)
+  -s, --services-base-port int        Mapped port base of services (100 added for each member) (default 5100)
+  -t, --token-providers stringArray   Token providers to use. Options are: [none erc1155 erc20_erc721] (default [erc20_erc721])
+  -v, --verbose                       verbose log output
+
+

Start your stack

+

To start your stack simply run:

+
ff start dev
+
+

This may take a minute or two and in the background the FireFly CLI will do the following for you:

+
    +
  • Download Docker images for all of the components of the Supernode
  • +
  • Initialize a new blockchain and blockchain node running inside a container
  • +
  • Set up configuration between all the components
  • +
  • Deploy FireFly's BatchPin smart contract
  • +
  • Deploy an ERC-1155 token smart contract
  • +
  • Register an identity for each member and node
  • +
+
+

NOTE: For macOS users, the default port (5000) is already in-use by ControlCe service (AirPlay Receiver). You can either disable this service in your environment, or use a different port when creating your stack (e.g. ff init dev -p 8000)

+
+

After your stack finishes starting it will print out the links to each member's UI and the Sandbox for that node:

+
ff start dev
+this will take a few seconds longer since this is the first time you're running this stack...
+done
+
+Web UI for member '0': http://127.0.0.1:5000/ui
+Sandbox UI for member '0': http://127.0.0.1:5109
+
+Web UI for member '1': http://127.0.0.1:5001/ui
+Sandbox UI for member '1': http://127.0.0.1:5209
+
+Web UI for member '2': http://127.0.0.1:5002/ui
+Sandbox UI for member '2': http://127.0.0.1:5309
+
+
+To see logs for your stack run:
+
+ff logs dev
+
+

Next steps: Use in the Sandbox

+

Now that you have some Supernodes running, it's time to start playing: in the Sandbox!

+

③ Use the Sandbox →

+ + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/head/images/account_address.png b/head/images/account_address.png new file mode 100644 index 0000000000000000000000000000000000000000..6837b6742d0a6c31bcda3181db9bde18c0d14198 GIT binary patch literal 713596 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

R1$p}jMnxzR;H2!yXwn7hLzUaF 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�VZ9m*(g67UeJQM4bF$5{rak9uj*_? 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

cZ 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

Gou1=sh*u4J6KUk;RJl5(-&MIk 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

  • 6o3s{9SIX#7ir0@?!?Y&5 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�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%0A4S!6^FHAf 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

    R1$p}jMnxzR;H2!yXwn7hLzUaF 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 w6Np-F$VYmCA z{Oi3UQ+eMxvYGArxMpwd+r(|rln(~t;%u+NDFi#U?Rp99D)sA;fTB5840MYQBo(G| z`+J+Fk=i-45V*TA0)J`ykd<}<_6{0dSEGCi@Co`e^ zh0wbJD@T3=MXQ=+^m^quZvxL5ISi)8=SPJ>nY*k&4-0S3dP|7(qXp6EuUn~w>rl_J zbf=i^y}#r6gShYogUF@F51xi+Il1~jC??cOmR*I`zR0F1?kiq80g?$jYEk(4SRgaS z3)`u$6Y3<;l+%v@(+PS zwYM)+o8!I)5AI{`8G^iAd85^R*+Ld6)i~uu=#^u2UBUj%MRxxBRNdqBuA0XlA6c09 zjBmd4D)q3Kpy4)_9Q<$FSt%yK+SgB573J4d0O!_I+J+stA_&dE45t2ODla=e=iG0I zUn(y&SCKbUz55*2RDMrU(LTBUTejzJzfkP6%)sU$}lU9=S2qD*g6-b|Bhd@x~6t=Ar0o*(Bl>bHT`7Pp6>V z5c~uB(HiPBEgbS>j+O(Ch!G`n>*7u2Gtt@;voWbN(I^R)y2aRo9C0aB0X0L> ztFU>IbXdCE*4q%%+ONw)vf9$1jmYh`BqQxZ4a%G$lF(&5N^Z50-b><-#x*4G{}sLB z4MKC>_6|u#>g^?=rY96W*JPs;jF!?19MaWLp*19)j{0(J?%%`Oh7lO?PH4;M4oAYsuji5nyv#

      +uwK4tfaFwqdHUJNPcK9Ta2cg5Xo`tecN*jp6K}>;eE01tQ&c< zXiGE?FJF~Er&{I zc%47nGJqkbO)WjK)_*MYi(VI`qakxHX6Yx)%D z`a25rOv~xcY;+R#V`R58h&*opJi?52U1%x`$dvM6-NO)crh@qZUY>V@K1*ZIclo>< zQNr2h1dU9a0z4W=`9`0EX86BmeI@YBmqI+o{%pEP!nSa|M&{Sf8V1YlPt_JlKvGyfZDU;dcNhgN1axR3;g|z zN`as2l9OSoCj**35J`$;6>m?3u_QNsKYFR*!hT|66hXXJa!_d@NoRZ*_Hv=i{!udf ziKFsCS7ay!=U>F?`L`TpGoE5{axD{S`yGh4Q&B=!%c&#zcx1+)2OocK#xB%a)Q90J z>1%M8ZX*iW9gW=DMzq`5M{t_|3RNy@(pcC&$}#y|c1g?$^&YRxuuHFZzdXt{&aSeU z#eg7v##)I$I+ecH?pofK)T>|dMip5%-;7s7S9}SUleP$d^3y|VGmaUPH4?Tb9MG!iq zHIq(BUzkS9B=_FHk<8|no6)vFm_Ss#`>G@6DN}ZA$H)knCwU6qgPY{_J%}}&Nb^I? zp{QTXs}6_5!+N3zXN6=U&GmIuKzWh+x3&Vm?ZuV!Vudh~+et@gJOg$oMHo}FE}?1! zOxCe1ruL?&O22*ZZkSrY?8saFn+hOb<;uq1+480y}JAB#HngWF(}`uPz*+iNtsD$2t4iFGLjlzaxd8j+-DT!z}$-g@(pd!R3(aCB`=y!sekca$Pe0x|TksLoWBHS7baR z;W47?LY+vRNDNpT7(gxPF63VR_2cYT6v`=0XXBE-&f5IIzCyEj`Aoy?C`rEp6j(YG zXnTl<#C`1X&m{M;EMo3ij+5bFYHtDLfmF5z%6MWbfuxt$5ut>dwUM955Tp#l9u(hj z_4;XUd2`IBc`OH*^OS-ud}&Sv_waeJh~xDVwbv42rohej2oZLv+)pw}31W3_2edd* zM^O?IQsBg-Ql#V;m5tr_SEMl0c9v=|)Z&xzsufEwiT%}Ru#L9x^kj^AL*xF4=+o^JOLd zP#Jn@f0XxB_@o|-6F8=apnuS1Rwouw>$mD(fdO{T@fV);@i|eG4spHNTce5@NXQ4= zLiYjNx^bWCGZGxb8WEraMRHzy$+O0dcR>^{;0Tt--U>GABe#q74v)$FSH-&s%fFTrXh9zP)HZNl;sePzT=l`()=rQLDa9U>gA9Huj_Q)1oY#;A* zSKTDTiU876s~oyftrlv+6b%USqy=$^0CMw-S_+!ihmv$@ zaX3c8R%RMTRwhi`&#dhwHhuavC>xp5j(OF*>3F$13LaO#I)|OciZLN(H?*=XpY9%_ zw@yoDCWuS4TCA1O`tD7UDh}NB>U+j*Vp_BfbDs0`J~gJ$C`zVE*{2N=0imWk^~(v# zc!g1sTrHm$o(NvRsyf;&uLEwL2y3+yo(wRNP<5CJRmU%;-k~U-Z<*xCu;>Exj|W7~ z$JHG_Xn^UL;Uv<^y(!uEN(+Vt;W@$Yfq0G7=uj?VJUI*5H$FBC+(I?K5!9|C4FRuq z+Gs9;Bwn>ihQl=kQK)-7df#zI0K$LS(VooXy4A(eRhJf_uEB)w;>3T#g`-RmR(qkN zt08nXoybRMFKKgXQfGS3K>^3=!*y~vyc?hgq1`NNz0*U$$Z4NIB90V zd2_i;x*w4YKD?~S9%g};Vli1emiMREm5*JXBeQV2SWQlc=It>zpU-T3L8fGMHZ#D; z(3SUr0apKXrd^z70$D0XMGJ0EgWZOGnFshlQdQ(6yFpM~Sh>{D;VohV_`&eRNL_XO z9RD!>r4jZUdT8cpEt0)QH;xg>cV^qdlx7{!SGil}051L%$5PC}*S_$o2jo&TCwAK?s5S7gyID~ZsC_xzo5!BvX0gxAmnr~nV zY<$Op5qtL^;^vzDUI}M`u6)VbNdKqwZ`6HV=6cX)dtvGPG7B-Y;ueJQ8SW$ob}qWM z&4C!C)}+(*zTsp3M=68J`5ncZv$Ns*94{A^csm75pkUJd{Z3*Ks=2D>ru($|+QNfJ z<-M0#XV%lWkFxX1SovNjnu-x;TTx~TO;n2R;fiyZk@cf_;XDg|+Oc=h7TSqePQj*M z4B|r%;!|A;n@ft6GDGllt)Y|81KrG0l#4}^D6TrAeD4JeLCDVEl$zvCgi+NX&XwzH zhKF~X6?-qRvRd^o1NlTqQeUE`@vx`LT(GHY2Vu$G=k7U~`jhB+&LkGi_F{?@(&0m$ zFfR&a4k{?jbt~W7zwl@q3&ACsGZ?GkhC4kq$#sQpC=-$0&A$nPu1}5k-Ds#Wzj9Uy z^qvtXQkU2+y<&LBn~2~4p!Tj?s<`L_ZvkgPtO_bsISJlW)80&*X|; zGc!mz?s1kE25NAgwu+Y57d!qt!a7DOa&B?XZ3FvnNF5jUP^D_KJ>%n96+SXXWO}kAMGh{S75oN937P@>coX% zoH8uzsQyQ+O1@zf>J$03{rrme2;4=4FIWiY@&WRfdt|ilmdYJcQ)aci4j29q zkjMt$mw8@HFg*3gdWw_>QzY9}xjNsh2Jw3T6egG3f{ zS-sdXQ~=#}{BkybQs0o|I1%)eaX%%@z5cdS2M^54B^e-e5_@fkL~iz+6vKF!>cC@O zEwPz`c+}9aovZT~F_YZu!tRshPH6~~-1TIczE+C#z~TPz6ZdFs=@7HK*V8;vOoU#- z!<&zz5YeqcF!Jn91Cv03B-POj?gDhr+_vX~0+?EpQytycK5(!0tQ#S;HqSD=1kCTG z$6c3bvDbt3Nd5uJ$sqQa> z`Qz!G&9Du&=%oDHA(M2svDYom@;!_e6z{PWGG%!RD_d}M`yZv3x5`y4{AN2rG7Bi+su0^YU*V|}`~^otWhUk@{Uf2mF4at*hHoZL@ah3`Lj}#+NGg#y!CIKeWZG=m;`iDGk3ivxl5dn<^a< zWT@nYKf`OXTDqi24hIl3c`{tua+*^Uep?gquAfsH4KKN@Bvsmq7X{5i$i_jGQTmO) zCo2%gO7$Tc35)B!on5RzGnX~d7BjGiCpl|B@?keq&hhs<;TOa3?LvCb`LW|T!?R}) zvNp?RY>PGL5XnD9c=6{y@TK9wv=;*d`wu_LsL|RCXqr41YJ`@^b}X|BDdm#CWUCNmG<{I=Yt@`4`f*Yz52#C@ZL5QpcbJe+i6LG(v=-}Xyy zR>$8M<)^tggG&CQk>?ULN9@SZ1epv8R1mrodX&;Q*+y{9)BEdI!na>Q)@L_&$L+XE zn#~38IOA8HG?*YJ%MW!2YFqV^y(LME4h3Q9B2?!>3f$tLo_Ox3a`-JEG*926>lqCf zB<#UK6|(bjl^C-K??INZ`;$pRHroZ3csg0F$D70%wpzrt)K6*b>B$W6O35bg`F%ww zKP)h4rhL0OwxggCkiX?3dONo)XWEZIenNRfQr>c>c+q$?vA%}Jr${WATay3ui7U%j zPDO-?$hF_kGins&2lr`D>_)RuXBfTn^U3e*t7)L9nazs%fm%lTK4vsvcbcJmx0aa5zUavPLK3{r)=%}x+fO` z0%AVb3ewo=>Vh+RmiO~#R!iQ-q3F}183u?^MHaKH3Pl3xGRdE8-WB#O*9aROM|t1?m%uJ@6QOmb$vtm|+1zO>7L;4BMr@0m^red4?+xX25)7AR3XmkyfB3 zQndi5q)K#c+CqjDP+8c%_&M0~h7gEnV$U68qX3i8O(6$R@V8WBP?{Oe?QKKiEzY>d zbTnr*yR`Tjm23k+ew^>|t3Gl*nBTk;O_o=lZ}_)1CqF$mo(pcy-~C2IMk$D=&+~b@ zHL3i0eh(&M>IeyK7X-oRFBem88HB^KdR+*B%CDd=KBAy4mZa3S8%uY`dEtA2<|{)3 z&eAxi>tjM?r*og!O?UO$XK!_a>*2E@>y_|C@D)zrn3(Yexav(MA=fj{MNQY(#Hf@4*m7$O&t#~2JYO|vBKAa`D z5)oE3h-N_y^!{K*3k}MHmckp|&IP6#1FK%~bzqe{?f-R}Dax14t;Koxp*cj2vP|%J z*F?yYJP0Qupi8uTn~K}H!2`}j5i{K{_aMSCw+vw&;^`~ zHSK zU#efm@-)o49N4BGR{;e<5c{dp`d4y_cHo!G+@`g-Po=(5bX=r5BcAK{vHW@awaXyH zYwFiLAfFR_9|Txt9uZyIAGgHbMRUuzId%KVGyfSx%v^)9)J`>=+Lc{H3hQa4kzj~7 zc81x0y}Gq>NytyW&wskF8(B6+J$6!Mi6k_No|_I`=5)HcB2V~^yy!l0FU^82Bk;&~ zbt9~k$Mt-7@%Epw#1GcouCWgrvfP_AvzuLG_MUFY<1(TlKtO=!4ZsT$kn=^TcBnfp zN6of!T#@O2NJhJaq@vF0t$vgxT?s*yCH|oQRU?uA+OmJLSDFS_bCyaJcE^O2X*u`Q zrD)-_zo4SXoYxTwM*i~sDY{1uzvqyOi=Nm>@i13#yC-JpLlCG**WOPUj466quOY@dArz~^*en!kId+I_8q(A^EWr2VfTcje7y7nG( zonw1}hsF;Gp)u!B&n&G`&=MW2rgpQzn7WzrKcG#c7(3R$7*U1vdf(vnz$B3Q#GsHH z+y+2yk)J>*@;Y?h5HImHr4fQWvxo^b#ziu>K_IVEhw%J>n2<2-to}DB36=oYAermG z&uu9v=hb7Dhs#l-D>Q2k*Ii-b;@WmmfzGxq;*oDRgL%+PkR@#Y!mWi58BQ)wH9Z&w;2)Y5NwqgnZuVr8Sds$(|!cnuY1pgnnd&RhFOLS zOO7bZegy9O`E08x+^fW3qeHk0?2zatMWUyL>%ZP=_G{LBo#_O-b=KVB*-3_sll%CR zOS1*4PU44gPaw0z2fg`P+hs{;w#sP8=hVR5Hwbv4QE#5&s)NTJAo2Fj(}3t$8sh+A zKmtFb6f&6y$r^w4mT$WC_OB*lpy#wp^wT|nP@^$~0vqaY9Qc;uc~)7h(<;VcS!OYe zgtf>Pwu9=S4sZxVzK|$u2)a?9ji(zl3Vnv|Q8j^X)?&aps3_^@*_51MNSjZsrCXky zNszonh`kG_dUtaZ8Wb5x;pe?1fpK;{9xQv%ap|DLETz<$@-Mppc{|%w6z$^IELK0> z9mO|h`JR=0uvgymP-F$()|I#INriYW_F>`4trr?tn0>B2bsVv2f6RkhR!?7tX#pGF zk7ZF34TTolS)yUcLM_e7a!er+PVUvl6V*k|XQYnvMqYd;4Usv}z^Yt8HO(?NoLzN} z^92d`WuC@m&-c|l+&HMgp;k-rYOhbIBqsuxfuhq>I+5|fzj zv-v3lZj#blcD9#MqQ>fS)M_*9(7H8rT$MHL4$oMM)?~Izv8>UWTq!+M_)V3fs4jQm zE=Am8ru$c7Unxnx%nb|V{2r0deQ-OY0pt%2k|vNEyx7l;xgH`2KTn zpAQ#^-$pfD_%8g%XlhEqX~%@Q_9X?kV}XJ6r-iv`x1F1l%mzMiD!6dsx0SJwrOZ3P z*!CjDJW=uSizLaH$k8En^=3BJbRL6388Y3&$&Am8aTArvzaKT&0Vgu#4+}gMn8rpm z6zUhIOlB02lo@d`qgq`oSOiu^)0v9+?O(f#RleHX+@U{pP8&{baXhrp3(9Y8ekG2U zhLnbJQI!tzZynd1HqAoFw(_Aldwo#;++KIBV3Tpy6jSL}ilpe21#7Owj#c~UH!s;1 z9mdm+{xk&*!MPo1zFsBeI(#LxLQ!vpo^#F?Dw+Ql2s8bTilzJpYXcAH)%-Hf|6H_^9Mo$%*_ zp60Xe5z!@gqos_l4hEAnr@$PKy?>YL%x#ZXekhF%6D-J-XHyTiM;>m?Y6$Pa+Hsc) z_#MGh6b+Y~Y@V6-z^cDBheck+Zk5mWCYmV`3Lhu*9+G)!Dk3+dV0d3SksyQyYs$$; zv#{UGo<~ybA@DG$f7fyYGA%E1Eh&pF0eTE`_p`zL#c=@iE+A`hf{cLsVD<+OXZU{9ptDTQs8Hreh+S!mq1_B!BdpimcvA= zxY}_Q4G?#Cb_};<5sC=3X5)6bUa(+OPc10aZX>lDH zc;^F4N|H;#(7C(EdcjFcQv;Au65o5evKYF_v>3;rloepV54Y@}Lkz7N^|uSQw7>Wu zF8w3i--`xOhD3s5LJ%lwc^rdtObLPYrf3H1qe=Q@U+ zYC8u&-<+9vLEC~NVU*&JBDA?Me$MMcSYd4==#<42y+suQwq)te8?BCWuSVJQ?rpeyEHG=Q^GMG)P z-k->lazx{YjLKPFwiD5K?aT7!UY+`#vqf$HE^O-;`&@Nz;8bg^+mbBs2niwmE8EOI zWL5tdl=5MnU|fzTXkDRjEd#;gJ>~$-k=&RguVmp9BR+)nU8k8NUT@?dkq)tfV;hInhBD873S=GZ?TZ0}oeO zEta=GZfy;jh)vyqaIV)e2~~|04s(C>&hGnJ+H_KV2$lQ7#+)|hnTa+Lh32PCfoTch zwD60!H{j?^7O4fVG|z5*y;Wn3nWhQIG2wRf<4V=}Vu9E>Y{NRPJbA3#)I^lRvDffFgn?m+-1!AlH9>#TBEu zt~i24QptVk5{bXKrhQYR`P3Z{>gC5>AQ(lODK4{rywcrBK5XG&c_cfJGjhooI;!tg zS)?*+VZupYPHs=<^~@G6TZV>h=%g)>G-@@dwU_VeJgKAyebU|7v#gn(iHm>G;8bfc zui9g)e+mW^qh1_GyUl1n*P9PHg(x7ZaA27lqaz5hL^syPgd_E?8mtFbF<^(_{tS&7 zn#hZU{&?lSQ0^QTRFaO($iz(HRdi;~Z}?7%EEYGVD20Z4DVonIK5|%J_?mz_*ljS0 z^sqi68|vuuiyAyfUNq6BnWCY_TaJMD`Z*RpLutJF~m1z2TrlJuOH2cVObnDrYxOIeizeAdtJD=h>+#mQ(fq zO$O9J4}+|B(A7K$SMhD_XI`Cp`{_#RL|$F}l_R9{tkIj1fTl6Y>sfJ_eiXQ$h$;Lb zA99erT=`{ z&xHgK+O#9F#hliZd@+w+pSh3cBKXmEP(-s6Y-B+|x!x$JN1aP9=-`*346@z)kxy zhuhGj0CA7LWTKPtaGiBmYxW~a=gsaWes?yu%?Lpnct2byHJ z)^dJ*&VZEm`3p?ajZQO3d&sH^n8BQJ(hcf^M80Uy+l&UIu+XosnMT97WpATOR6l2co0Z7aqU(x^UTL zJ@LgIN=9P02c87^nS}}&gs*>Tm$^rMZ?^MCIaF^_?dg7{nKtR9g?x$4Uc1@p{L&Hw zo~o-vbA}f-^5@}Ju+ccben7%(i+8l$cr;mBc@&R-dyMzU{-g2O`_^3*kEKSC|3}lh z6y=CucG^hynC|^z*?ZqAq-&CKzm~OI=))W6-jJqE+omk<M`vdlGSX^sZt8E_vJb1r+Y%rQ`Bg}n*r}i7ju=#m++ogT z9xIwQqcJ-Pnyzp{z^FXK5s^zW^kAJ}b4BLU>sX2OLQ|baMYbYOJ;K1#wB!xhGSa)w-mMlVyI>+Jjgm}H{Bk07WD%Hez z3zuy3w?Hmvq!_<^hzEbfb04{=7-ER7f)B)@oF*c77$PVK_+~stB%bI3Lh*m>K9?@? zRixz& zaoiTMJ)wLl*P+>u!BF-ZrgGL&Qm>OrBd46Vr^-53phN_VKNy!h$G%XtsP!vx>UYNc zs+zYH`ku9=4wH}B6l6?tDKbtu#52+USnvF;xZ$mB_&5{!>&0ww;vs2Vh1xf&s&G5E zl{zU&#D#L+2t70br$@)Vh)$)qO9*$4bgL8NvJ7%q0Ca|&ohMJ(i!41N+quFw{VbOl zhn+``H(>$cdya#D{<_i^o)-`j!%b80py!{{f5j}d2m_M+if&uTyL@vlOB6Ht8BIfz zeY904bP~t~d(&IWQE2k)baL--!FKd{v+0F*moW1g|J^t9$~LeOX)v2gA1Yo?=Cs+m zyFT8xN?*(|lNkM_cKpJ?XxG;hDf0m9Y$L=5JZD#!C+K`IN3ZKyW_uw@MzaF;BlMEV z-97iTlIYRVlG*`he>s4nYY4wlG;ggC7TVpsNqSh;WE6X`)x9ieRaCSom`|(x7k70y zHVU`^B~*yAklTcyv@5c4hZXPhQqI+Vk@|VB`X$dt;oA=q{fyw0xW)?p;ANqXtWFz^ zC=l8q!-K#p=t|_g`)&dxjiZ2>V+{Y#AosT81+7F9Lc!)IH({u(zcnen%^BIh`BQw4 zO$1nz*UhMPB)_6S?Y+@<(rX}K1jba3ZL90W_5==^hT-s9Fa9<*aF_r-_CVGGgbAn9 zMps!!1*=Osers*AZYAb?hzw+Fzc5dh(A%E-*E!pagt<7r|C5+o6_#|Jw>#Bvo6w2# zr?dbk^AA%g7Kkq09XpyPSHivB)t=4vV3Z0qDR~0XDi*V4UKT5%;xNQiwdyT*>xr!1 zBaoq5Z{FrTrxzqeoXX^t_9=selaDn<0l>##0`4hEqQjk80g6ZAz~z77Ovwy;Vj?&u zfvsoja?d@<<+3<#}NWfu8-Z1@1f=iWcB4a z_T0@%bmLWK;|GY|q<|6iydly|g*?|`A>Go-b2{R0kiaGsBJUAN(a+kJKmbVjzGU8k zhz0=I4r?KW(;kul1FboN{JbK(^3O=uZ6JyD&NT}|5i&-1JytslqV85G?q)d61Ihc$ z43P&3ZRy6pAYb$2DPLqU_-amQ+llV+lHmAXIN&B`TYc6$4X}>b_R;ZS2{oO|l~$7^ zx^#_s%k7g93X_@dAcd~I2I8mWY{*5Oq&b?B%|43+@Vo41u@-sVX{{Ai5xhBP3{q`e7yx!)Ni*2I&=v`2_g(BT?*3O zCEeZ9Al)S@-Kj8i4M;agD}!`OcXxN)pa1inb-#1ZckX&;xmZ7(#hN|4-o2mw?9eEr z24JHbD_CiWiy}xMg*WAX*W(%wJ8xTWdPakYEyq5-H*Efm?F4$@VjGi<_gtOb*2aag z_bs@iV_aEoB14|v$K`A7(UQW?4xbCPDX~eWXCTXA)AG*lqecnMys^TzPe5)`Yc>2x z*~~_mQavCY*?d!&j?5dtNhdE!q$8f6NP{Cn{e~$9<@sxsu{vgA5R>s1^$vkdlzR$?B**z7nRR@|W7+@LPW!6Dd&D6n6p$MunlI7Y3?) z4&UGg9n5!M88L&RoDZzlzuA>1pP3-jlE?$nv96t z$1m7*-h;yskvH<49xk-xclpEruqlF+S;h#2FsUQP>IckV(&;ZRD8x~7f3`tW>lv%WV0U5*yRzdAeBmTZL&W4h(<=VA zRQsa*U})ayS77T9)q0YZ<@PxD#j`QU(6-K?N*=!)9ilS*m$Z5Z3U^ekyXL&(ZS}4g zhteOXllAUIr~JYXvxOGs&o=EGwy(P`IksUA7BGpvDQ`2dncu$Z?u*_Y_)ntd-W|cX z8uwdDJN>z1H@0atU(D>1_g=kPjf7qtMPZ2OOfFK3OncPVa!^jd`>eyq5AKOmfw^K~ zC-0*0$Ma>0tGl@IPs+lNjT8Ef{EiGEXiU{;r`SPe#twbWWBFYIR~fGJmZ`>@3#k?C z{Wqwhih+zmA3u`YjV%hDkF4WM1*nnQ;R7!2Icutu1%y9itL^rb`R2_JkSM3skj&x7 zvz8sVywfT;MFdga;SbkOErF{@s##h+(G)8cUu(lZjPLB9je{g4p)Wngvl$YwK}10; zDuAi;;Is`vyi9C?tCCzpIk9ictrM`I#o2Swz0|4th(7a!EpkF1YLHo5(2845IEC7p z4WfXDJ@cs4(3t6b-PHWDdIe)100-e#n*?}u7@e9$a=T?Lf!=?#5h0`O#+brw-&~`U z9Z*ZydC49De82mx>2d=Ll+) z1D%E&vbvKLSwq)9U&|IqYcPfLSa7iu(Mex^W_nEd5v_3!++KQx-wt?=74>ZQ<4_~j&5$zz5qJMa5!`4%G8b> zwph3K8DBA1X5tq(4J?>;^BoT(O`gn6f=N7+hYK1T;quPug_|MrhY0q!G*jxiSjN+J zrP>IuM(Q1WWquMV04_g%co+|_pN)fAJ+Ekt&KAB?#N`UmD(84?u{3S|V2gY*Q0Mgs zLQJ3*z@{*Y8$%0u`5+r@9=c5dbZE+~5KOF@7+-Q#hxKi=)OJ(=4O{mh>-{tUVU%n) z*<44Fa{eZiT#aW<=Q%gMuh5>SR3MMzedDv_(sHup*|b#dzrYj_QIV7jXi@g8_475x zOA*J6mR#ef;y}e4_HUvoedaFjt`-IAdMQLUwWLIzjuUb#rr&CVaP%8&6FrV-N-*#S zZ2MZJ7=ifyuPz2?|mO{64O^&9rO?zc;Brccr{-m ztd}7)+=wc|cX7htqgmgp(2N^JmF~j=AF(l%;v-h|lFh9|DE!iPvq?IoL9}qd6>%f{ z7ken|yud3u2ATCg?W4WF`jN3GpkV9EpfB0cXcGe&1>Xqa`2cj4>v!hxw{Oay02E^1 zH=}WBUx_!QCKHHn<06r0R&){f5p|y3Zl+gof`X16Ea+$DC|j}E_o=T+Gu?dUo2SM* zYla;f7FI1AdC1(Bslu}b*i9ZUb|?D{KXl$?c0VNE#YNZK&{R<-5i0)r$ajO|yx6p5 z37SWcU!XDJjGlfj66p0lP59v#dcL67vB^vpA*E6gR+`^_;~Q1}gB*#_W_?FF|3Iy; z!AKSE0Nkn2DFDDaaHO7%UxwoB&wJcCjCvK^l0;cqM5KxdOhREV*Js%QNFl=_Wp_ z^WVGSw7XbUhG6BIH1m8k8qgL)Z?yUBXJt;6g>q|&X!h-?MbZQR1HowKWBrbN!^ti4 z{4Ju39-FwPRI%;G#H&=S+m5sR)(#N-{cVH&?5 zsPS^yylcMQ?el!bN*c#Wbx9-PG!CbJmoldDg`ZuLOsgRPHBj;OJLF)8S`n%&IFs+}w?A&q3*JAACm3LjJMdTI^cKUa2&n%W%<9tN?P6n{%(xuo4cML_?g+p62yk`GtdIYk#+mQBDUrR#JdE{%1VUlBo75|A z%Rb5Rq}fq9R)j?t~dU@mW{$=_f>J^Ko)x}UBX7ly1c*p6=iCFxC3xm)Yl%0z{ z>Shg_E#mVKG#Bq|7LZC1;*Dvs5_AH5C?_(s@r}U$5>0q9LEvnl<`hwng&8y<gLOH}x<89Zc5JMulE9Ozm2N&M5i1KmhHbs1IklN=a-XJQ z>usoXWZwM;Kj}zr$Ig#gt%JZINetg5gXhggYu=4N_mL~l-eAMR69%qbD5T*^wW8#7 zHcCaXT9q3_SRGADvE^f|R!ON4(Q>u;(9z!7V157@SHtL0FV8V12QI|#B0>VvkSq}R zuYU9SH)PDEuy|oV0u8ujz0A>`2wnjtK@{?j+UG435O0e-Sv1NKp!~BFkZ^pQ4=*+J zg%>-W(!@3coI2N|aWMeOgA@hBdvlxS`ER6yMfb}jiXWaq5Y>5N%N-tRS=mrDkzMIhnUAY{ii zY;kA7hlmZ55F8P=;og{3t^-v&9dDOZBLeM^K$y4#>oVlwAaXJ!>dVRwwNfqC@M8}X zw}VxO>v1I^A-#Q5=i^^H!!lD^w+L77^MH+`!giP`_WS^@k{e2d^~ZH{zyqKis=EW4 zO6zBy8pvbfaOr!~(F+8GVNh|9UcDeEqWg5M<@BrOj+Rrc3Rb$}`d_BW47GeeaF%UbL=bY1z}} z%RcJZOuOw@tmN1b{-01LQ5uEM2g6beEk#nb%bZ<0@>%|uUyUj0#)g4JW*diZJ8#d)#39Ljvjbn3;=3jO&FAsQ)&&0`0Y50r_lUU>$3+-eJl3OGrY1%G z7Ltkj>397L!|7=$6sS%mE;jd!c?o%XKF zg+q0qPc`43nQ<%WM(%vHmU#-51kanDvCa$M9TF^Xx+yt>2$v;-gapwT<8zbjKv(I5 z+;am<5?uJi96)k>zJ#FJmcOBUDs(ypz`G3T zi9kvN>AZGoGk10ZXcKSouEWv&tTIM928aDpGQBUqqECNTJS?bL7w+&c1K1Hy@%s^6 zhMBx#=ug>fzPc3HG6RExRV=cx+%P_bVKE>m$BxmAZ5nw4<9!71zpO(WEdxqn;e)D& zC8gz;7hR9P#4Lic!w7HSM}fCT#TiAne#xwTTBJ?dhVB>1qkxw|ObkkUum73=HdEir^O3VIj@U7JzZ%$YL} z`6)mQqE7^LQScx1nQNc}p{sqYQCF+Bdkr=5g*Pa7xESBdHIP9`ipHKZ1*!c`p9t2*-7G-cZ0yLQ-CuC}uZ_@`0s>j&UJBV0 zO8*zS^6A?p$Y%fckS1QJL2u_#r+$pRnX^c~`k_fDNWNYBlCqGM+h}K9Ymd9QUR-U7 z)e|d4%UNNgiL?ZmeP7ZvULj&F+kG@Jl4_F>xEilWrX9;TwkvbvdcbTWzQDR8)hgY8 ze_v7Evb*roF{k&tVl4n_lTm#*6FTCtYCXu)*qn2e+dlw6GmkoonSwjYqeqmaX!>IE z_p)86%E1CA>cy_2usty2F=eT;A&&)&rlOus1%lCk&ixX<1FV7L6uCBp`=QsL@a#uZ(E<|2+H`Mz-v zX`9cS{MZuE5|+tvNN$;usnsN7@3@uc7l?+;7|?kPFQ2W7k(QBjw>H;?6q+OAj`3IX zd+ss~du;<7#pH!lN{a4^%sZxp>qdYN9FwI=9(=ZEqeb=%uggzSjj*XezI(jhA{ zTL925>-`rEr+mMVYpNQF&>=i8%te5r<3&MVUYT1kh>0cbmQwd!^IMfBo!S%(DJk0I3B_ClvtjwBALxvuM>_ zgi^b`pcG!7HH{=!`|V1x1o0db1Odm8wY%7Z$CVjpQ9a$e>_opWAl~2rSqn3y~^zdTj%RmNit2J!=$oBDTp)&poD z+sy&(ylo*Cuj=FCQBlVPYvZB}mxwIsu``{>P1aYlqZe&~UDqe&N6&v}IiQGEG2rk% zh=zZNi%u8|qYX~2-eDFYhq7S2&aa-4C$eAxft!T!O=}Y+1DK*3Q9Xq#T&0n*Cy_c_ z_Z)a+Y}S$}*o)qMU1e)#s1vogGxBwiP9hpTb)8&`4DWSmv&HN-XwKK5u1lcB!l}IP z+9jITOtUW!NGE!mZg4NyOPBhSoe6|_+_|PK_|otx!5+b-Wj&!EMN+FWt*P)K^{w*8 z1{UaZYd(WAKaS;nGcKABbx3r4o^(Ef!7{z7oSHe^jOt<>Rmg%3onhLk14d)Ch6_=n z&E3I684H3+)Qp^3m64C!5yLMiH1toC_Qk;*I}NnpGBqDr67&JTFU6?e^ZkvLf0C4> zQP_=PW{7@4aF#~O@X80dcs=c)H=kAO(F2@??nnlS5HKN!zcR9#)bgl#JP+Zg_KO^N z_ZDKrL3TKN*CUdA`>*igLjX*lAM%J?!b+PP!2glQkl;*0y@TC+a$6f_?@Tf)n10b> z79{zmjXf{j3P>SjZmq(jl)6C~Q{QJubk*w-HJS{m1s#CZKhn%KnAdgwEis=zW{t2s z1ATtB76akr-`Wb@^KPk!jOEVg&fQJS@SIG~Y)vId2AKuWKClIs3&E@XrDbBssMrO_ z!W#p1sWLZT2C#t$A3Q{C=vBvDeeU(8YqC0z21|Y4~3C9S4GF z6x0AX%R~XAixHWZZve6$zBv}riE8nOI-_Fd+AWuzWEA#U%EU+IO$e&3}U ze!&l}QzXr0cc;F4uMt{duEu1l4Tqz;_gF3V6=@i*?@XN(>~6S;Z0D8dyI*fJ!5q8> zqU-xUmX0>bPG0F6df~xx!thGBWA>C(%%arpYNKrphLmE$b^X^T@oZz&pgGMxadF!I zx6_n!6@v2n%e-aG%M6EaZ`~v3Lczn1QK5$WVzrt$!ue?L;F4dOFU@25T|X)7izyAn z3NPgE?)ARLk)-f3w+OC4?K#LTc*{(tONoiK>7du(3V_YDRyK9<=+CtgL{{#~>SyI0 znSwaDPhrR9O+MM_+y^jx2ob4j1dq~euedhvmi&5Ob}g!qiWZ2$1NMrtxEfjHO;I}{ z2-5_p#_dGv@B6YfS1N#S@OF|(tjD)#Io3SKgN7YbIyBp zz_V0%p^Mw|34_2Nv+iy1Wb_Gv^lfd?eWUM0Jj~5n>u^F{*|`WBP`w29PfrO5&VJ_8u6uc&+U94`U>jysj_+jP90KDxr;O?LB6vA; zi&sHE9)u^W$9JXp;LU~;Qn_YiE8H{r%QBwSY|#+kEYMt=TfW36a^G_~9yjaG6E-kK zhMSuC)ak(H=vJ8bheeUgX#&Tt>+l3_(~q&QlCX#t7fa zE|L4KDW2vzT&@u?KF>=41Noe}1r70x4d8T0A2~a$5_tMoErR6}>6JYeTCTz(d$;Z= z$~})FY4uFk7*-Q8t5gE}2OA1li$`R98n=wS*iI|@te6vnIA$zrPQv%c0q!F?0Z;o` zYTU@ee8Fb9+??47aiZ+5T&-?YnfEM@l@tJfrJF_UFEceOMg&6JrJUB-VzEA|a!<_? z4UebWDK@56g>@gJ`Eh7~PfhK%tQ)@n=H=X>tioDhpA=sYOLp7EB@4LHUt%nT%PBLU zt)^G*Z5+@feeGbM3&u4y?_H*{2{5(ayn94Dx>*}s-2(7a73vZ47R{dRywQJ z;&MXreo4;_^SLjzUNzg5L#$_17o-m((mre0TW~PX=J=z*IeY&STh@CGk%hhI+<8RX z@I9u{`Zc8+_AtCxv4NZqPp-7di~4mJIp@e0-^zCA?tJc-dmD7qBj4QA$%7LE@}Je7 z7%ME3N8Hd6Fd+3Y9_#0d-=@=~6%WV1!lEWOWQIFm?$7jHT1p)o&whGmo(m!k8z73+ zvy}9^*hnq9E9N(-aOfLtBwLQ^zcWZ7qQWLAuR*#srk(ngXV?(Qc4|wU5g4qDLE6yi zUVZf3pO#}$OjtffI#evCH|+W*7>!&hGJ&{3b&PvTZqrHR$To7g_hJgWukq4Oq(IS7 z3i;HMtESz}#u8kZrE zSOzsos#Tr_UOcWE&m#p6VHsyWQG6MQdy;{bhe8YdxHV=w0>qv$=HGKLQlB+yf8|u_ z36L$LgAVqi?5MNyh>g4!4d-h-|J;2<$+SQ!nyyON4H~HU;UWs?@^&^rx*tY8LhG#O zhyUMP06X0@C}hJh-@_&u9#_)m?$un9>b&ISQ`{RT*CjGH1zz!T1&K*PU;f~ zykyjOc=V*dcc;x`6p&N=uUE(@Zer|yQ@Lb?smo=J&s^c*H`zzB@?62|r6N;o3I#m& zx69*vK}oD7xc;N}>jh-gx;^1XywIV;ZKV{#oH|>F?byA6uTSxAKOI`F+wRXZBnwKZ zRm}pg#d3`lGzzb&B636F=}J;n3$V$y9&A5sz-^4(^uVYO zr^g*e>17|L4jOtVi>a|LtEUf%S5aO_`Hm*YJMKjEmG=~qHvQ5+TxB{^TQUrMQaF5s zXL(SsVmwoiOpI|(g^rGt-Fr2c-UPZXtQtSzJ|yGQx+ZU96^nn;fmcxTD`;uCq_);& z-kAhH!z~u~0f7hskYm1-T5Y03fjw>-4o(3IA0s7t+a*l}$1&Apjl;UN9madq)%}m5 zLSg**wDrvWU&>eQ^I!f}H)cxjGXd+?(N9`G+vTUXrz-W4J3Ze^n}`?7Y#vfB33ytO z(4&qdll+B@Rriz3BQq#_V(NKLtqt2Xl@KXa!+}Ws1=dFYhRmygG*;yj zL;bEetTd}fL0TwWn$%&Prh>(&`X_6=Kl_n?ANLW^)oh}pF9Mn7Nn>=_?6=NH z_D3t*)|E__c&j`QYB1Q6_frGn^2DQjI35Je@7F=HXZnp(+po>XP!&Z9-3-3sfD7Bn z1)%C_L^f&G&lD6P6$`MyDj{9N!C zfF;xg#taCnuzWeKh$LhARYXm{VHOsfJ3F!xgElecEU$o}X+q61@!!rr>Ze_>;C1If zk&Nj)L-Cv7)*Y~Y{T##+{*6Vt9|IM+=^X19Z?wrabRBxa7x2m75n+Voo2=Y+qY%9K3p2E<1D%)>(epcBr}z{M84u$KtvGnzpoL*(w-ZeaI?O>nOnA3fEf*_55`cV6F=~c7uW_8u zV0%N1uQV@!mGjugJbJ0NZ`)?ayl2$l+P-?ZU>nlA?Vam$G26(1TYQWh17uv8LvnqPF-xX0%YCeyKl}*+5EEw87?|T{+x`OhD_jSzsM+c;m7f~pxk@Wb^3|T zC22a(5uR9hls9psBBOLL-cuf9Y`8luYj}crFR8x)Tw^?hqhg=A1`m6s*vd*=g;W91 z$nBU^bd^ah7588PLikz7Xw9&!;M@U8^)Kz z%;g=}U!aqBAmw+GzAuRyo!<7M(}pKAnB$-CsAnfwW3p;8;-xDpou4dW|cn z@`arDpmv-#c_}*JQ$C6iQC-+0Qq}9(Y%vLA@Y6@Me?N~*bfNDYn{U3t-MZwYqtX#Fg1yfxb~r3Ix!kseBnwoJE-mcwpFauHha zgJ!y(i^~YuRN2yoldXPvuT7S#8o@Z6pIbAgd6z1Lb*|zLdD}K0lx4C;}~N(JnbPMpUzz-bQx{X|Nm?DpG*$qiifA>;)UO z`ZN+K2@cg%7Zlf==8y}%cA0=a-hAU3(Qi1^p^L8t>Ngoyok%xV9oeL)O`ELWyt|3r z_t;eVu*RNu3D)hv0LD#?mveGgBFk*?6C%O?uB;!?9_7isfZ1U(Sb9!^WcNMu4b%Rf zaW_)X*Pd94)T$Z)6?eSDUQ^a|a(WFoRi<{5+P)Eog=R%mYbJ?em-<(*=_&GHFPj+3?|yX!-~D;G0|U$vK9 zL>@AlV)S(_Y&8v6>J65fmQu75oP&^%ONz;l8IRX-fpWi1&OlY3JX53^Qtwn%dm2ydLnM!qCDxx10A?-T*`pxGp!RYrD4b;%zryoBcm zytc%U^T~RR){GQ@((gDvbVSqtph%hLVEklM)pu3~W9NEW?$z^m`v!v=G;hBm^Yh0! zj62<&=U}}-ptHY&jaQ(FdCFQ^>!WqZXmyHBhgOPF>4&*l&s{NvR@}xdZp|n~W;}EydA^^n3)HR-%KvllJZM~CS4+QewEyJKfD;i)QMDZ0ou8tTNLSWsO*=poHxl-Ee(db4ix3BvS0AeFtKV-DM5zWZ|!cuo+4)~(tLcs1P z6YNBklXvuUSYvA7agumHY$DHu126qH@wc55qV z*c3wJGd@Dqoh$pOo2=!DyVEW+d?4vS>DwdRZNejgZxe@F$v^ zlpe7WY~dCHMlkreT~y9(z4u!jBP-xnVll+jI~SWV>rMP5w|`uH6?n9VyP8O{;A~Q@ z`5}N3EvNgvoaG9qRkG!?+v#l}+g=W_Q5B)etFIK(=dqL7SQblSD)K*u(I+s`d6d5| zc~*eafwTRS!9A2=2G1h`UrlBkhsoI8E%!J%l-zt&i(YNl;Jbfm=nus3Wqs0GP35cZ z!;slgXND@YFpOLZ^87WG&|%@?Ht8?&h$67e!%&FA#j>e_WpRzJ@EVm!^A02H9|@PC z{W=~oK(4TE`xYtavxBILLON-ZW>%nU=B0XGA0pCiQoYU?uTl@SkHnio;f{6u}o39#24qBWbS8xif zg&Sx;&M^r{WyJ!Eytf^VJYbuu;e?K~i6Zd+H^55pz6S&l_OFa zC;#`O6Dn8mI&6Byvjp6}SJFb=(B+m}D?Xg&%C1?gSII!|{m2fL3V(IFDX zXU+Da(n%lyzqJeEL6|@a-irGao*B#HCvU;9qfO3>caT^DPgm*61M{r|c@*}wi4H+Xj=XJP zW5{`k<>-Sdx!-|A>IoxN9jx)C{H?~~5ZJrtqm@I4wweGxy#;|B3ckSS-ynv)PYhHG zBnR*qrIheJxp6`2bOYylkiJgeI!~ah=0MhhK8V zUFn%9yl?mVyjwf4*uks!r~3@hWRS+qonX`pK_KPx0lxqx z6?PzHAt0cCw5|!>07Z65Q(R-qUt@-i1^oKX@LJAN^6eNx`o|12Yc~Ukf`b}$B)05U z-dYH!D(SR(%Xz6{*`AD zdBc5cMz?1oz-^=mn?en)Ljq;y;0Ja+J2;q!@aLaSAh7LRXQ0o*uWPGHT}6!@Mv7c> zjps1K@U_0QU78XIY8cT1q^&f>a% zVA$@=%fc6`qtzT9f3rQ_Jf!JvV;&oj9B-SioV9C$Ce&ZEmKPhxEv}dfFvq=QSgnfqJEi~szS-+Fm9It8etr$&Pl* zd7>GP|NibgV7Ie++M)yw0734Mly_2}wr}rtj~``E>@fD+c2qLD3Rk|Ht2n0MJT8M5 zC2&ljr=lRyGWAf-{ddQr!0FK2`|HH)z=mmF|2+8n@PC~qUrJDR-@?XU9{J^9K`#@q zTre7wgxWG5LJ8E~gpY6-A5Cl&wE}?`UClleG3`5$Tu+-J?d9C|&IH)pIVk(lf$>6_<0rCnoRUF_kyJP*u|6fMy`;XBc zRbg?0|8Jvp`fIe_zJgK2fab-40nGy^psScD51mF6)+61c3!<}xnwb~ZjLN`thye9U zvU2|n*`bMLokW5o29xUU+Q9;+#bWTI(A_OGV!0(nEKXkcjz}wC0GxU5b$Ji`ZNJ(m z(M-|2Ei{bo?9&4v<1tnjRe9zLT-22u`vleYaec5sLY|d&rdMv>LW<{iON)wZE@ zZubN8ce7CylIeUl6#Tt3=64fT{DC`{KC@boYY*~mo2(%T2O4HjF%cK~FCvgiBMp!r z0H>pQdBj4AN|*Z|Mc(a6`-@p?Ze$+f8$8ORZuvnPV#$Q zJhmSyau9|A8gjYR+{DbbL<)Z+o~-3^w|X3Ybx=CP%4pFGg5=;(RyR$YeGETt`@9fA zj`JPf^KohEo9Pa6i@T(vwLLHXwm!}nGo9Ml`ooIdak#X;yEUh9Jyp+?FvPg(Ex)h} zz)j;b-I;kQ$CZfNCuJ*1AN^fP#hv6Qj_h2*E_Juk$QL)OIwgHe#=0!X2vnL#;P}PT zkn$GIei&F;OtK`@A^CGr{+fC&5-h_ZFR%K%^v5Bw55Rwepx^9NJ8GV1Y-v-9T}rdh zfK6V_B*C{iQONp7pO!O?b4z0VUy%Zc6%ypv064~D`Y|iP`0JeMzvAz5aKvh`=Bedc ze}!-v!#Kv-zekGy@6W}{e^nPVAgJs7uV2I$T1HSA zwTshpv2AK){VhsOc4b)eM0`QnT6f3NlPjTbHtg-w^Z*0&>W^J_`1vbwy&fVvVW2`P@`nOl#Yg!u>!!GntegFS{fZU1hc4 zzk^0L+M_L~xZSB0TB>T^>V7Qy#Srtq06U@-V3&Th{l_k&uW`22dSXpJ$1u^ZVORbhKf)p94&;lgk*)e2( z@(v1<{nqKuGnDIqU^)_u4eN5wq>b;2X`B=`V{ka)>fH_GW#NTo^(%S(*Sl!98ZukC z{$m>(2QMbdgzB6W&fWZWZSq43-YAA3P;&L=C%IAcV{CA~5Im5PK@j7|n^e`^-|LJk z@hnC`+z~9}oDjy*XyI4((gS>AY6<<^pQhbw54Ksf*l7P?8R#2pb@4tc!Suoy;bbu| zUr!OvC>mI(taP}x>}=9sEVC^hF-Q-noxcAo#n}IrV$wfSjJ9=H1=h*;yYIgE0{xdK zoD-@v>5M&WSPImg^Q0LN`6uN34Lkq)WM>Ehsm{jw_UnJ*kdaU&oV-OL1%C^`QG^qE zIangqbQT6t!ET%DcaY4*F)l;+Ns-ID3vI*vmS z$u-Z5G?Zs9t^Wj(Dp3y4-y*a0&_MD!c_qkhwM^P~+>Zc!ySfLOI1!df9 zo}}_tM24eUG+CdQR;;k>MOxw^Sa2U7hVik&#WpnIX6L$Bw0B3EwCz@OgOQ54sDpmL zD>P0bRd|1d2NR?b2BOVGC;UgfDsg;FR=Pyy`!whE9{CA#MIYQ_+^5I?`oM^zVB81T zDn;IF;BN7Morv||zGS8rpgmtnt;je)`;VNnWyt~dW|OE%P%*b!0fs1s0V*k$N3%^j z{ye5%a*;-+22EW2pZGdTx^=1^aj+jctse@5+~gU9JBtM+6zK)Ny~-FGg_`#+06zH< z6$1wA0_-H{{llMyY28*m;-?KoFq>`P3t>XZ9m;9S@v=S@OSSsQ19 zPw(~nXBE=Qbonb!@RJ6-L4$%cf{^h~)L#c6arJX1$uX)K_k3a|OfCq-=d zEw;;d#jpP?p9&XoSQYUea(=xQn{t8uM3cX@E#+DUyz76zww?utpZvZLY#IJ~B+Z78 zNcDjq8C4kA+4ODiSwx7~{(zf_%+>cSZ=3_ogPW?ez-o@IV5NYTfznO3o|iwThhGka znQRSI;&GKpu{2%do>h@XLY|hXhnooR2<-gbY)2@lvUsiZ_cs={<(}OvVzoXudu|q< zNABUjzAW)Qw49<wA`28C*pVcSZW^t%Y z=~MMCJHAX)K(a1)X(lQ~tk%l9V+NffJaZ@{6c3=$HQ<&&-0y2fhK7n+oz0o8ps8i+|0?D5)UZsQB^E|M}E0 zLswZ>rx`=WXP~8>dRFCWMe4B|D*E^R|KrucCu`#IzCJ4E)^61G7~xD75c?KOa4?VP z0Sw%ifhi$^&d*7OgLV?hY@bop!Yi<}8mJqA?Oa56f-Z0(n;toMd(II9<=vEys<7Rn zA0ppggp&CmPEO2BA2@;EYt>dIhAexIQe@RF4CbMFQUNs{N4s55o)k#c;ib*pcVV}y zY6<9MuN2E}0WVhVg|DiuUaFz5ra%i==tXGz^SkM#%#54#8tCg9@Rc*()M5pBOU>0A zB>{o4#mLOe9XU345+8ARVS7pI;yTsgxwv3r$RR|KAa79kHVppd_&ww8(n(6g4+qRW zp({Te-&e@ul*r=CWHiU(epnNHm#hP8|3e=COFYVyPJ#Se?Z3P`aCwU`e&hxq8$BFJ z^oIsKgoN&fENY~N$PZXoW;`Di_9Bn!USdQ2n1*6XpTdXxC7+iQt4pS<(p8$wWL8*+ zQ{@xXU~SfCLTa`J*p%xj-iTFKn>TJOBH)kfG2HEuRfOf(=0)-D^35Ns<$YII`iD!Z zn914EP|RR@0*Vo{{kL^rmnhlISl8+ZoLIkn@#FO{JE2+(g&KS^SS1tXplIhhkjUgJ znJu*o^r>^Nw4+({von|2K1$D=^}9_}{?T-x#Ikis0x@z4!xVA;Q^_NMWpgyWxOT}8 z;tJ<@zg~At^*Oa9MJ6bZ6jJMx^pLE6o33asRIkdbQ!bASGqz9IqK}u-j?_ z^oMGMX2cJ9vD4Pi%5Wg;weso@OiogCkI=a3uRF*4q6D0jL%EIG>O5Cs-zmbUHrI-X zgim)QlvA!cj#^7*cLu(z03T`Zl_o3wn1QHPAerwa{2{ z`AO%ORTUanS?D3OIInnaspfHUk$abfw7{XnyE1L7{;RjR`PA^n=E=509aUx`WsSfgN*gxU%u^_PI$VMh=drsZ(h3tk=cMv0rL=WxpT3 zhd_PGvi$y(J)P+*$J&2ONy+^+l8iq!~+bJAy_M)Lg~3`G$GQR3`BbGpS#ol@!N%sQ$P!# z3;fg3Fk51H`Laxu&EB>B9G*nmt%-yI6r(*7i^R$F8wT-$tL7bB1e6TfWMai$$UZ~& zauhyJHZ_(9PG`X_xZ0tiL>#_iSPY@AQSA89i!_NRxx&zJsFM zTGYk6O#kDY8m|EJ>3IFcQzWOo9@rUbu>kB(GyS)$WKbr{L%%H}j z%1X>V(^<_d@6~6?C#1fIEdHS;dV>Si8Jb6cE|9sUJe1D*zBk(*K3t8OMqAL^_7`7K z4^PF@(I4oa$$0TnKNX7Q>`gJ^=Zb92;z7};w|{?N!)CSHG^@8gz3{uH-Q!5xu+``i zzPU7UeiHCZk8y(Ti_hYupWigD$LV!pE`f4JX-O*r+dYdPj=N@^c4UA9`PSSXXoB#M z?OAD~O{k9jK)4C# zpPT1H6I>M~twyucc*7I5!X8H(kTkx|SlmeH<2pfPHUWI*aj05Dy`s>2f-1&e$KR(i ztni!d=r-8au-*2f%TtJ?N3-OXo(=kw%wo$QcC`xV)##nC%*g^ z{VkG;9hU>3E6%*zKYyThy~E&lg>0kqW3`0H4Y*{ROITT{CJKJ}J`!$9{vUNtcm-&SYr(zD z26?8O;=K3S+I2I2tB?HdR)SuVh78sOn0YDrCd9@{L6BSP`aeTIrzwBG{8I?!zdo3| zd_yjBDX@5&(x5oTM-i-T^Z#)7o>5J%YrD3J0!kO92q9uroQf2g)IbnWn9~9%BE2O- zlwLy%LQ0s)kgfItYn7a^1YA%PIsk8AC+-gmuo?d2Zd*xwj? z41eh34+c-U?(;sc z^{Bb4k{a(Ym-zMg#-0Rq#w*->N<5>V$@R2LY^ts}6!<)n)fgX9$kk^gYg8h;!ptP8 zm)wYy3#pYsU5C=CMut{gX(O3WHy%74kN7oH@OGq4?Hg!=7nNI`_n1YDb&`PnZTL_> z>{sQ0-_CbYjbuY8Lcur}8S);%^L|N6*l5s9>6$~cfgO>047TEKYsCXq7WD3mzE1g$ z4bWb)5C*Fts<}L#O~sB_a=mq`vf+ID>B)@Ce^fXBX*K_+e^Ot5zGO?gJ!oX=zGLHs+~uE{N~Nz{eNh>w+`k z_#u8K@^v`o#_lxWpVg^7VY<31xwbCIh@@1gEg_H<+dHE)4v_ zY^gh((_DxlbLSF4>cXbK!VL*!q1_QZC~`@>**!H#*-wQuV;re{OLm4_x%+uI+u-B; z3SPU??d!n*TCe{r{ru1W3ldrwJ75Y~I&cDP#Mr8NO|s_?w-B2*7ZcM(w#9ooi6ePc z*6CT0RtNu*KWt~DDLpuGtNwZ^N}d6)E`QV597Pz6nu=?20tY+jl|UPGYeNbeiSR_n zlJltdg?a8Ep8|ulMorhTSIkclxc(7&m4!-}Pw5LU74iGsVx`qlSJkEw+Xog12S&b^ zd_*ZynUd?$5%oZyY^zd^)@rX8s~nN0h6?G!8JR*ew)uaxNRdoG+T(PY*f&W%b6>k! zcB&+6I!oKbSGT;{ge2*Lml&@*_=m3e<3qpyT?77?_2R#}h%$UD{#e7jY)i7^L3-G1 zi4YVy2Q%kAhJ!H09>QC*;>tJ?Aj0vm*T@hQA;1@IzSEbcoQZvk9qN2(uUh%h2FB2p z4ARxU1KJVy0Iho128+6;=H14uTJ;;QSzz&*E@g(I6m(|Bw^sPH=Dnf!4hMIt41BXX`)92eLoaeAN=u{#qDKF%wnLiU-?b~{%LgQ7->`h2B_eBwc z??gW1ZM`E3rq>3W23K^t1P98vt<02tk#4m{?Q~1fZgqm_e8vga#uHSp`gyLO`>zGd zUlm!@jkgkyKMIS3cjy9AdFra<7Br{NWw|+}*E|kiB9r-0@99u$!iwurb=jp%$V`P- zYT6wgnK5ghk9n#OW`?uYl5c7`mq13u6*KDUl0u@I4T~6kGUz7hywO=uGewKrNY8^x|HGsl9yQu}p@D zq$LX@@`naUWgC|WS-}GAt(JkUMnJ?WyYH+@PEMTMiCagecR!N(Eu)AZqSR>IBL zy+$-ucB!Q7OHQI+l#Yzued^r1X{2XfS8tUYfZo6f*Bl?!uMUK>qz!abwa1zdS)rx#iu zDkY*1Yd-~NZ1=$p!z3{y4Q!IT-`z?BHdk0p*?fkRcVjYqKxB|u@Ou)oIU)LPN8n+*Th61ScSEyh}Qs?rCPw z2Zg3-!Z)Q%!nKH}d`Vah9yY68)-#!-nn~U+!)$^~e^q%hKy-MTEO<9C9 zzpDS)sB>XXXH7Awsel{$^fnZ_0pgXeKp_zn3#K4xIA?ipp);b}4ktn*j;evfit7Z} zb(gjmDTN5kZr@ojZE%64^bo0<6tKHh>?~>ko?6Siv`G1CS`Zh9_fkm|Kec+dpExiF zUy6Pf6mhVHOUBUr#B>2kDKE@xd3H!gnsuxxh}xtuP)}xL(jbL)5>USbIV+!EY;QHK zHf3j66T@OcnYlTF2tL=)=BPW!sA#e90P09jFb+`(!x6-+`fXvj0!Cp$(QP+3w^wm| z4g29gsa;PWHoR{C;KBP65z#pTG6lFV?%{)coQjlWH=XX`%3mGYTD^^rf)wwkjRuiD zB7>tU1%S}`^6z|ezdc78hwpVJ8@CN6kg;7sV?BFwd@(XuHF$UQol09}dez%$1K_Q3 zV7SkCp(-2Z7f+q?;NP1j=(nlIi@RRwlotdS)TzN;I%i?s9Rb z!hx1Q{;ER!)pcs>XC`y&OY81Pfyd+ZuG_pbC4zG>LC!eI?uYD!R^An2fxS#T8hAtV zhmNv^(92Ewm%Wq4ar{1K$@$JXWzz<^+G4$A<@h(;H1aAhoky|nZ9|YL-j-5`w8amP z!&YV>>3MqTY??H=3G0z7=zC=n?|KEd{Gs}Bs6V@p;1RORts>$Ts@K^Iz`BGDRxfk7z}<}$&Phkz!nG1f2_a1A~~)ruC%&3Yt`RO!S1hC z*uT2I=&8?U;&Hg1E841+_X9_)&7cQb6e2jpc@HVdOu;FUfdVKrH*UdAinc=!M6HA? z#RP34oeqPW;zuP>Ec;5B28u`}rahD>u+Xb9pEJ%K+``GJ&sgC<+5o5A&B0})qzBM! zru7chD4xEFgKXsxjTJp}H(vLgk*q$fuHsB$T0vpnLUI!mhOE;}Hs{V&^2ErY&xQpY zI(<61PXut_pkWgbCS_o&q(ON>PYO?(s$TwGij7NNQhFW}hxS{&A;lvd@#K6uDF`?+ zwe1Z-e4~E$RsRZPO+~fZ@+U=^u6@qoR(*qx-)!iRHU9oopmH1tQx|Yjvo>9(@LAIgt5jIUFN zw8G~@$NDvxvUOHBsLD%#*T8q=XC-u za0MKmerS?wUNv^(1|7wK5A!_ z+Lv$=w4%n3Vlz@%=n~6tG^mORiE1>&`0q^TNIez!@nm5petwKk{79A+mxQtkkt}!?$TW@hmvS@p@@$q75Rm|V_D0MywQ3P-~oX)BEM4vSM)I}4%Vj7H1U(c zk024xu+}?e5Hew)HMf!hNoP5@xY(N&=t=5QjTP;4%T7JITAJi!P$hO#+pktuVD?CC zUbbOvd4hd9y)40nbYJvMU6fbUZz&9~9I5fMEiB^>X$ahkKQ(S6u#QXJO_nX>D$BBz zkWk#o>qy=kvuUWSl}Gxad`e6N0{7S3+h^{B9uJMY_x(Tkdc+=E7IPTmMMMFFVophr z^QjY;DOn6f+WF!4EhuoNs8b4CtfTa9ZIzzK1NJgrU<1+zzyC}OdA}eg z!!oLdG2trd?34vAKhE>VG}Z*q=RvzQocXZ z@)gB#vmK{Lsliqu9DOIg^XmMxFhd#IySkRIeYJ|=8I^cDc1J0B)}A}eBEC`j0+Avv zrklF_Ieu(z5m@;3`5i9 zUBVzqk`<)QGD$i`hKxa<>uLI2nKP@9nR%TrB*9P~+v^j*ctS1N`0;~3?xM}5^qCtN1g%3)BD6(wYj_K6{wDdgn7jdY{c_Y_71O`E4is4e z;hO3JWo^|CY8zIv1Az+L7INiAA`#sd%-DQq57c#uP$y`rpJIkm4Ql@3>tEFGCh3Bv zD0yK-$>_jTq21r00(!B2T>~WXQH`Cv+xw`kXKIA`)2#s^%i`L&Elf28F;CN_Xw}ECzszXm(vKVnLD_8}1)_HN|bSkcQ8?tCjvh0Hza%&`;6K)DG9qIaT zR8%?9=hEEqW<5`Rw7DO#wRCCzAo?LZ4}uOpz8VtMLtGJj5$GnX(y~XLIZbvY&4}e^ zype6Gq4LUFB+Sp>lHzH=r4~BGBeglP=5Ex=qN1YP9{jh^BMc#6@=fyr_Jbr>u9wbvMFLRW`p3(cjL{2Go|?h(s3~f3n&hfJ zhE3^e9G|*X@w3ojOIn!m#H9^`Bl{)I7%umY!Z-Y34hkN_4b*EfGtS-S<`uw zTj4-OMYSog{swUL4KI0fMpy_ssi@(h8BM@2MV_>3{>ZdW#iE*;%wJI9YV)_Fq?1lj zzP7Z*+cR#-@-&XODj30STm)Gt_oXJ-ON}4rS*(nP}Eeuj$kbw##@H zfL<-+FfM~YAdZNzC4;}x?SFM0b>ndoaZNG6r%Z_#Xtl>A^CfcVnJ)X1m}1}Tky{+2 znS65^L)c6`gH-iKqjVIJd%Ja_Exs%8xGV9Sy=p{iqxsYqJ+#RyzY-xM-ly>-+dk70 z_2Q>#ErVmG%PY6|T(?{|9%L7X=&uW*=S*(W+~>++h#;sA^yH~eE!8DR@No%cuB9N9 z$MlowbHkCkIa0c{VfqA2SJY-Pa1F|0Z>}_a zw9!-+M5t%sv#c_#6IDq4ef>3vz(7a%Spet2{-n*ADsqtXt;$l4`|?o57m2s-1s&oi zoXolhlfN4SaErKrugE(vG)!maUBbBB#>eUu9%=HMEl9-V`8ks>73Vh~cv%o*#$IB)+&|oCm|q34067f;REY z2)4R}2MFaFYEsJ+BL32O)ipJQlIL-G7w|63dXXhX$W@0fm84UZeFt*~|HOU{L;R$U zHH`WES>o+h--Ee(VmmtB$wwWs!&?eCReY&(L}H~vNw}EDWz>`qYU+iGXbSziqa@U; zGfvE|pJ*hha(Fa!X2C}_VsvlI-s!poRGm9iluff39@TXA6!oT6%zw%b^+yZ}ExBiW zA}#9q%R~Dt;;aepZ2u^`YSke6A=_`T!mOeU$bfh;t#DZO^4H{p()AA1sE{gbOx0E> z!D|cF`Uq(-6x`FRRQKhBoSxAFWz(!;AVrgqW=p_97MQhRNc0dj3mf3d?UDFyAJlOv z-^9ww%F!p`XK%!h?eO{Y=iBuGwKvtYoB77a#D@Q(VpgN~{cEg=Kn4B=9&ljiQw1?X z@_#2&yk{sYg2J>ywZCC0l)|?7lClNtTVVsR+sHG^p&l!3uT33_mcVeHhb-+Fss+}% z!<+g&CIkAtQoyT#91pt}Ve^h}^Wf!HLz9$kzV$P6r;5`8ToiwuX~qf12+&~EnKLuT z=MVh3%`AKbUI$h&TN_qyeqor61Z~brLP8fazS%d|n}MF{a`T6)4~LCTo{P*~6Grj{ zmz4=_^b7}&)R&fOd_B;o&-vC~_$PG;NO%EusF-L?wX{|fUHb02B%$o^hHS3>fpt7MbUv)iY{YPhl6vG6H;A zW%(&aMgI0}Bw`3!-^qqbaoE-b?({9MT3|dpBE1xmPa zB)+7w`No#3kIQeOF@+VvE+A^33wvyy{Hnj=d(VzgfI<8^QvGMQHzg*A5LteQvxqjb zog~Ereh8b+2Wqm{#C@GqB#pndb_<|(Wy80H{1__nVskoCh&;0jv&cPiX1$*Nrhoc- zx=EPr+@xL!q!1ev6%yCzbQ@{giO4C2;^s_@()Jc)m#O4N_gkiTHPjJp_${k8{c(n$dCz+!cWYfpRP&0`fH#^Gc zm`K0|`t5&*m;6&hhx+mWhjA7H;pmQvz`h$c5#10c7AYW}5{qp64Ur1JJ3QpTxNO{3 zq0sQc|Kwfs7X;F-G$G_WKO_d1&BYXXsJ!@iq6FO4OR;#F%EXA8a!@= zGcpTWh~3!g)Vz6TmrR7e3~6tu&d!e>Gzd=N(EkaXBq_-(yTskqv;QX-nefksN7sY` z99{BdWjnz|>cNZN6Ok6ePFKag*dv|7q<;xl@>=0%z19P^cGpV8mv)aK7vGrm+seC9 zqma&)U_4`;zcY2hAgaX>vktnbBNJc7PIJu5w!OWPt0&1S+1a!g3LD4&iM2^lrqCzN za#z!E!U+EP#=ZVN`NOHVs<@kuT#k>MQh6&q^`TCX7Ui`-p+=8({23E}yY6G1&e`m7 zv14Z<8o^WMV@K;izkX~h!q$!C#jPZ3`Z^Dd?+ks{0V+#4xDiXj-!dK5zOaL~_1~%V zKb=&j91`!m7@j_JH)&pvl1Hj>^Ybg@zZ&;4Yn!|F56Dk`P*52K6_xf~6ASCtcKH^; zi}3hn9ho_0L8lwt$xBxax-BT6Tku2h+V5(iHZnLRkKY_4x) zLSz8fq64Brt0!+#mY4J_esr(zH1-tXN)lWv*vw=gMh%`ChHLOIJFf^UV*^HeH7&)% z23}%C!aI1ZHdPy4@VwG!^yJectL~2V11d6YF?lJ??pkPW0q2ntjaFfo`s&cIPK5t< z*VL`_r-o9f#qx16*L1pYv(Hch8ZEncdZExpjw(w)!z(IPmirn##y??cOx!rGwp63K zqS``b+wSKVqP8FYea+wed(YhSb!Bo9Sg|HgMc(&B*<(KEsKgHw&E(d8gjpmA{B32< z1<6mygzQvKDfCT%a@(lfWoH*;;U|JlQ(~pZSc@_dd#TYr#m@d)w#-gPO7Ut$dCT(@l-mp~NXhp6YW{A=H>I&pw32zd2UpBS)xOXp}sP^mps;!-vr} zKP0ko0>}J6G>{@Ps@%+nl|xhj6tv7ozltaS|2AgwVRrUA4o3rUPZcbh?_YwV{{)_Z zgeM?tV$n#=t8$05ib_rnvB`$ej@+GRFhX~dB#N*{ zJ~t-j8ii{u5e7<(##Wy5ywdoS^DYU^O436GEy)_GHiSi)r0bF>U-agDoMDuT|6(%2 z&41d%#=<5|TwJ{Cz=>-==^1#QI?UwOd|!WX(SCHxH*z_U-$_GK1wP+7!qwrB17I+` zzba1mve?38^NU(NhFX&VKIO_`6qtyXQUl!37$ z5=iIXan}6`Vf5C#JF&4!pf%x|b_*Is2mwF>w}ewZM*T*JH2%L4_FxgL{K3Q$LHH=uVskib`vH>zvbI zMV06Kh*5K3rRH_00K&ux@|43SZPgh>{*z*@2 z*e0YLJ-0F56G=dCZP{)~^Fyo0OsrB&Mr|(7nJpaTn(Dy;4YYL{gm8L{17C+5j@je( z8tR;l4H$#*p_Lzg9)ViE)VF>dW4{46T~4zCYs3|T_I+Prq6hc}ZSH`&+HwwA7zn{{~Sl+~12lWRgMhpi+! zEF|#NrptW%790|xQ-X`;NlF?UXGZ|U4lo>CXHF9o4B-C(K~eIHHDE~XEXNct_ohc* zN2_>uC%?cod~#kSl(C}?{;v`!17vWUmMgddo;S%wZA&%*|Y8bH@^Q5 z5h#w20t21$om^?>ep0qbmmm(I7e!n`-M2h%0}D|^hFFum$OBKoKLQ2OogXHU1|^S> z$oeqp_v95tN*CLd8raxujozNd>q;yvUb(N8Iu&=GA9T}W8kUu!1I0z zMRnHD3lHpc%&|6Nb3+3=uwO&p(_Iib{1bg3wJYPcOdHB(LPwxyj{ul{0$%W>%R@|Y zkylYDOc0v}4U$Ju$ufyz05;VjlSr=z_D8=&WB>&9+E4nE_Vb7J_4SXrcscCZcL6tL zPXG0&eRf#dpvd96kekAQW5V^STL{rVScqh!s(>xZgu%#gdY^s#VI8vtQtDB^RINvB zO2Is6*<-9EU_A=LnI`79WNL!t(FhGU_ZCF0>PsR0S;0j`nY6hHZ9`Yz)aloa=bLvA z(He(hggxYfdHBH96d^i_(O9UH>hC8bH7cDcas@TLHVn1_NRx#v06L)*X1TjDP@Z4K zP<{ZB0;33RNOhF7{oiH3}WMwuT`x|qWNTz@CV+DX5lSu&aqFp+$k#a=#z0S}h%_$JXUl zUMRNhFA_y9B@e7@0moKuMj)z z(4D*E2hTH{7x4mK%%~4ieiR{BlQz^;Y|Cm5!f$zEW@jge^Xa&3c2631_y`9P9opb zs{!j}!ekkjhRW(^%^Sf+8@UL%W}8i!Nb!?s0Ld3xe504{w>j8sA-4L+2B^mgtLxPx zbm5zwzqIhA%X*evP(M-mOEs(thPt0}Q?jYK;%bz5r&5Nwi`ewwDdqS6qOJfRIltVi zG;t&@&D9(m#ezUSW`Pqm+&7&&|cxkJ~h&|7}x6^x~7cn-a5Fu$J}8n17Y#8Z&4xc;aCo+%ZcQG;-0!pt3#F zFLc1J-8bY?C-oZJyde37_vEg5HG1G$_2N6)`X4v5+g;?+E+)yZ=MMu9+D$P2J+(CKov){Z#?;hX9#*Qw+|ynZf>wONRlH4rniO z^7~0CS%yQBPPgeVi(_2c4CI=QRCz8Lw5_TVxUNL_@Em~R_z&L!XL7;_p$l$Ce!FhA z!_9l-w*rAwSj_wmH+M1}6v?dpNaSkb~9qF8DoFan;J!Vi|VG!zUsC zCmODnhay!!wR?;Pm!LOeTxO^3)Xk;P?Sm02i<|VMbnQDu4e)IAe1F+2t0?6c6U5#{ z=BCRz2oPgiGO%~`EsyOp)jqUpT-S2jPw{bMDz}nk5s+?*NJ}06jFb(OX8hZ?_02B}zlDG# zF8_oM5@dF<$nC`;s0#EZk4s&pM%v{owU-y64Gy1n>1M=Ns&>%ePebqBf!ELCv_kuV zdm%i1O}modgZ_XSmZ0`FJT8zg;!25hr<=WhXqW@o`}I*TPJIcaH%*$~|Dgxhvo$LY zsL~n!E0Y_Bh3+6ALhH74YC2?4Xax?2m-LRO?J@HrC-mCJ=PF3|Y)0z}n+NyEjrwuq z`1lMEjk96D)H!?S|{sR9aXUr%S-2=_CENuVaoiqFq}{@+AyxoJ#|Ki+D^C zTBf>zhyYWU+nC&V26YV_7=`yb)M{9uENOX#3mh}VO)K@Rl&|hst?R9f}Ast|e z^1>7-gj8-lQ_4_3`O#|6mVE>vQwZ@TD}KA#*Ol8pOPirk^f8SX`$t{5P;--k9D7j6 zWy%H7H_Q?uu}dnHOD>V6`K3|0VhVuw{_E+%n`IE|*bf;RwuzDJhg$EM$k-13t^klK zUn`LLJYBW~wQKLYSXCxik3XkEa%Z0l;VyF#TeoY+!ctWd_qbIOLki>K#Mphaw=k-xgHzw+?AN^&K1^?oY zp?g;66q$V8R+^p#7293dU*nrkyZGxK01_8NfUXZ2NQV`*905{L+q~gVP6KqG1)r0t z`R?1vTfBHAo5~%?>nj%4B}pa2HCN#Yf0ax5TuYXhUHt5zzEzUyK~<7k zrMBa8I17x$%kl4;!{Z6_mJKgIw$Rr!z7vbAl+wT)eI6rb z1dA!d{4R*d_=uv@#HZ_`biTCd^Md_%|KNK};ahX_lY_ z^U2k-b#Y+{8^wAN(v7(_UQxb8UP*6KdF19+E9wI7)}T`A!US3dYczQ|bOE+Te$0|` za_ZS<8^Mk5I{d&7LTbA*3u7>)a_f0Zqa%gDS$vXQZ`P8heYybv92I0KFnV297c&^3 z${M>ren9!UhMw_@zv9{d@j5c;Kt`Vz^UI5M;2?;koOIiZH!oeM@3x{1v{VbYpEx*6upMKGQtl^60Tg!(1S3I+kb`{3;OOCxV zvFgI{0+{c{+n;lQv#ijl?eJOmDyRBd7M>(O?s>4`Vm!d&IYKttF zp4cvMa^BOa*t93ogh77lf?E*`p4V0oxlNcv4#te0Vn%y#C9IVR`b2>XZWj4mXoVxB zo&^zxhtmR9?*R?MRCXt>m{F$fm*=20RmY)D*k~s00-<9`A7%J-ed}HPWDj-D(u&%b3QkvN~wcd~P2 zGSD@eTg(K<{U;nYH^-<-S2XTAA+y`9LGa|1C-tR)FY_Ck;M!rBY(lKOM5^ohn&%gA{$zm%L+iWOb-kKOjtm!o*ps~Gv3x7MDG zfsUFU5sNJ1Ub{?EyY_ZkPDf_Dx3S21gZ8+A470tJC6V?IK6~wc3X9ZKu+8X&2K0b; zHGA49X%@1(SZSBNM0%33v$D~Stw-U;Uzh+Z^FZ9^Yi#J7jIIrzvd+-mFSwXBZTnC$ zgq|8yB8=FC1iEfzmxk7qhH-2?b~2jS_l+oUW$N`WkL+X&0LF@zwV~IgN#qWFpB5?I zS~IsaAL|Zc_hnCVX7tpCc@Wq85L?yO*W;LKL1YBd%{)Fyf~vBw~A})fUu1B2F8i6mM-%pXrPRZ%Xa!EGccdBQmVrsCDG#J09?j9Yd zrx?A&?B{*R)WNXm_zt7cww2Q0H+GfjfCybPnJqF3d5_+@B=Axmc1IiLvHdV`aqXdn z4fv8v%5Xzz8ff%_&$PtsZeEx7cGI=$ou<**S7z3xwv0v9S4s7o{W5a4S}Xy##0)l@ zJ*$N&$2=Sns0+gFeoK*;T#Qi!MC{+WP1S}f7q_6T4+ z5X7AAdktipuTyygCVW~6nPBfIq-s3aiBOt*o1aFQC=&=J5+3Go(w~!ay7soRB4AVB z%h(*WWF)XU;{N|)#`-YKHEhPeBf&loN|)5*ETk|~U)R^nz{{K&`UY+70L98crSmKq zyt+*`qDF;(PCo1TKJ-whFg@#JV23$7&7K`Hp|8qK2M*qRRK3u|vv~StgOg^0O~!D= zmYmzml>O=Y^{STOTao*pcIWY-#UtAjd+W0m#mf*{ zQL5HG_kiy!>vhGfo3nA_dyr;{`%6eEt-E{0SWVNti5Qo*mfEdzy|Z;5b?>d~7m6Qa zd7`C(2WWBne{gPX`^FwcG2#MqP;*{H)$1ku&s<*JU(Hcdol1#Qb0t2X+yQXf`dULp zE;3}duaDe%9Kq)z;i64sGM^ygfMEw{?maiLVS1F_NLPzf;ipO*C09>Moe%`xYb1#G zIAJ!_D*bwdT--7^>n$GurfiV(l(}_LMP~1pNcwTIpZ4InK((d&6-&+W&*kk|$4-DX z&Pb8~I7f};BGZQNvC~HRtW{R`oi7^giKfMGdH63%Qwq8)@XfdP@+m-c=zBDYsj{;5 zVfNM6p4x*Sr=o$|F5@{tGic8k*)nR+ucr^U7n$vTxN-$^M?Cqp#ztJd;mJyJx|~%9 zt6c`RwlQ1k5$qC3qhq$0d=tw5WkY0M?%)_V&}y@k+9@ke%n_g#djy}F7JWZkdQ)Cb zl#D$W1I$CvnTX!;iot5`m@|+sbaFRP%X0F8w3r(07zkup(GA*tOMN0akmM zk)ltxyf!d-HxY~(UBkW{ZrIPCHG?sIW(Q!b?g7oszHvX+uOWNqX0;pkGS?R`+1h-v z-7dPDjS}Fww7)I~D_xDAM$2nq-i@q>C8hd$E>*o310)Xd0w6(|%$}B(BVz~XTQ#Xq z97MvC`G_mT98dkWHeF;imZTg?wT^zyuaO1+EV3oL(JlDuJn!>FJa{8qj4=D+f~f`&)85 zCAa_)*M-dq>hPQLUI7VY3(K?B5aWEBS@I%BPKh)&fRvUR4+bQ)?0)WGZn0GypdnH% z4hdjZjN09_=~<49-CKdZe)#s2#es-qW~*vqgy7LREE{z;bhw9+uc_5QF%t>vft z=@*vlwx>&XbM_0-o74VDMxzbIwJWU9lG^RI@emcO9Mr!Gq-(Bn1EVes7|WOJ0vBGa zh^m{I2+y9wOs;!>y)LS`nto0crpist_XrDGn5>&!o6H)OmnaVS>NxxDrkwixI43>Y zfImqKOfi$PqA}Ko$4M^o>9YIlU81i%s&|?DkJB1+GVpY85@Wosp+JiD8@`N|V?SBU zHc!Uyq;%l58**y>_Q8o=9%Cjdb{h$LT$wN&!*iQ9j;1vzIRuli4RI>-mwuXFNZPE`F0AM{cLOs9aVxw{7TvWpje|P(dkzX)|>A; z??sqK4iLqq$Hk^g)Qz5YS)8J_KG%y=NmN@G+z~{8TnWNqZ>NWSh&!lT?AqBq#QD*|prhphwW42vNq<|t;N;b$ot7!EG0mz|LB>|F7k=sjdc!^{-nsFiAD-Wpw4%aj%wJ z)$X*1$<>P$j_Zp9FLC+f#;qdqa*#68@_rN2W!iJl@}r)S5jxLxgvFX&V`J_~jj}wq z>)J%yn}fkip{1$&?>gG?p_6)!PF_sRE6)g8w)MY!Mdpu6YSrA4Vz!&LPy00P4P^}&vZn_nD3}-bz!~wqo7W^2H3`kHm1WU(XMK#!*O4u0iX`9pc)+=8N(P9UMIwA zWE?Xg(>^{NYy}F{D0a2ppLSd_-5>Vq5^!^UrA5DeA6#9z521-Y-RTEc|LXBnBi@`> z+H>ou!Y*N?1$Qu4!o?u8L_v*U%^71Mn1n<*-6)YD6%_)bPcFj651&a)15*e>*zOLE zA&_wsmhTZlEtqTZPIC)NWkaYBP}axwJsebM`ktA5#zWi)K{E0$Il>(q~Xf zweb9CNrDFkEt`?^F+^iNT`=GZ?F@leYQd1G`|d`?*$J@h>(oC~URG&}MPFQW_clM$S8T7F3627dCdk+y;6Xc~8VT z#79A+J2R!_fkoLxWKc)PC1D6Ki6j7cOJa{x8azC&dgp-UASW_Vy>Q#`r21v1uuoxw_ep9)Wr!k$;)kw~ac?{DRkuVnydxyX)I#B8y95Stg`%gLs1=WN; ze%26==C=!tG#kd3->KjKWDw7y;49fJE$cDkW*B*;({?osMmv6Nl(G@#*xdxioB|d8M;Nv$zYraZUz9;5QsYo=7;}2w9Qup4h(Hm1M9&Qi8x9J zz9&I!y)FqLXoUZ_W80X*Z-B9FIOek<^4Y|WG9KX7s(3O2v?WD$^~v+P3Cy~iMO3W|1-y*~bOfY? zQBQg~yoXKcSiHNht@+*adyD8xRokE{Ygh|udxzug-r?5)J+B<676)G8T)xe6v12&(71!fJqG@K5z-Pf2|{eG9f*y9yeOVMm4Fp8A4 zWpHzcc>y`iGPW?asJ>ZFuJ@ZkZV+FrC{OR)#_UIp-Cwn# z8;2mk2Bu!n+yZJYm8)k=_mA*nJ}Twcv9S=DnS09W<)-l=45-Z^)`SWMB>o@A(_Q~hhNH%Yim1H=jDB0*S4)N zw^c8@*UGk2>7grs5jG3;5pP(x>bMsI?fWtnvzYQuPQxKhX-cj1zDg2UehG^%k_?={ zw!dJlT(sg^G#FMcU0pNZUdS?;&1a>%7O*dZ!x)GL=8|KOgINP4=Rdy_{|M^@92E3q ze&=Ce@+7r_%2R*rH|ekBy9~za4%9P941*a6t)4l{^<$%%3l3AgQ$P78DNR_d zDjb6@vZ%=)@nVc$6a~#{-zshx3F(J+%t?gqRWThrp6+Ct$tT(cZ481YG*-?ihJWUH zeLx!;_`P$gNmDpUwSV^QaivqToL49n0_j}SYxvIT%648(FDL$R>0gMQPbJkqK?ySl zOqBhnt_q>N;}Dfnz{IR~+D{E7L(08GogW!^un9fD=m1UEoO&GL66GXIY)Q#8TRwE< z{Wy$(vxM##i=(1dy1B~5pts%TRKLW$cBw^86}EIg7icq-g%MaK2{F%argHo?H(i+> z@}*4QG}v$1sQ42<%8iiX;pWQC4(T;XF~Y1zt5%Li&$3OqdNNcS{VfRXI^t($eb=4h_g2=Brac=f zo@OIEO|QsFFssjwt)HoIbfvw!a;3SUrU5lLq;^*&G2=p(k+wDe_z!8q;r}YmV5RsO zYqe1TOOi86!fKURlCf)yxvvlMYn8xZ{#UNjp8XRs`#)20sm+J^r8Lb~su?kWGKI`O z-SAIZDheG`-w;XjVGbu6K=mJwi;l5c#@BRqYGTH%w=QK^U)*2V zAC{6_Pub00a_ZpPZ~Y(@%$i};*2ab|PL5ePx|HrEKB#|b*Rc6*eMQv9q+a1p&O74s zTehg%A*^1bw9=suT&tHVL*}?T`XlSVwYb}E)H!Yx@8YM|$F}mZiP#Z58Hr&qtj$9= zD`G-EN&eW#@IL|K=8K&zMJ><5Dw=^ASo-0C$LCF%6_@^j3zv6IyY67{1u1khHSotI z%e5CqV4qqp+*m%)tLQwYJoxooBpTp&Wd0`@{tg(LRptZEcwr&RDw8nlPZ!K*%5J^Q zrgzr~`?Bt1w=MRRFsS!Qg^CrHL4e)H1ON4I01aVit`~6>5R}J z$}*5oAX?x)v2npNz^HoW_a*T(DP9%nzDYUia><`s!y~|KLb%H^!IBF~w`^ck`#Ji# z1(k;$9(%E4cjiaypUC^97`9gJ-Ju;2Y>{6aGa7B}IkvJ6O7eJ_)RoG_L}rOv-#=d* z7?NDOxO2s8Ta{e8YqUd>u`&>N73Pnrk_=okahz^6N-EqL9BZC2W`6;KT9&d5bfBGE zWkRUc?9S?TBd`Hbc#Zp4Z%FUqc&X6~8FQdCc)~n72X{&fq>heFbKoqt z?7ekA$C-2kKIkM--WEfj>S!m~`rHn*pL79V)aW117>bdV8Z_JMpWnY9*t}=tJJ)q- zKc{rNu7Mo!QcuEa7P?O#^BzZ#cH5}E(}>yT{iWGi3Awd_iI88^f9wQx{!Ys8!74(- zfjm7h<>*#Kv#zi1JeOd@YdY79P~yVhPQ(v^u5RYW3Qw={m!@zdi;o!*x*1Pt6M0#3qJp;>r#KB}%=|?+Z7`%lr$BFbp2G z9ZAuM3SBB)f)F+RP~n=K8I)+91tWJWVSM!hGfs)D6xceYhotScmOv^c%`MX%iyV9s z%766WlTWXW?>9I6vOjCLAJcnLSw+#de%TSq)H9?Ux%lODV#Y%sZR& z2@oIAq#STa&3P7Lo~gl#Cu2^mrpd9SmiCJw@mOl*3}S63aOT8c=dL|hgw4k(R2YmJ z-IgKC6B9ElQCxQs9PGb>872+N%uKJrFykDKfsgX61A2~(wyDKq(`H0PNjk?p*#6j8 z(ACv_Y#)Z@VP{)EyPj7+oW9Uy6r#fs*|ihXKP+EeyStHJ{EI->zbSt%TGmEzyHy4=P0oXo^7e1r-2BzSVKYXA%UlO$H${{&=>0>CZUAER6iDI{ zkjuLzy^;sSSCMAS7C8-k5a3)jo_&_dw_DhyYGL2D`i+=uxAUhSuXf4uj|r3f#a zFZ=IL8W`clz|oBTGJh#g@B60v+QX{D-}Em2a`oZSvtl<+>~SAI_{8||$)3~K?;LEr zAtZ68@doC|t369w9pe)RIW9c){r&Od<2N2}+M*IhT|e!v`X`Q;ku;M>(+1P{mL>li zVec6YXWRXOCL%~gONcTUqDK&-cM*dKq9=NwV9m1DtSR^Gd++@#dtagi=W}BR2h+di2OKsQ_CU|dA7PDuZMN4f)_OjA z*N*+gZvL1p=Bv!p_hC*&6Y6@^ESXLhKfa4J!sn>n8~^a~?VOu}#zNW-*9nD8HcG(t zBIo_TUDD~6aQHF8zW@8f0V5`Y(`+O%oA>_AUtL+-@P+gINdD`E+U|hH#Qo5c>}#BH z>%!{Vp=R^M_9xGcq+w_kI-tqOnY-S=Iob2}*nq97zZxk~Y>SU&q*j^?r_ha(^> zXBg+K-(YrT2)?)wtE#$2oV&=xQJFz&WPdD69(bO}(QFS-F5Ai(uQVC$oh)B8v9M$J z1~+=%FPw5z-$Sklg)HpP6RJjkTz3$C!xa4Ro$l~W1E`>&0D|LgShIEXeTyd@+b`f5 zi2B^JfOi97;U~=jgczUxq=_oJ(uha*em|>;trVE9p(R6CE^or@7g)(e{^G>H zmwIrDG3otOE1$MeM^XuMt$!#sJo1-j6fISvd#-q7@w6?V3y7>yec{nC!u(0aHCm3Y zY?-HZ}M+LRz~&-;@jf3d1y-CAa0Oq;3=f%Y}CLsU1se& zbQFhsV?x^$T*1Ud3#_h3$z<$T{HLZLnz248J`wh$IwTY(wWokBxrXDyo~1+t$6t&X zKZfDm(m;dR2;zTb21<7&)qECa6qMm1Bp}xiW)kKc$8E1$ieU9_umQVDstT{;XPA2; zeiMK$)e;R2GkI9WI9GN-9NtAFfHi3DOnA4IK?(?iUY;y5jY(YCLO2a-^6+CA?CA>* zAgEIkyX^C{36#zqyw0IFPjkt+GdgG(mWo3yw$|};k<2(j4u-d@s&F%6M}++Y*6)u? zM@sJvW`On6GvT|fhi*oQxUE%>Pg*mt6U4pL4ORI2eMvF*>#piiC1Q7s4LE0!{UTt4 zi|*q!Yb&tjJr?VjP-mjSQ(R5!mhXnFb4jkGxqr$hNY5+Ita!l&<@!bu^UXEP5p@R7L%!9k@6;?PeB?&Khi*VLv;J3^B zY28e^a2|}326#*C8y%b5wvjNQy_)34d01QhMLG|v0(&y6=)h+TG-D$<{VpT)>HU!q ztH^TYX>PMJO25Gg_6RwUDP{z?^Q^Ao1z%Ev((4e8XT;gYjcKPm5HOIh)+5w&26xi zVIeKt$b1^}HlO1$Re6n0e9p?-4BwT^8-`qh5AxEz$-LvwVhVjAr(uWsfD~K+kpPWx zd8_W(M;PAaFQZ(}(!AQ8_e^>q_Vqa7AZ5`b{;f4R>WQD)^a4lGz*Gn&#N*xbzCSpP z&m;ZB=?7IIgt@2XMt+CON6m)I1#-BbKY>>?JVrY7BODW0#NcZNe$l~7_TU&GVB^)= zu|zTC!aiLxAgp0vwWxXPw~p7*m!6*wm+7drf+B9hcT|KsKLmb)qo<4@8^fVhPEMX% zo|aGKKmQX9K+Ke1XV}-xz?8VSJ^es}Z7U$PvhAbmEw;3xE-y*T!b;j|owTQIHnyx* z!G$dFYZV8`qj()H6WE}hZD``S-<&5UeBR*|`;Do%sPq?Qrs>17g?U>b%+s z#ydx!qT)?*cR;dWRjSVM@~O^rpXl4JryIF^vb{}At7?HBGhQAj5`*SAw9)IT1a5~C znXLOM8syy9y|1`8GT{8>K7O9-T!r`BA-~n-mZx1z@^$qDsz7?S`BXGbu}tKALP=dc ztGmNuL(~qF(uexhXYGN-2Sw^?Uwd)yv%ZadPtTzX?SVwCv~n~8PD{SgYP5$@_{SSP z;_L&7cF?dl(n0}<9%(M*%p%z=1S$n=?r8;Ja)m}dR#Nr#=#kT2mrkL#WI*@D)b+fj zGlrJdA&3k!V|*oCjX8E3Ij?ODz;rw7OFB-PPU}R5JC000{)CSuNT#K!UZHHz+V=J4=d2*XuE|13je&x{Ee zJM)qk_>i^D_2?SLT&{Cfb#L>UgSE2BB(W_xAHcbxur7r_547wA&5lpH3m;!rW@weNq}IXak^ zc>pIDK1^<+FIgn&32G@PDNvSPj){#yto^L_(@BHSU!pQo@2rvs8*J57zc^X=4Bj1^ z?`jlx=Per`FS|8ILMvV+dT?zH)UEVAWq|3H`?P;(i9?rjwCtfatRRd=jmZMGQ6M+8rXax(X$-U z%Ufz85dK1uAmPY|Y*n=HC%yoxTq;Mn&;Qx`;yV&#j5H@%?Tok_>?b9(o4ABOB%dUO zUslXGp9H`T=EicCdp}Li5`m2V(7W1%etlXDKLJ5@5=vXo&(&o=)=RcY!N{j^4OXa!EUT}6Id(@8JVoLIPBto3%D+0IQh za|fRNLWa!u{afSk-=@OHg&89__Dz*W`;oq9`-p!1UfrsYBZ)4YE}RNuNc29V2v=Gp z47Xc2jEt9CD7OgAv)=a@HDl@aaAxb&6B}_ZIm!)fi6WE7Y8>j& zr`v|8#%a}U_Ot_7=$o0kNxq(%nINc6W#lpy z|0&|M@!KQol<-H~V2;y`VVN2h*Pj<=yW%m(^#MM$=!gQUp=NWBq~&nGm}Dk{9>A(PG=rRuAL(m5$+)+=h}mmUyk`F_$HzVEm)el>a{X#GaOU)g#DXgo4Zg&O zh?w!~S9t=P39cqp`2x(}wMltn$&=M>4W)7TF#;Dpkf+z^4oZdWu(bxt9WBw`tT+$2 zj!6>08a>uud{Bxa8dS)aZR()IqVuDU6fA6E0Ejvzg6iq^H1jQ@5A#-TRaAa?uDw!#6&*miwbV(b%-2s+n0!jo<~j8ySKr+p+-tp)hVH2^~O z8R(|8HI^URjl*g9s7#L7D(&k>uG3|lhPvanL+OtyQCZhw zF)}L-lLS5dC?{v#ti%A{TpHv}D`z+Z5wZyBQ{eXPO_<1|mS!m2om$KFWA5wnug)sQ zN-irVo>7iUkX*j-cI*1d>#{!=^6>uX9Gi>RZ}@}#g6pQqsQ_n(&^407WZdNWXo%w# zxtX!@I(_2pX>$cUwW0gE9KP50tt!8!?edhU^PHVl zPd(k%)*U{DaEIx#vdKx4Efab;)jhy|n?m z<0+}rsdq?aty)9ZKxfa_ua#?3J=IZS&As}v4Gx!=7gqwCGoBTu+5VL8Obh2B?M~!+ zfffOO`;>oyU`tfc2hu+V-7nP&@b$QpxD9e$wq7@YrD^yuHwJD?CIUDZVT)c#jq_n1 zNk@SssHxgLy#!Hv!zvw@fhBXFy!q6ePvAv9hS4?HFUS59xar~H&0{1eYcw_#HLf79 zuD;NOJI+#FQYt1g6*ef%s5(0cwC>IUSj=^ze=07TaDEKiu0+ODhu=iLUU(a)UcWDK z$o<~f^lNj0(0R|2Qu&$jR+(>5X3fB|>)TIMAy85TG3*%-2XG}5t!3ZY{xT)y#WWT# zTk1wfgh<0qxUTC+=SjyV;=Lw7^zgKYx!G7E`qf|z&>aGD3}2}lG`x?K_!Qk${_Syw zIs4;oLT}>`?Q%RY{Ue;057J>AUqoN)>a(Vth7jI$82YK=IvHkam&fT|s);orWKvJ1 z|77!rXkWaLvn%!K*89TQM@lUcDra~9R(@I^yEpY}V$Dy)UWQKC4d-?cz&9B;_H#=} zJp1j@J-RwdF8O;em^9ycxyN}fV6c9Mn8owwcZJQT_x9mh(C>$6?uix1?G4#R2htr( zI+`Nr=HWt$rBPmv!7;JtcYN59cz~leA(}tC%vU%q0Jr;N?R#l< z>j|2@8u-;2iz38>CxhH1B(oPnq*@LU)a@HWlBlCU=1q%#l7!jpYYrx`t~=O*GhJQz zb9Q4Ks;kOhQIiOvKcRRNAu~HWd~(=DNk^xOwnLaf`_%Q2Fpd;(%Q8@FuAMRTh+JNn zumMaTRis8vK}!R&WCY z+S%nJPOA3|mpFW@MzzL9l`#8ZQQ{A6(ZdcB{k~pX#v??&Gh{l7Ky0G;$}zJvbSjUs zFEn*!#aH`Fc_1~DPkq?S>w)oEFg>kMnGR{sE01IaK#I)`3v9qzxnMruw{k; z7dfgzP?ZDn;yA@0k-eFoe`<~V{%19?`F1ZspcB=#;{kMyOK}-}7>Kaj)JtJUW`8X= zpi9Zg1Vvk51D`vOekI}yh1h3ky3=WH6O6xSh?i1qu^pyImcYh+6E zU8jpzUr;$N)xYJO`5)r#Ir6Bru^~+*b4WawYer1$p*f>>B{%o40oVP7B+p?pG3Fy2{L!Hv&;MEU!Fa3IfhZE4>7sJ+^58+Bdv*cd%q zz&xrAbbV8_*S#3JqhVPwMDZ&Y4qo9^FU>zsiD=-}_uIQq9LQDAA}J?f%%spQzede) zvW>0vlg|98+SAKv-l$1;MzS~Fo1iLRd92_x^b;+OvlZv}LFEndnEZoDspQE{f6xQc zx3DFo^`5$caDJ_YoVpyA3b5yDe7I#e+@gW7N9dlO1_VjxenI3PfNnXrR?fops<3!h zB3Q$YGnp9g!Y4sqlQaV8VH4?+8z1@Uh!;YRhp&!$R;|>)#^YVu@SF4;O^n3RPR|Ib zEb$1MR`X@VlQ%y&;}jgUqnwXcn4fvh>54N`XSRfw9Al}i!NPE%y9`G3_$@z~#Dp)& zV{mojc8tO}PS&JE9gmuW%9KJ{a!%J;L3}VqMlcOBLM3y@@I&#%5k;y08jNiU&k4XA zJ94uoB>oT<^_S_Ou$-Fa7`m%r^EC3h`_c6(CME_E2*q`Dhz03CJ#v-B=&QuLg8D^aS7)i+JFfZy_G|4O55@?j zYAkFuDku4mgMc%-CoA51JDI@{T+JU4LiG#u43IKnb`fMSFIZe$p;IX{KC=IbJb3E^ zV)~X!$hmO-E^v0V!P|Sch}Xdsy^(yq;9-72SC+?G`mbH|k@D47q1*MJMxq@%hyrJO zi0Ih3Ic9GOgiAX`u%myyGn=8s_U6Y+EoPK$sJHyS^ZRm}bV@hM&ZW5cxc=XnN*|Z! z7{PI9h@q>c?~8?3ne0LqS3PRsQFq5np9kAUn|EAN^CgYLer-)@K# z?K%q=aOR8R`Njvz&SBGZ$G6Ax1;|*YNvRW=j7tTf&XnITjQn|Mf^4@*q}YAX7k9}|k|6mL8|`W@vTXTwcBgLwj6 zBCq4(W>0Y4GN0s6bnT-=uX`*urw@dTIW>Px?g8o@yF> zV2kk?NJJXwP}qo?x%vIZ`Q|4O+vRFIcQ!9KiE_KX-_gnYpy34e7i%zk{t-f4S>t?)pHPAg_c%EGu&p8J(Ux%0kZ&f+RJpN#Bvl6k~U+9)U+E?Hibvpf7t z`{m<8hvA?XZ)P<$F>^uHH4`qO10G6cct9YA%9?lU*7>TLn@HtyY5+eFbH%61*on)}-)sBMjfiIoMDB=zd53V5n8pUu|j=^d#&vs5o z{Tj-DX#vBmF9sJ`HL*kRwtoAMcluL!`<(=O&lP;|#DED^e%;VJ>4qFi)ewut9_1FObhacXAL$S6LI^j z_uOS2E{xtNlB*T znvdkQ>cGE3sYGVjn+~;H^Vb?*n5saE566+U%L@s6?@W|;YI3XX&w?lUX7}ToQqi1#?-(!yWlWPOA;0|ZMNQ~igU zwW0Z}t(_$3RA4L5V>ac*t8FQsfj+XSc1O!#P5vX--~_QBzTR4c40-MF*ntne9#Mm# z!4Q#0xe9g4^VO2tl|Bu7h|nf}mN3UY z3Ch!a6}vLuaSh+l<0$FfC~B=!oye!ifw$zusStaQs&9X(*d~O;8+LpgURkkAqXM$> z5pB*NvX~FJZ~!tV@UKFL7!(3xdTi_6gWBj8d=bf+UAUfX)w( z(?s$O`^IOk0LQgvoA!WE&jhW6qHKnO>*S|f_vj?!gCwjuPXHps?!P%Wcj;*QQ^lfX zT}iBouTpus3#RLxY?IX)0u4Tu{gLUsq#B4Bo=~Mn#8<9>YeXZ*#8;zCuXDym`$PgN zkw2n$$*k5rzxNy*kU37}21dh6t#JEJDDzBOt0Z``(It1Iw<|e|4YcrpL}H3I3S4QB zn-0`HessO`5Ig5`ZN?*N<7R{2)!PCCdLT@)xXwI%6SIA{k@;{Z#r-~Z5}DnVWvntT zc6ayvY;Trtth_vuVQOJwh*50OEa@`45}~2vDy6_f?_g^Az0dI`{op1Vt6uS6L9EF4 zma7>&)W94mV!o9zkZ#NE<23T-!iG!+0_q!=l#cvd;A8UPJ#>A z2~w4+XDrN;sAO$#Iw#a8r3NGH_0(jMd8npw<`oR; zaem+V%H8XUCy}+|?UAJQ)x}eJPse|hgBBu)l$8IntzTa#?KsQwsN@$4d-JZ(l2{H` z9~?)JlFit3f;h8TK-8#QZtayqyaN&JMpzt#&G{;hAoG|;!vnH5Kz>H3S#CU_A6cGF z;2(b^3=Jl@gHj=)lR?wHqyi|yrsFv3WcKZ7Ah0tkj7ZsQ#h9MlRJDmkl`x0c2ll*k zb8FS!@!~ykT37PL`{7+IO9^PJF#ZF3@C4xp${?~Wnsr~;CNWHOpL8hw1}Z^)Lss>2 za8=-lPK@i)67S+wyIzB3Ck(eOAb@c)7c#mW2s1QfN(5N$@@9p#tP+?rp=(7C5Q9U+ zt$E(7(*=CnhssGx`LJj`M|eH_{cKr_dt2!vRI|{Vf#cTil_|WoW^}U9<~~zBUn?si7;(~Wz->7M%<@mS-G83h0Hi-LD&hc}C-ch2Kvkk_uQI2Jr-;PP9@rkRdS zO+%j1qRSu>TqltVV@xzo0dHz$rmXFY&G@s_)~g?1w1TGytK}B-_J?#_?s+tR*ULeBu>n(34y{-^le?d<@(CH-EzcCgw{H z9h;H??|JyNX;3JTuTGkQLkHewdWYNz;e?pJb3wg;gL~g=)p~rrc(t2z=wIyx-$PJ= zt68qU*m1(#;8`b4_H}skriZam8yR~G_PYH|jW6g3nRo6^Mh!PpR}tJb-y*lRf!mY+CR+I6!D7fPg9zZ5Hfh_c9N?Mf#x3D1nQaUFbR6&(X~n z(2Bx~NI<5mEvK~Cy?WvcA^YO$kuVeLu1-EAMu1S-s47Vi@qkV zHTIEb3#b)0R%JW7uoFW@g?@ngB;N!{E?iI$OS_UCWj}oK9`;O`8ge?YuIP2iA}WaN zf$8oBZAPXZ_h5-3Ylicjk+xsZ2)lvCQI(r7YV;q3?cZ`m61?X^>e;L7yXbPuf15j&zRa3wLPXqh49C?v(2;-oJyo^qsR8w zEh9__2`2AM-2R*2?|8t-=KDM6vxz+**>8!>6FvTRYVVs7X3kKhccueD8*giQe}O{- zGAl9avwN7%MtsDJgm?RP^PgC zH;BO{yHEO&YWav9r?=DmnT41OwtS+g*xfRNQgSUom#yZXKJ=6(z5Tx|!&qcA>k z*Atau^SZ`=<*^fqAeS*y*1gB;yf&Zs1uee}QHa@GIGM-e2yN5n<>mF>xi0E~TdhhM z)$&~L?;e3?h`PU~LfKpvei1uo3vTLc#pIn~lxv&||&BJ^Zur=7J=&j8mH=g&+oV?taCMVQ&mZj$+e*1*D)h>4sucuH%zp5(lv>w52oW$e{rKTykdvDw9h zTkO9~<$r_tJw;j@`{xO@7|Ms;zA{&`<7s{&UU&&y;S#6TG#d9k#sWlp`nN79NHZE6u(mcO<8|8MJKUNHyY8GK zR?Vv;39LP4#pg2YSU=qQ=^qwx(?^cL5xQW*$t{+7QX1vS^_43C8r%3CO8O}sL*lN- zxSd(oxr2d`G&t)?5K&|jCv~8J9T~0R+uSnrzxZM@nMlmH_Fxi8dAVbWZYeO1yFt2= z>k)&feW$9&bcfO73RP`nS^K#+AG%vz*Df4fCb0Y`>2hFH6~xY->4~+*azN-dTcrGp z)F*Q1Pyn$O=QlR@sP|li&W{Qpx5xHFpF*Y7mT`m=Lf?($#A00U9yh_i9VuIl3mKY@ z;b#Y?c*O3x-;fH8Z)!#48LX}ZbChq7!Jx{aR6>(B_wCj%#WF%xN6vnZm=$=aDI+$`y0H-$`b_(>ERLc)9iPOiuIdRRC2kd*>A>d z4dD9AKPrWf&X~$Zh7d0$%8BU#`QK*EQuCa92Y{!VFI1n~qH&d_R|YjtYU^M6?_YG7 zLtXR$^XBGs-Pta9D!FU+`<-WfL4^I-3sT#mAhYuzH< zia#m$2g18rV^hwvP99C|o5Tmwv}S{HU9-!A>|fAnyn`y*BB7u!bdrIzY$%F zwTOgZ^!jR4`Yo@hVe^dH;_tNjjfvTx%{tEqbHQ3R=Skec{|ECW)3R##!GdF89-aw+ zWY&;hu-@G1&)*vUN?a*DZM(g1=m^|hw^)H7V>_KB4eeVWaibTWuejA{gY}O1j|5i) zwrG{cg20D#VK?uNdT1=^#GHEAOIcE=N!BBu0oWZcB2$T!KRMa~j*hNMb487h$a|Gm=3ZC9=5F4yCd;A0PKH1}SG{Jk)Ipv1`*1SZxqjVF!f}hS6_auJ~ljq%(axudszN6aW@_##|bE z6{lT0HY~G##Z$ zB>LEeG1=7J_=e^>u_Iy6w%8e_R7d5R+lgX5J0bh?%7?G-(jOk77Toi7PEJs()VW^z zVpcdM8Y9UrcO#%s%4`dT)jFqLWH^j6uq%K4XhV%z56z1OLP`(-ETt5lfRF>%3DJZ4!z$C-!DJrdVUodQGk zW7?-}-nx}&tKCe`a(mk!@zsnZS%EUMA+O1geIJpfzPVD)ZxeZ~%Sqom40`J&nORL1 z<8~K@mi>I;T(;aEkTcDRzDIhoew!>ax7`mU#z7mWt{HQ~j%Qyf5gw9XiM1bjh4h}8 zlphqMiFc_GZBdww?z@i?H zZDPESk)ZmA3E(eDQG!QiaD8uTW9zrCG_bd;S6YusA?$=WTVzr}_S*i-QJjl*hyCFH zOOg>`aEtT!WBqR8nGnQ)-93}BRUW8?eEY=ll#~GS%c%W#?di_fR#+~){0Vr?SG#Nr zcSO=?UHKEJ69=4+o>m6ZiZ#AQ{5F%a8!^KEsX;YhB8|5r*ZNYx&9IMv{D`(FqV_l{ zP{29d5C?murF*qcp=?AY)uXD*_}LAdhEgaKqW?HLq-|AP>46~0hmoH6b|VhmvLDRZ zM(i}kFV5o>P@2M*y(}W4P=CtjZ|wjR(9mO<5=6p_N7Rub4HUmBdAECp2(auYzKd}g zT1D$R@O*e2#deb&y!jqgfOZxN+r9WM8UzNylkyNBp_Qps*A?_-=awf

      +E@ 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%0ASC4O4cNtX)v<^!>K)kNCsumK|U2 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 literal 0 HcmV?d00001 diff --git a/head/images/import_tokens.png b/head/images/import_tokens.png new file mode 100644 index 0000000000000000000000000000000000000000..985f43161c966c924efec09ad80a3423db0fbefe GIT binary patch literal 527885 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¬W%lJ^ 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�{)c+@F&i1LHuwl_~1ON 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 +Y`vdn=-vIp=DH=gv^3_tw@ce%`qHVaQ|A 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 CuVZ-t literal 0 HcmV?d00001 diff --git a/head/images/launch_config.png b/head/images/launch_config.png old mode 100755 new mode 100644 diff --git a/head/images/network_details.png b/head/images/network_details.png new file mode 100644 index 0000000000000000000000000000000000000000..64f29e7721766de695291f2063718f357c2ec245 GIT binary patch literal 817198 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�rsvzVBhnjD(5J7rM`Oh^&f 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%0Af^Gff#OGkUlnvwQB*>QT6^rN1`61MG} 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

      M)ELvbGDv$)o~9@; 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 z

      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 literal 0 HcmV?d00001 diff --git a/head/images/nft_contract_address.png b/head/images/nft_contract_address.png new file mode 100644 index 0000000000000000000000000000000000000000..2482ea172bfb785e4312920549515de7fdc0294a GIT binary patch literal 729238 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 z z(UvBG6xE?2h&3tkZ4(87Yfe4U5(Pf;cHUdIzV)_-X}We&IFWN#8eGX2OkV*YzXRdzKpEapWRZ2g z`~AD~^CtHdwGy4Oc0Ua{5BZ1O+>F$kYL_@zguHelw3m?Z?m>L+|m!a3wF9lZ@cB$g>8s;@U4AlEyr zoA`}V`Rs=dZ^P)*!M*Pwm&LEbDB=#Re_Ocu)K+x5-<%m$fIt>Zu&2rJEmn8Td9Qac6777hX`C1m)jcMN&GZnDIRb>X)qwj3mXSXp=jb4yg=> zZ}V*X7I-M3TFh>gd7{X<2CXMhPIp*gb|GD1?{+ZF7&oj@Szs_;aUv-P@E1;ou@mrQj9RHA;N`lzQKd^fCX~vK2VRH%19n zYCwK5Jv?%S-MwFjw!rl3;#R0(=s%$pVQv$I-5xEmrA4YIB9W99HS}F=_NrS+!`1|` z=&R5IJSfwXw{CH7Xv0G_c#wxNihWDupN+0h#YN9%YwIN1JlBXZy!x*Oca&*_hXnj| zfqe;>ScX*v09+|byBw;V1=#+~KBWp$QUEIz}z=vl|rUnROjTK6yN zn1@o{fIR-*{4Olxt<{+U_V+q%lAdo)uP6yBTFw^y4dmwNFmHmO3a;zD0v72X>*iiq z{z%PHc7amtGce=nNNyIG9f`!-gPD<`vQ845QH@F zmZ>w+A*IvA>d4rN8#6h_`>bQ}iqUor|7{~lW#`?aU#PZOE#ITOPq5$V0O2=tL^{X{ zO2bZyy~IM$Z0iB+Czv_i$ycd-kVEP;7<+@@Xe3b9uSS70uUmCTZWt4CqFInC=myms z${c`h#Z_VE(!g}wuryqIf|FMZPnUpbM=vzT$oK#IYGNBnKAYz?{+o-0nQ*W(axWpepbEow zEhyoPCP6o?F_aXvEArwZ9KcAMsZZTn;N&-?r-scM#K$9xIlhcId}z4xmTJ2J)l%9U z*x4sSIOgqVn4S2u0Ia>}WN@RNt1oqlz~1kNbs_l8yqM;Z^t=J0Lhy=OXI4*j><&#a zhwG8sh9Y;AL#m&(kMO??Ad$lo=1lh8)q5MBpb9I4ys2T#4x)aTAqT6n!PTO!F&*cy zrS2V0SR$~FQWC0sUS!}-1?-r&*3j$yOFiXyF(d~MhQ)z|BRg(ti=(VXeo0 zxoLWwL@@|{(+^feg9ue12cw33bd81}4(kS9xT&M!5$pIVL+Fsq38iz!dQ~w8LS&eK zA6x%xyya<2mL#pC*_6QI2S8f3u`H9)&l(6=@DKf~dPpG!E9RWSNIT8QD+nt3Dt(&L znKfBfRsir|aSQ(NE^Zo%Lo*E`1Ieq`5JP%fQrtlQDSrnj@gCQ*TDGfckbmHK%)F2O(O0XH`kggyt65pCDfTgu9W(?mI3k$Yxc@lcU&9mWWl;$u@wTpUu4x%>~{> zIG7GX&WIs4npYvviMJRQR&>|SQ0={bgA%4i@SZ@~{2U;ZO%wLG1^w+kYe{$IWyQ2JS zyy!3FEzJ~Kyuy_&bBa?d@O`#exm zYu!D`AX6l>0jB)^)EH>29y$vY-m7!${gkn!@=2tuDUvdP*62S~a8N$8I3}5uJEh?e zO>z?3?_Yo*V4;iF1Ec$1^}O!=-mIGKRJG1i27kq zeW$tLDmLy8n~+^JG@NurVm=7C_I*2Kry8;e@2bIE)G3DfSf0 zk-LQ4Xs=4=P~}XkkkqwE`SiQ>PeD3$0%BMNPW;TcbZwkd>dd;)}rAj zlbdcq1IuXITR43xJz(LjC1(uS_KTad-My9?i`RKcPfR1!wKctn+K3UL2Oe$D zoYa)-{M*7MGbT_@bjvg!vFx?=sug>oGCi?dX@=C}loy>0%{D0EU^sS@oyjoW} za7CEC?{@9RdA8c+RPB`?$8$~SIOW{`p5*^LxhTV@<_6TMb5d?_ZPt2o0g@>Xr(wbD zK1W1VBo~a^4Aa}Qr71)7!D@kr@`&IOJQO>Zw%4!T=#sR~Lh`9$RU*3giB#}uu=29) z0g5?MN{kqPQO7^uh5+m+V^|N|L-Gv6S~Qj=9H$IxjCCt|%Q$|zFIuRh>-|lxF>&Wl zl8m$KVUxyhuazk4{TccD!$J}uB@X0f196X)`t#gNCr~eC!QP#>k%Las#?(CfVunjC zD`vB8431==xr-1k-py|@*%8L2&7n%t5sWcIWVOK1O(4(I9&L2Uq3=6Dw_tXe5`nQS z?qK6OU{}Cd8{g_?aF6FgZg3?hOECh2SJ1*YEoTotiv8E}Q$lFnm37@MV2*Ic&A*G# zBnYN;Ls^4x`W@!!o5+$#){nTmM8BKlCog^PvRuwj&V81G`Q@s8+;gOBXgEP@>)J0k z+z|^+oRQci9?Pib_PaPHm%rZQA=~DV9?N!uPoB_30R;}Pde&yIOfzzODTE3swlh5<8_IYEw z0N`jKk2JJK>^Xv=bnszK*I&TQ2@isR_#v03FqC57`eirduP}fB)WDn|Rw9Sy3s%t$ zo*Mg2d1>Xd9A8NTqtk1t!{jEY97$SRCHif})Hfgc&*dY?tUJQlvxM4Jbj#e2Z+a!L zAVN}Rakq_f|G!;4AwK5Or*o~*)V8yer2*5Sf_KnN7C4w;0uNY0x+!ypsZULxn~06~ ztT(*eGCLVK^*m4_;WXIQ=4NJeofg^hN!N{}gs&!cwJeC_Mw44$S20%xM9)VfekGw* zTZ^?8RJzTe?7z1@T!XI_U4-Lg7@E>}3+8Asg3)d$aY?+|@yhP?!dna@JzY*GadX?{hS_ZAl)aF?y z9I3H0VrkzWBU(o1xuY!S2jux9V9AO^OP9S{HY5{mLuFNJW$-y!*khLa?@0x@_H zM;Jp-!EnBxm?c(*n`qeZ=Wl7Dn#V63KxW5O}(S|3Zkr=y>!;DBfoG4=pl%Qx#&8Nw`P>)oQ6|57T^L)0bmJ8WnFv! z(;ug;VYfOqMyPAlo+&mO*!#_H1J$p8d#wfzTq)&s=<;s7OGCYs!M181%Hpc{*@Q5J ziQIKUtM>Q>UNrnu<$MwKTUtoE!(Bu{1Ifc^A!xPGU~{icNX?f????OpxtaghQ&R6R$G+dYKrpkY6S#tSF18L3_&wOr@}%)=ki^!7`UDGbk%I zI3Ta<1BQ`X!pO6P2FIxoa-`WYAcVs=c-v(-?l?0Ktx9RkLXf&Q<-q~JK47?(oK86V z^%Qq<%M#A$PqJk52`YZz8S-)nWuO>Z@pb~D7rY*Zbb{}l0rCBbZciOVX)HW910LY4 zmi~zgq~6ZD+TG{>E%iPDhf)O{?+^oqvkJfg6QClUjmRk`3&0-fQy20ufyYJz!Q-3j z(&7GVp6|k?U_caniPnf@%8qk08YU0Qq9lpvlLqujq!}gvm|V73x^>+k&0iMG=D^+) zF^yF`h46rg!T?=eiBcep@Xv`^ZM*2U3`*o{wAx$tmUzr~dq{`MgIn!BxOv$NAT*HR z=lO(yDpH(>}81ey#BRd^WjZ;3*b|A}xY09BqDfWFwuL9tUzxf@{QjAhDa+>H_W$mX? z38g58_28w>IQWDGtbR^k`ynQOAP9eP-Bi%;era3Fx$Q=xsiHMIFKts~&Mq9M45gG! z&+r{^di&Ac45by4n449&arb2j01%}C%}rhqxoO+Hg&1SW&?-GKO$Zj<+K|1jASTs$ z9vIyo_v3I3p^Q?L4yoCV-i3m4XoS3+1_x`NqXI#V!G|S_Wx%Y0e;FX@2X6Hr|K|cV z4(d*OqM2-}SjHL*aAeACJdkAv-x*)|{Xr3cIsdDF>P>qI0XTok9k;--u{&^X>l|{O ziQ#sbo>$-o2i7$=u|aDdPoZJqwG!o4i%%kuk&!h4mY2k_2Ic6L>gcZ&KHc|vFT~kR2&-I=m+^*Am0*$#TYk1(W^0+tJ9W4pyDl7ar^CW z{mP5qd*4e_9sX!R9#rDGE-X2{c~lmD)V1L(eFaL$kt%~pk;c&HMy{k$2swou4Kaf3 z0sxeo#n5xd9_%}ic2G8@W7o5g+<{2zo{R09Li^$u zGvhKUS1wV{RY=>CP8+g2k5%lc251|VQWF-^5Tjd=x^>+lAXot(FWYc`Ayxz8a1-D~ zBS=)wx*}%^u=1#cyVAThf#hm($)?iQ+RT+N*xw#_oNseyt|bE+nuOWref8MDnLlPJ z=Hp}Y-DV1|4E)f7Sgaw&z%@ znDuh<$<-mNCl=;X4!XKA8A6J|etInbvjnW%=gz{U@Yo01tj?;KG7sm#f^WsZQ$oG8RU2NGv+Fqhh?~@eYOLZW93GYc;r_snd z)H54g-446X3DGqSz#rA?yaWZzgbrwJW*^4oZYr5{-SBQdLY(RqfCOVpL~yBLjAgb2 zz662KLAdMPSS6=hIxikB=SV?&vBs zhjni#?{)AlUpeCCRRET5yUWZ9Yb(9zL#g_d7hUFA33VlZ+%uXTJ10HX8ydtgXlEvY zxpcVSbZc}<33r&w5C+Pphf>e~g#YSo-uLGFA^%*uqkO>c2dD0}O7j0P<9`iY;g^8_ zCsBZ*HGv9Yh^3E27Q>CDqNK|nq&@|Q0qFC7r_sD_;mhMw(=+LUd0TpQ_WD<)E@@s$ zLyosGA(O{TuYnhuN)WC3+785bjn)({cO^|QHQge)!SwIYW4fYG74%;0{CGUmMbFIV zjLZis-P?+%??1R)ICAjm85gn3wlBVyohms0R_1{oyS6qn_hf9Zjp*(7r!x|sANj$x zAANaqv=^aa)gds6XQ?D453t^v+TUwb!`*|@& z(SF^N`=v@NeMp59lY(Qp!arN@ea#TF!`~9xHZs*UV?gZLOC}IVMQx*g+Yj7b-Wr~b zn)XfPaHyLGk9%+I5rPpf)I++&&P%PdB{N)x7V4v9iTIw;;2v*FYgbA~ zl1+dUeK{DG6>tk+Y}13n1QUY1q~8{@53xtyhl`&VEhW+_x$&HIq3n zgJ@*%7qicVX}M!mL&J63^PY=3%N}3-){Z;O=$qI@0!M%LHotzzkyCb&{}i(uQGi|M z=mT9V|DUSjx7(gQB6RKD*$*pU=R{txe~jiBgy23Xb%=SWO}l0Uwu0JrG=<0PNt^hZ zPlW~M^!V8wc)S?fqn|5mcnRZZKO#66Uv3)y#_RZS_9`l7TBU7rB-wcKuX?N0Rrug! zTH4MO&-^b{?6KN8iGv%;S+@!mjyAsk)$Fh;fAZOPaamKD2ulAv-%Or2K5l_R$Q*wT>g^izNV${S1Ghw?B{saz6=6r zc3j<4)3JePh9I69bbLB?^DaJr=telt3`CW#mVY$^L+Bd1)c&}KqF%_eBw6=}m+LB` zG)be{ITdNnF0K8nr`o*>uWy2y1h_3)t|LDk-I!JE`Pk3)IWZe6-S-AzAiGr*1_;p9 zDrv`{2zK9UL64R%bIuUY`9(YUxYbEwV@+31347r4iET8!%)mSHBK2>nvq5J~_Uj#e zd4$hE$FV8C{PuO*sEyPy4uQt>RNoTTj;KgytDheE<<{UxTq$fRh(~n`PA%TcdLQVy zKhQXs4~u)JAHw(ENc6BcpR8{5Zp_0!cw!?>Uxq(-gW~Ui`)^SJu-5N*aae+1Mz`sF za`2t4zv=>hZQPiD);JT=6?)&LLnn2{>vNTc>Y*07>f@x#5e65nQx1CtjdWZ{Kl0S* zVv7CsK;RQbnVJO^&UZ^hG}On7R#CRn!ZjCqSAhnjW`Eeo6l2FwXh~~LRl|ej^OCMk zE*gc6PltMn;W8C_iGp)6*D;zp(D{5Hb?hx1-+Fr})pJ|@%d!l)#zK?h6y8=4){B!Crd8fX*zpL(F zPyLV(S$n%PBU3sSU^3l*20AK#sh-lj8jIIc(wAh#P@~ec_@OnF`DZr`;TE+uLu#KW z63sWX9pzv8*;nkhhx;(CYTwsLc1P5Y&b0WQ5Gy^Tp-z=8UhNT=oov8qv>7#A{9)u= zUM;eevBKBUo8EEmPFj8aVSheDMGct;;Wx3$V{)_wUxvx)eciy*MRyS1tm{8PiATeBd2`>x# z-ILu9k_8e2jZvrU`mc#$51-1TYb6ikUN}%!tTtW3(+JN>`u@_|!{7Z^KT`U$QsrEg zfQJ85*yoPDp`PEwH8oO2m*1Nx_PgPudi~1)x;GZD7 zjmD6TWqyykTLPhgQ`joqv@kpow&z^xD-mZUgQK|mAkCn_U9)*+?gq*Px+4iAQ_?N^FlDsVhnQe(7rB?; z$Fc4R=bk+NTyKIj-vOCR&l-jH0^$GpwiEvhELsopyrKYgy7^y=y2G-)b$o6x*9}_D zyhmf7u4DK>lL(UERyuP2cz4UJLBxd~6~tWM%!|9AdP>~uyMj=4>ir~@<{L_-Ey>n{ zH&P=dXCn-&ptUtyg`aK|ew@&vCSvq$TVOkKLcgeb!cWsl;R)ZLk9}_DE$JEKCTlRzLdAmw?>20OF z;G`E_zLui-PD;Y_W?PzM;^qhVSv4_y+N?HAg15*G8tAl@Enr@iA7HJ`c?6wCJjO5&fap>AE<HWnhKHN&{NGt8DyCC1>>ZONGK=0P{z6H8 zNDRK$EnMR>+iOJ~z9N;#l3;dVNN31yQ*@m=#jhm~C1&WB9d zs!f|5i7KBLs|#@QZ~T9s)Bh)6PlxJe z`12je-VO^Dl;06*^33lgX1l*oDCDSnn-r8K%5U2(?A^Q9iv~`$#oEb|zdZ?dU75GS zQ1+WjYv;LXKc@EIP;{r^V6GxQ%U=Si2-nBnTh9KDkEx$AzL|+SUf*@n!|TlNmp}io z^GBDt^@Pbt{1+X)>2EM;@GrJ_u9N-h21VzUY+~wi9VEA;&|MRpVghZSP19 zcGy%}zo-(bQL%E_m6GqXF(0v=axrB9J~d2mhj=-kLz4=$9oNS8W=Ka^PHR7DrgXuq zAKRpV8Eti#xG+{K>9&Dj)(dwcVMu#A=Ym?I@RJ7bQv2N%^0)g3CQZ}sQE~pxR=)d0 zA+}F2a}6Z+<`V@+7CF%aaonJ2cXG`{LfO)Q>dBN9(&w_)Y=^n3>6o1hC_JZnd_5kM zV68Nl7Z_Kn3q*rb-3u4~Nfj2C@7IZDi0IHVNb~a0>Y(W`@Tp;#=g<7V92Wt$!hd%X z-V^s%x`rY7kE2E%f7aB)W{8AYG1~g=X`jY9-D#K4qK`>BT3u3chTp`~?j~lx2t2ej zLbgtlTp@?cAH`?qr%ijF@Hj~7_@0BoG_b41G!RrO3_HCW`r=~1(@!VtkdJBQotmu&}=_e7!4tqLTXK``y0~NlBE)(xuNvVekD`gnYVJ7R_?f z+K#O5Zm|vv3as+S<=1ZMWmK{0pIo5l1Fgf;29dt2Ez1Ls*pk#-C`>x($t{YjpOZ`2>sDeY7KbBq3(BqlEm^0y~`2*_t!?EjJThO9j7*gqk5jgqcI_F|GQ+wx8IzlDq9)edkfPar&)yDm|c6Qxq>i^7YbL-%m(M;?=v zpHv@RQOn6s8%dIqeHq}2ToDSc{<4)b1OZBzzbq_IY$wFJetK(A75vc3^Fmu;{BFH9 zfWX`(2H^&)&%AO8kFA*fP%_~-=P`mvNvIgw*8QPNTli3751P?N`e387jsR=F(cU+x@{Y~v-Qmrb3)M%~9x?9aDw zJCLtk??eHP^2l&q+{Kn*os>4YPrUARptm=DQFKblS!8G`fC|LzH}=RCxqTAR*%4u- zDu<7rwAq#>)i+5fDjAG+@(tO!EpXOg_y#g?qzZZmTK%j0u?=QQr8YRiHSnC8r);Z) zy=_qUjoo&;9p|u=Dn};m`ugkSz!eq$Z_jr*IMnl@-kD1i}q!#@5a`mnI~XVglLYdICHNfTe* zJ*0A~)oi~LzCx$gy=7#o*3RH_m+`rVqCRR{@!`4Ti`keGbz0vThb&Qf*KcI!` z2IsPymp1uU#i#4OF0_YTc)6_@oEj)$dWN}o3OV$0g42D)H9a?bVx$tPGuzm9Lh_DI^Wa zP2TO+VTLcnqwkhlR!N!7`4;%M#H%IlfWL{2w#cunceH7eu{ily6H;c z#>mQppukGl7`R@$+37=isl{qb01d}!sbC9chSLYXHD4q4*M%gJjt(te+pX)N(2e^V zp)*^59^nPaS2{c-o20cmFT1!LcI{FWCHZ@sN5$rxd|S}6_&~bLUA5YcmA~A(Uy5|R zN*@t@6z4bC{Yd1TtL+N*!Go%9I%U^Q7yD#Q{H(LIwLkHObrKs~y_Bn}zObd10D}1~ zvWM9KXLDk6tpFmoKGg%%U*p2RVXoC;9b^E^) zirTr|8K5^S5dDdoHIbYxHOqu%5OUcgM{|Wza)!B9Ybmx>PwYMgr+wS#`e}8i@rs1& z-A^~t?mekl`gHJw;+djJjb&hc6|>&WcP;SLhvkqRum+o3!%DR)HZfX+3ES=q!#371 z@Al=yI|%G*PLD?QwbYBHsR0DvE_XPClsjzN#PhdCl4xvi`O#x1?R)ZCa!dHDV?1*L-u(u;^A2r>*ckWdtK zP(TssU5s?;ozRPvfGCI%0;2S41f;h}5eOm>Lhm&RodBWj#hLl-p55=PyXW_po^y|d z_df4aKIOT!AG-Iq9EEPw^kb90Z8%SUDgxc})_7c!;(x%i`$iu|SaF?xqqyv}_vu(B zscUu;yqL}yFFR|7f<7X(dbI=SVi3yLSy@k0>Q&sT;FVe zbi(J>{6N2!m~PJfWfN$(0*c#@z)nMFY&qJ9SP%d7^>Y6=K){6GT=n9qZ}AB|TS4NnV$aFi&A%hXBG{xzN&rTMlF&XH?Hy%k4;#HE;A7uBSWdt4M6U zqSD?Qe^LiD%^+J#rT87TOvd47M)Lj#H|@LnQmiHFYtmnQtq{6#_^w`7+}USi35@s_ z4Bjc``sM;1TXHctNbWsI`?M3>AMvKP?t`dyU8Tv<_=&NZ!J%kS(>H$QoA{K;SUI=e z@h(8iO`iCitrDa#-F0G=^I){jWF1c@dIjHMMx4HWM4g8(ZOr1{{x&3DF_4qy^r(Sc zG3$E_D3t@`w<{udG1kSvu!*J34Fo1l(U(Egxy{Eg<;ibXA(CFSI-=xdVewy~(Y)QX z-ESr9KZ#$)0>D;H{lu1S%<7GM=L65t1^ZJ&s559yE_!nGF9-rvaApC+3U1nH*qKG5eb9~V6<=g(fZPw zET!Z&%T-UmvZTmKCYH1*JCSoBD|6^BR|x7z0F-Y$X+oCbJIcGq3#{@E%znEl#+nz^ zoO>byB;6!@bvFW3S=w|kkW_iIcg)?|D6ZykDT1rZIM8K3YK8Y8M z`j+#}NWQIukJb7e$2g(N8%(et=R_}p1~MT>GZORfwN0c4KBJjJPG8`-$B^m#R|#_a z#|D{ITyH>uBDv3aH^=xggyBO{zW$MIS+34Q=fdJjvBJ_yqw4qIk1zKEmqnDPVZF8R8;eMo3hcR8ATcZQHGADu zwbJA#S{)Ff%+v=hRCRr8aq^*f{oE(=w}v!7pU~gnf!#9m&L^H-;>QJ(W_l&{B=SM{ z&6qP4J6PE0*Ip!~aqLAa-&zWn+9@(;@tGxIY2a1n=VFIVHZM8~yU&p60lHsJT^mtN z+smNK6LlT{KH)<-Anq})%U(zC&EqvBT$)|Lb3(lushE_^7mAcp6|eEXru+xa>m*zNp5Jea=!iI%o1(N?GZ(PY-@Wew^hm|cxjv( zjW+@FXmC}nRcrj%H{EdC*=ws)ExnhsjcthZcxcU(ur`4q-X}Vl&h#SW-6lOaEQ^q5 zcE+LLEJeHV5j*-huc}GIjNR-ljmJKuc3$1eF^8F-fw6*L6PKDiPWu@c1KQ5!*POvJ zdp(V-n9Y7!^BPsRtIvmNi|8pYviUE^oIKG25w{N*s00?b%=flgNzJr6rQTnIZQ!Z3 zDGajy1`;F;XiaPpu^Y3Q2-|pAyu?M5wO^Yuiv-oyrJH$@&@E!xz}$2`0Ie*_{=Y5L&jok-y~@ts~b8W?fB*Z4a7i)q_3_zCo0#Z|{y7YCXi{HQJlY;ZdN^hnoumiycWD0s6n8Pm^1wfSp?_ij z01_nR4E1#bA>b-*;k%hLr#$!pYU8}himTiT*@ZsrlWsS?T3^DEDt#f}{R67H$yoGnOKreFF5izd2{*WG z#aqi)w8aS(3xrA~bCUGeCR5vw9Upkih*A`QDGJn2vp#0@Am4^K$Pz2;rBj14FK9uYs5Q_Uyyi@+`p>$PjE2jAdkfzvu|_Xv-e zIqWG1>U_4oy#~-PzT+1Ue0B;MYbP%{E6v2&?2aS#Rtq6)beF}hvx#Vl0V#j6(PGkd zDXX-`yd;7zeJgu&1J2jalfN4aB^Y5%k|H}8I_h^B6T&Aqlf9Bpj(RTHv{`!FeJZ!nd zrBLg+V`n57iAra&DsEqGiPvFEv<{tU8|AAlpZn%xYaKm(pL=Jn`7ywk$Y-MF$~(%N zbC=k;&U2DP;yK9WLK$&=;3?BX4_ne#7SYV}9T&pHrKq1p2Fbq#MeoVmvl)*9YMV66C6*L*-5t zk&+%Zro+9uY_YRehS-l0M};FvNFtDTD%iz~w1YTj^{2wmT%vruR=cWF6e~@!@;XUd z^q_J5EKdj^wW{^|AV|*~(-82Z(d&aq#@u$EhSDd8Po0whM>zAwxt)8foN^dCQMbS2 z;o0u44IOc+ZGR2;sBYSzdSr-pup)59awO!?C3kB+Oya~oRmO44wYgNH=xL6SpXcjr zyu>u}(^AU1$l<7dSCJtKq}oS!qtCAK2s!yR!*gVJMYm9EX*>Ch$I5S$%U{#IXR5k} z8pu83Z4v-XG#fsAyqRMB?GAg-Zzt4A3X5U{~9V{dgmt=Aj%djOslhVPiGBw(pc0@syAc0O0hB( z%5-B5v{_$osIFUG*}&;pT2K0oIY;o{2akWABuAd1&U@s;j_Q5q;TIR6Zps=o7vHfQ z)K1|=RZ9ns4D^3tu-;5(+1}15d)w*09!UJWr`@MCdv1^Uc%4?1M^CF3I7B<-vPT)J zBLxP?6tJksqqu%^wOW5nlt24cS$`-G(#zpM-))gi#A+GJ;OV-f@3Ax!q}FTlduVeV zbEx4^a5PqnI}~LtbgoakWFNicZ2i4n(dP^ebK5)ZSdU>APvX)X2S93HNkdubM~U<@ z(beu+YIN9CK#2>V3h~yt4L%vgi>ZiXNC|abCx8>Y(Vsdx*ByD&=j=pTmT`Wx^@AXV zxhb_S_TwEXp3Y^!EH<{;%tWu)7oxdZHR;x6Z{~N`YjU^lAaC`JJCK1=8VGmhFO_=R zvQxP%4!!yQ!J%gP+WePUus-(PmnZW0BDZh35Rak~8`eyIF2{|ip02vlMX#st%^vA# zf#=g~>UXd=Q%wAAr=uU<)eIuz+QFt7yJPiq=%O^In(DgkrqCLW28Zgw>~HLid&8^# zKknsXhjtusEU(ExZbJX*`tH-}oNEtXiKt@Sy{v`ucE&o)8svEP!{%VAf41Ahq!Gn{ z6&neqr{_0+U_g-aA}L#h>qKwhFsh3BdPZ2qS_1%iEnwAJjRk6cFhhJ?mf(ox4ZBQ?v6K| z_78yR(0ASgY}wS;#TlxoEK~3;jM`@dBR?PuJgs7(n^EBhS-tPlr=zFzb9rSjFRRll zMjLw^kCx^H(4VD=y%Q4@2!qY_)V1n&zTR>Ypz;BYB1dr<>m9?i@eDMB@yN5*o2m@> zGO2XU+EBM)Y`fu9U4k?ZBF@6&Xu?@ZSlE>~l zGH@fswNIpk)6QsyM#ZA&ypDvz)I3jTw8*86mmpd-piiFE+EX32im{!q!IwzT@VP(V zA8F)+HHs+jZwsmO5!mM&oK|0o1{#~eaA|(BCRnyiUlqM!%Shslhs&1Z_T-%VsV0m* zgQB2a=as_Ei5GjupnBw)iUm&l*Qf0ZrkySQ_@J?uxGh`1zhkq|JzlH7R6jFcdV_{< z6CTQ%Su;fruK`+UN5d-Cl55%-COHEh-gnB}!VRM^cr>uRC&8>{U$Fj=TXr-0aG#7gftxS|hVo zizbi=jzz4~5g<7mWf~xl;8F{T&U|*pNJYZHHJa&Igug?2oB$I~?FMOoqg#oT8s-JW zMWlmNF?YjJvPal|8l{`?jp~n|C(LOF;3HheuE;XZ7`pWTGfqEIw4_bc&+vAvCfAmA?BD5E2rEBGt2ErlwL`{ODn{}E zee^j!_8GB|&If34n>JGpWPYJ{X-Of!uyvjj-LPBZ-73^EBg!80j zB+s`ilaPA4(8KL_Lv@}$zis?u(gUWp{}?0y@6JleoS86;f{yD|SOEJO(ji~N)K6sd- z`1KeU4Hb6;nzQw6-Hzyv)EcLW}FM%y3smbPSq>hKD zzex}sT|)}Qf%X~7R_dE#y+i5%H@@e&Dzm1HI9-}R)uAvTA)%*trHMrk9 zPW`byIMS^Z;L2=eNDE$>m1-!cKSobOsv0Pr9l6~Wx^1|mQa8$WzAbu9WEIt3%Z|$! z3tS6v#rdSXmWMSs-oE1n(8Th`MB`)+k@H7U-*#R(pHh=6a8pz9I@b4#>o!M@*HYRW zp?H9j?EC86%tQCB6yk1Ez4LOvl}|iXiTcSoikBkbfYmLe_^88H)%?lvns#`uQ2knm z*Xvv*#}vxw#XB^0@BIQsEwqEkoB9m~GL!x&rwL7o`V-xLUR`r8n*C^fERW9|jo+@( zWr`JDB>C>JWjoQYylULnc)veR7OUUgvleA2m#h(_u>D=_+m`wI7};nnd_GgZp;B@A zp7!-p5JB3sXSZSTXuLnw-&I#LXeM8Ka&I98&z5^_mmGSYqbJSFZ@;$D&mZc1UWcP& z^b|BIft_r(h#q1MtT%d<+<<)#&JwV_BWcrB3+n6K$Rh}X3!kEsKpZKhS5P!4n zt<9wRIK$Mdc^k?>l*mHZ?kHnUFZb54YqzB6iC%D^`tYyR2~*9{O|e({YbQN0VEfAe zrgCtnDy&x^H+#OauW3m|^ZzPk8s)a;>y=_zuGtq3wD0985S* zmUG(V%7SO`4qbJ^l_hvWOoAGd+pu92_+V7O(FgOq&V|H`Br#I)MC=WQsNFXfOy?Af zoOd;8%Idr1!01R1rQp{BN%s|t`gNNP%uqFz78l1M27lKYIVRaShfBF^R{{{;a=1Yn zLheIcYy9^{NV_wyJu{SEx+q_Z!7Wy3L1gEWw>_JZ*D9`ovXpdVZQK_B=|o6l_czVl z!{dm}X1dZ3hf(uOp|TPZfeR5rCH-gPj#yx%#|RwBmwm{vy+`HwIAr||1PWhUNlw0{7-SnOtO z%~WhtPf%_Pqq&+my$Qo%MgVIP)W7Ym@q>B=T(>~{of3bxLr2)&^}X`W2P(VwZ@LYa z3z3zKBgeUCqY_h8Vb28P4^Xp1PX;HBmWJA1Tw|1MAi^gwmfYnN6r*Kf%^GSP3Be;w zsyd(PK2PC>x+t!t?6f#GRL|iG>lJIJ_T%~%lB^lL4x_eklL|N%3|6GQj?~%??9p_C zfuVMZ?eRKY4I{*%1$=7`&!{|rR_J=Kd;?IvpHhj3@bMe~Ao8%oCw8qlHKOWH-iv-a zD?6#MX;sm}R*5hHzgYi#%F1heoERLMG@aO;x9{3dfn)mLdNHqVI!UzI`AK`av`Hk@HgR{$~0mLjiw1;gA5-vJKX|77OrQQo#Gp$HpB8T?E3N=v%0>Ngx2B0O#p=;M1dtMzr)W)}P& zV#KTr8=l1*-GwRo6z^HGM8-Fs<=~o0$3!uV-*I*&YS*FkDw2*iqj%plFgYANB% zxbz3L${zL`9HeQ(4z1QtR@gEXWO~Nrtxu@)Myj~W=5yv9K~8#Dlb%9ro|>_Pp~hr@ zIoFe4Ug3(!sEduILe^XQEOyC=+7}Dl?xHn|z-OGL>(Xd&2{_e&NC??2mDtugn^Y=2 zkNMqlC$Xn$y&-&lv(!YlMCqU{izzYoqhQ(ZK=(DMk0u_B)%&5==RN|2q5Ya75N#~* zvG@MRZb)(a2PTDMUXuYl)l085#YGi+o;Mz47-wwHiFocq4yWN=?JNE1uY3JTY&N5g zeB(SPvk!4nv=&0lFTi12L_bm5BRf9%sQV?B< z8ug>enspeaSs-u8MEU@0HJm-Pt9*g-X+kR0cAx2d42+Dg3=_*|CtY!L!s(5pwZ>Yk5nGEA(p0{ajJ}c7*1N3r3JQ7i~jcNoit4t+2xreWS<}w28e~J ze*@ojEwe^Nx*0PydOxn{5=bUv=N#(xF_Wa+UidRWr}*?PCD2?Ix4#kk*@f2-g(4q> zgdA>v?Sh$WeVG}Nys}qu;9$Zy>YQYml*tbXI0nq{5CqFoNG(Bs*rlJy9 z^Ow%$inku_ZO|U`%^D!Gi1xEV2f!+f%5)E`ywV&{?54*6n&eyU#8Ks{v{U_*di8Qn zS{K*ki`$m^X1g`|DT`odKKS@?d{twWiT8B+W)>5VUdB4Q(YR#@X23#uQ6BIco}Zs) zn*5@!ROc%<5oVHDQ=~bAYV=hVYsgKCQIV za>skU?6fu=gkflkHTbAntM{*dNbNiz$mIPK>ACv1Li67`Yg$T8wIKZ|0iYmw4LJ_2 z-daB!A3=RpZ2jI`;tQ;ZMwnaIQBaqaqF)+Zi+6@m1IQDdpJ9M^jR(kd%+SI}um9pMW`OfjR`cC(OP>3Pak}$o*q`}a zaSucB(_WCDo86*fm7~=_8&(yJr;Z=b`N(eWC8V?PS(R2oJnhRyC;c6kX!p~X`!O+E z^kB5qM%4Zi$wGZK+yYgJn$BhfZ`O}80ZdJpuSqJ9WE%Zg2ZD{Az;i>>8zZ%Br43F4 z$V2q~VgL_GS!?J^Fpq4vUuy^?J;*+u%k`9T&!FCkO66kO_wcSGtumpUyOWS)3Z9Q! z2F#fmkC4yYxBJ$9Q!Iaea>PhrapTw*;wvtV^BdEeuN-xfkQh7ps5v&H+0J9kyOXDp zoTLpdJ{;XJH*Eo6>{TNY&U$zC-UIvMiYFQu--Am7LC0T8#Z&?X6GfDG$l9ehPFp0K zIO!)6r{$qvnYt!_$k6l^Q$`vPG>n_}{tHl< zQ0RVMXw!K~q{$aSG|Ejq_p%i?)S95C7~{KLRU(ZuBp#+m3-uZnj-;iGpxM;KTrg^N zM>tdTyU;jAdr*~>zJ5DQApWh)<;jF_%4`AprSL0^F6;&ptyeZat)$mqmn2tT|G+0f z_&7W$e0CUB-Uh<~TSNz{3sMQNU=1(OPCw0edn@9FeV(er7_#adneOsp@ zrg|hGY^~TD__TU8)3jzRusvY@U~&8rW^eiC{9)Ikgwl(PO1f2Pk7NQy&eLf#9L$q`cS| z3&XrmYh8QJp3dUUnGnPrt%ZwL`@Z28LH9#j?v*lHOY8?ylZhH6>3CGxSP^TZQS<<2 zmtf80*>N6y9XD6Zu{L~+xv{OLg?zUsKbpc}RXmJ+q3-#iSjyr`i+&8fzP>fe}$dyVOqypt_8*-Y`7Pm!H`vT(RxDZKdvYnfXt@YtoA-3{UTw6gBnB!0x2@y)t;-AUm+LNYFzk~A)iik<^=^FWD4QRZ6mb> zmkWBzGa5Lt^CL;)WHi6);}H(RfNJdSeF#|!mSzkOB?)H8E#792DPT0^cn+vmvD2Sn1x38#3lRdv)={xf$(7+tiiz8mh1r27)W-YrnRhNdqq_*ROPFYOiMmD1Iwq6Lys zVOJf*d@Y1%#@+Nl%}(0%q|cWF5AaeM9EaGqrsl!2A2YhfuduCBpNorbfNSX z+%xvK*FQP3$y-4As8{>A_I_HWkI(4n#6vCl{nzuRqQ}2#t!XLMR4vHcJakMM@@}MM zz?4!|Gv(9N8&pdHp$cxFxq_t2xLcSc+D8l0erdOVbqDuV^AAB@m@!wH6pjxdPFi?WE^-v1j8|t|8YtP!%aZ54sGfwj>6^eR%#mQx(HJ~lmQng1b)bJK3wAl zW6Q^CYH1$a2+4*0qD0R;^I?dpDMdT>gj3ERC%|P0M{ttzS6HC|3lG&O*~+({UiMtm z8^p-0<1&Q<(C^l`7hXXj4zwVdt+%aymhGiX;|CT(@f!Fe6GLU{nY zZMu8v(!9DPEc=%%rj3hoHvCM*gfITh%}U&R6W31RS%#VJf3`XOr@{6oVmo_=;#8A) zJOq&1&puNNf8kn}F^Dp`j9Gdica_t{X*Mr>N|tvb(w`ad5CTsBgKVLN%AKebXb7SK zTVR)KEs}D)gcd?u%JMZH<%enm*ldwT-L4?^OJ$^V*)UR$?8ciY_xzbZ_UnB|YHb4sEpY_i6 zS5S~eoxpd%vNyhR_~Q4ufTqcWu}~iHc{(r+__8P9KTz1m317>q?Vi4W(<(nQURyFA z@a#pkt8*W+x<3IG)}&vA7F(J&fGU`e2J8<&5J{4T*Fv&{wYL94r&l?+`enU*nwk=s z-uSuVBg^NJZny01*m2mkkI|RzI%4Mtk-~BV-{HMX)qp#v%|$)R**b5z1^#^!OdJNI zvr){ul`@j)`8ENbVaLFtzt*KY-1 z@>#(=tp@q4C+!Wds*RcNlRY&;ciuq+cG(a5=bZsMZXAZ*qqdLRU< zexO(z3>3*;G1jzGGvkK}zh_mlf$qIzLa!3b%u=s^QN_ypli@dKDzwJ&Y?xU)3LfL)YbH>#^lzypOP_F$;-*7xbwrVHA8lP`Y%^#L5eK5{Z6Xm z?#M>Uxo=JdyrmJL#?X0w;orp$0(3iCV8OB-o3T+fBi1HIx3iPgkK`bCHBOIVHFoPh z*GFtG+}0<2O|2p2GAeipL>w>S(yI&9*e}2%+4n|4EW#`0Qy zY-!HK;Q+XhH51#$L3!~yVBYIE%?eNVgh79Y1N&(>l=h1D|1unK{HNx|#oQ2AcBjee2vaJ0czNBK2S0JH1&;R-i(5x$ap#_eD1R$Xx{ zGsW{`3!p|+hpqsxCDazMnby6jjCUCvWAhayn#NY}?&M25*m5z{cD%nW(UlMq8D}}X z<97{1r&rNW()Xm14^Tf5$;lNHOv`+1~64igb{aX{KXHpknmHKz8 z{CB3RjWRg?j2@kYFXcr*n~kCvqH<+^O&=vscokkSGW;3ErcDo`OZ;wa!X?xgjtHL; z!5%Nz+8-okPa17Idn}eofUTI_FVARk)5TwqS!uOyZd>IhDwVU@(<^it#_oto`zFAdcV0b>9S=9C=hdVXM<$`vw zV7rOkr@2_>-VjkMfG}3@{Aw7b7W+}A%Wz}@7jWT{=l=D9@R*i(Q*%8KSFNWV|F%YM zL}l`5c4JMgiIo9B-T1k})*cULMN`q=w0HU3>T{2#H9n3fh+5ANUFmC#ZSQ3Xa&^XzdYL?&Rh(hphhX|IFkUY4Pl&#R(QWnE|U?VzVW zj7x6gPK8t?YO0D!!Dn5k%n(pi$Y&Jh53wOD-iAtnDw9vF9~_GLE?3dW%#0WW%v~R- z(zhRK97D`aN3|xbC4?*}6N)iGbC$Xt^RYap$^*cs$Qi=o5ePZ_{<$=O zNYJ19Z+oG6C<=a;d4`m>2NH?C>AKuig=QfYoZ$-)Za(07h!!ejybvthNfk-yX~LVu-N=`gtFb3hBn&>*eWPoPz`Bl{!!nyIJaK8tDPi8fC*w z2%y10ztW$g(Ee}Q!%t0S_hSK**=i9FshI8+;~0Gy0wq}8&XYkSDdrG5Z=2NKf&r`@ z+B}#SDkFhAI7GS7LQR)w);SqZ>rpapy~|ku6R1br(2KGs9zi!pgm=R^2lUBXa!Ero zUkzPKE=OXW#~yic((66{lZ_@f!lO(w)=v*)O3CCS?oT{hW?WdT!40;e7#0!eYxVXO z+*`JR9WH^T^9xLGdRgbkF>Bw%|6sS2#TsEW>*Tk8kAH`Y7K(fq1yU%FI*QitVmxrW zhBeY7K79gk!!4YYuM?g!QMPITcW2r70oYx_89qEY$L#4`w^0a)=OvI+wj9XX);|f`n%&fc+)@3(? zB*@6;cJJ8?;XQASDlc^FJ2AR+5MM4^y0fIscYp-D!2__Vw=7iwGp$h~|1DMObAX=f zWaRR3MM=0#BoD7_%gcNJEXFHa5iEOqrow1?Eold)ckY<8`?QPySJLUPCsSEL%BLG8 z`u+^6DRio%gu|{zBAZpGT$|`r_!(`14FXb<>2Xkvb^FCwEuJtl?1I>I=Q|v;HEyHx zPI;tc`hk6=BwAoQv2n(K&N8LZ>gGmX$%JWlg(sIaH^>wJ8R|Qe9q(0fuJYqxaY=Ld z+@(ug{pbZpC*v3n3ITN_`+7GGRaU$2NRJ3RUy9n;sJClWJ2X(wue?}`TN0bqsQp@y z5h;E3kG_~%ixlst2$>0vtx*)pN8&)&uehcNY9hUp!Fh)sr8AUTFoMutJg>7eqz9~A zxC`7V=HRc?c@(E4oDlUN%YOq!e+u1F4tjNXk#gY1k)_R-e@nmrBxVk&(=%tgL9wz8 zvP%kB2|-fmQ;E~mv0@16EdJ>%4jH3z#J#DI7s=aUPE2?!DH`*WVV~{c#t4#KtFC0c zf0&dfW-b9PRvf>@I!lk~9rm9YD86|Ti3-tzg&kvEbF~@`*!_$PAx_b5X`jQg*S?2@ z#ngG;m5AtBppTiFeMP+Uxm?#cq5co)B}-Ggtg1y{f-3+?IKl!F(mOn^k!`oAn%V_v z%0-|Hn@$84tlO{t9^+;iP96B8BFR3#9BjmxmuPj~BuX9>8F~$of#D9?gby+n)cz`!&JcYc z=l|+eI)_lz7@m8(kMGAt&jXl5X;a~IpwGQ7@LfoGkgt68lK1G^AAi32 zXZ{IkDu`?nPBD{PU#TSzeJ5S=CKj$gsn3^s_^XNzbOU!X*DiU3DPCSmH{h+I7WvOlL{hR`p&>h0Io!V`Nqa2thsZ8U@cRuj2j#G5xp0DjG&SxmQN}UM3 zd4wB?K1-;K*eR^Wi&8{Mxy+^YFBr2mUKO$~UN*%U2GMtRm_ThbI#7-BSagX~gA9^% zy8*>)ZR%u>fMqI0yGURb}vA zf8|>r`VhEOtB?tnDMSkF7R|1#B9($L!GHEtDPGlDiZ*~7_^C46L1<5x%lOJwq5QD= zYQD-Kb{Y3%pRt%>xr6DxNoR%GZh;J5N8Wva2O>|D|mP1pk4G zK4dn0AAGpHs9XW^>2$dGnV6ZxsV|RJWgf0Mi<<$2;&IIt%7IWk8^-Zh3Ekoj%Uf_j z`|4y@Z+ZaPRC@8O$2jVG3QSo8x|q^Q3(}0g3+X%GKAaLAloQ}J0}e=(OA9QKa3 zj^%(2PJj5w&mt0{YPv<}EGaEO=pZ>=AKo%zL)6R}QgJnkIj=?baL?r5f%&Ft@=+rd zz&n)?mp$ec!*&C5)h*WLODpn1;A-G%9+X5BJFbi+mejq$9lxCAol7# zqBd^@VLCo85Dk2*X8~v@+y3ynu>@jGQZM0=GO2ff0=f0uyZRw7{EBs!b2 zDc`bI$A|pXo#P34YUv+@XQl(oPScKKok#Q=(f53Os-_==DOjxIH_*zjUB!2?&T!8v zCoZ`8hPbQWdRD7`d3<@>i%NBns0`jkVr!UKTK`S~2CMrr)riDx2gbLRedeH(qLpNH zDxmu0_K=!KK>rb(3YDf-Pcnfk1r2Nn-7K4vFRfVb=R3WZJ1cMxu$z)`)p&k$HS)_- z`s$_ai(KyZB>doDT7FzPFHnhH0lhO2fG=-noYCux0zPIVSXRcGd1EbK2(qE^z2?o~ zAC56MH4LQxu9M8vPn4)j>K9gA{e)FEh6c|k0N<3f+0`E+drXzBFd(9Tab`fZjisRM z$BVA-K{xMc2hCjaW=-LryQ}KjF7i+Vvb^%bF!oK*Rp^H}0gSc6|Y2Vs%@j4U86C9m(%>b+Wo>m2U}i4>R$w>hQvn?#CXD0e`3$7(Yx^MB3zt zngqud)_4_0v_e9-@a`A92!aDYD;qg3ceqC#rC&cyL+^>9)QtDhBOWf4R9t6lR0Z!C zCcKstB4D!Nyd>4cst`U8|AE`B zM{KZji*9;U_PIcBA#(9zJi-Q1;F-?p*AZjsIYZFqw&L+Elk0DsFSF3dQ{fA%8IbBd zChQTkAy%>TV(~z?4=Yj=5A<3nZ}gMCY0CX#nI$HTRqdfG&e3R)_ZAsv7|MX2@A!Bw zh66pa@QKZy0n_%lqOgzYbw!aSQYM8vIEPnq?~+|vcey&u(N2f%p~&TOb-y+zz5{Eu z_Eo`l;NtcSk;}Ipcs&BT`U?~n&xRr2k5N zv)sXewWiR-V{o1dEs}AFhK*0^)JkYB%^nt9f&7I!{a=Ew>B7$)QGpNSGR4o|Wp+Im z7_F#tK0b;L^ptOp=T%?<;@#z-e|72c0FfBKWm(Q>qbHgX>q zw@i7^$boZq?!CCdN|?jtDJAufY*eJEIUl7PQZ9zaPLELrAq)s}@@#Q(0xLrp%2d*W{;U8D@%Y!sPp>x;p92&ek#9)L0G%Esya(nhLQZ69Z9cWP^ zs@=p(%!N*`8FerPXqLftHfi-rWx!}P@ zOVtonBf$ahdh3N>vOuQ`3v+sL7ZP}jdNUetovN#!hDoU zy6SqiaVTnxgH)-dBdE)432)8%lsEW*8>R&ZfE{{6`$#&LS$Te!R#01 zcrcv%t`@u(RR#C7Ph6Y*vZPjr`p$;{)5?cvnrJGwI7{G}yHuB)c@7UiRismksZGPGD2xs+!9+ z_6Ay?r3(r!*miAhRS7vkGEt4bYriZl6!YH9zOa2YmItyQ<<>_tu87~#bUAojp|1w< ziSo*p`GLJsCRVbR%84Ews+OO%&IMQGM_L#cBz#uPO1Kld=8QFOU1;;`^t1^2RI)#J zrM1L~JJ9aam#bI#o3Kv?wP>i_$_3CCTcOzy=-EcT_$@AH?!cLKseU7m{Ri2l#r-3| z#vhL=_Sy~dh|z*w_K6pe>95Vam4b>JpMJB4Mc~#txi*+JW+zxgmElnGyV6CwK0Y3V zP1CLSCHMXbyjv@@k7bfz`*WqGRC75aA5l!+MlHI9aI)BM9KR~cDi)X2E!tw2$Ekh? z(4ZK=LQj32S}VeY#RK!=_E_NvVn5Q0fWA`LV=Bl3lEf7=b)L_l1%avgV!i|#!1l z?mlzVaeo{U&Vb-1SF{Wp5JJbJIq+;n$m zE2YzofnU)gEA$D-%eIGT&)+lM%?}*Z0bJy-2wQLBFIy@_cx*{z+9|!#U9_)5)a)HL zbt6iC9f7f;+mD^` zPuwK1$LJB{y9JifmGl&5))ZmK>B|=-uHpV@R#$W(jL2n!qH61v{8D8y-ld<-FQ~7< z5!Tp}@`UrS>>T*2iV^t=KUq70jJ{~Edw08P+ z6e#^*E^o6CiICbS415+pWc77XugchH^R0~Vd$8=<;duTY+FC7ddYC+y-Kv%aQB^G8 z%Ntw(B0|yKAqrKcG~#_o5KVZ|2bwP{k(HdpoIyA3nTc&-kl$mHAp)+ci zgJ$xAG1&RvS>vKK$g>FRCeWE!{g7O89#PZXGuZ20_Q;>%K z6Le)agmg|8I?Q>GR`LWO(YHze%q#zPc;45AZUwZ(kFNy*`N5y^A~)0JlR9xp+NiR7 zFJI9Qwl!}(cbgBm8xgW=32u;S;H@3QGQz@4!VL2q&Ao5oqMT==nq}4tgMkW20Jgel z-Pfx%m|^iNWYZA0iVw(-WU%xSw_CD4x7c>hyzQ`ng!VyD(I{+jI>T1zZ>`?Gitta^e`VHoEgfXB0!V2Q^BUm z;E$7&D%}89M=eDK;D!ofoOSFIpfHzE^Z-@}jtX@B+Tml=xW8S+c<{5Bu--?Xl0(*~ zsju&j#gsUc85L4e9(rsX|E}!c0{(Jxe5L%KcmyiTzp&@t>w9v#zSd|!ES`K?-fUw$K(39Y`+_g6yt%<-ppCM{Yi%_?>UWL>N74*k48V7Wtg zRL`~%GKgzvFElN( zCB{lN)YOciS)5@rMW%yVQ2ioeeYdrjj6W$GGGhv?mT^HR#V`X)lluU3=87cB1MvoN zN6CMJs^yIzdT z+5{-a*)mtgPU~u+lSC0+;5mQB^Y>48sIaC_m2AR--7u0HZz+Wh z#850pgVA=@C!`FiT~nx~jZHTqO@B&H5on}^f#aI7I{%xUON&`5<8NhXrx4+|UVS4z8Banuh-IG0?p;L_&5nEUy?7A1}(|LD62hNEtw#!BJ z>jK(~VvJKs#ZfzKhS?fuDMU0NJJTP_*fi;DJP5tR0DA9EIyPE=!fbWPw;~{VnxIG$ zF-tqjS7SOb9zqy(%jFq71@5DQqDztIUCf?s7*BIsDv!%h&ZHD51y$nd$}+Q)Uo}OW z!@licPI}^HX5U{LP{ZnJ#q74MZA!#8J%d<9Ep|H0@y}K6cjHK( zL=Nr&U=iEag}RrwfBntC|6|-&yL~EmdIrdy02LvRPXByn(|i!BFJrKL)|uUeDeB=1 zm2Sr^VO2e^(wv=cfd~`K+(>Rgy_C!>v6T@X=1U&o92^sRnl;+${j7Zmxj3b6r$ce7nAI}?y1rTBS^nAWzj`Pq)urH`hZo5E(&yv3L&-VtK z`~|6PE*VQU*_T7$3o(vQ7XxZO=WGuAR%+?xLd{K~(ZurN|M!L=*6ZJJz<`?SnN}8_wP1I?MZ~nr_*;jGL_@mSTLv_b=`2HC@R9 zgSiLVC3fEMdG?%b96)l@Dy;neBml3jA`*XLUpfb9n&|`Fw^;^rwdpHtG#6ud9-7X7 zv+Y{Q;TU|aRQff);JxZ+wB$XC=4jfd4&gpmW<`|(_WSK#;m%(0pr%%!g}h8cZWojq z43;O*-?ft7ZIN?8FL9?Pt@O|I{`nxvVJWKr!XvwlMSi5~@9I&5V{&}1%(>O)=^W6{ z&9DGcmGeJ1d&{V})@@rf5E3j{&|rlG_XL;1Ed+NDkl^l8Sa5d6e)s~PH5$2>?na9V+|{; ziJ3r;3)6SpqkCe)z^aH0J!5WaAh^a)%puc{)}mAkPvC1OZAlGnNrF;D7Oww6fO+%+ zPM@+Iq2#qXmay~Tuv}!4YQtH6m0S|5 z3|sSA9LN=*fI4*}LMUy<&GGB$`|tY>;B5X!l+O?tN7D)WBimW@5yIcvYiP9e z7=o0GH6O^~4I{t$GSKfI_1xb%a3jE%zn@U~mG{Ou7~)5q<}DToL!^#>Ke2H^z1)3lAX7 zk7`BAF?;S;%q^FvQS)lnk0sD@sy;P;MG?|&GFUm`ZMoKYbhd7%po zV)8Pcac+c97D<{@vi!W18ImL3W{O7X2(Pmpm5v-#xKIc0=BRs*`4b4;;z^@7NnGai zMT5j5w>bNwvwv{c@8D=ka`%;Tr7%lznQvBnzw81?g!1@s^4)JOGsa(}OL(7LaU}~` zslQdlbFRkCP^f1A)^EYlhtQ~?;YwTOla}7GHCtM#;}rH)2;UeXIXR$Z7H6T}LjD9s zc||kKWVmQvBda)~^|93Hh&(EvT_H zo8cYt_H(m9?y;T>38h-w`px|2t&z6G<(8VN=4ln+1lw1Ntv?Eq;xBOuJLPr2Si_5a zj0|078L>=mb$R-yK2%d*D7S5;s>)76?`m4mN&CzXMX*`Q1DknAHX>r#8Gzq9x@lZgM#Zkrp`1Rg@#Y=*FN7v9!#X>!qcP zc85}D|KNfRMjJGsU2l~acR)%4FqGvNIo+KIYy z%HDSe5olpdxbneyjNgf@YfWZ)6H}5=(LUX#F^&|V2S>R}@FRRE!|kiov50gIV(HDR z2cI7bR+nL3*C?Ya>+9g855{Z+bnZ!JKX2W#2%C8>d0X<+-&{@r!Z(?(N(QXig&Tcb zQB1E?P<;7+S<;5@e z#>5k7S8ARA4)dSRr6?8=e&bOII>}r10k?Yuz zJ+@NVQ6}5Mu_m3~7FRelA9~><`647d@DmbyB55YtYei9s1Puo`4n!R}^X`C4+xXDw zj8Qfs6Z}}c^?kmq_+l$U1ba(@%WO+cj-^pek=aSC>NYes5Y$ku+SyD7WRCn#;saCN znD#0d)}*0(5=;WOVF}|c%FaHoie)j!Bf#Bo?5#z_Dw+TW1wX`>|GbUF%!qZS-gY~5 zGW)FmH=s!50pOLtB*;}Sqd6M*3?caYH?!FO08Mmef#0(iG0(G55V0iMu&?`6e=305 zt?hyA&t9m=WQ*qUV^i7(U`?kdH?({g%p(ROGueveq^p@`LIxk4Z|6iGCE)s^=v_@Q zgynby2+O7_y|CMckXYS5h0!~RS@pI`E5M95LajI z9!nPMykXsS?}tlejO~pRKHI%25>o{)Cvj={8KMs!X7as_56M9BP>~&yNegfckD>A= zE`ltm@no{O_LX($Tnr}Pl~n4$&rL@8C?omsitg&S=IPhel)r0w@5)?GYDV1}eZlAt zM-q_436BlUJ4nO>?TXR~>mZQ@QtwX7P97m8sy0tU_6Ux{{Ao2(k5r`_o?*4_<))R| z6`nv2%2-*xc3v=W6Q6)~@!y2qj-(Ly9vK(W6zv6J3Lxic?C0I)($PjG34>=p)6n;= zTOt+HO!6b3rT&u&&D~L8!-^Qc)9&8z{h!eH==E>iUQlEeiGp&D|P&OWdR zT`@zS`W*_pG<1*zM{R;C|J_#eMpauqKj9K5VNHqQQTiNDla_QtYLVlIqBdAEE??67 zQO&{1WW+0VB%Xf8a^sSi6WHqkEh-WgX<|h~&xRH)zntbz`D~wv$}st+o44}yEY*=a z>+O1&V=hWCJ+Pr-hBC%fFQ?iLwiCuF$Ebz3zNfHN>`5D973&K8o+(hLP7kv4H!J>^ zLv>-N3b-l2ZkFwc7qo%mJz3kdxq4PbE`)$ZCs?ZOe+N8fXQaJF#SGJlM@q=$*!*S$ zn%qI7sH2Zx?~!DAFTEVe4;JWR6q}D(CCMv{m@2=r5l4 zTnt+bT^cD)etT9*&=c}`o+$I8py4Cg^}$XACM77Zt;N5PZ;&8!@4iHl6@H$i1R~SJ zgBnMY8=&z^xNs)3IRx?T26R+c35NevFa!#UfrGx7IECBUJT^Karq}rK+2Q7S7Uhsh z1Y$oFL2FWegu8_w>}_a;KHQ^QhsQgi$`4|`@aj!!qsW{Y(Ts~v`QWnmvTVZEqY)g} ze1v!PD37HfR;15Ze-XXE@Um(d&8BI41tVrSN6Ewt6}!TL5cQnrC}wOOCS-AdL!Ik~^V<$$ zoj(eCI-^wV^=Wx*5t64W}i^Y*BMBASpTV1rKWs!7X^*%XD#F2mbUX-+I?iotc5 z1NFQFZhn6xndVUe+PpsIDt=i!*sLrba1pWLYs%E7^)H60hw z(Z91vq0#VJ@ff9^Ga5|gJC*>sqGUJ}v+TG?!gBg}->Zx+d}JbRK2^|R!Fq>M!;dwn zGHXVjCVWl}K^GMN`F9=d|1!Kw)6jcLWTG5qQFFR_F;bK;}3rGi0fAS6DGS1-!7+90{$lYX(i}OmM@3qTXJFmqHNOy+Rhn!a<>o zexB(#DIMy6EQ;wMJ~_1BqHSQT27p~MXo0%zQG&o&(jL3&D6*O4cb2W072*VBN*|gy<>C9T85mBdf}3$&lU(hr}B?SM`WQJJI?22#=vaCCOfKDNn-Muq`3*D8r-b3RVtJ~?E6RLT?-rP3IK^U{e_()zSI7ogrmIj8<}3Q;Qa*xOQ_XWhbxHPPfGQx>okW=AsjL(>r;>EDskRBH6T3JM`VbTP)-sW z@;-0nAT%youQW#9m**31;Zu#<1>@*>UTa& z$X-$fyE_&P*y|!#qRs@Br~>T@d;7m}Yz`&mnH;qUa8Z4EvKWWW?SI9%>lgkWHziLM zO@(tQhcLnaRHEi&QEwm>d;0i8JON`X;rTb(%-4CTQT|m}VC~sglQDRNff4DD{09(I zo=2ncG@9c$PrvVf8HPfZ2ljMy7%Z$Q$r~gj58I2sn>HgqlkQCtO&Jf-vM$L2-_qm@?kp`zq}MVlk)&y(Hxa^Tn)>EFX)k7kKPmBPHt(c?WoO~e~3qa z)$o>Dfjdeb|GLDGzd4cqdrJ%Uurw3=*%(ja~07EVl| zykyeZeZ2#@P&ubbx)}I0m}5a*?nm(#pR_W|$t^`Dfk*0_)0Ki3Xod*GBL6a+|38Ln zcWr&?`r^U)Zwr|dp|suZB?dcC`TT=+|4ormJ&9wFI4c&ifDZhzOH2gV9x`SU8LKTU zBeNI8hEXcLqd<^7=(!bP%fo&II3qg69qM22sy-&_CGO>ClQW>o2$DF)D@uhd-x?x7XWxR%o@UB7>( z#j))b@Ha=wM*2xBzz;Dmm`NpwMrPrL?4&fp*a;kDxmEjkPew7?Aw$S95*`)lx0dAf zFsqM($a!EE59~c{`h}s~=Ao2~t0d{m54sma11;J%KsZJL_oA{nhdLUuaW{=JxPE{? z$C3W|b~cdHVG%m4z@I4yj03jLaJ$0$3Qsqy9oP#cLm5V~L_;H%S1|WvS)uA9ZRaM; z%H%r6#kqH|vcf%+(u1PQPm!PYw^Xu;PI{eU6_IFlB)E5T!F}_u`rpp@>#mhXij60k%;#uk{OZGXz3X*MSh58*j0^wcBnC~W*IrG5tS^QcU z6fe6}HBgnz&2pT4El1W+o6dMQr9uDk`#Xk@A3o}2xI+Mff_hSmatz@9M4-h`fT9tp zi9`pi0K70wiioD4marm2T-H28)mv=9KgV~NN1vi|7?xYr9FGpdyh7n8i!9JI5c72q^|=cTt9fDQf)#Pyd9@Wag^ z!1!eV1&m1W%KyiUERJ{mk#BC>zwpmuhKisBlK!CCO6fx16saO$Mee2QN9pL>n%peY zf}a-zf$~U)rOPrdC<&D1UXi}ueJjORkxmC2WCcMfkeespr_5?{9B_f)*kchI-dDA_ zW$ueLhq3beBIQSeQV}_H(Snka(UMV@NgujnKlc_Z@%LvP)!;<1BhY3n9hxBX>SV@3 zCK(i5&ib%O_$53Jiaeo;mqsZ$bSaMFAEpDIXUfRe5BEWcm|`s7Yk-eUzg8VFMRSPR zK#QOsl!k+ZzeW-D<)-{f9+&bncI`k+%-#COOwa!|)5+KWg=SO#Hq%x2ZT){Tliy!v zLO3v({>w~60EUfv2;%6tzqMD#c8KD^Wq^@g?FPtyr_$LC z0#SjSQA{wA^pDCoxGiJlIwHAvcxlqmIcAl;cL|02KQ59E#)U(|Y#SR@R;Cj-xa&-M+hk@pNI0{(=IN1E6hxqvk zB5eAvGK7|0{691}>pr$S=gPCV~ir z^1vp2aRFL^U@`AqV2ZXYIj{pK}S;!>po*1p@kO?3{Q3Ar;~GlFHstr3ms|8U+^qBPY>sbe_ha2c*39 zIgRnzgd2M8DR#uoT`Gqed>1G4#Sii|$&95J3EamjFjO<1y?FJnFh!3<@B*P!ztwef zQXC8Q-uY3t*YPA(pl6H+t7-ll13KAq!@OfaL(FPZ$FDo{vMyisHh*4|K&GKqM^Xa3((hplt-Uzw7B7`emd) zhpF`nVpW;^3-HSjUY0Yl@2c4Zxj_>MZZCW>AvlZX&;dp7UA%AfH1b1Iwzo`8I`8{D z&t%RhUy_KCdM}1w&vX5TPLMTOm58n&9(kZJV< zHT3qaGa9M=FpSr6jyOF;Q+(|GF}xQPS7AR3_2#0kUDhJ;<$$W{Za6@}DOvF?I}P{% z$9T4=09-TtWtDxnvCB$x+@XbsS zVVb2)8$F6r>q)H%@A>!b@T?vow-~H>JtuMHbf&+(7e@0}Ha47w-Z;7ZyP2;RDUO!s zVS)I1hgp!m>nfjuZ+8GzkkbSiQOD!mF~2YwfRg!k460wEFn9L0oekhy$Hh&M1Sxjf z;rV3r*ua-k_T))|@XIyscg5U)<$G+-Xfr@_ZjL?r)2L&ybLwA^!(Xuy1-=ceaXypf z-Dn>SArSZ)g`CuHSyNJ_p1BiZ(1v##r^;2GKu8uJeeN&)HJU(J;*l7aiR`*W+S{2l zayP#i^?s>g@JyZh=A-@;h_1An;c zt6UV^u3%6FFwC*44Z@u!65!jZ;^$Y^K@!Tli^MO}t0zUdt#&HT-is%X$8inRx;Q@W(?65H z93x64LL_=`_PKCHv9rUX?C8}oo^`#_1q0W`SbKmkl_e2t+(q8+?$k~brN^$BGHV`S zqD!fO)kEiW1LrDqr5}dqvfpS14nO~i{5L>?cVh#9iS6X;{UHE|{_7Z;*%c+S_QNhAY@`$bgRbNuR(7x#J=P(9x z5)+ArFlgIG(Z+}<7)dyqv-1k3DtGO|Y9YuUHKd#>2e9q3Rhadpl4R}$N8i3qIU0<@ zBzdgA5I0n@Fa4+{lQU@eVg~U_)mNTbNOU(>vWkyhBY}`8))&uim7bq(H$IEt0{d|x z72V@Sp3YXydj%)@;ACFRqaug2Y{yi-tbhxpY~KDWoc_@lqSEDiv_kyWY0o)OBl7O3VC@KUt?lZP&6{4;Tg^(PG-g=ewwiS z8cW!R%XvGBCuD@JRnMqldX5XB^vUmiw}!3_4ux>0u|!eRx(`p*K$=x0IcuA_(pypa z3|_trp-=V|8QFCI3=te8f&3A1oOJ0S@bAtS{u^6;P% z*`E_UU`nP^#LkOQs<3%u%q5cZZPjM|9LuSP*wrd9{mhDaUXZ!zbKTkFyznxkyi+$* zHk=d;Z&Zfmrj>~`)I+m0blwHtNO>-~7np8h$?>2)-McEd1Jb;_BW~8BjUnrHuYJCH zY^eOkHn-B z6`8NYq*Kry!;{D}k4#iqF7T4NzXvI#amvaXFe{_QUTjKd2Y}Csk3TziM-Js``F|-b zo{{CCP1%|iQ`$o4*5ez@Cr#_TumT?>rDQBjQ655eL&zv!iYl_|pnRCs#JoyNw>ODC z;L>0*J}bbNN{fMy;mK;%hhEiF^Z$1GR3;@QnX!dbj1v7cV~?Zdw%X7GG+9C1i_Y8C zJMnTa`Ue5|hc_J$H|b|9brT^2#hAf+abxd84-*%v%6v1PscXu3Wu{Se-MD#GaPx51wO%^ykE5S7UX^Lci!HA=qIK%GXv5aa zn~jzTg@aNeQLZnFF1ts6pWX<$?L~z3u{KF;Px=H&8TH_&2Xl{bV~jLfl7esVirBC7 zwKthY`bx#*(>T$bB7d?!w$pCDUv``*c%=NNaC`A*+mCn9fp5buM|{IIR8YduM2DAA zPY>b}hi;-OY`v2wiHDW4Gf+JAkWZ`?@gR2RWfRa4f&RZ)p^ zC1Nt*MvxrI#ihdXjs{xpysSvF%|n#w&aq*GJwyUdO5O;P5g3#PPPEZrv23mWiyB*Q zyR9MW^rNs*2|+MvZ3!5BFjSRR3UEkbnOM@Z@dxUqk#Jk)!|_QhYdDEvqD1F zpB~-R`Ae|CFm^q+(@Az8xVOjS&Sp)Bb^Ru-2R8_4BIEln(TdcB&o~TRV=`6MI=T*H zXS23C%K)rxj)i5#&vC-BW|^ws_oFt$i6urG%>ktu)ac9yvw+shPt;~Z$yNTXMt0-g zgSJKI(-vReVk=t@b2^b-QPnEs3Y`YDI@7Vzd8ex(KEw#>zkH0eYKhHm9GC)pe_-EQ zHe3t4fAe2rl1L`yvq!zg&>6yy0U$Fni4-T8MIQO;{h5`B26>!(85KTsAp-S7-C0 z_*?2*C36PLOTDs$=rhnYX3nuEvyPQ?ElXm6^RQ?PXLzeTB_~`Fhju zHS~?K$1>Fmu^|Qd?O)c%^>w;GWb$8gom}fs2WUV;LpvEDC0u+M#|Ak@oZc^vxbDVKlq8bE(;{;W@+wZ{n6 z3_CzwoDtPraGai6BtG%o*9@lCG=)GlbXguJO|v^)Dn~9F46M4vpI$|sqEET4e@kBd zArqnJJ*I91(2Ju19I&YOaGQ0RJ7VF-tZIp4n(qCld%+Vxt+m7}>b|VJ_QQhl2urt$ z6!Z1~FIy+vvB9Z9*Y~0Nyq_clWHx~r`>RMkUE`EgZ#{~8i5+sgo8mwYRrrL!RB@&2 z1zKS(Z#gR63;~&j5E^`s~*Yj&AF~X1T4NkLf{XnASHG65fUn2H4JD(ox+|T<` z#N@|2X&bEGn<{TMQS5iE8)t9Fp#Qac`FIwhej0q7VGn#MST`7}%5kX&^BCtw_*3VB z@1qA{pzp)+<_D9f-%pQh%uR5|O{k^;D#-iFq2RG$v-;2!2;^lAsAIbID29+n5BJTW z{WA4dyUx1qU=mxRx!TS;TKTl#5OPm?()InorBt0MQn*l6>v+pKvRAgxodqO14eafy zyngq6XQ{Ggk9d=3gq38?W1q|m?A0QLWGs|@o^f_}Ts1$$aKW?E;e9`8dJWya#1ZZ< zJ&I|zwEEiCSkbiBf+O7F^jWSXt*yg>m1MDDL+S{ftxYN43P`G$n{J(ke4}+FO@cR; zX(7$<^BCVqY$&I+&8BXWU>kY1(=WdRe%lq8eP1k7&&K7;ps^FaKmp#>mg`V=HJX(B z9qa`FTAv~hhV=c!*VM!BUwv;|6KJ}dq=`wF<=)n=m}T`_-QX3q^xQA3vveLi@+XZn zE<1t__}0i-c)Qdb;ilJ81ZxY0LXp`7b=_|-w?&r}dq5OX;xB|w+#mf$*G$zFxRWe; z8e|#TWjL2gqG8T8A)~nR$c8JUbaO%KV^$_oQKJ`8{TaQL%PxGbLd+c6rmV+MIx4U) zFjCCCKK|}?;+qbx+F613z9=9_lI|oGjWEuD)l*R&aZu~}Cil}8b&7$j?1E8DKz6;7qb85VTM_NaR1WISrowbGL6MDuE)H2;UJ`6bwNuTT5!=;rMN%vbh{YS~ z$S`FC=c}QRK?Or_8hV9s&4{L}^Hq|fi^pWHc&Zh@R0xJ)Aef7&$RkYLxx>O1&ifYj zF1hLmCji4Ba*vvfC6Bk?!eCdk@<0z36OVVqH5Yic{pnpvG&sn)HZAa?w8A_-BjZAc z=Xr8!ec_R#7|bL;28A?AJ%tF>`*3Qi=;dc>U9shy5DI5976AIbG}#sc zi{Re&6ofvcSLZ2F;IE)dQ%G6GGiV0g)?Ejp8s+U_V_bfB5TSu_(T2(!L=xKtaC!3_ z@ziOG*jHmOfk8(>+gQ7fTW&qb6wUd_+YUW?T9_-}f!}1oh(CcD$w?Y8_2y}uUMQYC z9;Chy%XpTA9D;Skf!HAF*Yf+(>-`08Z_y7MeHO^Z?!4q`s~h^Nm-EP@!7XC#c9s_u z1!{U)}jp2QtsmuaV5N@|~zb!ag|6ZmM*SF#U$UmW`==&(U61c5-C=z+DMlHHK z9KrAAJJER7ob}CZcxuhY;f4o}pPH=i1bxQAMRuf@L2J$XuNv9l*<&Y3F5FAS-b9?R z6JXWjmkrHM>A=&&=PyRr!)r<$u>FATlh#BjSChw(YPTZqvdCM*rzM7~6Bn(kPN$Pq zql3xxQc_(qX*v;gWR^b_R!Gr&H|DKV%B}&e(tmoosbd6n=4XnNJOMzcPvj%_>o=^~ zEE_#jU>^nD;(}-0Q;5@Qju~uN-elWq?zz9(L}h{Y?sIG7anUd6uWYYhi~b}uOy$*L z2F%Tr%cP6P#e&|O&$?fi1=-dP(Kfnx91Fg$vH~g_FSvDz89k8*jL6>gsru(jlEB?4 zKgw@bRo>Vkw1P0DA3O1#a{9G26NhFQ1g;I2{%Xl+Oj6M#JggZ$OW#Ub^gwxCi`*&K zk&x+n2E&2Gq5I#RAl9~xE&Hd3KPe0mSNzTkl%y_K%C0?-_Uhi(Hx;)KBTRVpekoH` zWn%1ffgGXNgtxglu$l#FSHfif_Ri(Qfzt{qR|`UwV1drj4ft28V+^uJ5xJ0My?2$9 zLxbJYC6UKQ_7h6me%z}A-{{rvq$NfbO%Z6F-ME`}kcFsuGfN+vj^#?P#5PyKU`qGO zA6wztuQGvnJnh~itf>9-(?*xm$$dQQRKDFh!sZ+fb+{+U<8#&Ikj8|;%%JVz_QT~w zXZ3F~LyQ3A%uc0H)|Gmp&A@GH?HYUI-yQdraj6RBiGd#XWciWsYHb4;z#5I;Lhfvz z#Y#4NRr4b%4qK7$wzpdJ9%I@W&~m<1(KTx3M{01CecdO=_B4>ilPtrTXllQEvZC@GgK@QnlG&>!529T(mlDo{t zZNhNx5snA?Quq9#hwJk{>rXy{wodB!@r+K3j%6&?LBDI8W48gA@+yH& z9+OVpp_SR74omRN&mD|iul=Qv@!I7V)J9R@RPFv%;(g_x(z43v-%P;fIQ2cwso_(t zB5cCp-y+VStzsU1I!c)067L%44M& ziSm=B7wH3x8r=cO%lE>{i{%7wPb*qBfo>6Ny6_8w2G7MVkjsgEY6tixgj9vty-BUxB^IsR_5`q|XWGv4m6c3=1nAl>7f*id>i?9U9L>bf z$%5r5r(SqGn$3>pX1Qj$U(}qeS=lI_le8kYopLYFyDky$GHD@%V=3Rrgl1s;pm1%V zrVDJWjsXE3bG=WYvM46-FXDf2pGFC{u%Q&m;PYO}Qd!KuX7jZx(@xL*NCnOD1FG(7 zWka%^X9pB7=e3&6xj=WsOgt=xIk7QXkaN-MsTBE^`e5Tk#oL)=-U|YJd?rgynitqK zYLw1tp|t*(xkUVnVMD857}7(HcjSB&)YfSciXA`A2&%FtW)o%R?8yp2b2=`zLKOKy zcLzJt+587zs0s7j`xioGHQlKQat1`2+Rs8J+GZx9Y@U>Qzgp|MPw%tyW4V0 z5pVAP2sG)uO)=*C-g;GwzKx7;t3$SU%v(Zu@7lcUgKPW7A>d&;y-D`xpkhyVrWK)2i~Bs&xyaW1Gg|71qv^(z6&}!PF?L z{JLt8NyPJ)Tt90Hk?1V}*stD5)ywFRG}(hC(4xacqvlcxG{hNIuIH=d)44YRycLnn zUDU=8)o>_Z8|%9BGNr8UV+$l1`qg^ctYkaM^we#wD0G@QS*B^*8V(3q(CU5OiC4Qo zQ303-_PreghnA>BFj~)p0dVk(i@qZLrrE*qfO0i_ZQ*l4fpWfG1QSaEN6-VH{59aS zsttki9|3VuuDi-dT`HO(((F|Y!aI$U^xpE1j`yeeJ+&jOs?35j4&V@wtNYZx!db`O zQrXC=^~BeTo*TOTjQ7QF7jpq{)eS@yytGj|P*KfMLI8>Lyn&T(zU0or+JJBW)jHA`ZpA=2@hqamNO<-?83wdI*@70v_=Iy=#N{`JoorY;y=_^t#K7=Dcu8-?t zdmO(o5XGZ3?(;9;3DF)(O#%~VI-j(6Wx_2mQSejrJw5ymls?|9I8E5^s*AtF6%I}p zJUo;MCKKZKExQ~Y;^*>Ue!Q;oMI~H9Be`3N+mpNhv*ecD?!^Y%udw*to={k!^7QqR zjrkAco%vapj8X|b0?#E|+X2-*v%1u@+=GY0!Rq}2+639f=(V^V%6_Js4{_T3x<^W8 z&+UG8${+ZsiB}m*)6k_H@^=3^nWoPNm!OBIMaEEX>%JnC3igV?oT3=(3khk`_iDHG1qm_{yh0~%3a5s6(3H|sYLx3~=^Ooq8E@Mp-b&~l)f@IFMbpsfOS9mz zO{=#oY3&aB3V7Ccxvea{FQb+(y-IHT!)W2F zeCf+6D5VIQdEke^kL%t~-ap{ABXyQ={c1Euq+)51_pECQjH2$GxC77^{ES4e@$GJH zi?E>@IQ>8S9ocR0TFTAZ9Z0HfHh3UtJ5nOtd8JNOubCB-;6fPaV+=m?x_cq@$wT*{ zWah|8d`8Mub#1K&4_70=(iYPSUMQ*6*Vw1)TGB5CW1*l)op|cVBrNm=3w%t!HA&U4 z-qlY_foAWGTjBM$FY`i7%S2cdy1kF&xmVqDKi&dJs%maOJ?LH7t*o|3iWOuaHLgw` z3dQ6l0g!m5{nTuTTz6{nb8r4eqghesuOwpRaam`o20D(o6aMsWN8;JM5?o1|KEvsE z@g%}yB%s|I+YIDeY{=P{@)cm|iPi10fH~NK-|pgFA^2Q|nC=yD11|lNwJZXw`E6Rd zu}V6mmRsoONA0})zb?TU;crXu$~rHgU0RlNUlZ~YB>R7xqj>3y6LltCbcgMq7^6`$ zH@4@GNf{mBfh&!v(|>TD53Kv`BnV&c29S|-q-pYFLGz)xTK(bF$mgN(&j}z0le?gyUMrEw^P{s2cpX0DJFdsrVKj@G#$X8 zLXD$WPZNYwjDe_jN9hK@PptRW+E+o8aAL>VgE$VC8mwjY676Lq`a#9^XuvvsOPKPowp6yv;BJf zd3pegUjyU7Qz_<$N+RS#LwPOxMPqs$H2X}K2&p*efk>B>o!$k5aheSUfzi98l$D_} zkFS86PNcw`Im;U?XK#Yy0hAOym8~Zo?pZQn+I5a7Ojq#b##d|&wX$K8o&^eaYh;f0 zO^(ay1w2I*BlZa-B^Zda*F3K<%1MK=|_MJ6C(VDt84a|GD`-asv&m!zRcyABGJj(X$aZ{lbK#v8#anY1y8O+(_Niej4 z`RYQ6aWn|DcVNoHGY9g3ZJt$DAXXRJkiGDyqp_&D{OE_d-wl-Dgs$r*O@dV2^tz}=kuwwJD$VUrZB6=rF3Q|km=S05x~qtY_6^y2 zPk@SI_ai<|&U8Aw=S1qF%RgYGPg9b^{u4k4nQq&`VLt|d%8ytRf|q)*tq8VmVyki- zP}!ZX-^TQ6V+tdroUxJrlrlE^<<%IunP4!TV%q1ob3E2%6AjzLoRF$eB{xG|{3@bz zCYolotG3wj3fh=H7%5kOR{kC?u{KK}G}_(ZlX^j>+aiq@=J&ZA(f!5!c#`Q_=&#F` zu1k$C@wRSQxAZg|qUA5Bhs?6aUICEXZiU!ilZe6jWmXTT+Ss~fZQTT_>6 zRRtk!2J7X$s;xPX-%o!!&u=4tKliyz|MK4JjyQ>-;=TQ3^Wq25k`92{Y;!vysnC7x z(c{-dBg^5PN3VV()e5AJrEXRb3*>n~x%fj3Xh(6sSxj3zFJqVIrx;vK-Oy2#+BfFvj?nDY^ zVDIMBc9hzzGHW>XWRuokG}w-YVg8I(3c2f5!J5iAPs$|tDea^lsdI9{Cdk%T(s6+k zp-?fdZDPqG46kwclZ4xhfj$T758mKQcjIuV4bDLyQR&12&I<1P_wFF z07XwMXqwqpb#ib$vec<;FIgoSCK*Mpy03qpkvASrq-e+i9zrgSeKY$Fsz1qoP??+F z#h-}hohQ=aV^z{IzZ|S6PF7-1ysfj(0HOAGk=+z|`-JWWza zCI?8J^wvI*^Xh+Qs@H-03|lTeiXEzw4JV5}5a4`8pGTJ(K-u<=@Us)IU(#}!{7mh#GI>iWN` zySF8~w9PZLd|N0?@(p$Kyi48{7;U(}61@2>eJS($!cYsTSTZPkT#ki@NqUW&%7D&R zCtNGIoeFWbZbArG>#+V^=Yi5s;pfQ7v?2`_Gqi#i2c5MC_rIT{dG`)hFsvCoFq-eu z%HCf{ebF6ZsI0w#GF0{2WS^T{XFS{pP}m7{C28E*{5byA`c7pEP@%M>CdQBq6`~${^hBMr| zWj8BZe~kk<{qW?Z&S~OzfyP6C5@#2RKNUN^t;-Oj8nx6)#x9H0O#q(PHJ4^zg`-2D zA2JSG5}s<~`mcFA5hAC7)Y(3tSEg0@13L!N-`E1H6C=5t4_u^R%M1~lzbR?1SU)1p z0*eUv*@_HV@pVA|Q$L#6#Rqu5=WbTq^8jIJPO#1IDROR=f}IK9Tc?$mzpcFV2p?HS zidc0u+>Gz#WfYQRC7GTGA6Juy`|ij5_c2S8)boIOGTN8smVhx!Au8DxnVxhX$7ms{$`xNq;`^)#Hk9f55>G*rq7r1U`OtHyQ-+i|)JvKM7 z(iY~t@OfJ-;wWR65$&=bc#pX?{P+hkD--n(2laESkkMlh??_98py>>C`PuK+Q##;- zvWCq=eblIijwa$e0UfgM`jLIN_^_{sB(n+P?2Htw4?fcgdjq|WLsdgK5ma_RKW!&p zQBKf%x5<_^?LAswtYY&NZVZMp_|AfP`=fLBx4fMEu-w9`8XbJu2xD;-5N-H|rnxj5 zg$ttP`In1&#DNx%W(2;9DxJ~*c|x(8;i6j<8B2=D8VmAz(&@6`lG>FWHJ06Z(&8#$ zWy@@JVV*B%K+y!M{HnrnTi33s%L#zanL%$cl8}<(lNWA&b)&PD;C!{nQbGO8kZBk)i zGVz19w3`tebrTBZd!9@mtEQc(3blSkaa)3tAEDFgX(W7%3Cj5)X1bzR2Ww1!&HW5y zfRGGaHtTqWZNQkIE4`MwS|4xs1&My#17jKN2#nF{@If6|prs?7ASV^pP1TtJBDsl) zS{rqPhKgp!79W==gqYQaIfM7r64xYlZR!Qk#z53E+lqPDRmMJzpl39ZLx!Qs>pn%M zJj<0Gmc?;{R(4jzM^FNU@N|0_&*wquL?g^~A5-~VEZ5|F56qvcU;G62Z!B~@Ahu=W z9}`=qlSv%P$!p+fBO!LyObHe@Ob=JIUyKmPDwGVZGsZhp+xc6PPJ%adtSZP*5dh6Q z3%yK>z0q%ys^6WMxk8M=2aSN3lKrVmb49?TRi~rr@pDR-{qoHM<-?_(fwU!IzNvKEa(XAyff#cs1vPFA{fU;Z}MS_+!;5SW7lGFXKmZyz} z%c=;R#+>^c^G(#>?p)6sOxSXoiEDxGhw!KUpK@P)uN5~-SU{OdmdL*kBql|X`UIMoi`XWz>49&NImO%j`i8p_J<{Y zV#;ySl`jdjAH_+uk<%fnU7kVt8VKU0IA`OCsG}407jevA6h;%N9gmfc~ba%HP-6h?*bjJqV^W8i5 zPljQ3W|?!|c%J9?&M_bNurbqSdJjVz`>rI-JlQhrF7+&Kihzf;%r;m<61K?;8_XlH zp05}QG%CA!Wadzd!Z(aL?Du5wVp&Cv-_MPv6-_c+{i#7{t@n&DRous2&m*(3W2~pV$H;X{y>`wWgCIh1B03$Tp{yuXK6-#>QLeFP3N) zNh&~)36Adv**V~69yuSqz)EVYEAqU|j9pKUaCxy+1|FRtzq?hT&tFZWum3izSRI{Q z8bi1n!9h<}%UDbv3radgS>CPES4)Wj`ih52O;$Tz&382&z0DWfwG-*kh6&{~JkR#? zyRk#_^2mGGkrSz3l(Mv$5VLU6&b9_R>!Z7_vE}ah7Q}coiv-t&ociddur!-_@b`ZH zb&JATkp5iTf{)7JW22H7rG)c;u8iaHCseLy#pJS!Q9 zqRv*hg<4H8x1V`WU{}U0mZk^y_=x_PuaveG%YNuSsz!%|P23l82n`tnCwbPL441h& zuBXXb;uF29vqXwkh{K&^II0lA5IY1VkZ`7 z9ocQ#;?-ZQ+hqTq>weQ@VDQ3L?RY^^4(dxe727=ekj>)R{Bqj4VTxD2Du~znm@tGi zucqYEjK5G@!t>>@GCttH8)2aJ`ympBs3wU361BoaeUtNElLI_sQPI2-*zUCLtfl1c zb83#6K@QM&V{B~(mmA6vtWJ(vh4amym2<;ohc0IFS$m$LsM*cS{x4IeA|30?Z~9v; zEd`c>v`7YQ=RY}S~-|z&y z@c6VfHeC9*K;l2=-ci`{aY}qkI@q=Y1M2aArm0iqkyb{j8u2AE-NZPVs@B8SH~uTg zT@@yy2Rp<)eA`_r<#T*ni`uwXXYPbE%W_nk(B&xMC;VEnAWuh?U>hdvoGq3wGKvU z+-^C@9T_2#s_bwNYB#B#yG#ml95Lgu19nSOWAJ~Bh$(4YMEoqsnbTXeqwf7!_M~1cNey8AF|ri ze_3ZpEb zqu4ycZMp1zX@CA!g`UvQ{wRCtrBs0sI9j;XV@0||CX|+s55px`>TAyhOCPn%O1m(0 zhop|0ZK1{a4uLxnO1DbD{&Ag6=(Q^ve%EmR z>{!+CmPXs&&?jJvkmYq)QWPmREp+z!Q|k?0Okjt|snIFsYoX4wHYeXk0oAH3g+88U zxk<&NVuIAl6YrLRWY?9%7h;}j?eYe}QjJ1up1oNv+&D2}m&IE8>Bi=EXOo+%@?neO zXShC{*Ih^BZ9O2v%-`o$VZ_M)q?B>dvy4@T#4PI5ATU{wG$YQH-$elh;}rV0`CG_g zPHcJKe)|<>=zr$?wx8TghGMJE@LyjaA1D-)8e&DW((WyMIX|WH3E&+_zQmJoQd=Qb z5_`VTWZ3^S}*jeAzg&Z&l*s4Z*7ckNZD1dqb@qzf{agzjQgS z-&XM|OSFjox9QCA?b-aBB#)vF+A1Hpzj=vox(_L!$sbnU?bg}m$wz^4yPA50t+Ue$ zCtz$3`R5^mhVeBwB$v^v?^bP#jB1 z7~)q|0+kKM{JQ?!jI!XBjg%hfxE;mDO(M$i%sO4Zi>zL>O5YW4y7I+N4L^B_>!eXA za75fi$^#ecONv%< zDrT69$Jt6V%UlY-rHyUUW)%wXdX&eZ4^kI?qSslZ6uDk{XVy?SCO8szs*!zoy{Hm3 zFZg4BKHBG0n@@~c&?dO_x}{6&3ome`w7GcPoR`^%l$Z|pNcVb0UtDbSLF;)lS=Vv%hvcv3{@E7!v2FJ_)Xs+nh=h zYcu?zsHM-B+)?qN_n!V>X-Hg34(@vNlWB4cm7hZ+K+HV;8_{|DvFR`1EGPF-{pNnn zaT}wP_*ds%XaeV_LFT!y&nc(;FatL;GezfXmrSpAU}zSg)E8des$xVXoe*vpGIE>K zW=nW>_F++@mXtv`8hRKm-b$a`ai^5c@)AnBbV6u|;kWEyFSE5cev{R9R{2#_y+fgD z-1^zKqWp0~#};Pa%ZsAlJ~5}1rquKj``=bQX|5JT_E+jouuL8-NY_T_z%e%(^TGQm zY3-^-{&E_M0d{NUUhg)#(JnhjHmN?do{ zg5=}QcJaO_l?2wsVi?!u-hxl+*>PJSh4G-@`Y??iMihMv(!#5=)>ka0){is$jNd~i zt}Hr#yB9V}>}aw#Lnz``VZ2DS@^mQ}5e(aUL_lce)P)3(SW_yw^XOx{i0` z2Hpd-0598p$u09T=bGdUVC(t1G*}v7>A)gOvd0P14=4B4Xkh$R&qvS)!hc9B<>aGg z@*-UshYPk)V`+vlY(KCll#wv%T&X*{{@qfb@#{-46xI%Xhd(!Z}JwieO8b#W$vC!*Ve*E(Xt zdnY8)DZ7r9od`!_lEFmyhtnN2n>OpnM=O(N*ReL+^!};+h!GOicU)&7d(V3-@yix? zM2Q9&d|Q4gooz?gnpB@8mk!?mqaf|_<@WtISX|R;qTj`Ul2)na_!OzfinH|#_ug}} zLL9f%HhP-dw_A9Z_uHx=@6mWT_p{?6K;A1oa!{a8=aa~vb5`d4<(sE2$vsDe)prNxHj2-DU&J^iil;WTKRN4b| z)^y9Spaa&W(I53~tUn*h`=kqkw+`{T0AW5NSdP|2D*Fpy3p}a5xAbf+l^NQ22(hnh z5sVLDzv8gmPg!%|=^NH9_>n&8b6TV8o)Fb#sM9@p%a1_yIa7fQ;i@*3Pba^GKHn4D ze?aSuRMjPx&Lq|k@2fT%4#c7%ZKC~f0u{*OHTQ0zz9@030ULULjC|o7Q6bhOe`ru? z(kxEBU}G7sQ6{sJPUtbroKf{cz^**}ZE=dyupPfqXi){(IZOWeUI+fG+Q5h%k) z+OOS@&U#a&q)_(%j1;oMwOUGol!Ba)23lZ;cO>PhXC5{Eg1i#H=Wll`*^AigLJzH1 zPhtWWKbsj}l=cYgFe`+!{0$PAAB0p;x^F-K4YW#Ta&a{Amo+0%_a73nha0gEmu@E8 z!Iv*p==@wyI{;qPJ4MZv1+#*m;X3#LfgoPvSN<{`nc;=Z1z7_$+5c`q&~ISb-LJ%k z4zZfV_`DF}6C4x8ud5A*>Zm~vse&(7UhR2dZOY%L+3%T5%sySP&^6qtLc-V`@vd4V znH{xd1GZX_<8A#~_Zc6Mz_RGoXP*-{+r?v%f6V?+biK`;K&;aVx~f>2MJhf&752|4 z?96=yEz|x=d=`e~=}uJ1aVDCQu=Z2uJiVPBX+Bvc)IH%J+JoU0zdRo?f=)u8!~3og zNY^#%^&X8mDigq#X1b32CLAu#Q!wO-G_=li%e4!sc-?#=2nnAs^gdPfn~^BPBO?~E zhw0J0Ep))0ew1%-x0JYu-xts!e!teFJ){&zKJ7JUCCThZ8t+k@mxKl_`teF}#=fFM zr#(;-Y|vL`L5w@4XP8m2AM**7=!|cfjwCQY)^T_Es_%m3`WXxLg~CJ$0&JhuXog;# zxPsyJHDatuqXe`WM#k>7j*TKM{5F)`eHy&$sfsRdARI+Ha3jp^qiSI1CZD9#F<+RDy$IHz9t9CsWy6-ZKFsq4Qcvd!+$NWF4&9rVS4aw zrs$cjt9E-@rz(#Q%Ul6EYnHXHvGCoh(qZ1C%Y+2Qevz}%cmg+gMtj2UJ4rs%ql6q| zxE~V*azY1N0#tE{l$BV5Xs;WaAGXnKs|Dawy6Kq#=8c@3+OWa9j4$;NJ;z>|o}aV^!>6@Ke~o zXKLE-SN+JDQCB9{E&7B_x5=m$efGTE%lxt`_^pLDTF{)P>p$dGXT)XyGw77lE455` zGk`aCT=}FSA3)sl?8zw-WU0#byQC(!^TE{7^Qdld^DWc+u?DUS!a;(L(k7=&-|^9NVuC z1~C?YdcuZf$~xVy%(Ur6g~=3fb%WE=u-sv@!{RS0-kR{UJdEg?@8(3CC57sE{hax{ z@t3g5Yj8p);r2&X=lA&EqAuJf`(UDtmkr3kXU^)0a|=J;St+7FIc(T&!^ANyXc~LAxOib z`(4BNhcX@0(Bj^xl@&Xh?YE3r97IOG7aPYT?;7=dpam)0IDQTa3baF+=4Xv2-`Deh zR|o=V$avzONoAf+hnW4U-u`q1Z;akmHyTNgWr{J|{6aLK73#o|cSXzO zTr^Ng8@f;Wp4v&9uHZ>XX-8{AKLr!x%V3=*8J}dPFGRX=cvQ2Jl_5VSs!e+%DqkhV zL%MfWAxr=K|1`_ChbYiEfAoCnni)w7Q0q1ixiViPc`fF!^GiI}gcnt-HHk_H0H~jQ zVj{SbTMLoz*~A1qt0^XnDN%k~UYE_~lh9AEZd}fFZ+ParHGlZYR&s>% zmnTw3jOJ?IfPneD0S0!bvl^3;M)L)myyv|@{3CV|N7t0&)pv1w6Fk+l>yL;es5~{8 zP;l)&M*lb`kmAMENr}Vfa8OeGe6#<4hWLWxQVMdIU-=904xqA}XK4~2s2RwznLnwR zZI?m<0XAMrM*{@>Vqp6dha-(+-Ppg~y}_|+z~#m1nBB6P-56oGH1t6zPGC>|xzJV% zWys%we-S*Giq8-|zI9_lBRY&d|MCWiC~dzFxHX-IE{*-VHc#WjT9$VRicI|DVx_vQ za`gKdL6R`wFRSnYx261-5t4tO>jQ&YGuj5H$05Kr+V#@$gk94eZaZ9ySBRXzpx)>1 zXjssxJO_J5osLED{Oa~|F-M0wrLjZs(hn7%eVzG$fYNu3jcphGwfh&Y)Neb>Lv3zq zO#wSNM?Y7i>lI17ZBd8F?kb-0hZoKow**4{kLHHa2(h#M>bteft*Q!3Wv7iih1=ASTIW7K{|7Bp0`6etc{#+g?ZRD^+IG@te@ms|kdzAeI@k;?!)VeSYrO=xeL*c0lRl0PG~IddS_g5R66|&E5&u zKs{&YZI^K9Tuhdm$jhZ+TP*t8CbR_vl-k}Pl4}RH@15^L006+RxlQ?-J_-{;`j~r) z<;s|f>gLzj^YLAIbraBR)1*30?*HG>Gj(24>P?*KOq^{PoQ! zqM}lVolZPPT?a}Sc=BUgHF9}ei&Qi9WNLtJ{G46R^`!!=X}}Y(JaT#00lw{Fofq)# z#!L&**ZJ%~HCaCEw04j$-Z|Tr6l?0bR9fMV+yB^s#l-S=GQ9EN4@**Tph+72H?CKP zuU4aLfXQ;dd@e1zPFv%eE(uK4!Vpm%Pw<0aZGZJC2F~~G#Y7C@7Y3Xv%bl`MLaY2f z4u7TKMNaDovYg4HD+J<-r>CSSBQ5St%XrbUfY_uCY8 z04#ukip+7LEt;xTSX=iXoUHPuq-f_!>NTd$r7CQJNB*UKxTYRz-_z}a)mQO; zcVK<$?+4W-cwj+p_?eZ8$iGN6rzcm*zTDj zaW(qZxvj;>W0iTi@P&`kXRE&XhIxHaf63qTVrx#4=iNcPWXp0gk8(gyvRqRW&Mrx4 z+Q<2*B5T&_a%{ADITHGJ1))iVQkqgBG6?6Qqvm*Y?~4TWdFYhm08sxC?lyxbLlaVe@*qzQy`NK{ku~w}|#vwC>jnn<3}1zqRSb86~e3?O5coyotgSNg%M% zXX$i`_qo6+3Vc{vkehk7j{m|=P}U1q;@uy40MEwu0ad%gtxjZEfzySFyCTTQYjR|u zbt*>ZJ8hh58Wyd95>7BX@v+FSSVYnty4*(W%0#TpdS!DfPo|0p+-+t(<`S|lPl)e-A63ZoIipS|3ImKS{*=%U?n|aZ z#^xsOj}oPNQ%Aq@R0pp_VZX9|YZi&u#mW!}Gs4XpV?o-HA6@tKix!@bgU!T#=r$%M z98a2xF2CN%e}@3JlD&V72ol&D2|bD@DAo|DNlWp7WagMbKY$~w=)E89%^jLdwYD?vv2F;hl$|v%uPRqlC*81PsT`SuU zHQ>^`cXwWgY}Sh@1w1JcN<)$!%jC{0Uw~cl>D1XHoDN$iWT*3mGMdj)=@&?57yFAJ z%@fB~i;wXAMibUoQYX#ZxAIc&7;t%B-G5C0hk<*GlhT36kaL^5#%-AeDu++xMeyC~ zU1aop5D$o_d4m`}eRom*IunQ|j5@Mb(YXb?=qvYwp(1dUa~2L6XjrL3%zW6)T{c6_W|LnHpI$__ZV%(Q#tZxDSyMwdXhykO_6K)0W%nZ)5*zymE&m zkgj9Yi}9&bwKXVeG(OW`qo}kEy1y6)VG-aNwYm=#V#itltK}i`e+SKXoo#Ok@zf<0 zyt7Jx7whBT>@`%79Lea$^-jB% zsWZkCMeU~-tPh4rzd*vDS7Y=OY4D)o5ysh!bU9GYa76lD$KioeRG)>^n!I7u==o=u zR7sm^T6WxirIK8Glo6SPB>^J+VyYNdc1q)tB8NQ69NI@wd(aA`2?8|ggaR>!4oWs{ zS^v#9l7f5^mw%>i&mq^vQ|e@GNgy>qcz3!^?SJVb>KvQ6Q(c7%(X z;+)*T=Fi9SgNzB0GA-Z3LPj-xvbk`h3GpWfpz$f9VAq)R`aqu(>r0jFi~h=~N&*C2 z5$$;A&}0Pl?(=HPE?B()J(qYQpdtiQ8V>#l&$a1`#(|{uK&VPJ_s7XiEz}%pJ(Vq( zjYJXqyj|Ele#84ux1Y(~Di1s|Oz`&GoX$E#Q&9W?i?-$b$?}NQFS&iHZ0Bx@R&qYU zyY>ZAJrp{r1Zuo%zAxQUY0nwEu#M5z;+#(THSA3~4 zT08Ko8~2mO>h(_GV#NMNVY-8k@?AIwcMQ~ps1$uT&WND7^Pnf9ZuaZpej6PqC1!fC zgJy$metO+AMl%09#dQ`+WypD3*Wh#B4zzHXqJL z8Ku4e=44L0CDSnZ0E;JomcOk}Z<+iLrwhtD_;1XtFu&{w0(J@}!He28)6jpi_?74Z z!-*BBUmMQi6l6i9B?I*S_i^Ra0S7$fPr(I!aCT$ex@g-ZD2mjlUvC)Bkvv<*$wzzF z#Oo8ZMVS-}N6s7X8%~=F=dFx8!OM-C;S4F3Jb2DX1~U^GHk2Hy!$0|wZ^hnJRSZ|P z%_dHo&Uy93M~svBx2RoJSIhY@ru|p#V~1Y8_N|ga>`w6z1WUJEMJyPupmhL+XaNhp3e3*2iW4dp`*_r1Coz6i)Z2e8CU3r zEG482b-V*5F_f;QMhBjA)UN+PD z9Ye7U)x>yXZOyU6Sih{G6PCCl3kC9gR;R1~J-M0jLP$*cZPZ0cueA(jJni9H^6iIj z@dZ&vV{#(r3+L3#Kg#npq_p=YZ>89IrN3{?YtBw8eVDOE9q<)b8mO8^3ac8 z?e1y`aa_V`wdW0*wQ|o66k6+RipG|6D=(l5s@pTS$XRHLxUj1E6c4RuEiS#jAdEp0 z;%Vmt-}0daeU6ObvS0{oErtu5YPv|>dZS5=5$wD9i2CVFf68;L{yJMWn#eY)qBsdV zeFF_oHo6tMA#;kQA)=)7KZwIz{IxhN0_l(T8%%UtX&x`@ZJG9=(92Mu@eYSq7) zQo}lz@!E+h=vxeFXP8|86o8Y$w=1$ZT5d`a4?`;R|1n&;qf*P$+!wDC%wZ(Qz2X<&Af*eqdv{)KKoD5t zwf10*$;kKKI?K6I{EavNKXDKa5?^#ytU3bqHdHRsKJ@v|PjviE>y8v|i_3$ep-6%S zp~iK{Q?@gr+{GYRQ5IK!Ht*-{mxZF1GW3AMMki}!aV@2)_vqDG;@)Ji{vvLlo4I-O zaPg=U6g8n$&pJ8f78N6XXrPhM%2&-7?qKNKxM#EK7Xjh~>{oVP=M&=O@0B;W>2gk6 zmB-Q_rm4lfJ@t+$BKlsd2MX3+brFMxgM7ksT}&;IH}lU~4C~pk188i?#pm3j8I)Ta z_ii!gViNp0#k$-V3uF$aT%K$M2}tei=s6t;M0cxl!wf)&mF>0Y;ln}am;|Tvf;NVz zf-4^DL7VL^_PK+D3K>sV4ZkL)-F%JR>Gn|6Bp6=|xOYDbGUsPsWMhvx^U(4=O6~;0 z*b9}o1f)O52&;ff%vpZ24DPCJ*`V&~)~^rnI{$-(K{qZVR=m~)M@fBN&>Ij3IWm?8 z5ju8SYBdHd+MaRqngzfjl(MHyz1MSiYWFqMwZd~Y^UO%)l28U4E{8c3u42Rmxw$n+ zcAuewmJ3|w_3j{I-G#)U!<_^yYjp+3+5_c)*~`CM?*bTD2^!CFT^N> zY@YA6Hxf|i9g0nxNCJ>}s|lh-p7M;0KW!L-*XOo-!P0M;-6VEUTmw>ziK3=X z28cJ!9uicc>#K-dAAj!nT`K40lO`*oe}C^R8xq5eD<#}~uUD=hV*ybsx+gX8EK4cr zJ$}3EPwsw>`c`}d{1pVC(%<{J#`hN_n|I`Faccr^l*-6-u)$09KjRRuWMF*LzXUKY zIv~5+0$nBH-J*unQX7{Xb`UE?mdE3|iIAtI2qJs^#1R35syLLd3oP9QvRcC=1IM$P zszVx7`*2$qzkShSiFKk118pp+T@+rb7+2lMw{rpL5Syz|&JHGIzQnTS{wiPfZ`bf) zUQB$8r{9bqN?(FfTK=zJn{Ss)t8s^dRw8oma&~55WK_I+zeBHafIO8)g(GAX>N}jv za?+ty_@6ZYdE(Cps+YHT<=!jl<7u>BybezFQbFI`75?xX^RyX*tD&B*oi40F&$ zgjDZiXWN1CIc#&@Qa%21UHI{>KX4d3v=_e&rOzg7fX1iZ^5p?hy4Op88Hn=znU}@_ z(lpaez(Ggi!r~MACZLx6%Y|np-T+9NaE*~~T@B+);M&KKwIb^fb}cbbDQhmfoy6hF ze=LW_h4yQ>%lYxUefN6VU7{Wo3fux|+eRh43*Y9^%nK&y{)N6P4Lm3PVd7OH`>L zl9G&7@#IrgEC6WG$&zQwgVLcI?{yod*_MtZAMY>re zY{`}F-2Y8xW#hARw0}SH92A6-X$C(uzTcV&6=O!Cit7tp3cDN(kjwt0xpb(H`$M+_ zR-b=&&9HxxSLJ_5HB#z~2m6~x-&5EhRMe=Vv6z^(r}WHU4*s4RzBHLf?{jU7cX5!y zb@Q7ecVbyqUSx1;f1t@qm_aQ{Eu_9Tt=b*r=NbFD;u$ZcBFS%jRr8*Ci>U&9Rkt#$ zfS33izKslTtH4wyK#J9W@23Pnm86**1do5t ztg~GV^z17HavK0f5a){9en;wVMI)@PV^J@B{1WigET_jQ=;fDjlcA{Xn|w{?qN<|0 z!NM2oV@woJSiB?)bo2CaUIyFI2{LLz7rc>5Zj5*!sU`39E{mK7-&X~Nx9E326TN-!3WRHO~UR0n?4?g|wpk6=C*b*Zjhh?_<=9}zC`=Iwy^?+|qv-u`@d6?0{GN=V7 z!Va(`J{<5r)H{#MzWBQJ%yiwaO)fbGdj~~LHe27eAPso~^FIxxT@qb!)BQyHo=3Oj zG*6z!ck*{KU;ds!^f*H(4NbIIsjH+~eeoeM-D13#EQ~3XK^F)Rb&JcUmN;0v%Hb5y zF>1XgaSpuFo|>1aQRIog#PZ91dm~b=n(Qqnh~y2@ zJ;_MHXSThs?1T*;Un$t7uRgC=r+6U!E>{cU)W7D2A;^c|a`Ldy&(4-F8%(pTc0}g% zK&-i5na+E*&PpV&KZZeD5RY>h0hirfO6#}}$O@-6Hsk}wt{X2jrWS$#1uAE{`pr})4f!*$vvwCsA-bH)q| zapBca@H|F<2r^Q$7uX7IYP0|2K=BOIo2y(UPo-m{c!G`A0cn!1YWT9i^EY+w6%)KA zgQX}keoHf>=k+*K#VVpFc*6c1q6vrj-%zU({eneo(Ej?-*auEs6BdwucHubu(z(u=zLL@Q0OwTKl#`J42Y?} zamWY)TJP52J%6xhHI%1Ka9fP48urdcED#jm%`zu z)T7kypZx;QPx9HEH#41CeBUx7;9ZhQQn=*!HfvUzCk3w!lbhxc1rTvny>5-&_v@-@ zR1(OQ9Xwj8oZ_KIl-yj8RFg3ha-)275|D58*N8pS(RG#(-0ViyG`hy`zh uxLPb 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

      #l(C_Dzimp8QGJ~ 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

      IVioe4>@2I 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 literal 0 HcmV?d00001 diff --git a/head/images/nft_token_balance.png b/head/images/nft_token_balance.png new file mode 100644 index 0000000000000000000000000000000000000000..70e08cb43b809331b5bf9bfbd89a47cdc36b81a4 GIT binary patch literal 658549 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�RKrJv1T!eD#$b68BNSZejQ|PkMLw8 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%0AV`4DBpw?+W9H*65Ga17)?FwGCyXJepfL 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 z zt;k$V#FnXR!UM7qku zP&P`~anQc-{iRO)dJ_BcWPujx! za7>kc@?$FYeRMpp$-n6%gJof+shF57M9!F@)Z-AI>4;r(_!0%Tqvve*;-eVN3;plL z5BF;q@iH^u7vF&^{GDfPgwqlpzaw<9wP0jJ_3v2{~aOkc821N~~?7 z$u;UY@34_K1!Rf4<7in^oUgdTL1yNyX^B|-*sOI-@9nK5ej?Pdb%&tcc*re%JEd+e zP+$0Etg+;!_Ed)3t?}`YARC@$tUL!jg_5^wVIO$f-*6jggV74q-W?Ssg;80TZu6TR zi}(fa8(4BoSGZh~itUlVLDgv9+X-Tt^i_xq^ye-nMSywvsmoX5Tm z@3h!qL2ZC_oBHPFxK&w+PZicoSHW7Sou5rAM6GNwe9zA|Ex@hR6(pthO~OURoGa1lKx9IC$y@^@@mc zgMmY)819MN^$}|ZbTnFvvR$Z*3xUb{qJ3LU$8}Svq5$O*rKG84A}y`cN(uw zzFPchbAZ3ubel|9JZ-$_K$a}LWn!^0DeXBcyj?YsTS2hs#`VuB6LBfxKe zgW2JurV81t3BNNk>7uEsgQ`N63VBQcC0qzJHgFfngIh%Z5caixVmL7c(yi$f`PIc$ z{jq8nH*jLVnn*$gZP+Bqw)>imbk=i)r@W1o0BT4YE~I4(eC9fJYvkK5_(KsCNq9}# zmfhL?(J#L={hEb+MxeBvbQ`GiHch=uX}N0tL?dUA@>4*>55>e#I84nlM$mhex*k`5l_6zZFmzrJ4&xks3q7^A`afpN0y6F~UMq zD!Rug|F@&hoPKZg83~MCtHER*Omaq*0_DTm>o#1|zEa{vQwJ90fU*!`^vg|1VSu^e z*Bsl{k2=^z3WpGBQ^F+;LwW;%R_hD-nUrvAEn#0mT7XT{V}MFa*!oD{+s_gwx-LAT z`?KFEKauooDm`R^A?k&KvpOuu(6P~SX7UATD{LI-kL>Fh!K1(!J28k5Syaaxb?5UWLgpotO&Nnd z%`(j60OAfM2LG)V;o!HszdaEMqpkgMz4y?{TZqOpLbC+QS>`X2U!X!qyVnHUFK=C% zHllk&ruJdRDfO3Yu5Vh8+|L) z%}-m&G!y(S+i<=gTAXxmt#DR{Ip8_$N2M`El1|!sPlV|^b?La}zz;9<0!~-P0MWip z>yUvC^dW&pb}2bI(Vue`0J?dbvn?#Zqnh*^=kd3ID20(XL;+h7?=^Pr-7f=gi%wI+ zcUCitPlT8iXF6UF^$H{LoXDNLypj2jV+E6^%kmDi@uo$V@Kt0%EhlZ}u}I%?NDN8BhvK09aO5jnJ3Pw*IJBKBGgCOF!w4_&e(DPps1Y>7K94 z@=C28Zr4`zBx7CCcrQ~7k0f7lI*q3 zqIQdpbPUZE-44tUwuFancyv<8NwH1vXpwNtQLz!PQA>&P)*bFRcWyZ&`fgXARm3=d zSL;vIjm45IIS+|2C1XZ7U^BzdiJJ)H%v9*I zdkTNu&Nv5qZM*=uYjYnSGN_VwIE17qvyy1;mb>HN4F zoAgmk7xwEOm#P%H^60P+0j-_nN$%E#y>KxfaU5osCSkcLD3HA*84hm=zbRGVA}0P4 z%QPNz!`bD*iA!tWARPnB0BZ-j*UA$=UcCLsx&Bigs*M?mJBZA``@y57HiHYNSq6&y z7r{GZQ2PEo~PW%F8(O9lGU#CU}Tnc`Cbh4q9;Gllo`O{xPqyo}%19q;V& z)F_T*>_J8c8A{$sk2#G7Nr=*^irMEDEw;u0%NsUHD*qgAk>|hU7FAdFH*o@$S!sJn z`@i;^d*FRe-JV5SRHUQEGJZS=w3rw=jF*Scf#>E|3c~NEqWlcA)0l7s`Qi+=!sal^+ImsZT$fH71q z1&SsBB`!f#$*JIS%LlP%taq>II~#XSylTJKusY7guFm*yUu)dK*7Ps|P^nMkJ>_D$ z_U*+-+&=MKIm&OEv(NB>@&(;_d?-lQ`4TZ}F06jY7(q;3J7#I9ZSYfRAHfcGE$bDQ zTRxDPSJh+{kfVoVPej2)!Jd5yZI|*v)9(v2+i>Jak&uNjSv!yggnwRcVh}LcK61FS z%zYqDXp%JfVyZ6Qn?QDEi|obRyt54VECReIR+W9GpZrH8%{?Q!{xN`RzF z*3kjy^*j{-eDZ*!*jbiMa+492qspA$2`*CY%>ctjRWgl;uEX8b=+z~=de5#uQ)(4; zAXE?MV13!uk&Iz#gAxV6szVJ07(S{hR8kvoymk8sHd$S`Q#*upvT84Z{7% zi?);co^{Qq4I(FF!;|UxqvV<17*hT%{QTviV1YI(b+?NwJLc~AL@lTyB|ycl!Fsj!RoBa*djZai zW@L$*2r$S4t<>A82U!IQNSQq$ux6h$Emuu%@o5ORFL}_&krY6dM#poJ;#^$tME^6+ zPb^Rl1e}i1F7sK`<;Uw}&_)SYV9BT()2Mxy6yJ=+WEzmJsX1s^=_H|y@fSBeN+kV6 zDvxB@x>Y>l6d5f}UoT98bmKyfq{D`}F(qqVNyFjU2=)=npckPP$<>I*jBMA(-XzQf zLpPWx<#u7w1nK#CpK?DwnfI`tDUkt?IlR%;N_?PlVGg-$u|b_dsQ!YMudlsX?U^Jz zT6eNHDH}#J0h1hen5LBm$;~HVFYl855#X6?FW%mw^lolfjS^+jo^`B$4KB(8yN%fd z7uo*}T*Uq>xQH^-3neMRB!Bx_)s%WxVopC60Xv|gT2)f>MoNIBf9BtUix!h7QZ6lh zK#suY(V&PYt9{8KFYPUXKZN8HU(tlTlxeuPlcSB#JB%c`)1tm&WQgwAPa=DUT!+{g zj_jcKE7Sqphod*ROOJI_t0d}M;zBzY1D1R+6ChJ8yZ8YQJF&e+7zZ&4t(=S7sS*!a z4QvHUqDOMNLH?Vx@5-7w(!tA?!4DTQ>|!%GgPhWYY@2Jz%1>byH%OG2wt&1g6+K!lo+fqszOhivEiG5!bw1%{Drx#BmFiNO$m7#SK1bq zR2RppyHXIZX zdVP9PK^19o`VI*q+D>#6nGWM-pmPv`Ue6af*rmm7i!>Ivfs70$>W2&oyQ(kkm}_9; zVF+FG99E*71dgeh2@Vwrh2g%#%$f{ab#;Y?rK|c4$VUQJ7k6vXe%$mLht;?R=u2?L z!e8Rnq}|;9ourd_Exuk?f_QK<)Mh%s&hY!_=L~OFq@Yba?Cd!6uEvBGUyUYwzy-*o zRyoU_SoH*5@rwXVQ;DdT(KlICE7HoOp}A+f3(qL;d=0b>bHX@q-Kk>x14;Ua241gR zdYLC_ykA6RAQ5#&@#np6kzg~Wd|PdsPR$svBR}ZwOVW7>2w|Guxob@A(T4DE-_efc z!HG6}RC7Cje}(7{6fr^}h~+4la_D=a%yiXkrdYIlf`J-Qsra;1gp2`!!}O|9!+>Lh zxcb$@4r{jgsqH>wwykHi)rgd5yDW9g?&jm^=D;aS@pjLTH}4`E4`(Apq+cXaT}>tS zVJf!#(Ud!gSffYpaVf1%!%Yn^aRM4nE>a^N(GRl|KptL3EQDsyz2=;h56=Jx=sC@LWaqiWGzUA$2gp;B#%6E*D#O(cHUa+70`ZH;l&vh>>w#@0 z-8jrOJ|9@SbkN6V$~_s(F}}S*1hzm#0>n=?-0|1!GZi8Xu5AA4_YbT)7ad|HHOr>> zCGrJ&goV2n84A?%7v^8PBxajL3fusaQ&t^piDQnjzJhMhaw_8OWA%MMI`c7Z@JgN` zqs|U&?Io4rF&zb`Z1NH!J_z)q zU!xL=0uFGBrWfD-qUKcnk7T{|@CvsiKKaL;w?U@)7D`=grljd0A2XGQhW5NvSS{9Jx@eXs& zb>3uPxg~9qm(sVgk++$he7@cj}@8J(>R`39qOk+0bVr?lf>I{p@~HXLDw`GBY@cON;7E>khE#I-7L zvn*7;r28+s#aT(x5dn3ZJ^=NKkZ3~bl(H*$Y^%e9P3A}TVqa*ZuH0C=yRqd`!CjYr z!!;Uvzm46OrEfMdG~sXGzau;^9%}!@k}beY@bBweo{^;VSle7{h%3k>-(3SBVnr3m zK0k7I|1j&i@*AatzMS{42Nj)#N=PX#?p*og{j!)uK4JfJjP>jE$u?gxW{9o#Hj~5C zo~GUIfq^a}KI*YmpyU>p;p1RKuSmhf@P{^t9%?4?hU5a?x^YYw|L{RE;ZyV(=)aV` zR1L6NpB|gd=rb@_ya6tHiQovaQhnY+LgXdVyZEagZ4GzaIY7B<5J~xot_6YS#46G0y!Z~-w1r>; zN+{YfAbu27IJ~Hae>)+YMM&KDZW&172uA%)EEDtsR!1+hf=8Mw= zBf-r-4ImkQ+!B4F8Qamcsy*9->Rrbror1qcqQ$cKRKt^ZAdx>mIwA4wrr?AlSQ6!r ziaT>tDT7sKQT`tscXsP4zWP>(~KC4Z6h<>euy3!MX2C<7F?=KZ3d%E6TVbzn95p}Ep`Oc4-R)`UtdPh9A z#5&cvG$O8_A@uGM3~kllZX5=?_EbM!zr}$JquDQbtp7CMl@n|tRDTiXnZ7Ewc}d+8 z7#{DW-3vwNM?6OfIm^OyBc6F<-j^lS#ZE6L<0hEbhM-e%iw=RvJhH}Ps+H;iT?Lc- zkDoiauOt(G#TH@z6WF5q--0dL_<7hOAT;kn%YMZcnS#OM>|l#joxPIILV?iJ9@qZ_ zw#ew;Vv7#{K5S9lU$I5-3u=vkx;rcK*F}d2Vf+TfM+5n?v=wQ~(zMi&m*QwW0dYMS zpV>7Q=opjUPBfgPB8f$fnVjAm;1Vt=wT8X+%Sdq_!VGdP=6i0`e|j|v+oY3+E#F}? z{NVU-CCMfxoBD7c@a4;KbVZh5yQ<6B=y?jQIj6WB7oA0iMZRqJ`s-YA^OmmD~w&FN*v(-j=_DiuE)vXx`HscWQT} zuehM9gJQ&^J(Ou_o<$D|JzX7a_>Dx(6O!+s$QEaZv2{&@OV>y35`?aII3g%rPn7Jj zcfUp4f7y`moYMlb5Jv7I+9sMBJawujis+@*fs4B2PN$R@4n(#uuyJImfP1YYH#D%{ zG8>qIB&}MW?ix>4|Lj#QJ%1|e!-SApp!4ofTqfsQ{M3D>*7FI&^~a!YbZ$-_xD{v2 zd!7_&5MdG~D>d$JkA+RTh?|#$8p-99TU?5*TpqpO#my$=pjB4*R2d-e&2))LMt->I z^=Cg7iRWj5)2zZ4jr9V|H$gsC!C$K6@7QiQyp^$? zmV)w0PPwF}HPz{0ME%bNsyOZ~;qQEyHHS~b?@T4p{b1>?RUbm`)q2lN?sZAxGB~bW z*Zxga4_AkSj=)j6p`AABCd;Sq!Va8Hvkip*{9eB9xa+-^T4U1F#Dl*K@u->b=jUKH za}TtpCdK&y8?8*RuPT+^<5)ZB8xUAgMBC|WC~dm}YuHb-K38zt*`#ME$yuKuZw{T2 z4RvARILRLscZNj&g}L{K#+_*sr=B4$`Hx^u-^Mk%vI$mZ) z+q~Cm?(4+ty*&n6(`vy5M?Fko~pCfk_T(^!GVL019#W?&%L|W@2nz-0Fn?27dr(3ItXEJ=ZbaO z=IQukiy7IYH7*+CjL2tp)3sKTu7HEB^{+I&_hKzYxDR!18@d-e`^oOG!_$s93Pr*G zPR*;Ox1`VLZkT;xzGZ@t9~sPN>0A_7PQx^1TM4o(hrLdkXQ@f5tkVkzz@Vr#I9UuLM}h^)30lP{`QucuuWB3(+Y3bZ-JhwedI{hTeo8-? zsN++lvSNoO!T+HD&Sl?wr7hjCnQa2qZO>j)h6^>s0ftimtE3zpj*a#Sg7EhwO4WzC z19oZkAb%U5rS-yE%&j|H<|58u4jIKMjuN-7vt*Av&VZwA2Hn}wijgL0_8M_E0Pocq z_OfaWYc84%Fe>LRyp`x@Ajz^eM{SijA2&{g&U`;=w_(^KYrSO@d?GExon)8E4^L%0 zDF!-jUR$_1MIoVmM?r^cLD=pi7|nRU?Pj)3o8wk)5#+zG%BbqYbk+P|^Kle^`8Z!D ztN__3Yz`HyS+CUov`DrBT=QRkBFBGDicVFz*J>7sJCid%#hp?9z_>H}e~dfRkNzLy z&T@Zm+!+xVUFmSy z`yNJ(r-!jXxb#Y+?0gtp&mqf5h=^Vy3R08%+xzcpi%qLp@){W{n=&@3!vS^{@Gy5A zcyj84H$g!S21=o*W9J+rCLj_Kh#)A^a2|o|8DrU1UbyP@(_r>WN@q!E*tWx$zCH?l zp00NYVL4!_|1{FxJ;e-_Z@JBTWje}F$SH-$z~m0`)aVVwBi|}Ls=cbbNQa_lckqSF z?o`Bw0)l9H-xii0c|~KoYzRyjDZARHzgyT!j~b>M_yhdaX5{Cp%!}x5GoEZ6ur{1G zmj~8{@~EKOT-yb&5*rcbnJ=j|5oXZyb)Kr_j?zmY#Kg%O zJY^+-9A|kF7`%(!i@|si5i@_~98a_=-b3UaOW<6~{duM9u(yJdwiT%n zIaWlATXhG4F!YO)2}D~WO`tQFE?gILu#dPYQa02>mJ6u#zvC7W)h{RoD&c43XC6>0 zS5Upm6-3AojOO=UQ@i+;cH9@6FC7$WW3wwU)2%w52@}&s$CFp|g8XhIh+W!t2?e*b zTY8_K;&E-93Qa1oq_K@;kGxtG_%G>B=>ZTp81EROe#0&6|MdBvsot8b>DD>oBq{ zfwcXY{{7r;pUUX|yrc@4K)0-xxnp9w-JLtL7jg^w6lErIOj2f}!8VZwkRJBuFV_F` zYp@VV_*hX7BEMT#z-}C!shn$n81aW{yPlUwg^J?)gLT7 zShFm}-@4gaqE3i%vCJx0MIF6Zmwh6{MLST-v?^f#G*E*$S5-M=L8gfB>nbPs3Rm^oIIUT_=(fAHeh6dq|<5t z029Itvx5SHmjpYeSBDw{cv04p4f<(IQ_{xk_XKrnnK{ba?7ET%^z5$~Q$F~Zu+o2O zEwPV2mPgXtR=71c119!~wI)0tNgjPt_PWGvdW*-)U9i*w8!r*tPTgBW;UTo3;tZjv z=Yp)6|N6+@x32%{#N`6;{Sn}2d@u2PY$Y{X_~r8;y*#mSWcp_Q0*hZ+07aLpMe#$u zX1^3W1xE8EUfBTEGc%`muAL0$Z)U9DCfeetEedbRavk2BeUhVtCd}mBagur4P@MEX z94#7nT)1V~@E-N4)b5FjPQ$EXdRUbHAWAJ!I#jC^D;073AN|JG?dr>F1F(&)#&2*QTx~Q4c4%m@Kmg@aj~jiu zFL=xvw|2SP!tbwETq?ah@G7##wvE%j1!GPYV)4wqeuRm~>G<$nd(A7>CiEB*`!@hJo{xC)b&XzenFHm_d0jR<2mw zipkr0sLAG@_0)ph!?^2e3$yMr*!V+9e4~3aho1f*dZ96pgFMwBP_Lz z;?APgwBtyWne6mwvY1KQ#EGFEtAljA;f9OgR_~k?;mSUdb|^Z(6#5jzdi{zpv=3#| z9Y@#R+kNgg#>4$Le#2LkN)cFAtLE0#!8b|lc&qvU(in62_TZRcZjnkjwu(>T=<28f56Y~yi6}xxcfzhmztfF_*mPSciE*$GE`jaVFy~Av!I5Omv~4VXylw+kRn3VU?FcO1;Tr+3VrhQ&^PTCJ1+oq@$A&#wZ!tM)ld`;RFtFna;3j+rDo^SH1#zlSDw+) z-t2)u!*2@rm9+=SdBj^0{TB9VS@h)akMYYw++i8fF!to?fjrVGZ$dDs5eY%4J3EHR zO<1}*FSf_$U41+9sM)4VCO{4*NSIN|JKF{e=25nY9#IXL{we+ z`TDR^$g0lp+l(qbWFuY&W*DgoFZ>fj^e2Ys|5XgpzZuW|x2r2Ai6!|HJ@gM=SnF?8 z5raHPQB{V~yg$)H|19DAhmgTP(L?`Ckjqp_88ZprcknF@|3nY1n)i2IKZt|edp^7s z;SphDzW@k4|3nY{^UI_9*8bs${u4d)ckj`nJ3$QHaK>>JridTK9QCBm=^x8-#; z-OeOefpN8;p+)=_1YF_nQ{y0St8FJmZK7;2-W1to({(d2XO(5(xBL5TZU|%4ctdH1I53f7%SS=S0Sy1CCprf$ zp2`_GnO8SzGOx8G30VQ;_g_P7KRV3@C1d?g3CK-@Ux=Kv^*`>v+kgK$m!&XsVx0}) ztJhkaDQ?BM-BgIDF-lJRCN443;s}s4z75OVYeyjN%s(M z@>$HOLLp)5+YFPWO(MBuN@z1vRDKq|wlZyHuJ?g5wZYZs!#4Z_z>1$ru?GQU@Q0Q( z^dqZ_H#M$rq7@?SyUR${;;GG0_`&9?reVLtQ~3CdHe4-K2y@omm%1@-lW$?jph;qZ zWo^Guv*+8h3Vl@=IudY+3%07{eNGExUE3di+SV2^jCQ6+(e(blqWq^1^6yTuP&-wv zS%WxhWrJMs-*VH?1^+rXjfx8Xx8S1e{{dWdhyKTbi+U@>J;dnJ@$t;tf1&cs2D2H+ zX8Y>mpajuKhnTfiG4y|1fK>8(1xSi6Ky4&Qc$^sGjD-@a3e}yp+|TJzkQ-~HI&rqI zj=y3ZeWOTo*Jk|(3n`_xWA?u=JTunemW4S2P3+8Fl)jwV7k^iu)PJ3S`gpMWWm1}{ z+#!(Ko9CI9#PbSdU_j1T2ku1zDPMyKwyV@k?SLcA?b#*rwDDwkM4KvkIJ9mzht>A% z+V z_f7F{T@e9$98mX(658G9nsXQAfbQeVDU-NDwY*p;M3t<2?z9i=P#pq?)`)gdkRI`ITEVDDBJxoKkX)%`6uZML{YV3G{{Na=G^(8Jnkk@^wnZtY z`Xovj{T0B+EAnQ==t!8SVW3Jyp9w1`f)p3MMJ7L3ugqFvPD6C2Pc-&Aq0$aE_Qjnz zd;GEn!5mcvf;^WHf!xRANqV&cZ?Q1Lx!;cwMVsEiC*|8TM^$%mIs zXY3${+#ybVEyfVPSvuW1Gx~?+rj1hmfZR0r1^ayT`EX)xPv__8k6M3&{^*a)O_MRe zA@m34rb$6=TE3i!|BvLR!4HJ9$*6NaH^2DyHOoCIj6yPf@k%s$ALkwo8>o`WXgglr z>cNc*iqBld)AeXTEx9h(apqaW5DSFNN?U06YEy&Xw2c@PfVeWzJ!V6E9zyQ5n`%Jb z*tquQ!-;66g8oP8k61+fe3<=DhL@LMJLBr@|~ zh_`@on@Y>RYPa7fL?LZB+n07bBAL|0*CXzMRoGm!Kn|w`c5`lZzgKMko<_$Ws8kGg z0r?I8{)Qj!xcPELiXv+x)(NtXj1`;W&ooy%6 z0GeYe>u!`jY(azZ3pl8y#WwawD)Rw3$NS!Q8dskjhP ztv9(y(R3y$BH03fmeIwRmDd;elrdL-&DA@k7ctKu1omeB{3A`?A~rO^c280@l||7;LRYjV#M;qOYqaPSZ+kN^xZZ za(uRg9sU?nMZ=-%5y&k7J_@>#t@atKtQxq;)K*|^5OCOUi>YV3-93$aTz!JD)~4a5 zl`r2lRh_^-Lq6&VN7%`tfK-r&R0}fO#WqkT$TF*ffT;w}t6w+|&y(F`=B2 zE;#suF}wj5tWgkI8FG;7X|J_o7Z-}ClniI>z_-zK&=%#ec9A2g<{@U#cRXZkB4cySk?vg*Hp5jcJ%kU`-W_W@23z#t z@bVj5n@t9CV~bux5%?5WFb=B08HVV=s#@9CTh-#SfP$~cJK%wmkyeBb3)hl}D3Et}^TMl(ffNQPxeVR^x5jVViz7K?A2XogAm`h8PSS|+vs zaX%^_F%=KlgoNY0UW=Ki=araRD+}Q6|L&XmJgMN*WD2cdPS zL~1>JyPdC*AdabIci*{wzTRdB@Gn&?8j0$=8kKvnO>}D%GTnGi-8@Pv5Ir@gSQmOc zlYE$~&*?1Mfq%S5@I7j2?6p+^Nr=g(dtLF@%#2KahSRDOXLq)cHYRwLStjA=$KL&!9I6(z z&*&7r&#nGCTl-mUszESa`!}y1xWND0J6QwfSr~p+Ge?_1o|v+S&bhY1$J;ay(}NQW z)~jV-Gy3e{+VPU-l+7pE0rRZpZysgmqIa4VZ>i4|tz<`^v(GaWKxZg|P383J4E~=iJPm+&m#N^Hjv04d+wwlqr<8TLgMrhgg~woYz+ zM`WCCflDLl>x(lr-Rq}+_8_+e_jFN(r z?l!yu8{ZLgHCi((B7crP>v#J5(Pw|}{AkYJe;0QKa+*Qh8S`HecgBjlM}dBgxHFOj z#GN%yf7}@e{FXPwYD0V!ymU?68Npi%G8<`H^lhfLO^ks{%&USoQ|vzQgp0v|LS{9b>N$i;>?k*^Bb2q{jNO|BVTkJ*^`ONsDxP<>k(GCA@}rcDP( z6Bud4PWB>sCd4M?!y98Ay&TIeL9X&CA^PvwY3D_4zVqfAXIp$h~YanIzg5N;Y$n!){$js*Xm)iFh+WMebv&55pGH!Mo0`$2BnLUTvu?9|2WNx8j&cWLFqzzFGQtGtF zg_wG121*StB99YqOTEWmX|6V19dDbnT!x$~xEj0190I?B7p7;Xu-r9yA18gRsHZ7h zexZ|cpgd-|EPOrSG=n_ho*dTBC)F74iI$|$kpzkJ z*3^h<(w4oj54hR_iJP-ZYqy8DsC)MItJM*f^M10gcMS<{+0J>TJO&$?ZE1gXLY%rDs50>dH-4$!IZ9C)1FJ8@G$@%mgwbMLU=c<;; zl19__#O1QH5fvuE2DOZ)RFe<-L0B7^_#H8$7)Qlq88!?wGIyhQUe%ZII=TyktkIa@ z$&;@LDTEv%Ui^L(! z8?_;5oZ@xdv;}^E{G1oBtU)j(HlI-Ue*`XS{X%dNM5XASf}y=n)k6s1UsxBSIXUxz zAMLp&C;m$s)Gg=aL%Eu@E7cSDtBB0_*)ehFOLX#M6EmLExXnbSPDg&4u;|@Y%k8=m z<8A|a3?ll`Qa5RJb7-9Ob_{Y4E3%1d{-Mhw9fn*m)Z>+A*;(782%wf19x4t1JpFIG zg|uaird48u6+zTNa()R9GSr*xJby(!)7b2})A#-BidJvim9W>NNM*RZQtJ*>C(j=F zGmreBZsc{U*$1$9dmVvca!J)c^oP`3BA&h+#rklAWe1n!M0d%k%$T_G{N@EEf{{+o zfdu8~@8BXhZtvFs7pWG_bLrPaQ9=BY<0sd)``T``ygV4&JAa8!!>jIO&hKzxDv6gL>8(=6GSl(!2>}?sbAx{s%r$vw?;D zJGkgGvN`NakH^%te$$L69cLuGFeyaFW5_N{bzs0!V>$RhdBq~>y64zi3jrq z!L0C=!Tb(8nsP*Z01`?cMbGHnCTdHZgx|@s=N!sf zkkPEjvA#x=MOrzS`@=mS;suUGZZ!xzNh53D_kO$m#%8QJ*``z_UPJ~6+Q`Yv@-PfB zGOH|7Au!%j8y!&w(tghao-BO(G*B{T%({W@i4^LFJ0s@!{RKKFxBfY!_oxWl)n9J( zQ<9Lsy%}1H3;rNvupSCeM1-4gfH~2eNPL{0``|#8ewB>+?BHvs!j)_TQ3Eft$X&ZS zZ?WyDAB{Z}?7xRa!XQ{Bh(gcFlIP9-Noh}SM4ihTU&1JEn%tT)2iEi_$=^}0q;?E7EAMIrwK zxagp)>#Ko_Aazk{WhxL=A%4;LUe6d$2dBAr#T__aA!Vb0vVlN8B;znz;@<`wS}(wo#K*$V`xKA{>=RH@+VTs6DL@s2}8M`@F50@-zwH^T77Es z)OyUM%+0F8ke#c2Bz`ObE3EEM%S(zedHNT7O3~ThSpfem2IF^z(a2vJ zM%?LQ7Ug8q?VM2Z7lzgg4* z`xQ?gYFT=@B^*OJ*z)S*VpAlQ|184@FA+?^5UPpRX=fNAaN*;Hn9mF&By%hL#fwiy zvyb)P>%IAId{4c!rG_8LcSuO`K#?HYrtgzLmgnWjsu+BQNrmYtCwJd(`qnw&rnB1I&;rjI zyR^KmKNO^Xbl1+y%@Ab}KfE-tpr*l?`e~L4EwFM~aF?zsK+4bkpwq9rftl%EKkU=p zk$~2|x7ySEE)_b0qC{R9zj;!d^)1I;voib4FxoV&45I|tXND20M)vJY9@ruN|I9E_ zfm>WHPXNi?7(|wurq=HwIrLHh0y^u(-7n-}^+LxMt_N?rGE(kTBfo-uzV}7_(XDR| z(-rmIYsva>aYILrohokM@$J%HKhaH%l%bc2T(H~WQ^|wdz6xP8Kv0%Q=Mof)Wz>AF zk=`eEBd?JySsmj12Y9*NqyCd9nIAD2Cdqw&4q2poOtb6ke|dOFIdLaG(?vW{ zi3%AQFFZ}d`B4|wiC>^CW-kzS;6}C016SxF95Fje;8 zn}g4cab{t+B~#0euJBSDzJaEE3h8O4u^#IFB%|t$y4xNHIT@{r=IG|#gQeQ(8F+hP zIvLXa{h^wJe!q2tjT&G~X&=heuavhDSC{IuJ@3`bJoqC?I;zG2)yG$fK2tKSdqW&o zZ)-Z!sEot?;1V@M8Xf?19BfE2PB<-RHoY~d*2LF3Lu(Z+ydyZwHf=$H`%7U*T9t~o7;B6-^AnHGr zKfYIZEWyM)Q_K{nm=O13)XwfgnM<0Pd%b#06-&WgjhFU0T zpZq=gjHVuEt-JjX3S^ef(vAh-Fl|ZFsk?r^J<~(i)Pem0;BMit_WdMs%wS*Vow4=T zEV>NpSJ`R9O$}d|L(!GI_)R)`g+4Gl9c-nT>{Fv)Z(0|SF1iI{5gSL!?vfTR#*!gKNvD*@XddRWhzyy~9;XbH0<}nR(tuFb*Un(Z6Dhxw`uc;i&qMmqKB`@gH z{!Ua&R#~n^dlhYlk596Xl9U}uSwiL%RwGEOWY?7**Nh)^H4mP^urD5ATZ=jO?W2EG zW#zP8)7$==m5Ko<;|k%2PBKN_r;*2O#b0p}-k5ty+xT+og>~C>>lBuFtwryLh$|dy zeKp)K(qKuD!&@Y86{5#Yv9ve@BI?{1y^#=|1}n;qeBb$2a#?Y>!JkpS)C1_Ed-As6>M; zx@!3eGm8*vIS?{FW9Y~rTUdA>`L4cAm^|zu8H;Q>$t=Z%ncmg?RVA!Xr@0r_>I+GQnl=Pe zf2|xNV9j7yTdy40G-ou%X!-WmP5r~cS-ef_6vDRL4lo*Wdkgg)?4!GywKzwQIrFf$ zt<#r4<5eALcIAkBBy62&Ym^tF&L$$^!KFK<2FMO=0SXh_BIFz^OYVnLJDq zy}8>NYc@KZjTv|#ypmo>nDbzQBmWf=;TtTb$F9bqmHV34p=v~p5`==&3?V3V{Eq&| zGxdcpGq5$g1IH=Gz)Yk@39|CkweE9Faf@-+!`E5X?WhwZT>yX5e&V~tO@VQ@K3?>O z$?zA*HQd87d80n808z8<$#2rh24lNh>cNsBODl$V;aik8xuq9EaO3cZ*eexx4R_LYpujv8mIqW zIoL^=4S5H|Lme%$w?IkcuMUYTw1Dn37ljR?TuFmfJqpXDY(JYw8^M4-(U+?p)$D{` z(OBDuEA|Z&!TUaNuAMUKbKC#q3Gm{L5VHQ!nVOU4-cetC$_m*w!=|6H{eqlJMU9$^ zNMAMj?B*iG3PoYb>Y|ig^gAMRyu6`p(RYqrHW1?;t@apRAAZ&|nDw@6a7S&6_jZ#u z8#L)xewGwNZeDhjt0d&XW|6F5WPX6G&9A(0b8OSr6T&+AVvpPhS;9B6)X|=3^*2HN z{dKc=7XS<#K0O0R2Eb($55g(xgl_Chq1s!=PU>9>s1- zay@|`-?UmL*AfJrfZp3D0fG$yR|ji9Vehh+?F)#ql3xq`pW3cXW#LB-L4t}!=0r#? zr#{~&(lUWdrbSS?NYaGy62!XYO8d2g`olBLc1VmqIsjula?8Xs1*3Egp{}{c{+0d0 zp)i{%QmBx$D4w^HygB-rx(#6;#f(^^jeYS(`^GZ|heHHG zEzee3kiegi#6$RrbgFM-h+yS^yg$!!9ZBD5=OdYAes25iv=dCN_$Y)$0RC92+EYI**2)(j|H4T z4!z{L((0gJB%;xsVUct4bc;LwAsyq=S^o{Uh+G#9mMDFG3ojb61-${i1)IWQg5Xae ztLTe2!#0!`?0UDMfYY(k=ZY6T$iA?j zPMX*u;imVS6WdJmCytP!n+wY;lm(2E&6T+$s`xdERW>Wi_reoMTMlk{cZ)bM*sxa?GIJ?(((tg=0PWq^x}XMhbd&INHxDRiIUxJbA- zxO?7;-0cRWP2KL){*#vvgjMh77m>nk0P}UoeE(HA&z)t1uFDV(sA7$WMqOee_sW)A z4@_jr%);Q0;g$s3i8T^=kBXDf-VzqEHPkg%k zY;DoI+SS{V4_MW{RNyQrx5Y=X1B*m2A9SZpku~t(`_h+Ak2FP4hNhioeqlQwF6J@B zw0ekgP8LXRK!crh98Gv*4kz)!`JWxxVPhqK>C4sQwvX+1Q>!RH$1bi=GW5576nRx9^i;zzgN7Cj@+c7z{Uo!VbC*wL?; z(Qxg28fJ$qH9~#IWa0P_V<$H3eHLe|yxcC#Vna7_{riKo{U+$d>h871i{VWHLBPQu=4F!pkx>SQe4C8vk6Jw7#k& zQ~D#I#qLQo#5D{U>$Qge>>ISxSeciEOpUcQX101>#o72$b+D<)Xl-TFvSy}&JG6Tz z9%mqKXln{0XLZ*u$BM+O{V2y3eljQdClpMn+F`1^-j;Kp^Yn1p}=n&e|s<%4{q!@bx| z(zOQubK$1~3l@asd(Whd5 zavP{%T2mzuvxr4Eib|tSht06I-XcDp{A{SlXK-g2-fHAHerg5?-!Z z!PbEEJau^Hrk~@MZd#EP`Kf7{;#8d?+#o5lU@h>#J9}6r>9HIW4=JULE3FqP)n2i2 zBpa!z_)%=vurJlVOeP$-CZOJTDe2}@$scgl1&a$G$Qp{?nW-~&U-jCf_7GW8-&0q+y{=tdH+L5X=*?y9mrkpu zZ@&2N;37Uu=MLC2&iNkt;vG0G0^d!mEd^SgE5i*2Y43_%GIWDNW!>@e;Ch*iojlfX zzYpd_rF%v2oLPJKLEy6Bxt~Q_;Bf9vFIu<{(v}g)yRJ8 zvUP(+tCW5X&q^vURZE=V_N2*?EV$@A{rX^byIe=6b9I1E$2s1SxAH#j^BG(}dN>{X zAwG%s_RQN}I@8)pMJXm}>Ls^|Pz8Mh^P zNV-NCe^9)e2H85a9%DbWp|RFrf}UNc0NDLHPGhP+-nReIV?NkRdr!Eu*^R8DU~hV6 zWjUgKwdzW1!unAxoJFq0iwk`^=cR1ob6vAZ?56+x4sGW z%k2=O_yc@=WnisJ3bwK8=jeK!J6nJljbse&AG~5r^oIiSzy9!_VjKQGdPt`3s4l;6L+<~D*}ltk<{ti?qmK&t zkAE$@H(GGIIfeY#?LyAZbNr|)xMp3-;Wx43Sf}-?*ZTuQf`!kby_#=<$WK*-TaO>DZ;5`3L5VvQV*k2|ES?Ky16XU&8E^D3fLkMcn*@F3 z{zS%DE#{V_M^$dJ90|T%-hQwdo4UN)0QsAtIqb1z2<(IR5WOa(GI>o~*SS21!BWP? za+Up|jEr$yDg0b>;+ehCCH1zr21XUao*O@u+LW(_hTO_HWxCqN5l%7a1gmq3mkkGm zmHHHkkfU`|eF>zZ>(R4+2nQgMqZ(n>$QO!8ycD?!x5kAHOc0z3G$bH6b;a}UXG3>_ zJm*d+QdZ;P(0hy0Z=}01$tq~26F#KgMV^tbWjOB$l-qy%lZiVis7@ZA#6?N+{~oyL zHUJl)U1C%}jwNKTBwf*R*0$A4MVm!mSp6V{^ed?jm6;Q=Vk%EtV8c-^B(p~ z&3hDlw8`a~=n(Zcd3BZZRyM8-hsd#idmrAJZnM#`Bg_0(paYh(MyT-cA^Ntes2oW5P;(M&{a zvt?JT^bODrs~wn{S0_x1nSZY?D!PygLq1$~sxIuAla1t|J1HQk`YkFZ+jvJ8M>o1~ zH;Uv-jr)$CCBEr2fnp7L53z$e3OE1fXjk0Fy;r&O_jSHZXl*&Tju_rG4-9le8O@KJ zY`XbD_q(utCc(}U5=K1}w?)+a$j^3g1EnkSfs(ee=vBtgm2W#U!C}kdM~diS~f1sU2p zqqB#%iq9Zs_NJ~_=?u9SyVT!sD&w{p{zK-5G_-a|TWjt8DI1SW8ICdeO&N|?(z!3w zVZg{T0jmG9X`G>Kt<34Yt6`U5MfzI=^2aV z_g2JtDP{NDpT3h1sWV7cmEG&;p{OLE1t3;i@X-M#zH6 zb4#+L7LKe0g)h`7@~|r4&)s3=LOLzvu{L#iDBnYE=V<5~&d#sWwZOh8qX%`-E#+Htf9IGEi&V zE-OpcGTRY3&tYNunB%nqX-mkYjbxKw@3mXVH@kC@V$u^?T=&~@rw9O^3)-7@6Pal8 z-~%qL&13lOYq%sCgQzRfBJ6=gI0~TmFCxEz<<7j~nYMaK$Q3^Qi6LVa$Ezs4^z6>Z zK*Li;wHw)TG9|;=QT7q~h@`#NA5v?)?6rN+85mjeG&XGm6Zc}!vb+Zue1*>s#8>NK z_D@y$(HUcWCzTi^q7(4YK*ew;30yde3)9Cfn&khBxJ8io7wF_^W)T|Y-vJuMjGI0GPqI3GF1(F0onBJ=t7=c8K$F4Bb;;;x^<+a-nntYC9W z#ETF|Idt*S{!4kQIEC1*hWHF_1h(&VtgSf|dMaZ{D2{#B){018=G!rH2+-i! z953#p-0A~X@;uw1yA5!B zoMd7)azN{Xx3lDSYuC)uwJ$Tl>oD4>G)>#i=tV45dg0z@vugIJuP%6&1Y^OkiNFw(uY^j&^=!rTT~CQ zMaEwnTNEv6CuxOv0>F}LRDWPy&%iMAH}#KdXNZz_pM{RkK_{n`mUb<9_+eo}3LpPV zS+L!U%!&3>lHeh>;k#@OPghF4!GeP>A}OxGHbi!vOAm0ir&Xr~C-8?%#rJhmctc77 zPk%hPo4?ylg8v2?2$zHYOWoJ3JqpBYW63(xrWujWv%7c|yy#_uJ%pP7BWzK}7h;Pj zIME1}M5$_zL#UR{L2)%FX9ci&UdaB!lXGr{n2rQ!!pXvN&0SQatM!e}Y(JAd+6Fc; zBx)*zZ1TjzisOBEh5wb+LUwx7?m`IVkVV=UHkH3{e1jG#r%rq=-TPr>?nZQ${`=ZW zOaG@)pp;9)pvrt1mX!9zRUFcWf+SZSAwb0~L0rEaJz!`4&9&tl`NB)6j2e_wXX)lzk_ssFR6R9mJ)#z zxJ*@u(#cvn{T`_X$Gbbr%bWD3Vt>aL^$>P_4Q!D@e?XEtPbG_Mu!MT~EdM)hrH+HWxijfXAohMsp-Z!OisKPp-qy zQd5|L0Hq1zPGmJJn!+dv_2}d!NutubhaBdQ&NPdt43x1QAN6N-Ul%aqMN#_C5UbeS z{G{wU8MV+U=kD5m^cafmPKu?CpC3F%AmY5%o7W4aOM&?_qMG&E9c2V?J$p~MY5$M=qd)Zif0%O5 z-Gz_fzXp0y<-&}`84EKOX`y0>R8|m?b>Xq&8?v4m>7DTP!DbYpn4o zzX;4q^BoHQ#I>I7w+iy;avb)pULm$>v;FYB{lhgR`-I%)`!3Odz>K4*asoRv9mn>7 zk9!0&BVT#$rODsRU?T2lD^gUC^miAf4<#B6%+7WR8Kx&;1yEXT^qXd6atLfgb^87N z=p5)q^mua(ZNJm|N|(+gSi28t zp04M^6LWV#eM@5hhY9w78h;q-XwsR+Jv!WJi_dFnq6En(iz1a5TC>m?>B~^#A7xs8 z&?0A5t|T{tZD0{vVHCGj5N_nWM^IrzkZu285k?;W1H#Bf*7ns9Mikssw}fO8h?5!t zyA>!HKR0BW(cc%2)G9j4cs8ypX z^fY!J4V7ao6o%q>PTn1QX1(!u5sOy%nOxWdcbtz8itQ!-noF~@ks1jzhJoSCf&!Np zHkw!<;IEf4Up~}e(`=5)lej4_QM64kMl1ILXFnPJRCWrA@P?>@%|$6rP5!lIoC5Pyj1nX*9N6Rw#b@^kOPq0hGsY*fE zVLIb+CKt_BQiI>-+6r=Ph9ip+i>|6uN_U>iq#i2j3;wUT0E`XA|>N9w}|o;xkXNY2i#b>pYXPnNs zv?pfNfByoNsF*Y}Z^U6EfK#@+)Aiw@kN$X7b7-N>RNTIk?omRhOnkB~twh^%1iF2U z=~#3A@`+zRa{H$`H_ql|IojVX;`=TO{QW9Od2U$+oeBGE4QeG z_L*A*R*17^^1ur5|7UK|5D5DfG}FvCvMK6t6+#_yhOpqgS^&&^-^P9+(cm2EnM0G5 zHA4U$RhYvj6ttKG58v1jq1}F=&L1Bq~iLdvi$kZ)&?BuCw8js>VlK zIaUK6^P6{{PMQ$}h^jL@7d$%}>&-QbU6L?h(&%Mn>5q@*q`q`|V-}m@q({%S0hsZ9 zkh}Rk0X6Xhg{jqWfk9;hW3y1&;me)c0lf};gtij9r>b)?V6#XC=5eQU7n*+kJ!I(1 z0#U$sW1_K7V)I$7FUdap@DF64A>SOF$iK*5^7z-QkzN;#igBEY8O4Sjz>H2ZWH8BE zW68WX{G!-O8E19y$Dxe-<+wS}r?*SJHoARug~ZxX>8PEQFv{B~GOy*}$PL(|p4}$7 zhd%0;xL|DvD)8cuRsl$^-YDY0k!c$?GRc61bSB6gKgH;zculDVfcqV81_ID>zBh$r z%umZ0Z`yvgYmt?^vfZ)!_MoBDB{Ry$0CQ&MuWjW{@%su%hL*(}^0VNQ0Dz$?8@WCD zu<}K@k96JfXItUvWcw3hw&MbSZPjs+bu-QwhAtCm7%Wgi%0zuMNsj`6n^CYzv0^45zf4mj5v)<&)zT{YeMYh|BdDK#@mChK*!UA7fC4P-kn$N3dS z!K*+Bn{F)cIne_1Y)wOTn`81RaUkH<-n65_cyg~iQG^k#hBD>*pR+1 zti@(D*adTvpnsb?SiQ=Ja28W{XrtKx!RE?(!ZD~@c<@g82Adyu1t!A}+5^icTQQ#>Facau@k1CJT8i@nV}^@D~U zQi{s;BXT0AoPw{@knc|g8LMC{ z%Rd^Xd->VRl|RpFdl_x&`DvNS7}%jejN;KCMK}5Aw4nAr+>pk0oS^ zgTjXOmjpYH=B3Jpc?oo!pYnF2xnw=&I(Z81KTo}QUR!YChFx#%@7PVw**1*(P3xPS zTXc5xu2jCsovB^Y!Xx|@hpCPW-=uU3hJ{oQreK7rwMx=evW&VPg|<>0IZ`KKkXCaN zn)fwAdwg)iB?#O19;!%nzgRaMQ&a(aq~Xqv%>iwGWwlc{o8~^c;-Ad*3I}wy?kb2=&f;2-;M085LvXBz&)KY=5L5%q@X(JP)?3c| z0g%YF)ZGn)s<>q^G!9genkcI?|1`Mh&EEkRC2PP%H!VMrXHhmS7v_hbn|K@&BxAgX zp70HjxlHCqh1(C5oje4$z5Z_AdO`%7>IY>Ey$q}iuWl8;F2c%9&2KvRC6uSzC_pCK z$NOoMYoUnl-I82PPqc)atG#B|XNio)yhr#_iHw-fwDxW4w3cAb@zT>52J2stY+ZQu z-ieH$FdJlO#$tQ~k3KAfiB@xUi$!BY_m}wPz{5>78H{cTx=Io^BN~hno5*TvkaDGy zwg_ZfZ%m-z8JPfl?NSKs7Vl=_EcU>Hijh}x(7KKpS2$U&o_E5lDzeyOJt!`*27WC- z7VWyITdThZXSE<-`@+IA%_kEpBb)pN0R#O}RMcZy1n1qz%M|Qnt97tPL<5z9nB^f4 zjxHtISyal09CYho_*UVY#iI&YHAE$p5fQ4m5(~``b{=Rug1=N_1+SjF3v5v|C3O!z zYD7&T>&~2q{tL;p=i95~Byv=akwuw8YEo*FxWf3s#v@GEI#TaCvQ4`YubNr@Q6a2P zd(J(ng}V_#1JOfEDw}aun|}1I_lCEYFAo*3{qS4G&m#xX5sn0LX3tG?b5slK#u7zY zeXbkhM9;1=`{g~5r*t2TcB;=WvB@hoi4S{Qv zL?6}q?0~oPl0n%H4%=X5ku}0?;M2iGpG4b;kJ-0m>M_9-q(>^Njx#8~qO<_BqWR}@ z39!#F@co)uk&?Cn{PK_L{olo)e;B2WebR(dej>e_jB=lAouCl~M1 z`w76DEoP|#Gu~^M7#B2Ii|+Nu|IyLw-}?A8RD^LJqfie+QLv}@^9dCT0^{Isj@m||R35^!7nTRuhi>vdf3SE?b)|yzszdP!3Z;_rWKw(2Y z-AcM$DixC_new=VOl*W=lNr=q{671jB_Xk=bg)&JJb)8)i<2?YDX}JjtXR#<(9Gg6V5r-%bY{n*#bs7 z+FRK$a2wWR+j5X$m8%~r)GrQ8RU_4tBh|3a*=H}cra${k({IcYVE+}_XXyBQK<97` zrJ^4}MwOnG%?vd^)w(4wi>$x7+Admr)^5?fxYe?u5@I#nvh}4waop;LwxqKWGXWvY zFe#-#CuCx^@TGCLSD9SIEKzYXYKuxe(K2D1iVx^u9MSY=pOK;`_9vZU4**S5}WZnF=uOkn9-bl4x-FrdJ!2ur+6N6PX3iqJ3mqgG31*C@v$>YnUAkHlVI(Fh z&nAQl#kq&@snFbtIsvylYW#Q^IclT#d$Uw#IgK5h|6)cF^2 zi;~tTtfrS+wC}InqDrtlHe1b(g*s}x0p&Es7QDv37(;xneOxYIl2?w#_pP|23ODfj zL9t*U>!S9`xHYf2jk@t#FJV4#PuTc|{cvx@MxVGtd+H(^y)&Bp6QjyFrK$S&vXHf2 z*cY$-cQ-=a%RNNWw3R8{MSu(s^#NMQ$f|^W*~BV3wj~voYgehxcLwsjJBIt}Ud^|O z_QNM+YCqJbvKD}Tzs@kmXs_}Z{stPRa>N_8U)qbgyjj*vJoYc=szgAXfnI}GZ!Mg*EG8iE3{`Fz*Fu~h1mBHn z^W3H52eYo<>1wrHc-gsY0eENYu*|`YoY$YU3?pvXK-wTfW zK{;S;Yeva57cEI;)&!(=;;Bp&QT`gEWhET{6@=EKHkl8*TZ}+ zDd5-VhIDsHvb6+o&vvFJc#Tr!uD zfb`kWozOb>7jBe;D$K*_O1vH&=0$~}?CgZ`P)4g-L7>PcseU9Sw}FU|&z&~9lN5ZW zw__p+H~R-cqguiF>ewPAz!pKjI<^Rlu8EZK8i-61JL+ep0`WeRY(TfXjDl!BeGVA#tLW>?2p+1oHfR7uV*~ z&jaQcpQse%?p@bt(&a*=hQU(J1vBjr6~WK5cFIOfpa_Hbys8bUFn{=?%Wa~X!nNfU zS?+t#%a7z|^^6v^=)jn@hK#eLeq#gNY|wvALFyD^s+S4ch-IHEYDcj7sGEktV!LLr zIBG6#{6E4Lk-ijL)NIYdOJs!r7~fCadghorI5`!XX~(9|we%Nl>JiF`zRxOQa2E+S z2OVB$ab}~j_+8QlX$MX=zS-DzpGVK)s-y=ejA3>0`epL*!o}J12-wO6I*5=l7oMkf zWk*9=RDg){dS!RIYx41GW;*(jENtJp{cfTJ@4KEVo9yM4IjUSP20mrt-|p1X?>i&^ zNR0GQ&MIl#5n%6eoEwl7@P@&1FpMM|x&fh}sL0c8x~Ux6(` zeJyN}I&Q`#aE7MtRMlu&`asR(KJg15uxETesvLA3i)Zq%%oS%gEQ}pnukUru9lLyY z3oL`zlJg=yqVS_XYWzZV^$T$R5hJh2buwS~(aN{PQ<7?Dg_XaK4RS?+Roj^1yX&d^ z6qtM4Wh+_nB`0Br(8{(&*n56XSA9m> z;Z(BL`@LciR=|w8!EbRd;gdhSW-5cbBb73+3R1rM9a{v^sH&$0TlBfJ2SECpK<>~T z%D&TE^w>Wmaahn0WY@l6Z3}T}PRb*d9m89&0_GTKpAOZkoQK$c+J4-Lw+fZHv~MtE z;)ZKI$uM+$Py2#=geOsI!Q<2)_1|B8d#zJ+l$AQT+cD4>m4#O{w8bUKixWx^i`?*T zhjuQgj;dNYxXU7#d*DV>)bc?+?Y5F!uV(uBklPUPH$odU`FPVRs$T+wmieg_ClP|= zSn=J`gvz)*gDo7Z*bfvRHW& zKvd;>?dJ!d&wIW$=!})LU11=Rn$301QAD;1=b4c*%5Y-qLc2qTJMW{OQhlk7ceUYbGN~NPP1%;8$^I`=C01%8il2eWPM5X!2t30NMF%n z5NC8M)bwhBA7`Fe$=cntfJ8?#+ z@y4is$S>v4tE01YCQk=(b7aCxM^gvYhO1S|1TrO3q!eF9ctP)7C!7gmUl|}o64IbO zIv%m#U06DhsCB`VllYx56@AupHHe2lMHQJ>tevt#yEz<&6)u^R^e5At;K-mGi}$4izo+ zha587y$&{OkC-h!l~@H}ezh18b@SBNU@|(oRu(6Vrqd5%>LO)~tV2an8$LC;Cgs(0 z7}*`A4h4RsC`EHQ5LMX#QI+GuENEGSMh3yLGX35zV6 zEBz)<8v?J9jxaHl>Yg#MfHt{+T!g+)22jO}|=l5Bg}ooBrZS4}SvSO=kE-aP;S8u;Eb?XI7) zeIy5Yy;~t@7?tav#Tve{v6Rq{chinA{<7S=OV|<6VVYi4XD9dgXQR(ZVAT3D6=Ztg z#z)lx_5JDVHoP;wQ%8#@UFQI$q88NT$u($k&_?4m9EY}EJ?vbSbC~>Xa*Vby?KQ}{ zhlu#ult{ZpqWP%J-|P74###eFbvS4W&R zc7J0tHSv_R0Y2`hJ>~d`yJ+-4o?`imB^AShR9WjiMZnx=6G3DMshXbQTdHexDk5Ow z>aX>ylP;y1P-Mf$J3JwKYU<8fL@Fs!~sC-d%BD`0ko9tBsEWPAQo%1hHK*#qag2_kM11gx&!xPc%%y zbMZn%^jz1A=$d4f0n_oSzJAj2v#B1m-00!$?99iUSLn4xjcYlUXtb6!C*v+GUwdkJ zRqBn#6n>x<7(I0Q12Z)1r$$^=zkAxtB0V7Dlww?(=d^b`-ur6)J zPpK3qM#2tx{s(VLOGg5gw4bR^j9@PbO44Y0&zmwP9ZG+hNXbT5?}xo|IuQ!r`xF-e zK;*g=^#;Yx-l-7)x_NLAti)=j1m6Xs8#ijk(bHmq{x@zBni4GnIMh+HZl4x&j@F!& zF|RtdTsIa7-zP;EBsIrEU!VdNi?Pv#)o-UB;w*=X{FJiJLW48zV91CUF`Rxp(j0=p zd!;mojvmZ}3qK*n)-RJxdWv{55hKQYb=D_Viz2unh_G259R1TGyxULPemW2Wr>;0` z0((`RBl84g-;a}B|h>K@ky-j zMNKm2-vEm6JsaeKN);ia-=zO%S%S-fiSDmZ1>;7PehP- z9(7&3!jahpiGqnEm4&YDJgL|Qv9wOmz{!{@&&K@ zLA3}NUDb-0NQlB4yybu28-AfY_%pYtPpR=q%SR-@C(Ym7$vJ8kTo)QclcE^m!+oF)v59sCxXnp*d^v$nRr z;C?1|km6OIRzf^b#w~>suA?bjAR>Cq!0(wuaI0T&B5ucJe86~fbV90=u2tMN@t)41 znc^EES)$g+aMK3|MVvH;;AS;oKdQZ1wjEtMu9;Yd!0E?)!5ycEOY5Ktc>w+G*{F@?%zaB;Fk;wu$3%_I947 zY$+GzOW7VUQxan0lh^(JCOipr7dKqFp>k%A^m-!zqc2m;fg-=qYY&+pe}UbK;R2_$ z>OI-78~aln9ReZtoBCDyS4vjLL*KaCZ;rOQVqCD^Zl-=^5jX(O^O`!$PB(<7c9vhjgXh#yCz)6hbwW>Ob|`Ib4oOh{D8bEmZ9Q! z{!Xy|x%1qJ8(!WIPF&vb&cijV3MD|89JKLAbIW(1TKMbiImMI=&;0CBa`)r85B0fB z5G4{W_*DtoCrNM<&FBx$Hct7H5ubU_O=wh_&kcyoAJK@HP4rEXB;$U1viTISr=ZK` zSgOLQWFY+f^-G1H3Wv~jg%y}J2A;1aF`FuX;-0vyK_boD(^-Qa4&2rUf(}HEs7z=EpdVU#11e7{L5G}{{r!i?B z7%NnMKO!JD!W5keD6A(0YMJb(@3I_8$STgrV5*n*Q@s?t(K%9Rgs!Mve9V0+LWC91 z5_JYaYY4GqTLL(X{t+zng@z8WHV8n<2E1nJm*k!K|1)`K`5^D?=f5ZKjHS5vSpbZS z)v}!>r%Y!8;smWI#XOa zb7CjMj`r}1pE3~xP6yF(w@e17qO&=Y)rb7t>$Rm$vc!*+aN)!^{tlLjYv zfR2z8)$(krH&29{PtR)&)Y)YvMUGm+q1EfkW6E0B675Eh#bs1zms?vQ1VuV70akSt z_OXkfABAwC=6h~c?l3fr2j}- z&*c*E=nsZi=pQ*!#;3uIH?Z>iDUtx+IpKC*?}S@Tl^-jcZ;YFHIopsLh#`3m3moQ{ z#lLj;5mi*R_tdp5^XTAR@*xkKyAd>9KGx?V zGLK=n%nGunRXx6&ZzH(BQGo1nQ1(Kf_yAPrYPeQ02T4hFcwB+iHxNnmscQ^|<-7qE ztVmshE1lm|RX^JRhR>Sdyk4X*C0 zx!Eij8i0~%LU0}GyR7YP#okZ9Y&uhEli(bqjdHZT;^Rs}bZLMR<#?@cjP4|Y1Fww{ z)rTGL+&vMUF=xB$!}gLyZA6!9bQE7y2lG4fvgf3Ze?#l(&G9qI$c(lU(r#*WH$HY8 z0dx|gYWbb?X?W@$qYCTA_5F*R&%id-wKl|@+H=jyXmD9%6=YGh%2o3Em!yT=hnCzA zu9|2yrrSnN3}VoS5p8x^AA%zV$KL9!VaCCwfk#M{-oUgyQQrWWFVnMQ5ayu1&`Wd7 zYxC`yiWdnCu+nc67m}taUWx%V=v70#mx&Cuo7{C* zK@!&beqW;G@(n$dtn>{%r21Fb)i?Cee}L`$B}DKWdgw2Lp?~?~8+zzJQCI2d0blGHw@AL4>3gl{pcaO zylt@7h#I?*mig{?-Q_numu(#Ipq&nEN+uQiKHu?ldvM|cLyc2dm|JME0&eC3z1{yA%lT30lzfS}Rt8lOyHI&m-H ze1>Z5#<*vJi0&#}L$Yuc3B~KWHfAy#w`5yzoep$K7b8bu+1n2ke!oV1;jF|LPOcUJ zTdC4va@F9)tV_GE;64rg7E#@iuwKIG5E=7b@7+pL(#IvI=;H4l(-BD2ZX5Hv(;(sf zeS4vHYznN|pW}r=WiTtu2EQjlaIt*{@b=UW5--l9iZSLivn6WCnR4C|BcKAOaN92! zKO+6Wu!&PrW9-MnPw)RecQL)jy8;#VpgXKB#A%LQC$du>!fS-_I~(2T5@wfP`(ZN* z`R5Qp`H8p>Vs=4#rG}kN&`eOnY#_$&<|822^&)BKdq+oQ`e0wUk|uGSZVn6^J16sy z=_W7u?iPS#tokY{QG!X1Xqx*rNzR?H1fp+CTH@v3h;JT+SwAOgHgHeb;~gjnZ3DaOQ5OM_~h8{+577oGtRi_P6cMeZ4bBQ zB8*_mT7SW`Z)jwpYBM*3a7&}((C7ya`~eCkn(rNAlsme3HQViJi%DXigj>r2-PcYWm@71-24c(x z)UKdTnFl7Lt$D4|(W(kqtSAsM`OCTJvQBo=OdWGOCS$Ib?f7v=toiAr7yF}2QB=dN z_!QweL%w`wfH+0o*Ds98QFLqZx?hD#Tx>#$;eL7>uSv)7nZQy+Cc4^hkq?d6t!|Rf z$jo6idXJPfmzXwgR9WKGyis$MfbB@VJBnAop8&rQ8zBwYXT#KZX$z2+2MCgJGvhX` zebMslZnC#%Ikr6;5qFtbH5~QhpjK?_m_PP7q@pgPXYu)i8$LdR0JhvqiG;_wYTh{# zQ01484tQbzv_{FXD~VQS#b$?P%#o;;obk7K7)Bsq>M`eBVE(ltHp3$>sA`gWPtWAQ z19hB7%DE2ZqFnSOw_$1!E8jBwt|8^?3XoECpd_IHc-sNfiNzU87)q=27}LoW>23b7 zd*gtf`KOC@2ks{#9ZG80?Kloo!#&j1Vq$Yets=|&$!DkHV;T-urAI%)Aw*F`lpv_@ z(wc&ajtyZxnJ`>*Ms#Y{O!~RcC!tX`V`*nC$#GmFWZ6JYe3&v-T7Gga{6yrXgPIkn zm!7+t9u=FU$ofk}GfQ^3h5ACOfjo{+G!TS9ur{mn%Ic{Tt-BVNCVoDnDc0X^!GBVF zB%}&e01rV61vVoS{P<`9Q4uo$xj-hROUdR63CY*cU%x6&3jah79mL#NAjskjowZ-X z)8Ey4aLGdyIGu-;U+Xlv;$sohdq=H+=w|8+20i1E;^2ot-7+hQKdE4)A>PgCQH|mW zxnaJK^QbPAr@rK1ey=O08X^HWS)&x!IwvcC{NQZ(JAc{uY5ej5@8OL<+<~8Yy9hTR z-3dK;8@_VkUC5+hBs@CP{d&}*D@L#zq}1y@`p*xCk6PjfcEoY^U!&oSw-Ty@GYj{l z9xzn-UAcCm;$M<*9wE_@jBBMEr%d9vlI8s9sllDOs1GY?XO$!s4&dtA^QBjp>OEgF zQaVhf!NrEvbl+uAy~*#BmuIz-TC&g>_mw5_!m<4)bS1+%lF7=gL8C(n=6S?yBxK@@ ziTczPBTL!OVRo*D1tPI^r6Fqt+6mp`Z&H(MWG zI=OSIjQ1g*m@8m~5~5yNsTm+dR1cjZpn$9ug`G5})%r(*aBC=yzQQ3nhWMD(=Alx3 zH|7D>hEFMaCmoYe1VxU*Eu~7Or>G+H(2JMyA9^`L3{$AIL$dT^6efk#VxzWvex;$K z@^Ff6K~9gshtJi6O!MteEr~?ym$_5|7Gu^jm6cnUSb2izZJ)ovm8u%voL7I1SR6_4 zpQ`k>G<8=I#_8PevX;*(3=d%B54{w98u%Ts@jwu<=nI30FL@A*J>Ln+ycCD^zzcaO z;c|o8hvo3gL${xCt$VIaOgkKU!#Kq+4RnA-Ivx)O#4y2~q^x1%R%W>6pADYUNch-Z`-pDrGuu_UL2 z)tb2Q$ztD@5An}n*vj|Hf&Nt@7#xGH%Zh6?glEfP^xAnD$V@=bM29JWAzwuo0Yq)$ z`UVw%P8Ii6(BboPe&o%RXFpjt?&+=E7PBRyW|b+)Y^r)t{N8W0vy0WRI5Fa^%rNzS z?&Lk4NhRaueW_`8_X?X+>7;tb-6>-ebVfy7T;efj8)_T2D#XHHr!*5^598+7n51kCQoYK4__AX$+mL0;$`edG9x7u}EaJCPAMhy` zNLq7O$m?a|qR2X7T}xzvhAGh_dUlw0xv(kSIe_mp-$lsvLoq(St=LzU29+=d=0a6> zL6R2=%yj3&m9&5|vbjrPBwnO267M_zPtLK2+!V57H)zI$Kub+HoJ5ml2`>3X|a z63o{-$mmE*=+h&|Nt^FeC?s!7c(jFBh;Q1A6@rtSEF1pY^he-!n*jQwv42K?Wbj|p z9~GGox&Ns@qWul}BjKb}B^0ZnD|1G+r+v+pjmwrNyak=AGdu!tBma!K`j-Zjbz=4!@ZI zoA-#Ge8VcK5KY8oSgIA{2YN*8aA#ZDPbOC3qJHRh{|_wnYhJHzS+K*@eyii%=~!Hc zJgdSjL?MsD$=a`AkGB(u+Ds-ct1+-3JbjR-mfdr%9notZXoA+_nZw|w(vQ-eQ?-w6 z{9m|}%8?E?vV#J{Tec1`Bx7yh5CZ$q!vumVf1|kCG{AFA^rhA-pn^nlxx?NPaaIMk zc2-UW-0x{mz%FuJ=Lp%o!Q5&jHR*HZmY{5LX=1fmn_cqvUYHkM-X%6og`p|x#mAv` z0e=2R?9h{4TCtL#J~R5s@T;M<(;h7sFQazBlZ0*AqLE*Uj3+nadG$M5oon z+pPug6ab`mu)Mq`w0qr|iujr!6MpyQ;|2~T5JBE@qj+KZw$MH4%?7e~vNuqSu*DQ$ zReST*K;X8b(vd5dPN)q+>P)ffETut5GPqJ8lT-Z=v^A#8jEvAdd-hCnnUSETyb6;zw3FR z=@BwMv;n_Gs|0pPg^>C%C)4?8n}ZDy4Gt_*QrR@jx?CJ6dQ}1s%PgcNZJqFgSy6u^ z$ME~$PqT+%98r$=eKN9^tr!0k^5k<+?{I>%zcjLz(Wuwe2fdYs!rVHSq``#(PC5a8 zMi(Pg)vxH00oujTK2S)WQWTQ1^bYA7`B;IboF*4xkM8^@4G}*r(N{~apCpoK&s-yGf-S@19opTuu(|* zg4LcK|7--&zYQz|PaL?A@w5V%WfhwClFO1+DWisJ-|N_~F!|2o%2t#pP@=4#-=Smq zdsLkwISJb4Kl1xse5W&}CQE4Q$AT~`ip9Y)u{qouCdjYIm|7_s3t}W$f~zT(*{E^G zpjQ%v+t0tc)5omK^f?CDHVz8;k2 zCD%4`ZH<9=>b&~JVfSOw$>EKp;h+J$HotDhd9?E~LFJI^F7-4mT|7N`0tEQLOR|Cb z%h!Y^qA4D3?1JL6^abDLeyv`SrhH8ITn!2|ib4lLfi!6yqgT0M_eS%OA5P=x?R9M| z`=fqoh_W$pmt23YF*JF%6W&blN^kRc9m-Y%T{mXd>H#%vm#`r?f@`kU%j|KnPl=5& z;C6Yeyx-@N6IU%7AiVeI7puu_0^ifWlQ9DtS;Gt4-?r8>Je=|O5{noHy#1UG3V zfueE8eFlvZMxrG?=V*ZnQ8YYpkY+#}980S_s+?mq7{UZlx|u*+(8q#oNrb}ypz=&g zv+$4ydlU}qm}{V_mV9Yd4H$Fugw3J!e)7V{p&|Pk!;}V>?KQvlAnaW)!?r8zxR6l< zE2EHGvhKp_THhAnJhM~9L#dsLbI8bb2Adf^YXpPol4X_+f_N>vmNp<+-ystpi)J$| z4W8yk&>VdD^^Uc5^^oniFixsrKc>eSU$`_pHjKPRgJ(}$@x*%`Gvb1W6*Kg{J%SGKiXrb^^J%JoM51t+J@Ej#a;g3Rn?(qQB4b*_% zci<;&(7C@ctY6ji#d4xAPr3viOMSi6jb2OYV&V+CSL}k@4CQ6V9WQ{rX!Kzgzjjm8 zo8%>ux(bV7rRVCd2DXWt^~A+fGbIsWRS4Pr@*$HgkPD9w@_&Ck@u@z5_2iC&?c@^s z){bg6qdPBqQc!thk~pnqrGWLx7eMZb7~N$#{0w-AU5AXN>T$;Pt~Ya{m5>f;i>ws| z>N>O`W)S^N9oqFRa`@jFeMZe9fao)_H%oudf%jZ}`%Si~%Fk6u%Zv_=mVuP5`lQH| z=;6uF{-hUmN>upD0r0vi6Ag^T7>IIbYe35;W*ag$oLzhnU2DQm#~BkmF(Ug5g8F)E z5CroGQy> z+J5=5+JAGx~NG4AjQ ziWk{R&_zRk*ZCdgtP<+l*WiD@Dh8_18l-?--$x*eWyrVSSl%$KlNGkx8g#MrZ0hN% z+dXWDZ}0X}3Dd>Bmkfs;;t5pxyWYFn7lVfR)&Z*CB=U3It-`wccF;y@I^Gc+eZ-gy z8WxaYKbDU+)RmIxUON-8h6=~?F;!5m<_Ksunu{Hdv|9Bn_Pjp1w>%yQ4s$Plz9cFR zbd#ZQv2oYqHnmS6W}%!>=oa;^{l1anyK$uZ5bFId-A!s?kan$?m2m>5hX>X)mYFn{ z9DY2KYUq$->+ocNA?M)9adQF+NQ*&90!F`H&FD))ae3DC8tF&aD=E`jsIPWgIBjur zr%-8dDOR%btd7O*&0(i_RmH3IQf+v6`^{YB^hkpJS@rV;9VIFQrBl5X*|QH5eKPgp z>5_8MuvpDh@#B-mz8{z^Nr~fg-WD{B`6qF<9L%D(P-@OJ$ZXtZQt}t_nz7d7fhp<6 z(0i>{jn*r5@c}UoS3t;3cFa;a>dj1hJGA`_nZ$$L=IueJoCo!>cpsR1j=#Fs2o zu;k%bem87L+Qu0=Gn80&>^^_9|1-V7_mvx!_IABT`Hz=#idFUoztPzHc-W?`m(@R# zeQCcR1pI`ME^I4PFUpLr%>ew%cW!~lAy&zEJ^6u0V5MdT^ZhWARM@I5aYB!(RpIZb zLpIc8FWnXrn0cbbumnay9{u5VcvVPyyXos{&4R97{PM+5Pa<^H80Ycj7)X9Tdgj_$ z{kgi=wKao%+Ci<}{N?zLek8xiu!KMqP59QFoZ#fTc)TU(i0EJlB*pzJw}`I#hoP87 z&-j8Ef(;AV;`R(UcK#*))!VjBN_*=DUU$7Z7B=nM&v-wO)M1~4tu&4&td}7_UA6ZM zI&L=xoW5usiCXQi$42W;77;3a^@(=+4N=8qNoM#eR&r7(R8! z;F$rD)2nQ&i60BB>Nx{GD!UBv8&jQXV@&7gbuN=P)`@0ZHK(*Uvws#5#eS?EB>9|p zX<^0P1RcDpojG7yejN<)0>1_h$Lro8<`0WLjx+RND0A!EeVw;>T{e@$_O9Xm#YP3SqpAWFn^CQ?%QeXw5>}m)*+5%SIv(}3+Xu=8 zkp1ospC{|lojIg%63U9vB!wMlhu&H$DCAj$G>+Nuy~a_e&;hcj&u)_f!P+JF*(Urn z36g8TTm0HMA8FS4+2pt{Us%W4E@MP?a{5BXkUsb0T&`>_4MN6?L;)BxPQzs57G}H) z(PEBX0uTc~bK_Gy6-Cf)MK6}{g?U3jBU;SCCql)`Z2@ft`gdoao%}F_`$zU!)!&hQ z7AmL1NpbvoP4EgINrC*PIDia*6NLAr&OMBvUQ;u5#DKow>O2=KpZI@*i)b8u(2^FM z9!WjQa;icfW?vy+Hr9Czdxx29N~|E7JDRF8&yB5tN9`3C%>>my3)c_7%tvMm-fNy2Fl8hsuqn)gR4jz*HLH^ z=9t?d3~HmGzOylmkULNdC{}{4{^WBK50QiTvxkXP=Bh8f)tUd0@$%G*-%pf#&$&Oo zGom(`-*AqIbJm=@sBPqde--*jGMk!)PqsfgkU;?>>Erv^v4dT=y}V%tMJ6|%9feIr zd$1C49N(0n>N&F*1pfmzW=^UC$4aKT^$qyzcNMY*1u7N(g%{Z?ke?Hb;?Ht`e-HOR z6Oixh`RU%sORb#{!!hg|Fd|oT;5tOMa|M*n=1oZsR4M6u7nN z>;<8nc4KA@wHs$T@<@_=)Jqbh0T+m|8F~7Q1Dw7-Gfthh6Whtrcf4|Q?csjQNaZzA zBOY{=X~CQ~)8OU2kG||yIf&<8*|k0>MkSz$5=qfC2--L|o*qGP&8CkmkXfl&!ft2@ zsG+`gx+^WpB*ml0VM#AEpAs-Zi8dd~@(vQBg7Hk+;=sosDU`w4+Z^d%&@1rZjB+ql zA+@p@9OwoyOoo*XZvr*ZR~o^BdQn9OBs=QRF(Vu9VZw8EZ>!uMyuLt>7#F6c@^b$* zzTVQJUy7lyNZkCpA5y*Am`!^_-oV_vV3Jg1(=mgCLXnmoL!DdT;8U~e<$iWsw;tv? z(u#W`vn%9Wvm4!)O7^x)&1$?;po2BF04~t+;c=LK8vNFpw6~MFA&pi?uV-7W*}}_x zC#qj87&oNxB8I?n)?Pxj(u&t1ocO(df^Y+*IlWdQevd+LoA5J!&{-88OT8~3;9{hp z?kcnF1S7gm{*$heIn9Oa2}$y1GX0R?Tq)-(50^bnXCl(sF28MG^1IGM$QLgmlz;pacU)QA0@`wG4XRcQi<_aG2;Y=z$ z56?`*w`VggJ2viZTy`*x*;Al5)ep;!o4<|2Z)N$Oi?VcnN^*n+lZJ7z_@~MF)LRZ3 zFHhJ+Xi{j|emqe^X!_27Oj)v_nB#K zgN*Q6Hb>001xhJ*@Y4oV!wSpFtnDEM!_-t(HfGkJ5$>FwX!q<~`Tdog#egSAX)_`F zI_|eiPTzj;WBhUF&gP_xM{8s3vhqr_L4TkRRn`iTh(S0ut0?1p&JzZnAq>+E~e?bPlc?f|6|ex_M_p?g)6J&d&m-6PBc$tORjF-I0CD zfU2wC==fl_Pea+!dsSv(^k{RjF}f-QVk%%B?a)T_aX?S8^;&MZrv-4N!yZZ*WmzzP z55mih0bw5@wQ977qKH^rtY(!{XyEU;f-@Cq5T__UQIpIGe?Jhrmi4|LmK6z&Kc*QF z5k~PZ{v|EATFm?0HjxQ~y;2u28F^U%x<`&XGR5RqxSLvg_4iK(o2h0cK%(x$o*yx5 z`?#HvPKg#Xy5r$wvq1iO+#nQL6|fLtRP08*7Q1%*+B*Oq zUI#>7su#ybe4&tN@FEQ`*we%7{Jfzl!A1863y|Q^OMPAe$&W#g`SBi89wl1W8F(t2 z!Y6vu$eu4_Vi{2$9wlr0xH3clZyt)Bn=~3}(j52|JjJkaiYABs7uJRg7P1A!G?PJ; z^dbJi`~;XB4wnqweKrQ7-+Eb=T|>wOJmkujHztEkQ_1Ha98^wrG^?f*u{t2Lx?I;D z#0X&(ZR9p0lR&tfg=l?`>x@Uw-g0g}Ly4?doK^Dsgt>g@RA~Ac$Uv9@^)xL>niwES z$^T{1cyKpjCGO0x=)fONl9nBZyDUhj(DT>_^rS~QC2-bwJrh=Z9wVD2?wdPFWhI?D z>pH*La|@F4f#6fDIigo?t@EQ7sRk_ma_`~f6Zs_|r*7xelW_S6e6Uu2t&djv2NCt_ zXkCFMSW4sqQJ&=233(sKUijML^}@Z4_riAF%ugWJM4ZJ3jq*MvPT$#pt@oj`jrox6 zIxf|mlYrqCv@9EV^Ko>PAob@SUVoMjj)52eed!ciak!NF>u5qnF;a#S+)GL{5LcLy zvxEBatz>WfwJUJ-B-J0fvtj(DYaKnSua2hidQjBS(33BMN#KXkNPR}X`P=9wS!4Le zM6~*i63zwJvUX${vG@$9S0ZLvzLk*1oU#*=UQiC$SAXhUVOn78`J|HQIftB02D(}^ z!A0_%n&(q~sG>a$hFEhNF`8?@6&4MKVn4qB!Uleffc@YXZzxfqnE3e2%V(`)wA6B@ zEtFiBZy;QD=~2ek>3b{h(#eXNIU0YqKK-)F5qMRl;pA{IB-*U8*Zq3=Welp-D($I* z_u45xz9n2G64_YqTm&yOp#fH&RZuTAv;x^YMg@00zQ(IYEN%vKP$Cykti1+C~O$pD&8End%=u#@(W>MiVQtCN;0h& za-ip>FXT}8GLg~`d6!q*zLE5s$G!$u|sXYZ6kUMA4JQSo*o%ldl;(s z92)=X5_r*jf8o1KF@2uEC&E#D=Jr2;b8~v_ZkZ}-N^^^&7h~%`r99JcYxGgRPboU6 zf)3lyj?0+KMDb=0^>DpMBU)bRg~3=v@41c5mL3EqAG(^DN$;y;WDug`Q;cvfL=EEZ zNk&c;Q)P(8r-(-q2IZ8+`WzAwf#vST2I1ljg(I; z$gb@L;jrBWR^mI`AH6&oQCc8^g|~X!X}xLN1@$`$u}iG9;}K~Dt?HU_N+dthBQHgs zp~Z^_C%24a^7qA^f!hs}JBk0N;?8#dm*URwKQD#|{w3}#{BMXmi=P^lPcyqHIK4f4 z&+c53y9qQtqQCHR1C5VV&W3w~aCSunr46N=o!oe^+-5NT@-}-7(<@uGQp{ka%R0Iq z%0(qIb3?pQgJJqcT3xpNq0nq~8IYwM4>eIAOO)aTrUZ$&92?0pMol8K=s=>TQ7Z1e zkwX9)^AQ#PEi+u3v<$HZZG6A-yB#O?mvhF(aMVi5Iqly_h!J-mn?QpIO~O0M)`^adr4{8-{anbZ28x`mToHcAr+f zOfmqXD-=z$w+`C@)9EX9Va0-CO&ycgKPIg-!20%H23<^e2-ropFO6O<+nZ*lU6qjR z_26BRPFA4}zkj6g8NU!`%| z@FyO$#hO5|Wv= zh(wIC-2s{ukr0~5TY9z#HH;NfKtL6tgnS(;+h+UK#OL5qHczDwUTjm#P}=-<K>B0AuWo>+ zwuPh&Q&-!tvZJf=D_%g85Apc}>I7)DCEO@$jh?Skcg}eXg8j{-SLE%WJ#8GH52G6;ORTTMPPuOky%fS3lAy@;fV6aa5FRuqy472jH@)j%j0 zk3n*=QoP(@%ReiM*+2A26$m~*L2en%T>nGxSpk}{vlAew${!ec{`R;t`hOmGrtw8_ zXEO2f8cUCUT({!Gi}?*)ZT$m!wp{;$xs`|STl`;@Roc%~*8j-@0Ba2X?Vou>(}fD` zY$3j77MZLBKyAFM@ImCfzytb6;$S0;>zJ#4e|m4-^pRf=1iZoF-%ah=XDtmo6X0-N z@d5EsyFwB~PPL;A#6%svsL3-J;^Q_Z0miQv9EBmXM1wc+CC5oIK(L?gpKNOyb&E>a zRRr7#{gnFqfjCM{eXA#l*!g)f#&71=*h>#H;z}of#xrv$IrjINOYNnfUlqQr5=?y< z9=#6K#0$NnuH><^whVsSUeYZcGld-@+q>Ec#ji%s>X|le=7}bHe9f^^MzbL(zy*jL zEL!o1!&LtaxK%@6t8erx7jNwMj`D|V2oy_Tpl|sb@lwa$k(a8oA|n?G3b=@N8CqtQ zz@;z*5Emw-%~-js*s8yAZD}z3;E)X&K?yYUsD#OI5qq@hG^MG8&Zr)Fv&H~`v8o3; zs|vE{((lo`$m_Y}w53v?q0r>tQO4Sv?8d#lF)wD8XWsS1+(NUpeN|#7GSl0V^&@_3 zf#=5Xdz~W1&j4U8Bm(`MlLJX~X1wnmo;arrEpo+26+J>XH^HJirJqcu2Fao^z3)2} zv-<*t?2P`U6}D6?xUrTuOOhd>+~_~*8x}4|d3BrQjUU&8fj|=R`zuq$+elth=zsdzOF<#UepQ2FZXI0R_69h_2ym*BGaL%Du-_aUr zc1Lc4pH!muQLSO6ntRqW&K5ds`VLJiSXD5<@w$MC^`oBRzgP@ut^yX1qe=b0kk)Ih zHXSy`fA+djEnap0p!eO`Cj{FEWU=ei&ziXHES;Z!kR2KBcobwFTKG}h_j**TXKdYw z>z+~Dr^UV@cFkkHDcc#OA9Pap190EG%FyCWARg+o!UJW4*#uTO%z}BP>6gJtNzfSI zo0f&&ikR8qVA7CdJK@$MkqiFD=rekahz+98D3Pv!$rz@W^Y!pSV8}1+hJ@Z>7>$Wk-hnFJr^I>$=o~)<+E1!^n3%{VpZgu=dx@FNiyA*AH7D zWE@m#kN>>+U}giv|6CG2l69R)d#e>05juuxJ?amEzo^}7gcpxT9b>6lDY*=Kkp0-5 zo$kI?axt(e(g7#E-(!!@Gq8aQ{t?LZg)DF&AL7*)dk}nUq(CP|u#`+%S8kS-u8YqL z&#;6(cbBXzMbzuLCYA|Q4G_zzCfW`9aQQ3n*0e8YgXVerfbDQeJjo#OXYU=LrIZ_N zL5(tC@cIZo96jTxK?ZlEJbQPSbIQ375`oneZe9ax3L1|G^04}h?8|od>OX7S$0ax% z7+Rj7eV3fMhS3(CQPEJjOn1Q8UtZ=abJukP(8hw4D%J*ehnA<&B6T&E9`$q*(IXTS zDbP&wC&f(d_CH3;MszlX*M0Pnk!2!cG@OhAX)z5c2NjVYUulZZplF&9_|!gvbV)xL zxWd%;CaS;}8(vNsx-i{9-!toWSwnr`TCM7y*XB0nvR>}JdQ{qZXG6aRp#=NZb^(z-qYg%lg#>pB7CElZ3;9q(8Xw z0?SZ9)0EdJLzd<`dat(DK`gbowe&{cCDo%VsnPFTi6pUV-Bw$*{2xjDY;>z#>$=_g z%rr#jn7fn}4Dqw%Pq+bye6ZG?bBwf+gdz+4R>3Np@aJvP(Y}%?L0|M{Z>!SNsh zrqxg3)K1)Iwpie&t*B2e@!;Q9XVE9?v${x=y%81?ajG2Xhk%U8AVf0WhX;)i$;yRT zOV=@sET`$e9!XHCcCQ3j$${l{ez~n=#c!(i{TsbkdaqtKRS#UywYyz9Me!Vj@bM>t zrmv&^qjOzpC4hf1_gd$}4;}|xv+sznaSlB1ds}O3Q|FvYF)8tnM2XV|KM$h9`x&Xo zE0-bTWudWxH5Kp|$m0fc5?=CSWV+W34hT*GQ;AweXOdI=bqayKdLX)3p||iBYfodY?2wdzI9o5JTo+2o8b#j z*{k|kwiDV!(8TIORmb-|w%mV1=Etx|fz^1zr+UjbWeSmuLqv*T%6sBbv zW<1&357Sfb6)v9u3M;}Ytgx`_D+(BEtAVX75C4h}#`gTbJNs<)N{rJ#vd_-{9oc8I zaw&so2}f~@HKDT4dS6ZYG2{V9g{fI#cqd5E7`;~YJ`o^Ju zgjpay!fLDiCfq`+K!AO%oUL$CVQMf-LltJuKg#O9FE6XXHcf%n3TLw{6^}8Xie0C_ zNMnOxo=smO;my01n;D;9dmJ)GsNGnmx28eAJ!L(ZkX7m-Hr94E;`F+;!lJE2g7+!e z0HhF_t6e|ZKy!m1x}i14?j0x&vxJ8tX3xLF-ofUlUM?Dk4nf^9O`rx#V1PsE(Cr%+bCprwZl7546b7W%;;N)e9nSiQAQ& z1v8lF$mE!+NkQSGIOt^qOC4!E2=Sa208c7tFgGQ9H7y!&;JtZg2|_BPi@-s&XelQC zGQK_a_o4l|)_0sK#U>D@mN8M2}Vlw0(wRmEphSXgiB>=Me)hmuiKcE6q;IZQ6{hC{SEU28nIlL z(Za42_|vs6LLwzHL6~tFc7%>>q#AekyJwlel*b0WGtK*I2PHw&iek^wAi&oDet_4u zuB&m20BV8d_u?JjLc+8)7dx)pP)E}>dhM`cWP8cheTS2dx|hhb*Ht?OzgqhYup78y0Y@{GBvW6=uAuFG^{eg*poyOR?*|v@d_xa?Ll1pJ z4}C)qeM1lZYxdbU^w9tA&;LpM{)^N18+z!^@x>p@^B1K4H}ue72Rw=u`U}V!3|haT zhk%>mFJrKO_s3u9=-<#opvCs@SM0BY!*A%Je>+tDb2oiM5B;B3<^Qpl{)j&Nh93I! zd;81f_63L^kBW#Ywn15KuHK?==%N2`O8w(njiVc3?;jLje`grr?IFp}6OXMEr{`QVAyM9YZfZ8sMVxpO;l&b^j>b|N7Me z_`@e$#UMsh4_KJkN@bqA?Jbb=jZ!tOS>>&kIn5~G+T6V9itS(fQB7|EOOo2+Z*1_x z95E4bLxvj?a^~;SOW0*1P6sN?t}AWu9LaLDp!kl-Am}tQGW1~AbI$UMUD#BA%Q-|? zz(>Z;(9*K>DPxOjo7}Z_-oB>-nZ8em?FF$cgn?UO)j~I@^-qs4gh=DccUz5!0?-R^ z8$T6_&m~3+uN6mPku4e>CaLZ!B*;%zy^eqTZI65esQ(lEFC&Xyw-&J zY?)uWZ5oIG8WbX%FP#Qd3SpY2BaA=f5mEa{tdnM>`dwqgzX*$A&Z=_Cr>y z+|-UTHYR(Dm$)1fKumQVN;gUyQrkIvy>nSgJ_h7p2ZlY6cVvS} zEK*%0AX}9{M?as&fU(gzE{#y_Zb`NZ6yy^j>`aq`>@CK#PN_5Je@k#L?GF$9VHHf1 z=3XNkzS5RTTXw{V9P0F7{#1V!;oWAzUe!e*u~btJ716i^7h4<|sxoT@WY_2(UMoa= zFyu!x6Hni&;T#~wehY`lxeYpDyA%%eucPVr2X;Vd z{G179zN;^kAeFa8>Tdc}3=qy<_qi6l$dpz3kJ5FpSEA~|_Sbc89Y;3JX`mPu%Qo1f z=fuae;JGKvdQcM=QxKCN*SbqLI)kv(;lTAuih=leUJ0Z=Q%&=c9cO#WX9B5%*j~?Q z7G<^nMot%&7pFS6GcTv?xHh*^L)8k#d5rT)K~&R5ey*B&;{Z&_P`YfR@FElE z)fUz2kEs$In#b?=zF~D5kx^j-Hk&O?z${4AvZH*Ugc-o%R+-7C=xF)d4N$CR>B#ZY zKThb)(=$^C6cW+qW-#u5A&>p@VEMCX`b&G@U;ohFr~t}IH9lh6mM)}%%WE&miul(>{U$L zZD*~_yd+O-{LRVQ%)-1l=eh7l)_l?9iIqX3PXCHx>-fgK0X&j;wR^#%Twb%NAr!36 z(y)=Yq($uCfRPV!@D=@r`yUX;pKRH9Dw2O-YOC=n+yst zcyMfv5}7v1RExHov2!{)>^BDNP-lw+U)mVr=$Hvlov>2Aaf(g>qprvoX`aL+w8fJ9 zbwo+rGN|EtsgWT|YkZ;6!MRNz_k&9UwrA#*q^o=zmPDzsduOLQ7G*V$kL2Oi6WN;y z*60>H`e8iteURGCgxxxU%3l4oNPclK`K~R$KCZ#4xSDx8&ox)Cdy*&Tg4ohIFh&C0 zBH^j8&Mg8#yX}BmH2L4bE!yrjQ}K6ji?E`}c`{1&^|?i5ZNB6fxlEcw#|RYMqJhY1 z(`ozR$L~cq&3aPJ1NxP(+zSdInMHjRbj5Gl^(k@FF>VfPJbW^&_0?umJopLmZ0Ik1 zHDX3+3eX6g8!0s3j@NQH^i*VCRM3-=hMqK_V^IDovU~_Hp&$11a{LNk*Tt(U%w2Xc zSJ4W7v3vYobCtJc;Mm<$00R`175nj0_YSMn1l|jnCsgN1I|O-P=dHNmAz$CA3n~`= zC88^Bfg!b`(N#1WKth`gKADYddsO_1mLj28DnjF3`-Qy~z*eLx{O;>%jwWdTU792H ztK_X;S9A3E56ux-A%v*6mrP&ze7^~Bk-Zd9+8s7cj=G^QtRhgt=MGYgo%$~iqzms2tEV5%jw zlz&NZU(|Qsp^8R3qk07dnxybJ_4r1WCB&O->ft={iCF5027w@C(cB23#D|>7tCJRL znRSoHHZoaxBI*+zq8{$9&aR2>erz=W2LDh$1r4zHdP8gvLJ4-OY{+05tPR~~*+M-C z#a;cjP3F=!s)>EC+aTwYnz~eIdC1sd*Rs#Z1PV0KX;``Fpsa%wG;;qoB|hZ=UUII0 zQPJ_s;4m-K!zH|rAQA&mwrJwsK}hZ)0dQMebTLQELcvs?mGD zOxN#iLWMTcL)ea{TtD&EViDt7yaR-rZ!N~l=$3%&I$lPv5po@LUVk-Z78(4XNsZjJ z(2H-RLOi)usHu|yYA zn>p6%`msz)Hk;mHeD2Y_(?M%aZ_p?utRl;LUcW0zkQ+2wjz>n;f6N<1DA+=iNdPQZ zE98pT)hJXoI(opM7W#z-wIKlq_|qVgnPCoLP~k5oa)$hGDjf>WzdjjkK>B`z<(1oc z%iyL}jR(xNubOp(WJM77%^9D#!7o98SV9U z_Z%o)2Gd!FWc280fu7p2XeMt9wV>-JGB?_Sv4+;+#CF!((bX|O&}B8usHWv*PD)qg z_M>L-!2bCbr!$BJ;VuSxii$d0@dBfLp{izDBSvWhxafHU4`nfcIU`YC27Rcv@^!p@ z#E-ai51*ji2&jYG;bc-oS%agRv?=+(kHwwNV#zHVWQTY_>oAK zw*~fF`<*BPRe6ZHv~Vz3efK~gC%dVY@MxeV6ewbt6N z$iCrd7csg5vkQ)?Np5uQx*dHrB;PQzF)38n;VDKER3Gq$?o+bAu1yPdOWeIbB&w8| z`wPuI0$9TGo}&*|9K!h^;|@*+`Io6K?jY%0HU?Vg~XO{6t} z%OQSi;b9hPzj@|oA_Q~q8|@a@CGMGs{ml()A-Dh|1(!16OqbR;;x2jr!?pMkBUG?i z|NP5G5+=9GU}B^-l%#Ec9p)2tH!_qys0$yTGFjBw2UyCa82MgsldbqlSajpodWF%t zM#KvT4r2JSg>MsoipT)*8f%l6-eQf7PO&;%11@pUSjMq_Ie_*xsF;Pro1}p4y~%iriYmm>6dS9 zre!9a5xBTqA={$IyD(JT{?W+s*N>V`vV65|hTVm{CXelp$UV?adrs@ggpfkxDa8V9 z0I-?g^1c+qCl+@-1&7)J5X&G~+P|W1bIponn)w|$2RnyM@U0*+Xwe;S`%P65s8yo6 zC*nd@%Dsq;irkrukwIngm>V2(1mZ>KjZn6i^{5mMBw7ER7(71R)F=R8&Beh$vB}sGt#0qJlCfrGS7TM1&ZS zc}Nff0TKe4^KIMRFa2XDcV*_jv>R*8^!UJqk>VJtX za{1@5MGz2<>L7Sk$W`<<89Vi!oE3-0zEd31-zjE4H-=t{pK>~X^!)Dg`*eJlJ8s9- zIbi?tPIEKWzZkunW{fa}%jrMi)8efU1DU9wFIrL&9d!LM?O{gGvdp{a;HKB(bxci3y8;$A$rE5VS z+tNdy*j>J*1`J>6cf7vZ3$J=+ILxhQQ5#HeYdiK z%QCk1{}x*W`%kb%#%#|&3|pj>je+Dxa_MAW+?~Jri4`H4pJp%j%d@R89yO=`Q4QK~ zc5~EEdX<%JvH-l!tK-#xS|;omFSM48|DUcqYyD^I&Pb>p`2-ud(c!WVsu&kItGFhD zlrZ{x0T^D|L+^0l{R8~6DAwDCge`+^!I?Lg>=Ub7iE4E(LvLp}3I==Q>cd|FY(Sk% z@|CQIuaSw?BYf40^0ka)gExj<(tT9n4g-}(Trx7!e5$bRoT4n*1&nBR6w}K}NJTa| zR*ena0Lz4GM~(8b8oO0LQQu$t!K^}h3R}F1x^}_Om`-lp5YLjddQ4@BPxe}j(VCZT zzdhvChdNdqpZ*-bf^6=0z(1nh@=(0UnP$K#aERr5(N>w0J9#4?R-Ux$hO4?O`evn| zw8_DwkWx?xL$wEY*Mdjid3Rl$CzLQ}?ZmQ9ShHLKocdv2=MS`90J8F^AS39!Lk$e_ zPP0#Yd=OP!|5}Oib91JSHu5-io+0t38x9+xxulq-;9b+3duwSyv zJ1zlaa%4J4CRo!fh`iEN&I@j>!qrmY^J(k+$n9s#uF)(?DaBW}^eikOZ=6SCj~@~~ zO2Otwu*l)l0Rj@!3W}5ZJ(ND<2=@HEl_Xbxu35$Y$|__gO=@^&sogb&`wsygpjnv9 zmcy)5-LdykpUad2pmRts|BYL;dQLhz|H>_5{gqoJohxpU=YP&Ef+SsmYyC^OMX*_J zQPSVJMP75tEfRWt;}$9Aj$4GOKOOov7Qp|+FoIP5M~2b*wX*d8HN%MX&oYc;V-@32 zD6{VTaV*wghg=?!#yG4M0GjPo(~ z_yuekoiLC+;Z+TXzD{0EyjRA%V0e0Fq{&|vqi)rXTzbwikSbw%-XQzNijHnV@kyb7 zWf)b@DZ_~282gQ3B;@=>3IW=Ekn}-S3&ylR70w*@PV#x8p%Q2(7vt0k=Y6(k|NM!KPg8K@z{!E zYbRdL^n@<|iEKa&I+h%iq>@l^uVrBya-N>u=+;o%;$!O}ww(NjZUU|eRmbsgh;6Zb z`8`KExGtYbmbeR#4!ExeJSbt3Q|5XAG}>yfP5RX+TXl4Sq0SGKm}6MQoeeR|DzyQWJ)6dcK1L zG|kA^9z%zh${a_|T{v-?%E_lcEgnN#s@O(0FX_4LSAn1W zB{qYB*^~guYbm(YenB+_k)1$5x@~5( zSw_Rq4hM_07j^dwanStp|)K+>%gA zRrX{Zw>Mg}eN*MK-4t?;=57=lfSXR&K*700@XsuE7zANt*YgF%lyYk^uICd>{ z;nLx$x|cX6bIbS%RsV+&W+p_VW7oTs}NX`#Ui;5?gde4yR>@DP)w!&WS!qn88HS6Q+he}Sy z0{RBQgw#o^WYHoNlU*n%da~u0SD_adFhCd44KTq~e(waAq`aW9&7UHY6j;w`OPPw`EwLaoC^fM-;^-)hVgG-BuQU_F&m9vucb_~4sG zW)IjcD&_!t8Cr9zB$U@Pk7;dfFleJP9;d%{PqWRyC^CD*#ze+%CAG7GblhkhFx1zw z-?YgUGvPXdx^JDa%2)!W+e*_&#wl=R#(=~rS&xH&bIz^8$@A?Z1R1GEVddPMLUBN@ ze}4dR1=w>W*sP>E5Z>&Zyb$J4%Qg29=|p4nnS5#5`f|1RRpKC>!w?mN-ZYj@xbPOE z33tE5duIAqqTs{Bj(F4Y(VWo1C;aOf1vr%_Q*6l@NOS;F*b=`H4VOJ)-!c@R3paw#xb6xF5>L9E zanZ4MK5*_`Aps42>*XK*Vpl7Q9QsWv+A%yFxGQP?F=vv1rMQTokYb-+ZyIQt&IRZDkyl&2=@!crq?$Y=~U^U z_{A<30;QsB23k2OKxx>8to(LDuUi09`hQzbKbvhGk`fXBwRiS!M%v!y**4*3=)8SpCoQ8s%4ai?-g)QB=0CMxd27vZzGbwbU#RgVInK?!xMC_Y#c9u zTSNqnY$j*oWYe=v%hrygCJ)Sx0a0Xb6h~km68AF;yv%2voinU;iu1ai>dLko)y-v% z8IbnPifhNp`ZY*3?J)^jWmh=b_>;HExZc8Rk%rztJ+~eX(Fgx+23$~kNlG58IJJ+ki1MB}6IgK*1@q+@g53x#t!!JIn#M2+-vI1>7RdJ;3Mi z2XKoBKnbA@%{{kh)j0Q_kL{WlKg8NyOSh8 zIA%$JR`!y^D|@1w9EbFVmg#5;+-ygt@)VxiAult;)0<|yE0gyX@f*TwTGL^vG1s$f z+lR3Hu{zXrFKomJUoX$SGttn?w%i%EzojO?BMjsHImi1!CUCW-B`^J4W%K;aeUk1O z`faVmO>k+hP++iOEXQlTQJJwSk1gz;J{ZnPhlw&dpEF?KzwM%j&h*oR;4{JHYq9cr zDq6skGRA9e5;36BeAy-V+*P0TVCDa!>NBH5qO)^beOB<->a$p|JoY(IqXtXRO9%Th zTm;w#U3L0SSHrxQ145zc!BDE~o%K%n7FV~}*JZp@unjKiW`PbDSAVUCZqL%YPhcI>dm1G#?U0G$6D=Wh zISH6EC3x?DR)<4)tuHQCsc+4Ywn8EF+vA%4r+xec2VN*HG4mNZHnwKcoF90Y8x}LGBwH9dEjkAtwrKg&R$19Jzj#Z zODI4rC0Mz1`gvd-ri>6<;DQX2i-mYHqE*||sIDp|awe#g&dSJ?r%w{ukl`G7)s)l( z*z*skrloaUX08orMs~sSjwZX5rs`#k`J4H5E{rMm#VnxS=XbbxV0UO9ia?mbKcT&s z=M6=Bd4_~JWaUyU-yL?S>ha4m@-K{a$RF-z^fu64l*8b)h!*$BAp@hCcaw$=Eg$pm0c95&j@McHsS+A{6`Z&~^zkZWn;LMlNc_ASeN9Y?bwNzC#-5-?&eWA;y z2grLnH$SnKwg%gdwaGlWE~1gKY$(!meF1;)1$~8yvQat|N|6KQOnV*Bg5r8VWP)$b zc_%QAo&RpD=L4){xcZw*7@S39Zq21#HNUqfv^u#o^&$l9I&Q+~5%*}XuY1!UC02?y zB3no5$VYE%ly$LpILjK}8s~*N44&3L%gdt^jN>nanz^Ts`G;a(b2@%`e$0w)9(grH zJai*y@V11Q4m^SQ+!GL6eA4{fYs>r3rlj>6U7K9#rDgDRPyS{voZ8LKg&$Lwv}PNx z7J7O1Ob^mlodqU=!OD`e0*2r9N!#vsb=#|}LeG8()g#7!a^%T4++8)I)>HAvXQszY z`Lzm#;m#@yaFr&_K<>=lIW*GmI~#nd%`k_$T$IScahO*yAVD6V> z3470Sj%%N;ZL-cc4q$Tc7W-Hso@G{~O%YcvWN=pTx{btB=r1L)lE%dz`?K)@T$e!? z%i93+tZ`|?rQobrG>8Sno$Eesyf=SawM85Z-qY$VqP5idkFn6U&i-|J!ReV1JoZZ? z$E)T<^y>ggl6>KU72Esq<8dSWSq5mS0Z{I3zE`;?li^)}mio(VMMLQC^qo5IXy?!G z+R+v0yj;N_2Ia@b2OIXN+}>a3k^*bY$Hyp^>?1^T-H5ilu?IvwA={W;Bs7Im4hTBd zgkJR{(kjOu!5(n};o_=-P5>#EXxdFYX1`uXm2i@5tA@5hUv-TePO@_M4BDT2`uSjW z?9ToEg+3IUL)=nCNp5UJzf5oO1T3*MI%x1|C{{3{5%}~z8@{0=#`{^-8H~_#e`jL0 zu2szIlTr}&aP?%uIi_&6!-aNs^g^n)F&qRbxWXZ@3YuAm({Q=C0GQF{MhRlE2u+pB z2}P}PM(72OYZNOn?sCPuCt*8YRcO~u{%V(N0}Z(4{YD}?0xfJudBfK-ooegvpFCtZ9+(NYKgh^Nn!*-0ox--R zs~>x!B~Y<^Oo6rQh@3lDAC`N!sqUx z85g6GpZUz5XZ$nKQAR)}GBv~FUu2M;94pr;7t?<~-r!PT(61|~9my*6P^);l(rz5V z=pRM~9_}HALVJp!c|OyrfR37y{^m~X#q7yd%p%GK1+a+5PPN!idZxF?PL~@k5&wSX zlaBPlV3xEYJe0`iw+wdD8hNMlnA*dMbT8S~@ginQ@p1kc;0cW91&Gr<4>&?5>4!N= zaR+e8Tmmkc9kY+cISK_?6EV~Ma_P*s%l+F#pOvsr@wPqD28o&v6X55fFUZgAw&Q5Mu@C3B?;*=Zx0x|?cB7PcK2v?gOL3nv zk+E?VW&M#qb?Zbo4I^-e9bebnZ(DeF@47E993QO8dn1$axmPV)2hNlQncZ{SPL6jSPQY&}xMJsbjdzuoqaT z(V_{UmQm%rm};jRfPLyuu zjr!f$HSgOK9^6qo6bJ7#5E-=(Z-c2iCfFNGw~k{P$#})cq-!G{hI}vlxnPIIJ6O{_ zY;GBQg1N0}e?)OvU>TE3IOo{W0As~d!6?RVPPExPG}_XEZ4%WG9Y(btX6&y#`H+7$ z_*n0&3OL6liC7JNOI1 zT`M91R;&|1`BG$zdmTK<|1efq=xgz2K+gU+2vGnjD0B^s^7Y!;tttxI?ABTTd+)9# z2g&d%>?DWAkgw<(C&v*rP(RdNaR;(8-I1ENh~*@kGT5Slo%Fz>e6_5Q=bh7={X86q z(=W9XQSZ{$;U1Ujk?yphF}j_1!mm+s0c@Dydsxq>utK-(f>kg{Oo+x6=?I3C?E+OR z{73Q51Jn(sTE8NS($1FZ#Bulg)bkx)NP-r;@KxyjV!n2m1VS=95a!!)-hKi>Nzcl1 zMvx<1#VGuXTJulMKFJ`-SG5}QkSRXc&SyuM2|Ri=Q8k7Uew->oG$Kn1#R+&7=A{_j zj#+;&ezvB&Q|PnMJ#l?UP{~VGM%^A43fPB4*XP| z!sk42IP#lwE3&~AN{;;9R>K%6rh7s1u9z~a#9_zHSXF?hU!MbI_AGNrj;hEXVtA>Q z--~*LvlGzr-phw&G~r8Ek=4s3FMp+rEkiF}%6;tP>bMzCXB|+a{X*l=D2;X+OQp*< zyQ=o%?MYc}#?4>LyE&F7&w;0V$D3?A8He50IG&MRlURDJ!q+)>od;b#{6kLd^@@TB zGGe^c*V@8UO%w}0#2v~hfYql&iILDts1p`z7T~Ueh0lWTUHEwY8@C9K6LLUk9DJwh zG@6&f<9hGBnB38JWo*Lbz&rM@f|r3Vun5q1YEBx+#}$w=yF0;0)m%|qKql)bB(K*g%aWun zAT8uZ%XVU1Gv&@-?$r{|&it6X!=nEo8crhbH!YjoKW5Ms!D12_M$h=M^yUi#3PqWuAsk4qdyTof^KH zZ;XsB;wJ7IQ87t0iyl9J$=1-BY0ZMP$aJC-*#(?J0nGH4Y?&Jt$ReE4>Z4LO4Vjfj z=mUebYb1HKpiRhM&%IUuN9O)>q{XeCP0>v*+`g21r|E>Vs_yA~h6o*KTi#Nfl}zZ# zO_)r)&-E}4h$QnyYsrfbrJ52xa#E)Y;10E-53l1xuOf|c63(oUzuoc1eBm}jATa98 zCSRD}nS2qA7O?=^y4EX{0?@M65$BA(2H@9h~` zpl%kEo&zrn2+G)_9h^T zlq%&HCEXN-LbH_&rA{Xim_PybIs4ti?>wMD5Knz8B}V#~NRq-?VYLh2UQMjKeCO>G zabg8%hd_@c6}d&rGzuE8PXG?D$;?)0`dczl=h3x~2={HZA~pdu*Pfo#P>4+U8J=oi z-kys7l1j{UDB^m$%cr8f>sW<+2Ed>5@Q>$1VwLjG5BO{OdDqxa-?&~ZO|o^kXu7!f zWwn_g%_(UQKjmcM+H^}Qg-`1(UdJEz(V}Tbf1B$pYc!vQLJO5n{x9Es#0z7p@fYAOWbYr5ZUO( zQ0GFO!+!EW5adYq++tUlXq$Mi+h&7|>CbuI?Z5t$mJ~X2(qAkLRE{+Hi8_VbsTgy? z#sFc_Iy*QfB(V;{*?=%3N{!iDBu93K{pHxJy$)u(Zylo`V=f-Uj~eLRh2clItc75+ z%#L7Hcgm1jwqqBXKKVFa*6KLmZI-cd>@nUcn=@?k1P-1HRbCN8&mun%j*dS~@iaY` z+@4#J2~~1SK!9piHk*Mw`+3fyoFEwFk1n;*rpiag;DvG=N>{e5G7TtahZo&eYg**q z6g6nLBP4Mx2^;)~*BFk^d6x!1X9be2TSq!_YVw&dwe+_8M_|NQD;GWLm+3~-XWu>_ zbJ@ymz4}BtORqR4%rL%qF|J6Qamq1;K=ww>S|C!P`(yek@Uua;e%SJk6+nol5-r}m z6^=hd2P8TURmo)Z9dB>Eacxor9@WqLilDr% zSwe>|?*h|Rk+^F(%2=E|U3oa9ENW9scKAraUQ88eS0tE`y|H5FbHdu%9kuD?C)nCE zpJrFCf1-!}L=UCd@rlj`lQ9zm3C_Q1o+Y&us&%~_Z!gK5ew^r+ZWP}mD;D=lG%VhT zj-x2UKXy$Q;$sEeYEs=WB8j_UZ$?iet@31@;!pI@pXj0QsXO}l(bd_1uNQD^FO*pM|`&G0?R%&xJ#Bs4U|e46@=r2@c3qKQL)1h`1DANXqg z{}te(U;Zd?(YVHg7XW^xeuRLU)g$MmZ!ZcX2bggJ*>I znjpYH?7;5QJ~P8xzB?SRqXUj&S_Li#%K>{((ij%HSU&aC9J-nKJXAb+D!r#E%4AgH z%Q>fw(X@g|KaBgaLBgn+(00k(l-wm^TEiQM9SGvYF|2kXb-k(KP@vQ6Yiqj~dh?N8 z{MtnCI){o4T?JZ0Gd34-9yN4NBNvPy!wc`~MBk$Psf^hYFt&$VK=khSm>PZBT%g-Q z5(|Zeq-B3&0qjf%t*W8om|MuM_P|IvbBDMbUg$%H%Gq5~xH!pX!3tN94f%#|{$4^4 zD3ZOvsjgE4smPKZ(W0k4zQ(FQ@_x*CKU~lA*QtveyVWmC*cH@1!tm^3Qzmy0elChe z-pZKpZ2hc-%k@Vx6E(1oF0e9Z+3+E4^Q&XGBt^mmNRGdUecI{Q8TXN`C0+t^miypF zBzw3HlwPjRgH+f^wVDSBxwV5YDoE>)sw<5U$$JtjNnzN@oer@dUfb*15X5ew`b2>+ z=$h{*^qXVy&O|*r%AD$G35V>fxRp0`3b)mbC8M0YPX|OZm z!Ds9O>Tz~6e`4!^T(CXagnRyNaruhiWFo0JJX1XeP`4wSO=>73-0z|vE-?S3l|dGr>P8e81r`l9Uorix+EvT9BHcqf_Gdh9RJNc% z805#Wfq{rw{|Nf}Md~`zH;d@6kufSywO+RW#|!U&sCD@Jfsar4eaS(*C@+{abp3ZS zMbr<{HxPfcl%Da|Ds+vzvbZ8Gul33nDez4t-`nAd+@HaDS^#RGrQ3U+6{+DI z#Y|QP{$7u@Lza+JK!A_svCFOFk}Fq$`gMPYba%VlnCY@Q2o)^w2*7{@-8Z)eB&~ zG2>>@Bje{s-E~$@dj{gfqnws@X2H3|-kEP;p*0bKj())Bz9;09Px?cIylpHOcDqZ) zs~wlB?|N z48E&MO0?8!K`SVTPt`bHpW0@#PU8;WAZQ}VP6fB#4#R19yEtX&H?aQ0i-pZ_2fak` zq+3&|-sxYA_lg?UwBRjEbSN?Jqw|utTbq`|$Y0SBcH&{l1R?x>iTw@@V|FGcrh~DD zC@zY}fa2jq)RrUIo6G;=8#zOh{dNdzrShw!l!a$>1$tO~S*rfV-b%7}Yd~uKZhA@& zIJ>T8-sU9w}wuO-K|RX`blah5+{;S z{EC6}rzvqppKkDwBjRFwm20Ken@*8Qt0uv1;%(zYW@r^aRtMa&8 z$EzCcxSdK70X0tTpN3#yY;$F;DN%z@B$Mzf*ndnat(u zH}{*F>$a2DmZ75z(d_r|Fjh%9t&;JEI%6xcla96pQspXG$*Z{A%P2wWY|ZjF|4_4HPli$f6?u<5Cd_p z{dV{^vCmP{40B+Tb6!7covUw~0Oe;!1`wTdxG@r_Gc(vT4sL zUmPEdeD#2&Rg_i$}nsJ`)$LbQR$wrJ`~QkeJ6d z95o%YgeuwP%uGy8z7?R)q{<{#aC&?E^XVc((SF13olcfpr^1uqJfBMY^ryR4EjP(`*LMc^dXvokrHFp*o=WkL z-{5odgbQ~#PAc!@zjyr(4-*-UI<5%B>!3;z2GM>;R-pm}><Do-zaTM0J=h`b0emT8I1Ohd8WA76ids#5mLr!0dp4<5Z;(80Oi zFIgLE2)x-~$KVnY_Bz=f`{tgQ(wsQBpX=pb)xuWxRe-2|w2;qUa!?(-j*MqLY+c{! zVFMD%Ac(xp5F}$`{B6XAB%@avW63jp`ad>1FMGJOZlE!Byf?o7u2cRju>?U2yMC(9 z%EDNqWgY1X71&#t9ZAkH0ZIg>(S+(a2Jb5S3$db`Q!;+4+xZzb^5jqf!*o(qT{+mu z4p%IDP;cs&rj?2EYYNSd8ny#Q$QA-KYR!ykC_L}E3D+j+{=K67?QG@j>phk z&Ie?;f$w5&)l^u0i#?`x>g)_C&B*6vGCjnfMs%%^`H$%q85alw5-5w|&B7h4L=(+( zj4i4I*dlIdw?gd1)-uWhm&@-rJgH-aO zMrK(;mN3l-ecJPgrJH)xC`F2RD)wfgsL$zt#uoW_%=pMiM1L7vIix)FPgb9S zY3*C}8Ai&f;I2_3b?w!97F{J=y3xneH|vX@Fql-2v=x8&1vYDu7RK}?meQW%g#B#o zy5oliihE9V3)-B?r5j`Fe{t$;rw?g?0)zGd1SV70F8->{C%chTjun!A%bw#n&Py5q zuMct+DDQW;JquoUjx1XduC@v9a7o<`GH_}BW=?Swq?IjE`Rcer5!5DGbZnc(l~?RH zb`@wr>+4vla94xFOz_?!Cev#TQZi>0Q@ktu-H)44_ z%gMju3A@N>X_mf#U<^o5hqD|@uL`GG_vzeP6! zC!$r%gkmKL3%=EUY@SV6qo}D_g*#_OkdNvAD9HK9EXcVPb~@Iz*>kAardb)- z)LvrmkSLS%=&&Hjsh^=>zAF-Oy}I%;dNPY+KKVf+=-Ng?O>OBjSILH5HF?K)WyL>S zCna$=`{Tmi4b^iO=B4$NtZ&Br3{I+nTN3>x^Ghl@_X^_CvkxL>dC6jFrk84$V{kMA zf-$nb>(%KiH~RT8c%n<|wNeX+j+TAWkTz$6izg2yPtCA|>t+5KT zfV$@axNlkO-r=64*>vOGyCAC;q!j#JD*G=LHTxa2xNC`Vu{>LALH!!CnP#hXC?y7U zUy000owssVU8?$}3FjU4jv~F{)hP@|?x42$XNT^@iX5W&v!;LHM%K}yjCcrH2V0LR|bjMTCbVf+T0aqDe01xIc@@>_}Lv%dv8ysRoLq* z>5H;ZlP%^?(vIo(H;L6J9e>w5qBf&74_l^jdCDLrA%*jjalgGE(Pf(>7XIv_+vQVE z+{V1m@H!WIkVbN>@MGFKtL{#nVUq9duoB+!YNBGnL}m?Cw3(F$wYLBvWb=Z#V1bkU ztI(4p%mVFDs$xXST@H@rkOW-t`@XNf96Ek<1R zmm1H3V4iWo8ehtNIPUgHQ+q#M0AT~CCg}B)c{i=4xqI_{PKwN4>EqJt;Lw>SHEC6H-3*IHy5?Z_RS*r4m>k+kR z=I}|L_?pBr{%F!g=NhqVcw0Y@nF05c*ACt{@3w0?&a@)wMDTT9MiP`{fG6x?fvr%? z`jF?|bO--?;U;C1eIj07UxRzJW1As8R>wac}ZH$)qL`q1Zw_MCUu0%HZ zdwqFMMn?xJXQbmw2^&Tb58&UPkDdiwc7ox4h0gZ|u*@k@^8RmJc{$w&xYnWMIQ%7J zO|Pp>@tJRvb9W6y>Z|N*@OXSddB` zO}U3m4>qyO-S*e1aQ!onb~LuA7N2fNbiPBze3FQ7-JWhXxt-FfwRnaf6B_%}Hk@vZ z_6X~_E9RO}#5$?lqgcPFlcN~ec__{Lw zPr3UMSov57Anror^i?!ai@g?l)xM1lBRHYVJ+vYeedRiUB+0$1t(lm2T$sxRNngx_ z%hbDHQnV0{Dg7}iqtoZj8LE?q2l+|dv=Y_ z!QtEt%(>6Jp}q7m|F}%$!-4?Q-+qRx-6HytX%XyiwR+J35YArifG@YO(XHjJ@*IggrizlvN~B^Z+tXcYq-ly?g58 zZy*p_F((+}1YI&Y^iquUTSOmT_y>2Nt#nhm{+Hcnu>W=U8R385eO3Vw117Z)$Dldy zKKuHu`%GD>x?nFljkJCf%5wP?1I>~+BIfg|)B;GMi;!QFb-G!oPQYoV*61F-DI;N+ z@0~Ui)F6AHV!8({lmtRiY%6j)=M7vSWaeP`9lLI#?eCA63(SJ@=?#b;K*(hv_Qb(8 zm#;XRFCJQZ{6%~#%wH{!5=$EuN`uW;`yuy@jT(69KnpY_1U3&Ds%RXHt zO|L&UTG*e;IxrJpdHJ@u`xdpUH6@_GcIq!)0@_M7Ji6a4Vu~uqf%ZkZHe5DRi-$^< z%vs=C#MFlSIwup+3s>;!lyWe$hVnZQdp$4(=DemtSXdPuT4v679lzy?1qGgFC2J;sYl;a6@DSA7 zyOSHsR5z2ep|MZ_;s@f=F5gvuxtPB8%%Pc)q~n?HGfRZ?AMlFF+%f;;ifja4uyBRb zq9Do|z)XY)iz#$Hn<`jd~Sl|W27g7m>cu5+w*4Tv?san zSZu2gPq_TxI2ABH{vEjJ+p{|IyPwsw;GzKlE|PP;1&qu72yhYnZ{Q-kl&SrH0Jx}c z7F;Bstgh3B;N}`!MDHL2a1l6&E?(;C>m^;tH4xoO@L+%9=bLCVa@KyS0?E%JBlHR~ z0V^aFASm0sJRC;+LIj<)=iLFK!J4>QgD~E$3KT+8!6_CulMWBXv;_^mQB&NsYha

      zwXI#uEY1**)xmF;dL9U!&TB`0c_}7+#!oOi9B_kAT#vFFPGoF8s<=N>M@7#lXnz#A zXdnrW6MP2XqLzsM-}M7}gPlhn8X+c%#QcE>=g9mgl_nRA+?$>K(OR}a!T~Rny;=$$ zQr8g6=}m1d(L)v`Sn{m9v;eGU&cn6pgb znNK4+i+ny+?Fhr-7m9|QJMFEIt=80NVS;6ABcFWR$HDZoe=$Xpw}I!(NM2j@Vy!@I-#Nt4D;q1TZB0m#yi6*B zYPe(Fybq{W#FiTj9kf7lj@_w`T|1<$)>=gJrL|lFALrB}zAc=5x_$#4k;G(VeQie1 z@VQO`;ltvjvV_A!O>C?9&s6_@VMU`4qx)bFZ|o4G=qSDiuJW|RoE#}#YJU(gut>9u zj*jnKbnLvyr}@CZdwMv&_gU|i-a9s>Ytg}qEV_%q}s=A-H&2E69BN<8i&WG8)Nr{r}rE{sTe?3yQiNdCRc_-qj_VV{@C=) z*!%5WTV6{*`-Av8oP&9@i_5e*mQwV5TPn7O_8K)}TjP zBB}`6_icfA8Yn_LG%_5(pZ)`Mo{5AdH|7Zwh#w+j3YW-6zzPwtdHQBWM6n{Kdc08U zPy^J)E^H4US_LZG#uM_Yf7rDQS+{W4ZDidKVs6ic^&7#SbyL5WkDebi{bRBiU_&y| zkWyslF-}>`;KTy>g?_fDJ;#pZtapCE@>y;WtfI-oc=w%`P%kpYJewa z3Z=?o43-ORybD(cLcC26nV2s)EbJEsCzr?ga;icF^c~WPp;S1gN}M3Zw6q)ts*ISK z?OhnV?Q8x1l&3XpW=?ytQ$B(iE1RsC>A@wIfT2oXG6VAY`eBF8JnBv{A(v0F%f&UV8J_O3_2Nv@%L*C0P(vp&ox-8#KFf8E z`aNi_H6=bzbAL5FLd$`coON`VzrQtufDZxCJsHofDudDEQTsJGEWDzKzBAZR(stFc zVIST8EcuR)Szqj1*^p*oD!upcb~J358&>J#xqLbM!?~@!)8s& zRr|!7MH;&{Lmn-nmO4$iylO#Y>!8)6JwV@=^d1}{XAY#?gAfOAa8DeaWu;|W$X&x} zeFcb2!pNEM7Gwd-yaW9vl~|~Tvjxwg9Idd!P3@!-dFJGOXlxr|w>2TEZa16N_Tu+b zC~6~Y72C^c-V=PRT-2GxS&@@9?*z>=Cv?5h_QWl%I$}D)n$|73)h~RU)KCB*1|#ak zGqyG8*9e#*sJ)+kx5Lk`EFic}N_*Hau9S6El-w|eU#JG7m~sqYc~+=@r^qp1NaGKb2B#vua~_xun@p{Ry@uyukThD^8bH`|OiWp$|nWb&I9a6nOyCyOuCWm(4inNJ%( znuOj?Tl%8tIL*p8`K|D=>2G4aV;HOX$INi}eC?Z4p3f_=Sw-3z(C39>amVRZfGS*&6Z_r87SZ9^XaQwkG3-SZwmWW)-XEJ+2y!V$568E3XJ z`)f~=44EH>+o42ae$vFcZP~r$Shyp7-LLwA!>ew?KAaR-rBY8ZUx`6KpNI21tkaLT z<3vV`K;vmQ%ksh!TlzjOomZIr93kKmdzJ~LPmIG1%|4rHYYboW+*XsxKl8Gm7u3aV zw=-k8H?}TRbi15+-9(+0r-4te6V~f@3_KTm0L3wH=lA+Om<35`Ve-+>vl}1On6iW0 z8|HlB9ZTP4LvW?)_7iq8jnwnDZRp@H&7QiqSNfP$3|>q+SxDHvOrpUj&&QC6_OZA2urg|4RX zYT236eC_ZlgV7dw$TDIoQj>Cte#zROpncgB?nq}&}hpI)vX7&oBim& zRM&jZjq%2c!V<^g)wU5r@#IcJ-TSzGzda?{eT}!fy#HO~;QG_*6y#t@XqYXhf(C@@ zv2OnW<|hw<0C>LX?Jm!}!@s0L8^~}0FcGx{K}{}G*Y_{CbT)E=mWbGtT3SxxTIYu` zd1F%-V?Nk2#Ah7rHCvvEk@SadMPFse4D&jNKJqmxHb~dP(IUKS*twC%%&HOz^@Coq zHNT)gVTA>x)$p?EiRTA-gKFScCtr8vCjR73`Hgyo&Vt2YQHG58&WRpupI_rPVkhYt zWc69#TqoYuCD74Xzf-Mqxol-T^qq&Z0m}A@8ELJ{WZ)n+eqAon8#bP18 z#vyAQ*@fEF<6D)^P#zf#!iH)Q5R`6R$2Y#)$2>;+O9?1WI(&5NxOg{sP3+fIjdX7NAtdBQW@KMdfHojQ6&4Rm?W+835#<%8;0 zR~*l#Z+>r1^`&qulkgLD@RXj+n2)MvGyuFB9KG*H3>qOZT6Rz(@8YI6%^-0{P?L540AsvhK)e6_Ns0!OBDgbR-RaLIJ#?!dZb(MT>i-MU|F;T`nhn4zs+-pV<){zuR zrzRfSxWCEQafb2X_*B`I{#7r2yBXtqMgJw5JvHy8Ub~b1PeeT?i@bOub>suLFuqL8 z-iZ7%ocXu}tz!JY)@%Ho26;Zm*rG~+EdrZXI9ZMh|9=Bp)Mw6u^;VTDwkkw96LV%h2SeGoH7<6c zqswoGSC*kV@%1h#mZB!#8T5tM;2omMjDz{=HIpd3V6A=B$n0)^9ydmlrnJqP)tB(U9vsK`qCvJ-qPr z@#tSAeQv~*>rhL#mE^EUK|zah)CnaSQON#%x-$k^0d!~O|F7%L#Oi~abm+S-+b!q7 zvH#2TifF{Lm}OA3dQu1!NZ=B`Pm4FlMe|DcwoY!bwLk>Zz0sM~bE=FWM$`ijqKQiz z_Xme@CoQ}6kQPTsfb_D6j=F43Eo))tC7MTDn3ofhM&iHmNCRQC523EyjMIdvwG&-( z{~DFc@(JuYDr~v1H0Oq{fd=QNw(4BDdm=3$6ov{(TTBQaZXX3Q2{VpffoOc_-V)y| zc$ler9oiG8ryz6E@D1&Wbre-ofWio=EduAejd4^0JsrTVo%76l#rqhz_4}a#1ud7d z&YF0nIqd)y8yE6HGq_04hd74WP668!Fky_y4kIGY8z+UIr7G@Ohtji~cg7etRD zBOkYfv)_zW-^5O~+6KCY)0*grS+3GR{1cM>`cmo8cD*W!^8QENS-T9Pl(I<(WlSM} zrEc&4O(FPa%f%9{y%0D-oy6}WfMdtMTX#nM)?#}1C+p4-Xa6PL83W97gbi@{#-Tmm zP1b^bnXN{KvhssE^KqnWNcZ+6qU95sXlmzKrU^h?XA-w{^I=A3(*(oDTk#@J9ySSR zkzsT9>IU1-)zv~}MU6)Bx5nv8MhjgC0-xT2^b$L1GR9*4Hj&$Q+i0rt6al-r&$%kw zLEW-3yp+LBlRnso<^yQ+y@tG-X!t%4d_aLq0VgjPy*|YnO>Ws0OP;T6I-=*cJIC)$ zxIRMR;~)E#F)vM9mp^-StN09JW`EKOBPYn+=%s#!vb1Ci!rOE!(2Nf1Xsx^_gSnX5QS#Nbw-c_=w; zx{JK{iZbDP(1OXcOEM#M#*7RXpEF+-@uSk;{W=1~XAK7oV}i@m6aXfLiggrUbxVhH zGB7!)pc7BEoE+0g*3lL`?@9@sj{YG-!m1odJLnbkdY^fV?n$gfCFSz_@CqS256q`5 zhkY^BWnK~#T~X0&i=j^HouQV35qgc)aNPW?dGPbaFCfI(UC8+^P6oGdJb#+gV7%OX zpHqdQe3P+ma?QJ;qLJ;`(a1@QY`mXO5~uFHE#jA|5`yDp^*Up7iiE|kRdHWnkp!KG}#fs`Alc$52YaVZ_H zqmA|OsYDE-s!)@-9}@1!^SyVWWezlZ<|U65vn4^7M%tek(r2+f^HYn0e|XHJ`8{p2 zAKP;BW}1_u;0!^x-4v zJ?)_?$3@C(X;(bHBhyf~*R6WHZH`DhL((NK^PKu>_T99?s>2e8KActD)L|@P;rG5S z<*)r*1QA$96c{8y{lr)#JCsOFKYf zzTUaVh+ap0=k|;J^+3t^zKKNUXpuY=&>TFyMGyQ=%WTkS(4nKQ?5L|v%vEmS-@X4X z4L4~4Xt}sU*3+w7w-nq@A?7E173riH6ki=KFHR#!%aLD~HFhgB?nV@FMh;eDwh0k2 zDZ?pz!*7A^D%1JLAtRR*Hz+*3DHyub&!C_AXVL} zDG;u}31}2=`E(}f$1g_PMdJmu9fQ;Lwp-p4|oCszYmD1GWWrHF?u% zq-WA_ZF0tOIl1SSgixw((Yk_3dm%H1U1Vi_ zJa)-Q_~a(Umi0f~=A`Ze7et5;T8_8~oA&hdB43z%%!1_A_`_7<<>0r4^tz-0kno>$ zexN_%K(F&dh=(sdMOL!CnKQ&n;3Wl9R08R;3iU82SzTgd{(OlIUQ@Vog4K=bQ+udE zD%SU^)(@w$F7r;ASAD(0_QLf{P4xQGx*gVrmk%2xIwAZA+u85q>p~_DnV{nj2i5el z2N~NDfvMQyo+$z@_xvRH~jc)zrq%uhio3 zBcml248?VScGv~Gp@J?RyN%{>8`(fNA5UFF#Sac& zS1uszLM}hA9sA*cr3IxdP+t~iE;+jCHh?&|ZE?bOHWSXHAy&g{9Q7B0F zs@-}po_LQ);k!FS@q!5R?L7Urla?iCo>6hdW;=y;y5|QB70>j z(O;p3uIv>dPha}!V1~i7WFIy;oG5PqQ{}jj0)UWNua)1ZesgR=nEET^pL}zEgBVp! zi~qt9{jMPRR-3qAA~dgw3o zkn3OQp}){Wf1!ue0Y}m$HTO(fe~QA5`3pS+Byzti4FB#AVSgBs{tG?y_a0KF+E=^(ZU%hHAK<8-jwSOSmcA_Zo?d(W`Br!;#o>gQ<+#94TX|e$+ki8MqM!1zWU}rk z;7{xSxBAnRd1`-}r)nux<^8ApX&E20qjUfe!C%(0pPpO6luysW#n(A%E#s9y5=h2= ze#;>3nmur)wjc#Gknyo3vl zT!hK*gmEhxR#!e!1pJgj=HCocv{p*|yNZ_PGG)I7k!JtPL8R(W3?f0QBs>!Nm~j<; zg=ul85@6-~w*k=Ok7{lqp>c>1ry8#=RLRN8W2@W$Asgd&TV;Q}5!fOVWlqoDATK{R zCs$MeE_f0JjmJ9-VE_F=Bt+{%rNP{ez&xwHjSjc%CpET>;x22>$-33f!tYHQnSEQf zcRKIr$ci7E9Ccpb?Bh+*M5_$aTg@|F zy73P%H^ZVSCGJzvwf5^33t{5^k=cofS87b7>$t_oB3tF+q_x=~2F7RzQSzE>nfS@- zgHJGLXSD#5bIfOwod58>{RS|ScO{`Kq?~suFe0(yMep;W+W{V0GWkt20^I!W!qn@j zdl(d@c`1?*RO2j7%hfcTd(@mWko>{Kg&a^NjZNUVO&$IR03#B|%|xl^_Xaf!v3a@h zu>F>Z&e9UO|B#;b`loVJS%*V~q41rJ1$m|O2aRN^y?|4gI6QIG7G2T%LHZNJ4!dXh2)7$C-wE8r+T3@;w@T!Y#-w|+Vnw^U(Y@jx#-a^$hS7#@=rzJ@H z6FT@CFdHpgCWyC!CM^J6k*c(<6-OI5G`3VVcCS-P4`PQow&ssAf*D9J5zVQxhGw`J z+>gX;THN4}^lXbDIKY860(F@-2*d zP5ww0y}r{OZNVSS#0=gSUP{d)YTTb-OMirf`vi*Hqs?$+Mb5_{Qnf8pA!z4QRffLD z)HiOk)npakXOLA6s2jPt>cae(V}Bw57)|ze`%;xGF#}}#6`OUhjvpL%W<7c{yY*#vJk*Vg<70&VDb@yKtQcu5jib?5>V$Z9cM=6xK60 zCM`OI-tY(s>m3QW*Mog;5~%)wi8JB1CG59_>7r!xX@_=YU`*b6^B*ilp=>lIsE*fg}04Age^4I$#Bx_(qu+0F%fq8rpsBhvRb?sG22j=Q}^HY0McLl0`kG<&C3Tl5E`ohh|&-{W!Q5bk9TquL-O z7&Am@KHv*SKdszqL6(k&9^~r4wD$D5QGJFxI)D+FI3-TSpp8yfbh~ZwdJM*AqP3=r zKX2M`k^22vL-?+H=-7^a8d#ORE5Zb$VlEjUS@|BUIP(RN)PPN3-brL)M`P-&b+cz( z-{hekV4U@tY~reX()(prXFSNB6sUS)K&h)06lb zT64KQA?>DKcEnKYx)ds$s|Y0aLtnKJ4p>WF_cy~jXS-kKZ7qrhhw+TFAI?eg{Prnv zN#T)~BUiPJ1x_MH1`(zU>D#?Sq_-lg?!cSw(2ZB=2Ef}4o|Qz3Ic{#m_2HbjsraBn zAx&$L>GsHny=+x40Ksr6wxpMGGmKh^RXC>Y~MUtk9M!V2a za?D-C>iJjQl+{PIBa4D1Geay-wQkADpcrf}x5tZv?HA6CF_R1xlFH%Mt<@_FV$5hA z3Blnr8==L92{#|;22Gd=tBrd-pGrlHLM1z`GQY?JEfIDo2W**20hm4#$@o$4g)tw$pOls+?!plY(=!!|bFd}{>Zk~NY$#=ocd@Er3wH=?#Ul&u-Y+(DPSE!f3^?( z_Z$7pn)oC}@s>)Z+zJFPKpOIHKX%oWDNbvvqw_{YhLinLf2^Gpqf1avo<(-$ppFOd{Xp z7C2s0d*h{-IfbTBclP7sAT`%*CtMO4ki&L&?WAx`@mt4EXIc7FOB@7tj8xHBcjuUfWjA0+7x3R^ftA7w4vgg{L8lW zAx`0993MZ}^0nc=onHhfE-Xo$FB6T3vQ_75x2vnh&r$09;f-Q9s3~NM@zDmTHy-5I z|1IGoqNU0Sq8Pr%L^-xWo%guApZ@01$(S7tA&7hKFvIsQ5vQI-mIeoCe`pO9&y^p4 zje)=G#gX^`YlqL?oCT-K&EuJ7?L*m0qdE%V=k%%aBTZlqt%Op%m z%8U6Km9iHxUu>^e_a`?37@s6{w}SU?4${EKs&jigrfY~@V zjW-t3{1ex${WPZ-LbPGItgr0KKHlJ0%OSfXUbKk67HWchE~NIJe3Oa7H7^SVoMk3B7(-9hds1QyJ#tq{vvk0QE%$*#N*|R zRP-ZB=)tvz_K4!V?szC+nafMFl-V2%TsGUUQ?q%%XGZSPsA>1C)zdLYaWuN4mVbi( zYdUkg$<&Mq(^*fsb9XA}9mNikC$tp67J>1{-pPZKd~or_;{{D;_}wYO)LL#v5y_4! ziO^XO59vDkwh|v1hby3#YVD1-tyi$3>%+hDn6%LN_w;(hRX1W9#!X z#`C;5O+3qs$F>a+9~!@?y&d$-&U}vR;}6xe zP)dKK-+~5srzY{7o_RG!74tOpv)a>lcJxEZ%~&94x#8)!sx%n4NK*4qn!_dC1{+Vt zMDjr20_o5`G+{s7gDD(nu%@O94t0u48@nx~rv8SLH<;zG!EygCv|u*c-Md_nhpD>N z9%(6>-L0@(NOX30Y_7iOKi{T8vuKcA#*Wi_8XpbXF^`z&MHM0_pJ{w&qlH2l)|FzEm8@DzMJ$ZM>dY zRhdF8J#B28uoi_-`uNv4DLQFgkQg&yLoti)b?Chsl(Q5Tv~Jg+!(~yN=5Uv5K6~hS zX`^<;Y)Kl$&1&!(r;s+xb(uI(6)6$lkx2Kxqj@^!262Tc+egq)fz*rh$QP4?nVQVu z9?7d^dIS1L%ijn_(Vt5&`h8Dv#;oh;z6cN(bwX(Per2waUGsw8e@uk!87N-0E7(ok566tYj_Wi?U24EWP`H^~Lo)K%Mh&G&_@1k9vv)GRB z+rkR3xHN4{;CHgt>2b{;Kw6 zv!((RvaghEKQ*}qirCX!**JRoraL|%qZ3Diir^kAol{qn%uW@Aez3erfzbv(G|P)n(DpcXhs9uKRI5HXl_+Y$g566X??R{wsk^`E z1~yKGdK2Skh(Tfalj9Ph>Bi=r8uxH9%jK*EFCg_Ut2T!JpOx}1H?&TX~5rkm=x#6MonDNOwt zgLe{0+h~IallJI^#Gr}{e5&3RniHR%5(r<9<>z~@e>R|CzZt}+hDK~D%e1RLTs#R# zyR6Se82zC`ziJC0eha(uS`cE_U}DIps?Q#OruuBva@CrDqx$T9o-GsiYHXzQqj>R) zTwzq;B&PPl( zbf0Pd(R~K_pWSDN$wKxa^e>RTA;H<&4PIU^57kmyBrnE8pqAVox5`_Y+DFOCGj~?D zH3y2wRdQ*J?Npj;)h5-)JuRD02;(wY>T`$Y=Q^2wztKN$NP?0p0e7^E0$!}Krz)^+ z3w4+5)Li!M3jMDr7vhtQUtu|33=fF=<+L)XJZx1$d?RA@hK}l$6V)qUtUhWNxX?-q z4HI@3ml%k8*`Qe+ih&mR`(;bOaPlM0sL7#6u(5jbAcG?DZ-$?GO1jh!jSZVUzqRg7 z?GkEFaag$ZzNl{xK%b@??nS}4Fvz25q)&31(n2P0-Nf zDO_mf2?r-UlW8bF(l&ca;co9Wuq5f*xBV9dH(Wg}(Um>wiy^eV#e%~#(kiJx>yWs;~rERZNbBfp7D z_B>TXR4V0mDtHMZ`b+g1K?C-xK;6o>?VKk5E`1G+CS3==Az9u>1%aFEJoq-( zN_v=Hy&DvZ@39Mv%L^G46w(@}uDF<@-KqY=>6WS~KoRcE({CY@euEgD{Y;3_AGWvY zx%Ppe!E2i&&Ff}6e75||6C!#|LCM^(yqDbkV#yd7)zZx)_jXE#gLd01zlXwtBt4KD zg&zt&A7a$_k03_V*%T&Ds_vX&m`9HOnE}T?JRSAk)>W>SpFzD|AR3P4*N1BgZ;yv-hNImxj0*ifpXV=|8$*0g>z&OE@)=n#?UVgbc@&&42 z!KwW-^0OD8B0uY6#v^ub@`T(n^fuXTXOonZK?;3c*;uZvW4NWJMboWac+QIoCcP>8 zd*0D90#gnW1e{{3JB$W-E3y;cSt*X7BNuq!54X~v&~%fUr6Umy3CIVbLG~D!S_U=K$jCClpUH^EM7?a-^6Cs$Cu!V%`f8X~c^Z!Wz+7FUL{yGD z_ORblBLu>@frmK(@Aw<|;ivApdFnX~J}}~qazwG@nyga=h4AM1^y+O3hE|F?)&lWy$&?lbvN$Y9+bl)%^8{+$4FJt>9QqGrkey zCI%y*epMwI!_F8h<_cju{k1*@3^MBpO~sr}W$1-wAph(CWC1kO*dW?*J2sbX-j&UJFTTpi_mhk|Z8NWvvtw<^=?Aj4%O$L_oecBx zzM;gD0}IkE`c88Iu5Q9F$^Tt;nmicU3zQ9_raVaBoh@oAZh+Hx}I3yaV+|4W26 zinO433YvdQG7?mZsoz9shH7sv_Rrp)kv#!loZknRiS;Ses!0`}5qtIm1vud`zrJGB zF&y?^z2#1j>%P;iov-Vf`gmkD6E%K=VQ@-E+&kj&3nAR6=||Di+3?q;;IMWeuIJ~f zcZcppR|^X+VzccKdbt_zcnW3ouT*T&}R4W zngN$BgZ2;eyiYs49`YuwWmkOzN!SiPX2mz-Gn=5r8DnWJ^1zYg$)xR`S71lMM`}lP zm)bMLoa|TwhlbXM0CVlgMOG?IA5PZ07D3c67&uh$kvV5HKF-{senhWdyO3r)rP_aD z#1pkry#}d8XmB%)t5)8gra9okY?8Bqi2V!^TIVN<(83Sw!dXve7MkVX+}nOzWJ!?H zIu?H8*aL$Y_i1)U4ZkPMdJeVSb`|cZy}r$U5@zKge`x1xO*Q1?WJd0u3c9~pBzZ74 z-(S+kKvE+|259a zAL0#AutHC=XmP$2glhC-&k=~wRGpWrTT2^LAzf>f7Y~=RbhB%^B4YGPFL3lp$F5OS z&%Nf4ITj5QN>8`-+OzVbtIT6}d9K4JPi364X$m!G3%e;^BPN!ieQd!%QQ9W@ZqjiO z!G!UXWV4Cu36q(3Tgle~n_n2d@d?(x3#7Tm;~I|Ijp#jbLT-6u_pzSY38#|^RY%NK zMhQ8F!UyfOJ)-$yzXgw$%#4i@C2$_odh=|lWzx8MD|7`mt?X6JPb)J#(XOC#0T1P|@(m`{LXWmZ;T8X=+wF@`B+-Vt30~3W%&Ur#w zo_2N9_mUp^rG&bb64c$RVGh#)j>a2epSJrkqIsQDqaH4@wi?T(glY`o9WFo-vsC@x zX9oXzI+9UaDG|SKADAeli5F%zVK_hc6&wRZ8pRql(Fn32vhzz4jUZIXBnfl?lED?@ zpCuao;iwOS)VPoBYmjMtN`5XI8RyROv5DWCl9gIp>2GkpqeUZm+FMV( z)Z6-iW!KWh?HNcrx7`O0vS4sJ;CNvw0TJChUfJaZ-i z=c}#Ef(v7MkoPViqmtTZ&@A@o#ldJ|zau37bAbR{?Y`OU@D!`)-SLdj+cvvhOz+~x z65qB&UoRqgCtM!P*i@3li0t0plzbBYJ}AWl0|$Q_0$|Z`wt4v8!Xf`@v59J$o{B+K z>e=@FCPG6P_cLFu>1`oesj+Gp1qT^qlXxSd&llTF_g$X-|hlo53DGSdE5OTy^@P>4CWysiA@&g}AGqe<^L#TJd5= z+)u^Pk>Q~+NybTN&z9lo3G+%2#OIVWn25DB@twe9HEeO3>Mwri!t*O9uKJqj-2BSo zMhnY)?-HGpMp2T8v+~ghuYB40nft&g|DoIvQc9p6=cJ>*Nl7J70l<1R@CDAdnxqo)A`v*UUW~^jwY=RezkCD5AYIYFd-FP_FF@Zs zFlE5|7ueY9=p3#ql#%{8z`a8d+dkG|Uv)g@=i-x3dD7UVAaDoC^Pzvpq_V~~z7KlWx^5Z~zkg&T^J2mtqkBJ63sAN_#zbNI4C1jx9 z6(ve5fgR!;7to%hAlo1~VtDO#Pph@gMW>zxgvlcwKjafi4CxJe*pwZN?Vd{K9~NSr zY=n@>gDbS}dBSmv6oa;Q7Swdmp-5s>_@{Ieniy_i@D!tIBNY7ffZAA|le^KJjBmhz zH0-50RMX|(zC9qS{bwRH;?|A>4BXU~eFLWr_srU@9ne-0A*erjKXU!@t@Sue9rN_C z(|UoA^w&HI`%*L#F38#}<*T@EXm#cX?I2S|LSFnS_U<2YjC6A{5TQXniqMD>!TgdH z(*8{9CmxPRR71oZJg8sDl=s>~&u1igQeRP5=b2zTN zaKzOUBSP`w?Az=HucJpR;u?P0X`fu!*K-`r@jCN!g>(M)*LmDXz6pRBIep+fIXt7I zV@q6_8@iEostlQ=D~Xra^8m-LO~G^sQ7XrP?D zS!;RxzRY>&=8-P{!G?h1)Xg$edYm}Jf3S!g5kh;H*%wFw`WsFmxN*0aDgOgv1loe1 z2Qm6%=Nhf%Bk`g?-ZX-4Khska5#{)!kIB!$zIK9xoh3$D1`gAg>UUV)75rGky5%U{ zXF|5r#yaL_7B80s)})y5EX}Eg(gdrU6iHKi<}La3=Ha+pVDWM&kF?=&M)oulnx=y! zNa+VRsDfa8jo|Fx))wgT*nRst_k7tJ`fGs}w(VG9Z^ON~$StIsd8mF{SAwjr9)&c1 zz-wghPC?}viS7CRuPySk6FZW29)6HLRh}1A(-1;I+Vskn*_TQ_Fu_Jv-U9B~r$&3V zcY;Xcm)YxQf;Qu0b(@jtIgAA%kmvj}nZS#p3%|tJ zO_es#t(eJcvkk?T#o;`k5;Jj0V=C%$Oam4Z4d9pU^d}=B%^XTG{FF^#x2Eb<`XKNK za^-#3^BIq(-$QJ|Kk)mu376xfopX+))CEv5DSYlt`?T>ni!c*{aQW&wbqhih#>gGnrr@d(5G>{m&UAZa3{5Myu zcj$!+_6+9GN$5vQ_e_^Jgv3lIN1^sJBkGzg-}bnsLQxBb`aDytyDR(T{!PVs?gjpU zwEuOluw@y&ZnYR;LlkvEoT}kx4E1L_&0kT&Ft&JsoHwvG-)!67xC5^FO2g%)nzzk$ za~x3L4^!?}jnyYvyagta`fv<`LoQ!55LEFi>6eR<%(vH>_VB4Jd=F@-ou2IiReVITb6i|#lUVBL8t{OSuR%q5my`vvCU_!C$4fK{z zMUClH#EX1CbecBDmXyhPj(8YLjuSXfv)aa!GC4={?L)FK4<2Zfaj**(Z`a}Vs;0k_ z$43Gd@3TTfT$BCC%ZHtkonlAOPr4SG$GLnXh;dEnxqkfA>GwQ`Yp9lJe0g>YuD@td z^6fK%Bf-%`BDIF-<`9a?LT@li8|^wd=^;K@o2?A2rYFRE_FSOa<45U)rljqIA)_zu z*B{|}8``m4r-k)yYwuG#nZ{d=nh;bQb1eB^ER1$8No_(4QyPC+6WZhd$%F>^n+eVE ze>R~VGd`WM95$TFtcY-2?tfh3R{tnt$w{a?TG6o(d)F6v#e1w1-bB%CJ0J#wB#fx* zBh4;_Bb2xG3`JmXghG8GD}Rls(Y?I|&}P5TDouf=hs$_lg{pD3KEO!YGGe37m%qFp zu=z>3ey!j~yR1zJpR4ZAq@n}ZQcQ(TsrXce!JwIZ(Nl2^Bsa-ZttDz{b+yzbhIP<( zAGOO;o^oK-<|OHn?j0FBe&0YmMwd5)=#|ELhD!zdt|mK&Yb~3VTdXCk{no=qc|#Y| zw$tj8kL@$&A5BBs?`_Elv_NS#|4ewZqK=EJOfgEbCR-drVDBPDy$uxYCPs9dCC7MI zx?K{(z+Dv)%K+0{4w2jO<;6&c7Iz2bB+w2L2v56F{pSMJ=T{I(>r+e47uSKa{b%+U zb#BXrZ==Z1w@ZySt=(j_Y4w8qIgnK9fFbp(qp{b~Py}B20KU(|6<2MVN6@#V4sBnp2An)hn z*uswCxQQChT0-(v*Ra#Ob>Y@WTR{9i?09Mt{Pt6N9gv*3+ZcJ~?^jL`TcM|Pp z7taK_HeXv*W9Kt`W~)wAk6_Eyte$|aK!FfnW2(BYwL|XTkU4_Xd$*qan4O&1Vj02q zB?p9abjoDM+*N^WbGdWS>#_Mf&ZWO$jB@Os)g*V$KDl$nyT|a`OLCvd<-(C)tvd!z zl=@`hPds&eRH5ZWk7E?VhJhb+s;bF$WVD)$B8bHt6ZPf2ZzXVfxkdVy@|td&KzH0- znB+z}-o79=1J4s^gNw4UY>=|*bN+30{&)=glTT-+y71{$?_ff)El{C#hn#T)V|RHI zkPL~5QR}9ay(ZT0&(`d?6B~iduNZDi8sX@+zc2PF|sF>n#HZsyoRA-!PtlJq7<*pjK~ms-16oKWA?bDfS81>fMW z-AD<4s~%^oYKIoX<cVmg%pJNCYg&Updl>BtjCCz8!IA&wb| zp!);oFpxxXm?@{$95xVf>mV>On){9_R0-2brR=)DnbEpE{{Ipy`T)#msFi{>|B|BV z_h*hRXCox6kBQ;o><`M}&C|;Q+|K;a84TLYqoP#*GY&N<$jgQA_4$L?TAO_)n#inW zz3dLrQAlJ$nE5G?qq#H^unX42V7%A^^Zl@UxEdZ=znWdZF6%zG$E`XP#G-aXe7_-Eq4Q{ACHn&-pB^XBbx+s6VS)DMZs2QJ1|Zk%2l2SbWbE5gRW%p{ zmR#;;6sY_6(`#lWq&q(O?eTP=)~9{y45y#bIL2tpST{N2t#8RM84G4X(N!gi;z1}l z_3_>fQ}Vx%9IaNG`o2yV+z!bl!&~+BP!kwm0*qdQNF$cQ7tN)bE-_m25Ju+A|Nd%G z@Hh45>;g$jJ@biw7Y?M~%#DvyjlQbiDo@}R>B&r&dojAxj^7g>$GX+NEtH5`Fc*QP zF>#Zw{>h}cnBeN%Wj-$9MTY~hPkG|el}RIJ$A@Qv8JHq>E*~^ydwrD6hm8=+BC3ZCSrtl$}o)Z(vP(y<2IpjJg#KKHE&dH)~&{ zLuqLiB^q)C3;R$S36#; zy)$qxMvxxP0OZ&uCfWILgrQTGi3k-tPkcsGaRzzDxidbkX5LG;c=@D-Wi1XHJ_HQ! z-Mb&Uzw;v~8$$A6vY3M>T_T0%67k8ZltOKfu}tIX-Nt=ewp(wQD4;>7EW8c(bgcTC zzWbMK%?{V*@Mh%5`-EG^o03j0*psq@o74@==5vWQa#QKTs8RORD6{}h2tch-@GyM1oz}gfx5Ur?C4KKdEfQ2|Gb>hdq_#- zW+uCgzqhJ1!iKE6(@B^2nOU~rD(!HmN>9B@@1zAl`HeQz&Y$~4UE;gqRbo6ba@^Nh z`(Ko$8FCPf|3sFy0X8_LngEkB#J~bwl|&}u%Vqr^M?R%U(OHAebixVlikbezpilk! zHq6qVyEh@#&}6GPKCn!^^^F^<`vCuo;zs(eSdDM5f-VV4H)ilaR^(6S%Fzj}y?1Or zRkpk6cjM>JQT+*^4O~^)f$p{BOAI!xOt^9aTcNGFFUHIVsALU&GjN&+$9#kRUJ5@j z^%3v74v0ZvvA6m*t(L3PEPdXlZF(}U^p+a||BhM~qz}hdHeodO1}DhqL4ZZr)gj#wMt3Lc0rh zT_xLOQ$bS}`-xwhw{+9s(Tpk|=~Efl;tpb){j+g?;`rq-dK>4~p0Wl>wR-BjUEN=c zlr?{?4$v6>rr`mL)9Wd+azM3TI`K*CH+a#)0=48sB}p~%%#}HPoim!6(Pp6<&mcx< z$?utr3)ykLe9#!6P{S0p-^8gKZnG)(qR8j2pBs!S+?r@*SQ-=Warad&BsIrQ)H9It znC<4##4by`ES>zez+c=RWfp2iZ|8b9CDc-$If&A2+@{}tL!`~yROc&ts`C5)vJvqN{8#Hb*QrWl(pyihGZH}u}-Ns((%?6Bm7niV6P@qVVG9CyaX0@5j7 z>!K%)XwC8(U6Xx;t&btd@@}}wk2+9YA@BB4-0*{s>Cub5EIbSXh8|M$iw(lFB4o(G zYb~g@Qvt?GZ6?~#b*5FCv%pxcaB}`$bQL&P*{J?^FpQ>mu*SLSo>Q$3Sg;<-a#1p( z46Q=nbNR&Uw|VExqo1pkL?w~0k)1fbXlP9@OPepr1}|la)^h#uH~*1Kva~1s@5m*M z*qs6|!5eT^CU0F8==z?A$W{%ggpgh7|4OQz6kX?+b#W&4iC zFy+U=%cZgR1L z5TcrsQ&l?GsMaV9qS5;8rB};*lSF%KkGxOHhBsM)mXi-$*G`-4?H{mnI10I+3T_UH zHnpmbHg^@J}Yy+lndc>_aH3z_k_}qa8zQ?r>@TF6nyZ|S>&V{oc-a(D@?QlELq4MwTj>0#u zjXn)|R#8Z*N=SXZ_H@2d_ZH}AMBxWx>***+$~b;9^QK#V82956g#xZ48CcK1di|4@ zeBmtJ^w&cfoECV<7i6~#$l^Y+}K%CAP*?A>BiV(${gg5%Owrw(nFc~a9WD4{(Xm$wWJS} zs`m0W8vC^*vF$wd`t;-6foYFCNb(>BmN5o)mGWOA2e0z@ z7}YG?7E!|^UpuZ9wI|}fg016r%;lCRXRH~#hAknL5POW;IcPkpr^tx=V#9%UaM z>&61;$RnSRE4!YCi?QnqoS$-(+^&7{V;kikRqOv%p%S$8bY%urFgIc~_^A=|#Ub{1q zGa|~lK7C>w>AT0%;?Di8Trc@VT<+>6F(pB8#|rJon)GUg##!{~3#;%khCW&0qd~`? zO&`HFpCC9i?n6%9yxz zTDByeO>_6K)2k4*gol>QPc0X8rm1nyoliVq49S8A}6e@g%5;&ZCzEc5zYLN>pM2I(ULQv37 zg0wy8)zv=Ni_P1{-QN5ovh8+&ozD3OcO=c7ehfFr`OXXG=MT`Z8HFvSwXoUIHMsrp zoAD2bjU1CuE2beE&;(xX^E(8G#ouxl`Rzv)SeeUuP*sZQW<$9%eo(iRv}-Qu-{ol& zfGaA(rQ3p~&I9<@A5Y6hvq*}_@DGt;jDhvc>b~+%F06=94W)rkJ2_Frf7&9QcTQz) ze8yyp7kaa31d5*03!7f1VH8thSF*h1y9Ir54d z!jprC$aO2v92~4Ul1nM^HZ6DPX(-%Yv8Yteia1o8jTpKDV2!n2hPlX1AFAQ9n{Jo@ z*}**DkU&(oV)nl2-GLiV=i-(i&OJGM_?u;ojM;;}jFG@z{dqBg%~BusRG6q~UEi@@ ziSzR`*w}a3Fxp73m-far1k zJI;SB7q}+lK|kHEm6Id{zc%VdRZ@h-#!qX-jH~Q53{5N)ZEGP7#K!E}76~y|<+HsX zy6pd^CapU9zkr&gv;k$qz9Hsv8KV)+`{Z-;ymM&d^$L$;q^4vH*zw{<1uUBQt@AUaZT8<;hv@>Lu!(z2i!Gxb@t14mHlAVVXH5nMXUJv07AVL@duWq1D6<>F0Bj z)*2d0Y7&P(P*r3!UNM{qZoEcie7uIb$)J1+o>Qwc1+iGgX!cNk>VujtUNyeE#$2I1 zAZKm}vH>sB%#T-nz})uYqq!{!!n|C54)GG%Gw|y1$^wv~Z1$=*kMGuH+>5}5D#NTd zttM8u+$Gt&LpB;ZhwvQJ(r`;*;zv~_cI9xIc%y2ts?MZxyNd)6084s~*CfJ5ntlOS z8DF`*N*&ysRS{7&1sD2$MY?d>GVZG_d*&DAM2czan(s$mkj~hPea8@oLTkNR3Tq`Z zFB#3YVO|EJVdYljDpq@5GH*1?q2WCS6F%y5yo~%)R$<1YomB?d^4vny{>sDr+?_76 zTsOCe4#O5x(m6R8c%(p1E96tiFH+SdJ7#-7dUv3d!BKTTbEkje^Fn_&OXa?y9elFT z#f-{GE&GdL7?okWrBe3(Bc_$7s_mmfCE+WlQhe`hN!WB%Hmm%X`sn2HlwaDfIRp_c z7Oq--_j^89)8XE)#*W)6%dtN+D(@dN`aiV22~?BU+P7b=bvRa0vEWElR7w?62SA1- zRa8WjsHiAYDpnChA|N0cwGN0VQBk5yQBfnJL<9*Cl4t=DLqLHTrX&g^KmrLQgpiSM zgFWr(dC&KqKV9#Ct*qth0=w|xdG>SfeP8$Wixx*Rk-I+=*FMP`M$-->&K16@D7yI} zv#*f$ThYQz?>?NP-45VvDTK|-kKN%n22RzO@B=MKXWRh_|HcO%oW8TX1?~65rIbC-7C}CH z>zcwfQ9bSOyQAdPX#AT7kW=){dj)qmpeMiIT^cXs-SiJY+T=h_9LmXJi2^gNgYvMj zCp|*S>y&hoX^3lvV4Xg#IjQLvUaFpY<<-d4vv!U~(tH0t@E`y6GZH@0AE%@2#Hmap z*Uuo%h8*fp=USre)ii$onM3UId`kWGqpuSRe@}hui{Ixg~m69bq-nSo#e|=Dz!_OW@isZaG7HANuiqL zu-{|fNGqe-Wa$#UKgrGVW?o@cOYc`sPNT%s$x=<;7%?S0N>Fsrwzk*l)A=;RcN%qdR?!lS0$7k5I$jF*ea3+NQld zF4~;zXB_5T{&1en2uQd@aUS}=3YUaW_CHONSc1Q4h~DZD^c^1<(E!z|(ZFT*_xWs&^?ef1o;LI8$rP$AG z+3`5Jry{b;31znI4b|TDr~r!=EkpIPQPX$P3y-t@q7xssAe=HMDPdu?EnYeOyexgX(G0!F<(1o_W4hy&dE4 z5b`v`!>%W~@>M~}lsJX8b`aM>$LeaPP(8B7OiSnw+gNZeed=C>Um$vvkn;EoA(fss zl^Cx(?W;J>TC|MTu{b;}BStRH_s3m^QgAPWbxFqbZ@zE6gkVkws-@AJ2D$XP`0{Rm`Pzd@Jluc?#!pV9TH*E8l@B=jEH5WCSu5Sp~W zAa2mwt0K>C&)WhFOZxAXi3ioY>qNiS9}!~eLz1!R_ehdXnWAjgrHWWPRM-OMcd>YT z)sO{#jssHvPVu{9X<#y|uuS-d#?l6Ri=yv9n&qTr1LOw@Z{u5bJ-c^NGXbWI5-2MZ z{iQY^aTDukpsbXC76^!X-AhoLwaN<5 z1;<_3+1m3~9@LgRrFChg)^2jnkz52ahO968qEk9tQcbwrf@%3H28C&SN&YQ%o3R;F z2+0oe#;)c{PaJ)>Tg3QJKBYw9Q-bZ7$-tH_?b@{_N^<)9>zehoP^-oQY5<9P4qQ9+ zC>=oaCpPAW_%e*s+`hK~57Rh4 z{n|;Zf6{XNk)}ym4d;3xo=>O_YGNYSmdXZ8qef1~t;I*`&?=@$# z2CSZh;CsfR+dd#w706I;ReDdv#r%tCVIsA-ZrS{SndlFGq?rZv%Umi2Mn2hT~0i-Yr7pVaV4}*qc8$LhL zb;$}J|1!Hg)OYzvgTBFSAo;cnV~NGNw!X6mZbZ?iE2-@6RG>+!-!z-uqU_dvI3HVM z6CN+=R9P^U1$D)4(NhIRpFi=Yg>BsLG>_W3*Sj(ZLpEX`(gt(=tF#Xn9iKvWnSJ4# zj)XoYWs5Ig7rN)J2ot|NvzK`qmY$twMbwAuz}*A!_ID5ApN5-nSvsV-N}ZEZ3J7SB2yr zNeM62DZ7zO2TInzE0Hvhf=?9{mk64V9tdBiJ3Sq5zX~kT%smk$I4UXvKdg4`V0N`S zp^3PGUQ@GxGSbU__%|*_F+0}YAd>k)SN~)ja*18*XHkFgL`e2G4{;U_!{^SKf` z@wZg!R#EDerUysvN#3I2jDx~wX0}17(%WUy7oqoS+s*9~ZqtT(t5J6TWo1!}+*Q6; z`i4zW$CPNI!Ngtl#x&9DALCywE$(KC5Nxcr-HUix9>>q8e2`yWZ0?wezvHAg>~x3) zL=xq~ir=8ZYDENp^VLPJ%edY4)GVa_v}LH`ydB+ms~wZE$6KY2>3x*3Zg7SA5QW)! zL)jE1VEz+HB8gU4;YvHa)5`NK_0}JT`46fl^@e}!SYTiENmp;xIe`CJ&71T*zyyC1 zRQQk*CQ!>Vm`#Sz7;c?NpZC54Fi9_e{>58SaO_sMod;X!$D9Yb$J5?>0qmv$l8%Yw zV(X6pN`eoqRXmLzF~*^VgvveuCH?n8QgDO|BcY8uihNW&Q%NY`ybHkz+nm*m3H~u3&QCo~@Po|8R&C zjV3TwlV$m1S|bEc^sPtoY4pB23eD=&nt{zD!Wt-bfrhGr@~f78CRey$n({FNshT`* z8|IYR4dlDSDu)zy)fcZ($FduJPF@?MR-4{NW6bpd>r3j@al7(~jWRMi?>A9km6b=5_mBg4rxY<~Iv#R0*sW|9|E$Un^+3j?K5dHXJ=f@) zCzu--=}2MB@9eeRiaAHX)jFp<^I-hQN&svxE$=e2b)Goqbl8*i@80AntAV&UDmX_bM$+^D2xzyrQP0$)p0S? z{1*ca{qLv|mY3wLn>Ex!0;rL2wbMushekRbUFR%LQjL7pJ0Wn|e$yf1M8&Ub=8vb+ zn0J<)0PdGMg_V%W&`V^#h=7=psKp$QSSOd%voHGYH?6wY>NUH=Rh1`uW@fk5I}lI6 zF0osDhq#@y3n{uw5zJ;R5BKm6p8R>02SM>CR)i%Vcv;wBFpy>Yqlaeae#{X5i>`<= z_cdzHz~lw@uiv9!hQ+K(PIlsgq)qBQtvz2$ZM)pM09Ryv;{WL@ipR!;Knbu*Y2hX3 z9Vvq>9na?qEkM!lf3K~YE@EmwKkTC>$aeg{pPp9KD%?L^0RQtl!INZ(a$_6o@9?4Q z7hkFC`1$$|^}EyRmR%E=Oo+$Fop{ckx&Su#a^W5k2luqv23dDrkd>5? zJb!3g8z^7-&(I}>qx6s>=X9yQp@}E0jm+$ZkLRW56RP3+N;)30-=6pdqie* zn~~JP3gc(a7yZ%0392sBcd?zHp!pkvYO8PL+$sQI(FBu9x;A*x&0I}q+CK62)6_wIs6cY+N{j`+BD z!SGa~ew8xa$E+ovqb#&RIAf3UscE_%RbeuX{tkh?i7i2-PR8{bWzRN>9XfqxaCY}C zoe*gmtpi4)SFK-+L?3UE7De;kKhUagp=LsC>5KfV0(Vd(z}mMTKYgcqe@FT@7N$hj zA-wJ%@XVS-u{+8Vb#GQaROdbt_9)p#Qy&Scpuk!u&RsU%caH1SVe`|Sx*5CBP&K1f zTna(|MG*!eDm6L}fTW(IpNdqmHiV*+_p z`xSu?9@-3vq=$pF>K-F66a6`w-)aC@>ZpB)p0DC{rJgn%4vLZ}ONe`F?;}^t)qF*I zx*NjZbnO5uO7~Sh{Ds-T7a$1#6(T3EOpdvoj*3`Db;>LlOhvy=Jh9S_yfa1kkmQ~v z=~?v%g=W`O1@STqFg~n8jK|fCu+Zq5l>)KhGYL$UDNW5r0b>gC_BczjsW|(yU;$BB zci$SAz4`0AHub~{m~^> zgTtoi%ap#WY;MzrmIODW3y^MGTVO;Ju z&ZTwsaKJ>cXAz=D_JmNfk1U%$UmlC_gNJ#ZQ`E%NdH7=QkdoZhpUlY~gE=(UR(N9E zdo`mbolCt~_%(J~8z^D&pv-bcW_mG>x@q6t2)HQ93le~u9hF1^Fignh$+lQ=3 zEIy#dG@D0~{YRvg9B4$yma7eVuu7744uz}z}`9F&OC3lQ5+!R8L^+IZ8Ml>I|gW@X{!rZiR zKQ)eL^&xd~gZP;*l%*T^0c_|F5W+~EJe>69wT5H#m1_kKxa7 zB0fLX9ZifIzMLCF#MGEKK(G6lu?Rm$y|7zTy;P}X=EwarWeoR}EHmiS>7Xt%{m_g) z^J~aB>oTy%Z6TIgtjiMMjXH5_u9QMMjINMh%$(U0G5rvQ{VR?JkyKw8IPU>bN^Cq80@!&K+1E zwx#1r0Vn=R>;J@R`mQuqS$P`4rnaGd^9a=$h!6&sD`mv!fRVQ!$_*g?f!j_)#ZV&% z(e+Z#IDDf6>Pn+mKyS*j9&*Jp@5-n;5A45&hZ%o*BGv$|hVY}D>)UZncVN~;dYR;Q zZUSz!*5H+DW)3+6@1f?oI1@j3q9muRT_P1t^wCA(2d(~@9)>b*;jHp4QzeY96dVdc z7dl#!t{vyP2})8+a9YGjh>H`I5!A+gnvpW^>Dz|(^`;ckH?;!65A)#?5dJpgam=GF z;?nJw^MO#UX%Z@)oA3IsNnygDA!6L9;pcb>2j>vGx8f25cOUH_mHIrL-}l>Kt?r$* zE>|)5B`WO6;42Un*77AP?4Q6)q|Gd6 zGYzA_i~>y<9(af#YD~ruV;Operfyt^9^ji3#8>pkr%BZunlQl41lj@5gpmC0--013Zvch&x8H|Bo`kQhu|UXb=W}TZ&eCqy zL%p+4rWVH=8dLgc_5&v7@V#mck9OO|L4DJ=mQ5UyB#=`nRz+XM9J({kWwXn?m`#k0 zBNB-kX(iaK>>I%?W-J|Y>m4Ir=)H|&<{mrm!~*p!o2Y4As4&?RPS`V}ukaWzaAr@0 zRV3eC6#d29LxMGjrS*Bg6KhyPKS*T0%AO?h=2YhdVb%lvSzSE44WdmNC_vaQFs9v% zo;frDc13>f7^FSh@6)u+klXAut1;#U(qXl^l%8R%bI~F#6QxUOF8CT4dn^IW@26$$ zxChSRks2wNmS+l9)>tZBYY*}qsEcBhi}Ho`BchREW4dKsmOun^o98^v=VY|L(15=S zW7L8-s$p8OD5whVIej~B$YJ%7{@K`thCcLxq1}gV9xT3%lZRDq<1E(JZCN^i>2IAK zdfoG>6UesePS$|1uO8<5fmF%c&rXOFtYX6ED|UpBnWK^(MIH&Ol9f}ddP0(9E4HSK zYB;!Gs!Vsj*Ex(zdMGooE!iGq$Ya%Os|Dw!S`f6zY4Al>dH7Ad?@7@0cI27u96U)s zusJ1Ix~;VAE5Mj}czN+IIb+PV`P-a)pP3Bmr$pxv+N!>fzAU$wBif+^1YT=eOVrtp zN_xh(vA6Eeox~b$*9sVM3OOs@_zu{3sIsQ2=Qj0u|H!P1n#@=+qa`BY!ricAtaY(1 zYF@&D@E110IhPe~Ar#f(u5VqJOH!g5dwh)4aCkci?DU8SLbbks_wlfhEX_bBY&b>t z);bDdy8^fNwDXKzZP}sihrA>4n5QJ^1TnBM4|Y4gF14ic994zqKCX7Qn=O{XLXC!N zH-y=~UR$G(Gv#76llec4JakL+enm{(qukGYlA$XOEFATeSJ8jxz!*GUVC#xz5qMz3 zM%lP}((JgZyo-U~RsDgc6ujR(6QruDUs%@9@hOmc@;lZ-M2Cr+p^P7*T7G9!;)=;# zGx{FB6eoyjz+6(V9FW^>4$PzQ#_T)nJkSDpx3az5;_k`xaV{Al=Ff`<3_81Av>==qu3q0{!4Lyb?-)7nHL6fs8j8k`XVr%sQH#g8o^@uic*5j)F&n-xkw z2cXJQSB!Hk>97uFl)>S^x1<0#3Jp+ZbmZ4qm#08}KU-uR?D8M$O%Ez(70c*v{}PkOH@G8B874C_YBC09#!8L z(FFNyE${oCD~XI-Av(A!h{+01EA%+r)roYfOCSzj_h_AcsMRi~HuF+SG-RtcJ{Kyl z%|k{qxrjJa=WLaj-qjxT6cZPjf3$mF8K$(Eto=Ur2rdPaaMQQWOo%l2zqZ-rL{5mm zJB8Qy6DgX;IuL&f@?px8$X{QtE>Fjf zl=ie7m z*Jb<<{#S9%!Q9z#er)$ck1?2Nd#~t z)&(ln2PjvCeWEJe?a2KLdo{>uXV>tbp3aTESe@j?twsgZRYg^+N0`m zelu(pWx2NW;wPy3gp8u^JGbYLPwDf z#9QAXjMSA#qX2uYY%&F2w9#s3XEEQ2tD#%P+kYPzN_yEmAtK@@_0g11rxbx*J7NhA zOs+v#g}PeovjaVplisE0#ULCIw!$`p>3kN;?qH7H8~aoRa5Kk&W}MR0venQ-ofYui zI8VXmokgwqd4klaPhfzPA0=2)23-1H9jJI-@Hs2OxjfTO^1Lsma7oO^=ZOz{7pH`z^jYunI-E(i?B>BFAXv!KMdoQzv>hR z5%Ro_phmnbl@uUuT*P;}*-yT<0JFE=9kZEG4z{MDOCKkUs&R}z+N&lH227G>+Fa3n zeLy7q!;PbO#zlzsT&Wwd!-cPF3%wyKQ`I#l-pcmQ(uV&};v)-&jn&9ER{xy^7UeoB zO&n`QP2a_4B!BZQ^};b6cF8xR8B2o2J z@2H37+7g+za5PklmN$xeIG%fp7+Ib1SJdO~7a0y(iUl&9G1NnSkNG83%a!=;J8JbE zetQbbusO?b4Zgy}op|#^1x0v4s`UQL`{b{Er~mjR!mU>-87)G9V4x>R>Aq(L-%j5? zw003=Nv6DT%M6pU2S?Tx|8mn#6A*j@S+geuabAMn*s~T5FFhEw4gK8x{uH}6$af)K z)K+pRoYE%YcSQ+=%Tgc5xA+o7`y%4|%5HBgy9%|V(Z9rJX#yl3Mf&V*h7~VJ&fGyCi48eYeOU;blL(cQloFt4$i3FWe%_6_wlu zfg6f?{_bpFV;j$5l<#QT?5&7|`Xa{g4)uwx#u`&OXwaG7jLf2c74u=dC#Ir}pR{VP z5FxCLp+}?GLksT`u$i&D{Jy>4cdEaDVM(vMKC%|lVX#Q)jepLgP)j*@PEJCGgjb$C zmCZO}4U?_#eKs#Aiyc51pn3#iZMkHBVv&`^T&-+55xO6}&L>$Xtb}igSmv8WFjO{P zx~|JlDnQKHN$|wnUKFc2F{6uRYT0 zEOIHXAF{P_F+V{fOQ`p+ktHlLfUGRC4`uMXQg!b_X)80XF(oh6L_a=3$}8Z!M4X)> z9_J$ir=0obdt$t-8kDGm?!8Z&W`sJw&6`YdB~~$w7GB8nqzCGo$Ya{gZTahd^CcF% z%N92+yq7B`S9vrsjaOjY>)4^6o!GY*+(%a7O4QzbFEjM+Rlva7Sa7;DAgxhT-d7IO zriC#mJ>>fGV7kNxQF>j27%~KM2K-c(r{C$XxRWKBn^Nat7_-?J(;+Oty%`1n|BxN3 z15;m2-^6)2rJlkp0APpgQtnc_AMwS;n9&F26dJ?4g zJq0Ttt>U`q`@2$5c&7G}HZ|+rJ}Oex15&W6jD|N~;Es@$jOIf3G!9%epjU`Y{o)f7 zq#NIj^Jdrz3e@2lyUfhY;zU3#-?tAmmGiBGp%tMtF`y{DwiRY3%k9=T>yKHk0G(DW zBubxhI)qtVig9RIwoUP4ZX6giD9XKm5$q-5gVfY*jpRDH5vXcF_nH*cUZ@$o8XG9} z0J0j=GN&H@w0j}OCT0%~8>?dQRl6zYtiIT43dd|UOR!4<+d2w(FFYLs@$rLHVHy(o zb0S8i{J;fyY9d%poJx!Rl6$4f`xtC~2s_Gn+!`s|Z!hZ6uyp-o(Av@taa$oMHwH0Q z(}mEZL&v?LEtw>zWlkT_fNmRjn=q5{S5hw&9%>al|7CMZyF5IhX?OLbKEnIa2@9LL z*@%|`Dp_{k3Tss>P|%eHbmB<7RI()Afzj2#8&dux?{RLwa2^wW3 z*)&%G&`CtL;5*lq;Vxiwa7ddT){D7BVG&lPG{p~3qXe2e90kkBWC7e0rmcmCZHo^F zjKf^t=rQ9A5LbPnI~uS3h3=rYu{egK4e|%hy_kH&oU6p0m>sWbkHYe%yd5>pOo_)q z4&WUotR}NbPb^RLQ2pYJE+J4yqFooq+0DDtpkM8`0>cS~6V<_CQ=jEQ zo-@j7kHGCuChqH^d-k|1$BZ*3h7+3IJ_KT{#sz_aZw6=NT9sZ#t}SEhbvzD)_Cyp& zy#QgXjCET5%llZz)t<9i2BklUtcqZ@V+z^7QCW-DMCmHFIggSZ+AwhwbTqK4@8u;R z+$nMLO2+L0MqO<;QtecJ-CF4XM_iRChmsLCoK?#XfFzwq%`sbQbs(BG`H9oD!EUSN zl)+h!sC8QGQ$I)45ct0|^2lXE zoaXrKo&m(oU_5kZV-~s_E9p%U#dWs4%dPbTXQa5DNZ*MWqI&_#ZwM~Rt zwb1?f`%fIhoBXYGZ67e!@c#*M9)*Sa9JozM6tNw}a zD$<}_*RWYGx_QI2e-pR%UWhxvtbYRj%7O$0Bh4z$`$|SUMVh@8p2KP({KWf^NjM+} zr=u<=;hmitn6@)R!SkvKWexYl@e^X_FdM}RSE+9%tE(-Q@{UZEn1OEWXHJ5~OmBYL z^2#`|FavB-76Lph{c?f83CM>&KhcwA2jF3d3lVF2)l+!7|R9X3d?jo&2f$80eJtdr8OiaCzp)Ae0IS=EeJ0xIdA{y5o2C; z*Hz>G?@eenR#ooRiZtVo_sn=I4t^HOI!(|&Tt`C@j!YPBEIB=Rm|ckfuF7=ro2wRg zJBzv-?q9=tEo$$T%I?vaHwMdub7ME7boPJA3s?>{La>%ObY^2 zGhI)iSr$_)&J;L}4lL`|d$6M_8y%DEht`jT*51iYaQ7y9dEuD5XEGEwI)XC6WkBw* zvZV`k88DWyLxTn&=m~3+ma1ZF{rgPgJ~RGiBEV?3T;xwSd%FZ;TA0~L@ z89ao5K8Ac)sKRJAggt0_A0fFfD77Mhc_vd4_xAu8xTiAbxQ;aIp8-PFXGHd-;kXuMIXQ_I@Rf8uV^|BX~+;60?-u2*ZHh30w&V8>_i%9Oso7t-IWa1fu3- zUjR;}<5BX`KqFz|#l!TZiFOl^-N;55EqdNz3PY_rIl7EOW&8RhO%?s^d!@2!X@4@BFbL?gVcaPT>Ps_+j ztP<^sY$Ng0hPIh~mK~bI_&0V#hX2p(2GXdTtx{*FZ{#Q<9%WO@gdY~IDFVsA3?LnJ zCV1V{ran~O(L+Rmp!I0dK{}8KZN)g(&?~RH<_s?+PDGZ7tv0nzi1Z`8cyOqy+&-b9 zersGwFQ%B2FT0oE7c~@1Ll(I?b6rlr@zdDCqe?N25>S+x5(QOd#|zZ9lxMY>zsR7m zwa$vDM9nO9xa&G@T^z`dU}}}kr&O}IRU1ZZKM!UWnbCHi3A0DS5PdfR6at5c>Pf@e z*Sx{upZPT4$d_$N5w>T3$%4{+y=xV9xIrg$H!n%XFr_{)NIHrp?ch^N7@J6|J2#xS z_oZRpt9#RR+}(2GX?+JJsA)4!W54`wH&ptZegeaMVvVno9Z;3E)oXj|nnf&&xZX$4 z`%XOfZ~9~%0%KT{?bt!|@8T@1Sa>o-8?{Aw*gCYl8LTk|(lrZRgq#p95n!zXKbj zz5W#Q!n6kq;_zR8+%bJqa}?HK4W6 z7i*7gBBvJ>Z0b}w&=$ahA1yXFMStE#2;RLNQg2u%{B}Smt3)Y~;v}aOJL=*)!nhJE z(OV0fDBi4=06$;^p^W^4xOOzcDe)83(;a@x{NGrOFola^l-0;MvHKEyDT8by#KkHb zBeG7TX>lywNB^uvEoS#|aUNDE#Dmlfd;a0fjCJ&Rc9ce_z}3_N%5W5m_5)QA(&YYLD6}NmORP~*2v?RkQ#p-&0eM|4y)YSD^<;aTS zwXVo9L!`g8?rZ4pa@9+GymTK8xbWyQyD(_ecu0%&@0 zLsuZb%7ikl*iR~8yMZ7~MZkf2HpA^cl8Nz9Y1Pi+Tv_`GR(W`da;lL6?t}(1!Z_Ff zXtf#D3PnR&t`D@Wg#aL|y|r{sk>KB>TehqQDuZV6t|eQdBDhUve43O3v%+@6BT&=^j=Jo+4qjydX>AYgP0I}o)*P;8Q*MlD05!2g|dj5dq4 zc`F_RZWt3iYMZY8=6lY(p^a1f4m5hMLicp9g+w=IQdc|*lQqBC4FhKq?r{p(sh3^; z_L^tj0W)$Wz2Mi_;@%S&yRViN)~Td8@YVY{w1o1N;v6uze1LjD#rsH`w=<1aXY;TE zIeDc0X=1L&geB!8leC-)f}VtONHx&DwWULG9MQ7BFXsAzXxLvzp1Nv^?2%e!sj96O*9iG$x@ z`w>)w)|Cu0A7_$KNYl7WW3^SYu@K;~>kn~yzE=4*xNB8`5|6Li)ZKO=BL&`gc2Ta_ngwgj!Pkn7h}IO+83x_pv#tQvQK{`nD}pd0sVoT5#F?1| zjB}Sd?`++QlOw&&f&v+!ntr34(O1cu1jjb^RB?)EhiuOwYwQ!+8i;{t*QLr~@e45@ z8OQ>i1B-`J>%8RmLpyXQ_J)8|%z@S|OED=D&T$r~$HQ5Yw;c_u{-8D-e9h_!SKNMs zQsKB@D#cFd+N0ac&sa4W9okf9O;oQxL&fP94e@);_Lp-syN0wso8fgESW(@*%0XV$ zgrXza9Nb`%0~?12M=99pNNuRfQ*k0Zd3YWTxu=_3_OA0bz=8`U0;k_K6y(v?69ys%ZW-SE!&L&E& zv0CO!iq3PrZq4@72)8=1%Q!I_)aW3B7w8oJoh>UEkONHuFz2=p{0|6|^GBnTTo(_) z7Ga@7PKK4=o7xM%nVI$g$q-rX%gPwqGd##|_;y)sNKhnPLonYPHxN~!^(cNlD8@kn7zZEB`&rPO`mO=R2yc+?|#ASOAndTHgbl%o;R{=_)O3(SU?7u#h9u)mS=lE#M1OTbW*-A_H0 z{7pA*gcBInLmRhE_iXpZLX;U{oUVfD_mhzUi283GQR=7{p)tIVqzEcFMIKo9#-p>z zeGTXn{Xb=P2HjkjxeXSv$Ov;9=iG-!YIQyRFsBKw({Z`hNlCAjB=6KCiF9E%4VU`lAm~ zdl-x5QWwx#(=7cc^fES9??g!s+ld-*>%_7ce{*e8s(uir9A0#vd>Hjm2SCyND3Z{p zhH%;CH+i7$9oK_TC*YVH&9r^0LGb%aku*$e&AQ^J<<@tlC<}WUmd}_=zoyFBYI9dt zeb|*3r--!5WizaJrIaO4K>B!4VVl%$k=AVU&KUJcUldUj4EzRA`>kmqlPS*9lqHOg zU>2maw#qaVPF)0^qPG~m-0#iFB;WfaPLIfmZZsILJihgPX80=Enk z!a>f2*G*BNBqTa`7B6DSUHx4lr0{56$XLzS|8HGFV+Vdq1 zNq+|Jmj}liv@D^u&F5TS;2Nm+MuT9Xu!_}-KgfA6k~kqLn0lQ0K7OR+)m{<@pSz9% z#v+K5ktXe%k<)*&918OYwLav(I|%;LuKwgZI?ZF@76ej?C40d9o2zZ|Vp8wW-qi!w zQtz!k{x-WVO{OcpviGVR79v;XGHW~-nKuilpr%)v!`jk0WPyKA!5cxXCk)`&lyzbT z-z(YWzN0^B$hUK4yIhx{8a#!LldMHY52v95RkCz~E*56>a3v|(W~S!{zqk%&s^hzAFqwW=;nE(tc(~~3 z<$*XTRlKs~L0LGn?xAhG&`yE)i`3)qbnVZ4^H`&Rj6sw@MkJy&%)GSaTm5|bOosSM zZ?IwLC%@Pq*k!8*i-#-nkS+Gp7~=1p!xl5&hBBO7*|0gV!6%ZnkiKATnkSZ#CKNG) z)?Wu+e=yj@##^jwybOD08+#!_+jS)j6K6y|^A;hum&50mWdN+h@e(aza4I}_9xBpd zNy(WuEIA*Qpx%S;*06EvJ-os?vUcm9(oatVZ z`v{vK#vtc9rBj{}HNxwt*V};}eDF<`VcrXY!grfy$ zFyJh8Xx}B1Kpk_5#q@>Qk^}}Y%2DYV-J??$XrDMAZiiHB&qBU|M~3d=!io>U8$DD# ze?T2lyV%-Y<#DEi8(0$mNl!!vu_X}EJ;?5^+f;9}mQ0jYYdXeDDVvwOT%&Pvdg6$j;2i6JGr>W8h)AW`-4GZMyisrvZLzF8#|OdOtoXc!89LI}`&I(`=TvM>B<_CA03o(S3m~>uAjsKOE zQQ}!zUTR%Ps3#(r;I&uI+{ap^3y8RpKGGP@>@@NJS9uQ8XO|&Z@5!dXL;mtedhTm} zU`^(z=#-_jTl=zWDOFYYW@aJ_40~09`0J3XS?bankJbP}S~tiQ#Qb8(r}SOZ6>#a< z_d&`Lj5}Ax;1$S-cS!AcPX}G5NHxfncRn?K(sJ1NevjIY`tsr?L4%d@)MIcA>UMMR zWNc*Y64@5b*EtszKFo7ZNo_}OacmNv%X~6sKA0B?b+U_nBThWH_lJc2*xL7OEq6QW zo_~bu*d9|)h-;W^qz`Q7rOo0N$}7g>ao!!D6ia@d@D3%!C~f-vCWYBnF<}-%^XaSh zWM$6uLO#eS+_J3X!GfaG%+NI@n0(H61N1qtg%<+(=;2nAu@M!(~^A75#JO+24Kq8p`ZkIbF~KR0ZbvBhJrY1 zI-ok@nM(tAunFgGxm1M*v*-rC26QC>-v+jOf2-{TW)CaB;OGRSG9ecv>xJ&FUUsn| z?-Fdb#>bM;Mt58Do9J_a`JPPXEU!KC*o~$^%fJ)yWc^Crwe~In_J&YqPrdD;Vx-q~ z-Bw_GboEhF1%WIETw4I;d(^M4mE6ottrG;qDsrKM9J%4qDntG@(~6$4Xre0h*V3ix z9}sK<=HLQpN3GeOR;+F+oY|SI++^$^KeD$di{YpQ|a#y0Jouped*zI;D`k0)`Ev1w{QC;5%wfZ(@CZhTgk8HD& zO1J2$vpm2mFl&-Da4j|VY0u4#8Bs|eDmzo%&6%qmXBWkv;_N>q+SMm6RbTfSu8UWH zCi?{Xu|@27eMeFVP#2jDAtO7-&()G&8DBB}G}&cQ!%g0?etFv9@Mu*$Y2Iu_5VSHO*X)smNp z2CU2mWk2Ff)mGN~w%C!pF<#Cg5coRNqj`fM$z$46!-9p9j&5%+H~BRG83RjTf^^7K zR&;F)zD73XUC6}+c>UFF+~fD&GEHRd1~&aRZ{eT|aa))E-8y!LY9ZH#yB4)Gdbo}N zLPk8yJo2<5fzcJCUuzecKnsdyKO*>FFnB;{hd)$VB?OwauqKZ>Jp6^W?RK8c^ADL9 z&5M^hxl>~Iq-~^Qmp#gZuiwr0zU+#ixa=wOE2&^e1x{%pmKP$DUDr_D`mD+8Np}1| zl;gAH=b6Gv8~PoI!#OYy2llzpA&>h5G*41b2ljTU75{4tz2X+*pDus{_)xQdoMblc zx0dINhi2ovVRj>X-BqsKC&{%oc_Y(?ONH&qODt}VXxeo<-=KP?Q$GTaptK;>zT`oh zfle1)VdIJfQn$5a{Ro?dRSm7OXD6Q+=i!+(IAqU4u-Sy38a^Uwy-X)ux+=83hFPWJqY~H1#u$eJaT6oek$em!S!I|(;$p`Bko>hU-!8ndYPiv z7D+n#vV6}@W2Nc?QqPfP6ukTHxT!f;+n%_9N{D*$*}Q?H0jJG|8-=*9H*>WM9t(e} z&&FQE)w?(0xSfi85Ftbr)RX$w0fR?HVt`S1_HsdG5)7YY5H6vXg$<&U{Z!&~^lnc$ zWVWS`d+nB$aj;5H^dlsjAXlGqLVRdgB&u8qf^k%Tx;w7cjQ6OSeeRXf__75&E^3aG zZ!;nQ$UE4~YSzWTnT)00z}grd=Zv&W@!LGdCxo~;Z^bG{Vky(yp;yv6Jro3thqWxt zfv^`Dw>hXSbE(DO*c-KjcbQ3p`?0oN=)}@*Xv9t_6m=r@TflqlXbFYBaZ2r29F{2r z_GnGKmoapi0=?anxa!`~uJ;9>r#<`}mH~!Ej}D%UF?80buB&IS@__G#qO2yo4GdV! zPW$-?3d{k;#stqq#ZyXU`#{i#xU0bfzoE_fp* z+ik72!s+^*V}EK>A2%HlRxq8TavR(iI~)5_3(v3E+DRAv7CQ&u#*-qOyz#?>E+iLc zoH{p8F?$tNt1jN;R85RJ-BQJzPqfwN&H=dXgectscZB++^W<9|<}8b3-I-I6U3FF> z2BsJXdv!1IfVS&t0oCoL@#AvMgRH`|^Uu(t*Lewd)a@w^wsm^lQE-E8wz{XcXc1iR zngKS)Tyz9eI*_0c8v5&p8vY(xnFP%efyYNiMjZrhxtLzu0hbr_4{PU8GQVSmyR-uD z%O<5?`(2JF`MA?&c>~S?b7zZ9Z|t7Vy;NF29J4aRr=oL!PY=?zZrL5OU%{byVC}h& z9qmsQ@YGq#G({fUHT`CtBp1kQR+-k>_Jo{eZ@5gI@w3zBH0-&Bv68vu+*+9JR@V@i zD{;XN*iYSd!QrgU-slJFsLo>Zn93J*aPCdjdZF3In%#UeXOtpR;Xjx9g zMr#+p-s?)?=@m8*LFPwV;7ty$ri1p#u+ILd)d`lBT>L`YN9&&ruV=P}rN>DcQ=klZ z;R1Y<4h%G?T8EWXD8Ft?KluUBbv*bSa>5yBHGLc82g%@s@HPE*stgcIm7n$OO@ITJ zm`1!{72Whe%NxkaB{PI}<|X7+3Lkb)&WaTSQK8FH6+OlbTN*YR17dQ@IDuC(Y4O3t z;Xh;@jo*y-A`s2MxCSWzmA=}2j5TAv(vvyZ$JBD3C9~-_v*}s`_3;PN z?R|>D23)*k1y92|HQ<4_fVr4u7r(yv@i9r?k9v(l>?q5C{}c#mo-+Ixhk5&Rld_Y-T)pnj9T07DGuIc;9yJEMZ=5rxI7!Xq$NAu|$o0>H5Fb*dKkhV2fkz!JwoR>H9+T)e%JboQr}vR2a$P(y?W! zw6fHUC!cLjB`xlii<`e$Ll;J2&n;R5fRE0-RYg9VEWzd_(-PMCgjb#+K}qaVMS)L+ zhGf^->yqH2^g4sIG7(cxcS5j*;V&O(l$p-Kf@VaDmA2p&YEjo+_!(M)r%ZmGdg8h3 zZdpDK-w8;l42@F1B+kL+DNfofP)9a8=59bm{~G%--&4!w zW}^43qB)b}84b!|*+$J`R8Y};NtZb&Q1cLHN>(pJgk09-sn(+bnSYN zn^5)}eT@7#U2;@u-clpi(Z4!%hjiEf2NxM{L)hw>YLm25mwI&Qqp-ohXLH0JXiE>C z*H!RpbJ;z*BZZAo`A5y^@^xpVuqut9Co@bXJI)?q_X^@`ie!F#P27RrmztI{X?91x zcVFzd@nrVP{r(B-uU;%%5qh=B_J{j7R^EO*KuX=UbL5GSPs90R<|~R~wmtiG<<1lL zhe^*K&2F8y+i~IhnadVFIJ4o^QM2RB+^()tzJ^t&@vC!{2i{4xE)jNYAZZN({>dOs zG^|GACPVDe&hYbu}-ka{tJ=I?EJX;yGmA-T9)dASW)s|M* zTNU>$W0%wYq^+tw&z>K6axTq-)m~j0g7*GDoV|Hi(&_gJwScfD^F?Hke}Iv0xrf--`wQg5yP zLuHG%m!Q7$iyw2F7iJs<`>uM%xUH{}S4zY55hM6_H zYQ>!Meha2k@2Q^TG^&C+8%f7#EJRC6SLks=^x4Had7j9M^(8#fniJkST>Fzyb zH~s}U60H2<>KmR|m>>DLeS7D3R<@7oBC-yD664S@YR{*_u>Iu33-g^Q!OS<~gcUcA z6+uXl`dn3xpRL@m!9Ck@Hvenr!D_H=EQU6!_sWofh6rgU|e6nLGl1 z$_patbtHxXZF#>3U-_D)`SFJ7feW+v^Lc)A9Q8y3P2^!S)6Kfbx!t@;9{c6mPv^OD z9v>sEM~iQE{8XFt(+eB$++CXXw=AM?-qa&i?sH(a=BX*D1O>WN7d@B|tnA=d;MC_o zfr%+yag|raU8K~S`Z;vaR2OU#XnZkJseJX@^f5j-co1gu=?Pm<)>epQCaXx$!cINt zIi28af#_FCN735_?d?x-x|t9l@AgM2J-*J1R;>X4^-oKx5g}_6rC9_x6Aedy8`TL} zV^A&rPB!|q<89b;4nKB5UjD#HAU@*t*691wP>>65CPKLZhL;DHdZdb45GKwa=khY8 z2W8kzfx1iZ_JHHm==%aVL|1(AV@s2u6^va0NUX6C18GZ$Rj@`Bx8!;=p;}C4A>Z0A{J)yhsj4b<2DrJICS2*BPbk?s0$_pwxlej)9pJ2 z=AoGqey#e|tn-RLY}W~Da?GQDjNNj^$h1*$DjU-^J8^eqCmg}!PSXp5%V0G1#xlXq z9rgK9GW}30M01a&Q8qeqFqI7StyNzefDimLnQ0JiGSJA835~!Dj^!<$TS7o-JsW3N zzf-ha2BDosVqdqG1&-lfr~d~WieVgNJ07SQAE)#*gQ}tz+J{F%?<0A_2f_80I;TAB zu4@6mf{<^Wnw!!rHxyn?KGovxbk~TlMd48|m`jPgT zMv~9&PY2ABrZR%X-(CHkf5FBUPt^!ZHZzUQ)_W5J%t6&Dt80x*5Dyav?jhYzS>iOt zfl2qHwmEPlGxe>TLTjFusG`#jV=^r;$`@)AsOG5=?XtALaQK@y7ru7OD2)^6zv!9` zj4a2{vjr4g#~qbS^or1`TZMLVd6+mAu@0CrC3!LGXso>Ed!$Kg>GYm1dEv$1TH}0N z75&j#9A6#4e+|0CIYi$9$E2r%p)N_o_o7aL!z4XobL+MfDEaGwjExS;?h|ZoFOQ!* z8(!OI#yNW5Jwr0QQk-@5xl8e6PJdsKL7_xM;w3Y+lpJ1?SbpG&JcO*giu7F=1v|)V&jufSvFvOHTnst zcHF30q|+KGEZx_-?El{Eb$C5n8`q?MlYk4MYf?q8$Sprws`p2Pyua2p z<>)cYxCcRwksiqZn%|!Adg~R=*gKlbqGYqxnB_f(y?ys&f88mw4Xjtb>V|72X0@PO zmDv5mJnk&~gdeE*F~5iiTlI@oa#C3itXW#(Sha|m7xMVKDqXr4<4cD|_c;3ea7EIt z2yzr>oLbP>|G_pJoT{(qmUcpELHvsb8(w`^alS71GdVx7yy~p1pBJ&Po!SFq&jgLW zZgn(k9J|8mvvQEp2YG7=BXqt88JQ#-GS@8j9>eyb--3w)Bx6I)rS@86GM7n!9!hiDe+282qGxj{}&urL0EA|O}POedQp0jMqO`h!ceEONP*(uD= zxIP!+CaZQd;6-<2T(@(udWuol1;&(uUG`GjA9!n{PnF>^yHiBzsQQPAVwnCT5OPYP zHv}8ME(%{*lZg91d-ZYPXcMN(nl=ghqHTy9>c27LchIQ-Yc7v;nwsIfy82USdkrs* zeLEX7b>}IVh~3H@4OWVsH%ssN9YdcN5@7OZeocEZ(n#L8KUKA-);u=)Nl>P8T}I7Q zjY2gMBoDxhq6%q2vKDcEa0%OY1=$nLUHdY81$X_xH)c?`K$GI(=6ZhoH3wIGbeueW zk|6zd8_nV8)3l{aE-JhD2mZdTP;6f2lx*q%rW(g0W=}Sle`Wr51FbN!bgNTL7J31&s2wMSDIXYB6m#kf z(Fc#yjMI-1sZnEy2Xb^;Rc#8zeUCB71$}r*T2y4>#iE)>5GaBGm3f_-9X$&FWpFEq zD;SdYXYi2Ny%wLW@k!HNUc>;<%rt*UR55N0gQH^kpW~uCnC1%_VK}fv`J}_^Plgoz zJoiIKBR=bq6ZS$^f2-)=?$2yDycu>yWIACuBdfdb_Af5>(<|(HUkE9(Z3Eag=3Nz7P=3l*e zAm3}=RHPb#*y%dG5U1QdgU-#B^0bq|Dhr#FWpOIs+^ zu14`S;})crOH6#BqFYsC_bR)+tQiFZH^uvHFPU8N=nYI?aimhR5Poa}VWP}A%l=^s z)WQ|J;1fpvsnHH(_CWRLom~b{SvMmxpoto<-fS71OjV|Ph5e$MVVZh~i#?^4IOQi^ zbajphte**c^;F2kPmEHv;wEVfR4m1Hi6|)-z7iTA{F1aL@w#4D^{p@kq^ZPfYVd=M z*9%<7Yf*CC>#9z6HkOuQrw?SXsB2nTLu^Ax8m+2n#xNvv##lMEHBeXL`KxZ$^=WwF zPtc^S;j+Fu)$FBru5#S~N3g}$2VxklKD*hJlj|N>YX`JdZQf83Up!T9mWUdyR(@4_y8f8G95cfDXIzC-nDQ> z*nQ)3tC02APjQ?A7i8NI`HAw0=+ho<1y1h$g{n}V6?yZt0ut}M@CD1x$5qH%yB@9D6Tc`D65(k$<)!UECf)o&RX- z-d^k6ahej#A3}e2^q4M#rnJ{uE^zdwv;}ap+#5d)R+}%MkQsU8^wo(z;`^DJ>l!d# z3D#@D+FD%}zTp>~0HElvXf2i|O)aF=d5J^U_J`5D%#xR?cn;U^W}M^RW7IWGUw57! zT{_W|{4OJqYww6Pz}8FO)P{&rAOX?`H`B%xSV8aSSn|DleJ?xqIs%tgToGCa$};xt zAUfjau=Qib+Z=m%pV&ukC0Lw$y5p<~KTEn*%(Hh3^6|ygOD3-L+$=?azz!*+cc1RrZn;+<5vwWdJhRIESAFlaqNxqeUD|*0o4;TE9&3NnB=(41 z!%PsS!*z{1m#o<_GHD6=$=P3)@Y_(<=s&Mp!^!m0in(DgcJXG6a<=)^r6NK9+0{IU z-(FBGT{m@ROkCgpvTO$j=lYF9Z5NyIyF-G3!WDyEx9b4 z?)tmj0s2~j?hA;Z!}BWGcZRRg5za+|7mwTMSL=c{+g){e8-oa@PAf;pOq}dH+0O@d zA$6J+wJOOe+K_N}{|V_BS~;->iE2bjpYk}9+kzcjqUi0z7C*68;ve|r1Gl#JzHMzm z9>eyXMp{rKkSZG-ouav4(m zEoiS9`>IWyIK#aKEtZDC2KtE3nF)u3_i74)M~qHJ%DLU);v>%T9?zMdz_zwtRQhB_ zf61;|*Yp=;L){l^#0=*^m$Ym5klW-}Mkl zjZi*EmZl6%4V8rk(7c=E9>6+rV){2_WJ#(BFU}7uHZzM%{AkJmp0$txMiFA* zY0cBtr&K$4XZ2bNE`+MqWOnE>9N+~lK(th z1%Dkh(R`09r5x1JhX<^7^uh}Y7U`h$9&&&=`oI@v0QaE4T$x5}-{>{*YNs!*x{0}6 zyuklJ)RR(C55%qye~081UDrjRv)f|BT$b8JUOKSS6#ovq#L{;mwH)dNE#fVjFlhIc z4!7mH;|e3Tsz1R91gTSW<2q@oYj_??lckSK(kW}3W=~Wp-?K9fcU1TME>C)W^$I8> zmqSIX0NT~y9Z!f)gpAwJ|%WN>d7TggZ4Kv|tFC2>T*0 zpGg{$`g0FTm^ryz>9yUJ?4f595{F(Ke|`P0zQ3E~>~ygXZ!)#9eYFt#7)%}t?6pSt z=Fc5dcJ^PkQZienHxo0!Xlza&+nYLk{f%&IebrgB2bl`ZwdhY?^$(YFKb#?9t|vYA zgN*+JRW^six#FdNYVqwwxWQ2DU=f?9zo1*iUJ?40;BwyzR3&mZ4;=0ukoSbDMpM;f z%sT;1k;)>|)ZcZBM_GM4%+Wq0`2%fF99)kc6&%1M3~zj4W819VVi?>G*$~Y5$$eP2 zW?3$=*|V_O+t!pL>B~_pwM8&nPXxc2Ibm06TUoTUmSR7Ov{KlX*?75M$^iFYY%fgi zEK1Dx&9c7#JIqRMXwpe*z4Q89>R4hr!Tt|q#GiLYjE<=D-1dMfO<- zyPd;Jwt=8O;*@u%`JULJ=;4Xi{Z!-9vvOhjz4m*)kA*c4lO_d_^ z&ttmI8S(!hjIKGYUDRYu*B(l*fD~*#vg#zo$pI3PO|G^5$XQ}hrzte`O4^hF2h7wR z3H;9_W8A{&1N7@Oe{;Mla<-&S52%#lB{@n@#Vbv9-q6=Lbw9rGuF_xhYWRKM4oh_4 z4C6`5EMsZPX=>s&LZgg+n95eKUtXvY0Z13oksLm(x|`*gBU|9vau%JXJz{m^kZmEapCq zIug4Lm3LowwWJdCUYUGZ4EIp-OEULNPKn$GO3?s0;)=Wp*DgDVju!j z?3Yn0FSLB6OjqcI>ix0!hpvxbQ+iyr0+;^58vDsc!A|7$HNUCg_Au~bh6)YRd@<0E z{5~mST|}m}0E+K#5wT&kwzUMHz7#qnxKSv7lokaL!u$^$%e8Vsc?-fQ-sLSup;DvL z&)c#Z_z_}n?E@>ceN^h>j;0S3RnLvAY?K-`5k%;SvSKw{{WKl|Cse)RjLgxu@Vt4+H(Hr>uyxHm!`BDJh%HZb2!7M zHp-cp*vd`Azg6w7tWqgYA_!K{5b>haxEj=YkWlEL_!6rTOKc(^QPe>rguh(7-odfK%7M|VAXA&$ zyAAEz`T~cNrU|o81y!vvopK9vkiu&UJ>-XQ1MF@-mTkji%A(6xn3!PjcX+wWh0Iiijl$b zJ*JkcD_1IH1Z;#>{kpYSlTAX8$UG(Z=mXZw z1Z>`;PfS8xTBLYuUhZcomKxPu8k~721)o>0djkmH{0y2ZoI1IWHW`i+n3|hb2WEDU z_o-YTe(j1K^7;pr{JR5Wc;5|O21kLWUAu-;k${Y&MOBU?ogdV4=36U#jyarl`uT;I zQ}aYbwnOkMJ__%xl7#H5%yzrxd!GBWHuR?LNcaQA-ueu$Bt>puFI5ms^r%qn8zj2# zk|8XD_s*>e4Va7Yj{9iIC~~7eps4=pI#?_4A!mz6i&vob<*!qoe(sr2iyO@sY&8aNFa`$PKb&MKB;uP2Sbe;ZYdi7 z9`ei=(avmO&G8ItPl$`GJIjk-aXVkLfTY?^fDw2@G1(t@SPB1I{j*Fo7I9PfJ5u=c z>lz4fzi;`7OAGd+x1@@Q^rk3rj~9xn%)|G?oAe@@PDDd#e|dyDXQH(MGDVS(xBT+Z z`M$O%(p*xrM?mZ42!cP&WdQ+dF)Qq@?Yaw^5C zCI@o~P0De4b;)U%gR?yx65_JWOSh*8Qnks!2I#)CI0SD*OWy_o3v4>%?1(zQevhlKLxHSLq>vQaWsrWNa{ zNNG4uW`q?a-~?)xCITl36-R8WPDt@rpUdn#xviFbtJ23)d(Q1`Y@OCT;t0aoytt`T zol9^BF(>?X+Y(hlGbSg>G$AeyvYINZg`bEiMjY(1NaWA;V;T!|rLeo@j5fL>Yv{zn zOtA`B`e-zw6jrM)ACEhRGh{->9 z{%yp>30@29M3ztrhrU`mWzA`;^Po0A?D->ls&KQ?VUqlTG8W7C=iVzk3&9uzq62?I znjKe6F~aTSV1!u}D&WRMq-1`)1-ZB#DcKHEjX;-DA?ke)-ae?Tf+LBKxGiLGhks(C z(j>Lutb~H+U%SdRo==c-)pBS#XDU`%29L_Kwsgb1T0~K0g1HD>174g0L`%G66fZ)l z)tsd){P<^7(?T0?x{}tAEe`ZD%bjU|W!geAj1JzFLrh!>0iOxLakKhJ;jEhB-5~@o z=P95UysD`&V6GWB*{$sQtXmfxe`+_fTDwgs`tA}f(^gvxKCBOc$WB=(hf8xPQ4QNI z6Vu}6PteS#9}1teN#?5S+DsX)I{y4_F0c6Lt!-Y@(vm9*+E+VwAfuSp`ldKdew@`39niehx@oxfAxH9srD@c&10sZhjzD85d2>>^IL7mAli88JcN;6zS(dI4v-g52YJ;voKAmSbvkFS-cU439-O!5w%`5 zF~lji&Rz;WuHHZLe88wmIsXRM!oKhD!#KUh3l#WQz*NPp55|7js2Rah&;W(#j#nRd zQHoIYNYOVh5~~xNNOY&=<`cH&4t(W$2AlMV8@26rX5l0&u~wSnr*)^gG>W60cLwrm z7k+N;xqkBdFd=vU`^)7?A=Nv42t)hRmlF1ViJ)_Xx@$z=#XU0mH9@&_rba~{a0Tg@ z7buF!gK$d3qU=qpN850h&C9V^hn;aJH`c^;^dLAhTr*Jxq6>Ux)i3=C9oB7iPSoF? zQ*2$ef(jnctWzJ(`^3;K!t{%H$q&e-TcBi)n!3~nP(=XOmoroXq&AbWvcYTv+;`8k&5X75$+l{#4_Vl>Y1!OW8o4~iRxKQtE76g1adMa^%#yWvgM zjs|L7C@u1FvZ(f0Qk3F{UNaGFv1*U3i{^kY*Ti4)1)QmuRQ$K)P}R60xg<~&lMxfSK1;4Jqp;}Trp=--LBNdQSl@(2TU`5 zkN*hK<;XRf|FQjJGOdRJ5(p?#sepVOipOh%LFh#z{Ja75rv3|51&C5cQ~?OH2r%SE zsOE+d=8H^0)BDfiMYT9lI7i*gQSS;5)Zi)b=fHSWTBBjLySc;n73BREY8y*_95B_LOF-K!mB!fk1$}U!N&Br?)Vg@s^hSmfo-SOj?FP%zAPw-2h zd&_=(=SUmvXi@lw#%Ideo<{-6V^2>&t|)r4tpc!+9lx4Bssy+Vvq0PWdh1TTkY$>^ z;$hka9tysmGj5pcT~#nm;hebm!!`R{c3Q{0D)_X(R`#IRl~fq-#7xOYh<^EdO?+ z-E*&^Iv%e}_n6EWbDSC(GpU?eY=qXkc{fFNY!&OGx9Tny*fuv5t0cEq2Wn44_1J68 z-5SODkab{ugXC}85)~hT*>+ApgZu2EoKb@$pVg%}Wv0c&LL*+H%naN=s+lJJu^wC6 zzn9Ht9kPFq;PFcjjvX@Il>Wm{VSgps`Rv!XEL7loo4+qtDW#o+N_NL0T5FHlT^Xg_ zNJI&ynM9Vs2^_9-hKVv6JZT{nq)4vq_QdLTs!6qok+UywXXnAUD|2o(v5xfCM#-Wc zG(UEF-+fNIh_0Muz>h77lkT+89}>iK#C#GZSg&Ete_XgIdbXobXiYQ$Q&gI)6A)sb z4n4nUocf$*mD{n{}3Kz*r#m;6bsSdQBNx^b^cDlgv_ zhdf3SgE&;f0-2y3>h5|zwDC;*AJAn#2i`D8#>?^n@8|c9BW}Fkohs6aX#vKIKI_elF$@KiE=~o#S7;3DwmL2d42=uG0E zhS+V_K6yGIX$a_25!EA@*8S;Gclq!5tMRz;rq&i~JWk_UN~k%FY<9=Xh^j5h?i(4W z9ZA>{L#U?Y`3=E~9VV3Gr5&Wz31iGP^Q{iXkd8Vh^I2*erfZiM=+J?`YxA@CHnfd8 zCvMFseK2)n{3%$JW2(DBeE@&wTU==&?$j}RYpY4uKX52vq?Dm%}%zvJxf4a4chT%rLDvckZn)&^?1oPs@*mz}#X(+_v*xr7R4LM*lQGwsZiwDw%1JCSbce`Lg6=O+0Ve=I_j9efWef5Zr^&3!@;S{dPxSuGO1vRQrBxGi1FAUqH z@phY#5R39PLtQtzKes&!iBdiYC%iE66Z4C#O;ZH^y`PIz4!*N{kx6T?RTGACRZl3R z`Gdjd(`2YS+x))lnWgLdGUO_(jP87A-0#C$qY>;bNjvuTt95?hM2NTBVp|$$Z!cwN zu?}ax6N$5sjXJkdFvHvk*o&XtnbRTb{J!vwVi25IX|MMyS@0e?E zJ5#einBKGcl73kBo)Um5I|@dDoXEm9Wp^hf+1o9I*KCyREJyG=2?fVeTP3sK7454u ziuZC>xS`qZNGiSR5|X>sOqv68molu)5L(j$e3jbmOhd{*?5j?OA`?%(2vG}YW0d9$ zFFsHFn`fu;Z$hANvNYjfj+6r>yr6P(j4Xz4e9GVi=Onl$QBXQqDHtS_It%PP8>x>M zI~xn!WGFHKf|fTxEjkVDp~$M&*JS{SnFJ-qbt#?0GUKrf9YKYx%o?Yh0IY-R&~ol)WGLVtea<-@k0k8eLO>V~vg^Q%Dg+a>aDLo#&^XIs4ejHBvyyI6$5PiH2NbxgR%QhKIS#z3(5!8i! z%;7VN8u)kn-;o#)gs_Z?12XyA=A8v*;k$|N|6JwN5Q5v$ksW5~wa8VFy4rooKE0Cf zkH674Y>SJyaxi+n1e}jjsjhsth7(pb8#i=!NKzvWE`%fTGt)~>@mM==?0~4&DLraG zJSxOx?^=Is6Qm4@M`LkJu%qkyVftwTENR&F;nJ9t=;2$X)+A{6T1bNh-IE8H*4_7X zN6C088;YkgIY8Pz`Q0s;{gh-Y9LSrUi!uvp0&_fJu=8xrl$I%hGN-3%agHVyAa z#n)Qm`eX#Dh5NLQb$)bTYZOlZY?MU~Pt+=7oGyb+ZH>^f&Sb~8?_LTXp1lbtgG;R) zs@jYLl{IAt48|W%=&LS3`vRuvnm41IJDC!H%0| zlWZUR;~+gx&+0;&0+v?Zdk*$k|HJPG=91)-Q+X5Y>t>PhjhIFw=O_IJHyf_S|6y%< z4*LMHJBd+5je6bA^wKH&1O_t>uANUWJK%O&JX(F)k*fG3wG{j^U|Q+AcuK431@5$B z-{^vCBNBCWn(XBBTxO*Xg0G6@mwLJ+4IQuNEe2XZ+gJ4FtK7eMKKnqgBIib9lf0Z7lmO-%2@}}tp?n@ot zd^qZ7SEtoFqV!*0HL2re|F#U+0(!sG%gtBkki_mDa>38~8G6sMU-#bAx=oKo0TDQO z5I7lpS!=)S)Ad%psY~meXPj z5DG`NWyn1YymNqly0kD-vX-Lc2fGUFJ%_I=rQU35X&KeWo%!B^e|5J}y^G{gc=K|r zWRXhKp;>y6kk0A}U~AS2-8lU#=Z@^?43|av1V|D;DzF+zOsbR2xO&DS_1hT zIU4fNYxYQ3>Nqo7M8nI$^?oBszjn4rDB&`7D z<9IIE;ilMG`p$K{Y&%QmpHm7$niu433kvVM?bw^mBAD|_1n$H!AsqN`*xgUzcH;q= zMp-y9Y|pk0n~15Djk2yct-+b%s_2I)J`wW9BA%q<|I7jqcBgmwBZKagK}g8@dCkDB zt5~2nB(pKGh9}|ji*XG>54#Uy;{|7((qAMLr*_a|ZD*U$Aa^$}ROUDaC;}#Gkj_KB zc5Mkvq_D6(h#|}9q|^_Toe#=`Y6q4PTnv4zQeUr|)b%$HxPMZ9fuuL2#=|~~Mf8dG z_L}XSAb}2@WccpV|FAEDYnvN>Y~`2<5Ed95(u)G4-qi#9UWW?Z@TlCI=bYYMSq1^Z z^V1`bmMyO~>~yvhffGKQ!#kTMv*o+5ez@I`8Vdt3{OX+FR$6cTcZ&tu1iDH!1p=`f z9<2C*)mjd9v%9Pv54h6YSM%D=OlUdc4qyw%WAAt8UkK5TC)Mxo zvZ0SCSq_2Su?b95f2cC;uzDz<6vRp?H1}@mVzw(gUS#90AF@6(7yWA14s*BuqqzAY zu{pm}A{)(nYygrmJ@_N-v1sjN1qfYVHVfGQ0Ut zO#QMktu<&@l~ z0)7mrEP*aDl!_%8NA^kP%HqtjofPC{eN8|o=|97g=h_6znc%s^i@wc^AEWbbnLAQ5^E6i3Ye1%JJ_&fz~h zK7SIi5S>x-25cA8YO@Wf(3yK!%RiY;@pBV)Und5ftw*R zpKKreaU(TC1#fi9H>`4;^dRfk62d#{RGJg+BM&@SV?!e*2W-iknMc8u7+F3PG*HJL zIJ_7uWO+L@q-BFkA(iZYq4Xkf^|{QyC$xu5Q%Rg#$7QW-r&W2QdoA2Ira~>&wsYLp z)CXMLg^~?-BSGGA$CCy=B4fHK=NF5c1SH!*Qw_YDK$M$5uCP=6dG%zJ{jlnKX5N)3 zjD_WE^w?&^!J+V+G6v@?IF=5Cq;Rt8z;I^w;ZP~e`de)KT7vVJG)pFB#PB(;`IXeZ zlCm8UClvT=lTG0Gpe{1W7pLQ2^s{cx6$)xk8B{s9Ry&VqPUW99;HJh~(11+W1MNjd z;4lNFo(>K3&qqbC`o?8Bc)@zty|$t5n~F@~)MiI*36d(@&15124n3sh9nhW*C8K0~ zH&zi(U9O_rvQl2^{s-d4=6p)@ zH>Gj=$uZXyCvRrN#o|wcpOxWMVfJTIk+R`3B+$OLC;kwTYR>P8+zqjXc2UgL=4Bj> zGDB2+=FN1ctPyCoEsM0nB+%T?m~+bv)SyuJAOHrV%EHX-esKIOt_i*9mP~qOz2B$}2OfDtbesT9i}a0ohA#gyW9 zu!DJLjiR^qY&=dDdaN=s09Ako%5)2WYpb3#t{7ChACyk|pCk`d3%$RTVN>yk+A89=thtnXpR`w=V;ljCc_Cf4TbHcNOaw zLb3WGZK0sEoVGRUsZtk1)yKLoO0)mFFM8ChCVU`?Ak`@g^}1o{^kI%3^Ost{s*{m1 z0vX{A7pFJrR~aXydDLl01zHU{-Qdl5+ks3MWvDl2@^Nwx39p^EhSLxOVg_)c>{WM_ zy7Ti{$`LoL?9-+~4YS;_`a60Vz7N4Iy@!W6rkNIPlAf4t;8)Pcq}2)n}rz)Xsz z*ZL4eb|Vv@cvD1S$+2S_T2Nf_(lJ$Gh$Am+K*8rWSzgDIiEMkZ8p4Zw(D6MgTUx znn*IM(LDyTF%6}--N?pIYI$|Hdey8SZYSvjoIa>o{Bt8Qv4b2_w|}jkq_3-}5omdm zkNFD9=;nUszL;P(ZCPKZMY7tO@XcBQN~%jrx_#FFnNrDt^(w%M9~a9Rv;;fGFzHQD z#DyxuqqSrh)y$S6+C#%U6ebGjN?Bla6(&n|<%8Gm`Y8L%J_y-?HGfc;!SFg(t&WgHD4k zqp?(GkVsl&V=#9dPED@Hry!~P^QGbC`Nix~)Uh_#Oy&{F%dz5y#0ELx6jWJ!%9R0+lUU>>HrIe55~gBj|wDzba#4TEDb6h@JG4>I!9Dp!B)I*;1+ zIT>;KJUPI&zF?|Nk{`2C8dW(zo&S#6PG6r<$Q3f3Kyr7uY+7p7oi(wAmFm{kb1~hZ zAXo{{Sxqlv7~-i@`7KLVWuk@3p&}+nuvccFch(0SjM4UJ1<{On+q&9+>9|ybm8e1o zL38U&T{y0xTG@mQki@~PfpWb-8~R`4&EanMs?dX+Wy)Qv$i((s8A~W8y0(wf8XqlF zZt|j5jkEnXH7{=$)9-sZJEi?U0Ua)Nth#L;m=;mkzXoU;2C9Evn&)~KTA>Bem5Z76r{k=^Jj z%<%>KC*W8H;RCC#LGA286BPT(6mH!zdhs^!23cK#Pk&d@(}I4-`bGP!gs5)6@{O%D zqdJ#H(58ihf0mx9FYP2|R*zq++y&1E4X38KE{W|Wd@Dz@KM3%gCPF_PWOzj}ozgzt zhoI#O9c{gu>Y_ISA&I?^%(F_6F{I#^DnPW$64&1+s{RlrT%4&gU+Uh&V0TygzpTaT znCV1T?o8T+L1#~fHPp?lzCobe3@k05Ci-0>~wUK(I?zXGGcP^TcPBC^QnSJQyG^Z3gttT8-5 z-WsB9>lpW=c$KyPt(w$|o(fiFPb&8@kb>U@^m1r+H@D9AvNp;;IF39d-n498Rypmm zc6!)O1Z3}A1tm$J59p|54)k@U`Vd85Va%UV=d$-*k43;qqT2LOg~&Wyy9>quxzsnB z&dM?}y3aL}E>2%Z|5ys%@yF$GOW9wAl7)L^cK!>Cor^(P{c!Rg=-aSU(1Oje#mNpE zsvK<{$=r@3S=wTqWn()WSx#DF`rEYuB@MT*SK@jJid3iK^UbOj;53;vG+GB}R|Bbf zc531&w(4qmTMk=a3Zf{&HnTD|gAdy;oqUJ-;p(&hoVYg~Ru|>alpBG$A#6Etz*_1d z+ce)6(e_O_&OYM@OaG)!y6r+(p^a(13LtU1i?2475n7!Go{S1|87DyyzWrqrcx4F0 zkSFZ+d1(Uwu$Gbxaacbq%d)ECzwowY0T8i-S{F2744+BTVXPo(OesjGnc%|%VvZsW zgCW>TZ_LcTOQGG?G|48Gcl|?Qa$l&QQJn4`0Q7pisFIDG)A$m?St?U7>fFxu38gR; zmxL^sY=T&8m-KJx>+_srj5cu2I7S~;+cX9O%3sUXE=1)ItefZ-KyF#Kn^i+9fUtW2 z)r=$6@y!2^!Tt-p=G47P-9_Lc5!>rq7^(lh%oT$s)dq?c6YSqOv@xpxwB@kEr){FG z83kry^wq!pL`c$Ws_cimc~v1s8^28s@ag$>8WEIDYt!GB(?W;`q!5pgt2x!6PEcPF>dO;f#Lm6BLq&tagu$e)teWK zRT0_EIBj2guvbrs-6#a4Q?W%kN@xYdY-VW#o&}6buS#OV?3YD-6BvRU9Jkm8|6mD2 zTFMJHw=4O;IWczFi~uPeFr`f*-F(|8e`_zc%PwWm5|iWKHvj1UIZ)PZ0=PFVrdZlj zpR$>E1&W;1G=BNkbm^bVm9&)`=B$6(v5dL<6)}aPoe%}5JE>ng>6A1G%@XKh4u$}4 z2P&aR!FP|BE1m@_)%)6#4mvUbohG?xjFCmMTKE^S?Rzd8Tx%4TS*XQ4lC_sZ^Nl)` z2ian~#n}JWN-b#)4TNRt#y~1Ql4|D)fPYgiz4UM846;RF0MyV-cTcKAL+RzT06>h# zNL2lCTxUtStUcO!N~4)}85Kj#`vn{o*k4hasB;&~$v31&Y3fGSdN{%*#46idgZAyZ zG1R)A;cJ>6HSpc07pCpBrJ3k6Ew`-~VqK}>i4nI)MBV*A?ve|~PSfg|akyBfwOGa< zyVfS-V5)1<<34V(;>832a}~0{&Uh&pj+?>Sjx*k}{98o1mL){|!Xo|A%KOk~ejouH z<&8-yeM)3pzq<2!_(|$x9|wnXV^8Cwqtp{)^Q1%AKY_V&OLquU!)5(veFny|GFmJ! zGT==2c0_y75Cb?D6EyMaYDuDSVZu*xgIQ|wSGrX0Z^~&bmW`X$vhA;WR*V-(_xt0ki5&l-GZ#@HUM_XdQ_G2 z6S+i%>6K;m4aZXZG6qbo&Sc^k_E{}g{%^&*mZKNw8ZFnM`hZGG_$@(_ zE+yjs-^>!{Y>+I-S1^+Fa{>Rl_5aty!}$f1YNFZZf5}!*#eNPH&{$EGkCnP>RJ?jY zrS)et*GZL0b9x8H;=aYkUVPG&g<5T@rRqu}sWZZiXsyQqlb0qm`k8@){UF4@y!9*kmBu@)U0lLk;x5M{rr(* zKu@~~B|g~v@4OFQhV{Mn!mE!e<FAO zdI<#A8%XJn{Wx6o|4{YiVNG3IytlWlv|3FqT11A}I-tdhN@Y%>MWqf96*O9fIG|KP zP-e(*YEdI1L`6gea#U0lgb0YtNo5oeB13>MMFQefDFD2up!?ii-oQ)E{Ubed;#sXKC2Ig|!U-0TMHO zfb=nmbCuMa%t2eEu-B>1lBnx5)DkJNTsElck19b!OfRi6eQu zO{MOM{Q(QPHCG?l9XX~;)Gf=LjaK*My!HFp!3U?ila_nTAKpSGN;hFKq(lk}e)`*E zcIvtH50^WNW@WE1Mt57u_!a8ut8(0@{os0{K=YZDrP{+*NY1sdl&mdvsa5|VYr6U) z{+|91u1!FUrVLuH5^!UUY&!+SZ1DXg`rYVeTN{$)L2h57Ks_#(UA50DcbGiY_b@lzGg;0--OwqyYAtTAC$xY)62uKQo@=^K`F;Jihvq{7J39d#>w}! zDYls!`Td-moR8@TpR7=$AUT&|&`ZgO@#7yGk0#zdUtTu>{w6I@EIMEbW01Zj+k zfbKs4WVSE9Fh}tqvxyQU1xcDt17`UXNS9UBwdwVHBEGGJgiDjx=YgrJu)|>=a`v?F zYTVf#SdirpJSDS7DYH;861YscwMr~+SNP=F2>Cgzli7SJm#M;`3_qF5eLSjVjUNKt zjjna0Mi%JRyS|tI0rPuxsixdIPBQNzZ%@S2bNeUMxo0vL z-u~ZrC1);W>DIJfzAM|Umu-9tHPkjy7R~t9Y(V`0am6aTAy$<;FZBAs;$t$$(d3Gn zK!Jaa*~rQ+*Ma4!EZ?co1PY!@1VS&Cl!V$T-|ZLA{9^Y;FLory?+C>_+o@e@VQCI? z6Ag~NBacyX@%glh2N}57-|ku*1TDWGYQPS8u1xYg=5zkkrgN8R7f)ISMPq7c3WoHl zoY=Y?fn8Y+k`%E8%;G`b=$!7KSW;AJl)#ueQ$eL}7O`_fDyTA-^*f4%8w!%JEP~hw zqcNrA2tcERS-&@`W1k*gCw(%=44e<;CJ!_i*t)RjA!do?njLRtv~RH&1JqZS;-tUb zNoN|9Yt^M2|BWpcOB>iM5E#qX)SAU0YQIb32vi}uFGeQ1yFjVFb`a_=FTUeWsM!Dz zOH^FX?a`G=cV*MqcTL>oB^L>66680N-?Lr@hbl`vw@;{#KnJXRg49jko);T}YC*Yz z*l9OXEl?*$-7aqS8phO9eYmj0-MPDAQGr(amXBS@6(G-Z!bgm(Qtddg^^9X)2xCHn zj}hr6S5a48C2x5k_alkTMrn`C77@SvMO6OabW`xJ4TfQj6JsRn8?=1wzW?6EiCA|Q zY3s<@4bL3r<9H*F9M3d)6|-v%#}}8ThmSmR$IhiDgoLWr^OjY_25dOwWs$Q_r^M#x zG`5(fr14^g%Be(h8b5KzbKM~lH1g2aE~zcKiCxI@U??961k2P%Y!q;m@*pcD5@{I8 zotmn*Imwn4>Vs+r&mH2sh;)Z+OX=Dv%@cjohShbXej0$TXL2h|?*V8mp*vm?d&XEvFTEUT<; zI779CQYM>JALX|>%bxa?d|n&HztAn8Iscx*kPNkrd%)+~#OnKs%IRjZ*QxDOPD?@( zb&<$Y8!@7DG>KJ@h(=^J@_Hw%k81`O8}@jc(#F5A-S~0K(8ir>zMV||<0NA({m(TU zK5BR~y`XMrJo7nf_Sq*F5tim7FA-P-Ej*hO+THqlCD)N~ZIWu)b+WaEnkR zFLW(?^={&1hY#+SW|Qj>nVsqH+@=;SPj0tU-fZupsD<4EQfc#ogWz7w)}l-GiJ%X5 zI{S*B6bliiwSO|P(&Su2qM?Bql3@_^YtT}3fODe7N^mO%aYI!Ahd=d8YS@{7^MjMl z_5yLQdLxz>j2UE(`;B8F*-KKNee1u?{4XPp9Z-N$ST%#q*TIrV=PMVcV9MAa=3!zE zW@TH^wn$7ls{r6aIyz&2YPLWM8V+{|DiUc(N@_44brpyrdju%+ZlbCPx!La2`yD&o zDSM5p`IXhanm(E3B01h+yP|l-V0ek!5LA)T_d|&DMU$iXu{-OoF~G37p+#A0K`D`M zBjjStYkzjVv7b>jK4*k4PWR4cQ%{HJA{twBQWU6O=9d=BRi~OUr54xuNdx z%VWM3WprX)-qv%F*aI?@?f2#kuRD-$GuY~x#q`kxi9p(;!OnEk^dH|^sbgoLe;Zn*nd8>vB~VI90v0c z%zJ)br17xZnHYLYr_9O`ueSEtpcC!OADZ*rp&LrVsB#ZJ!%hFI(C!SEO2#DJX2of_ zV`>Pt=kW6Kr}T1EJ;8qkQkRHF)=Zhr@0M zGaLPm{&?+&bJ=|lyd2{F^=p13KTEa|jV?yKR%|9%e;cIJd+udyoCw_sHF^f`^%w}e zZ4|h~vp$Tu$`If$FNX3D(6&@x&S@#RH(Kn&;-~AwelTVV9?mRx%Vp}6Ho~riQy}<& zoK024?i8ltYoqQ5cO`7;q<|}96gwCo->=H1{O~=C99-5+f_qRyPy-DMCjxnVA9e;% zUg=aiOMxrTY-Z+(A@%k=Vv9K7(wqw5+U4oU|4P`MTcka^IP#DwQW%Qe#DrC}cgrRL z<_Nym%aujim!#YkXN>v&)TsO^T<7gvTPZC6tM=c7V2dFu>g7}-C!;}I0boW10?R9a zfxLL5uqEhBEitB0e*X6RX5$WB@_iZcm_@Gb=s&NAhZ$(7ubV&`GO2!|PL)5GFNjJ9 zNp!u=o<;)JP{5WV^N}v~gZ{(B;mU`4|4m8fO3~yTknti3EValHkeR2R?A+XPwT%LD zCY&@?noRj~WI%iXzh&gAFj>|#*!?0FGp40t2=t+*M@`9+#~-M^!#P_`J;xKCn4ao$ z)7>+*M(EuaWAo457Jwv+p`)JNs}maDoGO#rWD-+l3Ax1nJ>H(Y@V}O>^{`o3ddh@S zxYqjHaLI1W3^eZ}0Xxk>~<`*O6y&1*(+#5?ms7#e?zy zY3I;P4wFY?y3~+{K)Xt1DUlZQt~ny!r1CdL{>;jvY%ye^P!c56rmKy}LB*E_EuS&pG>mm3k?!_8@rdd|%1$*dWy`v84OP zeswKSp>Co~jgme|*1=u5@+X1*dHh~N&=jdyHFSCkHCh#7H#DT{1Ge}s-VpuXXcbpF zhI@Vd6dhFDEJVr(u4mu~9r17YE#q?!L)hiM(zwhcKwrxv3<|e=Ep1>9d{~Y_R)Eoa<3qDy{Zg=;vb2HDtjH9kt?MI;K9s?!qa5Qg1e>6zEk}wWQ;#w3W zseYm}rqcZ`t)WS7U${cwsnlp|!Ee33*HwOky>rc_tV>a+3cm8Em}CGc~e<&g5Z zlMAb4G$xNsWu#q>{0Z0ZceG`6H}iK!zOLyOpx5_Ej|Qug6LN7S`IEXCp}>p&yHpB> zXjySi4jv^R;(Kw($OluGdSzC%P$a=RP3Fiv;b&@RS@LCvQ%b`Ge!j2iicH3jpV?mJ z9aArL8u`z;v`Yn($IsM{?1Uz~+-Dv}|J}G4ySyEmIY=1@+kn*O)Z$XhEo;{cPj%FB zVn?XFlMCJzAJe-SNH3V!#Fb-8EF~mA8mxP4%)pe(5<-xZ>UC#8^1YeW_1H0LP~iu% z^$Z?1MWa)i;+2PmU>t7eoKmDLQXje9yi#0A^zH7jMP)-HgGb>|%$`VHwA5oj?r2x4 zC5AAV-oT|-Yx^W|=!n|`RY)Gc6g_4XH7h@U#F$MV$J~gVF|fSJ$bS8%k_Eq`7>zYT zD|u+{?7&jcC_;wqRG*I`!sTN-_`uw;t>kj_NMHdd=BMMI_tep2kv7-I=S1P&;Q00N^m5w( z#yg57kgrqS5*O{QKLqY^yG9_zH2!dPeK6^PsaUpNxdNFPp$_ET4}&3{I_+V$-RKTE z_of_DU%zoR+dvTmfTi3$?}oLe;1{Me6s4vCi?OiRa? zS}U>z$br{pv=?94KCf#@zS;Z5(2PnHIOQ<2=)ca?i|hBbWph?ISSCv+UZSeja6Is9B-r}Obf^tpD# zVXYsS{xf{QH-bit>~NcdP9&2!#}vv9TO~48F0*uwS!h=*cYF8T4T}V6&s4jjb55a* zgVem4T9GU;-sH6XZ*{GzPUA)^?feL&yVRGy2FZDBXY`Y6JVK@H+|*(04@W<_Z&rP|tLr;1 zXnrISBkoI{)ml*aeZq!kJYBm-E$fIBPrHZ>?#z&>0&iqO+0?{xnaWJ#rq(@{`R*)M zcJNnh)>1FrQz=4!Zc#^-dc23FlNx~1XiV^9(74H7a#ju|)Ss`sXf4o7{(AS4w8809 z`Y#WQ>|kNu!V^Ya$_+q=c74*N1p3~T3kD>Ojv%)dmHJ^Pu0Fpm0jK}Q0JRhFtQ8;TvCa`BNK>g)C!$j(@N zZRQ{#kW_5huru%6dgVLcMEZq`x0aPQ7t({UV5Rp|=%}D8ze`*{TlW=kh(WB)A$Lkj znK7bPKh$m1+l~LcZ-B4ijaf~51P!%1<4AWW^DSdpOb2h&|+-pKrvb}Pc zzh&%jRq9Hq1NNUJ@I+Wpw464f>;VR0iwS%UJ3QH? zACB#lV@FD|66SPfVz)V6ySYMjyV{9yIK5t-=9g}5DU1rfA1D=nhl^3HOIx;zr^jqE z#!F&0vnU7j{CUd*lI|F_GD}FQz9f_GkfXpvfA8JCH@Dx&Gu2{L9SN={?y789`%|IM z?bW@6fSP4X{_JLK{Wk4Cwycc)p%5qv$&fcJFR+e;Cy_z}w|xZjV5I^MKMhEiXS$tJ zaqX=~uc%ZWx{!;#P?$>4OmakDhXf&&SQi45aF{|&LkA3+`((Zzsn94Y0R?P0hVNgg zK^S$X6k-E>g3pJfbl@C80Q)iCjC=)70;8XY7C!*cGpzc%d;?q_5VmbWC~ z89$~mny#|z!hAqQIrG+wfIZUGwSQALBWHXr+=+1ULl(aFN`CaB_wO~JTgHF?_*>bQ zOE@h%aeF~@i8`5Kx0TR{C*Z6seoJ0sO(37YR~Wpvr(N7iuXr6qi`ObU3Quzf=B-(z zY~xxniK@j!=L2WbHZa{rULWL31l?73NusKE_4^r(ifGYb;f_W~N~Kh#ePXcTr z@4BLS@P#h%6sa7Y(iKV-DXu-HnK4N%u>oIIHj^CCwTkTYu+u8;q4pzhBCoe{NHk;u zd!B$x2f9^JDt0s90sTply}tN4!Tx45Y0kjbwOWe)SNA?h)nn>v*Sj(!vv9zCcZiDH z%x^6GNqP)B)RtPR%8_zQS;RCzubdD1GA^V1`Y5}$FB$+kKC~$X5RoY!%eC2YV!`=Ys#!5I^s78Q?W#Pg^5UWY`qhJ^(S=lE?limgNHzQrZy%(_D5Zm zgsYZN12kd+K;)n_gcESqAT6b(R~Sou6O3X8Aw@drs8}qe(9muyV<#OT z@u>I=yz#600n!|Df;4835Af%ZEvhWlY_}on-ULkh)Y1yvh`<1kkfeq^2AYmtIbcY< zU5q4)`TP%{G|Q#Y&soZbT!-xGnl1xW6(^{3Cr;*6-y?nzF&HQw8I+^8bWE|?P?aMP0aroBn?`*qce>$2fP}S!C}G#9dSn2rAMjph z9YYBN5sck=WLY~?kG4V!urmuijnV3u7JMi~efB3)^!7ye#|78l&fm@pu!(r{nZL)t zo_lXs3v7@lbSc?ljfEEeUHP17c(mc(F!bgR(f9tFBbE?jw1c;Q(CP+F#q7kYEO2T+ zV~lkxV{@;+sF|5xPku&ciMQ`{JgPtOx6n~g^MWZY%+PwM;>l5Uz)<@sRu!lW=+!3d zaH?DYt-bHyY(7u}T9~637BeI`J8F-tAxV~*$UZ*op0=S%LZYwk*N6I$_Q4F6z+o>h zn_n#rQ92^7Xv>yjd58w=2Q-jKrFp-AxC-xaO2rNX`XG6uMU%a&Ym>7i%{>j^wV;kD zZ}b+S*!i_VF~y&H8r7o;5P-akv;B|5o>iU_fMM7vty}{3PMCRc5$j-5kB1}L0~Okb zs}#+A?A2o8oS|!gkJu}yXJTo*2rA6`Z!Fr7Vb*UyDte1?85I*<;Q@`r3Fulwxyykz z_o>K!v><`IN@B96)MfKC`g^x~{0nU(5`ZWAkb#3K$_9rc%hanOx>c|>(}MqIQ|7eV zmNeU8!^G~)xCSz+10mU9d+W}|c=0mm>RW9>6ZSDb6E91-#$i4h;$lPbhqzXQBPK)( ztww`$r7x?!gjn%;A6Z|=F}7d54dzm{jvoBu`nRh{yR8n&(hJJA`LIJ?$)0bm+d~3U zz9hgGW-fLu@ct-FZU^mttZ-#B59``SaYFoN+>iA*@BW&0UDdot^q<$b0B?zt)u#>wdIMOi828Xa|t5835O2xHR^g-=;udx0E(}24)feNcv z7|@Nawd8=2QE?j3YpOvma#ADfWBevydEd&K?dwN1(vwBTjW=A8-3QT(1?D=x5~JKO zVQIdGEsjD?zK>V zMYQ;WPptL6nzOy#&JPliW80&&T2lbom(43oyMs2KJS3hm!FyKL-C7s}XNhrFWUe|Z zG=-W!pHxBrBUzdGazJ6xM%s>ph6W5^WcUOz(PM%+mh;HaffuCtW6Q| zs{&B(C1Ygs{yWkYS$r3A@WZvGZ)bm9-knphjd+6(+cS#gj|<>KmaD9NenaNxAomIDWbO3n`pZBxy8midUt8JGk_Xjn9-n$pyaL zNQc>~zY}I!fsA#4a{LhGapRonWPB>BO*}h9wwl5Ig2D4nx(dyeBpWDG|HIt@96hp9 zK!d+!yc!f}vxru|7#>+MmAjMhNxXvrVchof75+ul0bw?=!2SQgi)0=Sh1G>|!##xY zw+fRV{Sn)3jecclM*81BmQCzq7I@k@TM^H-ySL~4SsgUrA$)TH|8~F90$`5ETwjT&ngeh{ z(!wf=AV8}&k7(wu)zI^mg#t985he{Rb|Iky{JDcGHBc_v2xierhX?q|B zct~7zfliu2>&82v-I!T}0b&DEsMC~^rZk}aA{yFbTx{nMVN`_XMJ3>;iLV4eX$=#* zF-}1?z_r2oV(Ofssfdc$FaV_=5P=Hjgc`E~iUt>D-=RyxF}|gsOP{ukL)I^)itjt5 zQK#m5;Jiyz^>m808?%~}%_jcsX+wuw@JC!c)cd(qW%VkXxVK6CS2{^?`S^auM=~0e zNFp$k3)xjRs>|HjKIQmjZb!)W;!Pi7wlG6+<+B!)H~QoXWpe8tR)ywzJw@`t3+*?A zq_br9d7=>(`Ce`GP(T)bEkwTzLLK@Bz!|ps#pKB;U2WIS!W-^Z9%dqD`Lws1&z*3m+)J$lM{nJ5uezt1{zm7dBgm=$`|P8`(0h_g4PY;6xDfj!Ty*KZ#s=DdvHH<%jUs ziq9U(>mA02i&xZJCTA zW*!~O`vi?UAes7y&}BTIH^c%J`sOID%#tG+9l}5?%11~iSOgN#1UEaU_zJ#{RSN9 zXFEKAYQVp8k}H)?_v zQ@suwKocdvP_ZBa<3Jof4e<+j$KiLCmg-pRPa2!p5#y}&5j!Vf$&K0pev9hFfL(dm zZ69!^5}1N%e9{Cq=I6BnH|HWfNgF7KacH3~1bA-(aA?RbFM;V5!ug!`hSXTCupd~Q zF`Xj1*#vwGYNM`;X;0%QcwwNVH8az0&_=*=_%Vw$6ZVEUcYpm+UXJ54=!(FE4|8X_ zS5;@RHNjAL!>t0|;7YC9)%nP>-Jyt3#LCG~OiNn5H7iatnoW=nNt3(T&iwn@;X&JK zK~iokwmb*=)MLWS>&-t{JUl>~=XNCS;E#}V$;27(n~e-;p0!u#YV%{HefwLkRI%z8 ztnv`~v|PNYGE0gij**#>!xs#KtAo|HVpU$Kg=>(cMht(zt9>#o9*}}sA&8q>!J_HY@i+Ag6Ok6iAtTjt|Ry} ziQ^&SJ}tC;{13UAIb8QBiKMKok2fV&4u$%F4%Avug4$|ppAzkO#Y%~WuS5wdKq__? zN5a0UvqsiRasi^y%FZSZDvi~pK!L`Mar<$BIFKazx1h92x0MARvxJi>b|AkS!%;Xx z?I@Lm!XYX_SX4hG?;-E-H+~YBpbrkLJ!%E6f4aW-82ZwIsTm6l0suLXekV!jtlwp zdvC+rR{Ucem7A91%Fx&jgiZa(p5yv;ubu-ZzyvY;fqL)z@n+x;PK zA_qjj$&l!%&cRQx>?9iy%`D0KEK6zvve0^L{Ua;jXeu-oniBKKtdQ~5JyW7Ah%xLPLeJqra7bC zv$^qm37k+Ols~BuM;*Brp52uie+wHa60iMrwtKs5@MeB4KK!#kOH;6iNyl`8X@HG~ z8j3+_*?SiPa`Sex<>v_5dlArcVcGQHi$c#l=e4ro@td9&q2Z}!znwOndK3*+*TWv$ zXRC1Jn^h0C$-kW5=9rDlX|^n`z>_nXqY?bs zhrze_TnAz!>pP}o|Cul!d@QNT1{cyp{}P-Od~DBEBm)1iRduCY(Nh?Smd=IJhI3%R zC^*bPa4d#V+f^9Mb?u z1XYWWLd;1Tp&0lKJ5c2}$Rct>$n!f&5JUbCwwR;e`WXE^$Zva=~nx-Ky99Vk$L%J%%>dk+P zw=I19=Tf)NXZ{epU3Pql`1mv-I;emg`HDlg6DMpR{*t>@m<5fjM5?FLeomu*ps?7l zrQ6KFMXuYenb8;aAyqim4X!JQuek79g)IlB^Kne#?JJIxx^l@Xws={!o!6kMX$@0* zL5@F?zn5JZ>y%<5ALkNn+XdEKUVglQt--jh% z?T>DJYZbO|>JPbzibu9Zr%N+Qz8-|W;9p>H-Veohq6NO*> zh{;QK-9|K=zL19Y88GpQ>-K_PKnr*pc1i($`W6afM}6T!9ga~mCxnx4w7`ft-$0@L zrVR}xX4D4t0_P~!k6A!jkT$bd$MC_==%0O)N!0E4!unD5^cx$XN2U~w*jb%cXX+o3 zpmq>4no3x8z{mzgiurgAMeRkVwpE6ds{YorK z9$ZRtgLldXJAl}U!0P7W?{0O0^pE+?#EhUJ0ntjv-t>yCyfSLYAyXB@b+-|K-^HasEJ#a(*FaUfJo7ugWav-t|y;D@F)(8g{r!ucm5 zgm419k;UvzNgVl>aC)2!)mbqM%)9&t3*XuzQS<_eHtd*eb`7SBG)|8{Tz5+HHOZW? zg!#rsBcYv+yADK0r!2+2{@*MBe@MOnuWO&XY{wDdg*L4Mhc%o{?KW|jQei6+!G%+& zozKs=JcoPC*9P?Qt_&}(PDESyox(i6QJ3h)c&FIbZXJ8y8?v#CT}B1qeoBP{SVSX#Nhj zcQN@o&8T>E+Y_EnlS293{$znpv&F8*;||)O(`>4+Lt&9$Am>^G0X;`pTI@dZXb&Hz zSgjk^tX$iPiQD29U&#M@SzB9f65`T3sfU zl*QC4+oYM=CG6?sT4}X+(7W-W5j%RptL12Kz$wZ*~yWDs4AKZlIXD${GG>H{~-g3(OcxnCCY?$(Zoaj-v;m z3p2%9DQ)eBA*Bp9<0hiiG_l4HCiJ~Voj8#E%K8lN6-J6kz-lxI#Iy?) zX4y=@fhvXkB|L$MnWg^#W<;;SU@~!3h3(HsxfpW-$Oi1dZjXX$faNZxn4(xuKcT>* z{Tl2Hzw}D!!}Y*EWK4m@^`o|LPkc&S$l(_NFZ>RykE(HebTX4E*cEpc(n^1@oMLbRYbXmF71W-l42+ z<7joq$@B1QtTsnK?mCVJb=4+HZIkl*p(fTITfSs*v>PX{D~pqbOyqWyImI z8_F3^Kk*t~e)RD^Wjl@^shz%FyPq+O1(BMAhXmSWa}v#^XB;oAkFKiD%JMyiDaA>O zN2hLZrxlx-)7Pn56S*^I=u6Dud0&UlC;9OL#6*lEe2>P8El`CN>s%uNN|!&bjGW3> zMq+~ygZflbSjU$tj2r5Cq}14U{f>v*w^Tz9raTnl?CGcBgIB3Ql}#EZTbP7vwZTx?7wmpv$T1=Q$9poQcB-2Y}Q>UPrdFS396IPb}mxaC0+lk;MW z&$hM-rO?^JOg4UWKch2kUO$#5dL?2I;%T2A~)1>(+=3uM#n zglyb{Q}c70Z~oWXBD~&ikq!q2yPa0Y`BmjAqkDNCdbwwKT05|txCaH1m_CJ8v$a6j` zAicNWUTz4X?F?u(K4&iRvGXQri?RCmaC0~Rzo%mmILULSm*_0`VD$9*AjA8@CiBKE zpLC2$AYHmM@Fd3yorRltPf4U?lm>==#U`|5T zZBM@WzMaiG&O_76>b!5jV6A@?z9(FjdaNA2X;szkI5}G+imp1uyh>txIA4*79w$Kk zO1VW0>@8h+SSFH^S=ZgEk2_NH>DsW!t1_?FVMZ9*T-5lsR2y=bu17 z5qk$}hXA_R0w_Ey73c8-xn~8N?6MU|SlvktweX~ovpQlNMINYA7`IdfEP0>*sjmzt zG>Me}v8^G%tt?<|>j0@mec;#}aT6IDoRt5D#5;yV# zTt?yU4&HYFwqtLgAyc|u^In(xfotv;VfqG|p(+kpqVnbSqR_@OQyJ}RL@?am@JwZc zj{mfuu`4g}y(8cJIQX)F;9|}UyErp8zVfl@q17=FF0yFlBrs7;$R?M@Vhy+=CyxXP z^Pa>Vf2=J^34?mVWn!$W6YO^nXqCz}NF~0V!V|41m{#pDx%C6DVLGRa9W;Gw&I(WR z)Ar~Y8qFH78WVm+cp zj7-*;ifA7wF(_gV!Hu7S5oj8EOgCU;JuVanOhpn5pm~;IMmRfRXu`rJSTI5n81f12 zj?AZ_h)$s}W+04;lAKp6#?Kk5nLtUWyI70nYRFPV(TJvB87tJ_6#ei5D)n3Z$-8!L zK9=Jzuqk>&IT|>#?-|1-ovzve^4Fr{)0e8aElFO{C(hYa$C)$HUe{$hPw8>OwU!M5thb?UD`35^bT4aT>!1hB7fhq zpRsRpcO-L_DFWAynfS(DtH3Y!Ji`1*x2I*1GOnKWolrb+XZ(d@9makeXOi8ZY3+Nv z4E^^T7?K~|Me7K|6Bxn4L;l*z)FEeON9$}3qrPkBiB<}mJ4?O(;M9lW=?1lX!v>Ov zdRxz0W+c6DQu`HXIk+@yT>^JFEBZ>rOZc>1gPp~zMi z-x`@oa8xU_{-z{&I%_?taVW+IzvRt#2eZj=xi5VAl-tB~4TUje#%|OzpA+iyk_s{q ztpc_Ym{}knFzMBwGeJXV)wlT1-+XtP(m?tVN6moP2dwnoEB?CjMRlgH)!a92t#q%c z|Hhd;b&d0xP96ahw?24%t>R4?cAMqUpQ!*(g7FAXofXv;sQc*QI$OQU!<1UiyO~oc z)J&@$%`RKu>q0*(Dcmu>7as2jz;LTw`H-<0&m#vpuP_cn<(d2# zR%M=Vvfa;F?wOJn5cT19uZpeMt_Gww&poJa6YX)(ZPW$yDZ#E-!$G0 zDJv3=y8v4CP2nM&;yE!WP`pX?H0XVJ4(mt*b*4^mx5B~d)EKgKjc(SvQnNE}K+BdT zYp=-yqZ`h(SDWI#$cl_`k|j@{p*~xGqruP=aU8fl`k#Q0)fG*&7k?dCF}|#%K>D00 z`|`j|Vf$&<`1Mxw*yjfrLr?L+ym7~*#_;y>)vEizX4C!g)3kGBx*I%V%WF#}MK>Ye)bXQ7-0zDs^%E?jgM*7k={O2`_QrD;fw(7xdNviW^`Uq{nYz~v zI4iPNM$e=_Cqv4tqgzdQON&Yw?P%eX%8@8IL)niN5uD3t{2$@O>w=_DDo?1yVP4(%+Un);4k+oAN@$>{ z&KXs^M%SNmUl_F|qbVwGi8q2DqkKya_-_wHGnUV#>n}iqlxoOf#}#6!=(y({*F!@h zd%dAJ8h)X`(W`eTrd_McG>6Wl;!c;z#s=y%;UQk^U~L0DwuZC0Z|JrseWXTWW9~Z{ zJ!n&pbI-6OKG-}N4<2(?3R^oCx}rtoW);6$`%dndy?VLB8^=`%dkAw>wl~dX;uhQqG`faPy zP!Gu{=R_Y_&dS?@nSG2Qv0>}gG0l)x{r9xCm2I{&X^kJ_IM;fr!<)>Wti<&Ueh^+= z%2V>I1X1uhmGhpi%GpzR@Of5h$D8SJwC&Yz=53 z_`M;E3M}t>8#}wh^`}KeqATP&4{ajJ`H196n%!x-mn_QF;UXn*dQ#-*6lc7ghP;2O%N28TZV_C=1=C}>@i$p!Ve zBniZq`HRkE%}$dx$s8@zCm(^j=hj4nEAtI&Ohi^+$l`9)z7Rt(&lH)uhw)UXt(kZ6 zX0m5CE*cVOsQhXhZ>deTHJ{jmNToSiwPSfLNy5V(|}-%kxEm@|3*bK0^(Gg z_2d#@)(_k7EEG>Dl2mLQBS}Hp{+D!{=slDP6>T<$CpzTGgltPkXyf?Jbv7FaOGvcS zCD?p-vY~vkpE*RqC4(|ksueI)_>_FLBQr?!p~=g94F)dGNcP=DJu}8lKv&*_Z^{t^A=+>?`^ihk_Xvwt$Z3S$j9hOO9a zCOpOOXz-)iC7H(RJ&^k=NR+zs8GGBl&oL&&f;ar%STCj-{F`K$_`E;&jNi}HZiP5t zVD0y{V|+CdbNOQo4pa?C_4BpqOi~&!mpeLY1^Pb0ZV>m&U>f{J-p0NgpJfWi3qWYN znWew@oDiNeyZ=-un$01UGu^hQF3cD{QAhT0R!?b9*b)-+UEm>#`RME({w6P?U!*n) zic?zx_rjpTRNxO*GBvWj*dd#&_DEw~Caohy(PIaT(ZQJIWL^qKA8j`-zKH9j+H3`` zKU2&z*<+MjX*te}}HE`N~B;}y2D>S#Ws*9|kA==GEtydO4X`heigQcgHiMu z{$BuyYLqJeC!}+zs?_e<4mm!gOT3hg#flD*JRv4pNpQEC>1 zT%3$IA{}9DH>CRAtYv}pnY3TSGL~*?3X3OTLY{_HKB|T(3yFeBr#B1lveWyY$Yof`Ud>j>JCTW zcXVK|{e|6brkh47nEQd51bSi#0sI@?h)6%^xGPF;%%-# zxvUe5{WVe?qW#zWmTcp@x#lW;2uqW;tP%UmtQnK7JJlr1^SlQ>-kgP{M5+8aQ7N%a z8yi-NF4t0dL+dQ~v6zg7tw2gi{-wbaj>-mwHu_qge!co^3qMo0B9=o@p0y-Zu}qbx z>7ov{E0K60mUo?OmsZEudhFxf>JIvpA2QI&kaTE?CQV1@>Zc-Uy(Be%#9{fft3EB<0@(JVI+gB9z3 z84*oalMZmn(X!um)n#QNmO>V}BK+NQlNgCNNY_vJ)sn0;^fyvH5BoRhveCh{;=y(- zV!$PDtRknjgsirLyzhi$*sYl7s$2MK#fRKHD)Xzjy&wJlyzN)!S5k&zb13Hi81msu z3Rf=hc1_RJ*En9%bx}jZ>rudj%N$Kr%+4g5kt#Q~?~gtHBh&ENfz?EketQ%a0b{MV zlr(8v>7hKmvUNWr2^iupC-o1JTPTW0u_MFP?Q_2*nJ3g?Hgt|s6|jDQG#}*prOFbPkf|#wLR3IRmQfL-qC`PNwoGMO&7jWARe3$Bt@?jpVuNtO1W4o$S7hr^k6l=A3V& zfsCgiC;Fg5s=yb|fP19^=_on904gHjOVULsVJJS}eWk@BK+7(2C%?z=9qH|Ue_unR z&$>jd)nFPuR60B~)i>1X$PIg++@7|-7J6xj;Ia0}GEjfk2U#4vo-Ofk)bE2V3A)U5 z5)g6RqwuNb7gI+n1n$vIHuZyQz3s{~6h$njQxi)F@E2A^Z~yLQJz4n@}3D$3L)oeTr@sqYzP2%j(E;Gbq> z-t?t(XPL4L!1_7+Y>w4F%~r7>=FBU0UvS#+_9o^wmoUJ~hvp3lX5{Jxqo~B?wKVnhvm1aybp`5=K)(~l=9Kavd|P`d+W(a^ z!&;4%Hoeb)_(vR%2@ty}&r%QHZ#M!_Rec?lQyOf9p#SRm*jiPekSzYty01{p9-7{v zkC{GEc>rCXi^KleHKi~vEQVG7i=;1uxgf0Hwzv~A)wR}3XDjfej&}ElBvtw^eO`vE zoH#iZO7A24Qkk0ZcSQW4+rtX?kk(JI(wVh4rvEr69xO-F8wZvq4w>F}La~#as55J% zjvV(!DCMvNJ|Jn-fH5D-cg?SUDQZ9rK*Ef$u}}4?zZ7>h3y&=G10{@rA9}<;X3))cPs$11wDT)F z#u{SYOlgFcMsKpk+LAP@%Yufr{-*U6birs2VjCddAw?gA>_+fGZ~Ha|EFA;UIy}W( zir@OdWuG-($t9HbP>H5B*KIu3`?Pn}w3yL~JpwD=k%6IOl-0TSKI)JhbW!I#K%bCQ5(3L8(X4TB(wz#XBNF!T3c0-)a29 zfJgPUjxI8+(o#F2qUMq|SQ6nGG}x&i(>0%@m|BdC-WV3$jZpEuc9r#I+Xg&5h z$Z{-mSgINBzldI9gfQBI1F{dB9yiKM<)1xzVejS zadKhmT8wG_G=>_;z=qGUpph$He(h2g$|Cvpg1nEp*$ z=6*X`E5IkMUwE}XzZY5oKdofZL|x$Q??9{AJWknE_rpk3G>{DJsjQ_Ge^J3tR16VUTTC4YOx=T|e@>Sq(W;3O z_XsUQxOfO&)vvgEbS^i{_?cm$K7X`BsgR@#;?syHHcQ6f(mYYLaTUe|I*u z^{K>1%Rd&@M?L$`xBRaHO>c7!nm3Xzuv>O}=PuvjuG}(ku*ciPoTbsqx^=%DihjV) zq17orR_9r;$I4SFA1j9n#ewSb$HnN_z*uF>tX_9BG7H*p=Op$#siFA;bLFEeRI6@k zadjLd%jdAxmUM5NDvB6%@O7%BMc)h)!*gNQeeZCf_IpTX*|$}tK+KAq@JnnO+Q4@c zr9aD#W6Sjxm{-(Jn`6}g_WJP|P3IrlIsqPVd(=o36fKWx=CWHI zj*bi}Ibj;z#fO5b*_4Q|0eX23W45jD$RKD44`L;;uvSt*$~;{%C>6;~;4>tbb+QCm z3L5jV0A5H~w|>%lD4kTvY1oC+|5>M*V)K4`?G)el3z^9kZQ6mQB7W-G#$VPF)7CE- zcqG2D9m6hiH??kOVhr6d;D%gsuLOPFZQ^b=0Sn{N0U4ex~mIGzb_8tynx! z0PvwnQb|}FcWlVt|2wiJnB2R)!H+sInDz`zXG-jd(9p@0)@y6b!o$I7nL1YeBhQKQ zaStjMD|?3Gsph8w#DYulvV_br;9l&8$`qHq6aiwm{!QOaN4qbb-Vx`dV&Z`0j#

      ;PYmqo24~6HW0y(>>E!!~Fo;({d-{!J5 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

      pGwz&%h-84Bq3T(v=u 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

      !^tA)7d=DgH?~4PJGvIAMNR0KOc13 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

      8}yJL8DlA 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

      (DJpi?8oEWdJ=SqnX^a~$sfOjy^M$HeX0=T#?r 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≤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

      k!?!He1tsy`bZjn@D)MO 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᭽F-wk>L0O{gp7g~uqu4b=uTMMU89}(x);^$9D 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

      $ISILm^h+Ar58x?q>zf&UjkSBGa4?BijNYdde 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 VW%}I7*Jd*Sfv2mV%Q~loCIF%bt7ZTI literal 0 HcmV?d00001 diff --git a/head/images/settings.png b/head/images/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..c8408a05adbc553a1de5c7532dee9dd3af81ca55 GIT binary patch literal 594251 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

      >jFNo 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

      Ew&^Y8A{2wbxlg(bEq5LCXe)yw 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 literal 0 HcmV?d00001 diff --git a/head/images/tokens_received.png b/head/images/tokens_received.png new file mode 100644 index 0000000000000000000000000000000000000000..0d40f110e42f30e77f1caea79743d88943427be6 GIT binary patch literal 662051 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�u(ky`Nu%{x4NYSwB} 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

      YF?TK*u!C#~SPw^~g8@59tC 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%0D{^RH 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

      x-X3mY!ZCt> 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

      S$Ad9WH(kQI!wfQR^67E&xPg`4K*dI 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 gYXlg36xOhto*v3sW0j - - - - + + + + + + + + + + + + + + + + + + + + Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + +

      Hyperledger FireFly

      +

      Hyperledger FireFly

      +

      Hyperledger FireFly is an open source Supernode, a complete stack for enterprises to build and scale secure Web3 applications.

      +

      The easiest way to understand a FireFly Supernode is to think of it like a toolbox. Connect your existing apps and/or back office systems to the toolbox and within it there are two different sets of tools. One set of tools helps you connect to the Web3 world that already exists, and the other set allows you to build new decentralized applications quickly with security and scalability.

      +

      Head to the Understanding FireFly section for more details.

      +

      Documentation Sections

      - - - - -
      -
      + + + + + + + + + + + +
      + + + + + + + + + + + + +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/gateway_features.html b/head/overview/gateway_features.html deleted file mode 100644 index 82e79e864..000000000 --- a/head/overview/gateway_features.html +++ /dev/null @@ -1,490 +0,0 @@ - - - - - - - - - Web3 Gateway Features - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.web3_gateway_features | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Web3 Gateway Features - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Transfer tokenized value
      2. -
      3. Invoke any other type of smart contract
      4. -
      5. Index data from the blockchain
      6. -
      7. Reliably trigger events in your applications
      8. -
      9. Manage decentralized data (NFTs etc.)
      10. -
      11. Maintain a private address book
      12. -

      - -

      Web3 Gateway features allow your FireFly Supernode to connect to any blockchain ecosystem, public or private. When a chain is connected, the FireFly Supernode may invoke custom smart contracts, interact with tokens, and monitor transactions. A single FireFly Supernode is able to have multiple namespaces, or isolated environments, where each namespace is a connection to a different chain.

      - -

      Gateway Mode

      -

      - - - Transfer tokenized value - - -

      - - -

      The Digital Asset Features allow you to connect to -token economies, in multiple blockchains, using the same infrastructure and signing keys.

      - -

      The complexities of how each token works, and how each blockchain works, are abstracted -away from you by the Hyperledger FireFly Connector Framework.

      - -

      All of the layers of plumbing required to execute a transaction exactly once on a -blockchain, and tracking it through to completion, are part of the stack. Deploy and -configure them once in your Web3 gateway, and use them for multiple use cases in your -enterprise.

      -

      - - - Invoke any other type of smart contract - - -

      - - -

      The API Generation features of Hyperledger FireFly, allow -you to generate a convenient and reliable REST API for any smart contract logic.

      - -

      Then you just invoke that contract like you would any other API, with all the features -you would expect like an OpenAPI 3.0 specification for the API, and UI explorer.

      - -

      The same reliable transaction submission framework is used as for token transfers, -and you can use Hyperledger FireFly as a high volume staging post for those transactions.

      - -
        -
      • Handles peaks in workload, drip-feeding transactions onto the chain
      • -
      • Handles large batch submissions, tracking
      • -
      • Manages nonce assignment at high volume
      • -
      • Idempotent APIs assuring that business transactions are submitted exactly once
      • -
      - -
      -

      For EVM based chains, these features were significantly enhanced in the new EVMConnect -connector introduced in v1.1 of FireFly (superseding EthConnect).

      -
      -

      - - - Index data from the blockchain - - -

      - - -

      Blockchain nodes are not designed for efficient querying of historical information. Instead -their core function is to provide an ordered ledger of actions+events, along with a consistent -world state at any point in time.

      - -

      This means that almost all user experiences and business APIs need a separate -data store, that provides an fast indexed view of the history and current state of the chain.

      - -

      As an example, you’ve probably looked at a Block Explorer for a public blockchain on the web. -Well, you weren’t looking directly at the blockchain node. You were querying an off-chain indexed -database, of all the blocks and transactions on that chain. An indexer behind the scenes -was listening to the blockchain and synchronizing the off-chain state.

      - -

      Hyperledger FireFly has a built-in indexer for tokens, that maps every token -mint/burn/transfer/approve operation that happens on the the blockchain into the database for -fast query. You just specify which tokens you’re interested in, and FireFly takes care of -the rest.

      - -

      Additionally, FireFly does the heavy lifting part of indexing for all other types of smart contract -event that might occur. It scrapes the blockchain for the events, formats them into easy to -consume JSON, and reliably delivers them to your application.

      - -

      So your application just needs a small bit of code to take those payloads, and insert them -into the database with the right database indexes you need to query your data by.

      -

      - - - Reliably trigger events in your applications - - -

      - - -

      One of the most important universal rules about Web3 applications, is that they are event-driven.

      - -

      No one party in the system can chose to change the state, instead they must submit transactions -that get ordered against everyone else’s transactions, and only once confirmed through the -consensus algorithm are they actioned.

      - -

      This means the integration into your application and core systems needs to be event-driven too.

      - -

      The same features that support reliable indexing of the blockchain data, allow reliable triggering -of application code, business workflows, and core system integrations.

      - -
      -

      Learn more about the FireFly Event Bus

      -
      -

      - - - Manage decentralized data (NFTs etc.) - - -

      - - -

      Your blockchain transactions are likely to refer to data that is stored off-chain.

      - -

      One common example is non-fungible-token (NFT) metadata, images and documents. These are not -a good fit for storing directly in any blockchain ledger, so complimentary decentralized -technologies like the InterPlanetary File System (IPFS) are used to make the data widely -available and resilient outside of the blockchain itself.

      - -

      As a publisher or consumer of such metadata from decentralized storage, you need to be confident -you have your own copy safe. So just like with the blockchain data, Hyperledger FireFly can -act as a staging post for this data.

      - -

      Structured JSON data can be stored, uploaded and downloaded from the FireFly database.

      - -

      Large image/document/video payloads are handled by the pluggable Data Exchange microservice, -which allows you to attach local or cloud storage to manage your copy of the data.

      - -

      FireFly then provides a standardized API to allow publishing of this data. So configuring -a reliable gateway to the decentralized storage tier can be done once, and then accessed -from your applications via a single Web3 Gateway.

      -

      - - - Maintain a private address book - - -

      - - -

      You need to manage your signing keys, and know the signing keys of others you are -transacting with. A blockchain address like 0x0742e81393ee79C768e84cF57F1bF314F0f31ECe -is not very helpful for this.

      - -

      So Hyperledger FireFly provides a pluggable identity system, built on the foundation of -the Decentralized IDentifier (DID). When in Web3 Gateway Mode these identities are not -shared or published, and simply provide you a local address book.

      - -

      You can associate profile information with the identities, for example correlating them -to the identifiers in your own core systems - such as an Identity and Access Management (IAM) -system, or Know Your Customer (KYC) database.

      - -
      -

      Learn more about Hyperledger FireFly Identities

      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/gateway_features/index.html b/head/overview/gateway_features/index.html new file mode 100644 index 000000000..9a672d3af --- /dev/null +++ b/head/overview/gateway_features/index.html @@ -0,0 +1,3596 @@ + + + + + + + + + + + + + + + + + + + + + + + Web3 Gateway Features - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Web3 Gateway Features

      + +

      Web3 Gateway features allow your FireFly Supernode to connect to any blockchain ecosystem, public or private. When a chain is connected, the FireFly Supernode may invoke custom smart contracts, interact with tokens, and monitor transactions. A single FireFly Supernode is able to have multiple namespaces, or isolated environments, where each namespace is a connection to a different chain.

      +

      Gateway Mode

      +

      Transfer tokenized value

      +

      The Digital Asset Features allow you to connect to +token economies, in multiple blockchains, using the same infrastructure and signing keys.

      +

      The complexities of how each token works, and how each blockchain works, are abstracted +away from you by the Hyperledger FireFly Connector Framework.

      +

      All of the layers of plumbing required to execute a transaction exactly once on a +blockchain, and tracking it through to completion, are part of the stack. Deploy and +configure them once in your Web3 gateway, and use them for multiple use cases in your +enterprise.

      +

      Invoke any other type of smart contract

      +

      The API Generation features of Hyperledger FireFly, allow +you to generate a convenient and reliable REST API for any smart contract logic.

      +

      Then you just invoke that contract like you would any other API, with all the features +you would expect like an OpenAPI 3.0 specification for the API, and UI explorer.

      +

      The same reliable transaction submission framework is used as for token transfers, +and you can use Hyperledger FireFly as a high volume staging post for those transactions.

      +
        +
      • Handles peaks in workload, drip-feeding transactions onto the chain
      • +
      • Handles large batch submissions, tracking
      • +
      • Manages nonce assignment at high volume
      • +
      • Idempotent APIs assuring that business transactions are submitted exactly once
      • +
      +
      +

      For EVM based chains, these features were significantly enhanced in the new EVMConnect +connector introduced in v1.1 of FireFly (superseding EthConnect).

      +
      +

      Index data from the blockchain

      +

      Blockchain nodes are not designed for efficient querying of historical information. Instead +their core function is to provide an ordered ledger of actions+events, along with a consistent +world state at any point in time.

      +

      This means that almost all user experiences and business APIs need a separate +data store, that provides an fast indexed view of the history and current state of the chain.

      +

      As an example, you've probably looked at a Block Explorer for a public blockchain on the web. +Well, you weren't looking directly at the blockchain node. You were querying an off-chain indexed +database, of all the blocks and transactions on that chain. An indexer behind the scenes +was listening to the blockchain and synchronizing the off-chain state.

      +

      Hyperledger FireFly has a built-in indexer for tokens, that maps every token +mint/burn/transfer/approve operation that happens on the the blockchain into the database for +fast query. You just specify which tokens you're interested in, and FireFly takes care of +the rest.

      +

      Additionally, FireFly does the heavy lifting part of indexing for all other types of smart contract +event that might occur. It scrapes the blockchain for the events, formats them into easy to +consume JSON, and reliably delivers them to your application.

      +

      So your application just needs a small bit of code to take those payloads, and insert them +into the database with the right database indexes you need to query your data by.

      +

      Reliably trigger events in your applications

      +

      One of the most important universal rules about Web3 applications, is that they are event-driven.

      +

      No one party in the system can chose to change the state, instead they must submit transactions +that get ordered against everyone else's transactions, and only once confirmed through the +consensus algorithm are they actioned.

      +

      This means the integration into your application and core systems needs to be event-driven too.

      +

      The same features that support reliable indexing of the blockchain data, allow reliable triggering +of application code, business workflows, and core system integrations.

      +
      +

      Learn more about the FireFly Event Bus

      +
      +

      Manage decentralized data (NFTs etc.)

      +

      Your blockchain transactions are likely to refer to data that is stored off-chain.

      +

      One common example is non-fungible-token (NFT) metadata, images and documents. These are not +a good fit for storing directly in any blockchain ledger, so complimentary decentralized +technologies like the InterPlanetary File System (IPFS) are used to make the data widely +available and resilient outside of the blockchain itself.

      +

      As a publisher or consumer of such metadata from decentralized storage, you need to be confident +you have your own copy safe. So just like with the blockchain data, Hyperledger FireFly can +act as a staging post for this data.

      +

      Structured JSON data can be stored, uploaded and downloaded from the FireFly database.

      +

      Large image/document/video payloads are handled by the pluggable Data Exchange microservice, +which allows you to attach local or cloud storage to manage your copy of the data.

      +

      FireFly then provides a standardized API to allow publishing of this data. So configuring +a reliable gateway to the decentralized storage tier can be done once, and then accessed +from your applications via a single Web3 Gateway.

      +

      Maintain a private address book

      +

      You need to manage your signing keys, and know the signing keys of others you are +transacting with. A blockchain address like 0x0742e81393ee79C768e84cF57F1bF314F0f31ECe +is not very helpful for this.

      +

      So Hyperledger FireFly provides a pluggable identity system, built on the foundation of +the Decentralized IDentifier (DID). When in Web3 Gateway Mode these identities are not +shared or published, and simply provide you a local address book.

      +

      You can associate profile information with the identities, for example correlating them +to the identifiers in your own core systems - such as an Identity and Access Management (IAM) +system, or Know Your Customer (KYC) database.

      +
      +

      Learn more about Hyperledger FireFly Identities

      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/index.html b/head/overview/index.html deleted file mode 100644 index 28b11d8cd..000000000 --- a/head/overview/index.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - - - Understanding FireFly - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.understanding_firefly | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - -
      - -

      - - - Understanding FireFly - - -

      - - - - -
      -

      Table of contents

      - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/key_components/apps.html b/head/overview/key_components/apps.html deleted file mode 100644 index 03361618d..000000000 --- a/head/overview/key_components/apps.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - - - - - - Apps - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.apps | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Apps - - -

      -
      - -

      Hyperledger FireFly App Features

      -

      - - - Apps - - -

      - - -

      Rapidly accelerating development of applications is a key feature of Hyperledger FireFly.

      - -

      The toolkit is designed to support the full-stack of applications in the enterprise Web3 -ecosystem, not just the Smart Contract layer.

      - -

      Business logic APIs, back-office system integrations, and web/mobile user experiences are just -as important to the overall Web3 use case.

      - -

      These layers require a different developer skill-set to the on-chain Smart Contracts, and those -developers must have the tools they need to work efficiently.

      -

      - - - API Gateway - - -

      - - -

      FireFly provides APIs that:

      - -
        -
      • Are fast and efficient
      • -
      • Have rich query support
      • -
      • Give deterministic outcomes and clear instructions for safe use
      • -
      • Integrate with your security frameworks like OAuth 2.0 / OpenID Connect single sign-on
      • -
      • Provide Open API 3 / Swagger definitions
      • -
      • Come with code SDKs, with rich type information
      • -
      • Conform as closely as possible to the principles of REST
      • -
      • Do not pretend to be RESTful in cases when it is impossible to be
      • -
      - -
      -

      Learn more about deploying APIs for custom smart contracts in this tutorial

      -
      -

      - - - Event Streams - - -

      - - -

      The reality is that the only programming paradigm that works for a decentralized solutions, -is an event-driven one.

      - -

      All blockchain technologies are for this reason event-driven programming interfaces at their core.

      - -

      In an overall solution, those on-chain events must be coordinated with off-chain private -data transfers, and existing core-systems / human workflows.

      - -

      This means great event support is a must:

      - -
        -
      • Convenient WebSocket APIs that work for your microservices development stack
      • -
      • Support for Webhooks to integrated serverless functions
      • -
      • Integration with your core enterprise message queue (MQ) or enterprise service bus (ESB)
      • -
      • At-least-once delivery assurance, with simple instructions at the application layer
      • -
      - -
      -

      Learn all about the Hyperledger FireFly Event Bus, and event-driven application architecture, -in this reference section

      -
      -

      - - - API Generation - - -

      - - -

      The blockchain is going to be at the heart of your Web3 project. While usually small in overall surface -area compared to the lines of code in the traditional application tiers, this kernel of -mission-critical code is what makes your solution transformational compared to a centralized / Web 2.0 solution.

      - -

      Whether the smart contract is hand crafted for your project, an existing contract on a public blockchain, -or a built-in pattern of a framework like FireFly - it must be interacted with correctly.

      - -

      So there can be no room for misinterpretation in the hand-off between the blockchain -Smart Contract specialist, familiar with EVM contracts in Solidity/Vyper, Fabric chaincode -(or maybe even raw block transition logic in Rust or Go), and the backend / full-stack -application developer / core-system integrator.

      - -

      Well documented APIs are the modern norm for this, and it is no different for blockchain.

      - -

      This means Hyperledger FireFly provides:

      - -
        -
      • Generating the interface for methods and events on your smart contract
      • -
      • Providing robust transaction submission, and event streaming
      • -
      • Publishing the API, version, and location, of your smart contracts to the network
      • -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/key_components/apps/index.html b/head/overview/key_components/apps/index.html new file mode 100644 index 000000000..a42ed1789 --- /dev/null +++ b/head/overview/key_components/apps/index.html @@ -0,0 +1,3546 @@ + + + + + + + + + + + + + + + + + + + + + + + Apps - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Apps

      + +

      Hyperledger FireFly App Features

      +

      Apps

      +

      Rapidly accelerating development of applications is a key feature of Hyperledger FireFly.

      +

      The toolkit is designed to support the full-stack of applications in the enterprise Web3 +ecosystem, not just the Smart Contract layer.

      +

      Business logic APIs, back-office system integrations, and web/mobile user experiences are just +as important to the overall Web3 use case.

      +

      These layers require a different developer skill-set to the on-chain Smart Contracts, and those +developers must have the tools they need to work efficiently.

      +

      API Gateway

      +

      FireFly provides APIs that:

      +
        +
      • Are fast and efficient
      • +
      • Have rich query support
      • +
      • Give deterministic outcomes and clear instructions for safe use
      • +
      • Integrate with your security frameworks like OAuth 2.0 / OpenID Connect single sign-on
      • +
      • Provide Open API 3 / Swagger definitions
      • +
      • Come with code SDKs, with rich type information
      • +
      • Conform as closely as possible to the principles of REST
      • +
      • Do not pretend to be RESTful in cases when it is impossible to be
      • +
      +
      +

      Learn more about deploying APIs for custom smart contracts in this tutorial

      +
      +

      Event Streams

      +

      The reality is that the only programming paradigm that works for a decentralized solutions, +is an event-driven one.

      +

      All blockchain technologies are for this reason event-driven programming interfaces at their core.

      +

      In an overall solution, those on-chain events must be coordinated with off-chain private +data transfers, and existing core-systems / human workflows.

      +

      This means great event support is a must:

      +
        +
      • Convenient WebSocket APIs that work for your microservices development stack
      • +
      • Support for Webhooks to integrated serverless functions
      • +
      • Integration with your core enterprise message queue (MQ) or enterprise service bus (ESB)
      • +
      • At-least-once delivery assurance, with simple instructions at the application layer
      • +
      +
      +

      Learn all about the Hyperledger FireFly Event Bus, and event-driven application architecture, +in this reference section

      +
      +

      API Generation

      +

      The blockchain is going to be at the heart of your Web3 project. While usually small in overall surface +area compared to the lines of code in the traditional application tiers, this kernel of +mission-critical code is what makes your solution transformational compared to a centralized / Web 2.0 solution.

      +

      Whether the smart contract is hand crafted for your project, an existing contract on a public blockchain, +or a built-in pattern of a framework like FireFly - it must be interacted with correctly.

      +

      So there can be no room for misinterpretation in the hand-off between the blockchain +Smart Contract specialist, familiar with EVM contracts in Solidity/Vyper, Fabric chaincode +(or maybe even raw block transition logic in Rust or Go), and the backend / full-stack +application developer / core-system integrator.

      +

      Well documented APIs are the modern norm for this, and it is no different for blockchain.

      +

      This means Hyperledger FireFly provides:

      +
        +
      • Generating the interface for methods and events on your smart contract
      • +
      • Providing robust transaction submission, and event streaming
      • +
      • Publishing the API, version, and location, of your smart contracts to the network
      • +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/key_components/connectors.html b/head/overview/key_components/connectors.html deleted file mode 100644 index 76bd2eacf..000000000 --- a/head/overview/key_components/connectors.html +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - - - - Connector Framework - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.connector_framework | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Connector Framework - - -

      -
      - -

      Hyperledger FireFly Connectivity Features

      -

      - - - Pluggable Microservices Architecture - - -

      - - -

      The ability for every component to be pluggable is at the core of Hyperledger FireFly.

      - -

      A microservices approach is used, combining code plug-points in the core runtime, with API extensibility -to remote runtimes implemented in a variety of programming languages.

      - -

      Hyperledger FireFly Architecture Overview

      -

      - - - Extension points - - -

      - - -
        -
      • Blockchain - a rich framework for extensibility to any blockchain / digital ledger technology (DLT)
      • -
      • Tokens - mapping token standards and governance models to a common data model
      • -
      • Shared storage - supporting permissioned and public distributed storage technologies
      • -
      • Data exchange - private local/storage and encrypted transfer of data
      • -
      • Identity - flexibility for resolving identities via Decentralized IDentifier (DID)
      • -
      • Persistence - the local private database
      • -
      - -
      -

      Learn more about the plugin architecture here

      -
      -

      - - - Blockchain Connector Framework - - -

      - - -

      The most advanced extension point is for the blockchain layer, where multiple layers of extensibility -are provided to support the programming models, and behaviors of different blockchain technologies.

      - -

      This framework has been proven with technologies as different as EVM based Layer 2 Ethereum Scaling -solutions like Polygon, all the way to permissioned Hyperledger Fabric networks.

      - -
      -

      Check out instructions to connect to a list of remote blockchain networks here.

      -
      - -

      FireFly Blockchain Connector Framework

      - -

      Find out more about the Blockchain Connector Framework here.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/key_components/connectors/index.html b/head/overview/key_components/connectors/index.html new file mode 100644 index 000000000..e09507454 --- /dev/null +++ b/head/overview/key_components/connectors/index.html @@ -0,0 +1,3486 @@ + + + + + + + + + + + + + + + + + + + + + + + Connector Framework - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Connector Framework

      + +

      Hyperledger FireFly Connectivity Features

      +

      Pluggable Microservices Architecture

      +

      The ability for every component to be pluggable is at the core of Hyperledger FireFly.

      +

      A microservices approach is used, combining code plug-points in the core runtime, with API extensibility +to remote runtimes implemented in a variety of programming languages.

      +

      Hyperledger FireFly Architecture Overview

      +

      Extension points

      +
        +
      • Blockchain - a rich framework for extensibility to any blockchain / digital ledger technology (DLT)
      • +
      • Tokens - mapping token standards and governance models to a common data model
      • +
      • Shared storage - supporting permissioned and public distributed storage technologies
      • +
      • Data exchange - private local/storage and encrypted transfer of data
      • +
      • Identity - flexibility for resolving identities via Decentralized IDentifier (DID)
      • +
      • Persistence - the local private database
      • +
      +
      +

      Learn more about the plugin architecture here

      +
      +

      Blockchain Connector Framework

      +

      The most advanced extension point is for the blockchain layer, where multiple layers of extensibility +are provided to support the programming models, and behaviors of different blockchain technologies.

      +

      This framework has been proven with technologies as different as EVM based Layer 2 Ethereum Scaling +solutions like Polygon, all the way to permissioned Hyperledger Fabric networks.

      +
      +

      Check out instructions to connect to a list of remote blockchain networks here.

      +
      +

      FireFly Blockchain Connector Framework

      +

      Find out more about the Blockchain Connector Framework here.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/key_components/digital_assets.html b/head/overview/key_components/digital_assets.html deleted file mode 100644 index 46de8c702..000000000 --- a/head/overview/key_components/digital_assets.html +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - - - Digital Assets - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.digital_assets | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Digital Assets - - -

      -
      - -

      Hyperledger FireFly Digital Asset Features

      -

      - - - Digital asset features - - -

      - - -

      The modelling, transfer and management of digital assets is the core programming -foundation of blockchain.

      - -

      Yet out of the box, raw blockchains designed to efficiently manage these assets -in large ecosystems, do not come with all the building blocks needed by applications.

      -

      - - - Token API - - -

      - - -

      Token standards have been evolving in the industry through standards -like ERC-20/ERC-721, and the Web3 signing wallets that support these.

      - -

      Hyperledger FireFly bring this same standardization to the application tier. -Providing APIs that work across token standards, and blockchain implementations, -providing consistent and interoperable support.

      - -

      This means one application or set of back-end systems, can integrate with multiple -blockchains, and different token implementations.

      - -

      Pluggability here is key, so that the rules of governance of each digital -asset ecosystem can be exposed and enforced. Whether tokens are fungible, -non-fungible, or some hybrid in between.

      - -
      -

      Learn more about token standards for fungible tokens, and non-fungible -tokens (NFTs) in this set of tutorials

      -
      -

      - - - Transfer history / audit trail - - -

      - - -

      For efficiency blockchains do not provide a direct ability to -query historical transaction information.

      - -

      Depending on the blockchain technology, even the current balance of your -wallet can be complex to calculate - particularly for blockchain -technologies based on an Unspent Transaction Output (UTXO) model.

      - -

      So off-chain indexing of transaction history is an absolute must-have -for any digital asset solution.

      - -

      Hyperledger FireFly provides:

      - -
        -
      • Automatic indexing of tokens, whether existing or newly deployed
      • -
      • Off-chain indexing of fungible and non-fungible asset transfers & balances
      • -
      • Off-chain indexing of approvals
      • -
      • Integration with digital identity
      • -
      • Full extensibility across both token standards and blockchain technologies
      • -
      -

      - - - Wallets - - -

      - - -

      Wallet and signing-key management is a critical requirement for any -blockchain solution, particularly those involving the transfer -of digital assets between wallets.

      - -

      Hyperledger FireFly provides you the ability to:

      - -
        -
      • Integrate multiple different signing/custody solutions in a proven way
      • -
      • Manage the mapping of off-chain identities to on-chain signing identities
      • -
      • Provide a plug-point for policy-based decision making on high value transactions
      • -
      • Manage connections to multiple different blockchain solutions
      • -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/key_components/digital_assets/index.html b/head/overview/key_components/digital_assets/index.html new file mode 100644 index 000000000..f117b73af --- /dev/null +++ b/head/overview/key_components/digital_assets/index.html @@ -0,0 +1,3536 @@ + + + + + + + + + + + + + + + + + + + + + + + Digital Assets - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Digital Assets

      + +

      Hyperledger FireFly Digital Asset Features

      +

      Digital asset features

      +

      The modelling, transfer and management of digital assets is the core programming +foundation of blockchain.

      +

      Yet out of the box, raw blockchains designed to efficiently manage these assets +in large ecosystems, do not come with all the building blocks needed by applications.

      +

      Token API

      +

      Token standards have been evolving in the industry through standards +like ERC-20/ERC-721, and the Web3 signing wallets that support these.

      +

      Hyperledger FireFly bring this same standardization to the application tier. +Providing APIs that work across token standards, and blockchain implementations, +providing consistent and interoperable support.

      +

      This means one application or set of back-end systems, can integrate with multiple +blockchains, and different token implementations.

      +

      Pluggability here is key, so that the rules of governance of each digital +asset ecosystem can be exposed and enforced. Whether tokens are fungible, +non-fungible, or some hybrid in between.

      +
      +

      Learn more about token standards for fungible tokens, and non-fungible +tokens (NFTs) in this set of tutorials

      +
      +

      Transfer history / audit trail

      +

      For efficiency blockchains do not provide a direct ability to +query historical transaction information.

      +

      Depending on the blockchain technology, even the current balance of your +wallet can be complex to calculate - particularly for blockchain +technologies based on an Unspent Transaction Output (UTXO) model.

      +

      So off-chain indexing of transaction history is an absolute must-have +for any digital asset solution.

      +

      Hyperledger FireFly provides:

      +
        +
      • Automatic indexing of tokens, whether existing or newly deployed
      • +
      • Off-chain indexing of fungible and non-fungible asset transfers & balances
      • +
      • Off-chain indexing of approvals
      • +
      • Integration with digital identity
      • +
      • Full extensibility across both token standards and blockchain technologies
      • +
      +

      Wallets

      +

      Wallet and signing-key management is a critical requirement for any +blockchain solution, particularly those involving the transfer +of digital assets between wallets.

      +

      Hyperledger FireFly provides you the ability to:

      +
        +
      • Integrate multiple different signing/custody solutions in a proven way
      • +
      • Manage the mapping of off-chain identities to on-chain signing identities
      • +
      • Provide a plug-point for policy-based decision making on high value transactions
      • +
      • Manage connections to multiple different blockchain solutions
      • +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/key_components/flows.html b/head/overview/key_components/flows.html deleted file mode 100644 index e1b82eb9c..000000000 --- a/head/overview/key_components/flows.html +++ /dev/null @@ -1,436 +0,0 @@ - - - - - - - - - Flows - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.flows | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Flows - - -

      -
      - -

      Hyperledger FireFly Data Flow Features

      -

      - - - Data flow - - -

      - - -

      The reality of most Web3 scenarios is that only a small part of the overall use-case -can be represented inside the blockchain or distributed ledger technology.

      - -

      Some additional data flow is always required. This does not diminish the value of -executing the kernel of the logic within the blockchain itself.

      - -

      Hyperledger FireFly embraces this reality, and allows an organization to keep track -of the relationship between the off-chain data flow, and the on-chain transactions.

      - -

      Let’s look at a few common examples:

      -

      - - - Digital Asset Transfers - - -

      - - -

      Examples of common data flows performed off-chain, include Know Your Customer (KYC) -and Anti Money Laundering (AML) checks that need to be performed and validated -before participating in transactions.

      - -

      There might also be document management and business transaction flows required to -verify the conditions are correct to digitally settle a transaction. -Have the goods been delivered? Are the contracts in place?

      - -

      In regulated enterprise scenarios it is common to see a 10-to-1 difference in the number -of steps performed off-chain to complete a business transaction, vs. the number -of steps performed on-chain.

      - -

      These off-chain data flows might be coordinated with on-chain smart contracts -that lock assets in digital escrow until the off-chain steps are completed by each party, -and protect each party while the steps are being completed.

      - -
      -

      A common form of digital escrow is a Hashed Timelock Contract (HTLC).

      -
      -

      - - - Non-fungible Tokens (NFTs) and hash-pinning - - -

      - - -

      The data associated with an NFT might be as simple as a JSON document pointing at an interesting -piece of artwork, or as complex a set of high resolution scans / authenticity documents -representing a digital twin of a real world object.

      - -

      Here the concept of a hash pinning is used - allowing anyone who has a copy of the original data -to recreate the hash that is stored in the on-chain record.

      - -

      With even the simplest NFT the business data is not stored on-chain, so simple data flow is -always required to publish/download the off-chain data.

      - -

      The data might be published publicly for anyone to download, or it might be sensitive and require -a detailed permissioning flow to obtain it from a current holder of that data.

      -

      - - - Dynamic NFTs and Business Transaction Flow - - -

      - - -

      In an enterprise context, an NFT might have a dynamic ever-evolving trail of business transaction -data associated with it. Different parties might have different views of that business data, based -on their participation in the business transactions associated with it.

      - -

      Here the NFT becomes a like a foreign key integrated across the core systems of a set of enterprises -working together in a set of business transactions.

      - -

      The data itself needs to be downloaded, retained, processed and rendered. -Probably integrated to systems, acted upon, and used in multiple exchanges between companies -on different blockchains, or off-chain.

      - -

      The business process is accelerated through this Enterprise NFT on the blockchain - as all parties -have matched or bound their own private data store to that NFT. This means they are confident -to be executing a business transaction against the same person or thing in the world.

      -

      - - - Data and Transaction Flow patterns - - -

      - - -

      Hyperledger FireFly provides the raw tools for building data and transaction flow patterns, such -as storing, hashing and transferring data. It provides the event bus to trigger off-chain -applications and integration to participate in the flows.

      - -

      It also provides the higher level flow capabilities that are needed for multiple parties to -build sophisticated transaction flows together, massively simplifying the application logic required:

      - -
        -
      • Coordinating the transfer of data off-chain with a blockchain sequencing transaction
      • -
      • Batching for high throughput transfer via the blockchain and distributed storage technologies
      • -
      • Managing privacy groups between parties involved in a business transaction
      • -
      • Masking the relationship between blockchain transactions, for sensitive data
      • -
      - -

      Multi-party business process flow

      - -
      -

      Learn more in Multiparty Process Flows

      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/key_components/flows/index.html b/head/overview/key_components/flows/index.html new file mode 100644 index 000000000..89df4d7d0 --- /dev/null +++ b/head/overview/key_components/flows/index.html @@ -0,0 +1,3569 @@ + + + + + + + + + + + + + + + + + + + + + + + Flows - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Flows

      + +

      Hyperledger FireFly Data Flow Features

      +

      Data flow

      +

      The reality of most Web3 scenarios is that only a small part of the overall use-case +can be represented inside the blockchain or distributed ledger technology.

      +

      Some additional data flow is always required. This does not diminish the value of +executing the kernel of the logic within the blockchain itself.

      +

      Hyperledger FireFly embraces this reality, and allows an organization to keep track +of the relationship between the off-chain data flow, and the on-chain transactions.

      +

      Let's look at a few common examples:

      +

      Digital Asset Transfers

      +

      Examples of common data flows performed off-chain, include Know Your Customer (KYC) +and Anti Money Laundering (AML) checks that need to be performed and validated +before participating in transactions.

      +

      There might also be document management and business transaction flows required to +verify the conditions are correct to digitally settle a transaction. +Have the goods been delivered? Are the contracts in place?

      +

      In regulated enterprise scenarios it is common to see a 10-to-1 difference in the number +of steps performed off-chain to complete a business transaction, vs. the number +of steps performed on-chain.

      +

      These off-chain data flows might be coordinated with on-chain smart contracts +that lock assets in digital escrow until the off-chain steps are completed by each party, +and protect each party while the steps are being completed.

      +
      +

      A common form of digital escrow is a Hashed Timelock Contract (HTLC).

      +
      +

      Non-fungible Tokens (NFTs) and hash-pinning

      +

      The data associated with an NFT might be as simple as a JSON document pointing at an interesting +piece of artwork, or as complex a set of high resolution scans / authenticity documents +representing a digital twin of a real world object.

      +

      Here the concept of a hash pinning is used - allowing anyone who has a copy of the original data +to recreate the hash that is stored in the on-chain record.

      +

      With even the simplest NFT the business data is not stored on-chain, so simple data flow is +always required to publish/download the off-chain data.

      +

      The data might be published publicly for anyone to download, or it might be sensitive and require +a detailed permissioning flow to obtain it from a current holder of that data.

      +

      Dynamic NFTs and Business Transaction Flow

      +

      In an enterprise context, an NFT might have a dynamic ever-evolving trail of business transaction +data associated with it. Different parties might have different views of that business data, based +on their participation in the business transactions associated with it.

      +

      Here the NFT becomes a like a foreign key integrated across the core systems of a set of enterprises +working together in a set of business transactions.

      +

      The data itself needs to be downloaded, retained, processed and rendered. +Probably integrated to systems, acted upon, and used in multiple exchanges between companies +on different blockchains, or off-chain.

      +

      The business process is accelerated through this Enterprise NFT on the blockchain - as all parties +have matched or bound their own private data store to that NFT. This means they are confident +to be executing a business transaction against the same person or thing in the world.

      +

      Data and Transaction Flow patterns

      +

      Hyperledger FireFly provides the raw tools for building data and transaction flow patterns, such +as storing, hashing and transferring data. It provides the event bus to trigger off-chain +applications and integration to participate in the flows.

      +

      It also provides the higher level flow capabilities that are needed for multiple parties to +build sophisticated transaction flows together, massively simplifying the application logic required:

      +
        +
      • Coordinating the transfer of data off-chain with a blockchain sequencing transaction
      • +
      • Batching for high throughput transfer via the blockchain and distributed storage technologies
      • +
      • Managing privacy groups between parties involved in a business transaction
      • +
      • Masking the relationship between blockchain transactions, for sensitive data
      • +
      +

      Multi-party business process flow

      +
      +

      Learn more in Multiparty Process Flows

      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/key_components/index.html b/head/overview/key_components/index.html new file mode 100644 index 000000000..38f990cee --- /dev/null +++ b/head/overview/key_components/index.html @@ -0,0 +1,3358 @@ + + + + + + + + + + + + + + + + + + + + + + + Key Features - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Key Features

      + +

      Hyperledger FireFly features

      +

      Hyperledger FireFly provides a rich suite of features for building new applications, and connecting +existing Web3 ecosystems to your business. In this section we introduce each core pillar of functionality.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/key_components/orchestration_engine.html b/head/overview/key_components/orchestration_engine.html deleted file mode 100644 index e61622e81..000000000 --- a/head/overview/key_components/orchestration_engine.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - - - Orchestration Engine - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.orchestration_engine | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Orchestration Engine - - -

      -
      - -

      Hyperledger FireFly Orchestration Engine

      -

      - - - FireFly Core - - -

      - - -

      At the core of Hyperledger FireFly is an event-driven engine that routes, indexed, aggregates, and sequences data -to and from the blockchain, and other connectors.

      - -

      Hyperledger FireFly Orchestration Engine

      -

      - - - Data Layer - - -

      - - -

      Your own private view of the each network you connect:

      - -
        -
      • Indexes of all tokens and NFTs that you transact with
      • -
      • A consistent view across multiple blockchains
      • -
      • High performance rich query of transaction and data audit trail
      • -
      • Private data you have received from other parties
      • -
      • Local copies of data you have download from IPFS or other shared storage tech
      • -
      -

      - - - Event Bus - - -

      - - -

      Whether a few dozen companies in a private blockchain consortium, or millions of -users connected to a public blockchain network - one thing is always true:

      - -

      Decentralized applications are event-driven.

      - -

      In an enterprise context, you need to think not only about how those events -are being handled and made consistent within the blockchain layer, -but also how those events are being processed and integrated to your core systems.

      - -

      FireFly provides you with the reliable streams of events you need, as well -as the interfaces to subscribe to those events and integrate them into your -core systems.

      - -
        -
      • Token transfer events, across multiple blockchains, and varied asset types
      • -
      • Custom smart contract events
      • -
      • Correlated on-chain and off-chain data events
      • -
      - -

      Hyperledger FireFly Event Mode

      - -
      -

      Learn more about the event bus and event-driven programming in this -reference document

      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/key_components/orchestration_engine/index.html b/head/overview/key_components/orchestration_engine/index.html new file mode 100644 index 000000000..e8fb1899d --- /dev/null +++ b/head/overview/key_components/orchestration_engine/index.html @@ -0,0 +1,3492 @@ + + + + + + + + + + + + + + + + + + + + + + + Orchestration Engine - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Orchestration Engine

      + +

      Hyperledger FireFly Orchestration Engine

      +

      FireFly Core

      +

      At the core of Hyperledger FireFly is an event-driven engine that routes, indexed, aggregates, and sequences data +to and from the blockchain, and other connectors.

      +

      Hyperledger FireFly Orchestration Engine

      +

      Data Layer

      +

      Your own private view of the each network you connect:

      +
        +
      • Indexes of all tokens and NFTs that you transact with
      • +
      • A consistent view across multiple blockchains
      • +
      • High performance rich query of transaction and data audit trail
      • +
      • Private data you have received from other parties
      • +
      • Local copies of data you have download from IPFS or other shared storage tech
      • +
      +

      Event Bus

      +

      Whether a few dozen companies in a private blockchain consortium, or millions of +users connected to a public blockchain network - one thing is always true:

      +

      Decentralized applications are event-driven.

      +

      In an enterprise context, you need to think not only about how those events +are being handled and made consistent within the blockchain layer, +but also how those events are being processed and integrated to your core systems.

      +

      FireFly provides you with the reliable streams of events you need, as well +as the interfaces to subscribe to those events and integrate them into your +core systems.

      +
        +
      • Token transfer events, across multiple blockchains, and varied asset types
      • +
      • Custom smart contract events
      • +
      • Correlated on-chain and off-chain data events
      • +
      +

      Hyperledger FireFly Event Mode

      +
      +

      Learn more about the event bus and event-driven programming in this +reference document

      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/key_components/security.html b/head/overview/key_components/security.html deleted file mode 100644 index 318697fa4..000000000 --- a/head/overview/key_components/security.html +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - - - Security - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.security | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Security - - -

      -
      - -

      Hyperledger FireFly Security Features

      -

      - - - API Security - - -

      - - -

      Hyperledger FireFly provides a pluggable infrastructure for authenticating API requests.

      - -

      Each namespace can be configured with a different authentication -plugin, such that different teams can have different access to resources on the same -FireFly server.

      - -

      A reference plugin implementation is provided for HTTP Basic Auth, combined with a htpasswd -verification of passwords with a bcrypt encoding.

      - -

      See this config section for details, and the -reference implementation -in Github

      - -
      -

      Pre-packaged vendor extensions to Hyperledger FireFly are known to be available, addressing more -comprehensive role-based access control (RBAC) and JWT/OAuth based security models.

      -
      -

      - - - Data Partitioning and Tenancy - - -

      - - -

      Namespaces also provide a data isolation system for different -applications / teams / tenants sharing a Hyperledger FireFly node.

      - -

      Namespaces

      - -

      Data is partitioned within the FireFly database by namespace. It is also possible to increase the -separation between namespaces, by using separate database configurations. For example to different -databases or table spaces within a single database server, or even to different database servers.

      -

      - - - Private Data Exchange - - -

      - - -

      FireFly has a pluggable implementation of a private data transfer bus. This transport supports -both structured data (conforming to agreed data formats), and large unstructured data & documents.

      - -

      Hyperledger FireFly Data Transport Layers

      - -

      A reference microservice implementation is provided for HTTPS point-to-point connectivity with -mutual TLS encryption.

      - -

      See the reference implementation -in Github

      - -
      -

      Pre-packaged vendor extensions to Hyperledger FireFly are known to be available, addressing -message queue based reliable delivery of messages, hub-and-spoke connectivity models, chunking -of very large file payloads, and end-to-end encryption.

      -
      - -

      Learn more about these private data flows in Multiparty Process Flows.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/key_components/security/index.html b/head/overview/key_components/security/index.html new file mode 100644 index 000000000..bcca90e2c --- /dev/null +++ b/head/overview/key_components/security/index.html @@ -0,0 +1,3494 @@ + + + + + + + + + + + + + + + + + + + + + + + Security - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Security

      + +

      Hyperledger FireFly Security Features

      +

      API Security

      +

      Hyperledger FireFly provides a pluggable infrastructure for authenticating API requests.

      +

      Each namespace can be configured with a different authentication +plugin, such that different teams can have different access to resources on the same +FireFly server.

      +

      A reference plugin implementation is provided for HTTP Basic Auth, combined with a htpasswd +verification of passwords with a bcrypt encoding.

      +

      See this config section for details, and the +reference implementation +in Github

      +
      +

      Pre-packaged vendor extensions to Hyperledger FireFly are known to be available, addressing more +comprehensive role-based access control (RBAC) and JWT/OAuth based security models.

      +
      +

      Data Partitioning and Tenancy

      +

      Namespaces also provide a data isolation system for different +applications / teams / tenants sharing a Hyperledger FireFly node.

      +

      Namespaces

      +

      Data is partitioned within the FireFly database by namespace. It is also possible to increase the +separation between namespaces, by using separate database configurations. For example to different +databases or table spaces within a single database server, or even to different database servers.

      +

      Private Data Exchange

      +

      FireFly has a pluggable implementation of a private data transfer bus. This transport supports +both structured data (conforming to agreed data formats), and large unstructured data & documents.

      +

      Hyperledger FireFly Data Transport Layers

      +

      A reference microservice implementation is provided for HTTPS point-to-point connectivity with +mutual TLS encryption.

      +

      See the reference implementation +in Github

      +
      +

      Pre-packaged vendor extensions to Hyperledger FireFly are known to be available, addressing +message queue based reliable delivery of messages, hub-and-spoke connectivity models, chunking +of very large file payloads, and end-to-end encryption.

      +
      +

      Learn more about these private data flows in Multiparty Process Flows.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/key_components/tools.html b/head/overview/key_components/tools.html deleted file mode 100644 index 3d677eaf3..000000000 --- a/head/overview/key_components/tools.html +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - Tools - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.tools | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Tools - - -

      -
      - -

      Hyperledger FireFly Tools

      -

      - - - FireFly CLI - - -

      - - -

      FireFly CLI

      - -

      The FireFly CLI can be used to create local FireFly stacks for offline development of blockchain apps. This allows developers to rapidly iterate on their idea without needing to set up a bunch of infrastructure before they can write the first line of code.

      -

      - - - FireFly Sandbox - - -

      - - -

      FireFly Sandbox

      - -

      The FireFly Sandbox sits logically outside the Supernode, and it acts like an “end-user” application written to use FireFly’s API. In your setup, you have one Sandbox per member, each talking to their own FireFly API. The purpose of the Sandbox is to provide a quick and easy way to try out all of the fundamental building blocks that FireFly provides. It also shows developers, through example code snippets, how they would implement the same functionality in their own app’s backend.

      - -
      -

      🗒 Technical details: The FireFly Sandbox is an example “full-stack” web app. It has a backend written in TypeScript / Node.js, and a frontend in TypeScript / React. When you click a button in your browser, the frontend makes a request to the backend, which then uses the FireFly Node.js SDK to make requests to FireFly’s API.

      -
      -

      - - - FireFly Explorer - - -

      - - -

      The FireFly explorer is a part of FireFly Core itself. It is a view into the system that allows operators to monitor the current state of the system and investigate specific transactions, messages, and events. It is also a great way for developers to see the results of running their code against FireFly’s API.

      - -

      FireFly Explorer

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/key_components/tools/index.html b/head/overview/key_components/tools/index.html new file mode 100644 index 000000000..19c56c23b --- /dev/null +++ b/head/overview/key_components/tools/index.html @@ -0,0 +1,3471 @@ + + + + + + + + + + + + + + + + + + + + + + + Tools - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Tools

      + +

      Hyperledger FireFly Tools

      +

      FireFly CLI

      +

      FireFly CLI

      +

      The FireFly CLI can be used to create local FireFly stacks for offline development of blockchain apps. This allows developers to rapidly iterate on their idea without needing to set up a bunch of infrastructure before they can write the first line of code.

      +

      FireFly Sandbox

      +

      FireFly Sandbox

      +

      The FireFly Sandbox sits logically outside the Supernode, and it acts like an "end-user" application written to use FireFly's API. In your setup, you have one Sandbox per member, each talking to their own FireFly API. The purpose of the Sandbox is to provide a quick and easy way to try out all of the fundamental building blocks that FireFly provides. It also shows developers, through example code snippets, how they would implement the same functionality in their own app's backend.

      +
      +

      🗒 Technical details: The FireFly Sandbox is an example "full-stack" web app. It has a backend written in TypeScript / Node.js, and a frontend in TypeScript / React. When you click a button in your browser, the frontend makes a request to the backend, which then uses the FireFly Node.js SDK to make requests to FireFly's API.

      +
      +

      FireFly Explorer

      +

      The FireFly explorer is a part of FireFly Core itself. It is a view into the system that allows operators to monitor the current state of the system and investigate specific transactions, messages, and events. It is also a great way for developers to see the results of running their code against FireFly's API.

      +

      FireFly Explorer

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/key_features.html b/head/overview/key_features.html deleted file mode 100644 index b79b90f8c..000000000 --- a/head/overview/key_features.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - - Key Features - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.key_features | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Key Features - - -

      -
      -

      Hyperledger FireFly features

      - -

      Hyperledger FireFly provides a rich suite of features for building new applications, and connecting -existing Web3 ecosystems to your business. In this section we introduce each core pillar of functionality.

      - - - - -
      -

      Table of contents

      - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/multiparty/broadcast.html b/head/overview/multiparty/broadcast.html deleted file mode 100644 index c53104ce3..000000000 --- a/head/overview/multiparty/broadcast.html +++ /dev/null @@ -1,418 +0,0 @@ - - - - - - - - - Broadcast data - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.broadcast_data | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Broadcast / shared data - - -

      -
      -

      - - - Introduction - - -

      - - -

      Multi-party systems are about establishing a shared source of truth, and -often that needs to include certain reference data that is available -to all parties in the network. The data needs to be “broadcast” to all -members, and also need to be available to new members that join the network

      - -

      Multi-party Systems

      -

      - - - Blockchain backed broadcast - - -

      - - -

      In order to maintain a complete history of all broadcast data for new members -joining the network, FireFly uses the blockchain to sequence the broadcasts -with pinning transactions referring to the data itself.

      - -

      Using the blockchain also gives a global order of events for these broadcasts, -which allows them to be processed by each member in a way that allows them -to derive the same result - even though the processing logic on the events -themselves is being performed independently by each member.

      - -

      For more information see Multiparty Event Sequencing.

      -

      - - - Shared data - - -

      - - -

      The data included in broadcasts is not recorded on the blockchain. Instead -a pluggable shared storage mechanism is used to contain the data itself. -The on-chain transaction just contains a hash of the data that is stored off-chain.

      - -

      This is because the data itself might be too large to be efficiently stored -and transferred via the blockchain itself, or subject to deletion at some -point in the future through agreement by the members in the network.

      - -

      While the data should be reliably stored with visibility to all members of the -network, the data can still be secured from leakage outside of the network.

      - -

      The InterPlanetary File System (IPFS) is an example of a distributed technology -for peer-to-peer storage and distribution of such data in a decentralized -multi-party system. It provides secure connectivity between a number of nodes, -combined with a decentralized index of data that is available, and native use -of hashes within the technology as the way to reference data by content.

      -

      - - - FireFly built-in broadcasts - - -

      - - -

      FireFly uses the broadcast mechanism internally to distribute key information to -all parties in the network:

      - -
        -
      • Network map -
          -
        • Organizational identities
        • -
        • Nodes
        • -
        • See Identities in the reference section for more information
        • -
        -
      • -
      • Datatype definitions -
          -
        • See Datatype in the reference section for more information
        • -
        -
      • -
      • Namespaces - -
      • -
      - -

      These definitions rely on the same assurances provided by blockchain backed -broadcast that FireFly applications do.

      - -
        -
      • Verification of the identity of the party in the network that performed the broadcast
      • -
      • Deterministic assignment of a namespace+name to an unique item of data -
          -
        • If two parties in the network broadcast the same data at similar times, the -same one “wins” for all parties in the network (including the broadcaster)
        • -
        -
      • -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/multiparty/broadcast/index.html b/head/overview/multiparty/broadcast/index.html new file mode 100644 index 000000000..3edc0e18a --- /dev/null +++ b/head/overview/multiparty/broadcast/index.html @@ -0,0 +1,3526 @@ + + + + + + + + + + + + + + + + + + + + + + + Broadcast / shared data - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Broadcast / shared data

      + +

      Introduction

      +

      Multi-party systems are about establishing a shared source of truth, and +often that needs to include certain reference data that is available +to all parties in the network. The data needs to be "broadcast" to all +members, and also need to be available to new members that join the network

      +

      Multi-party Systems

      +

      Blockchain backed broadcast

      +

      In order to maintain a complete history of all broadcast data for new members +joining the network, FireFly uses the blockchain to sequence the broadcasts +with pinning transactions referring to the data itself.

      +

      Using the blockchain also gives a global order of events for these broadcasts, +which allows them to be processed by each member in a way that allows them +to derive the same result - even though the processing logic on the events +themselves is being performed independently by each member.

      +

      For more information see Multiparty Event Sequencing.

      +

      Shared data

      +

      The data included in broadcasts is not recorded on the blockchain. Instead +a pluggable shared storage mechanism is used to contain the data itself. +The on-chain transaction just contains a hash of the data that is stored off-chain.

      +

      This is because the data itself might be too large to be efficiently stored +and transferred via the blockchain itself, or subject to deletion at some +point in the future through agreement by the members in the network.

      +

      While the data should be reliably stored with visibility to all members of the +network, the data can still be secured from leakage outside of the network.

      +

      The InterPlanetary File System (IPFS) is an example of a distributed technology +for peer-to-peer storage and distribution of such data in a decentralized +multi-party system. It provides secure connectivity between a number of nodes, +combined with a decentralized index of data that is available, and native use +of hashes within the technology as the way to reference data by content.

      +

      FireFly built-in broadcasts

      +

      FireFly uses the broadcast mechanism internally to distribute key information to +all parties in the network:

      +
        +
      • Network map
      • +
      • Organizational identities
      • +
      • Nodes
      • +
      • See Identities in the reference section for more information
      • +
      • Datatype definitions
      • +
      • See Datatype in the reference section for more information
      • +
      • Namespaces
      • +
      • See Namespaces for more information
      • +
      +

      These definitions rely on the same assurances provided by blockchain backed +broadcast that FireFly applications do.

      +
        +
      • Verification of the identity of the party in the network that performed the broadcast
      • +
      • Deterministic assignment of a namespace+name to an unique item of data
      • +
      • If two parties in the network broadcast the same data at similar times, the + same one "wins" for all parties in the network (including the broadcaster)
      • +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/multiparty/data_exchange.html b/head/overview/multiparty/data_exchange.html deleted file mode 100644 index 5f30026c7..000000000 --- a/head/overview/multiparty/data_exchange.html +++ /dev/null @@ -1,418 +0,0 @@ - - - - - - - - - Private Data Exchange - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.private_data_exchange | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Private data exchange - - -

      -
      -

      - - - Introduction - - -

      - - -

      Private data exchange is the way most enterprise business-to-business communication -happens today. One party privately sends data to another, over a pipe that has been -agreed as sufficiently secure between the two parties. That might be a REST API, -SOAP Web Service, FTP / EDI, Message Queue (MQ), or other B2B Gateway technology.

      - -

      Multi-party Systems

      - -

      The ability to perform these same private data exchanges within -a multi-party system is critical. In fact it’s common for the majority of business -data continue to transfer over such interfaces.

      - -

      So real-time application to application private messaging, and private -transfer of large blobs/documents, are first class constructs in the FireFly API.

      -

      - - - Qualities of service - - -

      - - -

      FireFly recognizes that a multi-party system will need to establish a secure messaging -backbone, with the right qualities of service for their requirements. So the implementation -is pluggable, and the plugin interface embraces the following quality of service -characteristics that differ between different implementations.

      - -
        -
      • Transport Encryption -
          -
        • Technologies like TLS encrypt data while it is in flight, so that it cannot be -sniffed by a third party that has access to the underlying network.
        • -
        -
      • -
      • Authentication -
          -
        • There are many technologies including Mutual TLS, and Java Web Tokens (JWT), -that can be used to ensure a private data exchange is happening with the -correct party in the system.
        • -
        • Most modern approaches use public/private key encryption to establish the identity -during the setup phase of a connection. This means a distribution mechanism is required -for public keys, which might be enhanced with a trust hierarchy (like PKI).
        • -
        -
      • -
      • Request/Response (Sync) vs. Message Queuing (Async) -
          -
        • Synchronous transports like HTTPS require both parties to be available at the -time data is sent, and the transmission must be retried at the application (plugin) -layer if it fails or times out.
        • -
        • Asynchronous transports like AMQP, MQTT or Kafka introduce one or more broker runtimes -between the parties, that reliably buffer the communications if the target application -falls behind or is temporarily unavailable.
        • -
        -
      • -
      • Hub & spoke vs. Peer to peer -
          -
        • Connectivity might be direct from one party to another within the network, tackling -the IT security complexity of firewalls between sensitive networks. Or network shared -infrastructure / as-a-service provider might be used to provide a reliable backbone -for data exchange between the members.
        • -
        -
      • -
      • End-to-end Payload Encryption -
          -
        • Particularly in cases where the networking hops are complex, or involve shared -shared/third-party infrastructure, end-to-end encryption can be used to additionally -protect the data while in flight. This technology means data remains encrypted -from the source to the target, regardless of the number of transport hops taken in-between.
        • -
        -
      • -
      • Large blob / Managed file transfer -
          -
        • The optimal approach to transferring real-time small messages (KBs in size) is different -to the approach to transferring large blobs (MBs/GBs in size). For large blobs chunking, -compression, and checkpoint restart are common for efficient and reliable transfer.
        • -
        -
      • -
      -

      - - - FireFly OSS implementation - - -

      - - -

      A reference implementation of a private data exchange is provided as part of the FireFly -project. This implementation uses peer-to-peer transfer over a synchronous HTTPS transport, -backed by Mutual TLS authentication. X509 certificate exchange is orchestrated by FireFly, -such that self-signed certificates can be used (or multiple PKI trust roots) and bound to -the blockchain-backed identities of the organizations in FireFly.

      - -

      See hyperledger/firefly-dataexchange-https

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/multiparty/data_exchange/index.html b/head/overview/multiparty/data_exchange/index.html new file mode 100644 index 000000000..0d1ab6b82 --- /dev/null +++ b/head/overview/multiparty/data_exchange/index.html @@ -0,0 +1,3514 @@ + + + + + + + + + + + + + + + + + + + + + + + Private data exchange - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Private data exchange

      + +

      Introduction

      +

      Private data exchange is the way most enterprise business-to-business communication +happens today. One party privately sends data to another, over a pipe that has been +agreed as sufficiently secure between the two parties. That might be a REST API, +SOAP Web Service, FTP / EDI, Message Queue (MQ), or other B2B Gateway technology.

      +

      Multi-party Systems

      +

      The ability to perform these same private data exchanges within +a multi-party system is critical. In fact it's common for the majority of business +data continue to transfer over such interfaces.

      +

      So real-time application to application private messaging, and private +transfer of large blobs/documents, are first class constructs in the FireFly API.

      +

      Qualities of service

      +

      FireFly recognizes that a multi-party system will need to establish a secure messaging +backbone, with the right qualities of service for their requirements. So the implementation +is pluggable, and the plugin interface embraces the following quality of service +characteristics that differ between different implementations.

      +
        +
      • Transport Encryption
      • +
      • Technologies like TLS encrypt data while it is in flight, so that it cannot be + sniffed by a third party that has access to the underlying network.
      • +
      • Authentication
      • +
      • There are many technologies including Mutual TLS, and Java Web Tokens (JWT), + that can be used to ensure a private data exchange is happening with the + correct party in the system.
      • +
      • Most modern approaches use public/private key encryption to establish the identity + during the setup phase of a connection. This means a distribution mechanism is required + for public keys, which might be enhanced with a trust hierarchy (like PKI).
      • +
      • Request/Response (Sync) vs. Message Queuing (Async)
      • +
      • Synchronous transports like HTTPS require both parties to be available at the + time data is sent, and the transmission must be retried at the application (plugin) + layer if it fails or times out.
      • +
      • Asynchronous transports like AMQP, MQTT or Kafka introduce one or more broker runtimes + between the parties, that reliably buffer the communications if the target application + falls behind or is temporarily unavailable.
      • +
      • Hub & spoke vs. Peer to peer
      • +
      • Connectivity might be direct from one party to another within the network, tackling + the IT security complexity of firewalls between sensitive networks. Or network shared + infrastructure / as-a-service provider might be used to provide a reliable backbone + for data exchange between the members.
      • +
      • End-to-end Payload Encryption
      • +
      • Particularly in cases where the networking hops are complex, or involve shared + shared/third-party infrastructure, end-to-end encryption can be used to additionally + protect the data while in flight. This technology means data remains encrypted + from the source to the target, regardless of the number of transport hops taken in-between.
      • +
      • Large blob / Managed file transfer
      • +
      • The optimal approach to transferring real-time small messages (KBs in size) is different + to the approach to transferring large blobs (MBs/GBs in size). For large blobs chunking, + compression, and checkpoint restart are common for efficient and reliable transfer.
      • +
      +

      FireFly OSS implementation

      +

      A reference implementation of a private data exchange is provided as part of the FireFly +project. This implementation uses peer-to-peer transfer over a synchronous HTTPS transport, +backed by Mutual TLS authentication. X509 certificate exchange is orchestrated by FireFly, +such that self-signed certificates can be used (or multiple PKI trust roots) and bound to +the blockchain-backed identities of the organizations in FireFly.

      +

      See hyperledger/firefly-dataexchange-https

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/multiparty/deterministic.html b/head/overview/multiparty/deterministic.html deleted file mode 100644 index 656e89b1d..000000000 --- a/head/overview/multiparty/deterministic.html +++ /dev/null @@ -1,470 +0,0 @@ - - - - - - - - - Deterministic Compute - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.deterministic | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Deterministic Compute - - -

      -
      -

      - - - Introduction - - -

      - - -

      A critical aspect of designing a multi-party systems, is choosing where you exploit -the blockchain and other advanced cryptography technology to automate agreement -between parties.

      - -

      Specifically where you rely on the computation itself to come up with a result that all parties -can independently trust. For example because all parties performed the same computation -independently and came up with the same result, against the same data, and agreed -to that result using a consensus algorithm.

      - -

      The more sophisticated the agreement is you want to prove, the more consideration needs -to be taken into factors such as:

      - -
        -
      • Data privacy
      • -
      • Data deletion
      • -
      • Ease of understanding by business users
      • -
      • Ease of audit
      • -
      • Autonomy of parties with proprietary business logic
      • -
      • Human workflows (obviously non-deterministic)
      • -
      • Technology complexity/maturity (particularly for privacy preserving technologies)
      • -
      • Cost and skills for implementation
      • -
      - -

      FireFly embraces the fact that different use cases, will make different decisions on how much -of the agreement should be enforced through deterministic compute.

      - -

      Also that multi-party systems include a mixture of approaches in addition to deterministic -compute, including traditional off-chain secure HTTP/Messaging, documents, private -non-deterministic logic, and human workflows.

      -

      - - - The fundamental building blocks - - -

      - - -

      There are some fundamental types of deterministic computation, that can be proved with -mature blockchain technology, and all multi-party systems should consider exploiting:

      - -
        -
      • Total conservation of value -
          -
        • Allows you to assign value to something, because you know it is a fraction of a total pool
        • -
        • This is the magic behind fungible tokens, or “coins”
        • -
        • The proven technology for this is a shared ledger of all previous transactions
        • -
        • Learn more in the Tokens section
        • -
        -
      • -
      • Existence and ownership of a unique identifiable thing -
          -
        • Gives you an anchor to attach to something in the real world
        • -
        • This is the magic behind non-fungible tokens (NTFs)
        • -
        • The proven technology for this is a shared ledger of its creation, and ownership changes
        • -
        • Learn more in the Tokens section
        • -
        -
      • -
      • An agreed sequence of events -
          -
        • The foundation tool that allows the building of higher level constructs (including tokens)
        • -
        • Not previously available when business ecosystems used HTTP/Messaging transports alone
        • -
        • Can be bi-lateral, multi-lateral or global
        • -
        • Each blockchain technology has different features to establish these “chains” of information
        • -
        • Different approaches provide privacy different levels of privacy on the parties and sequence
        • -
        -
      • -
      • Identification of data by a “hash” of its contents -
          -
        • The glue that binds a piece of private data, to a proof that you have a copy of that data
        • -
        • This is the basis of “pinning” data to the blockchain, without sharing its contents
        • -
        • Care needs to be taken to make sure the data is unique enough to make the hash secure
        • -
        • Learn more in the Gateway Features section
        • -
        -
      • -
      -

      - - - Advanced Cryptography and Privacy Preserving Trusted Compute - - -

      - - -

      There are use cases where a deterministic agreement on computation is desired, -but the data upon which the execution is performed cannot be shared between all the parties.

      - -

      For example proving total conservation of value in a token trading scenario, without -knowing who is involved in the individual transactions. Or providing you have access to a piece of -data, without disclosing what that data is.

      - -

      Technologies exist that can solve these requirements, with two major categories:

      - -
        -
      • Zero Knowledge Proofs (ZKPs) -
          -
        • Advanced cryptography techniques that allow one party to generate a proof that can be -be verified by another party, without access to the data used to generate the proof.
        • -
        -
      • -
      • Trusted Compute Environments (TEEs) -
          -
        • Secure compute environments that provide proofs of what code was executed, such that -other parties can be confident of the logic that was executed without having access to the data.
        • -
        -
      • -
      - -

      FireFly today provides an orchestration engine that’s helpful in coordinating the inputs, outputs, -and execution of such advanced cryptography technologies.

      - -

      Active collaboration between the FireFly and other projects like Hyperledger Avalon, -and Hyperledger Cactus, is evolving how these technologies can plug-in with higher level patterns.

      -

      - - - Complementary approaches to deterministic computation - - -

      - - -

      Enterprise multi-party systems usually operate differently to end-user decentralized -applications. In particular, strong identity is established for the organizations that are -involved, and those organizations usually sign legally binding commitments around their participation -in the network. Those businesses then bring on-board an ecosystem of employees and or customers that -are end-users to the system.

      - -

      So the shared source of truth empowered by the blockchain and other cryptography are not the only -tools that can be used in the toolbox to ensure correct behavior. Recognizing that there are real -legal entities involved, that are mature and regulated, does not undermine the value of the blockchain -components. In fact it enhances it.

      - -

      A multi-party system can use just enough of this secret sauce in the right places, to change -the dynamics of trust such that competitors in a market are willing to create value together that -could never be created before.

      - -

      Or create a system where parties can share data with each other while still conforming to their own -regulatory and audit commitments, that previously would have been impossible to share.

      - -

      Not to be overlooked is the sometimes astonishing efficiency increase that can be added to existing -business relationships, by being able to agree the order and sequence of a set of events. Having the -tools to digitize processes that previously took physical documents flying round the world, into -near-immediate digital agreement where the arbitration of a dispute can be resolved at a tiny fraction -of what would have been possible without a shared and immutable audit trail of who said what when.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/multiparty/deterministic/index.html b/head/overview/multiparty/deterministic/index.html new file mode 100644 index 000000000..6f819c5c6 --- /dev/null +++ b/head/overview/multiparty/deterministic/index.html @@ -0,0 +1,3566 @@ + + + + + + + + + + + + + + + + + + + + + + + Deterministic Compute - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Deterministic Compute

      + +

      Introduction

      +

      A critical aspect of designing a multi-party systems, is choosing where you exploit +the blockchain and other advanced cryptography technology to automate agreement +between parties.

      +

      Specifically where you rely on the computation itself to come up with a result that all parties +can independently trust. For example because all parties performed the same computation +independently and came up with the same result, against the same data, and agreed +to that result using a consensus algorithm.

      +

      The more sophisticated the agreement is you want to prove, the more consideration needs +to be taken into factors such as:

      +
        +
      • Data privacy
      • +
      • Data deletion
      • +
      • Ease of understanding by business users
      • +
      • Ease of audit
      • +
      • Autonomy of parties with proprietary business logic
      • +
      • Human workflows (obviously non-deterministic)
      • +
      • Technology complexity/maturity (particularly for privacy preserving technologies)
      • +
      • Cost and skills for implementation
      • +
      +

      FireFly embraces the fact that different use cases, will make different decisions on how much +of the agreement should be enforced through deterministic compute.

      +

      Also that multi-party systems include a mixture of approaches in addition to deterministic +compute, including traditional off-chain secure HTTP/Messaging, documents, private +non-deterministic logic, and human workflows.

      +

      The fundamental building blocks

      +

      There are some fundamental types of deterministic computation, that can be proved with +mature blockchain technology, and all multi-party systems should consider exploiting:

      +
        +
      • Total conservation of value
      • +
      • Allows you to assign value to something, because you know it is a fraction of a total pool
      • +
      • This is the magic behind fungible tokens, or "coins"
      • +
      • The proven technology for this is a shared ledger of all previous transactions
      • +
      • Learn more in the Tokens section
      • +
      • Existence and ownership of a unique identifiable thing
      • +
      • Gives you an anchor to attach to something in the real world
      • +
      • This is the magic behind non-fungible tokens (NTFs)
      • +
      • The proven technology for this is a shared ledger of its creation, and ownership changes
      • +
      • Learn more in the Tokens section
      • +
      • An agreed sequence of events
      • +
      • The foundation tool that allows the building of higher level constructs (including tokens)
      • +
      • Not previously available when business ecosystems used HTTP/Messaging transports alone
      • +
      • Can be bi-lateral, multi-lateral or global
      • +
      • Each blockchain technology has different features to establish these "chains" of information
      • +
      • Different approaches provide privacy different levels of privacy on the parties and sequence
      • +
      • Identification of data by a "hash" of its contents
      • +
      • The glue that binds a piece of private data, to a proof that you have a copy of that data
      • +
      • This is the basis of "pinning" data to the blockchain, without sharing its contents
      • +
      • Care needs to be taken to make sure the data is unique enough to make the hash secure
      • +
      • Learn more in the Gateway Features section
      • +
      +

      Advanced Cryptography and Privacy Preserving Trusted Compute

      +

      There are use cases where a deterministic agreement on computation is desired, +but the data upon which the execution is performed cannot be shared between all the parties.

      +

      For example proving total conservation of value in a token trading scenario, without +knowing who is involved in the individual transactions. Or providing you have access to a piece of +data, without disclosing what that data is.

      +

      Technologies exist that can solve these requirements, with two major categories:

      +
        +
      • Zero Knowledge Proofs (ZKPs)
      • +
      • Advanced cryptography techniques that allow one party to generate a proof that can be + be verified by another party, without access to the data used to generate the proof.
      • +
      • Trusted Compute Environments (TEEs)
      • +
      • Secure compute environments that provide proofs of what code was executed, such that + other parties can be confident of the logic that was executed without having access to the data.
      • +
      +

      FireFly today provides an orchestration engine that's helpful in coordinating the inputs, outputs, +and execution of such advanced cryptography technologies.

      +

      Active collaboration between the FireFly and other projects like Hyperledger Avalon, +and Hyperledger Cactus, is evolving how these technologies can plug-in with higher level patterns.

      +

      Complementary approaches to deterministic computation

      +

      Enterprise multi-party systems usually operate differently to end-user decentralized +applications. In particular, strong identity is established for the organizations that are +involved, and those organizations usually sign legally binding commitments around their participation +in the network. Those businesses then bring on-board an ecosystem of employees and or customers that +are end-users to the system.

      +

      So the shared source of truth empowered by the blockchain and other cryptography are not the only +tools that can be used in the toolbox to ensure correct behavior. Recognizing that there are real +legal entities involved, that are mature and regulated, does not undermine the value of the blockchain +components. In fact it enhances it.

      +

      A multi-party system can use just enough of this secret sauce in the right places, to change +the dynamics of trust such that competitors in a market are willing to create value together that +could never be created before.

      +

      Or create a system where parties can share data with each other while still conforming to their own +regulatory and audit commitments, that previously would have been impossible to share.

      +

      Not to be overlooked is the sometimes astonishing efficiency increase that can be added to existing +business relationships, by being able to agree the order and sequence of a set of events. Having the +tools to digitize processes that previously took physical documents flying round the world, into +near-immediate digital agreement where the arbitration of a dispute can be resolved at a tiny fraction +of what would have been possible without a shared and immutable audit trail of who said what when.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/multiparty/index.html b/head/overview/multiparty/index.html new file mode 100644 index 000000000..a8a526062 --- /dev/null +++ b/head/overview/multiparty/index.html @@ -0,0 +1,3435 @@ + + + + + + + + + + + + + + + + + + + + + + + Multiparty Features - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Enterprise multi-party systems

      +

      Introduction

      +

      Multiparty mode has all the features in Gateway mode with the added benefit of multi-party process flows.

      +

      A multi-party system is a class of application empowered by the technology revolution +of blockchain digital ledger technology (DLT), and emerging cryptographic proof technologies +like zero-knowledge proofs (ZKPs) and trusted execution environments (TEEs).

      +

      By combining these technologies with existing best practice technologies for +data security in regulated industries, multi-party systems allow businesses to +collaborate in ways previously impossible.

      +

      Multiparty Mode

      +

      Through agreement on a common source of truth, such as the completion of a step in a +business process to proceed, or the existence and ownership of a unique asset, businesses +can cut out huge inefficiencies in existing multi-party processes.

      +

      New business and transaction models can be achieved, unlocking value in assets and data +that were previously siloed within a single organization. Governance and incentive +models can be created to enable secure collaboration in new ways, without compromising +the integrity of an individual organization.

      +

      The technology is most powerful in ecosystems of "coopetition", where privacy and security +requirements are high. Multi-party systems establish new models of trust, with easy to +prove outcomes that minimize the need for third party arbitration, and costly investigation +into disputes.

      +

      Points of difference

      +

      Integration with existing systems of record is critical to unlock the potential +of these new ecosystems. So multi-party systems embrace the existing investments of +each party, rather than seeking to unify or replace them.

      +

      Multi-party systems are different from centralized third-party systems, because each +party retains sovereignty over:

      +
        +
      • Their application instance
      • +
      • Their private data
      • +
      • Their business processes
      • +
      • Their proprietary business logic
      • +
      • Their internal business processes and IT controls
      • +
      +

      Use Case Example

      +

      There are many multiparty use cases. An example for healthcare is detailed below.

      +

      Patient care requires multiple entities to work together including healthcare providers, insurance companies, and medical systems. Sharing data between these parties is inefficient and prone to errors and patient information must be kept secure and up to date. Blockchain's shared ledger makes it possible to automate data sharing while ensuring accuracy and privacy.

      +

      In a Multi-party FireFly system, entities are able to share data privately as detailed in the "Data Exchange" section. For example, imagine a scenario where there is one healthcare provider and two insurance companies operating in a multi-party system. Insurance company A may send private data to the healthcare provider that insurance company B is not privy to. While insurance company B may not know the contents of data transferred, it may verify that a transfer of data did occur. This validation is all thats needed to maintain an up to date state of the blockchain.

      +

      In a larger healthcare ecosystem with many members, a similar concept may emerge with multiple variations of members.

      + + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/multiparty/multiparty_flow.html b/head/overview/multiparty/multiparty_flow.html deleted file mode 100644 index 178e8d551..000000000 --- a/head/overview/multiparty/multiparty_flow.html +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - Multiparty Process Flow - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.multiparty_flow | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Multiparty Process Flows - - -

      -
      -

      - - - Flow features - - -

      - - -

      Data, value, and process flow are how decentralized systems function. In an enterprise context -not all of this data can be shared with all parties, and some is very sensitive.

      -

      - - - Private data flow - - -

      - - -

      Managing the flows of data so that the right information is shared with the right parties, -at the right time, means thinking carefully about what data flows over what channel.

      - -

      The number of enterprise solutions where all data can flow directly through the blockchain, -is vanishingly small.

      - -

      Coordinating these different data flows is often one of the biggest pieces of heavy lifting solved -on behalf of the application by a robust framework like FireFly:

      - -
        -
      • Establishing the identity of participants so data can be shared
      • -
      • Securing the transfer of data off-chain
      • -
      • Coordinating off-chain data flow with on-chain data flow
      • -
      • Managing sequence for deterministic outcomes for all parties
      • -
      • Integrating off-chain private execution with multi-step stateful business logic
      • -
      -

      - - - Multi-party business process flow - - -

      - - -

      Web3 has the potential to transform how ecosystems interact. Digitally transforming -legacy process flows, by giving deterministic outcomes that are trusted by all parties, -backed by new forms of digital trust between parties.

      - -

      Some of the most interesting use cases require complex multi-step business process across -participants. The Web3 version of business process management, comes with a some new challenges.

      - -

      So you need the platform to:

      - -
        -
      • Provide a robust event-driven programming model fitting a “state machine” approach
      • -
      • Integrate with the decentralized application stack of each participant
      • -
      • Allow integration with the core-systems and human decision making of each participant
      • -
      • Provide deterministic ordering between all parties
      • -
      • Provide identity assurance and proofs for data flow / transition logic
      • -
      -

      - - - Data exchange - - -

      - - -

      Business processes need data, and that data comes in many shapes and sizes.

      - -

      The platform needs to handle all of them:

      - -
        -
      • Large files and documents, as well as application data
      • -
      • Uniqueness / Enterprise NFTs - agreement on a single “foreign key” for a record
      • -
      • Non-repudiation, and acknowledgement of receipt
      • -
      • Coordination of flows of data, with flows of value - delivery vs. payment scenarios
      • -
      -

      - - - Building multi-party flows - - -

      - - -

      The ability to globally sequence events across parties is a game changing capability of a multiparty -system. FireFly is designed to allow developers to harnesses that power in the application layer, to build -sophisticated multi-party APIs and user experiences.

      - -

      Multi-party business process flow

      - -
        -
      • Build multi-party business processes where there is one agreed outcome: -
          -
        • Agree the trigger, inputs, outputs of each step in the process
        • -
        • Agree any common “rules of the road” must be adhered to
        • -
        -
      • -
      • Look back at your shared history, when deciding to commit to the next step: -
          -
        • Fast rich-query cache, backed by a private database
        • -
        • Initiate the next step through automated or manual decision making
        • -
        • Only consider a step final once it’s multi-party sequence has been confirmed
        • -
        -
      • -
      • Gain big efficiencies in how multi-party business processes work: -
          -
        • Once locked in, a step is consider final - attested to by the party
        • -
        • If two parties submit conflicting actions, one wins, and one loses
        • -
        • Avoids complex compensation logic in the business orchestration layer
        • -
        • Provides one clear source of truth to quickly resolve multi-party disputes
        • -
        -
      • -
      • Program multi-party apps using the tools you know: -
          -
        • REST APIs for triggering the next step in a process, and querying history
        • -
        • WebSockets and Webhooks for events (pluggable to other event transports)
        • -
        • Remember - each party runs their own copy of the app, with their own private data
        • -
        -
      • -
      • Allow each party to integrate into their existing core systems: -
          -
        • Realtime or batch
        • -
        • Human workflows
        • -
        • Proprietary business logic that is unique to one party
        • -
        -
      • -
      • Avoid sensitive data written to the blockchain: -
          -
        • Works in bi-lateral and multi-lateral scenarios
        • -
        • Designed to limit leaking other “metadata” about the transaction as well
        • -
        • Share partial history with different participants in a
        • -
        -
      • -
      • No requirement to write custom on-chain smart contract logic: -
          -
        • Can be combined with rich custom on-chain logic as well
        • -
        -
      • -
      -

      - - - Innovate fast - - -

      - - -

      Building a successful multi-party system is often about business experimentation, and business results. -Proving the efficiency gains, and new business models, made possible by working together in a new way -under a new system of trust.

      - -

      Things that can get in the way of that innovation, can include concerns over data privacy, technology -maturity, and constraints on autonomy of an individual party in the system. An easy to explain position -on how new technology components are used, where data lives, and how business process independence -is maintained can really help parties make the leap of faith necessary to take the step towards a new -model.

      - -

      Keys to success often include building great user experiences that help digitize clunky decades old -manual processes. Also easy to integrate with APIs, what embrace the existing core systems of record -that are establish within each party.

      -

      - - - Consider the on-chain toolbox too - - -

      - - -

      There is a huge amount of value that deterministic execution of multi-party logic within the blockchain can add. -However, the more compute is made fully deterministic via a blockchain consensus algorithm validated -by multiple parties beyond those with a business need for access to the data, the more sensitivity -needs to be taken to data privacy. Also bear in mind any data that is used in this processing -becomes immutable - it can never be deleted.

      - -

      The core constructs of blockchain are a great place to start. -Almost every process can be enhanced with pre-built fungible and non-fungible tokens, for example. -Maybe it’s to build a token economy that enhances the value parties get from the system, -or to encourage healthy participation (and discourage bad behavior). -Or maybe it’s to track exactly which party owns a document, asset, or action within a process using NFTs.

      - -

      On top of this you can add advanced tools like digital escrow, signature / threshold based voting -on outcomes, and atomic swaps of value/ownership.

      - -

      The investment in building this bespoke on-chain logic is higher than building the off-chain pieces -(and there are always some off-chain pieces as we’ve discussed), so it’s about finding the kernel -of value the blockchain can provide to differentiate your solution from a centralized database solution.

      - -

      The power provided by deterministic sequencing of events, attested by signatures, and pinned -to private data might be sufficient for some cases. In others the token constructs are the key value -that differentiates the decentralized ecosystem. Whatever it is, it’s important it is identified and -crafted carefully.

      - -
      -

      Note that advanced privacy preserving techniques such as zero-knowledge proofs (ZKP) are gaining traction -and hardening in their production readiness and efficiency. Expect these to play an increasing -role in the technology stack of multiparty systems (and Hyperledger FireFly) in the future.

      -
      - -

      Learn more in the Deterministic Compute section.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/multiparty/multiparty_flow/index.html b/head/overview/multiparty/multiparty_flow/index.html new file mode 100644 index 000000000..a8a8d1b4d --- /dev/null +++ b/head/overview/multiparty/multiparty_flow/index.html @@ -0,0 +1,3653 @@ + + + + + + + + + + + + + + + + + + + + + + + Multiparty Process Flows - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Multiparty Process Flows

      + +

      Flow features

      +

      Data, value, and process flow are how decentralized systems function. In an enterprise context +not all of this data can be shared with all parties, and some is very sensitive.

      +

      Private data flow

      +

      Managing the flows of data so that the right information is shared with the right parties, +at the right time, means thinking carefully about what data flows over what channel.

      +

      The number of enterprise solutions where all data can flow directly through the blockchain, +is vanishingly small.

      +

      Coordinating these different data flows is often one of the biggest pieces of heavy lifting solved +on behalf of the application by a robust framework like FireFly:

      +
        +
      • Establishing the identity of participants so data can be shared
      • +
      • Securing the transfer of data off-chain
      • +
      • Coordinating off-chain data flow with on-chain data flow
      • +
      • Managing sequence for deterministic outcomes for all parties
      • +
      • Integrating off-chain private execution with multi-step stateful business logic
      • +
      +

      Multi-party business process flow

      +

      Web3 has the potential to transform how ecosystems interact. Digitally transforming +legacy process flows, by giving deterministic outcomes that are trusted by all parties, +backed by new forms of digital trust between parties.

      +

      Some of the most interesting use cases require complex multi-step business process across +participants. The Web3 version of business process management, comes with a some new challenges.

      +

      So you need the platform to:

      +
        +
      • Provide a robust event-driven programming model fitting a "state machine" approach
      • +
      • Integrate with the decentralized application stack of each participant
      • +
      • Allow integration with the core-systems and human decision making of each participant
      • +
      • Provide deterministic ordering between all parties
      • +
      • Provide identity assurance and proofs for data flow / transition logic
      • +
      +

      Data exchange

      +

      Business processes need data, and that data comes in many shapes and sizes.

      +

      The platform needs to handle all of them:

      +
        +
      • Large files and documents, as well as application data
      • +
      • Uniqueness / Enterprise NFTs - agreement on a single "foreign key" for a record
      • +
      • Non-repudiation, and acknowledgement of receipt
      • +
      • Coordination of flows of data, with flows of value - delivery vs. payment scenarios
      • +
      +

      Building multi-party flows

      +

      The ability to globally sequence events across parties is a game changing capability of a multiparty +system. FireFly is designed to allow developers to harnesses that power in the application layer, to build +sophisticated multi-party APIs and user experiences.

      +

      Multi-party business process flow

      +
        +
      • Build multi-party business processes where there is one agreed outcome:
      • +
      • Agree the trigger, inputs, outputs of each step in the process
      • +
      • Agree any common "rules of the road" must be adhered to
      • +
      • Look back at your shared history, when deciding to commit to the next step:
      • +
      • Fast rich-query cache, backed by a private database
      • +
      • Initiate the next step through automated or manual decision making
      • +
      • Only consider a step final once it's multi-party sequence has been confirmed
      • +
      • Gain big efficiencies in how multi-party business processes work:
      • +
      • Once locked in, a step is consider final - attested to by the party
      • +
      • If two parties submit conflicting actions, one wins, and one loses
      • +
      • Avoids complex compensation logic in the business orchestration layer
      • +
      • Provides one clear source of truth to quickly resolve multi-party disputes
      • +
      • Program multi-party apps using the tools you know:
      • +
      • REST APIs for triggering the next step in a process, and querying history
      • +
      • WebSockets and Webhooks for events (pluggable to other event transports)
      • +
      • Remember - each party runs their own copy of the app, with their own private data
      • +
      • Allow each party to integrate into their existing core systems:
      • +
      • Realtime or batch
      • +
      • Human workflows
      • +
      • Proprietary business logic that is unique to one party
      • +
      • Avoid sensitive data written to the blockchain:
      • +
      • Works in bi-lateral and multi-lateral scenarios
      • +
      • Designed to limit leaking other "metadata" about the transaction as well
      • +
      • Share partial history with different participants in a
      • +
      • No requirement to write custom on-chain smart contract logic:
      • +
      • Can be combined with rich custom on-chain logic as well
      • +
      +

      Innovate fast

      +

      Building a successful multi-party system is often about business experimentation, and business results. +Proving the efficiency gains, and new business models, made possible by working together in a new way +under a new system of trust.

      +

      Things that can get in the way of that innovation, can include concerns over data privacy, technology +maturity, and constraints on autonomy of an individual party in the system. An easy to explain position +on how new technology components are used, where data lives, and how business process independence +is maintained can really help parties make the leap of faith necessary to take the step towards a new +model.

      +

      Keys to success often include building great user experiences that help digitize clunky decades old +manual processes. Also easy to integrate with APIs, what embrace the existing core systems of record +that are establish within each party.

      +

      Consider the on-chain toolbox too

      +

      There is a huge amount of value that deterministic execution of multi-party logic within the blockchain can add. +However, the more compute is made fully deterministic via a blockchain consensus algorithm validated +by multiple parties beyond those with a business need for access to the data, the more sensitivity +needs to be taken to data privacy. Also bear in mind any data that is used in this processing +becomes immutable - it can never be deleted.

      +

      The core constructs of blockchain are a great place to start. +Almost every process can be enhanced with pre-built fungible and non-fungible tokens, for example. +Maybe it's to build a token economy that enhances the value parties get from the system, +or to encourage healthy participation (and discourage bad behavior). +Or maybe it's to track exactly which party owns a document, asset, or action within a process using NFTs.

      +

      On top of this you can add advanced tools like digital escrow, signature / threshold based voting +on outcomes, and atomic swaps of value/ownership.

      +

      The investment in building this bespoke on-chain logic is higher than building the off-chain pieces +(and there are always some off-chain pieces as we've discussed), so it's about finding the kernel +of value the blockchain can provide to differentiate your solution from a centralized database solution.

      +

      The power provided by deterministic sequencing of events, attested by signatures, and pinned +to private data might be sufficient for some cases. In others the token constructs are the key value +that differentiates the decentralized ecosystem. Whatever it is, it's important it is identified and +crafted carefully.

      +
      +

      Note that advanced privacy preserving techniques such as zero-knowledge proofs (ZKP) are gaining traction +and hardening in their production readiness and efficiency. Expect these to play an increasing +role in the technology stack of multiparty systems (and Hyperledger FireFly) in the future.

      +
      +

      Learn more in the Deterministic Compute section.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/multiparty_features.html b/head/overview/multiparty_features.html deleted file mode 100644 index c2249622c..000000000 --- a/head/overview/multiparty_features.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - - - - Multiparty Features - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.multiparty_features | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Enterprise multi-party systems - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Enterprise multi-party systems
          -
        1. Introduction
        2. -
        3. Points of difference
        4. -
        5. Use Case Example
        6. -
        -
      2. -

      -

      - - - Introduction - - -

      - - -

      Multiparty mode has all the features in Gateway mode with the added benefit of multi-party process flows.

      - -

      A multi-party system is a class of application empowered by the technology revolution -of blockchain digital ledger technology (DLT), and emerging cryptographic proof technologies -like zero-knowledge proofs (ZKPs) and trusted execution environments (TEEs).

      - -

      By combining these technologies with existing best practice technologies for -data security in regulated industries, multi-party systems allow businesses to -collaborate in ways previously impossible.

      - -

      Multiparty Mode

      - -

      Through agreement on a common source of truth, such as the completion of a step in a -business process to proceed, or the existence and ownership of a unique asset, businesses -can cut out huge inefficiencies in existing multi-party processes.

      - -

      New business and transaction models can be achieved, unlocking value in assets and data -that were previously siloed within a single organization. Governance and incentive -models can be created to enable secure collaboration in new ways, without compromising -the integrity of an individual organization.

      - -

      The technology is most powerful in ecosystems of “coopetition”, where privacy and security -requirements are high. Multi-party systems establish new models of trust, with easy to -prove outcomes that minimize the need for third party arbitration, and costly investigation -into disputes.

      -

      - - - Points of difference - - -

      - - -

      Integration with existing systems of record is critical to unlock the potential -of these new ecosystems. So multi-party systems embrace the existing investments of -each party, rather than seeking to unify or replace them.

      - -

      Multi-party systems are different from centralized third-party systems, because each -party retains sovereignty over:

      - -
        -
      • Their application instance
      • -
      • Their private data
      • -
      • Their business processes
      • -
      • Their proprietary business logic
      • -
      • Their internal business processes and IT controls
      • -
      -

      - - - Use Case Example - - -

      - - -

      There are many multiparty use cases. An example for healthcare is detailed below.

      - -

      Patient care requires multiple entities to work together including healthcare providers, insurance companies, and medical systems. Sharing data between these parties is inefficient and prone to errors and patient information must be kept secure and up to date. Blockchain’s shared ledger makes it possible to automate data sharing while ensuring accuracy and privacy.

      - -

      In a Multi-party FireFly system, entities are able to share data privately as detailed in the “Data Exchange” section. For example, imagine a scenario where there is one healthcare provider and two insurance companies operating in a multi-party system. Insurance company A may send private data to the healthcare provider that insurance company B is not privy to. While insurance company B may not know the contents of data transferred, it may verify that a transfer of data did occur. This validation is all thats needed to maintain an up to date state of the blockchain.

      - -

      In a larger healthcare ecosystem with many members, a similar concept may emerge with multiple variations of members.

      - - - - - - -
      -

      Table of contents

      - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/public_vs_permissioned.html b/head/overview/public_vs_permissioned.html deleted file mode 100644 index 7004bcbd0..000000000 --- a/head/overview/public_vs_permissioned.html +++ /dev/null @@ -1,484 +0,0 @@ - - - - - - - - - Public and Permissioned - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Public and Permissioned | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Public and Permissioned Blockchain - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Public and Permissioned Blockchains
      2. -
      3. Public blockchain variations
      4. -
      5. Common public considerations
      6. -
      7. FireFly architecture for public chains
      8. -

      -

      - - - Public and Permissioned Blockchains - - -

      - - -

      A separate choice to the technology for your blockchain, is what combination -of blockchain ecosystems you will integrate with.

      - -

      There are a huge variety of options, and increasingly you might find yourself -integrating with multiple ecosystems in your solutions.

      - -

      A rough (and incomplete) high level classification of the blockchains available is as follows:

      - -
        -
      • Layer 1 public blockchains -
          -
        • This is where most token ecosystems are rooted
        • -
        -
      • -
      • Layer 2 public scaling solutions backed by a Layer 1 blockchain -
          -
        • These are increasing where transaction execution takes place that -needs to be reflected eventually back to a Layer 1 blockchain (due -to cost/congestion in the Layer 1 chains)
        • -
        -
      • -
      • Permissioned side-chains -
          -
        • Historically this has been where the majority of production adoption of -enterprise blockchain has focussed, due to the predictable cost, performance, -and ability to manage the validator set and boundary API security -alongside a business network governance policy
        • -
        • These might have their state check-pointed/rolled-up to a Layer 2 or Layer 1 chain
        • -
        -
      • -
      - -

      The lines are blurring between these categorizations as the technologies and ecosystems evolve.

      -

      - - - Public blockchain variations - - -

      - - -

      For the public Layer 1 and 2 solutions, there are too many subclassifications to go into in detail here:

      - -
        -
      • Whether ecosystems supports custom smart contract execution (EVM based is most common, where contracts are supported)
      • -
      • What types of token standards are supported, or other chain specific embedded smart contracts
      • -
      • Whether the chain follows an unspent transaction output (UTXO) or Account model
      • -
      • How value is bridged in-to / out-of the ecosystem
      • -
      • How the validator set of the chain is established - most common is Proof of Stake (PoS)
      • -
      • How data availability is maintained - to check the working of the validators ensure the historical state is not lost
      • -
      • The consensus algorithm, and how it interacts with the consensus of other blockchains
      • -
      • How state in a Layer 2 is provable in a parent Layer 1 chain (rollup technologies etc.)
      • -
      -

      - - - Common public considerations - - -

      - - -

      The thing most consistent across public blockchain technologies, is that the technical decisions are -backed by token economics.

      - -

      Put simply, creating a system where it’s more financially rewarding to behave honestly, than it -is to subvert and cheat the system.

      - -

      This means that participation costs, and that the mechanisms needed to reliably get your transactions -into these systems are complex. Also that the time it might take to get a transaction onto the chain -can be much longer than for a permissioned blockchain, with the potential to have to make a number -of adjustments/resubmissions.

      - -

      The choice of whether to run your own node, or use a managed API, to access these blockchain ecosystems -is also a factor in the behavior of the transaction submission and event streaming.

      -

      - - - FireFly architecture for public chains - - -

      - - -

      One of the fastest evolving aspects of the Hyperledger FireFly ecosystem, is how it facilitates -enterprises to participate in these.

      - -

      FireFly Public Transaction Architecture

      - -

      The architecture is summarized as follows:

      - -
        -
      • New FireFly Transaction Manager runtime -
          -
        • Operates as a microservice extension of the FireFly Core
        • -
        • Uses the operation resource within FireFly Core to store and update state
        • -
        • Runs as a singleton and is responsible for nonce assignment
        • -
        • Takes as much heavy lifting away from blockchain specific connectors as possible
        • -
        -
      • -
      • Lightweight FireFly Connector API (ffcapi) -
          -
        • Simple synchronous RPC operations that map to the most common operations supported across public blockchain technologies
        • -
        • Examples: -
            -
          • Find the next nonce for a given signing key
          • -
          • Serialize a transaction from a set of JSON inputs and an interface definition
          • -
          • Submit an un-signed transaction with a given gas price to the blockchain, via a signing wallet
          • -
          • Establish a new block listener
          • -
          • Poll for new blocks
          • -
          • Establish a new event log listener
          • -
          • Poll for new events
          • -
          -
        • -
        -
      • -
      • Pluggable Policy Engine -
          -
        • Invoked to make decisions on transaction submission
        • -
        • Responsible for gas price calculation
        • -
        • Able to intervene and adjust the characteristics of signing/submission
        • -
        • OSS reference implementation provided with Gas Station REST API integration
        • -
        -
      • -
      • Confirmation Manager -
          -
        • Extracted from the Ethconnect codebase
        • -
        • Coupled to both transaction submission and event confirmation
        • -
        • Embeds an efficient block cache
        • -
        -
      • -
      • Event Streams -
          -
        • Extracted from the Ethconnect codebase
        • -
        • Checkpoint restart based reliable at-least-once delivery of events
        • -
        • WebSockets interface upstream to FireFly Core
        • -
        -
      • -
      - -

      This evolution involves a significant refactoring of components used for production solutions in the FireFly Ethconnect -microservice since mid 2018. This was summarized in firefly-ethconnect#149, -and cumulated in the creation of a new repository in 2022.

      - -

      You can follow the progress and contribute in this repo: https://github.com/hyperledger/firefly-transaction-manager

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/public_vs_permissioned/index.html b/head/overview/public_vs_permissioned/index.html new file mode 100644 index 000000000..4363763fb --- /dev/null +++ b/head/overview/public_vs_permissioned/index.html @@ -0,0 +1,3564 @@ + + + + + + + + + + + + + + + + + + + + + + + Public and Permissioned - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Public and Permissioned Blockchain

      +

      Public and Permissioned Blockchains

      +

      A separate choice to the technology for your blockchain, is what combination +of blockchain ecosystems you will integrate with.

      +

      There are a huge variety of options, and increasingly you might find yourself +integrating with multiple ecosystems in your solutions.

      +

      A rough (and incomplete) high level classification of the blockchains available is as follows:

      +
        +
      • Layer 1 public blockchains
      • +
      • This is where most token ecosystems are rooted
      • +
      • Layer 2 public scaling solutions backed by a Layer 1 blockchain
      • +
      • These are increasing where transaction execution takes place that + needs to be reflected eventually back to a Layer 1 blockchain (due + to cost/congestion in the Layer 1 chains)
      • +
      • Permissioned side-chains
      • +
      • Historically this has been where the majority of production adoption of + enterprise blockchain has focussed, due to the predictable cost, performance, + and ability to manage the validator set and boundary API security + alongside a business network governance policy
      • +
      • These might have their state check-pointed/rolled-up to a Layer 2 or Layer 1 chain
      • +
      +

      The lines are blurring between these categorizations as the technologies and ecosystems evolve.

      +

      Public blockchain variations

      +

      For the public Layer 1 and 2 solutions, there are too many subclassifications to go into in detail here:

      +
        +
      • Whether ecosystems supports custom smart contract execution (EVM based is most common, where contracts are supported)
      • +
      • What types of token standards are supported, or other chain specific embedded smart contracts
      • +
      • Whether the chain follows an unspent transaction output (UTXO) or Account model
      • +
      • How value is bridged in-to / out-of the ecosystem
      • +
      • How the validator set of the chain is established - most common is Proof of Stake (PoS)
      • +
      • How data availability is maintained - to check the working of the validators ensure the historical state is not lost
      • +
      • The consensus algorithm, and how it interacts with the consensus of other blockchains
      • +
      • How state in a Layer 2 is provable in a parent Layer 1 chain (rollup technologies etc.)
      • +
      +

      Common public considerations

      +

      The thing most consistent across public blockchain technologies, is that the technical decisions are +backed by token economics.

      +

      Put simply, creating a system where it's more financially rewarding to behave honestly, than it +is to subvert and cheat the system.

      +

      This means that participation costs, and that the mechanisms needed to reliably get your transactions +into these systems are complex. Also that the time it might take to get a transaction onto the chain +can be much longer than for a permissioned blockchain, with the potential to have to make a number +of adjustments/resubmissions.

      +

      The choice of whether to run your own node, or use a managed API, to access these blockchain ecosystems +is also a factor in the behavior of the transaction submission and event streaming.

      +

      FireFly architecture for public chains

      +

      One of the fastest evolving aspects of the Hyperledger FireFly ecosystem, is how it facilitates +enterprises to participate in these.

      +

      FireFly Public Transaction Architecture

      +

      The architecture is summarized as follows:

      +
        +
      • New FireFly Transaction Manager runtime
      • +
      • Operates as a microservice extension of the FireFly Core
      • +
      • Uses the operation resource within FireFly Core to store and update state
      • +
      • Runs as a singleton and is responsible for nonce assignment
      • +
      • Takes as much heavy lifting away from blockchain specific connectors as possible
      • +
      • Lightweight FireFly Connector API (ffcapi)
      • +
      • Simple synchronous RPC operations that map to the most common operations supported across public blockchain technologies
      • +
      • Examples:
          +
        • Find the next nonce for a given signing key
        • +
        • Serialize a transaction from a set of JSON inputs and an interface definition
        • +
        • Submit an un-signed transaction with a given gas price to the blockchain, via a signing wallet
        • +
        • Establish a new block listener
        • +
        • Poll for new blocks
        • +
        • Establish a new event log listener
        • +
        • Poll for new events
        • +
        +
      • +
      • Pluggable Policy Engine
      • +
      • Invoked to make decisions on transaction submission
      • +
      • Responsible for gas price calculation
      • +
      • Able to intervene and adjust the characteristics of signing/submission
      • +
      • OSS reference implementation provided with Gas Station REST API integration
      • +
      • Confirmation Manager
      • +
      • Extracted from the Ethconnect codebase
      • +
      • Coupled to both transaction submission and event confirmation
      • +
      • Embeds an efficient block cache
      • +
      • Event Streams
      • +
      • Extracted from the Ethconnect codebase
      • +
      • Checkpoint restart based reliable at-least-once delivery of events
      • +
      • WebSockets interface upstream to FireFly Core
      • +
      +

      This evolution involves a significant refactoring of components used for production solutions in the FireFly Ethconnect +microservice since mid 2018. This was summarized in firefly-ethconnect#149, +and cumulated in the creation of a new repository in 2022.

      +

      You can follow the progress and contribute in this repo: https://github.com/hyperledger/firefly-transaction-manager

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/supernode_concept.html b/head/overview/supernode_concept.html deleted file mode 100644 index 691f2cfc0..000000000 --- a/head/overview/supernode_concept.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - - - Introduction - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.introduction | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Introduction to Hyperledger FireFly - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Your Gateway to Web3 Technologies
      2. -
      3. An Open Source Supernode for Web3 Apps
      4. -

      -

      - - - Your Gateway to Web3 Technologies - - -

      - - -

      Hyperledger FireFly features

      - -

      Hyperledger FireFly is an organization’s gateway to Web3, including all the blockchain ecosystems that they participate in.

      - -

      Multiple blockchains, multiple token economies, and multiple business networks.

      - -

      FireFly is not another blockchain implementation, rather it is a pluggable API Orchestration and Data layer, -integrating into all of the different types of decentralized technologies that exist in Web3:

      - -
        -
      • Public Blockchains, Layer 2 scaling solutions, Side chains, and App chains
      • -
      • Permissioned Blockchains and Distributed Ledger Technologies (DLTs)
      • -
      • Decentralized storage solutions
      • -
      • Token ecosystems and standards
      • -
      • Smart Contracts, DeFi solutions and DAOs
      • -
      • Private off-chain encrypted communication rails
      • -
      • Advanced cryptography solutions
      • -
      • Identity frameworks
      • -
      -

      - - - An Open Source Supernode for Web3 Apps - - -

      - - -

      Hyperledger FireFly is a toolkit for building and connecting new full-stack decentralized applications (dapps), -as well as integrating your existing core systems to the world of Web3.

      - -

      It has a runtime engine, and it provides a data layer that synchronizes state from the blockchain and other Web3 technologies. -It exposes an API and Event Bus to your business logic, that is reliable, developer friendly and ready for enterprise use.

      - -

      We call this a Supernode - it sits between the application and the underlying infrastructure nodes, -providing layers of additional function.

      - -

      Without FireFly / with FireFly

      - -

      The concept of a Supernode has evolved over the last decade of enterprise blockchain projects, as developers realized -that they need much more than a blockchain node for their projects to be successful.

      - -

      Without a technology like Hyperledger FireFly, the application layer becomes extremely complex and fragile. -Tens of thousands of lines of complex low-level “plumbing” / “middleware” code is required to integrate the -web3 infrastructure into the application. This code provides zero unique business value to the solution, but can -consume a huge proportion of the engineering budget and maintenance cost if built bespoke within a solution.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/supernode_concept/index.html b/head/overview/supernode_concept/index.html new file mode 100644 index 000000000..2023db9bb --- /dev/null +++ b/head/overview/supernode_concept/index.html @@ -0,0 +1,3473 @@ + + + + + + + + + + + + + + + + + + + + + + + Introduction - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Introduction to Hyperledger FireFly

      +

      Your Gateway to Web3 Technologies

      +

      Hyperledger FireFly features

      +

      Hyperledger FireFly is an organization's gateway to Web3, including all the blockchain ecosystems that they participate in.

      +

      Multiple blockchains, multiple token economies, and multiple business networks.

      +

      FireFly is not another blockchain implementation, rather it is a pluggable API Orchestration and Data layer, +integrating into all of the different types of decentralized technologies that exist in Web3:

      +
        +
      • Public Blockchains, Layer 2 scaling solutions, Side chains, and App chains
      • +
      • Permissioned Blockchains and Distributed Ledger Technologies (DLTs)
      • +
      • Decentralized storage solutions
      • +
      • Token ecosystems and standards
      • +
      • Smart Contracts, DeFi solutions and DAOs
      • +
      • Private off-chain encrypted communication rails
      • +
      • Advanced cryptography solutions
      • +
      • Identity frameworks
      • +
      +

      An Open Source Supernode for Web3 Apps

      +

      Hyperledger FireFly is a toolkit for building and connecting new full-stack decentralized applications (dapps), +as well as integrating your existing core systems to the world of Web3.

      +

      It has a runtime engine, and it provides a data layer that synchronizes state from the blockchain and other Web3 technologies. +It exposes an API and Event Bus to your business logic, that is reliable, developer friendly and ready for enterprise use.

      +

      We call this a Supernode - it sits between the application and the underlying infrastructure nodes, +providing layers of additional function.

      +

      Without FireFly / with FireFly

      +

      The concept of a Supernode has evolved over the last decade of enterprise blockchain projects, as developers realized +that they need much more than a blockchain node for their projects to be successful.

      +

      Without a technology like Hyperledger FireFly, the application layer becomes extremely complex and fragile. +Tens of thousands of lines of complex low-level "plumbing" / "middleware" code is required to integrate the +web3 infrastructure into the application. This code provides zero unique business value to the solution, but can +consume a huge proportion of the engineering budget and maintenance cost if built bespoke within a solution.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/overview/usage_patterns.html b/head/overview/usage_patterns.html deleted file mode 100644 index ee9862c2a..000000000 --- a/head/overview/usage_patterns.html +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - - - Usage Patterns - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.usage_patterns | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Usage Patterns - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Web3 Gateway Mode
      2. -
      3. Multiparty Mode
      4. -

      - -

      There are two modes of usage for Hyperledger Firefly: Web3 Gateway and Multiparty

      - -
      -

      A single runtime can operate in both of these modes, using different namespaces.

      -
      -

      - - - Web3 Gateway Mode - - -

      - - -

      Gateway Mode

      - -

      Web3 Gateway mode lets you interact with any Web3 application, regardless of whether Hyperledger FireFly -is being used by other members of your business network.

      - -

      In this mode you can:

      -
        -
      • Transfer tokenized value
      • -
      • Invoke any other type of smart contract
      • -
      • Index data from the blockchain
      • -
      • Reliably trigger events in your applications and back-office core systems
      • -
      • Manage decentralized data (NFTs etc.)
      • -
      • Use a private address book to manage signing identities and relationships
      • -
      • … and much more
      • -
      - -

      Learn more about Web3 Gateway Mode.

      -

      - - - Multiparty Mode - - -

      - - -

      Multiparty mode is used to build multi-party systems, with a common application runtime deployed by each enterprise participant.

      - -

      Multiparty Mode

      - -

      This allows sophisticated applications to be built, that all use the pluggable APIs of Hyperledger FireFly to achieve -end-to-end business value in an enterprise context.

      - -

      In this mode you can do everything you could do in Web3 Gateway mode, plus:

      -
        -
      • Share and enforce common data formats
      • -
      • Exchange data privately, via an encrypted data bus -
          -
        • Structured JSON data payloads
        • -
        • Large documents
        • -
        -
      • -
      • Coordinate on-chain and off-chain data exchange -
          -
        • Private data
        • -
        • Broadcast data
        • -
        -
      • -
      • Mask on-chain activities using hashes
      • -
      • Use a shared address book to manage signing identities and relationships
      • -
      • … and much more
      • -
      - -

      Learn more about Multiparty Mode.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/overview/usage_patterns/index.html b/head/overview/usage_patterns/index.html new file mode 100644 index 000000000..bcc439b54 --- /dev/null +++ b/head/overview/usage_patterns/index.html @@ -0,0 +1,3476 @@ + + + + + + + + + + + + + + + + + + + + + + + Usage Patterns - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Usage Patterns

      + +

      There are two modes of usage for Hyperledger Firefly: Web3 Gateway and Multiparty

      +
      +

      A single runtime can operate in both of these modes, using different namespaces.

      +
      +

      Web3 Gateway Mode

      +

      Gateway Mode

      +

      Web3 Gateway mode lets you interact with any Web3 application, regardless of whether Hyperledger FireFly +is being used by other members of your business network.

      +

      In this mode you can:

      +
        +
      • Transfer tokenized value
      • +
      • Invoke any other type of smart contract
      • +
      • Index data from the blockchain
      • +
      • Reliably trigger events in your applications and back-office core systems
      • +
      • Manage decentralized data (NFTs etc.)
      • +
      • Use a private address book to manage signing identities and relationships
      • +
      • ... and much more
      • +
      +

      Learn more about Web3 Gateway Mode.

      +

      Multiparty Mode

      +

      Multiparty mode is used to build multi-party systems, with a common application runtime deployed by each enterprise participant.

      +

      Multiparty Mode

      +

      This allows sophisticated applications to be built, that all use the pluggable APIs of Hyperledger FireFly to achieve +end-to-end business value in an enterprise context.

      +

      In this mode you can do everything you could do in Web3 Gateway mode, plus:

      +
        +
      • Share and enforce common data formats
      • +
      • Exchange data privately, via an encrypted data bus
      • +
      • Structured JSON data payloads
      • +
      • Large documents
      • +
      • Coordinate on-chain and off-chain data exchange
      • +
      • Private data
      • +
      • Broadcast data
      • +
      • Mask on-chain activities using hashes
      • +
      • Use a shared address book to manage signing identities and relationships
      • +
      • ... and much more
      • +
      +

      Learn more about Multiparty Mode.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/api_post_syntax.html b/head/reference/api_post_syntax.html deleted file mode 100644 index 8570d1918..000000000 --- a/head/reference/api_post_syntax.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - - API Post Syntax - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.api_post_syntax | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - API POST Syntax - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Syntax Overview
      2. -
      3. Example API Call
      4. -

      -

      - - - Syntax Overview - - -

      - - -

      Endpoints that allow submitting a transaction allow an optional query parameter called confirm. When confirm=true is set in the query string, FireFly will wait to send an HTTP response until the message has been confirmed. This means, where a blockchain transaction is involved, the HTTP request will not return until the blockchain transaction is complete.

      - -

      This is useful for endpoints such as registration, where the client app cannot proceed until the transaction is complete and the member/node is registered. Rather than making a request to register a member/node and then repeatedly polling the API to check to see if it succeeded, an HTTP client can use this query parameter and block until registration is complete.

      - -
      -

      NOTE: This does not mean that any other member of the network has received, processed, or responded to the message. It just means that the transaction is complete from the perspective of the FireFly node to which the transaction was submitted.

      -
      -

      - - - Example API Call - - -

      - - -

      POST /api/v1/messages/broadcast?confirm=true

      - -

      This will broadcast a message and wait for the message to be confirmed before returning.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/api_post_syntax/index.html b/head/reference/api_post_syntax/index.html new file mode 100644 index 000000000..36e037af5 --- /dev/null +++ b/head/reference/api_post_syntax/index.html @@ -0,0 +1,3447 @@ + + + + + + + + + + + + + + + + + + + + + + + API POST Syntax - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      API POST Syntax

      + +

      Syntax Overview

      +

      Endpoints that allow submitting a transaction allow an optional query parameter called confirm. When confirm=true is set in the query string, FireFly will wait to send an HTTP response until the message has been confirmed. This means, where a blockchain transaction is involved, the HTTP request will not return until the blockchain transaction is complete.

      +

      This is useful for endpoints such as registration, where the client app cannot proceed until the transaction is complete and the member/node is registered. Rather than making a request to register a member/node and then repeatedly polling the API to check to see if it succeeded, an HTTP client can use this query parameter and block until registration is complete.

      +
      +

      NOTE: This does not mean that any other member of the network has received, processed, or responded to the message. It just means that the transaction is complete from the perspective of the FireFly node to which the transaction was submitted.

      +
      +

      Example API Call

      +

      POST /api/v1/messages/broadcast?confirm=true

      +

      This will broadcast a message and wait for the message to be confirmed before returning.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/api_query_syntax.html b/head/reference/api_query_syntax.html deleted file mode 100644 index e0d8acca4..000000000 --- a/head/reference/api_query_syntax.html +++ /dev/null @@ -1,576 +0,0 @@ - - - - - - - - - API Query Syntax - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.api_query_syntax | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - API Query Syntax - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Syntax Overview
      2. -
      3. Example API Call
          -
        1. Operators
        2. -
        3. Modifiers
        4. -
        -
      4. -
      5. Detailed examples
      6. -
      7. Time range example
      8. -

      -

      - - - Syntax Overview - - -

      - - -

      REST collections provide filter, skip, limit and sort support.

      -
        -
      • The field in the message is used as the query parameter -
          -
        • Syntax: field=[modifiers][operator]match-string
        • -
        -
      • -
      • When multiple query parameters are supplied these are combined with AND
      • -
      • When the same query parameter is supplied multiple times, these are combined with OR
      • -
      -

      - - - Example API Call - - -

      - - -

      GET /api/v1/messages?confirmed=>0&type=broadcast&topic=t1&topic=t2&context=@someprefix&sort=sequence&descending&skip=100&limit=50

      - -

      This states:

      - -
        -
      • Filter on confirmed greater than 0
      • -
      • Filter on type exactly equal to broadcast
      • -
      • Filter on topic exactly equal to t1 or t2
      • -
      • Filter on context containing the case-sensitive string someprefix
      • -
      • Sort on sequence in descending order
      • -
      • Paginate with limit of 50 and skip of 100 (e.g. get page 3, with 50/page)
      • -
      - -

      Table of filter operations, which must be the first character of the query string (after the = in the above URL path example)

      -

      - - - Operators - - -

      - - -

      Operators are a type of comparison operation to -perform against the match string.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      OperatorDescription
      =Equal
      (none)Equal (shortcut)
      @Containing
      ^Starts with
      $Ends with
      <<Less than
      <Less than (shortcut)
      <=Less than or equal
      >>Greater than
      >Greater than (shortcut)
      >=Greater than or equal
      - -
      -

      Shortcuts are only safe to use when your match -string starts with a-z, A-Z, 0-9, - or _.

      -
      -

      - - - Modifiers - - -

      - - -

      Modifiers can appear before the operator, to change its -behavior.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ModifierDescription
      !Not - negates the match
      :Case insensitive
      ?Treat empty match string as null
      [Combine using AND on the same field
      ]Combine using OR on the same field (default)
      -

      - - - Detailed examples - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ExampleDescription
      catEquals “cat”
      =catEquals “cat” (same)
      !=catNot equal to “cat”
      :=catEqual to “CAT”, “cat”, “CaT etc.
      !:catNot equal to “CAT”, “cat”, “CaT etc.
      =!catEqual to “!cat” (! is after operator)
      ^cats/Starts with “cats/”
      $_catEnds with with “_cat”
      !:^cats/Does not start with “cats/”, “CATs/” etc.
      !$-catDoes not end with “-cat”
      ?=Is null
      !?=Is not null
      -

      - - - Time range example - - -

      - - -

      For this case we need to combine multiple queries on the same created -field using AND semantics (with the [) modifier:

      - -
      ?created=[>>2021-01-01T00:00:00Z&created=[<=2021-01-02T00:00:00Z
      -
      - -

      So this means:

      -
        -
      • created greater than 2021-01-01T00:00:00Z
      • -
      • AND
      • -
      • created less than or equal to 2021-01-02T00:00:00Z
      • -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/api_query_syntax/index.html b/head/reference/api_query_syntax/index.html new file mode 100644 index 000000000..0e3c87297 --- /dev/null +++ b/head/reference/api_query_syntax/index.html @@ -0,0 +1,3706 @@ + + + + + + + + + + + + + + + + + + + + + + + API Query Syntax - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      API Query Syntax

      + +

      Syntax Overview

      +

      REST collections provide filter, skip, limit and sort support.

      +
        +
      • The field in the message is used as the query parameter
      • +
      • Syntax: field=[modifiers][operator]match-string
      • +
      • When multiple query parameters are supplied these are combined with AND
      • +
      • When the same query parameter is supplied multiple times, these are combined with OR
      • +
      +

      Example API Call

      +

      GET /api/v1/messages?confirmed=>0&type=broadcast&topic=t1&topic=t2&context=@someprefix&sort=sequence&descending&skip=100&limit=50

      +

      This states:

      +
        +
      • Filter on confirmed greater than 0
      • +
      • Filter on type exactly equal to broadcast
      • +
      • Filter on topic exactly equal to t1 or t2
      • +
      • Filter on context containing the case-sensitive string someprefix
      • +
      • Sort on sequence in descending order
      • +
      • Paginate with limit of 50 and skip of 100 (e.g. get page 3, with 50/page)
      • +
      +

      Table of filter operations, which must be the first character of the query string (after the = in the above URL path example)

      +

      Operators

      +

      Operators are a type of comparison operation to +perform against the match string.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      OperatorDescription
      =Equal
      (none)Equal (shortcut)
      @Containing
      ^Starts with
      $Ends with
      <<Less than
      <Less than (shortcut)
      <=Less than or equal
      >>Greater than
      >Greater than (shortcut)
      >=Greater than or equal
      +
      +

      Shortcuts are only safe to use when your match +string starts with a-z, A-Z, 0-9, - or _.

      +
      +

      Modifiers

      +

      Modifiers can appear before the operator, to change its +behavior.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModifierDescription
      !Not - negates the match
      :Case insensitive
      ?Treat empty match string as null
      [Combine using AND on the same field
      ]Combine using OR on the same field (default)
      +

      Detailed examples

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ExampleDescription
      catEquals "cat"
      =catEquals "cat" (same)
      !=catNot equal to "cat"
      :=catEqual to "CAT", "cat", "CaT etc.
      !:catNot equal to "CAT", "cat", "CaT etc.
      =!catEqual to "!cat" (! is after operator)
      ^cats/Starts with "cats/"
      $_catEnds with with "_cat"
      !:^cats/Does not start with "cats/", "CATs/" etc.
      !$-catDoes not end with "-cat"
      ?=Is null
      !?=Is not null
      +

      Time range example

      +

      For this case we need to combine multiple queries on the same created +field using AND semantics (with the [) modifier:

      +
      ?created=[>>2021-01-01T00:00:00Z&created=[<=2021-01-02T00:00:00Z
      +
      +

      So this means:

      +
        +
      • created greater than 2021-01-01T00:00:00Z
      • +
      • AND
      • +
      • created less than or equal to 2021-01-02T00:00:00Z
      • +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/blockchain_operation_errors.html b/head/reference/blockchain_operation_errors.html deleted file mode 100644 index ad7b7e7b5..000000000 --- a/head/reference/blockchain_operation_errors.html +++ /dev/null @@ -1,486 +0,0 @@ - - - - - - - - - Blockchain Operation Errors - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Blockchain Operation Errors | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Blockchain Operation Errors - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Blockchain error messages
      2. -
      3. Default error format with Hyperledger FireFly 1.3 and Hyperledger Besu 24.3.0
      4. -
      5. Error retrieval details
          -
        1. Format of a firefly-evmconnect error message
        2. -
        3. Retrieving EVM blockchain transaction errors
        4. -
        -
      6. -

      -

      - - - Blockchain error messages - - -

      - - -

      The receipt for a FireFly blockchain operation contains an extraInfo section that records additional information about the transaction. For example:

      - -
      "receipt": {
      -  ...
      -  "extraInfo": [
      -    {
      -      {
      -        "contractAddress":"0x87ae94ab290932c4e6269648bb47c86978af4436",
      -        "cumulativeGasUsed":"33812",
      -        "from":"0x2b1c769ef5ad304a4889f2a07a6617cd935849ae",
      -        "to":"0x302259069aaa5b10dc6f29a9a3f72a8e52837cc3",
      -        "gasUsed":"33812",
      -        "status":"0",
      -        "errorMessage":"Not enough tokens", 
      -      }
      -    }
      -  ],
      -  ...
      -},
      -
      - -

      The errorMessage field can be be set by a blockchain connector to provide FireFly and the end-user with more information about the reason why a tranasction failed. The blockchain connector can choose what information to include in errorMessage field. It may be set to an error message relating to the blockchain connector itself or an error message passed back from the blockchain or smart contract that was invoked.

      -

      - - - Default error format with Hyperledger FireFly 1.3 and Hyperledger Besu 24.3.0 - - -

      - - -

      If FireFly is configured to connect to a Besu EVM client, and Besu has been configured with the revert-reason-enabled=true setting (note - the default value for Besu is false) error messages passed to FireFly from the blockchain client itself will be set correctly in the FireFly blockchain operation. For example:

      - -
        -
      • "errorMessage":"Not enough tokens" for a revert error string from a smart contract
      • -
      - -

      If the smart contract uses a custom error type, Besu will return the revert reason to FireFly as a hexadecimal string but FireFly will be unable to decode it into. In this case the blockchain operation error message and return values will be set to:

      - -
        -
      • "errorMessage":"FF23053: Error return value for custom error: <revert hex string>
      • -
      • "returnValue":"<revert hex string>"
      • -
      - -

      A future update to FireFly could be made to automatically decode custom error revert reasons if FireFly knows the ABI for the custom error. See FireFly issue 1466 which describes the current limitation.

      - -

      If FireFly is configured to connect to Besu without revert-reason-enabled=true the error message will be set to:

      - -
        -
      • "errorMessage":"FF23054: Error return value unavailable"
      • -
      -

      - - - Error retrieval details - - -

      - - -

      The precise format of the error message in a blockchain operation can vary based on different factors. The sections below describe in detail how the error message is populted, with specific references to the firefly-evmconnect blockchain connector.

      -

      - - - Format of a firefly-evmconnect error message - - -

      - - -

      The following section describes the way that the firefly-evmconnect plugin uses the errorMessage field. This serves both as an explanation of how EVM-based transaction errors will be formatted, and as a guide that other blockchain connectors may decide to follow.

      - -

      The errorMessage field for a firefly-evmconnect transaction may contain one of the following:

      - -
        -
      1. An error message from the FireFly blockchain connector -
          -
        • For example "FF23054: Error return value unavailable"
        • -
        -
      2. -
      3. A decoded error string from the blockchain transaction -
          -
        • For example Not enough tokens
        • -
        • This could be an error string from a smart contract e.g. require(requestedTokens <= allowance, "Not enough tokens");
        • -
        -
      4. -
      5. An un-decoded byte string from the blockchain transaction -
          -
        • For example -
          FF23053: Error return value for custom error: 0x1320fa6a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000010
          -
          -
        • -
        • This could be a custom error from a smart contract e.g. -
          error AllowanceTooSmall(uint256 requested, uint256 allowance);
          -...
          -revert AllowanceTooSmall({ requested: 100, allowance: 20 });
          -
          -
        • -
        • If an error reason cannot be decoded the returnValue of the extraInfo will be set to the raw byte string. For example: -
          "receipt": {
          -  ...
          -  "extraInfo": [
          -  {
          -{
          -  "contractAddress":"0x87ae94ab290932c4e6269648bb47c86978af4436",
          -  "cumulativeGasUsed":"33812",
          -  "from":"0x2b1c769ef5ad304a4889f2a07a6617cd935849ae",
          -  "to":"0x302259069aaa5b10dc6f29a9a3f72a8e52837cc3",
          -  "gasUsed":"33812",
          -  "status":"0",
          -  "errorMessage":"FF23053: Error return value for custom error: 0x1320fa6a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000010", 
          -  "returnValue":"0x1320fa6a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000010"
          -}
          -  }
          -  ],
          -  ...
          -},
          -
          -
        • -
        -
      6. -
      -

      - - - Retrieving EVM blockchain transaction errors - - -

      - - -

      The ability of a blockchain connector such as firefly-evmconnect to retrieve the reason for a transaction failure, is dependent on by the configuration of the blockchain it is connected to. For an EVM blockchain the reason why a transaction failed is recorded with the REVERT op code, with a REASON set to the reason for the failure. By default, most EVM clients do not store this reason in the transaction receipt. This is typically to reduce resource consumption such as memory usage in the client. It is usually possible to configure an EVM client to store the revert reason in the transaction receipt. For example Hyperledger Besu™ provides the --revert-reason-enabled configuration option. If the transaction receipt does not contain the revert reason it is possible to request that an EVM client re-run the transaction and return a trace of all of the op-codes, including the final REVERT REASON. This can be a resource intensive request to submit to an EVM client, and is only available on archive nodes or for very recent blocks.

      - -

      The firefly-evmconnect blockchain connector attempts to obtain the reason for a transaction revert and include it in the extraInfo field. It uses the following mechanisms, in this order:

      - -
        -
      1. Checks if the blockchain transaction receipt contains the revert reason.
      2. -
      3. If the revert reason is not in the receipt, and the connector.traceTXForRevertReason configuration option is set to true, calls debug_traceTransaction to obtain a full trace of the transaction and extract the revert reason. By default, connector.traceTXForRevertReason is set to false to avoid submitting high-resource requests to the EVM client.
      4. -
      - -

      If the revert reason can be obtained using either mechanism above, the revert reason bytes are decoded in the following way:

      -
        -
      • Attempts to decode the bytes as the standard Error(string) signature format and includes the decoded string in the errorMessage
      • -
      • If the reason is not a standard Error(String) error, sets the errorMessage to FF23053: Error return value for custom error: <raw hex string> and includes the raw byte string in the returnValue field.
      • -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/blockchain_operation_status.html b/head/reference/blockchain_operation_status.html deleted file mode 100644 index 189c72beb..000000000 --- a/head/reference/blockchain_operation_status.html +++ /dev/null @@ -1,701 +0,0 @@ - - - - - - - - - Blockchain Operation Status - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Blockchain Operation Status | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Blockchain Operation Status - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Blockchain Operations
      2. -
      3. Blockchain Operation Status
          -
        1. Blockchain Operation Example
        2. -
        -
      4. -
      5. Detail Status Structure
          -
        1. History Example
        2. -
        3. History Summary Example
        4. -
        -
      6. -
      7. Public Chain Operations
          -
        1. Polygon Example
        2. -
        -
      8. -

      -

      - - - Blockchain Operations - - -

      - - -

      Every FireFly Transaction can involve zero or more Operations. Blockchain operations are handled by the blockchain connector configured for the namespace and represent a blockchain transaction being handled by that connector.

      -

      - - - Blockchain Operation Status - - -

      - - -

      A blockchain operation can require the connector to go through various stages of processing in order to successfully confirm the transaction on the blockchain. The orchestrator in FireFly receives updates from the connector to indicate when the operation has been completed and determine when the FireFly transaction as a whole has finished. These updates must contain enough information to correlate the operation to the FireFly transaction but it can be useful to see more detailed information about how the transaction was processed.

      - -

      FireFly 1.2 introduced the concept of sub-status types that allow a blockchain connector to distinguish between the intermediate steps involved in progressing a transaction. It also introduced the concept of an action which a connector might carry out in order to progress between types of sub-status. This can be described as a state machine as shown in the following diagram:

      - -

      Sub-status diagram

      - -

      To access detailed information about a blockchain operation FireFly 1.2 introduced a new query parameter, fetchStatus, to the /transaction/{txid}/operation/{opid} API. When FireFly receives an API request that includes the fetchStatus query parameter it makes a synchronous call directly to the blockchain connector, requesting all of blockchain transaction detail it has. This payload is then included in the FireFly operation response under a new detail field.

      -

      - - - Blockchain Operation Example - - -

      - - -
      {
      -    "id": "04a8b0c4-03c2-4935-85a1-87d17cddc20a",
      -    "created": "2022-05-16T01:23:15Z",
      -    "namespace": "ns1",
      -    "tx": "99543134-769b-42a8-8be4-a5f8873f969d",
      -    "type": "blockchain_invoke",
      -    "status": "Succeeded",
      -    "plugin": "ethereum",
      -    "input": {
      -        // Input used to initiate the blockchain operation
      -    },
      -    "output": {
      -        // Minimal blockchain operation data necessary
      -        // to resolve the FF transaction
      -    },
      -    "detail": {
      -        // Full blockchain operation information, including sub-status
      -        // transitions that took place for the operation to succeed.
      -    }
      -}
      -
      -

      - - - Detail Status Structure - - -

      - - -

      The structure of a blockchain operation follows the structure described in Operations. In FireFly 1.2, 2 new attributes were added to that structure to allow more detailed status information to be recorded:

      - -
        -
      • history an ordered list of status changes that have taken place during processing of the transaction
      • -
      • historySummary an un-ordered list any sub-status type that the blockchain connector uses, and any action type that the blockchain connector carries out as part of processing the transaction.
      • -
      - -

      The history field is designed to record an ordered list of sub-status changes that the transaction has gone through. Within each sub-status change are the actions that have been carried out to try and move the transaction on to a new sub-status. Some transactions might spend a long time going looping between different sub-status types so this field records the N most recent sub-status changes (where the size of N is determined by blockchain connector and its configuration). The follow example shows a transaction going starting at Received, moving to Tracking, and finally ending up as Confirmed. In order to move from Received to Tracking several actions were performed: AssignNonce, RetrieveGasPrice, and SubmitTransaction.

      -

      - - - History Example - - -

      - - -
      {
      -    ...
      -    "lastSubmit": "2023-01-27T17:11:41.222375469Z",
      -    "nonce": "14",
      -    "history": [
      -        {
      -            "subStatus": "Received",
      -            "time": "2023-01-27T17:11:41.122965803Z",
      -            "actions": [
      -                {
      -                    "action": "AssignNonce",
      -                    "count": 1,
      -                    "lastInfo": {
      -                       "nonce": "14"
      -                    },
      -                    "lastOccurrence": "2023-01-27T17:11:41.122967219Z",
      -                    "time": "2023-01-27T17:11:41.122967136Z"
      -                },
      -               {
      -                    "action": "RetrieveGasPrice",
      -                    "count": 1,
      -                    "lastInfo": {
      -                        "gasPrice": "0"
      -                    },
      -                    "lastOccurrence": "2023-01-27T17:11:41.161213303Z",
      -                    "time": "2023-01-27T17:11:41.161213094Z"
      -                },
      -                {
      -                    "action": "SubmitTransaction",
      -                    "count": 1,
      -                   "lastInfo": {
      -                        "txHash": "0x4c37de1cf320a1d5c949082bbec8ad5fe918e6621cec3948d609ec3f7deac243"
      -                    },
      -                   "lastOccurrence": "2023-01-27T17:11:41.222374636Z",
      -                   "time": "2023-01-27T17:11:41.222374553Z"
      -               }
      -           ],
      -       },
      -       {
      -            "subStatus": "Tracking",
      -            "time": "2023-01-27T17:11:41.222400219Z",
      -           "actions": [
      -                {
      -                    "action": "ReceiveReceipt",
      -                    "count": 2,
      -                    "lastInfo": {
      -                        "protocolId": "000001265122/000000"
      -                    },
      -                    "lastOccurrence": "2023-01-27T17:11:57.93120838Z",
      -                    "time": "2023-01-27T17:11:47.930332625Z"
      -                },
      -                {
      -                    "action": "Confirm",
      -                    "count": 1,
      -                    "lastOccurrence": "2023-01-27T17:12:02.660275549Z",
      -                    "time": "2023-01-27T17:12:02.660275382Z"
      -                }
      -            ],
      -       },
      -       {
      -            "subStatus": "Confirmed",
      -            "time": "2023-01-27T17:12:02.660309382Z",
      -            "actions": [],
      -       }
      -    ]
      -    ...
      -}
      -
      - -

      Because the history field is a FIFO structure describing the N most recent sub-status changes, some early sub-status changes or actions may be lost over time. For example an action of assignNonce might only happen once when the transaction is first processed by the connector. The historySummary field ensures that a minimal set of information is kept about every single subStatus type and action that has been recorded.

      -

      - - - History Summary Example - - -

      - - -
      {
      -    ...
      -    "historySummary": [
      -        {
      -            "count": 1,
      -           "firstOccurrence": "2023-01-27T17:11:41.122966136Z",
      -            "lastOccurrence": "2023-01-27T17:11:41.122966136Z",
      -           "subStatus": "Received"
      -        },
      -        {
      -            "count": 1,
      -            "firstOccurrence": "2023-01-27T17:11:41.122967219Z",
      -            "lastOccurrence": "2023-01-27T17:11:41.122967219Z",
      -            "action": "AssignNonce"
      -        },
      -        {
      -            "count": 1,
      -            "firstOccurrence": "2023-01-27T17:11:41.161213303Z",
      -            "lastOccurrence": "2023-01-27T17:11:41.161213303Z",
      -            "action": "RetrieveGasPrice"
      -        },
      -        {
      -            "count": 1,
      -            "firstOccurrence": "2023-01-27T17:11:41.222374636Z",
      -            "lastOccurrence": "2023-01-27T17:11:41.222374636Z",
      -            "action": "SubmitTransaction"
      -        },
      -        {
      -           "count": 1,
      -           "firstOccurrence": "2023-01-27T17:11:41.222400678Z",
      -            "lastOccurrence": "",
      -           "subStatus": "Tracking"
      -        },
      -        {
      -            "count": 1,
      -            "firstOccurrence": "2023-01-27T17:11:57.93120838Z",
      -            "lastOccurrence": "2023-01-27T17:11:57.93120838Z",
      -            "action": "ReceiveReceipt"
      -        },
      -        {
      -            "count": 1,
      -            "firstOccurrence": "2023-01-27T17:12:02.660309382Z",
      -            "lastOccurrence": "2023-01-27T17:12:02.660309382Z",
      -            "action": "Confirm"
      -        },
      -        {
      -           "count": 1,
      -           "firstOccurrence": "2023-01-27T17:12:02.660309757Z",
      -            "lastOccurrence": "2023-01-27T17:12:02.660309757Z",
      -           "subStatus": "Confirmed"
      -        }
      -    ]
      -}
      -
      -

      - - - Public Chain Operations - - -

      - - -

      Blockchain transactions submitted to a public chain, for example to Polygon PoS, might take longer and involve more sub-status transitions before being confirmed. One reason for this could be because of gas price fluctuations of the chain. In this case the history for a public blockchain operation might include a large number of subStatus entries. Using the example sub-status values above, a blockchain operation might move from Tracking to Stale, back to Tracking, back to Stale and so on.

      - -

      Below is an example of the history for a public blockchain operation.

      -

      - - - Polygon Example - - -

      - - -
      {
      -    ...
      -    "lastSubmit": "2023-01-27T17:11:41.222375469Z",
      -    "nonce": "14",
      -    "history": [
      -        {
      -            "subStatus": "Received",
      -            "time": "2023-01-27T17:11:41.122965803Z",
      -            "actions": [
      -                {
      -                    "action": "AssignNonce",
      -                    "count": 1,
      -                    "lastInfo": {
      -                       "nonce": "1"
      -                    },
      -                    "lastOccurrence": "2023-01-27T17:11:41.122967219Z",
      -                    "time": "2023-01-27T17:11:41.122967136Z"
      -                },
      -               {
      -                    "action": "RetrieveGasPrice",
      -                    "count": 1,
      -                    "lastInfo": {
      -                        "gasPrice": "34422243"
      -                    },
      -                    "lastOccurrence": "2023-01-27T17:11:41.161213303Z",
      -                    "time": "2023-01-27T17:11:41.161213094Z"
      -                },
      -                {
      -                    "action": "SubmitTransaction",
      -                    "count": 1,
      -                   "lastInfo": {
      -                        "txHash": "0x83ba5e1cf320a1d5c949082bbec8ae7fe918e6621cec39478609ec3f7deacbdb"
      -                    },
      -                   "lastOccurrence": "2023-01-27T17:11:41.222374636Z",
      -                   "time": "2023-01-27T17:11:41.222374553Z"
      -               }
      -           ],
      -       },
      -       {
      -            "subStatus": "Tracking",
      -            "time": "2023-01-27T17:11:41.222400219Z",
      -           "actions": [],
      -       },
      -       {
      -            "subStatus": "Stale",
      -            "time": "2023-01-27T17:13:21.222100434Z",
      -           "actions": [
      -                {
      -                    "action": "RetrieveGasPrice",
      -                    "count": 1,
      -                    "lastInfo": {
      -                        "gasPrice": "44436243"
      -                    },
      -                    "lastOccurrence": "2023-01-27T17:13:22.93120838Z",
      -                    "time": "2023-01-27T17:13:22.93120838Z"
      -                },
      -                {
      -                    "action": "SubmitTransaction",
      -                    "count": 1,
      -                   "lastInfo": {
      -                        "txHash": "0x7b3a5e1ccbc0a1d5c949082bbec8ae7fe918e6621cec39478609ec7aea6103d5"
      -                    },
      -                   "lastOccurrence": "2023-01-27T17:13:32.656374637Z",
      -                   "time": "2023-01-27T17:13:32.656374637Z"
      -               }
      -            ],
      -       },
      -       {
      -            "subStatus": "Tracking",
      -            "time": "2023-01-27T17:13:33.434400219Z",
      -           "actions": [],
      -       },
      -       {
      -            "subStatus": "Stale",
      -            "time": "2023-01-27T17:15:21.222100434Z",
      -           "actions": [
      -                {
      -                    "action": "RetrieveGasPrice",
      -                    "count": 1,
      -                    "lastInfo": {
      -                        "gasPrice": "52129243"
      -                    },
      -                    "lastOccurrence": "2023-01-27T17:15:22.93120838Z",
      -                    "time": "2023-01-27T17:15:22.93120838Z"
      -                },
      -                {
      -                    "action": "SubmitTransaction",
      -                    "count": 1,
      -                   "lastInfo": {
      -                        "txHash": "0x89995e1ccbc0a1d5c949082bbec8ae7fe918e6621cec39478609ec7a8c64abc"
      -                    },
      -                   "lastOccurrence": "2023-01-27T17:15:32.656374637Z",
      -                   "time": "2023-01-27T17:15:32.656374637Z"
      -               }
      -            ],
      -       },
      -       {
      -            "subStatus": "Tracking",
      -            "time": "2023-01-27T17:15:33.434400219Z",
      -           "actions": [
      -                {
      -                    "action": "ReceiveReceipt",
      -                    "count": 1,
      -                    "lastInfo": {
      -                        "protocolId": "000004897621/000000"
      -                    },
      -                    "lastOccurrence": "2023-01-27T17:15:33.94120833Z",
      -                    "time": "2023-01-27T17:15:33.94120833Z"
      -                },
      -                {
      -                    "action": "Confirm",
      -                    "count": 1,
      -                    "lastOccurrence": "2023-01-27T17:16:02.780275549Z",
      -                    "time": "2023-01-27T17:16:02.780275382Z"
      -                }
      -            ],
      -       },
      -       {
      -            "subStatus": "Confirmed",
      -            "time": "2023-01-27T17:16:03.990309381Z",
      -            "actions": [],
      -       }
      -    ]
      -    ...
      -}
      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/blockchain_operation_status/index.html b/head/reference/blockchain_operation_status/index.html new file mode 100644 index 000000000..e040c4dd5 --- /dev/null +++ b/head/reference/blockchain_operation_status/index.html @@ -0,0 +1,3878 @@ + + + + + + + + + + + + + + + + + + + + + + + Blockchain Operation Status - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      + +
      + + + +
      +
      + + + + + + + +

      Blockchain Operation Status

      +

      Blockchain Operations

      +

      Every FireFly Transaction can involve zero or more Operations. Blockchain operations are handled by the blockchain connector configured for the namespace and represent a blockchain transaction being handled by that connector.

      +

      Blockchain Operation Status

      +

      A blockchain operation can require the connector to go through various stages of processing in order to successfully confirm the transaction on the blockchain. The orchestrator in FireFly receives updates from the connector to indicate when the operation has been completed and determine when the FireFly transaction as a whole has finished. These updates must contain enough information to correlate the operation to the FireFly transaction but it can be useful to see more detailed information about how the transaction was processed.

      +

      FireFly 1.2 introduced the concept of sub-status types that allow a blockchain connector to distinguish between the intermediate steps involved in progressing a transaction. It also introduced the concept of an action which a connector might carry out in order to progress between types of sub-status. This can be described as a state machine as shown in the following diagram:

      +

      Sub-status diagram

      +

      To access detailed information about a blockchain operation FireFly 1.2 introduced a new query parameter, fetchStatus, to the /transaction/{txid}/operation/{opid} API. When FireFly receives an API request that includes the fetchStatus query parameter it makes a synchronous call directly to the blockchain connector, requesting all of blockchain transaction detail it has. This payload is then included in the FireFly operation response under a new detail field.

      +

      Blockchain Operation Example

      +
      {
      +  "id": "04a8b0c4-03c2-4935-85a1-87d17cddc20a",
      +  "created": "2022-05-16T01:23:15Z",
      +  "namespace": "ns1",
      +  "tx": "99543134-769b-42a8-8be4-a5f8873f969d",
      +  "type": "blockchain_invoke",
      +  "status": "Succeeded",
      +  "plugin": "ethereum",
      +  "input": {
      +    // Input used to initiate the blockchain operation
      +  },
      +  "output": {
      +    // Minimal blockchain operation data necessary
      +    // to resolve the FF transaction
      +  },
      +  "detail": {
      +    // Full blockchain operation information, including sub-status
      +    // transitions that took place for the operation to succeed.
      +  }
      +}
      +
      +

      Detail Status Structure

      +

      The structure of a blockchain operation follows the structure described in Operations. In FireFly 1.2, 2 new attributes were added to that structure to allow more detailed status information to be recorded:

      +
        +
      • history an ordered list of status changes that have taken place during processing of the transaction
      • +
      • historySummary an un-ordered list any sub-status type that the blockchain connector uses, and any action type that the blockchain connector carries out as part of processing the transaction.
      • +
      +

      The history field is designed to record an ordered list of sub-status changes that the transaction has gone through. Within each sub-status change are the actions that have been carried out to try and move the transaction on to a new sub-status. Some transactions might spend a long time going looping between different sub-status types so this field records the N most recent sub-status changes (where the size of N is determined by blockchain connector and its configuration). The follow example shows a transaction going starting at Received, moving to Tracking, and finally ending up as Confirmed. In order to move from Received to Tracking several actions were performed: AssignNonce, RetrieveGasPrice, and SubmitTransaction.

      +

      History Example

      +
      {
      +    ...
      +    "lastSubmit": "2023-01-27T17:11:41.222375469Z",
      +    "nonce": "14",
      +    "history": [
      +        {
      +            "subStatus": "Received",
      +            "time": "2023-01-27T17:11:41.122965803Z",
      +            "actions": [
      +                {
      +                    "action": "AssignNonce",
      +                    "count": 1,
      +                    "lastInfo": {
      +                       "nonce": "14"
      +                    },
      +                    "lastOccurrence": "2023-01-27T17:11:41.122967219Z",
      +                    "time": "2023-01-27T17:11:41.122967136Z"
      +                },
      +               {
      +                    "action": "RetrieveGasPrice",
      +                    "count": 1,
      +                    "lastInfo": {
      +                        "gasPrice": "0"
      +                    },
      +                    "lastOccurrence": "2023-01-27T17:11:41.161213303Z",
      +                    "time": "2023-01-27T17:11:41.161213094Z"
      +                },
      +                {
      +                    "action": "SubmitTransaction",
      +                    "count": 1,
      +                   "lastInfo": {
      +                        "txHash": "0x4c37de1cf320a1d5c949082bbec8ad5fe918e6621cec3948d609ec3f7deac243"
      +                    },
      +                   "lastOccurrence": "2023-01-27T17:11:41.222374636Z",
      +                   "time": "2023-01-27T17:11:41.222374553Z"
      +               }
      +           ],
      +       },
      +       {
      +            "subStatus": "Tracking",
      +            "time": "2023-01-27T17:11:41.222400219Z",
      +           "actions": [
      +                {
      +                    "action": "ReceiveReceipt",
      +                    "count": 2,
      +                    "lastInfo": {
      +                        "protocolId": "000001265122/000000"
      +                    },
      +                    "lastOccurrence": "2023-01-27T17:11:57.93120838Z",
      +                    "time": "2023-01-27T17:11:47.930332625Z"
      +                },
      +                {
      +                    "action": "Confirm",
      +                    "count": 1,
      +                    "lastOccurrence": "2023-01-27T17:12:02.660275549Z",
      +                    "time": "2023-01-27T17:12:02.660275382Z"
      +                }
      +            ],
      +       },
      +       {
      +            "subStatus": "Confirmed",
      +            "time": "2023-01-27T17:12:02.660309382Z",
      +            "actions": [],
      +       }
      +    ]
      +    ...
      +}
      +
      +

      Because the history field is a FIFO structure describing the N most recent sub-status changes, some early sub-status changes or actions may be lost over time. For example an action of assignNonce might only happen once when the transaction is first processed by the connector. The historySummary field ensures that a minimal set of information is kept about every single subStatus type and action that has been recorded.

      +

      History Summary Example

      +
      {
      +    ...
      +    "historySummary": [
      +        {
      +            "count": 1,
      +           "firstOccurrence": "2023-01-27T17:11:41.122966136Z",
      +            "lastOccurrence": "2023-01-27T17:11:41.122966136Z",
      +           "subStatus": "Received"
      +        },
      +        {
      +            "count": 1,
      +            "firstOccurrence": "2023-01-27T17:11:41.122967219Z",
      +            "lastOccurrence": "2023-01-27T17:11:41.122967219Z",
      +            "action": "AssignNonce"
      +        },
      +        {
      +            "count": 1,
      +            "firstOccurrence": "2023-01-27T17:11:41.161213303Z",
      +            "lastOccurrence": "2023-01-27T17:11:41.161213303Z",
      +            "action": "RetrieveGasPrice"
      +        },
      +        {
      +            "count": 1,
      +            "firstOccurrence": "2023-01-27T17:11:41.222374636Z",
      +            "lastOccurrence": "2023-01-27T17:11:41.222374636Z",
      +            "action": "SubmitTransaction"
      +        },
      +        {
      +           "count": 1,
      +           "firstOccurrence": "2023-01-27T17:11:41.222400678Z",
      +            "lastOccurrence": "",
      +           "subStatus": "Tracking"
      +        },
      +        {
      +            "count": 1,
      +            "firstOccurrence": "2023-01-27T17:11:57.93120838Z",
      +            "lastOccurrence": "2023-01-27T17:11:57.93120838Z",
      +            "action": "ReceiveReceipt"
      +        },
      +        {
      +            "count": 1,
      +            "firstOccurrence": "2023-01-27T17:12:02.660309382Z",
      +            "lastOccurrence": "2023-01-27T17:12:02.660309382Z",
      +            "action": "Confirm"
      +        },
      +        {
      +           "count": 1,
      +           "firstOccurrence": "2023-01-27T17:12:02.660309757Z",
      +            "lastOccurrence": "2023-01-27T17:12:02.660309757Z",
      +           "subStatus": "Confirmed"
      +        }
      +    ]
      +}
      +
      +

      Public Chain Operations

      +

      Blockchain transactions submitted to a public chain, for example to Polygon PoS, might take longer and involve more sub-status transitions before being confirmed. One reason for this could be because of gas price fluctuations of the chain. In this case the history for a public blockchain operation might include a large number of subStatus entries. Using the example sub-status values above, a blockchain operation might move from Tracking to Stale, back to Tracking, back to Stale and so on.

      +

      Below is an example of the history for a public blockchain operation.

      +

      Polygon Example

      +
      {
      +    ...
      +    "lastSubmit": "2023-01-27T17:11:41.222375469Z",
      +    "nonce": "14",
      +    "history": [
      +        {
      +            "subStatus": "Received",
      +            "time": "2023-01-27T17:11:41.122965803Z",
      +            "actions": [
      +                {
      +                    "action": "AssignNonce",
      +                    "count": 1,
      +                    "lastInfo": {
      +                       "nonce": "1"
      +                    },
      +                    "lastOccurrence": "2023-01-27T17:11:41.122967219Z",
      +                    "time": "2023-01-27T17:11:41.122967136Z"
      +                },
      +               {
      +                    "action": "RetrieveGasPrice",
      +                    "count": 1,
      +                    "lastInfo": {
      +                        "gasPrice": "34422243"
      +                    },
      +                    "lastOccurrence": "2023-01-27T17:11:41.161213303Z",
      +                    "time": "2023-01-27T17:11:41.161213094Z"
      +                },
      +                {
      +                    "action": "SubmitTransaction",
      +                    "count": 1,
      +                   "lastInfo": {
      +                        "txHash": "0x83ba5e1cf320a1d5c949082bbec8ae7fe918e6621cec39478609ec3f7deacbdb"
      +                    },
      +                   "lastOccurrence": "2023-01-27T17:11:41.222374636Z",
      +                   "time": "2023-01-27T17:11:41.222374553Z"
      +               }
      +           ],
      +       },
      +       {
      +            "subStatus": "Tracking",
      +            "time": "2023-01-27T17:11:41.222400219Z",
      +           "actions": [],
      +       },
      +       {
      +            "subStatus": "Stale",
      +            "time": "2023-01-27T17:13:21.222100434Z",
      +           "actions": [
      +                {
      +                    "action": "RetrieveGasPrice",
      +                    "count": 1,
      +                    "lastInfo": {
      +                        "gasPrice": "44436243"
      +                    },
      +                    "lastOccurrence": "2023-01-27T17:13:22.93120838Z",
      +                    "time": "2023-01-27T17:13:22.93120838Z"
      +                },
      +                {
      +                    "action": "SubmitTransaction",
      +                    "count": 1,
      +                   "lastInfo": {
      +                        "txHash": "0x7b3a5e1ccbc0a1d5c949082bbec8ae7fe918e6621cec39478609ec7aea6103d5"
      +                    },
      +                   "lastOccurrence": "2023-01-27T17:13:32.656374637Z",
      +                   "time": "2023-01-27T17:13:32.656374637Z"
      +               }
      +            ],
      +       },
      +       {
      +            "subStatus": "Tracking",
      +            "time": "2023-01-27T17:13:33.434400219Z",
      +           "actions": [],
      +       },
      +       {
      +            "subStatus": "Stale",
      +            "time": "2023-01-27T17:15:21.222100434Z",
      +           "actions": [
      +                {
      +                    "action": "RetrieveGasPrice",
      +                    "count": 1,
      +                    "lastInfo": {
      +                        "gasPrice": "52129243"
      +                    },
      +                    "lastOccurrence": "2023-01-27T17:15:22.93120838Z",
      +                    "time": "2023-01-27T17:15:22.93120838Z"
      +                },
      +                {
      +                    "action": "SubmitTransaction",
      +                    "count": 1,
      +                   "lastInfo": {
      +                        "txHash": "0x89995e1ccbc0a1d5c949082bbec8ae7fe918e6621cec39478609ec7a8c64abc"
      +                    },
      +                   "lastOccurrence": "2023-01-27T17:15:32.656374637Z",
      +                   "time": "2023-01-27T17:15:32.656374637Z"
      +               }
      +            ],
      +       },
      +       {
      +            "subStatus": "Tracking",
      +            "time": "2023-01-27T17:15:33.434400219Z",
      +           "actions": [
      +                {
      +                    "action": "ReceiveReceipt",
      +                    "count": 1,
      +                    "lastInfo": {
      +                        "protocolId": "000004897621/000000"
      +                    },
      +                    "lastOccurrence": "2023-01-27T17:15:33.94120833Z",
      +                    "time": "2023-01-27T17:15:33.94120833Z"
      +                },
      +                {
      +                    "action": "Confirm",
      +                    "count": 1,
      +                    "lastOccurrence": "2023-01-27T17:16:02.780275549Z",
      +                    "time": "2023-01-27T17:16:02.780275382Z"
      +                }
      +            ],
      +       },
      +       {
      +            "subStatus": "Confirmed",
      +            "time": "2023-01-27T17:16:03.990309381Z",
      +            "actions": [],
      +       }
      +    ]
      +    ...
      +}
      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/config.html b/head/reference/config.html deleted file mode 100644 index 5e5cfebf0..000000000 --- a/head/reference/config.html +++ /dev/null @@ -1,7337 +0,0 @@ - - - - - - - - - Configuration Reference - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Configuration Reference | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Configuration Reference - - -

      - - -
      -

      - - - admin - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      enabledDeprecated - use spi.enabled insteadboolean<nil>
      -

      - - - api - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      defaultFilterLimitThe maximum number of rows to return if no limit is specified on an API requestint25
      dynamicPublicURLHeaderDynamic header that informs the backend the base public URL for the request, in order to build URL links in OpenAPI/SwaggerUIstring<nil>
      maxFilterLimitThe largest value of limit that an HTTP client can specify in a requestint1000
      passthroughHeadersA list of HTTP request headers to pass through to dependency microservices[]string[]
      requestMaxTimeoutThe maximum amount of time that an HTTP client can specify in a Request-Timeout header to keep a specific request opentime.Duration10m
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration120s
      -

      - - - asset.manager - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      keyNormalizationMechanism to normalize keys before using them. Valid options are blockchain_plugin - use blockchain plugin (default) or none - do not attempt normalization (deprecated - use namespaces.predefined[].asset.manager.keyNormalization)stringblockchain_plugin
      -

      - - - batch.manager - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      minimumPollDelayThe minimum time the batch manager waits between polls on the DB - to prevent thrashingtime.Duration100ms
      pollTimeoutHow long to wait without any notifications of new messages before doing a page querytime.Duration30s
      readPageSizeThe size of each page of messages read from the database into memory when assembling batchesint100
      -

      - - - batch.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initDelayThe initial retry delaytime.Duration250ms
      maxDelayThe maximum retry delaytime.Duration30s
      -

      - - - blobreceiver.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initialDelayThe initial retry delaytime.Duration250ms
      maxDelayThe maximum retry delaytime.Duration1m
      -

      - - - blobreceiver.worker - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      batchMaxInsertsThe maximum number of items the blob receiver worker will insert in a batchint200
      batchTimeoutThe maximum amount of the the blob receiver worker will waittime.Duration50ms
      countThe number of blob receiver workersint5
      -

      - - - broadcast.batch - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      agentTimeoutHow long to keep around a batching agent for a sending identity before disposalstring2m
      payloadLimitThe maximum payload size of a batch for broadcast messagesBytesSize800Kb
      sizeThe maximum number of messages that can be packed into a batchint200
      timeoutThe timeout to wait for a batch to fill, before sendingtime.Duration1s
      -

      - - - cache - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      enabledEnables caching, defaults to truebooleantrue
      -

      - - - cache.addressresolver - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for address resolverint1000
      ttlTime to live of cached items for address resolverstring24h
      -

      - - - cache.batch - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for batchesint100
      ttlTime to live of cache items for batchesstring5m
      -

      - - - cache.blockchain - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for blockchainint100
      ttlTime to live of cached items for blockchainstring5m
      -

      - - - cache.blockchainevent - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      limitMax number of cached blockchain events for transactionsint1000
      ttlTime to live of cached blockchain events for transactionsstring5m
      -

      - - - cache.eventlistenertopic - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for blockchain listener topicsint100
      ttlTime to live of cached items for blockchain listener topicsstring5m
      -

      - - - cache.group - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for groupsint50
      ttlTime to live of cached items for groupsstring1h
      -

      - - - cache.identity - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      limitMax number of cached identities for identity managerint100
      ttlTime to live of cached identities for identity managerstring1h
      -

      - - - cache.message - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      sizeMax size of cached messages for data managerBytesSize50Mb
      ttlTime to live of cached messages for data managerstring5m
      -

      - - - cache.methods - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for schema validations on blockchain methodsint200
      ttlTime to live of cached items for schema validations on blockchain methodsstring5m
      -

      - - - cache.operations - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for operationsint1000
      ttlTime to live of cached items for operationsstring5m
      -

      - - - cache.tokenpool - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for token poolsint100
      ttlTime to live of cached items for token poolstring1h
      -

      - - - cache.transaction - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      sizeMax size of cached transactionsBytesSize1Mb
      ttlTime to live of cached transactionsstring5m
      -

      - - - cache.validator - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      sizeMax size of cached validators for data managerBytesSize1Mb
      ttlTime to live of cached validators for data managerstring1h
      -

      - - - config - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      autoReloadMonitor the configuration file for changes, and automatically add/remove/reload namespaces and pluginsboolean<nil>
      -

      - - - cors - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      credentialsCORS setting to control whether a browser allows credentials to be sent to this APIbooleantrue
      debugWhether debug is enabled for the CORS implementationbooleanfalse
      enabledWhether CORS is enabledbooleantrue
      headersCORS setting to control the allowed headers[]string[*]
      maxAgeThe maximum age a browser should rely on CORS checkstime.Duration600
      methodsCORS setting to control the allowed methods[]string[GET POST PUT PATCH DELETE]
      originsCORS setting to control the allowed origins[]string[*]
      -

      - - - debug - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      addressThe HTTP interface the go debugger binds tostringlocalhost
      portAn HTTP port on which to enable the go debuggerint-1
      -

      - - - download.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initialDelayThe initial retry delaytime.Duration100ms
      maxAttemptsThe maximum number attemptsint100
      maxDelayThe maximum retry delaytime.Duration1m
      -

      - - - download.worker - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe number of download workersint10
      queueLengthThe length of the work queue in the channel to the workers - defaults to 2x the worker countint<nil>
      -

      - - - event.aggregator - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      batchSizeThe maximum number of records to read from the DB before performing an aggregation runBytesSize200
      batchTimeoutHow long to wait for new events to arrive before performing aggregation on a page of eventstime.Duration0ms
      firstEventThe first event the aggregator should process, if no previous offest is stored in the DB. Valid options are oldest or neweststringoldest
      pollTimeoutThe time to wait without a notification of new events, before trying a select on the tabletime.Duration30s
      rewindQueryLimitSafety limit on the maximum number of records to search when performing queries to search for rewindsint1000
      rewindQueueLengthThe size of the queue into the rewind dispatcherint10
      rewindTimeoutThe minimum time to wait for rewinds to accumulate before resolving themtime.Duration50ms
      -

      - - - event.aggregator.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initDelayThe initial retry delaytime.Duration100ms
      maxDelayThe maximum retry delaytime.Duration30s
      -

      - - - event.dbevents - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      bufferSizeThe size of the buffer of change eventsBytesSize100
      -

      - - - event.dispatcher - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      batchTimeoutA short time to wait for new events to arrive before re-polling for new eventstime.Duration0ms
      bufferLengthThe number of events + attachments an individual dispatcher should hold in memory ready for delivery to the subscriptionint5
      pollTimeoutThe time to wait without a notification of new events, before trying a select on the tabletime.Duration30s
      -

      - - - event.dispatcher.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat32<nil>
      initDelayThe initial retry delaytime.Duration<nil>
      maxDelayThe maximum retry delaytime.Duration<nil>
      -

      - - - event.transports - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      defaultThe default event transport for new subscriptionsstringwebsockets
      enabledWhich event interface plugins are enabledboolean[websockets webhooks]
      -

      - - - events.webhooks - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      -

      - - - events.webhooks.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - events.webhooks.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to connect throughstring<nil>
      -

      - - - events.webhooks.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - events.webhooks.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - events.websockets - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      readBufferSizeWebSocket read buffer sizeBytesSize16Kb
      writeBufferSizeWebSocket write buffer sizeBytesSize16Kb
      -

      - - - histograms - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      maxChartRowsThe maximum rows to fetch for each histogram bucketint100
      -

      - - - http - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      addressThe IP address on which the HTTP API should listenIP Address string127.0.0.1
      portThe port on which the HTTP API should listenint5000
      publicURLThe fully qualified public URL for the API. This is used for building URLs in HTTP responses and in OpenAPI Spec generationURL string<nil>
      readTimeoutThe maximum time to wait when reading from an HTTP connectiontime.Duration15s
      shutdownTimeoutThe maximum amount of time to wait for any open HTTP requests to finish before shutting down the HTTP servertime.Duration10s
      writeTimeoutThe maximum time to wait when writing to an HTTP connectiontime.Duration15s
      -

      - - - http.auth - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      typeThe auth plugin to use for server side authentication of requestsstring<nil>
      -

      - - - http.auth.basic - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordfileThe path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt.string<nil>
      -

      - - - http.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - log - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      compressDetermines if the rotated log files should be compressed using gzipboolean<nil>
      filenameFilename is the file to write logs to. Backup log files will be retained in the same directorystring<nil>
      filesizeMaxSize is the maximum size the log file before it gets rotatedBytesSize100m
      forceColorForce color to be enabled, even when a non-TTY output is detectedboolean<nil>
      includeCodeInfoEnables the report caller for including the calling file and line number, and the calling function. If using text logs, it uses the logrus text format rather than the default prefix format.booleanfalse
      levelThe log level - error, warn, info, debug, tracestringinfo
      maxAgeThe maximum time to retain old log files based on the timestamp encoded in their filenametime.Duration24h
      maxBackupsMaximum number of old log files to retainint2
      noColorForce color to be disabled, event when TTY output is detectedboolean<nil>
      timeFormatCustom time format for logsTime format string2006-01-02T15:04:05.000Z07:00
      utcUse UTC timestamps for logsbooleanfalse
      -

      - - - log.json - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      enabledEnables JSON formatted logs rather than text. All log color settings are ignored when enabled.booleanfalse
      -

      - - - log.json.fields - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      fileconfigures the JSON key containing the calling filestringfile
      funcConfigures the JSON key containing the calling functionstringfunc
      levelConfigures the JSON key containing the log levelstringlevel
      messageConfigures the JSON key containing the log messagestringmessage
      timestampConfigures the JSON key containing the timestamp of the logstring@timestamp
      -

      - - - message.writer - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      batchMaxInsertsThe maximum number of database inserts to include when writing a single batch of messages + dataint200
      batchTimeoutHow long to wait for more messages to arrive before flushing the batchtime.Duration10ms
      countThe number of message writer workersint5
      -

      - - - metrics - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      addressThe IP address on which the metrics HTTP API should listenint127.0.0.1
      enabledEnables the metrics APIbooleantrue
      pathThe path from which to serve the Prometheus metricsstring/metrics
      portThe port on which the metrics HTTP API should listenint6000
      publicURLThe fully qualified public URL for the metrics API. This is used for building URLs in HTTP responses and in OpenAPI Spec generationURL string<nil>
      readTimeoutThe maximum time to wait when reading from an HTTP connectiontime.Duration15s
      shutdownTimeoutThe maximum amount of time to wait for any open HTTP requests to finish before shutting down the HTTP servertime.Duration10s
      writeTimeoutThe maximum time to wait when writing to an HTTP connectiontime.Duration15s
      -

      - - - metrics.auth - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      typeThe auth plugin to use for server side authentication of requestsstring<nil>
      -

      - - - metrics.auth.basic - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordfileThe path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt.string<nil>
      -

      - - - metrics.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - namespaces - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      defaultThe default namespace - must be in the predefined liststringdefault
      predefinedA list of namespaces to ensure exists, without requiring a broadcast from the networkList string<nil>
      -

      - - - namespaces.predefined[] - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      defaultKeyA default signing key for blockchain transactions within this namespacestring<nil>
      descriptionA description for the namespacestring<nil>
      nameThe name of the namespace (must be unique)string<nil>
      pluginsThe list of plugins for this namespacestring<nil>
      -

      - - - namespaces.predefined[].asset.manager - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      keyNormalizationMechanism to normalize keys before using them. Valid options are blockchain_plugin - use blockchain plugin (default) or none - do not attempt normalizationstring<nil>
      -

      - - - namespaces.predefined[].multiparty - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      enabledEnables multi-party mode for this namespace (defaults to true if an org name or key is configured, either here or at the root level)boolean<nil>
      networknamespaceThe shared namespace name to be sent in multiparty messages, if it differs from the local namespace namestring<nil>
      -

      - - - namespaces.predefined[].multiparty.contract[] - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      firstEventThe first event the contract should process. Valid options are oldest or neweststring<nil>
      locationA blockchain-specific contract location. For example, an Ethereum contract address, or a Fabric chaincode name and channelstring<nil>
      optionsBlockchain-specific contract optionsstring<nil>
      -

      - - - namespaces.predefined[].multiparty.node - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      descriptionA description for the node in this namespacestring<nil>
      nameThe node name for this namespacestring<nil>
      -

      - - - namespaces.predefined[].multiparty.org - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      descriptionA description for the local root organization within this namespacestring<nil>
      keyThe signing key allocated to the root organization within this namespacestring<nil>
      nameA short name for the local root organization within this namespacestring<nil>
      -

      - - - namespaces.predefined[].tlsConfigs[] - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      nameName of the TLS Configstring<nil>
      -

      - - - namespaces.predefined[].tlsConfigs[].tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - namespaces.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initDelayThe initial retry delaytime.Duration5s
      maxDelayThe maximum retry delaytime.Duration1m
      -

      - - - node - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      descriptionThe description of this FireFly nodestring<nil>
      nameThe name of this FireFly nodestring<nil>
      -

      - - - opupdate.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initialDelayThe initial retry delaytime.Duration250ms
      maxDelayThe maximum retry delaytime.Duration1m
      -

      - - - opupdate.worker - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      batchMaxInsertsThe maximum number of database inserts to include when writing a single batch of messages + dataint200
      batchTimeoutHow long to wait for more messages to arrive before flushing the batchtime.Duration50ms
      countThe number of operation update worksint5
      queueLengthThe size of the queue for the Operation Update workerint50
      -

      - - - orchestrator - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      startupAttemptsThe number of times to attempt to connect to core infrastructure on startupstring5
      -

      - - - org - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      descriptionA description of the organization to which this FireFly node belongs (deprecated - should be set on each multi-party namespace instead)string<nil>
      keyThe signing key allocated to the organization (deprecated - should be set on each multi-party namespace instead)string<nil>
      nameThe name of the organization to which this FireFly node belongs (deprecated - should be set on each multi-party namespace instead)string<nil>
      -

      - - - plugins - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      authAuthorization plugin configurationmap[string]string<nil>
      blockchainThe list of configured Blockchain pluginsstring<nil>
      databaseThe list of configured Database pluginsstring<nil>
      dataexchangeThe array of configured Data Exchange pluginsstring<nil>
      identityThe list of available Identity pluginsstring<nil>
      sharedstorageThe list of configured Shared Storage pluginsstring<nil>
      tokensThe token plugin configurationsstring<nil>
      -

      - - - plugins.auth[] - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      nameThe name of the auth plugin to usestring<nil>
      typeThe type of the auth plugin to usestring<nil>
      -

      - - - plugins.auth[].basic - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordfileThe path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt.string<nil>
      -

      - - - plugins.blockchain[] - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      nameThe name of the configured Blockchain pluginstring<nil>
      typeThe type of the configured Blockchain Connector pluginstring<nil>
      -

      - - - plugins.blockchain[].ethereum.addressResolver - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      alwaysResolveCauses the address resolver to be invoked on every API call that submits a signing key, regardless of whether the input string conforms to an 0x address. Also disables any result cachingboolean<nil>
      bodyTemplateThe body go template string to use when making HTTP requests. The template input contains ‘.Key’ and ‘.Intent’ string variables.Go Template string<nil>
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsstring<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      methodThe HTTP method to use when making requests to the Address ResolverstringGET
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      responseFieldThe name of a JSON field that is provided in the response, that contains the ethereum address (default address)stringaddress
      retainOriginalWhen true the original pre-resolved string is retained after the lookup, and passed down to Ethconnect as the from addressboolean<nil>
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL of the Address Resolverstring<nil>
      urlTemplateThe URL Go template string to use when calling the Address Resolver. The template input contains ‘.Key’ and ‘.Intent’ string variables.Go Template string<nil>
      -

      - - - plugins.blockchain[].ethereum.addressResolver.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - plugins.blockchain[].ethereum.addressResolver.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the Address ResolverURL string<nil>
      -

      - - - plugins.blockchain[].ethereum.addressResolver.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - plugins.blockchain[].ethereum.addressResolver.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - plugins.blockchain[].ethereum.ethconnect - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      batchSizeThe number of events Ethconnect should batch together for delivery to FireFly core. Only applies when automatically creating a new event streamint50
      batchTimeoutHow long Ethconnect should wait for new events to arrive and fill a batch, before sending the batch to FireFly core. Only applies when automatically creating a new event streamtime.Duration500
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      fromBlockThe first event this FireFly instance should listen to from the BatchPin smart contract. Default=0. Only affects initial creation of the event streamAddress string0
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      instanceThe Ethereum address of the FireFly BatchPin smart contract that has been deployed to the blockchainAddress string<nil>
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      prefixLongThe prefix that will be used for Ethconnect specific HTTP headers when FireFly makes requests to Ethconnectstringfirefly
      prefixShortThe prefix that will be used for Ethconnect specific query parameters when FireFly makes requests to Ethconnectstringfly
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      topicThe websocket listen topic that the node should register on, which is important if there are multiple nodes using a single ethconnectstring<nil>
      urlThe URL of the Ethconnect instanceURL string<nil>
      -

      - - - plugins.blockchain[].ethereum.ethconnect.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - plugins.blockchain[].ethereum.ethconnect.backgroundStart - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      enabledStart the Ethconnect plugin in the background and enter retry loop if failed to startboolean<nil>
      factorSet the factor by which the delay increases when retryingfloat322
      initialDelayDelay between restarts in the case where we retry to restart the ethereum plugintime.Duration5s
      maxDelayMax delay between restarts in the case where we retry to restart the ethereum plugintime.Duration1m
      -

      - - - plugins.blockchain[].ethereum.ethconnect.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to EthconnectURL string<nil>
      -

      - - - plugins.blockchain[].ethereum.ethconnect.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - plugins.blockchain[].ethereum.ethconnect.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - plugins.blockchain[].ethereum.ethconnect.ws - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe amount of time to wait while establishing a connection (or auto-reconnection)time.Duration45s
      heartbeatIntervalThe amount of time to wait between heartbeat signals on the WebSocket connectiontime.Duration30s
      initialConnectAttemptsThe number of attempts FireFly will make to connect to the WebSocket when starting up, before failingint5
      pathThe WebSocket sever URL to which FireFly should connectWebSocket URL string<nil>
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      urlURL to use for WebSocket - overrides url one level up (in the HTTP config)string<nil>
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      -

      - - - plugins.blockchain[].ethereum.fftm - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL of the FireFly Transaction Manager runtime, if enabledstring<nil>
      -

      - - - plugins.blockchain[].ethereum.fftm.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - plugins.blockchain[].ethereum.fftm.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the Transaction Managerstring<nil>
      -

      - - - plugins.blockchain[].ethereum.fftm.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - plugins.blockchain[].ethereum.fftm.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - plugins.blockchain[].fabric.fabconnect - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      batchSizeThe number of events Fabconnect should batch together for delivery to FireFly core. Only applies when automatically creating a new event streamint50
      batchTimeoutThe maximum amount of time to wait for a batch to completetime.Duration500
      chaincodeThe name of the Fabric chaincode that FireFly will use for BatchPin transactions (deprecated - use fireflyContract[].chaincode)string<nil>
      channelThe Fabric channel that FireFly will use for BatchPin transactionsstring<nil>
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      prefixLongThe prefix that will be used for Fabconnect specific HTTP headers when FireFly makes requests to Fabconnectstringfirefly
      prefixShortThe prefix that will be used for Fabconnect specific query parameters when FireFly makes requests to Fabconnectstringfly
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      signerThe Fabric signing key to use when submitting transactions to Fabconnectstring<nil>
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      topicThe websocket listen topic that the node should register on, which is important if there are multiple nodes using a single Fabconnectstring<nil>
      urlThe URL of the Fabconnect instanceURL string<nil>
      -

      - - - plugins.blockchain[].fabric.fabconnect.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - plugins.blockchain[].fabric.fabconnect.backgroundStart - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      enabledStart the fabric plugin in the background and enter retry loop if failed to startboolean<nil>
      factorSet the factor by which the delay increases when retryingfloat322
      initialDelayDelay between restarts in the case where we retry to restart the fabric plugintime.Duration5s
      maxDelayMax delay between restarts in the case where we retry to restart the fabric plugintime.Duration1m
      -

      - - - plugins.blockchain[].fabric.fabconnect.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to FabconnectURL string<nil>
      -

      - - - plugins.blockchain[].fabric.fabconnect.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - plugins.blockchain[].fabric.fabconnect.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - plugins.blockchain[].fabric.fabconnect.ws - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe amount of time to wait while establishing a connection (or auto-reconnection)time.Duration45s
      heartbeatIntervalThe amount of time to wait between heartbeat signals on the WebSocket connectiontime.Duration30s
      initialConnectAttemptsThe number of attempts FireFly will make to connect to the WebSocket when starting up, before failingint5
      pathThe WebSocket sever URL to which FireFly should connectWebSocket URL string<nil>
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      urlURL to use for WebSocket - overrides url one level up (in the HTTP config)string<nil>
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      -

      - - - plugins.blockchain[].tezos.addressResolver - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      alwaysResolveCauses the address resolver to be invoked on every API call that submits a signing key. Also disables any result cachingboolean<nil>
      bodyTemplateThe body go template string to use when making HTTP requestsGo Template string<nil>
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      methodThe HTTP method to use when making requests to the Address ResolverstringGET
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      responseFieldThe name of a JSON field that is provided in the response, that contains the tezos address (default address)stringaddress
      retainOriginalWhen true the original pre-resolved string is retained after the lookup, and passed down to Tezosconnect as the from addressboolean<nil>
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL of the Address Resolverstring<nil>
      urlTemplateThe URL Go template string to use when calling the Address Resolver. The template input contains ‘.Key’ and ‘.Intent’ string variables.Go Template string<nil>
      -

      - - - plugins.blockchain[].tezos.addressResolver.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - plugins.blockchain[].tezos.addressResolver.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to connect throughstring<nil>
      -

      - - - plugins.blockchain[].tezos.addressResolver.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - plugins.blockchain[].tezos.addressResolver.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - plugins.blockchain[].tezos.tezosconnect - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      batchSizeThe number of events Tezosconnect should batch together for delivery to FireFly core. Only applies when automatically creating a new event streamint50
      batchTimeoutHow long Tezosconnect should wait for new events to arrive and fill a batch, before sending the batch to FireFly core. Only applies when automatically creating a new event streamtime.Duration500
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      prefixLongThe prefix that will be used for Tezosconnect specific HTTP headers when FireFly makes requests to Tezosconnectstringfirefly
      prefixShortThe prefix that will be used for Tezosconnect specific query parameters when FireFly makes requests to Tezosconnectstringfly
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      topicThe websocket listen topic that the node should register on, which is important if there are multiple nodes using a single tezosconnectstring<nil>
      urlThe URL of the Tezosconnect instanceURL string<nil>
      -

      - - - plugins.blockchain[].tezos.tezosconnect.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - plugins.blockchain[].tezos.tezosconnect.backgroundStart - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      enabledStart the Tezosconnect plugin in the background and enter retry loop if failed to startboolean<nil>
      factorSet the factor by which the delay increases when retryingfloat322
      initialDelayDelay between restarts in the case where we retry to restart the tezos plugintime.Duration5s
      maxDelayMax delay between restarts in the case where we retry to restart the tezos plugintime.Duration1m
      -

      - - - plugins.blockchain[].tezos.tezosconnect.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to TezosconnectURL string<nil>
      -

      - - - plugins.blockchain[].tezos.tezosconnect.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - plugins.blockchain[].tezos.tezosconnect.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - plugins.blockchain[].tezos.tezosconnect.ws - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe amount of time to wait while establishing a connection (or auto-reconnection)time.Duration45s
      heartbeatIntervalThe amount of time to wait between heartbeat signals on the WebSocket connectiontime.Duration30s
      initialConnectAttemptsThe number of attempts FireFly will make to connect to the WebSocket when starting up, before failingint5
      pathThe WebSocket sever URL to which FireFly should connectWebSocket URL string<nil>
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      urlURL to use for WebSocket - overrides url one level up (in the HTTP config)string<nil>
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      -

      - - - plugins.database[] - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      nameThe name of the Database pluginstring<nil>
      typeThe type of the configured Database pluginstring<nil>
      -

      - - - plugins.database[].postgres - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      maxConnIdleTimeThe maximum amount of time a database connection can be idletime.Duration1m
      maxConnLifetimeThe maximum amount of time to keep a database connection opentime.Duration<nil>
      maxConnsMaximum connections to the databaseint50
      maxIdleConnsThe maximum number of idle connections to the databaseint<nil>
      urlThe PostgreSQL connection string for the databasestring<nil>
      -

      - - - plugins.database[].postgres.migrations - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      autoEnables automatic database migrationsbooleanfalse
      directoryThe directory containing the numerically ordered migration DDL files to apply to the databasestring./db/migrations/postgres
      -

      - - - plugins.database[].sqlite3 - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      maxConnIdleTimeThe maximum amount of time a database connection can be idletime.Duration1m
      maxConnLifetimeThe maximum amount of time to keep a database connection opentime.Duration<nil>
      maxConnsMaximum connections to the databaseint1
      maxIdleConnsThe maximum number of idle connections to the databaseint<nil>
      urlThe SQLite connection string for the databasestring<nil>
      -

      - - - plugins.database[].sqlite3.migrations - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      autoEnables automatic database migrationsbooleanfalse
      directoryThe directory containing the numerically ordered migration DDL files to apply to the databasestring./db/migrations/sqlite
      -

      - - - plugins.dataexchange[] - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      nameThe name of the configured Data Exchange pluginstring<nil>
      typeThe Data Exchange plugin to usestring<nil>
      -

      - - - plugins.dataexchange[].ffdx - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      initEnabledInstructs FireFly to always post all current nodes to the /init API before connecting or reconnecting to the connectorbooleanfalse
      manifestEnabledDetermines whether to require+validate a manifest from other DX instances in the network. Must be supported by the connectorstringfalse
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL of the Data Exchange instanceURL string<nil>
      -

      - - - plugins.dataexchange[].ffdx.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - plugins.dataexchange[].ffdx.backgroundStart - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      enabledStart the data exchange plugin in the background and enter retry loop if failed to startbooleanfalse
      factorSet the factor by which the delay increases when retryingfloat322
      initialDelayDelay between restarts in the case where we retry to restart the data exchange plugintime.Duration5s
      maxDelayMax delay between restarts in the case where we retry to restart the data exchange plugintime.Duration1m
      -

      - - - plugins.dataexchange[].ffdx.eventRetry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factor, for event processingfloat322
      initialDelayThe initial retry delay, for event processingtime.Duration50ms
      maxDelayThe maximum retry delay, for event processingtime.Duration30s
      -

      - - - plugins.dataexchange[].ffdx.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the Data ExchangeURL string<nil>
      -

      - - - plugins.dataexchange[].ffdx.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - plugins.dataexchange[].ffdx.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - plugins.dataexchange[].ffdx.ws - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe amount of time to wait while establishing a connection (or auto-reconnection)time.Duration45s
      heartbeatIntervalThe amount of time to wait between heartbeat signals on the WebSocket connectiontime.Duration30s
      initialConnectAttemptsThe number of attempts FireFly will make to connect to the WebSocket when starting up, before failingint5
      pathThe WebSocket sever URL to which FireFly should connectWebSocket URL string<nil>
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      urlURL to use for WebSocket - overrides url one level up (in the HTTP config)string<nil>
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      -

      - - - plugins.identity[] - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      nameThe name of a configured Identity pluginstring<nil>
      typeThe type of a configured Identity pluginstring<nil>
      -

      - - - plugins.sharedstorage[] - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      nameThe name of the Shared Storage plugin to usestring<nil>
      typeThe Shared Storage plugin to usestring<nil>
      -

      - - - plugins.sharedstorage[].ipfs.api - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL for the IPFS APIURL string<nil>
      -

      - - - plugins.sharedstorage[].ipfs.api.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - plugins.sharedstorage[].ipfs.api.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the IPFS APIURL string<nil>
      -

      - - - plugins.sharedstorage[].ipfs.api.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - plugins.sharedstorage[].ipfs.api.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - plugins.sharedstorage[].ipfs.gateway - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL for the IPFS GatewayURL string<nil>
      -

      - - - plugins.sharedstorage[].ipfs.gateway.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - plugins.sharedstorage[].ipfs.gateway.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the IPFS GatewayURL string<nil>
      -

      - - - plugins.sharedstorage[].ipfs.gateway.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - plugins.sharedstorage[].ipfs.gateway.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - plugins.tokens[] - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      broadcastNameThe name to be used in broadcast messages related to this token plugin, if it differs from the local plugin namestring<nil>
      nameA name to identify this token pluginstring<nil>
      typeThe type of the token plugin to usestring<nil>
      -

      - - - plugins.tokens[].fftokens - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL of the token connectorURL string<nil>
      -

      - - - plugins.tokens[].fftokens.auth - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      -

      - - - plugins.tokens[].fftokens.backgroundStart - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      enabledStart the tokens plugin in the background and enter retry loop if failed to startbooleanfalse
      factorSet the factor by which the delay increases when retryingfloat322
      initialDelayDelay between restarts in the case where we retry to restart the token plugintime.Duration5s
      maxDelayMax delay between restarts in the case where we retry to restart the token plugintime.Duration1m
      -

      - - - plugins.tokens[].fftokens.eventRetry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factor, for event processingfloat322
      initialDelayThe initial retry delay, for event processingtime.Duration50ms
      maxDelayThe maximum retry delay, for event processingtime.Duration30s
      -

      - - - plugins.tokens[].fftokens.proxy - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the token connectorURL string<nil>
      -

      - - - plugins.tokens[].fftokens.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      -

      - - - plugins.tokens[].fftokens.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - plugins.tokens[].fftokens.ws - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe amount of time to wait while establishing a connection (or auto-reconnection)time.Duration45s
      heartbeatIntervalThe amount of time to wait between heartbeat signals on the WebSocket connectiontime.Duration30s
      initialConnectAttemptsThe number of attempts FireFly will make to connect to the WebSocket when starting up, before failingint5
      pathThe WebSocket sever URL to which FireFly should connectWebSocket URL string<nil>
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      urlURL to use for WebSocket - overrides url one level up (in the HTTP config)string<nil>
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      -

      - - - privatemessaging.batch - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      agentTimeoutHow long to keep around a batching agent for a sending identity before disposaltime.Duration2m
      payloadLimitThe maximum payload size of a private message Data Exchange payloadBytesSize800Kb
      sizeThe maximum number of messages in a batch for private messagesint200
      timeoutThe timeout to wait for a batch to fill, before sendingtime.Duration1s
      -

      - - - privatemessaging.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initDelayThe initial retry delaytime.Duration100ms
      maxDelayThe maximum retry delaytime.Duration30s
      -

      - - - spi - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      addressThe IP address on which the admin HTTP API should listenIP Address string127.0.0.1
      enabledEnables the admin HTTP APIbooleanfalse
      portThe port on which the admin HTTP API should listenint5001
      publicURLThe fully qualified public URL for the admin API. This is used for building URLs in HTTP responses and in OpenAPI Spec generationURL string<nil>
      readTimeoutThe maximum time to wait when reading from an HTTP connectiontime.Duration15s
      shutdownTimeoutThe maximum amount of time to wait for any open HTTP requests to finish before shutting down the HTTP servertime.Duration10s
      writeTimeoutThe maximum time to wait when writing to an HTTP connectiontime.Duration15s
      -

      - - - spi.auth - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      typeThe auth plugin to use for server side authentication of requestsstring<nil>
      -

      - - - spi.auth.basic - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      passwordfileThe path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt.string<nil>
      -

      - - - spi.tls - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      -

      - - - spi.ws - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      blockedWarnIntervalHow often to log warnings in core, when an admin change event listener falls behind the stream they requested and misses eventstime.Duration1m
      eventQueueLengthServer-side queue length for events waiting for delivery over an admin change event listener websocketint250
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      -

      - - - subscription - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      maxThe maximum number of pre-defined subscriptions that can exist (note for high fan-out consider connecting a dedicated pub/sub broker to the dispatcher)int500
      -

      - - - subscription.defaults - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      batchSizeDefault read ahead to enable for subscriptions that do not explicitly configure readaheadint50
      batchTimeoutDefault batch timeoutint50ms
      -

      - - - subscription.events - - -

      - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      maxScanLengthThe maximum number of events a search for historical events matching a subscription will index from the databaseint1000
      -

      - - - subscription.retry - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initDelayThe initial retry delaytime.Duration250ms
      maxDelayThe maximum retry delaytime.Duration30s
      -

      - - - transaction.writer - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      batchMaxTransactionsThe maximum number of transaction inserts to include in a batchint100
      batchTimeoutHow long to wait for more transactions to arrive before flushing the batchtime.Duration10ms
      countThe number of message writer workersint5
      -

      - - - ui - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      KeyDescriptionTypeDefault Value
      enabledEnables the web user interfacebooleantrue
      pathThe file system path which contains the static HTML, CSS, and JavaScript files for the user interfacestring<nil>
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/config/index.html b/head/reference/config/index.html new file mode 100644 index 000000000..334e26dcd --- /dev/null +++ b/head/reference/config/index.html @@ -0,0 +1,11969 @@ + + + + + + + + + + + + + + + + + + + + + + + Configuration Reference - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Configuration Reference

      + +

      admin

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      enabledDeprecated - use spi.enabled insteadboolean<nil>
      +

      api

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      defaultFilterLimitThe maximum number of rows to return if no limit is specified on an API requestint25
      dynamicPublicURLHeaderDynamic header that informs the backend the base public URL for the request, in order to build URL links in OpenAPI/SwaggerUIstring<nil>
      maxFilterLimitThe largest value of limit that an HTTP client can specify in a requestint1000
      passthroughHeadersA list of HTTP request headers to pass through to dependency microservices[]string[]
      requestMaxTimeoutThe maximum amount of time that an HTTP client can specify in a Request-Timeout header to keep a specific request opentime.Duration10m
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration120s
      +

      asset.manager

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      keyNormalizationMechanism to normalize keys before using them. Valid options are blockchain_plugin - use blockchain plugin (default) or none - do not attempt normalization (deprecated - use namespaces.predefined[].asset.manager.keyNormalization)stringblockchain_plugin
      +

      batch.manager

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      minimumPollDelayThe minimum time the batch manager waits between polls on the DB - to prevent thrashingtime.Duration100ms
      pollTimeoutHow long to wait without any notifications of new messages before doing a page querytime.Duration30s
      readPageSizeThe size of each page of messages read from the database into memory when assembling batchesint100
      +

      batch.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initDelayThe initial retry delaytime.Duration250ms
      maxDelayThe maximum retry delaytime.Duration30s
      +

      blobreceiver.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initialDelayThe initial retry delaytime.Duration250ms
      maxDelayThe maximum retry delaytime.Duration1m
      +

      blobreceiver.worker

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      batchMaxInsertsThe maximum number of items the blob receiver worker will insert in a batchint200
      batchTimeoutThe maximum amount of the the blob receiver worker will waittime.Duration50ms
      countThe number of blob receiver workersint5
      +

      broadcast.batch

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      agentTimeoutHow long to keep around a batching agent for a sending identity before disposalstring2m
      payloadLimitThe maximum payload size of a batch for broadcast messagesBytesSize800Kb
      sizeThe maximum number of messages that can be packed into a batchint200
      timeoutThe timeout to wait for a batch to fill, before sendingtime.Duration1s
      +

      cache

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      enabledEnables caching, defaults to truebooleantrue
      +

      cache.addressresolver

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for address resolverint1000
      ttlTime to live of cached items for address resolverstring24h
      +

      cache.batch

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for batchesint100
      ttlTime to live of cache items for batchesstring5m
      +

      cache.blockchain

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for blockchainint100
      ttlTime to live of cached items for blockchainstring5m
      +

      cache.blockchainevent

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      limitMax number of cached blockchain events for transactionsint1000
      ttlTime to live of cached blockchain events for transactionsstring5m
      +

      cache.eventlistenertopic

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for blockchain listener topicsint100
      ttlTime to live of cached items for blockchain listener topicsstring5m
      +

      cache.group

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for groupsint50
      ttlTime to live of cached items for groupsstring1h
      +

      cache.identity

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      limitMax number of cached identities for identity managerint100
      ttlTime to live of cached identities for identity managerstring1h
      +

      cache.message

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      sizeMax size of cached messages for data managerBytesSize50Mb
      ttlTime to live of cached messages for data managerstring5m
      +

      cache.methods

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for schema validations on blockchain methodsint200
      ttlTime to live of cached items for schema validations on blockchain methodsstring5m
      +

      cache.operations

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for operationsint1000
      ttlTime to live of cached items for operationsstring5m
      +

      cache.tokenpool

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      limitMax number of cached items for token poolsint100
      ttlTime to live of cached items for token poolstring1h
      +

      cache.transaction

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      sizeMax size of cached transactionsBytesSize1Mb
      ttlTime to live of cached transactionsstring5m
      +

      cache.validator

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      sizeMax size of cached validators for data managerBytesSize1Mb
      ttlTime to live of cached validators for data managerstring1h
      +

      config

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      autoReloadMonitor the configuration file for changes, and automatically add/remove/reload namespaces and pluginsboolean<nil>
      +

      cors

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      credentialsCORS setting to control whether a browser allows credentials to be sent to this APIbooleantrue
      debugWhether debug is enabled for the CORS implementationbooleanfalse
      enabledWhether CORS is enabledbooleantrue
      headersCORS setting to control the allowed headers[]string[*]
      maxAgeThe maximum age a browser should rely on CORS checkstime.Duration600
      methodsCORS setting to control the allowed methods[]string[GET POST PUT PATCH DELETE]
      originsCORS setting to control the allowed origins[]string[*]
      +

      debug

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      addressThe HTTP interface the go debugger binds tostringlocalhost
      portAn HTTP port on which to enable the go debuggerint-1
      +

      download.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initialDelayThe initial retry delaytime.Duration100ms
      maxAttemptsThe maximum number attemptsint100
      maxDelayThe maximum retry delaytime.Duration1m
      +

      download.worker

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe number of download workersint10
      queueLengthThe length of the work queue in the channel to the workers - defaults to 2x the worker countint<nil>
      +

      event.aggregator

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      batchSizeThe maximum number of records to read from the DB before performing an aggregation runBytesSize200
      batchTimeoutHow long to wait for new events to arrive before performing aggregation on a page of eventstime.Duration0ms
      firstEventThe first event the aggregator should process, if no previous offest is stored in the DB. Valid options are oldest or neweststringoldest
      pollTimeoutThe time to wait without a notification of new events, before trying a select on the tabletime.Duration30s
      rewindQueryLimitSafety limit on the maximum number of records to search when performing queries to search for rewindsint1000
      rewindQueueLengthThe size of the queue into the rewind dispatcherint10
      rewindTimeoutThe minimum time to wait for rewinds to accumulate before resolving themtime.Duration50ms
      +

      event.aggregator.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initDelayThe initial retry delaytime.Duration100ms
      maxDelayThe maximum retry delaytime.Duration30s
      +

      event.dbevents

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      bufferSizeThe size of the buffer of change eventsBytesSize100
      +

      event.dispatcher

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      batchTimeoutA short time to wait for new events to arrive before re-polling for new eventstime.Duration0ms
      bufferLengthThe number of events + attachments an individual dispatcher should hold in memory ready for delivery to the subscriptionint5
      pollTimeoutThe time to wait without a notification of new events, before trying a select on the tabletime.Duration30s
      +

      event.dispatcher.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat32<nil>
      initDelayThe initial retry delaytime.Duration<nil>
      maxDelayThe maximum retry delaytime.Duration<nil>
      +

      event.transports

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      defaultThe default event transport for new subscriptionsstringwebsockets
      enabledWhich event interface plugins are enabledboolean[websockets webhooks]
      +

      events.webhooks

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      +

      events.webhooks.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      events.webhooks.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to connect throughstring<nil>
      +

      events.webhooks.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      events.webhooks.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      events.websockets

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      readBufferSizeWebSocket read buffer sizeBytesSize16Kb
      writeBufferSizeWebSocket write buffer sizeBytesSize16Kb
      +

      histograms

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      maxChartRowsThe maximum rows to fetch for each histogram bucketint100
      +

      http

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      addressThe IP address on which the HTTP API should listenIP Address string127.0.0.1
      portThe port on which the HTTP API should listenint5000
      publicURLThe fully qualified public URL for the API. This is used for building URLs in HTTP responses and in OpenAPI Spec generationURL string<nil>
      readTimeoutThe maximum time to wait when reading from an HTTP connectiontime.Duration15s
      shutdownTimeoutThe maximum amount of time to wait for any open HTTP requests to finish before shutting down the HTTP servertime.Duration10s
      writeTimeoutThe maximum time to wait when writing to an HTTP connectiontime.Duration15s
      +

      http.auth

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      typeThe auth plugin to use for server side authentication of requestsstring<nil>
      +

      http.auth.basic

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordfileThe path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt.string<nil>
      +

      http.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      log

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      compressDetermines if the rotated log files should be compressed using gzipboolean<nil>
      filenameFilename is the file to write logs to. Backup log files will be retained in the same directorystring<nil>
      filesizeMaxSize is the maximum size the log file before it gets rotatedBytesSize100m
      forceColorForce color to be enabled, even when a non-TTY output is detectedboolean<nil>
      includeCodeInfoEnables the report caller for including the calling file and line number, and the calling function. If using text logs, it uses the logrus text format rather than the default prefix format.booleanfalse
      levelThe log level - error, warn, info, debug, tracestringinfo
      maxAgeThe maximum time to retain old log files based on the timestamp encoded in their filenametime.Duration24h
      maxBackupsMaximum number of old log files to retainint2
      noColorForce color to be disabled, event when TTY output is detectedboolean<nil>
      timeFormatCustom time format for logsTime format string2006-01-02T15:04:05.000Z07:00
      utcUse UTC timestamps for logsbooleanfalse
      +

      log.json

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      enabledEnables JSON formatted logs rather than text. All log color settings are ignored when enabled.booleanfalse
      +

      log.json.fields

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      fileconfigures the JSON key containing the calling filestringfile
      funcConfigures the JSON key containing the calling functionstringfunc
      levelConfigures the JSON key containing the log levelstringlevel
      messageConfigures the JSON key containing the log messagestringmessage
      timestampConfigures the JSON key containing the timestamp of the logstring@timestamp
      +

      message.writer

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      batchMaxInsertsThe maximum number of database inserts to include when writing a single batch of messages + dataint200
      batchTimeoutHow long to wait for more messages to arrive before flushing the batchtime.Duration10ms
      countThe number of message writer workersint5
      +

      metrics

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      addressThe IP address on which the metrics HTTP API should listenint127.0.0.1
      enabledEnables the metrics APIbooleantrue
      pathThe path from which to serve the Prometheus metricsstring/metrics
      portThe port on which the metrics HTTP API should listenint6000
      publicURLThe fully qualified public URL for the metrics API. This is used for building URLs in HTTP responses and in OpenAPI Spec generationURL string<nil>
      readTimeoutThe maximum time to wait when reading from an HTTP connectiontime.Duration15s
      shutdownTimeoutThe maximum amount of time to wait for any open HTTP requests to finish before shutting down the HTTP servertime.Duration10s
      writeTimeoutThe maximum time to wait when writing to an HTTP connectiontime.Duration15s
      +

      metrics.auth

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      typeThe auth plugin to use for server side authentication of requestsstring<nil>
      +

      metrics.auth.basic

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordfileThe path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt.string<nil>
      +

      metrics.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      namespaces

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      defaultThe default namespace - must be in the predefined liststringdefault
      predefinedA list of namespaces to ensure exists, without requiring a broadcast from the networkList string<nil>
      +

      namespaces.predefined[]

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      defaultKeyA default signing key for blockchain transactions within this namespacestring<nil>
      descriptionA description for the namespacestring<nil>
      nameThe name of the namespace (must be unique)string<nil>
      pluginsThe list of plugins for this namespacestring<nil>
      +

      namespaces.predefined[].asset.manager

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      keyNormalizationMechanism to normalize keys before using them. Valid options are blockchain_plugin - use blockchain plugin (default) or none - do not attempt normalizationstring<nil>
      +

      namespaces.predefined[].multiparty

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      enabledEnables multi-party mode for this namespace (defaults to true if an org name or key is configured, either here or at the root level)boolean<nil>
      networknamespaceThe shared namespace name to be sent in multiparty messages, if it differs from the local namespace namestring<nil>
      +

      namespaces.predefined[].multiparty.contract[]

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      firstEventThe first event the contract should process. Valid options are oldest or neweststring<nil>
      locationA blockchain-specific contract location. For example, an Ethereum contract address, or a Fabric chaincode name and channelstring<nil>
      optionsBlockchain-specific contract optionsstring<nil>
      +

      namespaces.predefined[].multiparty.node

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      descriptionA description for the node in this namespacestring<nil>
      nameThe node name for this namespacestring<nil>
      +

      namespaces.predefined[].multiparty.org

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      descriptionA description for the local root organization within this namespacestring<nil>
      keyThe signing key allocated to the root organization within this namespacestring<nil>
      nameA short name for the local root organization within this namespacestring<nil>
      +

      namespaces.predefined[].tlsConfigs[]

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      nameName of the TLS Configstring<nil>
      +

      namespaces.predefined[].tlsConfigs[].tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      namespaces.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initDelayThe initial retry delaytime.Duration5s
      maxDelayThe maximum retry delaytime.Duration1m
      +

      node

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      descriptionThe description of this FireFly nodestring<nil>
      nameThe name of this FireFly nodestring<nil>
      +

      opupdate.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initialDelayThe initial retry delaytime.Duration250ms
      maxDelayThe maximum retry delaytime.Duration1m
      +

      opupdate.worker

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      batchMaxInsertsThe maximum number of database inserts to include when writing a single batch of messages + dataint200
      batchTimeoutHow long to wait for more messages to arrive before flushing the batchtime.Duration50ms
      countThe number of operation update worksint5
      queueLengthThe size of the queue for the Operation Update workerint50
      +

      orchestrator

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      startupAttemptsThe number of times to attempt to connect to core infrastructure on startupstring5
      +

      org

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      descriptionA description of the organization to which this FireFly node belongs (deprecated - should be set on each multi-party namespace instead)string<nil>
      keyThe signing key allocated to the organization (deprecated - should be set on each multi-party namespace instead)string<nil>
      nameThe name of the organization to which this FireFly node belongs (deprecated - should be set on each multi-party namespace instead)string<nil>
      +

      plugins

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      authAuthorization plugin configurationmap[string]string<nil>
      blockchainThe list of configured Blockchain pluginsstring<nil>
      databaseThe list of configured Database pluginsstring<nil>
      dataexchangeThe array of configured Data Exchange pluginsstring<nil>
      identityThe list of available Identity pluginsstring<nil>
      sharedstorageThe list of configured Shared Storage pluginsstring<nil>
      tokensThe token plugin configurationsstring<nil>
      +

      plugins.auth[]

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      nameThe name of the auth plugin to usestring<nil>
      typeThe type of the auth plugin to usestring<nil>
      +

      plugins.auth[].basic

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordfileThe path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt.string<nil>
      +

      plugins.blockchain[]

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      nameThe name of the configured Blockchain pluginstring<nil>
      typeThe type of the configured Blockchain Connector pluginstring<nil>
      +

      plugins.blockchain[].ethereum.addressResolver

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      alwaysResolveCauses the address resolver to be invoked on every API call that submits a signing key, regardless of whether the input string conforms to an 0x address. Also disables any result cachingboolean<nil>
      bodyTemplateThe body go template string to use when making HTTP requests. The template input contains '.Key' and '.Intent' string variables.Go Template string<nil>
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsstring<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      methodThe HTTP method to use when making requests to the Address ResolverstringGET
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      responseFieldThe name of a JSON field that is provided in the response, that contains the ethereum address (default address)stringaddress
      retainOriginalWhen true the original pre-resolved string is retained after the lookup, and passed down to Ethconnect as the from addressboolean<nil>
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL of the Address Resolverstring<nil>
      urlTemplateThe URL Go template string to use when calling the Address Resolver. The template input contains '.Key' and '.Intent' string variables.Go Template string<nil>
      +

      plugins.blockchain[].ethereum.addressResolver.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      plugins.blockchain[].ethereum.addressResolver.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the Address ResolverURL string<nil>
      +

      plugins.blockchain[].ethereum.addressResolver.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      plugins.blockchain[].ethereum.addressResolver.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      plugins.blockchain[].ethereum.ethconnect

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      batchSizeThe number of events Ethconnect should batch together for delivery to FireFly core. Only applies when automatically creating a new event streamint50
      batchTimeoutHow long Ethconnect should wait for new events to arrive and fill a batch, before sending the batch to FireFly core. Only applies when automatically creating a new event streamtime.Duration500
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      fromBlockThe first event this FireFly instance should listen to from the BatchPin smart contract. Default=0. Only affects initial creation of the event streamAddress string0
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      instanceThe Ethereum address of the FireFly BatchPin smart contract that has been deployed to the blockchainAddress string<nil>
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      prefixLongThe prefix that will be used for Ethconnect specific HTTP headers when FireFly makes requests to Ethconnectstringfirefly
      prefixShortThe prefix that will be used for Ethconnect specific query parameters when FireFly makes requests to Ethconnectstringfly
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      topicThe websocket listen topic that the node should register on, which is important if there are multiple nodes using a single ethconnectstring<nil>
      urlThe URL of the Ethconnect instanceURL string<nil>
      +

      plugins.blockchain[].ethereum.ethconnect.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      plugins.blockchain[].ethereum.ethconnect.backgroundStart

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      enabledStart the Ethconnect plugin in the background and enter retry loop if failed to startboolean<nil>
      factorSet the factor by which the delay increases when retryingfloat322
      initialDelayDelay between restarts in the case where we retry to restart the ethereum plugintime.Duration5s
      maxDelayMax delay between restarts in the case where we retry to restart the ethereum plugintime.Duration1m
      +

      plugins.blockchain[].ethereum.ethconnect.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to EthconnectURL string<nil>
      +

      plugins.blockchain[].ethereum.ethconnect.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      plugins.blockchain[].ethereum.ethconnect.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      plugins.blockchain[].ethereum.ethconnect.ws

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe amount of time to wait while establishing a connection (or auto-reconnection)time.Duration45s
      heartbeatIntervalThe amount of time to wait between heartbeat signals on the WebSocket connectiontime.Duration30s
      initialConnectAttemptsThe number of attempts FireFly will make to connect to the WebSocket when starting up, before failingint5
      pathThe WebSocket sever URL to which FireFly should connectWebSocket URL string<nil>
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      urlURL to use for WebSocket - overrides url one level up (in the HTTP config)string<nil>
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      +

      plugins.blockchain[].ethereum.fftm

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL of the FireFly Transaction Manager runtime, if enabledstring<nil>
      +

      plugins.blockchain[].ethereum.fftm.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      plugins.blockchain[].ethereum.fftm.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the Transaction Managerstring<nil>
      +

      plugins.blockchain[].ethereum.fftm.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      plugins.blockchain[].ethereum.fftm.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      plugins.blockchain[].fabric.fabconnect

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      batchSizeThe number of events Fabconnect should batch together for delivery to FireFly core. Only applies when automatically creating a new event streamint50
      batchTimeoutThe maximum amount of time to wait for a batch to completetime.Duration500
      chaincodeThe name of the Fabric chaincode that FireFly will use for BatchPin transactions (deprecated - use fireflyContract[].chaincode)string<nil>
      channelThe Fabric channel that FireFly will use for BatchPin transactionsstring<nil>
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      prefixLongThe prefix that will be used for Fabconnect specific HTTP headers when FireFly makes requests to Fabconnectstringfirefly
      prefixShortThe prefix that will be used for Fabconnect specific query parameters when FireFly makes requests to Fabconnectstringfly
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      signerThe Fabric signing key to use when submitting transactions to Fabconnectstring<nil>
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      topicThe websocket listen topic that the node should register on, which is important if there are multiple nodes using a single Fabconnectstring<nil>
      urlThe URL of the Fabconnect instanceURL string<nil>
      +

      plugins.blockchain[].fabric.fabconnect.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      plugins.blockchain[].fabric.fabconnect.backgroundStart

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      enabledStart the fabric plugin in the background and enter retry loop if failed to startboolean<nil>
      factorSet the factor by which the delay increases when retryingfloat322
      initialDelayDelay between restarts in the case where we retry to restart the fabric plugintime.Duration5s
      maxDelayMax delay between restarts in the case where we retry to restart the fabric plugintime.Duration1m
      +

      plugins.blockchain[].fabric.fabconnect.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to FabconnectURL string<nil>
      +

      plugins.blockchain[].fabric.fabconnect.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      plugins.blockchain[].fabric.fabconnect.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      plugins.blockchain[].fabric.fabconnect.ws

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe amount of time to wait while establishing a connection (or auto-reconnection)time.Duration45s
      heartbeatIntervalThe amount of time to wait between heartbeat signals on the WebSocket connectiontime.Duration30s
      initialConnectAttemptsThe number of attempts FireFly will make to connect to the WebSocket when starting up, before failingint5
      pathThe WebSocket sever URL to which FireFly should connectWebSocket URL string<nil>
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      urlURL to use for WebSocket - overrides url one level up (in the HTTP config)string<nil>
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      +

      plugins.blockchain[].tezos.addressResolver

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      alwaysResolveCauses the address resolver to be invoked on every API call that submits a signing key. Also disables any result cachingboolean<nil>
      bodyTemplateThe body go template string to use when making HTTP requestsGo Template string<nil>
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      methodThe HTTP method to use when making requests to the Address ResolverstringGET
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      responseFieldThe name of a JSON field that is provided in the response, that contains the tezos address (default address)stringaddress
      retainOriginalWhen true the original pre-resolved string is retained after the lookup, and passed down to Tezosconnect as the from addressboolean<nil>
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL of the Address Resolverstring<nil>
      urlTemplateThe URL Go template string to use when calling the Address Resolver. The template input contains '.Key' and '.Intent' string variables.Go Template string<nil>
      +

      plugins.blockchain[].tezos.addressResolver.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      plugins.blockchain[].tezos.addressResolver.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to connect throughstring<nil>
      +

      plugins.blockchain[].tezos.addressResolver.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      plugins.blockchain[].tezos.addressResolver.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      plugins.blockchain[].tezos.tezosconnect

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      batchSizeThe number of events Tezosconnect should batch together for delivery to FireFly core. Only applies when automatically creating a new event streamint50
      batchTimeoutHow long Tezosconnect should wait for new events to arrive and fill a batch, before sending the batch to FireFly core. Only applies when automatically creating a new event streamtime.Duration500
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      prefixLongThe prefix that will be used for Tezosconnect specific HTTP headers when FireFly makes requests to Tezosconnectstringfirefly
      prefixShortThe prefix that will be used for Tezosconnect specific query parameters when FireFly makes requests to Tezosconnectstringfly
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      topicThe websocket listen topic that the node should register on, which is important if there are multiple nodes using a single tezosconnectstring<nil>
      urlThe URL of the Tezosconnect instanceURL string<nil>
      +

      plugins.blockchain[].tezos.tezosconnect.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      plugins.blockchain[].tezos.tezosconnect.backgroundStart

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      enabledStart the Tezosconnect plugin in the background and enter retry loop if failed to startboolean<nil>
      factorSet the factor by which the delay increases when retryingfloat322
      initialDelayDelay between restarts in the case where we retry to restart the tezos plugintime.Duration5s
      maxDelayMax delay between restarts in the case where we retry to restart the tezos plugintime.Duration1m
      +

      plugins.blockchain[].tezos.tezosconnect.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to TezosconnectURL string<nil>
      +

      plugins.blockchain[].tezos.tezosconnect.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      plugins.blockchain[].tezos.tezosconnect.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      plugins.blockchain[].tezos.tezosconnect.ws

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe amount of time to wait while establishing a connection (or auto-reconnection)time.Duration45s
      heartbeatIntervalThe amount of time to wait between heartbeat signals on the WebSocket connectiontime.Duration30s
      initialConnectAttemptsThe number of attempts FireFly will make to connect to the WebSocket when starting up, before failingint5
      pathThe WebSocket sever URL to which FireFly should connectWebSocket URL string<nil>
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      urlURL to use for WebSocket - overrides url one level up (in the HTTP config)string<nil>
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      +

      plugins.database[]

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      nameThe name of the Database pluginstring<nil>
      typeThe type of the configured Database pluginstring<nil>
      +

      plugins.database[].postgres

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      maxConnIdleTimeThe maximum amount of time a database connection can be idletime.Duration1m
      maxConnLifetimeThe maximum amount of time to keep a database connection opentime.Duration<nil>
      maxConnsMaximum connections to the databaseint50
      maxIdleConnsThe maximum number of idle connections to the databaseint<nil>
      urlThe PostgreSQL connection string for the databasestring<nil>
      +

      plugins.database[].postgres.migrations

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      autoEnables automatic database migrationsbooleanfalse
      directoryThe directory containing the numerically ordered migration DDL files to apply to the databasestring./db/migrations/postgres
      +

      plugins.database[].sqlite3

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      maxConnIdleTimeThe maximum amount of time a database connection can be idletime.Duration1m
      maxConnLifetimeThe maximum amount of time to keep a database connection opentime.Duration<nil>
      maxConnsMaximum connections to the databaseint1
      maxIdleConnsThe maximum number of idle connections to the databaseint<nil>
      urlThe SQLite connection string for the databasestring<nil>
      +

      plugins.database[].sqlite3.migrations

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      autoEnables automatic database migrationsbooleanfalse
      directoryThe directory containing the numerically ordered migration DDL files to apply to the databasestring./db/migrations/sqlite
      +

      plugins.dataexchange[]

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      nameThe name of the configured Data Exchange pluginstring<nil>
      typeThe Data Exchange plugin to usestring<nil>
      +

      plugins.dataexchange[].ffdx

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      initEnabledInstructs FireFly to always post all current nodes to the /init API before connecting or reconnecting to the connectorbooleanfalse
      manifestEnabledDetermines whether to require+validate a manifest from other DX instances in the network. Must be supported by the connectorstringfalse
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL of the Data Exchange instanceURL string<nil>
      +

      plugins.dataexchange[].ffdx.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      plugins.dataexchange[].ffdx.backgroundStart

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      enabledStart the data exchange plugin in the background and enter retry loop if failed to startbooleanfalse
      factorSet the factor by which the delay increases when retryingfloat322
      initialDelayDelay between restarts in the case where we retry to restart the data exchange plugintime.Duration5s
      maxDelayMax delay between restarts in the case where we retry to restart the data exchange plugintime.Duration1m
      +

      plugins.dataexchange[].ffdx.eventRetry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factor, for event processingfloat322
      initialDelayThe initial retry delay, for event processingtime.Duration50ms
      maxDelayThe maximum retry delay, for event processingtime.Duration30s
      +

      plugins.dataexchange[].ffdx.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the Data ExchangeURL string<nil>
      +

      plugins.dataexchange[].ffdx.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      plugins.dataexchange[].ffdx.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      plugins.dataexchange[].ffdx.ws

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe amount of time to wait while establishing a connection (or auto-reconnection)time.Duration45s
      heartbeatIntervalThe amount of time to wait between heartbeat signals on the WebSocket connectiontime.Duration30s
      initialConnectAttemptsThe number of attempts FireFly will make to connect to the WebSocket when starting up, before failingint5
      pathThe WebSocket sever URL to which FireFly should connectWebSocket URL string<nil>
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      urlURL to use for WebSocket - overrides url one level up (in the HTTP config)string<nil>
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      +

      plugins.identity[]

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      nameThe name of a configured Identity pluginstring<nil>
      typeThe type of a configured Identity pluginstring<nil>
      +

      plugins.sharedstorage[]

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      nameThe name of the Shared Storage plugin to usestring<nil>
      typeThe Shared Storage plugin to usestring<nil>
      +

      plugins.sharedstorage[].ipfs.api

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL for the IPFS APIURL string<nil>
      +

      plugins.sharedstorage[].ipfs.api.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      plugins.sharedstorage[].ipfs.api.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the IPFS APIURL string<nil>
      +

      plugins.sharedstorage[].ipfs.api.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      plugins.sharedstorage[].ipfs.api.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      plugins.sharedstorage[].ipfs.gateway

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL for the IPFS GatewayURL string<nil>
      +

      plugins.sharedstorage[].ipfs.gateway.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      plugins.sharedstorage[].ipfs.gateway.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the IPFS GatewayURL string<nil>
      +

      plugins.sharedstorage[].ipfs.gateway.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      plugins.sharedstorage[].ipfs.gateway.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      plugins.tokens[]

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      broadcastNameThe name to be used in broadcast messages related to this token plugin, if it differs from the local plugin namestring<nil>
      nameA name to identify this token pluginstring<nil>
      typeThe type of the token plugin to usestring<nil>
      +

      plugins.tokens[].fftokens

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmittedtime.Duration30s
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docstime.Duration1s
      headersAdds custom headers to HTTP requestsmap[string]string<nil>
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callstime.Duration475ms
      maxConnsPerHostThe max number of connections, per unique hostname. Zero means no limitint0
      maxIdleConnsThe max number of idle connections to hold pooledint100
      passthroughHeadersEnabledEnable passing through the set of allowed HTTP request headersbooleanfalse
      requestTimeoutThe maximum amount of time that a request is allowed to remain opentime.Duration30s
      tlsHandshakeTimeoutThe maximum amount of time to wait for a successful TLS handshaketime.Duration10s
      urlThe URL of the token connectorURL string<nil>
      +

      plugins.tokens[].fftokens.auth

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordPasswordstring<nil>
      usernameUsernamestring<nil>
      +

      plugins.tokens[].fftokens.backgroundStart

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      enabledStart the tokens plugin in the background and enter retry loop if failed to startbooleanfalse
      factorSet the factor by which the delay increases when retryingfloat322
      initialDelayDelay between restarts in the case where we retry to restart the token plugintime.Duration5s
      maxDelayMax delay between restarts in the case where we retry to restart the token plugintime.Duration1m
      +

      plugins.tokens[].fftokens.eventRetry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factor, for event processingfloat322
      initialDelayThe initial retry delay, for event processingtime.Duration50ms
      maxDelayThe maximum retry delay, for event processingtime.Duration30s
      +

      plugins.tokens[].fftokens.proxy

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      urlOptional HTTP proxy server to use when connecting to the token connectorURL string<nil>
      +

      plugins.tokens[].fftokens.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      countThe maximum number of times to retryint5
      enabledEnables retriesbooleanfalse
      errorStatusCodeRegexThe regex that the error response status code must match to trigger retrystring<nil>
      initWaitTimeThe initial retry delaytime.Duration250ms
      maxWaitTimeThe maximum retry delaytime.Duration30s
      +

      plugins.tokens[].fftokens.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      plugins.tokens[].fftokens.ws

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      connectionTimeoutThe amount of time to wait while establishing a connection (or auto-reconnection)time.Duration45s
      heartbeatIntervalThe amount of time to wait between heartbeat signals on the WebSocket connectiontime.Duration30s
      initialConnectAttemptsThe number of attempts FireFly will make to connect to the WebSocket when starting up, before failingint5
      pathThe WebSocket sever URL to which FireFly should connectWebSocket URL string<nil>
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      urlURL to use for WebSocket - overrides url one level up (in the HTTP config)string<nil>
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      +

      privatemessaging.batch

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      agentTimeoutHow long to keep around a batching agent for a sending identity before disposaltime.Duration2m
      payloadLimitThe maximum payload size of a private message Data Exchange payloadBytesSize800Kb
      sizeThe maximum number of messages in a batch for private messagesint200
      timeoutThe timeout to wait for a batch to fill, before sendingtime.Duration1s
      +

      privatemessaging.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initDelayThe initial retry delaytime.Duration100ms
      maxDelayThe maximum retry delaytime.Duration30s
      +

      spi

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      addressThe IP address on which the admin HTTP API should listenIP Address string127.0.0.1
      enabledEnables the admin HTTP APIbooleanfalse
      portThe port on which the admin HTTP API should listenint5001
      publicURLThe fully qualified public URL for the admin API. This is used for building URLs in HTTP responses and in OpenAPI Spec generationURL string<nil>
      readTimeoutThe maximum time to wait when reading from an HTTP connectiontime.Duration15s
      shutdownTimeoutThe maximum amount of time to wait for any open HTTP requests to finish before shutting down the HTTP servertime.Duration10s
      writeTimeoutThe maximum time to wait when writing to an HTTP connectiontime.Duration15s
      +

      spi.auth

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      typeThe auth plugin to use for server side authentication of requestsstring<nil>
      +

      spi.auth.basic

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      passwordfileThe path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt.string<nil>
      +

      spi.tls

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      caFileThe path to the CA file for TLS on this APIstring<nil>
      certFileThe path to the certificate file for TLS on this APIstring<nil>
      clientAuthEnables or disables client auth for TLS on this APIstring<nil>
      enabledEnables or disables TLS on this APIbooleanfalse
      insecureSkipHostVerifyWhen to true in unit test development environments to disable TLS verification. Use with extreme cautionboolean<nil>
      keyFileThe path to the private key file for TLS on this APIstring<nil>
      requiredDNAttributesA set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)map[string]string<nil>
      +

      spi.ws

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      blockedWarnIntervalHow often to log warnings in core, when an admin change event listener falls behind the stream they requested and misses eventstime.Duration1m
      eventQueueLengthServer-side queue length for events waiting for delivery over an admin change event listener websocketint250
      readBufferSizeThe size in bytes of the read buffer for the WebSocket connectionBytesSize16Kb
      writeBufferSizeThe size in bytes of the write buffer for the WebSocket connectionBytesSize16Kb
      +

      subscription

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      maxThe maximum number of pre-defined subscriptions that can exist (note for high fan-out consider connecting a dedicated pub/sub broker to the dispatcher)int500
      +

      subscription.defaults

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      batchSizeDefault read ahead to enable for subscriptions that do not explicitly configure readaheadint50
      batchTimeoutDefault batch timeoutint50ms
      +

      subscription.events

      + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      maxScanLengthThe maximum number of events a search for historical events matching a subscription will index from the databaseint1000
      +

      subscription.retry

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      factorThe retry backoff factorfloat322
      initDelayThe initial retry delaytime.Duration250ms
      maxDelayThe maximum retry delaytime.Duration30s
      +

      transaction.writer

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      batchMaxTransactionsThe maximum number of transaction inserts to include in a batchint100
      batchTimeoutHow long to wait for more transactions to arrive before flushing the batchtime.Duration10ms
      countThe number of message writer workersint5
      +

      ui

      + + + + + + + + + + + + + + + + + + + + + + + +
      KeyDescriptionTypeDefault Value
      enabledEnables the web user interfacebooleantrue
      pathThe file system path which contains the static HTML, CSS, and JavaScript files for the user interfacestring<nil>
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/events.html b/head/reference/events.html deleted file mode 100644 index 8e239195f..000000000 --- a/head/reference/events.html +++ /dev/null @@ -1,693 +0,0 @@ - - - - - - - - - Event Bus - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Event Bus | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Event Bus - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Hyperledger FireFly Event Bus
      2. -
      3. Event-Driven Application Architecture
      4. -
      5. Decentralized Event Processing
          -
        1. Example 1: A fungible token balance transfer
        2. -
        3. Example 2: A step in a multi-party business process
        4. -
        -
      6. -
      7. Privacy groups and late join
      8. -
      9. Event Types
          -
        1. Blockchain events
        2. -
        3. Token events
        4. -
        -
      10. -
      11. Message events: on-chain / off-chain coordinated
      12. -
      13. Transaction submission events
      14. -

      - -

      FireFly Event Bus

      -

      - - - Hyperledger FireFly Event Bus - - -

      - - -

      The FireFly event bus provides your application with a single stream of events -from all of the back-end services that plug into FireFly.

      - -

      Applications subscribe to these events using developer friendly protocols -like WebSockets, and Webhooks. Additional transports and messaging systems -like NATS, Kafka, and JMS Servers can be connected through plugins.

      - -

      Each application creates one or more Subscriptions -to identify itself. -In this subscription the application can choose to receive all events that -are emitted within a namespace, or can use server-side filtering to -only receive a sub-set of events.

      - -

      The event bus reliably keeps track of which events have been delivered to which -applications, via an offset into the main event stream that is updated -each time an application acknowledges receipt of events over its subscription.

      -

      - - - Event-Driven Application Architecture - - -

      - - -

      Decentralized applications are built around a source of truth that is -shared between multiple parties. No one party can change the state -unilaterally, as their changes need to be processed in order with -the other changes in the system. Each party processes requests to change -shared state in the same order, against a common set of rules for what -is allowed at that exact point in the processing. -As a result everybody deterministically ends up -with the same state at the end of the processing.

      - -

      This requires an event-driven programming model.

      - -

      You will find an event-driven model at the core of every blockchain -Smart Contract technology.

      - -

      This event-driven approach is unavoidable regardless of how much of -your business data & logic can be directly stored/processed -on-chain, vs. off-chain.

      - -

      So Hyperledger FireFly aims to provide you with the tools to easily -manage this model throughout your decentralized application stack.

      - -

      Event Driven Programming Model

      - -

      Your back-end application should be structured for this event-driven -paradigm, with an Event Handler constantly listening for events, -applying a consistent State Machine to those events and -applying the changes to your Application Database.

      - -
      -

      FireFly comes with a built in event processor for Token transfers & -approvals, that implements this pattern to maintain balances, and -transaction history in a rich query off-chain data cache.

      -
      -

      - - - Decentralized Event Processing - - -

      - - -

      In a decentralized system, you need to consider that each organization -runs its own applications, and has its own private database.

      - -

      At any given point in time different organizations will have slightly -different views of what the most up to date information is - even for -the blockchain state.

      - -

      As well as the agreed business logic, there will be private data -and core system integration that are needed to process events as they -happen. Some of this data might be received privately from other -parties, over a secure communications channel (not the blockchain).

      - -

      FireFly Event Model

      - -

      The system must be eventually consistent across all parties for any business -data/decision that those parties need to agree on. This happens by all parties -processing the same events in the same order, and by applying the same business -logic (for the parts of the business logic that are agreed).

      - -

      This means that when processing an event, a participant must have access to enough -historical data/state to reach the same conclusion as everyone else.

      - -

      Let’s look at a couple of examples.

      -

      - - - Example 1: A fungible token balance transfer - - -

      - - -

      You need to be able to verify the complete lineage of the tokens being spent, -in order to know that they cannot be double spent anywhere in the network.

      - -

      This means the transaction must be backed by a blockchain verifiable by all participants -on the network that could hold balances of that token.

      - -

      You might be able to use advanced cryptography (such as zero-knowledge proofs) -to mask the participants in the trade, but the transaction themselves must be verifiable -to everyone in a global sequence that prevents double spending.

      -

      - - - Example 2: A step in a multi-party business process - - -

      - - -

      Here it is likely you want to restrict visibility of the data to just the parties directly -involved in the business process.

      - -

      To come to a common agreement on outcome, the parties must know they are -processing the same data in the same order. So at minimum a proof (a hash of the data) needs to -“pinned” to a blockchain ledger visible to all participants involved in the process.

      - -

      You can then choose to put more processing on the blockchain, to enforce some critical -rules in the business state machine that must be executed fairly to prevent one -party from cheating the system. Such as that the highest bid is chosen in a competitive -bidding process, or a minimum set of parties have voted agreement before a -transaction is finalized.

      - -

      Other steps in the process might include human decision making, private data from the core -systems of one member, or proprietary business logic that one member is not willing to share. -These steps are “non-deterministic” - you cannot predict the outcome, nor be guaranteed -to reproduce the same outcome with the same inputs in the future.

      - -

      The FireFly event bus is designed to make triggering these non-deterministic steps -easy, while still allowing them to be part of the overall state machine of the -business process. You need to take care that the system is designed so parties cannot -cheat, and must follow the rules. How much of that rule enforcement -needs to be executed on-chain vs. off-chain (backed by a deterministic order -through the blockchain) is different for each use case.

      - -
      -

      Remember that tokens provide a great set of building blocks for on-chain steps in -your decentralized applications. Enterprise NFTs allow generation of a globally -unique ID, and track ownership. Fungible tokens allow value transfer, and can be -extended with smart contracts that to lock/unlock funds in “digital escrow” -while complex off-chain agreement happens.

      -
      -

      - - - Privacy groups and late join - - -

      - - -

      If a new participant needs to join into a business transaction that has already -started, they must first “catch up” with the current state before they can play -their part. In a real-world scenario they might not be allowed to see all the -data that’s visible to the other parties, so it is common to create a new stream -of communications that includes all of the existing parties, plus the new party, -to continue the process.

      - -

      If you use the same blockchain to back both groups, then you can safely order business -process steps that involve different parties across these overlapping groups of -participants.

      - -
      -

      Using a single Ethereum permissioned side-chain for example.

      -
      - -

      Alternatively, you can create dedicated distributed ledgers (DLTs) for communication -between these groups of participants. This can allow more logic and data to go -on-chain directly, although you still must consider the fact that this data is -immutable and can never be deleted.

      - -
      -

      Using Hyperledger Fabric channels for example.

      -
      - -

      On top of either type of ledger, FireFly provides a private Group -construct to facilitate secure off-chain data exchanges, and to efficiently -pin these communications to the blockchain in batches.

      - -

      These private data exchanges can also be coordinated with most sophisticated -on-chain transactions, such as token transfers.

      -

      - - - Event Types - - -

      - - -

      FireFly provides a number of different types of events to your application, -designed to allow you to build your application state machine quickly -and reliably.

      - -

      All events in FireFly share a common base structure, regardless of their type. -They are then linked (via a reference) to an object that contains detailed -information.

      - -

      The categories of event your application can receive are as follows:

      - -
      -

      See the Core Resources/Event page for a full list of event types, -and more details on the data you can expect for each type.

      -
      -

      - - - Blockchain events - - -

      - - -

      FireFly allows your application to subscribe to any event from a blockchain -smart contract.

      - -

      In order for applications connected to the FireFly API to receive blockchain events -from a smart contracts, a ContractListener fist must be created to instruct -FireFly to listen to those events from the blockchain (via the blockchain plugin).

      - -

      Once you have configured the blockchain event listener, every event detected -from the blockchain will result in a FireFly event delivered to your application -of type blockchain_event_received.

      - -

      Check out the Custom Contracts Tutorial for -a walk-through of how to set up listeners for the events from your smart contracts.

      - -

      FireFly automatically establishes listeners for some blockchain events:

      - -
        -
      • -

        Events from the FireFly BatchPin contract that is used to pin identities, -off-chain data broadcast and private messaging to the blockchain.

        -
      • -
      • -

        Events from Token contracts, for which a Token Pool -has been configured. These events are detected indirectly via the token connector.

        -
      • -
      -

      - - - Token events - - -

      - - -

      FireFly provides a Wallet API, that is pluggable to multiple token implementations -without needing to change your app.

      - -

      The pluggable API/Event interface allows all kinds of technical implementations -of tokens to be fitted into a common framework.

      - -

      The following wallet operations are supported. These are universal to all -token implementations - NFTs and fungible tokens alike:

      - -
        -
      • Mint
      • -
      • Burn
      • -
      • Transfer
      • -
      • Approve
      • -
      - -

      FireFly processes, indexes and stores the events associated with these actions, -for any Token Pool that has been configured on the FireFly node.

      - -

      See Token Transfer and Token Approval -for more information on the individual operations.

      - -

      The token connector is responsible for mapping from the raw Blockchain Events, to the -FireFly model for tokens. Reference token connector implementations are provided for -common interface standards implemented by tokens - like ERC-20, ERC-721 and ERC-115.

      - -

      A particular token contract might have many additional features that -are unique to that contract, particularly around governance. For these you -would use the Smart Contract features of FireFly to interact with the blockchain -API and Events directly.

      -

      - - - Message events: on-chain / off-chain coordinated - - -

      - - -

      Event aggregation between data arriving off-chain, and the associated ordered -proof/transaction events being confirmed on-chain, is a complex orchestration task.

      - -

      The universal order and additional transaction logic on-chain must be the -source of truth for when and how an event is processed.

      - -

      However, that event cannot be processed until the off-chain private/broadcast data -associated with that event is also available and verified against the on-chain hash -of that additional data.

      - -

      They might arrive in any order, and no further events can be processed on that business -transaction until the data is available.

      - -

      Multiple parties might be emitting events as part of the business transaction, and -the outcome will only be assured to be the same by all parties if they process these -events in the same order.

      - -

      Hyperledger FireFly handles this for you. Events related to a message -are not emitted until both the on-chain and off-chain parts (including large binary -attachments) are available+verified in your local FireFly node, and all previous -messages on the same topic have been processed successfully by your application.

      - -

      Your application just needs to:

      -
        -
      1. Choose a suitable topic for your messages that determines the ordered stream -it is part of. Such as a business transaction identifier.
      2. -
      3. Make sure the application does not acknowledge a message, until it has finished -processing it.
      4. -
      - -
      -

      See Message for more information

      -
      -

      - - - Transaction submission events - - -

      - - -

      These events are emitted each time a new transaction is initiated via the Firefly API.

      - -

      These events are only emitted on the local FireFly node that initiates an activity.

      - -

      For more information about FireFly Transactions, and how they relate to blockchain -transactions, see Transaction.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/events/index.html b/head/reference/events/index.html new file mode 100644 index 000000000..f41225a49 --- /dev/null +++ b/head/reference/events/index.html @@ -0,0 +1,3840 @@ + + + + + + + + + + + + + + + + + + + + + + + Event Bus - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Event Bus

      +

      FireFly Event Bus

      +

      Hyperledger FireFly Event Bus

      +

      The FireFly event bus provides your application with a single stream of events +from all of the back-end services that plug into FireFly.

      +

      Applications subscribe to these events using developer friendly protocols +like WebSockets, and Webhooks. Additional transports and messaging systems +like NATS, Kafka, and JMS Servers can be connected through plugins.

      +

      Each application creates one or more Subscriptions +to identify itself. +In this subscription the application can choose to receive all events that +are emitted within a namespace, or can use server-side filtering to +only receive a sub-set of events.

      +

      The event bus reliably keeps track of which events have been delivered to which +applications, via an offset into the main event stream that is updated +each time an application acknowledges receipt of events over its subscription.

      +

      Event-Driven Application Architecture

      +

      Decentralized applications are built around a source of truth that is +shared between multiple parties. No one party can change the state +unilaterally, as their changes need to be processed in order with +the other changes in the system. Each party processes requests to change +shared state in the same order, against a common set of rules for what +is allowed at that exact point in the processing. +As a result everybody deterministically ends up +with the same state at the end of the processing.

      +

      This requires an event-driven programming model.

      +

      You will find an event-driven model at the core of every blockchain +Smart Contract technology.

      +

      This event-driven approach is unavoidable regardless of how much of +your business data & logic can be directly stored/processed +on-chain, vs. off-chain.

      +

      So Hyperledger FireFly aims to provide you with the tools to easily +manage this model throughout your decentralized application stack.

      +

      Event Driven Programming Model

      +

      Your back-end application should be structured for this event-driven +paradigm, with an Event Handler constantly listening for events, +applying a consistent State Machine to those events and +applying the changes to your Application Database.

      +
      +

      FireFly comes with a built in event processor for Token transfers & +approvals, that implements this pattern to maintain balances, and +transaction history in a rich query off-chain data cache.

      +
      +

      Decentralized Event Processing

      +

      In a decentralized system, you need to consider that each organization +runs its own applications, and has its own private database.

      +

      At any given point in time different organizations will have slightly +different views of what the most up to date information is - even for +the blockchain state.

      +

      As well as the agreed business logic, there will be private data +and core system integration that are needed to process events as they +happen. Some of this data might be received privately from other +parties, over a secure communications channel (not the blockchain).

      +

      FireFly Event Model

      +

      The system must be eventually consistent across all parties for any business +data/decision that those parties need to agree on. This happens by all parties +processing the same events in the same order, and by applying the same business +logic (for the parts of the business logic that are agreed).

      +

      This means that when processing an event, a participant must have access to enough +historical data/state to reach the same conclusion as everyone else.

      +

      Let's look at a couple of examples.

      +

      Example 1: A fungible token balance transfer

      +

      You need to be able to verify the complete lineage of the tokens being spent, +in order to know that they cannot be double spent anywhere in the network.

      +

      This means the transaction must be backed by a blockchain verifiable by all participants +on the network that could hold balances of that token.

      +

      You might be able to use advanced cryptography (such as zero-knowledge proofs) +to mask the participants in the trade, but the transaction themselves must be verifiable +to everyone in a global sequence that prevents double spending.

      +

      Example 2: A step in a multi-party business process

      +

      Here it is likely you want to restrict visibility of the data to just the parties directly +involved in the business process.

      +

      To come to a common agreement on outcome, the parties must know they are +processing the same data in the same order. So at minimum a proof (a hash of the data) needs to +"pinned" to a blockchain ledger visible to all participants involved in the process.

      +

      You can then choose to put more processing on the blockchain, to enforce some critical +rules in the business state machine that must be executed fairly to prevent one +party from cheating the system. Such as that the highest bid is chosen in a competitive +bidding process, or a minimum set of parties have voted agreement before a +transaction is finalized.

      +

      Other steps in the process might include human decision making, private data from the core +systems of one member, or proprietary business logic that one member is not willing to share. +These steps are "non-deterministic" - you cannot predict the outcome, nor be guaranteed +to reproduce the same outcome with the same inputs in the future.

      +

      The FireFly event bus is designed to make triggering these non-deterministic steps +easy, while still allowing them to be part of the overall state machine of the +business process. You need to take care that the system is designed so parties cannot +cheat, and must follow the rules. How much of that rule enforcement +needs to be executed on-chain vs. off-chain (backed by a deterministic order +through the blockchain) is different for each use case.

      +
      +

      Remember that tokens provide a great set of building blocks for on-chain steps in +your decentralized applications. Enterprise NFTs allow generation of a globally +unique ID, and track ownership. Fungible tokens allow value transfer, and can be +extended with smart contracts that to lock/unlock funds in "digital escrow" +while complex off-chain agreement happens.

      +
      +

      Privacy groups and late join

      +

      If a new participant needs to join into a business transaction that has already +started, they must first "catch up" with the current state before they can play +their part. In a real-world scenario they might not be allowed to see all the +data that's visible to the other parties, so it is common to create a new stream +of communications that includes all of the existing parties, plus the new party, +to continue the process.

      +

      If you use the same blockchain to back both groups, then you can safely order business +process steps that involve different parties across these overlapping groups of +participants.

      +
      +

      Using a single Ethereum permissioned side-chain for example.

      +
      +

      Alternatively, you can create dedicated distributed ledgers (DLTs) for communication +between these groups of participants. This can allow more logic and data to go +on-chain directly, although you still must consider the fact that this data is +immutable and can never be deleted.

      +
      +

      Using Hyperledger Fabric channels for example.

      +
      +

      On top of either type of ledger, FireFly provides a private Group +construct to facilitate secure off-chain data exchanges, and to efficiently +pin these communications to the blockchain in batches.

      +

      These private data exchanges can also be coordinated with most sophisticated +on-chain transactions, such as token transfers.

      +

      Event Types

      +

      FireFly provides a number of different types of events to your application, +designed to allow you to build your application state machine quickly +and reliably.

      +

      All events in FireFly share a common base structure, regardless of their type. +They are then linked (via a reference) to an object that contains detailed +information.

      +

      The categories of event your application can receive are as follows:

      +
      +

      See the Core Resources/Event page for a full list of event types, +and more details on the data you can expect for each type.

      +
      +

      Blockchain events

      +

      FireFly allows your application to subscribe to any event from a blockchain +smart contract.

      +

      In order for applications connected to the FireFly API to receive blockchain events +from a smart contracts, a ContractListener fist must be created to instruct +FireFly to listen to those events from the blockchain (via the blockchain plugin).

      +

      Once you have configured the blockchain event listener, every event detected +from the blockchain will result in a FireFly event delivered to your application +of type blockchain_event_received.

      +

      Check out the Custom Contracts Tutorial for +a walk-through of how to set up listeners for the events from your smart contracts.

      +

      FireFly automatically establishes listeners for some blockchain events:

      +
        +
      • +

        Events from the FireFly BatchPin contract that is used to pin identities, + off-chain data broadcast and private messaging to the blockchain.

        +
      • +
      • +

        Events from Token contracts, for which a Token Pool + has been configured. These events are detected indirectly via the token connector.

        +
      • +
      +

      Token events

      +

      FireFly provides a Wallet API, that is pluggable to multiple token implementations +without needing to change your app.

      +

      The pluggable API/Event interface allows all kinds of technical implementations +of tokens to be fitted into a common framework.

      +

      The following wallet operations are supported. These are universal to all +token implementations - NFTs and fungible tokens alike:

      +
        +
      • Mint
      • +
      • Burn
      • +
      • Transfer
      • +
      • Approve
      • +
      +

      FireFly processes, indexes and stores the events associated with these actions, +for any Token Pool that has been configured on the FireFly node.

      +

      See Token Transfer and Token Approval +for more information on the individual operations.

      +

      The token connector is responsible for mapping from the raw Blockchain Events, to the +FireFly model for tokens. Reference token connector implementations are provided for +common interface standards implemented by tokens - like ERC-20, ERC-721 and ERC-115.

      +

      A particular token contract might have many additional features that +are unique to that contract, particularly around governance. For these you +would use the Smart Contract features of FireFly to interact with the blockchain +API and Events directly.

      +

      Message events: on-chain / off-chain coordinated

      +

      Event aggregation between data arriving off-chain, and the associated ordered +proof/transaction events being confirmed on-chain, is a complex orchestration task.

      +

      The universal order and additional transaction logic on-chain must be the +source of truth for when and how an event is processed.

      +

      However, that event cannot be processed until the off-chain private/broadcast data +associated with that event is also available and verified against the on-chain hash +of that additional data.

      +

      They might arrive in any order, and no further events can be processed on that business +transaction until the data is available.

      +

      Multiple parties might be emitting events as part of the business transaction, and +the outcome will only be assured to be the same by all parties if they process these +events in the same order.

      +

      Hyperledger FireFly handles this for you. Events related to a message +are not emitted until both the on-chain and off-chain parts (including large binary +attachments) are available+verified in your local FireFly node, and all previous +messages on the same topic have been processed successfully by your application.

      +

      Your application just needs to:

      +
        +
      1. Choose a suitable topic for your messages that determines the ordered stream + it is part of. Such as a business transaction identifier.
      2. +
      3. Make sure the application does not acknowledge a message, until it has finished + processing it.
      4. +
      +
      +

      See Message for more information

      +
      +

      Transaction submission events

      +

      These events are emitted each time a new transaction is initiated via the Firefly API.

      +

      These events are only emitted on the local FireFly node that initiates an activity.

      +

      For more information about FireFly Transactions, and how they relate to blockchain +transactions, see Transaction.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/firefly_interface_format.html b/head/reference/firefly_interface_format.html deleted file mode 100644 index c2433bc6b..000000000 --- a/head/reference/firefly_interface_format.html +++ /dev/null @@ -1,569 +0,0 @@ - - - - - - - - - FireFly Interface Format - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -FireFly Interface Format | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - FireFly Interface Format - - -

      - - -

      FireFly defines a common, blockchain agnostic way to describe smart contracts. This is referred to as a Contract Interface, and it is written in the FireFly Interface (FFI) format. It is a simple JSON document that has a name, a namespace, a version, a list of methods, and a list of events.

      -

      - - - Table of contents - - -

      - - -
        -
      1. Overview
      2. -
      3. Method
      4. -
      5. Event
      6. -
      7. Param
          -
        1. Schema
        2. -
        3. Schema details
        4. -
        -
      8. -
      9. Automated generation of FireFly Interfaces
      10. -
      11. Full Example
      12. -

      -

      - - - Overview - - -

      - - -

      There are four required fields when broadcasting a contract interface in FireFly: a name, a version, a list of methods, and a list of events. A namespace field will also be filled in automatically based on the URL path parameter. Here is an example of the structure of the required fields:

      - -
      {
      -    "name": "example",
      -    "version": "v1.0.0",
      -    "methods": [],
      -    "events": []
      -}
      -
      - -
      -

      NOTE: Contract interfaces are scoped to a namespace. Within a namespace each contract interface must have a unique name and version combination. The same name and version combination can exist in different namespaces simultaneously.

      -
      -

      - - - Method - - -

      - - -

      Let’s look at a what goes inside the methods array now. It is also a JSON object that has a name, a list of params which are the arguments the function will take and a list of returns which are the return values of the function. It also has an optional description which can be helpful in OpenAPI Spec generation. Finally, it has an optional details object which wraps blockchain specific information about this method. This can be used by the blockchain plugin when invoking this function, and it is also used in documentation generation.

      - -
      {
      -    "name": "add",
      -    "description": "Add two numbers together",
      -    "params": [],
      -    "returns": [],
      -    "details": {}
      -}
      -
      -

      - - - Event - - -

      - - -

      What goes into the events array is very similar. It is also a JSON object that has a name and a list of params. The difference is that events don’t have returns. Arguments that are passed to the event when it is emitted are in params. It also has an optional description which can be helpful in OpenAPI Spec generation. Finally, it has an optional details object which wraps blockchain specific information about this event. This can be used by the blockchain plugin when invoking this function, and it is also used in documentation generation.

      - -
      {
      -    "name": "added",
      -    "description": "An event that occurs when numbers have been added", 
      -    "params": [],
      -    "details": {}
      -}
      -
      -

      - - - Param - - -

      - - -

      Both methods, and events have lists of params or returns, and the type of JSON object that goes in each of these arrays is the same. It is simply a JSON object with a name and a schema. There is also an optional details field that is passed to the blockchain plugin for blockchain specific requirements.

      - -
      {
      -    "name": "x",
      -    "schema": {
      -        "type": "integer",
      -        "details": {}
      -    }
      -}
      -
      -

      - - - Schema - - -

      - - -

      The param schema is an important field which tells FireFly the type information about this particular field. This is used in several different places, such as OpenAPI Spec generation, API request validation, and blockchain request preparation.

      - -

      The schema field accepts JSON Schema (version 2020-12) with several additional requirements:

      - -
        -
      • A type field is always mandatory
      • -
      • The list of valid types is: -
          -
        • boolean
        • -
        • integer
        • -
        • string
        • -
        • object
        • -
        • array
        • -
        -
      • -
      • Blockchain plugins can add their own specific requirements to this list of validation rules
      • -
      - -
      -

      NOTE: Floats or decimals are not currently accepted because certain underlying blockchains (e.g. Ethereum) only allow integers

      -
      - -

      The type field here is the JSON input type when making a request to FireFly to invoke or query a smart contract. This type can be different from the actual blockchain type, usually specified in the details field, if there is a compatible type mapping between the two.

      -

      - - - Schema details - - -

      - - -

      -The details field is quite important in some cases. Because the details field is passed to the blockchain plugin, it is used to encapsulate blockchain specific type information about a particular field. Additionally, because each blockchain plugin can add rules to the list of schema requirements above, a blockchain plugin can enforce that certain fields are always present within the details field.

      - -

      For example, the Ethereum plugin always needs to know what Solidity type the field is. It also defines several optional fields. A full Ethereum details field may look like:

      - -
      {
      -    "type": "uint256",
      -    "internalType": "uint256",
      -    "indexed": false
      -}
      -
      -

      - - - Automated generation of FireFly Interfaces - - -

      - - -

      A convenience endpoint exists on the API to facilitate converting from native blockchain interface formats such as an Ethereum ABI to the FireFly Interface format. For details, please see the API documentation for the contract interface generation endpoint.

      - -

      For an example of using this endpoint with a specific Ethereum contract, please see the Tutorial to Work with custom smart contracts.

      -

      - - - Full Example - - -

      - - -

      Putting it all together, here is a full example of the FireFly Interface format with all the fields filled in:

      - -
      {
      -    "namespace": "default",
      -    "name": "SimpleStorage",
      -    "description": "A simple smart contract that stores and retrieves an integer on-chain",
      -    "version": "v1.0.0",
      -    "methods": [
      -        {
      -            "name": "get",
      -            "description": "Retrieve the value of the stored integer",
      -            "params": [],
      -            "returns": [
      -                {
      -                    "name": "output",
      -                    "schema": {
      -                        "type": "integer",
      -                        "details": {
      -                            "type": "uint256",
      -                            "internalType": "uint256"
      -                        }
      -                    }
      -                }
      -            ],
      -            "details": {
      -                "stateMutability": "viewable"
      -            }
      -        },
      -        {
      -            "name": "set",
      -            "description": "Set the stored value on-chain",
      -            "params": [
      -                {
      -                    "name": "newValue",
      -                    "schema": {
      -                        "type": "integer",
      -                        "details": {
      -                            "type": "uint256",
      -                            "internalType": "uint256"
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": [],
      -            "details": {
      -                "stateMutability": "payable"
      -            }
      -        }
      -    ],
      -    "events": [
      -        {
      -            "name": "Changed",
      -            "description": "An event that is fired when the stored integer value changes",
      -            "params": [
      -                {
      -                    "name": "from",
      -                    "schema": {
      -                        "type": "string",
      -                        "details": {
      -                            "type": "address",
      -                            "internalType": "address",
      -                            "indexed": true
      -                        }
      -                    }
      -                },
      -                {
      -                    "name": "value",
      -                    "schema": {
      -                        "type": "integer",
      -                        "details": {
      -                            "type": "uint256",
      -                            "internalType": "uint256"
      -                        }
      -                    }
      -                }
      -            ],
      -            "details": {}
      -        }
      -    ]
      -}
      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/firefly_interface_format/index.html b/head/reference/firefly_interface_format/index.html new file mode 100644 index 000000000..e01749103 --- /dev/null +++ b/head/reference/firefly_interface_format/index.html @@ -0,0 +1,3716 @@ + + + + + + + + + + + + + + + + + + + + + + + FireFly Interface Format - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      FireFly Interface Format

      +

      FireFly defines a common, blockchain agnostic way to describe smart contracts. This is referred to as a Contract Interface, and it is written in the FireFly Interface (FFI) format. It is a simple JSON document that has a name, a namespace, a version, a list of methods, and a list of events.

      +

      Overview

      +

      There are four required fields when broadcasting a contract interface in FireFly: a name, a version, a list of methods, and a list of events. A namespace field will also be filled in automatically based on the URL path parameter. Here is an example of the structure of the required fields:

      +
      {
      +  "name": "example",
      +  "version": "v1.0.0",
      +  "methods": [],
      +  "events": []
      +}
      +
      +
      +

      NOTE: Contract interfaces are scoped to a namespace. Within a namespace each contract interface must have a unique name and version combination. The same name and version combination can exist in different namespaces simultaneously.

      +
      +

      Method

      +

      Let's look at a what goes inside the methods array now. It is also a JSON object that has a name, a list of params which are the arguments the function will take and a list of returns which are the return values of the function. It also has an optional description which can be helpful in OpenAPI Spec generation. Finally, it has an optional details object which wraps blockchain specific information about this method. This can be used by the blockchain plugin when invoking this function, and it is also used in documentation generation.

      +
      {
      +  "name": "add",
      +  "description": "Add two numbers together",
      +  "params": [],
      +  "returns": [],
      +  "details": {}
      +}
      +
      +

      Event

      +

      What goes into the events array is very similar. It is also a JSON object that has a name and a list of params. The difference is that events don't have returns. Arguments that are passed to the event when it is emitted are in params. It also has an optional description which can be helpful in OpenAPI Spec generation. Finally, it has an optional details object which wraps blockchain specific information about this event. This can be used by the blockchain plugin when invoking this function, and it is also used in documentation generation.

      +
      {
      +  "name": "added",
      +  "description": "An event that occurs when numbers have been added",
      +  "params": [],
      +  "details": {}
      +}
      +
      +

      Param

      +

      Both methods, and events have lists of params or returns, and the type of JSON object that goes in each of these arrays is the same. It is simply a JSON object with a name and a schema. There is also an optional details field that is passed to the blockchain plugin for blockchain specific requirements.

      +
      {
      +  "name": "x",
      +  "schema": {
      +    "type": "integer",
      +    "details": {}
      +  }
      +}
      +
      +

      Schema

      +

      The param schema is an important field which tells FireFly the type information about this particular field. This is used in several different places, such as OpenAPI Spec generation, API request validation, and blockchain request preparation.

      +

      The schema field accepts JSON Schema (version 2020-12) with several additional requirements:

      +
        +
      • A type field is always mandatory
      • +
      • The list of valid types is:
      • +
      • boolean
      • +
      • integer
      • +
      • string
      • +
      • object
      • +
      • array
      • +
      • Blockchain plugins can add their own specific requirements to this list of validation rules
      • +
      +
      +

      NOTE: Floats or decimals are not currently accepted because certain underlying blockchains (e.g. Ethereum) only allow integers

      +
      +

      The type field here is the JSON input type when making a request to FireFly to invoke or query a smart contract. This type can be different from the actual blockchain type, usually specified in the details field, if there is a compatible type mapping between the two.

      +

      Schema details

      +

      +The details field is quite important in some cases. Because the details field is passed to the blockchain plugin, it is used to encapsulate blockchain specific type information about a particular field. Additionally, because each blockchain plugin can add rules to the list of schema requirements above, a blockchain plugin can enforce that certain fields are always present within the details field.

      +

      For example, the Ethereum plugin always needs to know what Solidity type the field is. It also defines several optional fields. A full Ethereum details field may look like:

      +
      {
      +  "type": "uint256",
      +  "internalType": "uint256",
      +  "indexed": false
      +}
      +
      +

      Automated generation of FireFly Interfaces

      +

      A convenience endpoint exists on the API to facilitate converting from native blockchain interface formats such as an Ethereum ABI to the FireFly Interface format. For details, please see the API documentation for the contract interface generation endpoint.

      +

      For an example of using this endpoint with a specific Ethereum contract, please see the Tutorial to Work with custom smart contracts.

      +

      Full Example

      +

      Putting it all together, here is a full example of the FireFly Interface format with all the fields filled in:

      +
      {
      +  "namespace": "default",
      +  "name": "SimpleStorage",
      +  "description": "A simple smart contract that stores and retrieves an integer on-chain",
      +  "version": "v1.0.0",
      +  "methods": [
      +    {
      +      "name": "get",
      +      "description": "Retrieve the value of the stored integer",
      +      "params": [],
      +      "returns": [
      +        {
      +          "name": "output",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ],
      +      "details": {
      +        "stateMutability": "viewable"
      +      }
      +    },
      +    {
      +      "name": "set",
      +      "description": "Set the stored value on-chain",
      +      "params": [
      +        {
      +          "name": "newValue",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ],
      +      "returns": [],
      +      "details": {
      +        "stateMutability": "payable"
      +      }
      +    }
      +  ],
      +  "events": [
      +    {
      +      "name": "Changed",
      +      "description": "An event that is fired when the stored integer value changes",
      +      "params": [
      +        {
      +          "name": "from",
      +          "schema": {
      +            "type": "string",
      +            "details": {
      +              "type": "address",
      +              "internalType": "address",
      +              "indexed": true
      +            }
      +          }
      +        },
      +        {
      +          "name": "value",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ],
      +      "details": {}
      +    }
      +  ]
      +}
      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/idempotency.html b/head/reference/idempotency.html deleted file mode 100644 index b1a43e8ee..000000000 --- a/head/reference/idempotency.html +++ /dev/null @@ -1,443 +0,0 @@ - - - - - - - - - Idempotency Keys - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Idempotency Keys | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Idempotency Keys - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Idempotency
      2. -
      3. FireFly Idempotency Keys
      4. -
      5. Operation Idempotency
      6. -
      7. Short term retry
      8. -
      9. Administrative operation retry
      10. -

      -

      - - - Idempotency - - -

      - - -

      The transaction submission REST APIs of Hyperledger FireFly are idempotent.

      - -

      Idempotent APIs allow an application to safely submit a request multiple times, and for the transaction -to only be accepted and executed once.

      - -

      This is the well accepted approach for REST APIs over HTTP/HTTPS to achieve resilience, as HTTP requests -can fail in indeterminate ways. For example in a request or gateway timeout situation, the requester is -unable to know whether the request will or will not eventually be processed.

      - -

      There are various types of FireFly transaction that can be submitted. -These include direct submission of blockchain transactions to a smart contract, as well as more complex -transactions including coordination of multiple operations -across on-chain and off-chain connectors.

      - -

      In order for Hyperledger FireFly to deduplicate transactions, and make them idempotent, the application -must supply an idempotencyKey on each API request.

      -

      - - - FireFly Idempotency Keys - - -

      - - -

      Idempotency Keys Architecture

      - -

      The caller of the API specifies its own unique identifier (an arbitrary string up to 256 characters) -that uniquely identifies the request, in the idempotencyKey field of the API.

      - -

      So if there is a network connectivity failure, or an abrupt termination of either runtime, the application -can safely attempt to resubmit the REST API call and be returned a 409 Conflict HTTP code.

      - -

      Examples of how an app might construct such an idempotencyKey include:

      -
        -
      • Unique business identifiers from the request that comes into its API up-stream - passing idempotency along the chain
      • -
      • A hash of the business unique data that relates to the request - maybe all the input data of a blockchain transaction for example, if that payload is guaranteed to be unique. -
        -

        Be careful of cases where the business data might not be unique - like a transfer of 10 coins from A to B.

        - -

        Such a transfer could happen multiple times, and each would be a separate business transaction.

        - -

        Where as transfer with invoice number abcd1234 of 10 coins from A to B would be assured to be unique.

        -
        -
      • -
      • A unique identifier of a business transaction generated within the application and stored in its database before submission -
        -

        This moves the challenge up one layer into your application. How does that unique ID get generated? Is that -itself idempotent?

        -
        -
      • -
      -

      - - - Operation Idempotency - - -

      - - -

      FireFly provides an idempotent interface downstream to connectors.

      - -

      Each operation within a FireFly transaction -receives a unique ID within the overall transaction that is used as an idempotency key when invoking that connector.

      - -

      Well formed connectors honor this idempotency key internally, ensuring that the end-to-end transaction submission is -idempotent.

      - -

      Key examples of such connectors are EVMConnect and others built on the -Blockchain Connector Toolkit.

      - -

      When an operation is retried automatically, the same idempotency key is re-used to avoid resubmission.

      -

      - - - Short term retry - - -

      - - -

      The FireFly core uses standard HTTP request code to communicate with all connector APIs.

      - -

      This code include exponential backoff retry, that can be enabled with a simple boolean in the plugin -of FireFly core. The minimum retry, maximum retry, and backoff factor can be tuned individually -as well on each connector.

      - -

      See Configuration Reference for more information.

      -

      - - - Administrative operation retry - - -

      - - -

      The operations/{operationId}/retry API can be called administratively to resubmit a -transaction that has reached Failed status, or otherwise been determined by an operator/monitor to be -unrecoverable within the connector.

      - -

      In this case, the previous operation is marked Retried, a new operation ID is allocated, and -the operation is re-submitted to the connector with this new ID.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/idempotency/index.html b/head/reference/idempotency/index.html new file mode 100644 index 000000000..8a25b787c --- /dev/null +++ b/head/reference/idempotency/index.html @@ -0,0 +1,3552 @@ + + + + + + + + + + + + + + + + + + + + + + + Idempotency Keys - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Idempotency Keys

      +

      Idempotency

      +

      The transaction submission REST APIs of Hyperledger FireFly are idempotent.

      +

      Idempotent APIs allow an application to safely submit a request multiple times, and for the transaction +to only be accepted and executed once.

      +

      This is the well accepted approach for REST APIs over HTTP/HTTPS to achieve resilience, as HTTP requests +can fail in indeterminate ways. For example in a request or gateway timeout situation, the requester is +unable to know whether the request will or will not eventually be processed.

      +

      There are various types of FireFly transaction that can be submitted. +These include direct submission of blockchain transactions to a smart contract, as well as more complex +transactions including coordination of multiple operations +across on-chain and off-chain connectors.

      +

      In order for Hyperledger FireFly to deduplicate transactions, and make them idempotent, the application +must supply an idempotencyKey on each API request.

      +

      FireFly Idempotency Keys

      +

      Idempotency Keys Architecture

      +

      The caller of the API specifies its own unique identifier (an arbitrary string up to 256 characters) +that uniquely identifies the request, in the idempotencyKey field of the API.

      +

      So if there is a network connectivity failure, or an abrupt termination of either runtime, the application +can safely attempt to resubmit the REST API call and be returned a 409 Conflict HTTP code.

      +

      Examples of how an app might construct such an idempotencyKey include:

      +
        +
      • Unique business identifiers from the request that comes into its API up-stream - passing idempotency along the chain
      • +
      • A hash of the business unique data that relates to the request - maybe all the input data of a blockchain transaction for example, if that payload is guaranteed to be unique.
        +

        Be careful of cases where the business data might not be unique - like a transfer of 10 coins from A to B.

        +

        Such a transfer could happen multiple times, and each would be a separate business transaction.

        +

        Where as transfer with invoice number abcd1234 of 10 coins from A to B would be assured to be unique.

        +
        +
      • +
      • A unique identifier of a business transaction generated within the application and stored in its database before submission
        +

        This moves the challenge up one layer into your application. How does that unique ID get generated? Is that +itself idempotent?

        +
        +
      • +
      +

      Operation Idempotency

      +

      FireFly provides an idempotent interface downstream to connectors.

      +

      Each operation within a FireFly transaction +receives a unique ID within the overall transaction that is used as an idempotency key when invoking that connector.

      +

      Well formed connectors honor this idempotency key internally, ensuring that the end-to-end transaction submission is +idempotent.

      +

      Key examples of such connectors are EVMConnect and others built on the +Blockchain Connector Toolkit.

      +

      When an operation is retried automatically, the same idempotency key is re-used to avoid resubmission.

      +

      Short term retry

      +

      The FireFly core uses standard HTTP request code to communicate with all connector APIs.

      +

      This code include exponential backoff retry, that can be enabled with a simple boolean in the plugin +of FireFly core. The minimum retry, maximum retry, and backoff factor can be tuned individually +as well on each connector.

      +

      See Configuration Reference for more information.

      +

      Administrative operation retry

      +

      The operations/{operationId}/retry API can be called administratively to resubmit a +transaction that has reached Failed status, or otherwise been determined by an operator/monitor to be +unrecoverable within the connector.

      +

      In this case, the previous operation is marked Retried, a new operation ID is allocated, and +the operation is re-submitted to the connector with this new ID.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/identities.html b/head/reference/identities.html deleted file mode 100644 index e232bacd4..000000000 --- a/head/reference/identities.html +++ /dev/null @@ -1,508 +0,0 @@ - - - - - - - - - Identities - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Identities | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Identities - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Overview
      2. -
      3. Types of Identities
          -
        1. org
        2. -
        3. node
        4. -
        5. custom
        6. -
        -
      4. -
      5. Identity Claims
      6. -
      7. Messaging
          -
        1. Sender
        2. -
        3. Recipients
        4. -
        5. Verification
        6. -
        -
      8. -

      -

      - - - Overview - - -

      - - -

      Identities are a critical part of using FireFly in a multi-party system. Every party that joins a multi-party system -must begin by claiming an on- and off-chain identity, which is described with a unique DID. Each type of -identity is also associated with an on- or off-chain verifier, which can be used in some way to check the authorship of a piece -of data. Together, these concepts form the backbone of the trust model for exchanging multi-party data.

      -

      - - - Types of Identities - - -

      - - -

      There are three types of identities:

      -

      - - - org - - -

      - - -

      Organizations are the primary identity type in FireFly. They represent a logical on-chain signing identity, and the -attached verifier is therefore a blockchain key (with the exact format depending on the blockchain being used). Every party -in a multi-party system must claim a root organization identity as the first step to joining the network.

      - -

      The root organization name and key must be defined in the FireFly config (once for every multi-party system). -It can be claimed with a POST to /network/organizations/self.

      - -

      Organizations may have child identities of any type.

      -

      - - - node - - -

      - - -

      Nodes represent a logical off-chain identity - and specifically, they are tied to an instance of a data exchange connector. -The format of the attached verifier depends on the data exchange plugin being used, but it will be mapped to some -validation provided by that plugin (ie the name of an X.509 certificate or similar). Every party in a multi-party system must -claim a node identity when joining the network, which must be a child of one of its organization identities (but it is possible -for many nodes to share a parent organization).

      - -

      The node name must be defined in the FireFly config (once for every multi-party system). It can be -claimed with a POST to /network/nodes/self.

      - -

      Nodes must be a child of an organization, and cannot have any child identities of their own.

      - -

      Note that “nodes” as an identity concept are distinct from FireFly supernodes, from underlying blockchain nodes, and from -anywhere else the term “node” happens to be used.

      -

      - - - custom - - -

      - - -

      Custom identities are similar to organizations, but are provided for applications to define their own more granular notions of -identity. They are associated with an on-chain verifier in the same way as organizations.

      - -

      They can only have child identities which are also of type “custom”.

      -

      - - - Identity Claims - - -

      - - -

      Before an identity can be used within a multi-party system, it must be claimed. The identity claim is a special type of broadcast -message sent by FireFly to establish an identity uniquely among the parties in the multi-party system. As with other broadcasts, -this entails an on-chain transaction which contains a public reference to an off-chain piece of data (such as an IPFS reference) -describing the details of the identity claim.

      - -

      The claim data consists of information on the identity being claimed - such as the type, the DID, and the parent (if applicable). -The DID must be unique and unclaimed. -The verifier will be inferred from the message - for on-chain identities (org and custom), it is the blockchain key that was used -to sign the on-chain portion of the message, while for off-chain identities (nodes), is is an identifier queried from data exchange.

      - -

      For on-chain identities with a parent, two messages are actually required - the claim message signed with the new identity’s -blockchain key, as well as a separate verification message signed with the parent identity’s blockchain key. Both messages must be -received before the identity is confirmed.

      -

      - - - Messaging - - -

      - - -

      In the context of a multi-party system, FireFly provides capabilities for sending off-chain messages that are pinned to -an on-chain proof. The sender of every message must therefore have an on-chain and off-chain identity. For private messages, -every recipient must also have an on-chain and off-chain identity.

      -

      - - - Sender - - -

      - - -

      When sending a message, the on-chain identity of the sender is controlled by the author and key fields.

      -
        -
      • If both are blank, the root organization is assumed.
      • -
      • If author alone is specified, it should be the DID of an org or custom identity. The associated -verifier will be looked up to use as the key.
      • -
      • If key alone is specified, it must match the registered blockchain verifier for an org or custom identity that was previously claimed. -A reverse lookup will be used to populate the DID for the author.
      • -
      • If author and key are both specified, they will be used as-is (can be used to send private messages with an unregistered blockchain key).
      • -
      - -

      The resolved key will be used to sign the blockchain transaction, which establishes the sender’s on-chain identity.

      - -

      The sender’s off-chain identity is always controlled by the node.name from the config along with the data exchange plugin.

      -

      - - - Recipients - - -

      - - -

      When specifying private message recipients, each one has an identity and a node.

      -
        -
      • If identity alone is specified, it should be the DID of an org or custom identity. The first node owned by that identity or one of its -ancestors will be automatically selected.
      • -
      • If both identity and node are specified, they will be used as-is. The node should be a child of the given identity or one of its -ancestors.
      • -
      - -

      The node in this case will control how the off-chain portion of the message is routed via data exchange.

      -

      - - - Verification - - -

      - - -

      When a message is received, FireFly verifies the following:

      -
        -
      • The sender’s author and key are specified in the message. The author must be a known org or custom identity. The key must match the -blockchain key that was used to sign the on-chain portion of the message. For broadcast messages, the key must match the registered -verifier for the author.
      • -
      • For private messages, the sending node (as reported by data exchange) must be a known node identity which is a child of the message’s -author identity or one of its ancestors. The combination of the author identity and the node must also be found in the message group.
      • -
      - -

      In addition, the data exchange plugin is responsible for verifying the sending and receiving identities for the off-chain -data (such as validating the relevant certificates).

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/identities/index.html b/head/reference/identities/index.html new file mode 100644 index 000000000..daa85cb84 --- /dev/null +++ b/head/reference/identities/index.html @@ -0,0 +1,3688 @@ + + + + + + + + + + + + + + + + + + + + + + + Identities - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Identities

      +

      Overview

      +

      Identities are a critical part of using FireFly in a multi-party system. Every party that joins a multi-party system +must begin by claiming an on- and off-chain identity, which is described with a unique DID. Each type of +identity is also associated with an on- or off-chain verifier, which can be used in some way to check the authorship of a piece +of data. Together, these concepts form the backbone of the trust model for exchanging multi-party data.

      +

      Types of Identities

      +

      There are three types of identities:

      +

      org

      +

      Organizations are the primary identity type in FireFly. They represent a logical on-chain signing identity, and the +attached verifier is therefore a blockchain key (with the exact format depending on the blockchain being used). Every party +in a multi-party system must claim a root organization identity as the first step to joining the network.

      +

      The root organization name and key must be defined in the FireFly config (once for every multi-party system). +It can be claimed with a POST to /network/organizations/self.

      +

      Organizations may have child identities of any type.

      +

      node

      +

      Nodes represent a logical off-chain identity - and specifically, they are tied to an instance of a data exchange connector. +The format of the attached verifier depends on the data exchange plugin being used, but it will be mapped to some +validation provided by that plugin (ie the name of an X.509 certificate or similar). Every party in a multi-party system must +claim a node identity when joining the network, which must be a child of one of its organization identities (but it is possible +for many nodes to share a parent organization).

      +

      The node name must be defined in the FireFly config (once for every multi-party system). It can be +claimed with a POST to /network/nodes/self.

      +

      Nodes must be a child of an organization, and cannot have any child identities of their own.

      +

      Note that "nodes" as an identity concept are distinct from FireFly supernodes, from underlying blockchain nodes, and from +anywhere else the term "node" happens to be used.

      +

      custom

      +

      Custom identities are similar to organizations, but are provided for applications to define their own more granular notions of +identity. They are associated with an on-chain verifier in the same way as organizations.

      +

      They can only have child identities which are also of type "custom".

      +

      Identity Claims

      +

      Before an identity can be used within a multi-party system, it must be claimed. The identity claim is a special type of broadcast +message sent by FireFly to establish an identity uniquely among the parties in the multi-party system. As with other broadcasts, +this entails an on-chain transaction which contains a public reference to an off-chain piece of data (such as an IPFS reference) +describing the details of the identity claim.

      +

      The claim data consists of information on the identity being claimed - such as the type, the DID, and the parent (if applicable). +The DID must be unique and unclaimed. +The verifier will be inferred from the message - for on-chain identities (org and custom), it is the blockchain key that was used +to sign the on-chain portion of the message, while for off-chain identities (nodes), is is an identifier queried from data exchange.

      +

      For on-chain identities with a parent, two messages are actually required - the claim message signed with the new identity's +blockchain key, as well as a separate verification message signed with the parent identity's blockchain key. Both messages must be +received before the identity is confirmed.

      +

      Messaging

      +

      In the context of a multi-party system, FireFly provides capabilities for sending off-chain messages that are pinned to +an on-chain proof. The sender of every message must therefore have an on-chain and off-chain identity. For private messages, +every recipient must also have an on-chain and off-chain identity.

      +

      Sender

      +

      When sending a message, the on-chain identity of the sender is controlled by the author and key fields.

      +
        +
      • If both are blank, the root organization is assumed.
      • +
      • If author alone is specified, it should be the DID of an org or custom identity. The associated + verifier will be looked up to use as the key.
      • +
      • If key alone is specified, it must match the registered blockchain verifier for an org or custom identity that was previously claimed. + A reverse lookup will be used to populate the DID for the author.
      • +
      • If author and key are both specified, they will be used as-is (can be used to send private messages with an unregistered blockchain key).
      • +
      +

      The resolved key will be used to sign the blockchain transaction, which establishes the sender's on-chain identity.

      +

      The sender's off-chain identity is always controlled by the node.name from the config along with the data exchange plugin.

      +

      Recipients

      +

      When specifying private message recipients, each one has an identity and a node.

      +
        +
      • If identity alone is specified, it should be the DID of an org or custom identity. The first node owned by that identity or one of its + ancestors will be automatically selected.
      • +
      • If both identity and node are specified, they will be used as-is. The node should be a child of the given identity or one of its + ancestors.
      • +
      +

      The node in this case will control how the off-chain portion of the message is routed via data exchange.

      +

      Verification

      +

      When a message is received, FireFly verifies the following:

      +
        +
      • The sender's author and key are specified in the message. The author must be a known org or custom identity. The key must match the + blockchain key that was used to sign the on-chain portion of the message. For broadcast messages, the key must match the registered + verifier for the author.
      • +
      • For private messages, the sending node (as reported by data exchange) must be a known node identity which is a child of the message's + author identity or one of its ancestors. The combination of the author identity and the node must also be found in the message group.
      • +
      +

      In addition, the data exchange plugin is responsible for verifying the sending and receiving identities for the off-chain +data (such as validating the relevant certificates).

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/index.html b/head/reference/index.html deleted file mode 100644 index 8ce6f6161..000000000 --- a/head/reference/index.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - Reference - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.reference | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - -
      - -

      - - - Reference - - -

      -
      - -

      This section contains detailed reference information for developers using FireFly.

      - - - - -
      -

      Table of contents

      - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/microservices/fftokens.html b/head/reference/microservices/fftokens.html deleted file mode 100644 index e5785fd8b..000000000 --- a/head/reference/microservices/fftokens.html +++ /dev/null @@ -1,1499 +0,0 @@ - - - - - - - - - fftokens - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -fftokens | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - fftokens - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. fftokens
          -
        1. Overview
        2. -
        3. HTTP APIs
            -
          1. POST /createpool
          2. -
          3. POST /activatepool
          4. -
          5. POST /deactivatepool
          6. -
          7. POST /checkinterface
          8. -
          9. POST /mint
          10. -
          11. POST /burn
          12. -
          13. POST /transfer
          14. -
          15. POST /approval
          16. -
          -
        4. -
        5. Websocket Events
            -
          1. receipt
          2. -
          3. token-pool
          4. -
          5. token-mint
          6. -
          7. token-burn
          8. -
          9. token-transfer
          10. -
          11. token-approval
          12. -
          -
        6. -
        7. Response Types
            -
          1. Async Request
          2. -
          3. Receipt
          4. -
          5. Token Pool
          6. -
          7. Token Transfer
          8. -
          9. Token Approval
          10. -
          -
        8. -
        -
      2. -

      -

      - - - Overview - - -

      - - -

      fftokens is a protocol that can be implemented by token connector runtimes in order to be usable by the fftokens plugin in FireFly.

      - -

      The connector runtime must expose an HTTP and websocket server, along with a minimum set of HTTP APIs and websocket events. Each connector will be strongly coupled to a specific ledger technology and token standard(s), but no assumptions are made in the fftokens spec about what these technologies must be, as long as they can satisfy the basic requirements laid out here.

      - -

      Note that this is an internal protocol in the FireFly ecosystem - application developers working against FireFly should never need to care about or directly -interact with a token connector runtime. The audience for this document is only developers interested in creating new token connectors (or editing/forking -existing ones).

      - -

      Two implementations of this specification have been created to date (both based on common Ethereum token standards) - firefly-tokens-erc1155 and firefly-tokens-erc20-erc721.

      -

      - - - HTTP APIs - - -

      - - -

      This is the minimum set of APIs that must be implemented by a conforming token connector. A connector may choose to expose other APIs for its own purposes. All requests and responses to the APIs below are encoded as JSON. The APIs are currently understood to live under a /api/v1 prefix.

      -

      - - - POST /createpool - - -

      - - -

      Create a new token pool. The exact meaning of this is flexible - it may mean invoking a contract or contract factory to actually define a new set of tokens via a blockchain transaction, or it may mean indexing a set of tokens that already exists (depending on the options a connector accepts in config).

      - -

      In a multiparty network, this operation will only be performed by one of the parties, and FireFly will broadcast the result to the others.

      - -

      FireFly will store a “pending” token pool after a successful creation, but will replace it with a “confirmed” token pool after a successful activation (see below).

      - -

      Request

      - -
      {
      -  "type": "fungible",
      -  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "name": "FFCoin",
      -  "symbol": "FFC",
      -  "data": "pool-metadata",
      -  "requestId": "1",
      -  "config": {}
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      typestring enumThe type of pool to create. Currently supported types are “fungible” and “nonfungible”. It is recommended (but not required) that token connectors support both. Unrecognized/unsupported types should be rejected with HTTP 400.
      signerstringThe signing identity to be used for the blockchain transaction, in a format understood by this connector.
      namestring(OPTIONAL) If supported by this token contract, this is a requested name for the token pool. May be ignored at the connector’s discretion.
      symbolstring(OPTIONAL) If supported by this token contract, this is a requested symbol for the token pool. May be ignored at the connector’s discretion.
      requestIdstring(OPTIONAL) A unique identifier for this request. Will be included in the “receipt” websocket event to match receipts to requests.
      datastring(OPTIONAL) A data string that should be returned in the connector’s response to this creation request.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the token pool is created.
      - -

      Response

      - -

      HTTP 200: pool creation was successful, and the pool details are returned in the response.

      - -

      See Response Types: Token Pool

      - -

      HTTP 202: request was accepted, but pool will be created asynchronously, with “receipt” and “token-pool” events sent later on the websocket.

      - -

      See Response Types: Async Request

      -

      - - - POST /activatepool - - -

      - - -

      Activate a token pool to begin receiving events. Generally this means the connector will create blockchain event listeners for transfer and approval events related to the set of tokens encompassed by this token pool.

      - -

      In a multiparty network, this step will be performed by every member after a successful token pool broadcast. It therefore also serves the purpose of validating the broadcast info - if the connector does not find a valid pool given the poolLocator and config information passed in to this call, the pool should not get confirmed.

      - -

      Request

      - -
      {
      -  "poolLocator": "id=F1",
      -  "poolData": "extra-pool-info",
      -  "config": {}
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      poolDatastring(OPTIONAL) A data string that should be permanently attached to this pool and returned in all events.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. This should be the same config object that was passed when the pool was created.
      - -

      Response

      - -

      HTTP 200: pool activation was successful, and the pool details are returned in the response.

      - -

      See Response Types: Token Pool

      - -

      HTTP 202: request was accepted, but pool will be activated asynchronously, with “receipt” and “token-pool” events sent later on the websocket.

      - -

      See Response Types: Async Request

      - -

      HTTP 204: activation was successful - no separate receipt will be delivered, but “token-pool” event will be sent later on the websocket.

      - -

      No body

      -

      - - - POST /deactivatepool - - -

      - - -

      Deactivate a token pool to stop receiving events and delete all blockchain listeners related to that pool.

      - -

      Request

      - -
      {
      -  "poolLocator": "id=F1",
      -  "poolData": "extra-pool-info",
      -  "config": {}
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      poolDatastring(OPTIONAL) The data string that was attached to this pool at activation.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired.
      - -

      Response

      - -

      HTTP 204: deactivation was successful, and one or more listeners were deleted.

      - -

      No body

      - -

      HTTP 404: no blockchain listeners were found for the given pool information.

      - -

      No body

      -

      - - - POST /checkinterface - - -

      - - -

      This is an optional (but recommended) API for token connectors. If implemented, support will be indicated by -the presence of the interfaceFormat field in all Token Pool responses.

      - -

      In the case that a connector supports multiple variants of a given token standard (such as many different ways to -structure “mint” or “burn” calls on an underlying smart contract), this API allows the connector to be provided with a full -description of the interface methods in use for a given token pool, so the connector can determine which methods it knows -how to invoke.

      - -

      Request

      - -
      {
      -  "poolLocator": "id=F1",
      -  "format": "abi",
      -  "methods": [
      -    {
      -      "name": "burn",
      -      "type": "function",
      -      "inputs": [
      -        {
      -          "internalType": "uint256",
      -          "name": "tokenId",
      -          "type": "uint256"
      -        }
      -      ],
      -      "outputs": [],
      -      "stateMutability": "nonpayable"
      -    },
      -    ...
      -  ]
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      formatstring enumThe format of the data in this payload. Should match the interfaceFormat as supplied by the output of the pool creation.
      methodsobject arrayA list of all the methods available on the interface underpinning this token pool, encoded in the format specified by format.
      - -

      Response

      - -

      HTTP 200: interface was successfully parsed, and methods of interest are returned in the body.

      - -

      The response body includes a section for each type of token operation (burn/mint/transfer/approval), which -specifies a subset of the input body useful to that operation. The caller (FireFly) can then store and -provide the proper subset of the interface for every future token operation (via the interface parameter).

      - -
      {
      -  "burn": {
      -    "format": "abi",
      -    "methods": [
      -      {
      -        "name": "burn",
      -        "type": "function",
      -        "inputs": [
      -          {
      -            "internalType": "uint256",
      -            "name": "tokenId",
      -            "type": "uint256"
      -          }
      -        ],
      -        "outputs": [],
      -        "stateMutability": "nonpayable"
      -      }
      -    ]
      -  },
      -  "mint": { ... },
      -  "transfer": { ... },
      -  "approval": { ... }
      -}
      -
      -

      - - - POST /mint - - -

      - - -

      Mint new tokens.

      - -

      Request

      - -
      {
      -  "poolLocator": "id=F1",
      -  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "to": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "amount": "10",
      -  "tokenIndex": "1",
      -  "uri": "ipfs://000000",
      -  "requestId": "1",
      -  "data": "transfer-metadata",
      -  "config": {},
      -  "interface": {}
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      signerstringThe signing identity to be used for the blockchain transaction, in a format understood by this connector.
      tostringThe identity to receive the minted tokens, in a format understood by this connector.
      amountnumber stringThe amount of tokens to mint.
      tokenIndexstring(OPTIONAL) For non-fungible tokens that require choosing an index at mint time, the index of the specific token to mint.
      uristring(OPTIONAL) For non-fungible tokens that support choosing a URI at mint time, the URI to be attached to the token.
      requestIdstring(OPTIONAL) A unique identifier for this request. Will be included in the “receipt” websocket event to match receipts to requests.
      datastring(OPTIONAL) A data string that should be returned in the connector’s response to this mint request.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the mint is carried out.
      interfaceobject(OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.
      - -

      Response

      - -

      HTTP 202: request was accepted, but mint will occur asynchronously, with “receipt” and “token-mint” events sent later on the websocket.

      - -

      See Response Types: Async Request

      -

      - - - POST /burn - - -

      - - -

      Burn tokens.

      - -

      Request

      - -
      {
      -  "poolLocator": "id=F1",
      -  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "from": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "amount": "10",
      -  "tokenIndex": "1",
      -  "requestId": "1",
      -  "data": "transfer-metadata",
      -  "config": {},
      -  "interface": {}
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      signerstringThe signing identity to be used for the blockchain transaction, in a format understood by this connector.
      fromstringThe identity that currently owns the tokens to be burned, in a format understood by this connector.
      amountnumber stringThe amount of tokens to burn.
      tokenIndexstring(OPTIONAL) For non-fungible tokens, the index of the specific token to burn.
      requestIdstring(OPTIONAL) A unique identifier for this request. Will be included in the “receipt” websocket event to match receipts to requests.
      datastring(OPTIONAL) A data string that should be returned in the connector’s response to this burn request.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the burn is carried out.
      interfaceobject(OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.
      - -

      Response

      - -

      HTTP 202: request was accepted, but burn will occur asynchronously, with “receipt” and “token-burn” events sent later on the websocket.

      - -

      See Response Types: Async Request

      -

      - - - POST /transfer - - -

      - - -

      Transfer tokens from one address to another.

      - -

      Request

      - -
      {
      -  "poolLocator": "id=F1",
      -  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "from": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "to": "0xb107ed9caa1323b7bc36e81995a4658ec2251951",
      -  "amount": "1",
      -  "tokenIndex": "1",
      -  "requestId": "1",
      -  "data": "transfer-metadata",
      -  "config": {},
      -  "interface": {}
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      signerstringThe signing identity to be used for the blockchain transaction, in a format understood by this connector.
      fromstringThe identity to be used for the source of the transfer, in a format understood by this connector.
      tostringThe identity to be used for the destination of the transfer, in a format understood by this connector.
      amountnumber stringThe amount of tokens to transfer.
      tokenIndexstring(OPTIONAL) For non-fungible tokens, the index of the specific token to transfer.
      requestIdstring(OPTIONAL) A unique identifier for this request. Will be included in the “receipt” websocket event to match receipts to requests.
      datastring(OPTIONAL) A data string that should be returned in the connector’s response to this transfer request.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the transfer is carried out.
      interfaceobject(OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.
      - -

      Response

      - -

      HTTP 202: request was accepted, but transfer will occur asynchronously, with “receipt” and “token-transfer” events sent later on the websocket.

      - -

      See Response Types: Async Request

      -

      - - - POST /approval - - -

      - - -

      Approve another identity to manage tokens.

      - -

      Request

      - -
      {
      -  "poolLocator": "id=F1",
      -  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "operator": "0xb107ed9caa1323b7bc36e81995a4658ec2251951",
      -  "approved": true,
      -  "requestId": "1",
      -  "data": "approval-metadata",
      -  "config": {},
      -  "interface": {}
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      signerstringThe signing identity to be used for the blockchain transaction, in a format understood by this connector.
      operatorstringThe identity to be approved (or unapproved) for managing the signer’s tokens.
      approvedbooleanWhether to approve (the default) or unapprove.
      requestIdstring(OPTIONAL) A unique identifier for this request. Will be included in the “receipt” websocket event to match receipts to requests.
      datastring(OPTIONAL) A data string that should be returned in the connector’s response to this approval request.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the approval is carried out.
      interfaceobject(OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.
      - -

      Response

      - -

      HTTP 202: request was accepted, but approval will occur asynchronously, with “receipt” and “token-approval” events sent later on the websocket.

      - -

      See Response Types: Async Request

      -

      - - - Websocket Events - - -

      - - -

      A connector should expose a websocket at /api/ws. All emitted websocket events are a JSON string of the form:

      - -
      {
      -  "id": "event-id",
      -  "event": "event-name",
      -  "data": {}
      -}
      -
      - -

      The event name will match one of the names listed below, and the data payload will correspond to the linked response object.

      - -

      All events except the receipt event must be acknowledged by sending an ack of the form:

      - -
      {
      -  "event": "ack",
      -  "data": {
      -    "id": "event-id"
      -  }
      -}
      -
      - -

      Many messages may also be batched into a single websocket event of the form:

      - -
      {
      -  "id": "event-id",
      -  "event": "batch",
      -  "data": {
      -    "events": [
      -      {
      -        "event": "event-name",
      -        "data": {}
      -      },
      -      ...
      -    ]
      -  }
      -}
      -
      - -

      Batched messages must be acked all at once using the ID of the batch.

      -

      - - - receipt - - -

      - - -

      An asynchronous operation has completed.

      - -

      See Response Types: Receipt

      -

      - - - token-pool - - -

      - - -

      A new token pool has been created or activated.

      - -

      See Response Types: Token Pool

      -

      - - - token-mint - - -

      - - -

      Tokens have been minted.

      - -

      See Response Types: Token Transfer

      -

      - - - token-burn - - -

      - - -

      Tokens have been burned.

      - -

      See Response Types: Token Transfer

      -

      - - - token-transfer - - -

      - - -

      Tokens have been transferred.

      - -

      See Response Types: Token Transfer

      -

      - - - token-approval - - -

      - - -

      Token approvals have changed.

      - -

      See Response Types: Token Approval

      -

      - - - Response Types - - -

      - -

      - - - Async Request - - -

      - - -

      Many operations may happen asynchronously in the background, and will return only a request ID. This may be a request ID that was passed in, or if none was passed, will be randomly assigned. This ID can be used to correlate with a receipt event later received on the websocket.

      - -
      {
      -  "id": "b84ab27d-0d50-42a6-9c26-2fda5eb901ba"
      -}
      -
      -

      - - - Receipt - - -

      - - -
        "headers": {
      -    "type": "",
      -    "requestId": ""
      -  }
      -  "transactionHash": "",
      -  "errorMessage": ""
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      headers.typestring enumThe type of this response. Should be “TransactionSuccess”, “TransactionUpdate”, or “TransactionFailed”.
      headers.requestIdstringThe ID of the request to which this receipt should correlate.
      transactionHashstringThe unique identifier for the blockchain transaction which generated this receipt.
      errorMessagestring(OPTIONAL) If this is a failure, contains details on the reason for the failure.
      -

      - - - Token Pool - - -

      - - -
      {
      -  "type": "fungible",
      -  "data": "pool-metadata",
      -  "poolLocator": "id=F1",
      -  "standard": "ERC20",
      -  "interfaceFormat": "abi",
      -  "symbol": "FFC",
      -  "decimals": 18,
      -  "info": {},
      -  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "blockchain": {}
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      typestring enumThe type of pool that was created.
      datastringA copy of the data that was passed in on the creation request.
      poolLocatorstringA string to identify this pool, generated by the connector. Must be unique for each pool created by this connector. Will be passed back on all operations within this pool, and may be packed with relevant data about the pool for later usage (such as the address and type of the pool).
      standardstring(OPTIONAL) The name of a well-defined token standard to which this pool conforms.
      interfaceFormatstring enum(OPTIONAL) If this connector supports the /checkinterface API, this is the interface format to be used for describing the interface underpinning this pool. Must be “abi” or “ffi”.
      symbolstring(OPTIONAL) The symbol for this token pool, if applicable.
      decimalsnumber(OPTIONAL) The number of decimals used for balances in this token pool, if applicable.
      infoobject(OPTIONAL) Additional information about the pool. Each connector may define the format for this object.
      signerstring(OPTIONAL) If this operation triggered a blockchain transaction, the signing identity used for the transaction.
      blockchainobject(OPTIONAL) If this operation triggered a blockchain transaction, contains details on the blockchain event in FireFly’s standard blockchain event format.
      -

      - - - Token Transfer - - -

      - - -

      Note that mint and burn operations are just specialized versions of transfer. A mint will omit the “from” field, -while a burn will omit the “to” field.

      - -
      {
      -  "id": "1",
      -  "data": "transfer-metadata",
      -  "poolLocator": "id=F1",
      -  "poolData": "extra-pool-info",
      -  "from": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "to": "0xb107ed9caa1323b7bc36e81995a4658ec2251951",
      -  "amount": "1",
      -  "tokenIndex": "1",
      -  "uri": "ipfs://000000",
      -  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "blockchain": {}
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      idstringAn identifier for this transfer. Must be unique for every transfer within this pool.
      datastringA copy of the data that was passed in on the mint/burn/transfer request. May be omitted if the token contract does not support a method of attaching extra data (will result in reduced ability for FireFly to correlate the inputs and outputs of the transaction).
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      poolDatastringThe extra data associated with the pool at pool activation.
      fromstringThe identity used for the source of the transfer.
      tostringThe identity used for the destination of the transfer.
      amountnumber stringThe amount of tokens transferred.
      tokenIndexstring(OPTIONAL) For non-fungible tokens, the index of the specific token transferred.
      uristring(OPTIONAL) For non-fungible tokens, the URI attached to the token.
      signerstring(OPTIONAL) If this operation triggered a blockchain transaction, the signing identity used for the transaction.
      blockchainobject(OPTIONAL) If this operation triggered a blockchain transaction, contains details on the blockchain event in FireFly’s standard blockchain event format.
      -

      - - - Token Approval - - -

      - - -
      {
      -  "id": "1",
      -  "data": "transfer-metadata",
      -  "poolLocator": "id=F1",
      -  "poolData": "extra-pool-info",
      -  "operator": "0xb107ed9caa1323b7bc36e81995a4658ec2251951",
      -  "approved": true,
      -  "subject": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A:0xb107ed9caa1323b7bc36e81995a4658ec2251951",
      -  "info": {},
      -  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      -  "blockchain": {}
      -}
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ParameterTypeDescription
      idstringAn identifier for this approval. Must be unique for every approval within this pool.
      datastringA copy of the data that was passed in on the approval request. May be omitted if the token contract does not support a method of attaching extra data (will result in reduced ability for FireFly to correlate the inputs and outputs of the transaction).
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      poolDatastringThe extra data associated with the pool at pool activation.
      operatorstringThe identity that was approved (or unapproved) for managing tokens.
      approvedbooleanWhether this was an approval or unapproval.
      subjectstringA string identifying the scope of the approval, generated by the connector. Approvals with the same subject are understood replace one another, so that a previously-recorded approval becomes inactive. This string may be a combination of the identities involved, the token index, etc.
      infoobject(OPTIONAL) Additional information about the approval. Each connector may define the format for this object.
      signerstring(OPTIONAL) If this operation triggered a blockchain transaction, the signing identity used for the transaction.
      blockchainobject(OPTIONAL) If this operation triggered a blockchain transaction, contains details on the blockchain event in FireFly’s standard blockchain event format.
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/microservices/fftokens/index.html b/head/reference/microservices/fftokens/index.html new file mode 100644 index 000000000..97559457a --- /dev/null +++ b/head/reference/microservices/fftokens/index.html @@ -0,0 +1,4819 @@ + + + + + + + + + + + + + + + + + + + + + + + fftokens - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      fftokens

      +

      Overview

      +

      fftokens is a protocol that can be implemented by token connector runtimes in order to be usable by the fftokens plugin in FireFly.

      +

      The connector runtime must expose an HTTP and websocket server, along with a minimum set of HTTP APIs and websocket events. Each connector will be strongly coupled to a specific ledger technology and token standard(s), but no assumptions are made in the fftokens spec about what these technologies must be, as long as they can satisfy the basic requirements laid out here.

      +

      Note that this is an internal protocol in the FireFly ecosystem - application developers working against FireFly should never need to care about or directly +interact with a token connector runtime. The audience for this document is only developers interested in creating new token connectors (or editing/forking +existing ones).

      +

      Two implementations of this specification have been created to date (both based on common Ethereum token standards) - firefly-tokens-erc1155 and firefly-tokens-erc20-erc721.

      +

      HTTP APIs

      +

      This is the minimum set of APIs that must be implemented by a conforming token connector. A connector may choose to expose other APIs for its own purposes. All requests and responses to the APIs below are encoded as JSON. The APIs are currently understood to live under a /api/v1 prefix.

      +

      POST /createpool

      +

      Create a new token pool. The exact meaning of this is flexible - it may mean invoking a contract or contract factory to actually define a new set of tokens via a blockchain transaction, or it may mean indexing a set of tokens that already exists (depending on the options a connector accepts in config).

      +

      In a multiparty network, this operation will only be performed by one of the parties, and FireFly will broadcast the result to the others.

      +

      FireFly will store a "pending" token pool after a successful creation, but will replace it with a "confirmed" token pool after a successful activation (see below).

      +

      Request

      +
      {
      +  "type": "fungible",
      +  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "namespace": "default",
      +  "name": "FFCoin",
      +  "symbol": "FFC",
      +  "data": "pool-metadata",
      +  "requestId": "1",
      +  "config": {}
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      typestring enumThe type of pool to create. Currently supported types are "fungible" and "nonfungible". It is recommended (but not required) that token connectors support both. Unrecognized/unsupported types should be rejected with HTTP 400.
      signerstringThe signing identity to be used for the blockchain transaction, in a format understood by this connector.
      namespacestringThe namespace of the token pool
      namestring(OPTIONAL) If supported by this token contract, this is a requested name for the token pool. May be ignored at the connector's discretion.
      symbolstring(OPTIONAL) If supported by this token contract, this is a requested symbol for the token pool. May be ignored at the connector's discretion.
      requestIdstring(OPTIONAL) A unique identifier for this request. Will be included in the "receipt" websocket event to match receipts to requests.
      datastring(OPTIONAL) A data string that should be returned in the connector's response to this creation request.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the token pool is created.
      +

      Response

      +

      HTTP 200: pool creation was successful, and the pool details are returned in the response.

      +

      See Response Types: Token Pool

      +

      HTTP 202: request was accepted, but pool will be created asynchronously, with "receipt" and "token-pool" events sent later on the websocket.

      +

      See Response Types: Async Request

      +

      POST /activatepool

      +

      Activate a token pool to begin receiving events. Generally this means the connector will create blockchain event listeners for transfer and approval events related to the set of tokens encompassed by this token pool.

      +

      In a multiparty network, this step will be performed by every member after a successful token pool broadcast. It therefore also serves the purpose of validating the broadcast info - if the connector does not find a valid pool given the poolLocator and config information passed in to this call, the pool should not get confirmed.

      +

      Request

      +
      {
      +  "namespace": "default",
      +  "poolLocator": "id=F1",
      +  "poolData": "extra-pool-info",
      +  "config": {}
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      namespacestringThe namespace of the token pool
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      poolDatastring(OPTIONAL) A data string that should be permanently attached to this pool and returned in all events.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. This should be the same config object that was passed when the pool was created.
      +

      Response

      +

      HTTP 200: pool activation was successful, and the pool details are returned in the response.

      +

      See Response Types: Token Pool

      +

      HTTP 202: request was accepted, but pool will be activated asynchronously, with "receipt" and "token-pool" events sent later on the websocket.

      +

      See Response Types: Async Request

      +

      HTTP 204: activation was successful - no separate receipt will be delivered, but "token-pool" event will be sent later on the websocket.

      +

      No body

      +

      POST /deactivatepool

      +

      Deactivate a token pool to stop receiving events and delete all blockchain listeners related to that pool.

      +

      Request

      +
      {
      +  "namespace": "default",
      +  "poolLocator": "id=F1",
      +  "poolData": "extra-pool-info",
      +  "config": {}
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      namespacestringThe namespace of the token pool
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      poolDatastring(OPTIONAL) The data string that was attached to this pool at activation.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired.
      +

      Response

      +

      HTTP 204: deactivation was successful, and one or more listeners were deleted.

      +

      No body

      +

      HTTP 404: no blockchain listeners were found for the given pool information.

      +

      No body

      +

      POST /checkinterface

      +

      This is an optional (but recommended) API for token connectors. If implemented, support will be indicated by +the presence of the interfaceFormat field in all Token Pool responses.

      +

      In the case that a connector supports multiple variants of a given token standard (such as many different ways to +structure "mint" or "burn" calls on an underlying smart contract), this API allows the connector to be provided with a full +description of the interface methods in use for a given token pool, so the connector can determine which methods it knows +how to invoke.

      +

      Request

      +
      {
      +  "poolLocator": "id=F1",
      +  "format": "abi",
      +  "methods": [
      +    {
      +      "name": "burn",
      +      "type": "function",
      +      "inputs": [
      +        {
      +          "internalType": "uint256",
      +          "name": "tokenId",
      +          "type": "uint256"
      +        }
      +      ],
      +      "outputs": [],
      +      "stateMutability": "nonpayable"
      +    },
      +    ...
      +  ]
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      formatstring enumThe format of the data in this payload. Should match the interfaceFormat as supplied by the output of the pool creation.
      methodsobject arrayA list of all the methods available on the interface underpinning this token pool, encoded in the format specified by format.
      +

      Response

      +

      HTTP 200: interface was successfully parsed, and methods of interest are returned in the body.

      +

      The response body includes a section for each type of token operation (burn/mint/transfer/approval), which +specifies a subset of the input body useful to that operation. The caller (FireFly) can then store and +provide the proper subset of the interface for every future token operation (via the interface parameter).

      +
      {
      +  "burn": {
      +    "format": "abi",
      +    "methods": [
      +      {
      +        "name": "burn",
      +        "type": "function",
      +        "inputs": [
      +          {
      +            "internalType": "uint256",
      +            "name": "tokenId",
      +            "type": "uint256"
      +          }
      +        ],
      +        "outputs": [],
      +        "stateMutability": "nonpayable"
      +      }
      +    ]
      +  },
      +  "mint": { ... },
      +  "transfer": { ... },
      +  "approval": { ... }
      +}
      +
      +

      POST /mint

      +

      Mint new tokens.

      +

      Request

      +
      {
      +  "namespace": "default",
      +  "poolLocator": "id=F1",
      +  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "to": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "amount": "10",
      +  "tokenIndex": "1",
      +  "uri": "ipfs://000000",
      +  "requestId": "1",
      +  "data": "transfer-metadata",
      +  "config": {},
      +  "interface": {}
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      namespacestringThe namespace of the token pool
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      signerstringThe signing identity to be used for the blockchain transaction, in a format understood by this connector.
      tostringThe identity to receive the minted tokens, in a format understood by this connector.
      amountnumber stringThe amount of tokens to mint.
      tokenIndexstring(OPTIONAL) For non-fungible tokens that require choosing an index at mint time, the index of the specific token to mint.
      uristring(OPTIONAL) For non-fungible tokens that support choosing a URI at mint time, the URI to be attached to the token.
      requestIdstring(OPTIONAL) A unique identifier for this request. Will be included in the "receipt" websocket event to match receipts to requests.
      datastring(OPTIONAL) A data string that should be returned in the connector's response to this mint request.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the mint is carried out.
      interfaceobject(OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.
      +

      Response

      +

      HTTP 202: request was accepted, but mint will occur asynchronously, with "receipt" and "token-mint" events sent later on the websocket.

      +

      See Response Types: Async Request

      +

      POST /burn

      +

      Burn tokens.

      +

      Request

      +
      {
      +  "namespace": "default",
      +  "poolLocator": "id=F1",
      +  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "from": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "amount": "10",
      +  "tokenIndex": "1",
      +  "requestId": "1",
      +  "data": "transfer-metadata",
      +  "config": {},
      +  "interface": {}
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      namespacestringThe namespace of the token pool
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      signerstringThe signing identity to be used for the blockchain transaction, in a format understood by this connector.
      fromstringThe identity that currently owns the tokens to be burned, in a format understood by this connector.
      amountnumber stringThe amount of tokens to burn.
      tokenIndexstring(OPTIONAL) For non-fungible tokens, the index of the specific token to burn.
      requestIdstring(OPTIONAL) A unique identifier for this request. Will be included in the "receipt" websocket event to match receipts to requests.
      datastring(OPTIONAL) A data string that should be returned in the connector's response to this burn request.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the burn is carried out.
      interfaceobject(OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.
      +

      Response

      +

      HTTP 202: request was accepted, but burn will occur asynchronously, with "receipt" and "token-burn" events sent later on the websocket.

      +

      See Response Types: Async Request

      +

      POST /transfer

      +

      Transfer tokens from one address to another.

      +

      Request

      +
      {
      +  "namespace": "default",
      +  "poolLocator": "id=F1",
      +  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "from": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "to": "0xb107ed9caa1323b7bc36e81995a4658ec2251951",
      +  "amount": "1",
      +  "tokenIndex": "1",
      +  "requestId": "1",
      +  "data": "transfer-metadata",
      +  "config": {},
      +  "interface": {}
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      namespacestringThe namespace of the token pool
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      signerstringThe signing identity to be used for the blockchain transaction, in a format understood by this connector.
      fromstringThe identity to be used for the source of the transfer, in a format understood by this connector.
      tostringThe identity to be used for the destination of the transfer, in a format understood by this connector.
      amountnumber stringThe amount of tokens to transfer.
      tokenIndexstring(OPTIONAL) For non-fungible tokens, the index of the specific token to transfer.
      requestIdstring(OPTIONAL) A unique identifier for this request. Will be included in the "receipt" websocket event to match receipts to requests.
      datastring(OPTIONAL) A data string that should be returned in the connector's response to this transfer request.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the transfer is carried out.
      interfaceobject(OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.
      +

      Response

      +

      HTTP 202: request was accepted, but transfer will occur asynchronously, with "receipt" and "token-transfer" events sent later on the websocket.

      +

      See Response Types: Async Request

      +

      POST /approval

      +

      Approve another identity to manage tokens.

      +

      Request

      +
      {
      +  "namespace": "default",
      +  "poolLocator": "id=F1",
      +  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "operator": "0xb107ed9caa1323b7bc36e81995a4658ec2251951",
      +  "approved": true,
      +  "requestId": "1",
      +  "data": "approval-metadata",
      +  "config": {},
      +  "interface": {}
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      namespacestringThe namespace of the token pool
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      signerstringThe signing identity to be used for the blockchain transaction, in a format understood by this connector.
      operatorstringThe identity to be approved (or unapproved) for managing the signer's tokens.
      approvedbooleanWhether to approve (the default) or unapprove.
      requestIdstring(OPTIONAL) A unique identifier for this request. Will be included in the "receipt" websocket event to match receipts to requests.
      datastring(OPTIONAL) A data string that should be returned in the connector's response to this approval request.
      configobject(OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the approval is carried out.
      interfaceobject(OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.
      +

      Response

      +

      HTTP 202: request was accepted, but approval will occur asynchronously, with "receipt" and "token-approval" events sent later on the websocket.

      +

      See Response Types: Async Request

      +

      Websocket Commands

      +

      In order to start listening for events on a certain namespace, the client needs to send the start command. Clients should send this command every time they connect, or after an automatic reconnect.

      +
      {
      +  "type": "start",
      +  "namespace": "default"
      +}
      +
      +

      Websocket Events

      +

      A connector should expose a websocket at /api/ws. All emitted websocket events are a JSON string of the form:

      +
      {
      +  "id": "event-id",
      +  "event": "event-name",
      +  "data": {}
      +}
      +
      +

      The event name will match one of the names listed below, and the data payload will correspond to the linked response object.

      +

      All events except the receipt event must be acknowledged by sending an ack of the form:

      +
      {
      +  "event": "ack",
      +  "data": {
      +    "id": "event-id"
      +  }
      +}
      +
      +

      Many messages may also be batched into a single websocket event of the form:

      +
      {
      +  "id": "event-id",
      +  "event": "batch",
      +  "data": {
      +    "events": [
      +      {
      +        "event": "event-name",
      +        "data": {}
      +      },
      +      ...
      +    ]
      +  }
      +}
      +
      +

      Batched messages must be acked all at once using the ID of the batch.

      +

      receipt

      +

      An asynchronous operation has completed.

      +

      See Response Types: Receipt

      +

      token-pool

      +

      A new token pool has been created or activated.

      +

      See Response Types: Token Pool

      +

      token-mint

      +

      Tokens have been minted.

      +

      See Response Types: Token Transfer

      +

      token-burn

      +

      Tokens have been burned.

      +

      See Response Types: Token Transfer

      +

      token-transfer

      +

      Tokens have been transferred.

      +

      See Response Types: Token Transfer

      +

      token-approval

      +

      Token approvals have changed.

      +

      See Response Types: Token Approval

      +

      Response Types

      +

      Async Request

      +

      Many operations may happen asynchronously in the background, and will return only a request ID. This may be a request ID that was passed in, or if none was passed, will be randomly assigned. This ID can be used to correlate with a receipt event later received on the websocket.

      +
      {
      +  "id": "b84ab27d-0d50-42a6-9c26-2fda5eb901ba"
      +}
      +
      +

      Receipt

      +
        "headers": {
      +    "type": "",
      +    "requestId": ""
      +  }
      +  "transactionHash": "",
      +  "errorMessage": ""
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      headers.typestring enumThe type of this response. Should be "TransactionSuccess", "TransactionUpdate", or "TransactionFailed".
      headers.requestIdstringThe ID of the request to which this receipt should correlate.
      transactionHashstringThe unique identifier for the blockchain transaction which generated this receipt.
      errorMessagestring(OPTIONAL) If this is a failure, contains details on the reason for the failure.
      +

      Token Pool

      +
      {
      +  "namespace": "default",
      +  "type": "fungible",
      +  "data": "pool-metadata",
      +  "poolLocator": "id=F1",
      +  "standard": "ERC20",
      +  "interfaceFormat": "abi",
      +  "symbol": "FFC",
      +  "decimals": 18,
      +  "info": {},
      +  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "blockchain": {}
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      namespacestringThe namespace of the token pool
      typestring enumThe type of pool that was created.
      datastringA copy of the data that was passed in on the creation request.
      poolLocatorstringA string to identify this pool, generated by the connector. Must be unique for each pool created by this connector. Will be passed back on all operations within this pool, and may be packed with relevant data about the pool for later usage (such as the address and type of the pool).
      standardstring(OPTIONAL) The name of a well-defined token standard to which this pool conforms.
      interfaceFormatstring enum(OPTIONAL) If this connector supports the /checkinterface API, this is the interface format to be used for describing the interface underpinning this pool. Must be "abi" or "ffi".
      symbolstring(OPTIONAL) The symbol for this token pool, if applicable.
      decimalsnumber(OPTIONAL) The number of decimals used for balances in this token pool, if applicable.
      infoobject(OPTIONAL) Additional information about the pool. Each connector may define the format for this object.
      signerstring(OPTIONAL) If this operation triggered a blockchain transaction, the signing identity used for the transaction.
      blockchainobject(OPTIONAL) If this operation triggered a blockchain transaction, contains details on the blockchain event in FireFly's standard blockchain event format.
      +

      Token Transfer

      +

      Note that mint and burn operations are just specialized versions of transfer. A mint will omit the "from" field, +while a burn will omit the "to" field.

      +
      {
      +  "namespace": "default",
      +  "id": "1",
      +  "data": "transfer-metadata",
      +  "poolLocator": "id=F1",
      +  "poolData": "extra-pool-info",
      +  "from": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "to": "0xb107ed9caa1323b7bc36e81995a4658ec2251951",
      +  "amount": "1",
      +  "tokenIndex": "1",
      +  "uri": "ipfs://000000",
      +  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "blockchain": {}
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      namespacestringThe namespace of the token pool
      idstringAn identifier for this transfer. Must be unique for every transfer within this pool.
      datastringA copy of the data that was passed in on the mint/burn/transfer request. May be omitted if the token contract does not support a method of attaching extra data (will result in reduced ability for FireFly to correlate the inputs and outputs of the transaction).
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      poolDatastringThe extra data associated with the pool at pool activation.
      fromstringThe identity used for the source of the transfer.
      tostringThe identity used for the destination of the transfer.
      amountnumber stringThe amount of tokens transferred.
      tokenIndexstring(OPTIONAL) For non-fungible tokens, the index of the specific token transferred.
      uristring(OPTIONAL) For non-fungible tokens, the URI attached to the token.
      signerstring(OPTIONAL) If this operation triggered a blockchain transaction, the signing identity used for the transaction.
      blockchainobject(OPTIONAL) If this operation triggered a blockchain transaction, contains details on the blockchain event in FireFly's standard blockchain event format.
      +

      Token Approval

      +
      {
      +  "namespace": "default",
      +  "id": "1",
      +  "data": "transfer-metadata",
      +  "poolLocator": "id=F1",
      +  "poolData": "extra-pool-info",
      +  "operator": "0xb107ed9caa1323b7bc36e81995a4658ec2251951",
      +  "approved": true,
      +  "subject": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A:0xb107ed9caa1323b7bc36e81995a4658ec2251951",
      +  "info": {},
      +  "signer": "0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A",
      +  "blockchain": {}
      +}
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      namespacestringThe namespace of the token pool
      idstringAn identifier for this approval. Must be unique for every approval within this pool.
      datastringA copy of the data that was passed in on the approval request. May be omitted if the token contract does not support a method of attaching extra data (will result in reduced ability for FireFly to correlate the inputs and outputs of the transaction).
      poolLocatorstringThe locator of the pool, as supplied by the output of the pool creation.
      poolDatastringThe extra data associated with the pool at pool activation.
      operatorstringThe identity that was approved (or unapproved) for managing tokens.
      approvedbooleanWhether this was an approval or unapproval.
      subjectstringA string identifying the scope of the approval, generated by the connector. Approvals with the same subject are understood replace one another, so that a previously-recorded approval becomes inactive. This string may be a combination of the identities involved, the token index, etc.
      infoobject(OPTIONAL) Additional information about the approval. Each connector may define the format for this object.
      signerstring(OPTIONAL) If this operation triggered a blockchain transaction, the signing identity used for the transaction.
      blockchainobject(OPTIONAL) If this operation triggered a blockchain transaction, contains details on the blockchain event in FireFly's standard blockchain event format.
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/microservices/index.html b/head/reference/microservices/index.html deleted file mode 100644 index 8179a5023..000000000 --- a/head/reference/microservices/index.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - - - - Microservices - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Microservices | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - - - - - - -
      -

      Table of contents

      - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/namespaces.html b/head/reference/namespaces.html deleted file mode 100644 index 0d9190787..000000000 --- a/head/reference/namespaces.html +++ /dev/null @@ -1,547 +0,0 @@ - - - - - - - - - Namespaces - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Namespaces | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Namespaces - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Introduction to Namespaces
          -
        1. Multi-party Namespaces
        2. -
        3. Gateway Namespaces
        4. -
        -
      2. -
      3. Configuration
          -
        1. Config Restrictions
        2. -
        -
      4. -
      5. Definitions
      6. -
      7. Local Definitions
      8. -

      - -

      FireFly Namespaces Example

      -

      - - - Introduction to Namespaces - - -

      - - -

      Namespaces are a construct for segregating data and operations within a FireFly supernode. Each namespace is an isolated environment within a FireFly runtime, that allows independent configuration of:

      - -
        -
      • Plugin and infrastructure components
      • -
      • API security
      • -
      • Identity broadcasting
      • -
      • On-chain data indexing
      • -
      • How datatypes, locations of on-chain contrats, etc. should be shared
      • -
      - -

      They can be thought of in two basic modes:

      -

      - - - Multi-party Namespaces - - -

      - -

      This namespace is shared with one or more other FireFly nodes. It requires three types of communication plugins - blockchain, data exchange, and shared storage. Organization and node identities must be claimed with an identity broadcast when joining the namespace, which establishes credentials for blockchain and off-chain communication. Shared objects can be defined in the namespace (such as datatypes and token pools), and details of them will be implicitly broadcast to other members.

      - -

      This type of namespace is used when multiple parties need to share on- and off-chain data and agree upon the ordering and authenticity of that data. For more information, see the multi-party system overview.

      -

      - - - Gateway Namespaces - - -

      - - -

      Nothing in this namespace will be shared automatically, and no assumptions are made about whether other parties connected through this namespace are also using Hyperledger FireFly. Plugins for data exchange and shared storage are not supported. If any identities or definitions are created in this namespace, they will be stored in the local database, but will not be shared implicitly outside the node.

      - -

      This type of namespace is mainly used when interacting directly with a blockchain, without assuming that the interaction needs to conform to FireFly’s multi-party system model.

      -

      - - - Configuration - - -

      - - -

      FireFly nodes can be configured with one or many namespaces of different modes. This means that a single FireFly node can be used to interact with multiple distinct blockchains, multiple distinct token economies, and multiple business networks.

      - -

      Below is an example plugin and namespace configuration containing both a multi-party and gateway namespace:

      - -
      plugins:
      -  database:
      -  - name: database0
      -    type: sqlite3
      -    sqlite3:
      -      migrations:
      -        auto: true
      -      url: /etc/firefly/db?_busy_timeout=5000
      -  blockchain:
      -  - name: blockchain0
      -    type: ethereum
      -    ethereum:
      -      ethconnect:
      -        url: http://ethconnect_0:8080
      -        topic: "0"
      -  - name: blockchain1
      -    type: ethereum
      -    ethereum:
      -      ethconnect:
      -        url: http://ethconnect_01:8080
      -        topic: "0"
      -  dataexchange:
      -  - name: dataexchange0
      -    type: ffdx
      -    ffdx:
      -      url: http://dataexchange_0:3000
      -  sharedstorage:
      -  - name: sharedstorage0
      -    type: ipfs
      -    ipfs:
      -      api:
      -        url: http://ipfs_0:5001
      -      gateway:
      -        url: http://ipfs_0:8080
      -  tokens:
      -  - name: erc20_erc721
      -    broadcastName: erc20_erc721
      -    type: fftokens
      -    fftokens:
      -      url: http://tokens_0_0:3000
      -namespaces:
      -  default: alpha
      -  predefined:
      -  - name: alpha
      -    description: Default predefined namespace
      -    defaultKey: 0x123456
      -    plugins: [database0, blockchain0, dataexchange0, sharedstorage0, erc20_erc721]
      -    multiparty:
      -      networkNamespace: alpha
      -      enabled: true
      -      org:
      -        name: org0
      -        description: org0
      -        key: 0x123456
      -      node:
      -        name: node0
      -        description: node0
      -      contract:
      -        - location:
      -            address: 0x4ae50189462b0e5d52285f59929d037f790771a6
      -          firstEvent: 0
      -        - location:
      -            address: 0x3c1bef20a7858f5c2f78bda60796758d7cafff27
      -          firstEvent: 5000
      -  - name: omega
      -    defaultkey: 0x48a54f9964d7ceede2d6a8b451bf7ad300c7b09f
      -    description: Gateway namespace
      -    plugins: [database0, blockchain1, erc20_erc721]
      -
      - -

      The namespaces.predefined object contains the follow sub-keys:

      - -
        -
      • defaultKey is a blockchain key used to sign transactions when none is specified (in multi-party mode, -defaults to the org key)
      • -
      • plugins is an array of plugin names to be activated for this namespace (defaults to -all available plugins if omitted)
      • -
      • multiparty.networkNamespace is the namespace name to be sent in plugin calls, if it differs from the -locally used name (useful for interacting with multiple shared namespaces of the same name - -defaults to the value of name)
      • -
      • multiparty.enabled controls if multi-party mode is enabled (defaults to true if an org key or -org name is defined on this namespace or in the deprecated org section at the root)
      • -
      • multiparty.org is the root org identity for this multi-party namespace (containing name, -description, and key)
      • -
      • multiparty.node is the local node identity for this multi-party namespace (containing name and -description)
      • -
      • multiparty.contract is an array of objects describing the location(s) of a FireFly multi-party -smart contract. Its children are blockchain-agnostic location and firstEvent fields, with formats -identical to the same fields on custom contract interfaces and contract listeners. The blockchain plugin -will interact with the first contract in the list until instructions are received to terminate it and -migrate to the next.
      • -
      -

      - - - Config Restrictions - - -

      - -
        -
      • name must be unique on this node
      • -
      • for historical reasons, “ff_system” is a reserved string and cannot be used as a name or multiparty.networkNamespace
      • -
      • a database plugin is required for every namespace
      • -
      • if multiparty.enabled is true, plugins must include one each of blockchain, dataexchange, and -sharedstorage
      • -
      • if multiparty.enabled is false, plugins must not include dataexchange or sharedstorage
      • -
      • at most one of each type of plugin is allowed per namespace, except for tokens (which -may have many per namespace)
      • -
      - -

      All namespaces must be called out in the FireFly config file in order to be valid. Namespaces found in -the database but not represented in the config file will be ignored.

      -

      - - - Definitions - - -

      - -

      In FireFly, definitions are immutable payloads that are used to define identities, datatypes, smart contract interfaces, token pools, and other constructs. Each type of definition in FireFly has a schema that it must adhere to. Some definitions also have a name and a version which must be unique within a namespace. In a multiparty namespace, definitions are broadcasted to other organizations.

      -

      - - - Local Definitions - - -

      - - -

      The following are all “definition” types in FireFly:

      -
        -
      • datatype
      • -
      • group
      • -
      • token pool
      • -
      • contract interface
      • -
      • contract API
      • -
      • organization (deprecated)
      • -
      • node (deprecated)
      • -
      • identity claim
      • -
      • identity verification
      • -
      • identity update
      • -
      - -

      For gateway namespaces, the APIs which create these definitions will become an immediate -local database insert, instead of performing a broadcast. Additional caveats:

      -
        -
      • identities in this mode will not undergo any claim/verification process, -but will be created and stored locally
      • -
      • datatypes and groups will not be supported, as they are only useful in the context -of messaging (which is disabled in gateway namespaces)
      • -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/namespaces/index.html b/head/reference/namespaces/index.html new file mode 100644 index 000000000..2646d5ad2 --- /dev/null +++ b/head/reference/namespaces/index.html @@ -0,0 +1,3704 @@ + + + + + + + + + + + + + + + + + + + + + + + Namespaces - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Namespaces

      +

      FireFly Namespaces Example

      +

      Introduction to Namespaces

      +

      Namespaces are a construct for segregating data and operations within a FireFly supernode. Each namespace is an isolated environment within a FireFly runtime, that allows independent configuration of:

      +
        +
      • Plugin and infrastructure components
      • +
      • API security
      • +
      • Identity broadcasting
      • +
      • On-chain data indexing
      • +
      • How datatypes, locations of on-chain contrats, etc. should be shared
      • +
      +

      They can be thought of in two basic modes:

      +

      Multi-party Namespaces

      +

      This namespace is shared with one or more other FireFly nodes. It requires three types of communication plugins - blockchain, data exchange, and shared storage. Organization and node identities must be claimed with an identity broadcast when joining the namespace, which establishes credentials for blockchain and off-chain communication. Shared objects can be defined in the namespace (such as datatypes and token pools), and details of them will be implicitly broadcast to other members.

      +

      This type of namespace is used when multiple parties need to share on- and off-chain data and agree upon the ordering and authenticity of that data. For more information, see the multi-party system overview.

      +

      Gateway Namespaces

      +

      Nothing in this namespace will be shared automatically, and no assumptions are made about whether other parties connected through this namespace are also using Hyperledger FireFly. Plugins for data exchange and shared storage are not supported. If any identities or definitions are created in this namespace, they will be stored in the local database, but will not be shared implicitly outside the node.

      +

      This type of namespace is mainly used when interacting directly with a blockchain, without assuming that the interaction needs to conform to FireFly's multi-party system model.

      +

      Configuration

      +

      FireFly nodes can be configured with one or many namespaces of different modes. This means that a single FireFly node can be used to interact with multiple distinct blockchains, multiple distinct token economies, and multiple business networks.

      +

      Below is an example plugin and namespace configuration containing both a multi-party and gateway namespace:

      +
      plugins:
      +  database:
      +  - name: database0
      +    type: sqlite3
      +    sqlite3:
      +      migrations:
      +        auto: true
      +      url: /etc/firefly/db?_busy_timeout=5000
      +  blockchain:
      +  - name: blockchain0
      +    type: ethereum
      +    ethereum:
      +      ethconnect:
      +        url: http://ethconnect_0:8080
      +        topic: "0"
      +  - name: blockchain1
      +    type: ethereum
      +    ethereum:
      +      ethconnect:
      +        url: http://ethconnect_01:8080
      +        topic: "0"
      +  dataexchange:
      +  - name: dataexchange0
      +    type: ffdx
      +    ffdx:
      +      url: http://dataexchange_0:3000
      +  sharedstorage:
      +  - name: sharedstorage0
      +    type: ipfs
      +    ipfs:
      +      api:
      +        url: http://ipfs_0:5001
      +      gateway:
      +        url: http://ipfs_0:8080
      +  tokens:
      +  - name: erc20_erc721
      +    broadcastName: erc20_erc721
      +    type: fftokens
      +    fftokens:
      +      url: http://tokens_0_0:3000
      +namespaces:
      +  default: alpha
      +  predefined:
      +  - name: alpha
      +    description: Default predefined namespace
      +    defaultKey: 0x123456
      +    plugins: [database0, blockchain0, dataexchange0, sharedstorage0, erc20_erc721]
      +    multiparty:
      +      networkNamespace: alpha
      +      enabled: true
      +      org:
      +        name: org0
      +        description: org0
      +        key: 0x123456
      +      node:
      +        name: node0
      +        description: node0
      +      contract:
      +        - location:
      +            address: 0x4ae50189462b0e5d52285f59929d037f790771a6
      +          firstEvent: 0
      +        - location:
      +            address: 0x3c1bef20a7858f5c2f78bda60796758d7cafff27
      +          firstEvent: 5000
      +  - name: omega
      +    defaultkey: 0x48a54f9964d7ceede2d6a8b451bf7ad300c7b09f
      +    description: Gateway namespace
      +    plugins: [database0, blockchain1, erc20_erc721]
      +
      +

      The namespaces.predefined object contains the follow sub-keys:

      +
        +
      • defaultKey is a blockchain key used to sign transactions when none is specified (in multi-party mode, + defaults to the org key)
      • +
      • plugins is an array of plugin names to be activated for this namespace (defaults to + all available plugins if omitted)
      • +
      • multiparty.networkNamespace is the namespace name to be sent in plugin calls, if it differs from the + locally used name (useful for interacting with multiple shared namespaces of the same name - + defaults to the value of name)
      • +
      • multiparty.enabled controls if multi-party mode is enabled (defaults to true if an org key or + org name is defined on this namespace or in the deprecated org section at the root)
      • +
      • multiparty.org is the root org identity for this multi-party namespace (containing name, + description, and key)
      • +
      • multiparty.node is the local node identity for this multi-party namespace (containing name and + description)
      • +
      • multiparty.contract is an array of objects describing the location(s) of a FireFly multi-party + smart contract. Its children are blockchain-agnostic location and firstEvent fields, with formats + identical to the same fields on custom contract interfaces and contract listeners. The blockchain plugin + will interact with the first contract in the list until instructions are received to terminate it and + migrate to the next.
      • +
      +

      Config Restrictions

      +
        +
      • name must be unique on this node
      • +
      • for historical reasons, "ff_system" is a reserved string and cannot be used as a name or multiparty.networkNamespace
      • +
      • a database plugin is required for every namespace
      • +
      • if multiparty.enabled is true, plugins must include one each of blockchain, dataexchange, and + sharedstorage
      • +
      • if multiparty.enabled is false, plugins must not include dataexchange or sharedstorage
      • +
      • at most one of each type of plugin is allowed per namespace, except for tokens (which + may have many per namespace)
      • +
      +

      All namespaces must be called out in the FireFly config file in order to be valid. Namespaces found in +the database but not represented in the config file will be ignored.

      +

      Definitions

      +

      In FireFly, definitions are immutable payloads that are used to define identities, datatypes, smart contract interfaces, token pools, and other constructs. Each type of definition in FireFly has a schema that it must adhere to. Some definitions also have a name and a version which must be unique within a namespace. In a multiparty namespace, definitions are broadcasted to other organizations.

      +

      Local Definitions

      +

      The following are all "definition" types in FireFly:

      +
        +
      • datatype
      • +
      • group
      • +
      • token pool
      • +
      • contract interface
      • +
      • contract API
      • +
      • organization (deprecated)
      • +
      • node (deprecated)
      • +
      • identity claim
      • +
      • identity verification
      • +
      • identity update
      • +
      +

      For gateway namespaces, the APIs which create these definitions will become an immediate +local database insert, instead of performing a broadcast. Additional caveats:

      +
        +
      • identities in this mode will not undergo any claim/verification process, + but will be created and stored locally
      • +
      • datatypes and groups will not be supported, as they are only useful in the context + of messaging (which is disabled in gateway namespaces)
      • +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/tls.html b/head/reference/tls.html deleted file mode 100644 index 9f0c1d320..000000000 --- a/head/reference/tls.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - - - TLS - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.tls | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - TLS - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. TLS Overview
      2. -
      3. Configuring TLS for the API server
      4. -
      5. Configuring TLS for the webhooks
      6. -
      7. Configuring clients and websockets
      8. -
      9. Enhancing validation of certificates
      10. -

      -

      - - - TLS Overview - - -

      - - -

      To enable TLS in Firefly, there is a configuration available to provide certificates and keys.

      - -

      The common configuration is as such:

      - -
      tls:
      -    enabled: true/false # Toggle on or off TLS
      -    caFile: <path to the CA file you want the client or server to trust>
      -    certFile: <path to the cert file you want the client or server to use when performing authentication in mTLS>
      -    keyFile: <path to the priavte key file you want the client or server to use when performing  authentication in mTLS>
      -    clientAuth: true/false # Only applicable to the server side, to toggle on or off client authentication
      -    requiredDNAttributes: A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)	
      -
      - -

      NOTE The CAs, certificates and keys have to be in PEM format.

      -

      - - - Configuring TLS for the API server - - -

      - - -

      Using the above configuration, we can place it under the http config and enable TLS or mTLS for any API call.

      - -

      See this config section for details

      -

      - - - Configuring TLS for the webhooks - - -

      - - -

      Using the above configuration, we can place it under the events.webhooks config and enable TLS or mTLS for any webhook call.

      - -

      See this config section for details

      -

      - - - Configuring clients and websockets - - -

      - - -

      Firefly has a set of HTTP clients and websockets that communicate the external endpoints and services that could be secured using TLS. -In order to configure these clients, we can use the same configuration as above in the respective places in the config which relate to those clients.

      - -

      For example, if you wish to configure the ethereum blockchain connector with TLS you would look at this config section

      - -

      For more clients, search in the configuration reference for a TLS section.

      -

      - - - Enhancing validation of certificates - - -

      - - -

      In the case where we want to verify that a specific client certificate has certain attributes we can use the requiredDNAtributes configuration as described above. This will allow you by the means of a regex expresssion matching against well known distinguished names (DN). To learn more about a DNs look at this document

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/tls/index.html b/head/reference/tls/index.html new file mode 100644 index 000000000..42260ea24 --- /dev/null +++ b/head/reference/tls/index.html @@ -0,0 +1,3517 @@ + + + + + + + + + + + + + + + + + + + + + + + TLS - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      TLS

      + +

      TLS Overview

      +

      To enable TLS in Firefly, there is a configuration available to provide certificates and keys.

      +

      The common configuration is as such:

      +
      tls:
      +  enabled: true/false # Toggle on or off TLS
      +  caFile: <path to the CA file you want the client or server to trust>
      +  certFile: <path to the cert file you want the client or server to use when performing authentication in mTLS>
      +  keyFile: <path to the priavte key file you want the client or server to use when performing  authentication in mTLS>
      +  clientAuth: true/false # Only applicable to the server side, to toggle on or off client authentication
      +  requiredDNAttributes: A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)
      +
      +

      NOTE The CAs, certificates and keys have to be in PEM format.

      +

      Configuring TLS for the API server

      +

      Using the above configuration, we can place it under the http config and enable TLS or mTLS for any API call.

      +

      See this config section for details

      +

      Configuring TLS for the webhooks

      +

      Using the above configuration, we can place it under the events.webhooks config and enable TLS or mTLS for any webhook call.

      +

      See this config section for details

      +

      Configuring clients and websockets

      +

      Firefly has a set of HTTP clients and websockets that communicate the external endpoints and services that could be secured using TLS. +In order to configure these clients, we can use the same configuration as above in the respective places in the config which relate to those clients.

      +

      For example, if you wish to configure the ethereum blockchain connector with TLS you would look at this config section

      +

      For more clients, search in the configuration reference for a TLS section.

      +

      Enhancing validation of certificates

      +

      In the case where we want to verify that a specific client certificate has certain attributes we can use the requiredDNAtributes configuration as described above. This will allow you by the means of a regex expresssion matching against well known distinguished names (DN). To learn more about a DNs look at this document

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/batch.html b/head/reference/types/batch.html deleted file mode 100644 index 88d0fb5f3..000000000 --- a/head/reference/types/batch.html +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - Batch - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Batch | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Batch - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Batch
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -
      3. BatchPayload
      4. -
      5. TransactionRef
      6. -

      -

      - - - Batch - - -

      - - -

      A batch bundles a number of off-chain messages, with associated data, into a single payload -for broadcast or private transfer.

      - -

      This allows the transfer of many messages (hundreds) to be backed by a single blockchain -transaction. Thus making very efficient use of the blockchain.

      - -

      The same benefit also applies to the off-chain transport mechanism.

      - -

      Shared storage operations benefit from the same optimization. In IPFS for example chunks are 256Kb -in size, so there is a great throughput benefit in packaging many small messages into a -single large payload.

      - -

      For a data exchange transport, there is often cryptography and transport overhead for each individual -transport level send between participants. This is particularly true if using a data exchange -transport with end-to-end payload encryption, using public/private key cryptography for the envelope.

      -

      - - - Example - - -

      - - -
      {
      -    "id": "894bc0ea-0c2e-4ca4-bbca-b4c39a816bbb",
      -    "type": "private",
      -    "namespace": "ns1",
      -    "node": "5802ab80-fa71-4f52-9189-fb534de93756",
      -    "group": "cd1fedb69fb83ad5c0c62f2f5d0b04c59d2e41740916e6815a8e063b337bd32e",
      -    "created": "2022-05-16T01:23:16Z",
      -    "author": "did:firefly:org/example",
      -    "key": "0x0a989907dcd17272257f3ebcf72f4351df65a846",
      -    "hash": "78d6861f860c8724468c9254b99dc09e7d9fd2d43f26f7bd40ecc9ee47be384d",
      -    "payload": {
      -        "tx": {
      -            "type": "private",
      -            "id": "04930d84-0227-4044-9d6d-82c2952a0108"
      -        },
      -        "messages": [],
      -        "data": []
      -    }
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the batchUUID
      typeThe type of the batchFFEnum:
      "broadcast"
      "private"
      namespaceThe namespace of the batchstring
      nodeThe UUID of the node that generated the batchUUID
      groupThe privacy group the batch is sent to, for private batchesBytes32
      createdThe time the batch was sealedFFTime
      authorThe DID of identity of the submitterstring
      keyThe on-chain signing key used to sign the transactionstring
      hashThe hash of the manifest of the batchBytes32
      payloadBatch.payloadBatchPayload
      -

      - - - BatchPayload - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      txBatchPayload.txTransactionRef
      messagesBatchPayload.messagesMessage[]
      dataBatchPayload.dataData[]
      -

      - - - TransactionRef - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/batch/index.html b/head/reference/types/batch/index.html new file mode 100644 index 000000000..88559dc22 --- /dev/null +++ b/head/reference/types/batch/index.html @@ -0,0 +1,3622 @@ + + + + + + + + + + + + + + + + + + + + + + + Batch - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Batch

      + + +

      A batch bundles a number of off-chain messages, with associated data, into a single payload +for broadcast or private transfer.

      +

      This allows the transfer of many messages (hundreds) to be backed by a single blockchain +transaction. Thus making very efficient use of the blockchain.

      +

      The same benefit also applies to the off-chain transport mechanism.

      +

      Shared storage operations benefit from the same optimization. In IPFS for example chunks are 256Kb +in size, so there is a great throughput benefit in packaging many small messages into a +single large payload.

      +

      For a data exchange transport, there is often cryptography and transport overhead for each individual +transport level send between participants. This is particularly true if using a data exchange +transport with end-to-end payload encryption, using public/private key cryptography for the envelope.

      + + +

      Example

      +
      {
      +    "id": "894bc0ea-0c2e-4ca4-bbca-b4c39a816bbb",
      +    "type": "private",
      +    "namespace": "ns1",
      +    "node": "5802ab80-fa71-4f52-9189-fb534de93756",
      +    "group": "cd1fedb69fb83ad5c0c62f2f5d0b04c59d2e41740916e6815a8e063b337bd32e",
      +    "created": "2022-05-16T01:23:16Z",
      +    "author": "did:firefly:org/example",
      +    "key": "0x0a989907dcd17272257f3ebcf72f4351df65a846",
      +    "hash": "78d6861f860c8724468c9254b99dc09e7d9fd2d43f26f7bd40ecc9ee47be384d",
      +    "payload": {
      +        "tx": {
      +            "type": "private",
      +            "id": "04930d84-0227-4044-9d6d-82c2952a0108"
      +        },
      +        "messages": [],
      +        "data": []
      +    }
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the batchUUID
      typeThe type of the batchFFEnum:
      "broadcast"
      "private"
      namespaceThe namespace of the batchstring
      nodeThe UUID of the node that generated the batchUUID
      groupThe privacy group the batch is sent to, for private batchesBytes32
      createdThe time the batch was sealedFFTime
      authorThe DID of identity of the submitterstring
      keyThe on-chain signing key used to sign the transactionstring
      hashThe hash of the manifest of the batchBytes32
      payloadBatch.payloadBatchPayload
      +

      BatchPayload

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      txBatchPayload.txTransactionRef
      messagesBatchPayload.messagesMessage[]
      dataBatchPayload.dataData[]
      +

      TransactionRef

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/blockchainevent.html b/head/reference/types/blockchainevent.html deleted file mode 100644 index eccded2eb..000000000 --- a/head/reference/types/blockchainevent.html +++ /dev/null @@ -1,530 +0,0 @@ - - - - - - - - - BlockchainEvent - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -BlockchainEvent | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - BlockchainEvent - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. BlockchainEvent
          -
        1. Protocol ID
        2. -
        3. Example
        4. -
        5. Field Descriptions
        6. -
        -
      2. -
      3. BlockchainTransactionRef
      4. -

      -

      - - - BlockchainEvent - - -

      - - -

      Blockchain Events are detected by the blockchain plugin:

      - -
        -
      1. When a ContractListener has been -configured against any custom smart contract through the FireFly API
      2. -
      3. Indirectly via a Token Connector, which understands the correct events -to listen to for a Token Pool configured against a -standard such as ERC-20/ERC-721/ERC-1155
      4. -
      5. Automatically by FireFly core, for the BatchPin contract that can -be used for high throughput batched pinning of off-chain data transfers -to the blockchain (complementary to using your own smart contracts).
      6. -
      -

      - - - Protocol ID - - -

      - - -

      Each Blockchain Event (once final) exists in an absolute location somewhere -in the transaction history of the blockchain. A particular slot, in a particular -block.

      - -

      How to describe that position contains blockchain specifics - depending on how -a particular blockchain represents transactions, blocks and events (or “logs”).

      - -

      So FireFly is flexible with a string protocolId in the core object to -represent this location, and then there is a convention that is adopted by -the blockchain plugins to try and create some consistency.

      - -

      An example protocolId string is: 000000000041/000020/000003

      - -
        -
      • 000000000041 - this is the block number
      • -
      • 000020 - this is the transaction index within that block
      • -
      • 000003 - this is the event (/log) index within that transaction
      • -
      - -

      The string is alphanumerically sortable as a plain string;

      - -
      -

      Sufficient zero padding is included at each layer to support future expansion -without creating a string that would no longer sort correctly.

      -
      -

      - - - Example - - -

      - - -
      {
      -    "id": "e9bc4735-a332-4071-9975-b1066e51ab8b",
      -    "source": "ethereum",
      -    "namespace": "ns1",
      -    "name": "MyEvent",
      -    "listener": "c29b4595-03c2-411a-89e3-8b7f27ef17bb",
      -    "protocolId": "000000000048/000000/000000",
      -    "output": {
      -        "addr1": "0x55860105d6a675dbe6e4d83f67b834377ba677ad",
      -        "value2": "42"
      -    },
      -    "info": {
      -        "address": "0x57A9bE18CCB50D06B7567012AaF6031D669BBcAA",
      -        "blockHash": "0xae7382ef2573553f517913b927d8b9691ada8d617266b8b16f74bb37aa78cae8",
      -        "blockNumber": "48",
      -        "logIndex": "0",
      -        "signature": "Changed(address,uint256)",
      -        "subId": "sb-e4d5efcd-2eba-4ed1-43e8-24831353fffc",
      -        "timestamp": "1653048837",
      -        "transactionHash": "0x34b0327567fefed09ac7b4429549bc609302b08a9cbd8f019a078ec44447593d",
      -        "transactionIndex": "0x0"
      -    },
      -    "timestamp": "2022-05-16T01:23:15Z",
      -    "tx": {
      -        "blockchainId": "0x34b0327567fefed09ac7b4429549bc609302b08a9cbd8f019a078ec44447593d"
      -    }
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID assigned to the event by FireFlyUUID
      sourceThe blockchain plugin or token service that detected the eventstring
      namespaceThe namespace of the listener that detected this blockchain eventstring
      nameThe name of the event in the blockchain smart contractstring
      listenerThe UUID of the listener that detected this event, or nil for built-in events in the system namespaceUUID
      protocolIdAn alphanumerically sortable string that represents this event uniquely on the blockchain (convention for plugins is zero-padded values BLOCKNUMBER/TXN_INDEX/EVENT_INDEX)string
      outputThe data output by the event, parsed to JSON according to the interface of the smart contractJSONObject
      infoDetailed blockchain specific information about the event, as generated by the blockchain connectorJSONObject
      timestampThe time allocated to this event by the blockchain. This is the block timestamp for most blockchain connectorsFFTime
      txIf this blockchain event is coorelated to FireFly transaction such as a FireFly submitted token transfer, this field is set to the UUID of the FireFly transactionBlockchainTransactionRef
      -

      - - - BlockchainTransactionRef - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      blockchainIdThe blockchain transaction ID, in the format specific to the blockchain involved in the transaction. Not all FireFly transactions include a blockchainstring
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/blockchainevent/index.html b/head/reference/types/blockchainevent/index.html new file mode 100644 index 000000000..1cb8e7253 --- /dev/null +++ b/head/reference/types/blockchainevent/index.html @@ -0,0 +1,3628 @@ + + + + + + + + + + + + + + + + + + + + + + + BlockchainEvent - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      BlockchainEvent

      + + +

      Blockchain Events are detected by the blockchain plugin:

      +
        +
      1. When a ContractListener has been + configured against any custom smart contract through the FireFly API
      2. +
      3. Indirectly via a Token Connector, which understands the correct events + to listen to for a Token Pool configured against a + standard such as ERC-20/ERC-721/ERC-1155
      4. +
      5. Automatically by FireFly core, for the BatchPin contract that can + be used for high throughput batched pinning of off-chain data transfers + to the blockchain (complementary to using your own smart contracts).
      6. +
      +

      Protocol ID

      +

      Each Blockchain Event (once final) exists in an absolute location somewhere +in the transaction history of the blockchain. A particular slot, in a particular +block.

      +

      How to describe that position contains blockchain specifics - depending on how +a particular blockchain represents transactions, blocks and events (or "logs").

      +

      So FireFly is flexible with a string protocolId in the core object to +represent this location, and then there is a convention that is adopted by +the blockchain plugins to try and create some consistency.

      +

      An example protocolId string is: 000000000041/000020/000003

      +
        +
      • 000000000041 - this is the block number
      • +
      • 000020 - this is the transaction index within that block
      • +
      • 000003 - this is the event (/log) index within that transaction
      • +
      +

      The string is alphanumerically sortable as a plain string;

      +
      +

      Sufficient zero padding is included at each layer to support future expansion +without creating a string that would no longer sort correctly.

      +
      + + +

      Example

      +
      {
      +    "id": "e9bc4735-a332-4071-9975-b1066e51ab8b",
      +    "source": "ethereum",
      +    "namespace": "ns1",
      +    "name": "MyEvent",
      +    "listener": "c29b4595-03c2-411a-89e3-8b7f27ef17bb",
      +    "protocolId": "000000000048/000000/000000",
      +    "output": {
      +        "addr1": "0x55860105d6a675dbe6e4d83f67b834377ba677ad",
      +        "value2": "42"
      +    },
      +    "info": {
      +        "address": "0x57A9bE18CCB50D06B7567012AaF6031D669BBcAA",
      +        "blockHash": "0xae7382ef2573553f517913b927d8b9691ada8d617266b8b16f74bb37aa78cae8",
      +        "blockNumber": "48",
      +        "logIndex": "0",
      +        "signature": "Changed(address,uint256)",
      +        "subId": "sb-e4d5efcd-2eba-4ed1-43e8-24831353fffc",
      +        "timestamp": "1653048837",
      +        "transactionHash": "0x34b0327567fefed09ac7b4429549bc609302b08a9cbd8f019a078ec44447593d",
      +        "transactionIndex": "0x0"
      +    },
      +    "timestamp": "2022-05-16T01:23:15Z",
      +    "tx": {
      +        "blockchainId": "0x34b0327567fefed09ac7b4429549bc609302b08a9cbd8f019a078ec44447593d"
      +    }
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID assigned to the event by FireFlyUUID
      sourceThe blockchain plugin or token service that detected the eventstring
      namespaceThe namespace of the listener that detected this blockchain eventstring
      nameThe name of the event in the blockchain smart contractstring
      listenerThe UUID of the listener that detected this event, or nil for built-in events in the system namespaceUUID
      protocolIdAn alphanumerically sortable string that represents this event uniquely on the blockchain (convention for plugins is zero-padded values BLOCKNUMBER/TXN_INDEX/EVENT_INDEX)string
      outputThe data output by the event, parsed to JSON according to the interface of the smart contractJSONObject
      infoDetailed blockchain specific information about the event, as generated by the blockchain connectorJSONObject
      timestampThe time allocated to this event by the blockchain. This is the block timestamp for most blockchain connectorsFFTime
      txIf this blockchain event is coorelated to FireFly transaction such as a FireFly submitted token transfer, this field is set to the UUID of the FireFly transactionBlockchainTransactionRef
      +

      BlockchainTransactionRef

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      blockchainIdThe blockchain transaction ID, in the format specific to the blockchain involved in the transaction. Not all FireFly transactions include a blockchainstring
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/contractapi.html b/head/reference/types/contractapi.html deleted file mode 100644 index 22016ee8e..000000000 --- a/head/reference/types/contractapi.html +++ /dev/null @@ -1,601 +0,0 @@ - - - - - - - - - ContractAPI - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -ContractAPI | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - ContractAPI - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. ContractAPI
          -
        1. URL
        2. -
        3. FireFly Interface (FFI) and On-chain Location
        4. -
        5. OpenAPI V3 / Swagger Definitions
        6. -
        7. Swagger UI
        8. -
        9. Example
        10. -
        11. Field Descriptions
        12. -
        -
      2. -
      3. FFIReference
      4. -
      5. ContractURLs
      6. -

      -

      - - - ContractAPI - - -

      - - -

      Contract APIs provide generated REST APIs for on-chain smart contracts.

      - -

      API endpoints are generated to invoke or perform query operations against -each of the functions/methods implemented by the smart contract.

      - -

      API endpoints are also provided to add listeners to the events of that -smart contract.

      - -
      -

      Note that once you have established listeners for your blockchain events -into FireFly, you need to also subscribe in your application to receive -the FireFly events (of type blockchain_event_received) that are emitted -for each detected blockchain event.

      - -

      For more information see the Events reference section.

      -
      -

      - - - URL - - -

      - - -

      The base path for your Contract API is:

      - -
        -
      • /api/v1/namespaces/{ns}/apis/{apiName}
      • -
      - -

      For the default namespace, this can be shortened to:

      - -
        -
      • /api/v1/apis/{apiName}
      • -
      -

      - - - FireFly Interface (FFI) and On-chain Location - - -

      - - -

      Contract APIs are registered against:

      - -
        -
      1. -

        A FireFly Interface (FFI) definition, which defines in a blockchain agnostic -format the list of functions/events supported by the smart contract. Also -detailed type information about the inputs/outputs to those functions/events.

        -
      2. -
      3. -

        An optional location configured on the Contract API describes where the -instance of the smart contract the API should interact with exists in the blockchain layer. -For example the address of the Smart Contract for an Ethereum based blockchain, -or the name and channel for a Hyperledger Fabric based blockchain.

        -
      4. -
      - -

      If the location is not specified on creation of the Contract API, then it must be -specified on each API call made to the Contract API endpoints.

      -

      - - - OpenAPI V3 / Swagger Definitions - - -

      - - -

      Each Contract API comes with an OpenAPI V3 / Swagger generated definition, which can -be downloaded from:

      - -
        -
      • /api/v1/namespaces/{namespaces}/apis/{apiName}/api/swagger.json
      • -
      -

      - - - Swagger UI - - -

      - - -

      A browser / exerciser UI for your API is also available on:

      - -
        -
      • /api/v1/namespaces/{namespaces}/apis/{apiName}/api
      • -
      -

      - - - Example - - -

      - - -
      {
      -    "id": "0f12317b-85a0-4a77-a722-857ea2b0a5fa",
      -    "namespace": "ns1",
      -    "interface": {
      -        "id": "c35d3449-4f24-4676-8e64-91c9e46f06c4"
      -    },
      -    "location": {
      -        "address": "0x95a6c4895c7806499ba35f75069198f45e88fc69"
      -    },
      -    "name": "my_contract_api",
      -    "message": "b09d9f77-7b16-4760-a8d7-0e3c319b2a16",
      -    "urls": {
      -        "api": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/my_contract_api",
      -        "openapi": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/my_contract_api/api/swagger.json",
      -        "ui": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/my_contract_api/api"
      -    },
      -    "published": false
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the contract APIUUID
      namespaceThe namespace of the contract APIstring
      interfaceReference to the FireFly Interface definition associated with the contract APIFFIReference
      locationIf this API is tied to an individual instance of a smart contract, this field can include a blockchain specific contract identifier. For example an Ethereum contract address, or a Fabric chaincode name and channelJSONAny
      nameThe name that is used in the URL to access the APIstring
      networkNameThe published name of the API within the multiparty networkstring
      messageThe UUID of the broadcast message that was used to publish this API to the networkUUID
      urlsThe URLs to use to access the APIContractURLs
      publishedIndicates if the API is published to other members of the multiparty networkbool
      -

      - - - FFIReference - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the FireFly interfaceUUID
      nameThe name of the FireFly interfacestring
      versionThe version of the FireFly interfacestring
      -

      - - - ContractURLs - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      apiThe URL to use to invoke the APIstring
      openapiThe URL to download the OpenAPI v3 (Swagger) description for the API generated in JSON or YAML formatstring
      uiThe URL to use in a web browser to access the SwaggerUI explorer/exerciser for the APIstring
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/contractapi/index.html b/head/reference/types/contractapi/index.html new file mode 100644 index 000000000..f7abfa658 --- /dev/null +++ b/head/reference/types/contractapi/index.html @@ -0,0 +1,3731 @@ + + + + + + + + + + + + + + + + + + + + + + + ContractAPI - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      ContractAPI

      + + +

      Contract APIs provide generated REST APIs for on-chain smart contracts.

      +

      API endpoints are generated to invoke or perform query operations against +each of the functions/methods implemented by the smart contract.

      +

      API endpoints are also provided to add listeners to the events of that +smart contract.

      +
      +

      Note that once you have established listeners for your blockchain events +into FireFly, you need to also subscribe in your application to receive +the FireFly events (of type blockchain_event_received) that are emitted +for each detected blockchain event.

      +

      For more information see the Events reference section.

      +
      +

      URL

      +

      The base path for your Contract API is:

      +
        +
      • /api/v1/namespaces/{ns}/apis/{apiName}
      • +
      +

      For the default namespace, this can be shortened to:

      +
        +
      • /api/v1/apis/{apiName}
      • +
      +

      FireFly Interface (FFI) and On-chain Location

      +

      Contract APIs are registered against:

      +
        +
      1. +

        A FireFly Interface (FFI) definition, which defines in a blockchain agnostic + format the list of functions/events supported by the smart contract. Also + detailed type information about the inputs/outputs to those functions/events.

        +
      2. +
      3. +

        An optional location configured on the Contract API describes where the + instance of the smart contract the API should interact with exists in the blockchain layer. + For example the address of the Smart Contract for an Ethereum based blockchain, + or the name and channel for a Hyperledger Fabric based blockchain.

        +
      4. +
      +

      If the location is not specified on creation of the Contract API, then it must be +specified on each API call made to the Contract API endpoints.

      +

      OpenAPI V3 / Swagger Definitions

      +

      Each Contract API comes with an OpenAPI V3 / Swagger generated definition, which can +be downloaded from:

      +
        +
      • /api/v1/namespaces/{namespaces}/apis/{apiName}/api/swagger.json
      • +
      +

      Swagger UI

      +

      A browser / exerciser UI for your API is also available on:

      +
        +
      • /api/v1/namespaces/{namespaces}/apis/{apiName}/api
      • +
      + + +

      Example

      +
      {
      +    "id": "0f12317b-85a0-4a77-a722-857ea2b0a5fa",
      +    "namespace": "ns1",
      +    "interface": {
      +        "id": "c35d3449-4f24-4676-8e64-91c9e46f06c4"
      +    },
      +    "location": {
      +        "address": "0x95a6c4895c7806499ba35f75069198f45e88fc69"
      +    },
      +    "name": "my_contract_api",
      +    "message": "b09d9f77-7b16-4760-a8d7-0e3c319b2a16",
      +    "urls": {
      +        "api": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/my_contract_api",
      +        "openapi": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/my_contract_api/api/swagger.json",
      +        "ui": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/my_contract_api/api"
      +    },
      +    "published": false
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the contract APIUUID
      namespaceThe namespace of the contract APIstring
      interfaceReference to the FireFly Interface definition associated with the contract APIFFIReference
      locationIf this API is tied to an individual instance of a smart contract, this field can include a blockchain specific contract identifier. For example an Ethereum contract address, or a Fabric chaincode name and channelJSONAny
      nameThe name that is used in the URL to access the APIstring
      networkNameThe published name of the API within the multiparty networkstring
      messageThe UUID of the broadcast message that was used to publish this API to the networkUUID
      urlsThe URLs to use to access the APIContractURLs
      publishedIndicates if the API is published to other members of the multiparty networkbool
      +

      FFIReference

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the FireFly interfaceUUID
      nameThe name of the FireFly interfacestring
      versionThe version of the FireFly interfacestring
      +

      ContractURLs

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      apiThe URL to use to invoke the APIstring
      openapiThe URL to download the OpenAPI v3 (Swagger) description for the API generated in JSON or YAML formatstring
      uiThe URL to use in a web browser to access the SwaggerUI explorer/exerciser for the APIstring
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/contractlistener.html b/head/reference/types/contractlistener.html deleted file mode 100644 index 6d1a8207d..000000000 --- a/head/reference/types/contractlistener.html +++ /dev/null @@ -1,599 +0,0 @@ - - - - - - - - - ContractListener - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -ContractListener | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - ContractListener - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. ContractListener
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -
      3. FFIReference
      4. -
      5. FFISerializedEvent
      6. -
      7. FFIParam
      8. -
      9. ContractListenerOptions
      10. -

      -

      - - - ContractListener - - -

      - - -

      A contract listener configures FireFly to stream events from the blockchain, -from a specific location on the blockchain, according to a given definition -of the interface for that event.

      - -

      Check out the Custom Contracts Tutorial for -a walk-through of how to set up listeners for the events from your smart contracts.

      -

      - - - Example - - -

      - - -
      {
      -    "id": "d61980a9-748c-4c72-baf5-8b485b514d59",
      -    "interface": {
      -        "id": "ff1da3c1-f9e7-40c2-8d93-abb8855e8a1d"
      -    },
      -    "namespace": "ns1",
      -    "name": "contract1_events",
      -    "backendId": "sb-dd8795fc-a004-4554-669d-c0cf1ee2c279",
      -    "location": {
      -        "address": "0x596003a91a97757ef1916c8d6c0d42592630d2cf"
      -    },
      -    "created": "2022-05-16T01:23:15Z",
      -    "event": {
      -        "name": "Changed",
      -        "description": "",
      -        "params": [
      -            {
      -                "name": "x",
      -                "schema": {
      -                    "type": "integer",
      -                    "details": {
      -                        "type": "uint256",
      -                        "internalType": "uint256"
      -                    }
      -                }
      -            }
      -        ]
      -    },
      -    "signature": "Changed(uint256)",
      -    "topic": "app1_topic",
      -    "options": {
      -        "firstEvent": "newest"
      -    }
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the smart contract listenerUUID
      interfaceA reference to an existing FFI, containing pre-registered type information for the eventFFIReference
      namespaceThe namespace of the listener, which defines the namespace of all blockchain events detected by this listenerstring
      nameA descriptive name for the listenerstring
      backendIdAn ID assigned by the blockchain connector to this listenerstring
      locationA blockchain specific contract identifier. For example an Ethereum contract address, or a Fabric chaincode name and channelJSONAny
      createdThe creation time of the listenerFFTime
      eventThe definition of the event, either provided in-line when creating the listener, or extracted from the referenced FFIFFISerializedEvent
      signatureThe stringified signature of the event, as computed by the blockchain pluginstring
      topicA topic to set on the FireFly event that is emitted each time a blockchain event is detected from the blockchain. Setting this topic on a number of listeners allows applications to easily subscribe to all events they needstring
      optionsOptions that control how the listener subscribes to events from the underlying blockchainContractListenerOptions
      -

      - - - FFIReference - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the FireFly interfaceUUID
      nameThe name of the FireFly interfacestring
      versionThe version of the FireFly interfacestring
      -

      - - - FFISerializedEvent - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      nameThe name of the eventstring
      descriptionA description of the smart contract eventstring
      paramsAn array of event parameter/argument definitionsFFIParam[]
      detailsAdditional blockchain specific fields about this event from the original smart contract. Used by the blockchain plugin and for documentation generation.JSONObject
      -

      - - - FFIParam - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      nameThe name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contractstring
      schemaFireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detailJSONAny
      -

      - - - ContractListenerOptions - - -

      - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      firstEventA blockchain specific string, such as a block number, to start listening from. The special strings ‘oldest’ and ‘newest’ are supported by all blockchain connectors. Default is ‘newest’string
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/contractlistener/index.html b/head/reference/types/contractlistener/index.html new file mode 100644 index 000000000..e77bd3d81 --- /dev/null +++ b/head/reference/types/contractlistener/index.html @@ -0,0 +1,3721 @@ + + + + + + + + + + + + + + + + + + + + + + + ContractListener - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      ContractListener

      + + +

      A contract listener configures FireFly to stream events from the blockchain, +from a specific location on the blockchain, according to a given definition +of the interface for that event.

      +

      Check out the Custom Contracts Tutorial for +a walk-through of how to set up listeners for the events from your smart contracts.

      + + +

      Example

      +
      {
      +    "id": "d61980a9-748c-4c72-baf5-8b485b514d59",
      +    "interface": {
      +        "id": "ff1da3c1-f9e7-40c2-8d93-abb8855e8a1d"
      +    },
      +    "namespace": "ns1",
      +    "name": "contract1_events",
      +    "backendId": "sb-dd8795fc-a004-4554-669d-c0cf1ee2c279",
      +    "location": {
      +        "address": "0x596003a91a97757ef1916c8d6c0d42592630d2cf"
      +    },
      +    "created": "2022-05-16T01:23:15Z",
      +    "event": {
      +        "name": "Changed",
      +        "description": "",
      +        "params": [
      +            {
      +                "name": "x",
      +                "schema": {
      +                    "type": "integer",
      +                    "details": {
      +                        "type": "uint256",
      +                        "internalType": "uint256"
      +                    }
      +                }
      +            }
      +        ]
      +    },
      +    "signature": "Changed(uint256)",
      +    "topic": "app1_topic",
      +    "options": {
      +        "firstEvent": "newest"
      +    }
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the smart contract listenerUUID
      interfaceA reference to an existing FFI, containing pre-registered type information for the eventFFIReference
      namespaceThe namespace of the listener, which defines the namespace of all blockchain events detected by this listenerstring
      nameA descriptive name for the listenerstring
      backendIdAn ID assigned by the blockchain connector to this listenerstring
      locationA blockchain specific contract identifier. For example an Ethereum contract address, or a Fabric chaincode name and channelJSONAny
      createdThe creation time of the listenerFFTime
      eventThe definition of the event, either provided in-line when creating the listener, or extracted from the referenced FFIFFISerializedEvent
      signatureThe stringified signature of the event, as computed by the blockchain pluginstring
      topicA topic to set on the FireFly event that is emitted each time a blockchain event is detected from the blockchain. Setting this topic on a number of listeners allows applications to easily subscribe to all events they needstring
      optionsOptions that control how the listener subscribes to events from the underlying blockchainContractListenerOptions
      +

      FFIReference

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the FireFly interfaceUUID
      nameThe name of the FireFly interfacestring
      versionThe version of the FireFly interfacestring
      +

      FFISerializedEvent

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      nameThe name of the eventstring
      descriptionA description of the smart contract eventstring
      paramsAn array of event parameter/argument definitionsFFIParam[]
      detailsAdditional blockchain specific fields about this event from the original smart contract. Used by the blockchain plugin and for documentation generation.JSONObject
      +

      FFIParam

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      nameThe name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contractstring
      schemaFireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detailJSONAny
      +

      ContractListenerOptions

      + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      firstEventA blockchain specific string, such as a block number, to start listening from. The special strings 'oldest' and 'newest' are supported by all blockchain connectors. Default is 'newest'string
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/data.html b/head/reference/types/data.html deleted file mode 100644 index 4828468f5..000000000 --- a/head/reference/types/data.html +++ /dev/null @@ -1,600 +0,0 @@ - - - - - - - - - Data - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Data | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Data - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Data
          -
        1. Value - JSON data stored in the core database
        2. -
        3. Datatype - validation of agreed data types
        4. -
        5. Blob - binary data stored via the Data Exchange
        6. -
        7. Example
        8. -
        9. Field Descriptions
        10. -
        -
      2. -
      3. DatatypeRef
      4. -
      5. BlobRef
      6. -

      -

      - - - Data - - -

      - - -

      Data is a uniquely identified piece of data available for retrieval or transfer.

      - -

      Multiple data items can be attached to a message when sending data off-chain -to another party in a multi-party system. Note that if you pass data in-line when -sending a message, those data elements will be stored separately to the message -and available to retrieve separately later.

      - -

      An UUID is allocated to each data resource.

      - -

      A hash is also calculated as follows:

      - -
        -
      • If there is only data, the hash is of the value serialized as JSON with -no additional whitespace (order of the keys is retained from the original -upload order).
      • -
      • If there is only a blob attachment, the hash is of the blob data.
      • -
      • There is is both a blob and a value, then the hash is a hash of the -concatenation of a hash of the value and a hash of the blob.
      • -
      -

      - - - Value - JSON data stored in the core database - - -

      - - -

      Each data resource can contain a value, which is any JSON type. String, number, -boolean, array or object. This value is stored directly in the FireFly database.

      - -

      If the value you are storing is not JSON data, but is small enough you want it to -be stored in the core database, then use a JSON string to store an encoded form -of your data (such as XML, CSV etc.).

      -

      - - - Datatype - validation of agreed data types - - -

      - - -

      A datatype can be associated with your data, causing FireFly to verify the -value against a schema before accepting it (on upload, or receipt from another -party in the network).

      - -

      These datatypes are pre-established via broadcast messages, and support versioning. -Use this system to enforce a set of common data types for exchange of data -across your business network, and reduce the overhead of data verification
      -required in the application/integration tier.

      - -
      -

      More information in the Datatype section

      -
      -

      - - - Blob - binary data stored via the Data Exchange - - -

      - - -

      Data resources can also contain a blob attachment, which is stored via the -Data Exchange plugin outside of the FireFly core database. This is intended for -large data payloads, which might be structured or unstructured. PDF documents, -multi-MB XML payloads, CSV data exports, JPEG images video files etc.

      - -

      A Data resource can contain both a value JSON payload, and a blob attachment, -meaning that you bind a set of metadata to a binary payload. For example -a set of extracted metadata from OCR processing of a PDF document.

      - -

      One special case is a filename for a document. This pattern -is so common for file/document management scenarios, that special handling -is provided for it. If a JSON object is stored in value, and it has a property -called name, then this value forms part of the data hash (as does every field -in the value) and is stored in a separately indexed blob.name field.

      - -

      The upload REST API provides an autometa form field, which can be set to ask -FireFly core to automatically set the value to contain the filename, size, and -MIME type from the file upload.

      -

      - - - Example - - -

      - - -
      {
      -    "id": "4f11e022-01f4-4c3f-909f-5226947d9ef0",
      -    "validator": "json",
      -    "namespace": "ns1",
      -    "hash": "5e2758423c99b799f53d3f04f587f5716c1ff19f1d1a050f40e02ea66860b491",
      -    "created": "2022-05-16T01:23:15Z",
      -    "datatype": {
      -        "name": "widget",
      -        "version": "v1.2.3"
      -    },
      -    "value": {
      -        "name": "filename.pdf",
      -        "a": "example",
      -        "b": {
      -            "c": 12345
      -        }
      -    },
      -    "blob": {
      -        "hash": "cef238f7b02803a799f040cdabe285ad5cd6db4a15cb9e2a1000f2860884c7ad",
      -        "size": 12345,
      -        "name": "filename.pdf"
      -    }
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the data resourceUUID
      validatorThe data validator typeFFEnum:
      namespaceThe namespace of the data resourcestring
      hashThe hash of the data resource. Derived from the value and the hash of any binary blob attachmentBytes32
      createdThe creation time of the data resourceFFTime
      datatypeThe optional datatype to use of validation of this dataDatatypeRef
      valueThe value for the data, stored in the FireFly core database. Can be any JSON type - object, array, string, number or boolean. Can be combined with a binary blob attachmentJSONAny
      publicIf the JSON value has been published to shared storage, this field is the id of the data in the shared storage plugin (IPFS hash etc.)string
      blobAn optional hash reference to a binary blob attachmentBlobRef
      -

      - - - DatatypeRef - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      nameThe name of the datatypestring
      versionThe version of the datatype. Semantic versioning is encouraged, such as v1.0.1string
      -

      - - - BlobRef - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      hashThe hash of the binary blob dataBytes32
      sizeThe size of the binary dataint64
      nameThe name field from the metadata attached to the blob, commonly used as a path/filename, and indexed for searchstring
      pathIf a name is specified, this field stores the ‘/’ prefixed and separated path extracted from the full namestring
      publicIf the blob data has been published to shared storage, this field is the id of the data in the shared storage plugin (IPFS hash etc.)string
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/data/index.html b/head/reference/types/data/index.html new file mode 100644 index 000000000..d54943dac --- /dev/null +++ b/head/reference/types/data/index.html @@ -0,0 +1,3722 @@ + + + + + + + + + + + + + + + + + + + + + + + Data - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Data

      + + +

      Data is a uniquely identified piece of data available for retrieval or transfer.

      +

      Multiple data items can be attached to a message when sending data off-chain +to another party in a multi-party system. Note that if you pass data in-line when +sending a message, those data elements will be stored separately to the message +and available to retrieve separately later.

      +

      An UUID is allocated to each data resource.

      +

      A hash is also calculated as follows:

      +
        +
      • If there is only data, the hash is of the value serialized as JSON with + no additional whitespace (order of the keys is retained from the original + upload order).
      • +
      • If there is only a blob attachment, the hash is of the blob data.
      • +
      • There is is both a blob and a value, then the hash is a hash of the + concatenation of a hash of the value and a hash of the blob.
      • +
      +

      Value - JSON data stored in the core database

      +

      Each data resource can contain a value, which is any JSON type. String, number, +boolean, array or object. This value is stored directly in the FireFly database.

      +

      If the value you are storing is not JSON data, but is small enough you want it to +be stored in the core database, then use a JSON string to store an encoded form +of your data (such as XML, CSV etc.).

      +

      Datatype - validation of agreed data types

      +

      A datatype can be associated with your data, causing FireFly to verify the +value against a schema before accepting it (on upload, or receipt from another +party in the network).

      +

      These datatypes are pre-established via broadcast messages, and support versioning. +Use this system to enforce a set of common data types for exchange of data +across your business network, and reduce the overhead of data verification\ +required in the application/integration tier.

      +
      +

      More information in the Datatype section

      +
      +

      Blob - binary data stored via the Data Exchange

      +

      Data resources can also contain a blob attachment, which is stored via the +Data Exchange plugin outside of the FireFly core database. This is intended for +large data payloads, which might be structured or unstructured. PDF documents, +multi-MB XML payloads, CSV data exports, JPEG images video files etc.

      +

      A Data resource can contain both a value JSON payload, and a blob attachment, +meaning that you bind a set of metadata to a binary payload. For example +a set of extracted metadata from OCR processing of a PDF document.

      +

      One special case is a filename for a document. This pattern +is so common for file/document management scenarios, that special handling +is provided for it. If a JSON object is stored in value, and it has a property +called name, then this value forms part of the data hash (as does every field +in the value) and is stored in a separately indexed blob.name field.

      +

      The upload REST API provides an autometa form field, which can be set to ask +FireFly core to automatically set the value to contain the filename, size, and +MIME type from the file upload.

      + + +

      Example

      +
      {
      +    "id": "4f11e022-01f4-4c3f-909f-5226947d9ef0",
      +    "validator": "json",
      +    "namespace": "ns1",
      +    "hash": "5e2758423c99b799f53d3f04f587f5716c1ff19f1d1a050f40e02ea66860b491",
      +    "created": "2022-05-16T01:23:15Z",
      +    "datatype": {
      +        "name": "widget",
      +        "version": "v1.2.3"
      +    },
      +    "value": {
      +        "name": "filename.pdf",
      +        "a": "example",
      +        "b": {
      +            "c": 12345
      +        }
      +    },
      +    "blob": {
      +        "hash": "cef238f7b02803a799f040cdabe285ad5cd6db4a15cb9e2a1000f2860884c7ad",
      +        "size": 12345,
      +        "name": "filename.pdf"
      +    }
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the data resourceUUID
      validatorThe data validator typeFFEnum:
      namespaceThe namespace of the data resourcestring
      hashThe hash of the data resource. Derived from the value and the hash of any binary blob attachmentBytes32
      createdThe creation time of the data resourceFFTime
      datatypeThe optional datatype to use of validation of this dataDatatypeRef
      valueThe value for the data, stored in the FireFly core database. Can be any JSON type - object, array, string, number or boolean. Can be combined with a binary blob attachmentJSONAny
      publicIf the JSON value has been published to shared storage, this field is the id of the data in the shared storage plugin (IPFS hash etc.)string
      blobAn optional hash reference to a binary blob attachmentBlobRef
      +

      DatatypeRef

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      nameThe name of the datatypestring
      versionThe version of the datatype. Semantic versioning is encouraged, such as v1.0.1string
      +

      BlobRef

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      hashThe hash of the binary blob dataBytes32
      sizeThe size of the binary dataint64
      nameThe name field from the metadata attached to the blob, commonly used as a path/filename, and indexed for searchstring
      pathIf a name is specified, this field stores the '/' prefixed and separated path extracted from the full namestring
      publicIf the blob data has been published to shared storage, this field is the id of the data in the shared storage plugin (IPFS hash etc.)string
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/dataref.html b/head/reference/types/dataref.html deleted file mode 100644 index c8b7b02da..000000000 --- a/head/reference/types/dataref.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - - - - - DataRef - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -DataRef | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - DataRef - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. DataRef
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -

      -

      - - - DataRef - - -

      - -

      - - - Example - - -

      - - -
      {
      -    "id": "5bea782a-6cf2-4e01-95ee-cb5fa05873e9",
      -    "hash": "8b7df143d91c716ecfa5fc1730022f6b421b05cedee8fd52b1fc65a96030ad52"
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the referenced data resourceUUID
      hashThe hash of the referenced dataBytes32
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/datatype.html b/head/reference/types/datatype.html deleted file mode 100644 index 5050270ea..000000000 --- a/head/reference/types/datatype.html +++ /dev/null @@ -1,454 +0,0 @@ - - - - - - - - - Datatype - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Datatype | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Datatype - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Datatype
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -

      -

      - - - Datatype - - -

      - - -

      A datatype defines the format of some data that can be shared between parties, in a way -that FireFly can enforce consistency of that data against the schema.

      - -

      Data that does not match the schema associated with it will not be accepted on -upload to FireFly, and if this were bypassed by a participant in some way -it would be rejected by all parties and result in a message_rejected event -(rather than message_confirmed event).

      - -

      Currently JSON Schema validation of data is supported.

      - -

      The system for defining datatypes is pluggable, to support other schemes in the future, -such as XML Schema, or CSV, EDI etc.

      -

      - - - Example - - -

      - - -
      {
      -    "id": "3a479f7e-ddda-4bda-aa24-56d06c0bf08e",
      -    "message": "bfcf904c-bdf7-40aa-bbd7-567f625c26c0",
      -    "validator": "json",
      -    "namespace": "ns1",
      -    "name": "widget",
      -    "version": "1.0.0",
      -    "hash": "639cd98c893fa45a9df6fd87bd0393a9b39e31e26fbb1eeefe90cb40c3fa02d2",
      -    "created": "2022-05-16T01:23:16Z",
      -    "value": {
      -        "$id": "https://example.com/widget.schema.json",
      -        "$schema": "https://json-schema.org/draft/2020-12/schema",
      -        "title": "Widget",
      -        "type": "object",
      -        "properties": {
      -            "id": {
      -                "type": "string",
      -                "description": "The unique identifier for the widget."
      -            },
      -            "name": {
      -                "type": "string",
      -                "description": "The person's last name."
      -            }
      -        },
      -        "additionalProperties": false
      -    }
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the datatypeUUID
      messageThe UUID of the broadcast message that was used to publish this datatype to the networkUUID
      validatorThe validator that should be used to verify this datatypeFFEnum:
      "json"
      "none"
      "definition"
      namespaceThe namespace of the datatype. Data resources can only be created referencing datatypes in the same namespacestring
      nameThe name of the datatypestring
      versionThe version of the datatype. Multiple versions can exist with the same name. Use of semantic versioning is encourages, such as v1.0.1string
      hashThe hash of the value, such as the JSON schema. Allows all parties to be confident they have the exact same rules for verifying data created against a datatypeBytes32
      createdThe time the datatype was createdFFTime
      valueThe definition of the datatype, in the syntax supported by the validator (such as a JSON Schema definition)JSONAny
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/datatype/index.html b/head/reference/types/datatype/index.html new file mode 100644 index 000000000..ca46725bc --- /dev/null +++ b/head/reference/types/datatype/index.html @@ -0,0 +1,3538 @@ + + + + + + + + + + + + + + + + + + + + + + + Datatype - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Datatype

      + + +

      A datatype defines the format of some data that can be shared between parties, in a way +that FireFly can enforce consistency of that data against the schema.

      +

      Data that does not match the schema associated with it will not be accepted on +upload to FireFly, and if this were bypassed by a participant in some way +it would be rejected by all parties and result in a message_rejected event +(rather than message_confirmed event).

      +

      Currently JSON Schema validation of data is supported.

      +

      The system for defining datatypes is pluggable, to support other schemes in the future, +such as XML Schema, or CSV, EDI etc.

      + + +

      Example

      +
      {
      +    "id": "3a479f7e-ddda-4bda-aa24-56d06c0bf08e",
      +    "message": "bfcf904c-bdf7-40aa-bbd7-567f625c26c0",
      +    "validator": "json",
      +    "namespace": "ns1",
      +    "name": "widget",
      +    "version": "1.0.0",
      +    "hash": "639cd98c893fa45a9df6fd87bd0393a9b39e31e26fbb1eeefe90cb40c3fa02d2",
      +    "created": "2022-05-16T01:23:16Z",
      +    "value": {
      +        "$id": "https://example.com/widget.schema.json",
      +        "$schema": "https://json-schema.org/draft/2020-12/schema",
      +        "title": "Widget",
      +        "type": "object",
      +        "properties": {
      +            "id": {
      +                "type": "string",
      +                "description": "The unique identifier for the widget."
      +            },
      +            "name": {
      +                "type": "string",
      +                "description": "The person's last name."
      +            }
      +        },
      +        "additionalProperties": false
      +    }
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the datatypeUUID
      messageThe UUID of the broadcast message that was used to publish this datatype to the networkUUID
      validatorThe validator that should be used to verify this datatypeFFEnum:
      "json"
      "none"
      "definition"
      namespaceThe namespace of the datatype. Data resources can only be created referencing datatypes in the same namespacestring
      nameThe name of the datatypestring
      versionThe version of the datatype. Multiple versions can exist with the same name. Use of semantic versioning is encourages, such as v1.0.1string
      hashThe hash of the value, such as the JSON schema. Allows all parties to be confident they have the exact same rules for verifying data created against a datatypeBytes32
      createdThe time the datatype was createdFFTime
      valueThe definition of the datatype, in the syntax supported by the validator (such as a JSON Schema definition)JSONAny
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/event.html b/head/reference/types/event.html deleted file mode 100644 index e0d1f484b..000000000 --- a/head/reference/types/event.html +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - - - - Event - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Event | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Event - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Event
          -
        1. Sequence
        2. -
        3. Reference
        4. -
        5. Correlator
        6. -
        7. Topic
        8. -
        9. Transaction
        10. -
        11. Reference, Topic and Correlator by Event Type
        12. -
        13. Example
        14. -
        15. Field Descriptions
        16. -
        -
      2. -

      -

      - - - Event - - -

      - - -

      Every Event emitted by FireFly shares a common structure.

      - -
      -

      See Events for a reference for how the overall event bus -in Hyperledger FireFly operates, and descriptions of all the sub-categories -of events.

      -
      -

      - - - Sequence - - -

      - - -

      A local sequence number is assigned to each event, and you can -use an API to query events using this sequence number in exactly the same -order that they are delivered to your application.

      -

      - - - Reference - - -

      - - -

      Events have a reference to the UUID of an object that is the subject of the event, -such as a detailed Blockchain Event, or an off-chain -Message.

      - -

      When events are delivered to your application, the reference field is -automatically retrieved and included in the JSON payload -that is delivered to your application.

      - -

      You can use the ?fetchreferences query parameter on API calls to request the same -in-line JSON payload be included in query results.

      - -

      The type of the reference also determines what subscription filters apply -when performing server-side filters.

      - -

      Here is the mapping between event types, and the object that you find in -the reference field.

      -

      - - - Correlator - - -

      - - -

      For some event types, there is a secondary reference to an object that is -associated with the event. This is set in a correlator field on the -Event, but is not automatically fetched. This field is primarily used -for the confirm option on API calls to allow FireFly to determine -when a request has succeeded/failed.

      -

      - - - Topic - - -

      - - -

      Events have a topic, and how that topic is determined is specific to -the type of event. This is intended to be a property you would use to -filter events to your application, or query all historical events -associated with a given business data stream.

      - -

      For example when you send a Message, you set the topics -you want that message to apply to, and FireFly ensures a consistent global -order between all parties that receive that message.

      -

      - - - Transaction - - -

      - - -

      When actions are submitted by a FireFly node, they are performed -within a FireFly Transaction. The events that occur -as a direct result of that transaction, are tagged with the transaction -ID so that they can be grouped together.

      - -

      This construct is a distinct higher level construct than a Blockchain -transaction, that groups together a number of operations/events that -might be on-chain or off-chain. In some cases, such as unpinned off-chain -data transfer, a FireFly transaction can exist when there is no -blockchain transaction at all. -Wherever possible you will find that FireFly tags the FireFly transaction -with any associated Blockchain transaction(s).

      - -

      Note that some events cannot be tagged with a Transaction ID:

      - -
        -
      • Blockchain events, unless they were part of a batch-pin transaction -for transfer of a message
      • -
      • Token transfers/approvals, unless they had a message transfer associated -with them (and included a data payload in the event they emitted)
      • -
      -

      - - - Reference, Topic and Correlator by Event Type - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      TypesReferenceTopicCorrelator
      transaction_submittedTransactiontransaction.type 
      message_confirmed
      message_rejected
      Messagemessage.header.topics[i]*message.header.cid
      token_pool_confirmedTokenPooltokenPool.id 
      token_pool_op_failedOperationtokenPool.idtokenPool.id
      token_transfer_confirmedTokenTransfertokenPool.id 
      token_transfer_op_failedOperationtokenPool.idtokenTransfer.localId
      token_approval_confirmedTokenApprovaltokenPool.id 
      token_approval_op_failedOperationtokenPool.idtokenApproval.localId
      namespace_confirmedNamespace"ff_definition" 
      datatype_confirmedDatatype"ff_definition" 
      identity_confirmed
      identity_updated
      Identity"ff_definition" 
      contract_interface_confirmedFFI"ff_definition" 
      contract_api_confirmedContractAPI"ff_definition" 
      blockchain_event_receivedBlockchainEventFrom listener ** 
      blockchain_invoke_op_succeededOperation  
      blockchain_invoke_op_failedOperation  
      blockchain_contract_deploy_op_succeededOperation  
      blockchain_contract_deploy_op_failedOperation  
      - -
      -
        -
      • A separate event is emitted for each topic associated with a Message.
      • -
      -
      - -
      -

      ** The topic for a blockchain event is inherited from the blockchain listener, - allowing you to create multiple blockchain listeners that all deliver messages - to your application on a single FireFly topic.

      -
      -

      - - - Example - - -

      - - -
      {
      -    "id": "5f875824-b36b-4559-9791-a57a2e2b30dd",
      -    "sequence": 168,
      -    "type": "transaction_submitted",
      -    "namespace": "ns1",
      -    "reference": "0d12aa75-5ed8-48a7-8b54-45274c6edcb1",
      -    "tx": "0d12aa75-5ed8-48a7-8b54-45274c6edcb1",
      -    "topic": "batch_pin",
      -    "created": "2022-05-16T01:23:15Z"
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID assigned to this event by your local FireFly nodeUUID
      sequenceA sequence indicating the order in which events are delivered to your application. Assure to be unique per event in your local FireFly database (unlike the created timestamp)int64
      typeAll interesting activity in FireFly is emitted as a FireFly event, of a given type. The ‘type’ combined with the ‘reference’ can be used to determine how to process the event within your applicationFFEnum:
      "transaction_submitted"
      "message_confirmed"
      "message_rejected"
      "datatype_confirmed"
      "identity_confirmed"
      "identity_updated"
      "token_pool_confirmed"
      "token_pool_op_failed"
      "token_transfer_confirmed"
      "token_transfer_op_failed"
      "token_approval_confirmed"
      "token_approval_op_failed"
      "contract_interface_confirmed"
      "contract_api_confirmed"
      "blockchain_event_received"
      "blockchain_invoke_op_succeeded"
      "blockchain_invoke_op_failed"
      "blockchain_contract_deploy_op_succeeded"
      "blockchain_contract_deploy_op_failed"
      namespaceThe namespace of the event. Your application must subscribe to events within a namespacestring
      referenceThe UUID of an resource that is the subject of this event. The event type determines what type of resource is referenced, and whether this field might be unsetUUID
      correlatorFor message events, this is the ‘header.cid’ field from the referenced message. For certain other event types, a secondary object is referenced such as a token poolUUID
      txThe UUID of a transaction that is event is part of. Not all events are part of a transactionUUID
      topicA stream of information this event relates to. For message confirmation events, a separate event is emitted for each topic in the message. For blockchain events, the listener specifies the topic. Rules exist for how the topic is set for other event typesstring
      createdThe time the event was emitted. Not guaranteed to be unique, or to increase between events in the same order as the final sequence events are delivered to your application. As such, the ‘sequence’ field should be used instead of the ‘created’ field for querying events in the exact order they are delivered to applicationsFFTime
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/event/index.html b/head/reference/types/event/index.html new file mode 100644 index 000000000..f91928754 --- /dev/null +++ b/head/reference/types/event/index.html @@ -0,0 +1,3805 @@ + + + + + + + + + + + + + + + + + + + + + + + Event - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      + +
      +
      + + + +
      +
      + + + + + + + +

      Event

      + + +

      Every Event emitted by FireFly shares a common structure.

      +
      +

      See Events for a reference for how the overall event bus +in Hyperledger FireFly operates, and descriptions of all the sub-categories +of events.

      +
      +

      Sequence

      +

      A local sequence number is assigned to each event, and you can +use an API to query events using this sequence number in exactly the same +order that they are delivered to your application.

      +

      Reference

      +

      Events have a reference to the UUID of an object that is the subject of the event, +such as a detailed Blockchain Event, or an off-chain +Message.

      +

      When events are delivered to your application, the reference field is +automatically retrieved and included in the JSON payload +that is delivered to your application.

      +

      You can use the ?fetchreferences query parameter on API calls to request the same +in-line JSON payload be included in query results.

      +

      The type of the reference also determines what subscription filters apply +when performing server-side filters.

      +

      Here is the mapping between event types, and the object that you find in +the reference field.

      +

      Correlator

      +

      For some event types, there is a secondary reference to an object that is +associated with the event. This is set in a correlator field on the +Event, but is not automatically fetched. This field is primarily used +for the confirm option on API calls to allow FireFly to determine +when a request has succeeded/failed.

      +

      Topic

      +

      Events have a topic, and how that topic is determined is specific to +the type of event. This is intended to be a property you would use to +filter events to your application, or query all historical events +associated with a given business data stream.

      +

      For example when you send a Message, you set the topics +you want that message to apply to, and FireFly ensures a consistent global +order between all parties that receive that message.

      +

      Transaction

      +

      When actions are submitted by a FireFly node, they are performed +within a FireFly Transaction. The events that occur +as a direct result of that transaction, are tagged with the transaction +ID so that they can be grouped together.

      +

      This construct is a distinct higher level construct than a Blockchain +transaction, that groups together a number of operations/events that +might be on-chain or off-chain. In some cases, such as unpinned off-chain +data transfer, a FireFly transaction can exist when there is no +blockchain transaction at all. +Wherever possible you will find that FireFly tags the FireFly transaction +with any associated Blockchain transaction(s).

      +

      Note that some events cannot be tagged with a Transaction ID:

      +
        +
      • Blockchain events, unless they were part of a batch-pin transaction + for transfer of a message
      • +
      • Token transfers/approvals, unless they had a message transfer associated + with them (and included a data payload in the event they emitted)
      • +
      +

      Reference, Topic and Correlator by Event Type

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TypesReferenceTopicCorrelator
      transaction_submittedTransactiontransaction.type
      message_confirmed
      message_rejected
      Messagemessage.header.topics[i]*message.header.cid
      token_pool_confirmedTokenPooltokenPool.id
      token_pool_op_failedOperationtokenPool.idtokenPool.id
      token_transfer_confirmedTokenTransfertokenPool.id
      token_transfer_op_failedOperationtokenPool.idtokenTransfer.localId
      token_approval_confirmedTokenApprovaltokenPool.id
      token_approval_op_failedOperationtokenPool.idtokenApproval.localId
      namespace_confirmedNamespace"ff_definition"
      datatype_confirmedDatatype"ff_definition"
      identity_confirmed
      identity_updated
      Identity"ff_definition"
      contract_interface_confirmedFFI"ff_definition"
      contract_api_confirmedContractAPI"ff_definition"
      blockchain_event_receivedBlockchainEventFrom listener **
      blockchain_invoke_op_succeededOperation
      blockchain_invoke_op_failedOperation
      blockchain_contract_deploy_op_succeededOperation
      blockchain_contract_deploy_op_failedOperation
      +
      +
        +
      • A separate event is emitted for each topic associated with a Message.
      • +
      +

      ** The topic for a blockchain event is inherited from the blockchain listener, +allowing you to create multiple blockchain listeners that all deliver messages +to your application on a single FireFly topic.

      +
      + + +

      Example

      +
      {
      +    "id": "5f875824-b36b-4559-9791-a57a2e2b30dd",
      +    "sequence": 168,
      +    "type": "transaction_submitted",
      +    "namespace": "ns1",
      +    "reference": "0d12aa75-5ed8-48a7-8b54-45274c6edcb1",
      +    "tx": "0d12aa75-5ed8-48a7-8b54-45274c6edcb1",
      +    "topic": "batch_pin",
      +    "created": "2022-05-16T01:23:15Z"
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID assigned to this event by your local FireFly nodeUUID
      sequenceA sequence indicating the order in which events are delivered to your application. Assure to be unique per event in your local FireFly database (unlike the created timestamp)int64
      typeAll interesting activity in FireFly is emitted as a FireFly event, of a given type. The 'type' combined with the 'reference' can be used to determine how to process the event within your applicationFFEnum:
      "transaction_submitted"
      "message_confirmed"
      "message_rejected"
      "datatype_confirmed"
      "identity_confirmed"
      "identity_updated"
      "token_pool_confirmed"
      "token_pool_op_failed"
      "token_transfer_confirmed"
      "token_transfer_op_failed"
      "token_approval_confirmed"
      "token_approval_op_failed"
      "contract_interface_confirmed"
      "contract_api_confirmed"
      "blockchain_event_received"
      "blockchain_invoke_op_succeeded"
      "blockchain_invoke_op_failed"
      "blockchain_contract_deploy_op_succeeded"
      "blockchain_contract_deploy_op_failed"
      namespaceThe namespace of the event. Your application must subscribe to events within a namespacestring
      referenceThe UUID of an resource that is the subject of this event. The event type determines what type of resource is referenced, and whether this field might be unsetUUID
      correlatorFor message events, this is the 'header.cid' field from the referenced message. For certain other event types, a secondary object is referenced such as a token poolUUID
      txThe UUID of a transaction that is event is part of. Not all events are part of a transactionUUID
      topicA stream of information this event relates to. For message confirmation events, a separate event is emitted for each topic in the message. For blockchain events, the listener specifies the topic. Rules exist for how the topic is set for other event typesstring
      createdThe time the event was emitted. Not guaranteed to be unique, or to increase between events in the same order as the final sequence events are delivered to your application. As such, the 'sequence' field should be used instead of the 'created' field for querying events in the exact order they are delivered to applicationsFFTime
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/ffi.html b/head/reference/types/ffi.html deleted file mode 100644 index dd2d6509a..000000000 --- a/head/reference/types/ffi.html +++ /dev/null @@ -1,801 +0,0 @@ - - - - - - - - - FFI - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -FFI | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - FFI - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. FFI
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -
      3. FFIMethod
      4. -
      5. FFIParam
      6. -
      7. FFIEvent
      8. -
      9. FFIParam
      10. -
      11. FFIError
      12. -
      13. FFIParam
      14. -

      -

      - - - FFI - - -

      - - -

      See FireFly Interface Format

      -

      - - - Example - - -

      - - -
      {
      -    "id": "c35d3449-4f24-4676-8e64-91c9e46f06c4",
      -    "message": "e4ad2077-5714-416e-81f9-7964a6223b6f",
      -    "namespace": "ns1",
      -    "name": "SimpleStorage",
      -    "description": "A simple example contract in Solidity",
      -    "version": "v0.0.1",
      -    "methods": [
      -        {
      -            "id": "8f3289dd-3a19-4a9f-aab3-cb05289b013c",
      -            "interface": "c35d3449-4f24-4676-8e64-91c9e46f06c4",
      -            "name": "get",
      -            "namespace": "ns1",
      -            "pathname": "get",
      -            "description": "Get the current value",
      -            "params": [],
      -            "returns": [
      -                {
      -                    "name": "output",
      -                    "schema": {
      -                        "type": "integer",
      -                        "details": {
      -                            "type": "uint256"
      -                        }
      -                    }
      -                }
      -            ],
      -            "details": {
      -                "stateMutability": "viewable"
      -            }
      -        },
      -        {
      -            "id": "fc6f54ee-2e3c-4e56-b17c-4a1a0ae7394b",
      -            "interface": "c35d3449-4f24-4676-8e64-91c9e46f06c4",
      -            "name": "set",
      -            "namespace": "ns1",
      -            "pathname": "set",
      -            "description": "Set the value",
      -            "params": [
      -                {
      -                    "name": "newValue",
      -                    "schema": {
      -                        "type": "integer",
      -                        "details": {
      -                            "type": "uint256"
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": [],
      -            "details": {
      -                "stateMutability": "payable"
      -            }
      -        }
      -    ],
      -    "events": [
      -        {
      -            "id": "9f653f93-86f4-45bc-be75-d7f5888fbbc0",
      -            "interface": "c35d3449-4f24-4676-8e64-91c9e46f06c4",
      -            "namespace": "ns1",
      -            "pathname": "Changed",
      -            "signature": "Changed(address,uint256)",
      -            "name": "Changed",
      -            "description": "Emitted when the value changes",
      -            "params": [
      -                {
      -                    "name": "_from",
      -                    "schema": {
      -                        "type": "string",
      -                        "details": {
      -                            "type": "address",
      -                            "indexed": true
      -                        }
      -                    }
      -                },
      -                {
      -                    "name": "_value",
      -                    "schema": {
      -                        "type": "integer",
      -                        "details": {
      -                            "type": "uint256"
      -                        }
      -                    }
      -                }
      -            ]
      -        }
      -    ],
      -    "published": false
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the FireFly interface (FFI) smart contract definitionUUID
      messageThe UUID of the broadcast message that was used to publish this FFI to the networkUUID
      namespaceThe namespace of the FFIstring
      nameThe name of the FFI - usually matching the smart contract namestring
      networkNameThe published name of the FFI within the multiparty networkstring
      descriptionA description of the smart contract this FFI representsstring
      versionA version for the FFI - use of semantic versioning such as ‘v1.0.1’ is encouragedstring
      methodsAn array of smart contract method definitionsFFIMethod[]
      eventsAn array of smart contract event definitionsFFIEvent[]
      errorsAn array of smart contract error definitionsFFIError[]
      publishedIndicates if the FFI is published to other members of the multiparty networkbool
      -

      - - - FFIMethod - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the FFI method definitionUUID
      interfaceThe UUID of the FFI smart contract definition that this method is part ofUUID
      nameThe name of the methodstring
      namespaceThe namespace of the FFIstring
      pathnameThe unique name allocated to this method within the FFI for use on URL paths. Supports contracts that have multiple method overrides with the same namestring
      descriptionA description of the smart contract methodstring
      paramsAn array of method parameter/argument definitionsFFIParam[]
      returnsAn array of method return definitionsFFIParam[]
      detailsAdditional blockchain specific fields about this method from the original smart contract. Used by the blockchain plugin and for documentation generation.JSONObject
      -

      - - - FFIParam - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      nameThe name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contractstring
      schemaFireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detailJSONAny
      -

      - - - FFIEvent - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the FFI event definitionUUID
      interfaceThe UUID of the FFI smart contract definition that this event is part ofUUID
      namespaceThe namespace of the FFIstring
      pathnameThe unique name allocated to this event within the FFI for use on URL paths. Supports contracts that have multiple event overrides with the same namestring
      signatureThe stringified signature of the event, as computed by the blockchain pluginstring
      nameThe name of the eventstring
      descriptionA description of the smart contract eventstring
      paramsAn array of event parameter/argument definitionsFFIParam[]
      detailsAdditional blockchain specific fields about this event from the original smart contract. Used by the blockchain plugin and for documentation generation.JSONObject
      -

      - - - FFIParam - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      nameThe name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contractstring
      schemaFireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detailJSONAny
      -

      - - - FFIError - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the FFI error definitionUUID
      interfaceThe UUID of the FFI smart contract definition that this error is part ofUUID
      namespaceThe namespace of the FFIstring
      pathnameThe unique name allocated to this error within the FFI for use on URL pathsstring
      signatureThe stringified signature of the error, as computed by the blockchain pluginstring
      nameThe name of the errorstring
      descriptionA description of the smart contract errorstring
      paramsAn array of error parameter/argument definitionsFFIParam[]
      -

      - - - FFIParam - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      nameThe name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contractstring
      schemaFireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detailJSONAny
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/ffi/index.html b/head/reference/types/ffi/index.html new file mode 100644 index 000000000..3dc726a3d --- /dev/null +++ b/head/reference/types/ffi/index.html @@ -0,0 +1,3942 @@ + + + + + + + + + + + + + + + + + + + + + + + FFI - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      FFI

      + + +

      See FireFly Interface Format

      + + +

      Example

      +
      {
      +    "id": "c35d3449-4f24-4676-8e64-91c9e46f06c4",
      +    "message": "e4ad2077-5714-416e-81f9-7964a6223b6f",
      +    "namespace": "ns1",
      +    "name": "SimpleStorage",
      +    "description": "A simple example contract in Solidity",
      +    "version": "v0.0.1",
      +    "methods": [
      +        {
      +            "id": "8f3289dd-3a19-4a9f-aab3-cb05289b013c",
      +            "interface": "c35d3449-4f24-4676-8e64-91c9e46f06c4",
      +            "name": "get",
      +            "namespace": "ns1",
      +            "pathname": "get",
      +            "description": "Get the current value",
      +            "params": [],
      +            "returns": [
      +                {
      +                    "name": "output",
      +                    "schema": {
      +                        "type": "integer",
      +                        "details": {
      +                            "type": "uint256"
      +                        }
      +                    }
      +                }
      +            ],
      +            "details": {
      +                "stateMutability": "viewable"
      +            }
      +        },
      +        {
      +            "id": "fc6f54ee-2e3c-4e56-b17c-4a1a0ae7394b",
      +            "interface": "c35d3449-4f24-4676-8e64-91c9e46f06c4",
      +            "name": "set",
      +            "namespace": "ns1",
      +            "pathname": "set",
      +            "description": "Set the value",
      +            "params": [
      +                {
      +                    "name": "newValue",
      +                    "schema": {
      +                        "type": "integer",
      +                        "details": {
      +                            "type": "uint256"
      +                        }
      +                    }
      +                }
      +            ],
      +            "returns": [],
      +            "details": {
      +                "stateMutability": "payable"
      +            }
      +        }
      +    ],
      +    "events": [
      +        {
      +            "id": "9f653f93-86f4-45bc-be75-d7f5888fbbc0",
      +            "interface": "c35d3449-4f24-4676-8e64-91c9e46f06c4",
      +            "namespace": "ns1",
      +            "pathname": "Changed",
      +            "signature": "Changed(address,uint256)",
      +            "name": "Changed",
      +            "description": "Emitted when the value changes",
      +            "params": [
      +                {
      +                    "name": "_from",
      +                    "schema": {
      +                        "type": "string",
      +                        "details": {
      +                            "type": "address",
      +                            "indexed": true
      +                        }
      +                    }
      +                },
      +                {
      +                    "name": "_value",
      +                    "schema": {
      +                        "type": "integer",
      +                        "details": {
      +                            "type": "uint256"
      +                        }
      +                    }
      +                }
      +            ]
      +        }
      +    ],
      +    "published": false
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the FireFly interface (FFI) smart contract definitionUUID
      messageThe UUID of the broadcast message that was used to publish this FFI to the networkUUID
      namespaceThe namespace of the FFIstring
      nameThe name of the FFI - usually matching the smart contract namestring
      networkNameThe published name of the FFI within the multiparty networkstring
      descriptionA description of the smart contract this FFI representsstring
      versionA version for the FFI - use of semantic versioning such as 'v1.0.1' is encouragedstring
      methodsAn array of smart contract method definitionsFFIMethod[]
      eventsAn array of smart contract event definitionsFFIEvent[]
      errorsAn array of smart contract error definitionsFFIError[]
      publishedIndicates if the FFI is published to other members of the multiparty networkbool
      +

      FFIMethod

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the FFI method definitionUUID
      interfaceThe UUID of the FFI smart contract definition that this method is part ofUUID
      nameThe name of the methodstring
      namespaceThe namespace of the FFIstring
      pathnameThe unique name allocated to this method within the FFI for use on URL paths. Supports contracts that have multiple method overrides with the same namestring
      descriptionA description of the smart contract methodstring
      paramsAn array of method parameter/argument definitionsFFIParam[]
      returnsAn array of method return definitionsFFIParam[]
      detailsAdditional blockchain specific fields about this method from the original smart contract. Used by the blockchain plugin and for documentation generation.JSONObject
      +

      FFIParam

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      nameThe name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contractstring
      schemaFireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detailJSONAny
      +

      FFIEvent

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the FFI event definitionUUID
      interfaceThe UUID of the FFI smart contract definition that this event is part ofUUID
      namespaceThe namespace of the FFIstring
      pathnameThe unique name allocated to this event within the FFI for use on URL paths. Supports contracts that have multiple event overrides with the same namestring
      signatureThe stringified signature of the event, as computed by the blockchain pluginstring
      nameThe name of the eventstring
      descriptionA description of the smart contract eventstring
      paramsAn array of event parameter/argument definitionsFFIParam[]
      detailsAdditional blockchain specific fields about this event from the original smart contract. Used by the blockchain plugin and for documentation generation.JSONObject
      +

      FFIParam

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      nameThe name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contractstring
      schemaFireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detailJSONAny
      +

      FFIError

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the FFI error definitionUUID
      interfaceThe UUID of the FFI smart contract definition that this error is part ofUUID
      namespaceThe namespace of the FFIstring
      pathnameThe unique name allocated to this error within the FFI for use on URL pathsstring
      signatureThe stringified signature of the error, as computed by the blockchain pluginstring
      nameThe name of the errorstring
      descriptionA description of the smart contract errorstring
      paramsAn array of error parameter/argument definitionsFFIParam[]
      +

      FFIParam

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      nameThe name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contractstring
      schemaFireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detailJSONAny
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/group.html b/head/reference/types/group.html deleted file mode 100644 index 588121bdf..000000000 --- a/head/reference/types/group.html +++ /dev/null @@ -1,558 +0,0 @@ - - - - - - - - - Group - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Group | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Group - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Group
          -
        1. Group identity hash
        2. -
        3. Private messaging architecture
        4. -
        5. Example
        6. -
        7. Field Descriptions
        8. -
        -
      2. -
      3. Member
      4. -

      -

      - - - Group - - -

      - - -

      A privacy group is a list of identities that should receive a private communication.

      - -

      When you send a private message, you can specify the list of participants in-line -and it will be resolved to a group. Or you can reference the group using its -identifying hash.

      - -

      The sender of a message must be included in the group along with the other -participants. The sender receives an event confirming the message, just as -any other participant would do.

      - -
      -

      The sender is included automatically in the group when members are -specified in-line, if it is omitted.

      -
      -

      - - - Group identity hash - - -

      - - -

      The identifying hash for a group is determined as follows:

      - -
        -
      • All identities are resolved to their DID. -
          -
        • An organization name or identity UUID can be used on input
        • -
        -
      • -
      • The UUID of the node that should receive the data for each participant is -determined (if not specified). -
          -
        • The first node found that is in the same identity hierarchy as the -participant identity, will be chosen.
        • -
        -
      • -
      • The list of participants is ordered by DID, with de-duplication of -any identities.
      • -
      • The namespace, name, and members array are then serialized into -a JSON object, without whitespace.
      • -
      • A SHA256 hash of the JSON object is calculated
      • -
      -

      - - - Private messaging architecture - - -

      - - -

      The mechanism that keeps data private and ordered, without leaking data to the -blockchain, is summarized in the below diagram.

      - -

      The key points are:

      - -
        -
      • Data is sent off-chain to all participants via the Data Exchange plugin -
          -
        • The Data Exchange is responsible for encryption and off-chain identity verification
        • -
        -
      • -
      • Only parties that are involved in the privacy group receive the data -
          -
        • Other parties are only able to view the blockchain transaction
        • -
        -
      • -
      • The hash and member list of the group are not shared outside of the privacy group -
          -
        • The name of the group can be used as an additional salt in generation of the group hash
        • -
        • The member list must be known by all members of the group to verify the blockchain transactions, -so the full group JSON structure is communicated privately with the first message -sent on a group
        • -
        -
      • -
      • The blockchain transaction is the source of truth for ordering -
          -
        • All members are able to detect a blockchain transaction is part of a group -they are a member of, from only the blockchain transaction - so they can block -processing of subsequent messages until the off-chain data arrives (asynchronously)
        • -
        -
      • -
      • The ordering context for messages is masked on the blockchain, so that two messages -that are for same group do not contain the same context -
          -
        • The ordering context (topic+group) is combined with a nonce that is incremented -for each individual sender, to form a message-specific hash.
        • -
        • For each blockchain transaction, this hash can be compared against the expected next -hash for each member to determine if it is a message on a known group - even without -the private data (which might arrive later)
        • -
        -
      • -
      - -
      -

      See NextPin for more information on the structure used for storing the next -expected masked context pin, for each member of the privacy group.

      -
      - -

      FireFly Privacy Model

      -

      - - - Example - - -

      - - -
      {
      -    "namespace": "ns1",
      -    "name": "",
      -    "members": [
      -        {
      -            "identity": "did:firefly:org/1111",
      -            "node": "4f563179-b4bd-4161-86e0-c2c1c0869c4f"
      -        },
      -        {
      -            "identity": "did:firefly:org/2222",
      -            "node": "61a99af8-c1f7-48ea-8fcc-489e4822a0ed"
      -        }
      -    ],
      -    "localNamespace": "ns1",
      -    "message": "0b9dfb76-103d-443d-92fd-b114fe07c54d",
      -    "hash": "c52ad6c034cf5c7382d9a294f49297096a52eb55cc2da696c564b2a276633b95",
      -    "created": "2022-05-16T01:23:16Z"
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      namespaceThe namespace of the group within the multiparty networkstring
      nameThe optional name of the group, allowing multiple unique groups to exist with the same list of recipientsstring
      membersThe list of members in this privacy groupMember[]
      localNamespaceThe local namespace of the groupstring
      messageThe message used to broadcast this group privately to the membersUUID
      hashThe identifier hash of this group. Derived from the name and group membersBytes32
      createdThe time when the group was first used to send a message in the networkFFTime
      -

      - - - Member - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      identityThe DID of the group memberstring
      nodeThe UUID of the node that receives a copy of the off-chain message for the identityUUID
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/group/index.html b/head/reference/types/group/index.html new file mode 100644 index 000000000..2e481536d --- /dev/null +++ b/head/reference/types/group/index.html @@ -0,0 +1,3643 @@ + + + + + + + + + + + + + + + + + + + + + + + Group - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Group

      + + +

      A privacy group is a list of identities that should receive a private communication.

      +

      When you send a private message, you can specify the list of participants in-line +and it will be resolved to a group. Or you can reference the group using its +identifying hash.

      +

      The sender of a message must be included in the group along with the other +participants. The sender receives an event confirming the message, just as +any other participant would do.

      +
      +

      The sender is included automatically in the group when members are +specified in-line, if it is omitted.

      +
      +

      Group identity hash

      +

      The identifying hash for a group is determined as follows:

      +
        +
      • All identities are resolved to their DID.
      • +
      • An organization name or identity UUID can be used on input
      • +
      • The UUID of the node that should receive the data for each participant is + determined (if not specified).
      • +
      • The first node found that is in the same identity hierarchy as the + participant identity, will be chosen.
      • +
      • The list of participants is ordered by DID, with de-duplication of + any identities.
      • +
      • The namespace, name, and members array are then serialized into + a JSON object, without whitespace.
      • +
      • A SHA256 hash of the JSON object is calculated
      • +
      +

      Private messaging architecture

      +

      The mechanism that keeps data private and ordered, without leaking data to the +blockchain, is summarized in the below diagram.

      +

      The key points are:

      +
        +
      • Data is sent off-chain to all participants via the Data Exchange plugin
      • +
      • The Data Exchange is responsible for encryption and off-chain identity verification
      • +
      • Only parties that are involved in the privacy group receive the data
      • +
      • Other parties are only able to view the blockchain transaction
      • +
      • The hash and member list of the group are not shared outside of the privacy group
      • +
      • The name of the group can be used as an additional salt in generation of the group hash
      • +
      • The member list must be known by all members of the group to verify the blockchain transactions, + so the full group JSON structure is communicated privately with the first message + sent on a group
      • +
      • The blockchain transaction is the source of truth for ordering
      • +
      • All members are able to detect a blockchain transaction is part of a group + they are a member of, from only the blockchain transaction - so they can block + processing of subsequent messages until the off-chain data arrives (asynchronously)
      • +
      • The ordering context for messages is masked on the blockchain, so that two messages + that are for same group do not contain the same context
      • +
      • The ordering context (topic+group) is combined with a nonce that is incremented + for each individual sender, to form a message-specific hash.
      • +
      • For each blockchain transaction, this hash can be compared against the expected next + hash for each member to determine if it is a message on a known group - even without + the private data (which might arrive later)
      • +
      +
      +

      See NextPin for more information on the structure used for storing the next +expected masked context pin, for each member of the privacy group.

      +
      +

      FireFly Privacy Model

      + + +

      Example

      +
      {
      +    "namespace": "ns1",
      +    "name": "",
      +    "members": [
      +        {
      +            "identity": "did:firefly:org/1111",
      +            "node": "4f563179-b4bd-4161-86e0-c2c1c0869c4f"
      +        },
      +        {
      +            "identity": "did:firefly:org/2222",
      +            "node": "61a99af8-c1f7-48ea-8fcc-489e4822a0ed"
      +        }
      +    ],
      +    "localNamespace": "ns1",
      +    "message": "0b9dfb76-103d-443d-92fd-b114fe07c54d",
      +    "hash": "c52ad6c034cf5c7382d9a294f49297096a52eb55cc2da696c564b2a276633b95",
      +    "created": "2022-05-16T01:23:16Z"
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      namespaceThe namespace of the group within the multiparty networkstring
      nameThe optional name of the group, allowing multiple unique groups to exist with the same list of recipientsstring
      membersThe list of members in this privacy groupMember[]
      localNamespaceThe local namespace of the groupstring
      messageThe message used to broadcast this group privately to the membersUUID
      hashThe identifier hash of this group. Derived from the name and group membersBytes32
      createdThe time when the group was first used to send a message in the networkFFTime
      +

      Member

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      identityThe DID of the group memberstring
      nodeThe UUID of the node that receives a copy of the off-chain message for the identityUUID
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/identity.html b/head/reference/types/identity.html deleted file mode 100644 index e365b632e..000000000 --- a/head/reference/types/identity.html +++ /dev/null @@ -1,529 +0,0 @@ - - - - - - - - - Identity - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Identity | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Identity - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Identity
          -
        1. DIDs
        2. -
        3. Example
        4. -
        5. Field Descriptions
        6. -
        -
      2. -
      3. IdentityMessages
      4. -

      -

      - - - Identity - - -

      - - -

      FireFly contains an address book of identities, which is managed in a decentralized -way across a multi-party system through claim and verification system.

      - -
      -

      See FIR-12 for evolution -that is happening to Hyperledger FireFly to allow:

      -
        -
      • Private address books that are not shared with other participants
      • -
      • Multiple address books backed by different chains, in the same node
      • -
      -
      - -

      Root identities are registered with only a claim - which is a signed -transaction from a particular blockchain account, to bind a DID with a -name that is unique within the network, to that signing key.

      - -

      The signing key then becomes a Verifier for that identity. -Using that key the root identity can be used to register a new FireFly node -in the network, send and receive messages, and register child identities.

      - -

      When child identities are registered, a claim using a key that is going -to be the Verifier for that child identity is required. -However, this is insufficient to establish that identity as a child identity -of the parent. There must be an additional verification that references -the claim (by UUID) using the key verifier of the parent identity.

      -

      - - - DIDs - - -

      - - -

      FireFly has adopted the DID standard for -representing identities. A “DID Method” name of firefly is used to represent -that the built-in identity system of Hyperledger FireFly is being used -to resolve these DIDs.

      - -

      So an example FireFly DID for organization abcd1234 is:

      - -
        -
      • did:firefly:org/abcd1234
      • -
      - -
      -

      The adoption of DIDs in Hyperledger FireFly v1.0 is also a stepping stone -to allowing pluggable DID based identity resolvers into FireFly in the future.

      -
      - -

      You can also download a DID Document -for a FireFly identity, which represents the verifiers and other information about -that identity according to the JSON format in the DID standard.

      -

      - - - Example - - -

      - - -
      {
      -    "id": "114f5857-9983-46fb-b1fc-8c8f0a20846c",
      -    "did": "did:firefly:org/org_1",
      -    "type": "org",
      -    "parent": "688072c3-4fa0-436c-a86b-5d89673b8938",
      -    "namespace": "ff_system",
      -    "name": "org_1",
      -    "messages": {
      -        "claim": "911b364b-5863-4e49-a3f8-766dbbae7c4c",
      -        "verification": "24636f11-c1f9-4bbb-9874-04dd24c7502f",
      -        "update": null
      -    },
      -    "created": "2022-05-16T01:23:15Z"
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the identityUUID
      didThe DID of the identity. Unique across namespaces within a FireFly networkstring
      typeThe type of the identityFFEnum:
      "org"
      "node"
      "custom"
      parentThe UUID of the parent identity. Unset for root organization identitiesUUID
      namespaceThe namespace of the identity. Organization and node identities are always defined in the ff_system namespacestring
      nameThe name of the identity. The name must be unique within the type and namespacestring
      descriptionA description of the identity. Part of the updatable profile information of an identitystring
      profileA set of metadata for the identity. Part of the updatable profile information of an identityJSONObject
      messagesReferences to the broadcast messages that established this identity and proved ownership of the associated verifiers (keys)IdentityMessages
      createdThe creation time of the identityFFTime
      updatedThe last update time of the identity profileFFTime
      -

      - - - IdentityMessages - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      claimThe UUID of claim messageUUID
      verificationThe UUID of claim message. Unset for root organization identitiesUUID
      updateThe UUID of the most recently applied update message. Unset if no updates have been confirmedUUID
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/identity/index.html b/head/reference/types/identity/index.html new file mode 100644 index 000000000..3a3fdf6cc --- /dev/null +++ b/head/reference/types/identity/index.html @@ -0,0 +1,3626 @@ + + + + + + + + + + + + + + + + + + + + + + + Identity - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Identity

      + + +

      FireFly contains an address book of identities, which is managed in a decentralized +way across a multi-party system through claim and verification system.

      +
      +

      See FIR-12 for evolution +that is happening to Hyperledger FireFly to allow:

      +
        +
      • Private address books that are not shared with other participants
      • +
      • Multiple address books backed by different chains, in the same node
      • +
      +
      +

      Root identities are registered with only a claim - which is a signed +transaction from a particular blockchain account, to bind a DID with a +name that is unique within the network, to that signing key.

      +

      The signing key then becomes a Verifier for that identity. +Using that key the root identity can be used to register a new FireFly node +in the network, send and receive messages, and register child identities.

      +

      When child identities are registered, a claim using a key that is going +to be the Verifier for that child identity is required. +However, this is insufficient to establish that identity as a child identity +of the parent. There must be an additional verification that references +the claim (by UUID) using the key verifier of the parent identity.

      +

      DIDs

      +

      FireFly has adopted the DID standard for +representing identities. A "DID Method" name of firefly is used to represent +that the built-in identity system of Hyperledger FireFly is being used +to resolve these DIDs.

      +

      So an example FireFly DID for organization abcd1234 is:

      +
        +
      • did:firefly:org/abcd1234
      • +
      +
      +

      The adoption of DIDs in Hyperledger FireFly v1.0 is also a stepping stone +to allowing pluggable DID based identity resolvers into FireFly in the future.

      +
      +

      You can also download a DID Document +for a FireFly identity, which represents the verifiers and other information about +that identity according to the JSON format in the DID standard.

      + + +

      Example

      +
      {
      +    "id": "114f5857-9983-46fb-b1fc-8c8f0a20846c",
      +    "did": "did:firefly:org/org_1",
      +    "type": "org",
      +    "parent": "688072c3-4fa0-436c-a86b-5d89673b8938",
      +    "namespace": "ff_system",
      +    "name": "org_1",
      +    "messages": {
      +        "claim": "911b364b-5863-4e49-a3f8-766dbbae7c4c",
      +        "verification": "24636f11-c1f9-4bbb-9874-04dd24c7502f",
      +        "update": null
      +    },
      +    "created": "2022-05-16T01:23:15Z"
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the identityUUID
      didThe DID of the identity. Unique across namespaces within a FireFly networkstring
      typeThe type of the identityFFEnum:
      "org"
      "node"
      "custom"
      parentThe UUID of the parent identity. Unset for root organization identitiesUUID
      namespaceThe namespace of the identity. Organization and node identities are always defined in the ff_system namespacestring
      nameThe name of the identity. The name must be unique within the type and namespacestring
      descriptionA description of the identity. Part of the updatable profile information of an identitystring
      profileA set of metadata for the identity. Part of the updatable profile information of an identityJSONObject
      messagesReferences to the broadcast messages that established this identity and proved ownership of the associated verifiers (keys)IdentityMessages
      createdThe creation time of the identityFFTime
      updatedThe last update time of the identity profileFFTime
      +

      IdentityMessages

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      claimThe UUID of claim messageUUID
      verificationThe UUID of claim message. Unset for root organization identitiesUUID
      updateThe UUID of the most recently applied update message. Unset if no updates have been confirmedUUID
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/index.html b/head/reference/types/index.html deleted file mode 100644 index 84ec81214..000000000 --- a/head/reference/types/index.html +++ /dev/null @@ -1,412 +0,0 @@ - - - - - - - - - Core Resources - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Core Resources | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - - - - - - -
      -

      Table of contents

      - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/message.html b/head/reference/types/message.html deleted file mode 100644 index 5584cedb8..000000000 --- a/head/reference/types/message.html +++ /dev/null @@ -1,784 +0,0 @@ - - - - - - - - - Message - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Message | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Message - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Message
          -
        1. Hash
        2. -
        3. Tag
        4. -
        5. Topics
            -
          1. Using multiple topics
          2. -
          -
        6. -
        7. Transaction type
        8. -
        9. In-line data
        10. -
        11. Example
        12. -
        13. Field Descriptions
        14. -
        -
      2. -
      3. MessageHeader
      4. -
      5. TransactionRef
      6. -
      7. DataRef
      8. -

      -

      - - - Message - - -

      - - -

      Message is the envelope by which coordinated data exchange can happen between parties in the network. Data is passed by reference in these messages, and a chain of hashes covering the data and the details of the message, provides a verification against tampering.

      - -

      A message is made up of three sections:

      - -
        -
      1. The header - a set of metadata that determines how the message is ordered, who should receive it, and how they should process it
      2. -
      3. The data - an array of data attachments
      4. -
      5. Status information - fields that are calculated independently by each node, and hence update as the message makes it way through the system
      6. -
      -

      - - - Hash - - -

      - - -

      Sections (1) and (2) are fixed once the message is sent, and a hash is generated that provides tamper protection.

      - -

      The hash is a function of the header, and all of the data payloads. Calculated as follows:

      - -
        -
      • The hash of each Data element is calculated individually
      • -
      • A JSON array of [{"id":"","hash":""}] is hashed, and that hash is stored in header.datahash
      • -
      • The header is serialized as JSON with the deterministic order (listed below) and hashed -
          -
        • JSON data is serialized without whitespace to hash it.
        • -
        • The hashing algorithm is SHA-256
        • -
        -
      • -
      - -

      Each node independently calculates the hash, and the hash is included in the manifest of the Batch by the -node that sends the message. -Because the hash of that batch manifest is included in the blockchain transaction, a message transferred to -a node that does not match the original message hash is rejected.

      -

      - - - Tag - - -

      - - -

      The header.tag tells the processors of the message how it should be processed, and what data they should expect it to contain.

      - -

      If you think of your decentralized application like a state machine, then you need to have a set of well defined transitions -that can be performed between states. Each of these transitions that requires off-chain transfer of private data -(optionally coordinated with an on-chain transaction) should be expressed as a type of message, with a particular tag.

      - -

      Every copy of the application that runs in the participants of the network should look at this tag to determine what -logic to execute against it.

      - -
      -

      Note: For consistency in ordering, the sender should also wait to process the state machine transitions associated -with the message they send until it is ordered by the blockchain. They should not consider themselves special because -they sent the message, and process it immediately - otherwise they could end up processing it in a different order -to other parties in the network that are also processing the message.

      -
      -

      - - - Topics - - -

      - - -

      The header.topics strings allow you to set the the ordering context for each message you send, and you are strongly -encouraged to set it explicitly on every message you send (falling back to the default topic is not recommended).

      - -

      A key difference between blockchain backed decentralized applications and other event-driven applications, is -that there is a single source of truth for the order in which things happen.

      - -

      In a multi-party system with off-chain transfer of data as well as on-chain transfer of data, the two sets of -data need to be coordinated together. The off-chain transfer might happen at different times, and is subject to the reliability -of the parties & network links involved in that off-chain communication.

      - -

      A “stop the world” approach to handling a single piece of missing data is not practical for a high volume -production business network.

      - -

      The ordering context is a function of:

      - -
        -
      1. Whether the message is broadcast or private
      2. -
      3. If it is private, the privacy group associated with the message
      4. -
      5. The topic of the message
      6. -
      - -

      When an on-chain transaction is detected by FireFly, it can determine the above ordering - noting that privacy is preserved -for private messages by masking this ordering context message-by-message with a nonce and the group ID, so that only the -participants in that group can decode the ordering context.

      - -

      If a piece of off-chain data is unavailable, then the FireFly node will block only streams of data that are associated -with that ordering context.

      - -

      For your application, you should choose the most granular identifier you can for your topic to minimize the scope -of any blockage if one item of off-chain data fails to be delivered or is delayed. Some good examples are:

      - -
        -
      • A business transaction identifier - to ensure all data related to particular business transaction are processed in order
      • -
      • A globally agreed customer identifier - to ensure all data related to a particular business entity are processed in order
      • -
      -

      - - - Using multiple topics - - -

      - - -

      There are some advanced scenarios where you need to merge streams of ordered data, so that two previously separately -ordered streams of communication (different state machines) are joined together to process a critical decision/transition -in a deterministic order.

      - -

      A synchronization point between two otherwise independent streams of communication.

      - -

      To do this, simply specify two topics in the message you sent, and the message will be independently ordered against -both of those topics.

      - -
      -

      You will also receive two events for the confirmation of that message, one for each topic.

      -
      - -

      Some examples:

      - -
        -
      • Agreeing to join two previously separate business transactions with ids 000001 and 000002, by discarding business transaction 000001 as a duplicate -
          -
        • Specify topics: ["000001","000002"] on the special merge message, and then from that point onwards you would only need to specify topics: ["000002"].
        • -
        -
      • -
      • Agreeing to join two previously separate entities with id1 and id2, into a merged entity with id3. -
          -
        • Specify topics: ["id1","id2","id3"] on the special merge message, and then from that point onwards you would only need to specify topics: ["id3"].
        • -
        -
      • -
      -

      - - - Transaction type - - -

      - - -

      By default messages are pinned to the blockchain, within a Batch.

      - -

      For private messages, you can choose to disable this pinning by setting header.txtype: "unpinned".

      - -

      Broadcast messages must be pinned to the blockchain.

      -

      - - - In-line data - - -

      - - -

      When sending a message you can specify the array of Data attachments in-line, as part of the same JSON payload.

      - -

      For example, a minimal broadcast message could be:

      - -
      {
      -    "data": [
      -        {"value": "hello world"}
      -    ]
      -}
      -
      - -

      When you send this message with /api/v1/namespaces/{ns}/messages/broadcast:

      -
        -
      • The header will be initialized with the default values, including txtype: "batch_pin"
      • -
      • The data[0] entry will be stored as a Data resource
      • -
      • The message will be assembled into a batch and broadcast
      • -
      -

      - - - Example - - -

      - - -
      {
      -    "header": {
      -        "id": "4ea27cce-a103-4187-b318-f7b20fd87bf3",
      -        "cid": "00d20cba-76ed-431d-b9ff-f04b4cbee55c",
      -        "type": "private",
      -        "txtype": "batch_pin",
      -        "author": "did:firefly:org/acme",
      -        "key": "0xD53B0294B6a596D404809b1d51D1b4B3d1aD4945",
      -        "created": "2022-05-16T01:23:10Z",
      -        "namespace": "ns1",
      -        "group": "781caa6738a604344ae86ee336ada1b48a404a85e7041cf75b864e50e3b14a22",
      -        "topics": [
      -            "topic1"
      -        ],
      -        "tag": "blue_message",
      -        "datahash": "c07be180b147049baced0b6219d9ce7a84ab48f2ca7ca7ae949abb3fe6491b54"
      -    },
      -    "localNamespace": "ns1",
      -    "state": "confirmed",
      -    "confirmed": "2022-05-16T01:23:16Z",
      -    "data": [
      -        {
      -            "id": "fdf9f118-eb81-4086-a63d-b06715b3bb4e",
      -            "hash": "34cf848d896c83cdf433ea7bd9490c71800b316a96aac3c3a78a42a4c455d67d"
      -        }
      -    ]
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      headerThe message header contains all fields that are used to build the message hashMessageHeader
      localNamespaceThe local namespace of the messagestring
      hashThe hash of the message. Derived from the header, which includes the data hashBytes32
      batchThe UUID of the batch in which the message was pinned/transferredUUID
      txidThe ID of the transaction used to order/deliver this messageUUID
      stateThe current state of the messageFFEnum:
      "staged"
      "ready"
      "sent"
      "pending"
      "confirmed"
      "rejected"
      "cancelled"
      confirmedThe timestamp of when the message was confirmed/rejectedFFTime
      rejectReasonIf a message was rejected, provides details on the rejection reasonstring
      dataThe list of data elements attached to the messageDataRef[]
      pinsFor private messages, a unique pin hash:nonce is assigned for each topicstring[]
      idempotencyKeyAn optional unique identifier for a message. Cannot be duplicated within a namespace, thus allowing idempotent submission of messages to the API. Local only - not transferred when the message is sent to other members of the networkIdempotencyKey
      -

      - - - MessageHeader - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the message. Unique to each messageUUID
      cidThe correlation ID of the message. Set this when a message is a response to another messageUUID
      typeThe type of the messageFFEnum:
      "definition"
      "broadcast"
      "private"
      "groupinit"
      "transfer_broadcast"
      "transfer_private"
      "approval_broadcast"
      "approval_private"
      txtypeThe type of transaction used to order/deliver this messageFFEnum:
      "none"
      "unpinned"
      "batch_pin"
      "network_action"
      "token_pool"
      "token_transfer"
      "contract_deploy"
      "contract_invoke"
      "contract_invoke_pin"
      "token_approval"
      "data_publish"
      authorThe DID of identity of the submitterstring
      keyThe on-chain signing key used to sign the transactionstring
      createdThe creation time of the messageFFTime
      namespaceThe namespace of the message within the multiparty networkstring
      topicsA message topic associates this message with an ordered stream of data. A custom topic should be assigned - using the default topic is discouragedstring[]
      tagThe message tag indicates the purpose of the message to the applications that process itstring
      datahashA single hash representing all data in the message. Derived from the array of data ids+hashes attached to this messageBytes32
      txparentThe parent transaction that originally triggered this messageTransactionRef
      -

      - - - TransactionRef - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      -

      - - - DataRef - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the referenced data resourceUUID
      hashThe hash of the referenced dataBytes32
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/message/index.html b/head/reference/types/message/index.html new file mode 100644 index 000000000..d6939377c --- /dev/null +++ b/head/reference/types/message/index.html @@ -0,0 +1,3896 @@ + + + + + + + + + + + + + + + + + + + + + + + Message - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Message

      + + +

      Message is the envelope by which coordinated data exchange can happen between parties in the network. Data is passed by reference in these messages, and a chain of hashes covering the data and the details of the message, provides a verification against tampering.

      +

      A message is made up of three sections:

      +
        +
      1. The header - a set of metadata that determines how the message is ordered, who should receive it, and how they should process it
      2. +
      3. The data - an array of data attachments
      4. +
      5. Status information - fields that are calculated independently by each node, and hence update as the message makes it way through the system
      6. +
      +

      Hash

      +

      Sections (1) and (2) are fixed once the message is sent, and a hash is generated that provides tamper protection.

      +

      The hash is a function of the header, and all of the data payloads. Calculated as follows:

      +
        +
      • The hash of each Data element is calculated individually
      • +
      • A JSON array of [{"id":"{{DATA_UUID}}","hash":"{{DATA_HASH}}"}] is hashed, and that hash is stored in header.datahash
      • +
      • The header is serialized as JSON with the deterministic order (listed below) and hashed
      • +
      • JSON data is serialized without whitespace to hash it.
      • +
      • The hashing algorithm is SHA-256
      • +
      +

      Each node independently calculates the hash, and the hash is included in the manifest of the Batch by the +node that sends the message. +Because the hash of that batch manifest is included in the blockchain transaction, a message transferred to +a node that does not match the original message hash is rejected.

      +

      Tag

      +

      The header.tag tells the processors of the message how it should be processed, and what data they should expect it to contain.

      +

      If you think of your decentralized application like a state machine, then you need to have a set of well defined transitions +that can be performed between states. Each of these transitions that requires off-chain transfer of private data +(optionally coordinated with an on-chain transaction) should be expressed as a type of message, with a particular tag.

      +

      Every copy of the application that runs in the participants of the network should look at this tag to determine what +logic to execute against it.

      +
      +

      Note: For consistency in ordering, the sender should also wait to process the state machine transitions associated +with the message they send until it is ordered by the blockchain. They should not consider themselves special because +they sent the message, and process it immediately - otherwise they could end up processing it in a different order +to other parties in the network that are also processing the message.

      +
      +

      Topics

      +

      The header.topics strings allow you to set the the ordering context for each message you send, and you are strongly +encouraged to set it explicitly on every message you send (falling back to the default topic is not recommended).

      +

      A key difference between blockchain backed decentralized applications and other event-driven applications, is +that there is a single source of truth for the order in which things happen.

      +

      In a multi-party system with off-chain transfer of data as well as on-chain transfer of data, the two sets of +data need to be coordinated together. The off-chain transfer might happen at different times, and is subject to the reliability +of the parties & network links involved in that off-chain communication.

      +

      A "stop the world" approach to handling a single piece of missing data is not practical for a high volume +production business network.

      +

      The ordering context is a function of:

      +
        +
      1. Whether the message is broadcast or private
      2. +
      3. If it is private, the privacy group associated with the message
      4. +
      5. The topic of the message
      6. +
      +

      When an on-chain transaction is detected by FireFly, it can determine the above ordering - noting that privacy is preserved +for private messages by masking this ordering context message-by-message with a nonce and the group ID, so that only the +participants in that group can decode the ordering context.

      +

      If a piece of off-chain data is unavailable, then the FireFly node will block only streams of data that are associated +with that ordering context.

      +

      For your application, you should choose the most granular identifier you can for your topic to minimize the scope +of any blockage if one item of off-chain data fails to be delivered or is delayed. Some good examples are:

      +
        +
      • A business transaction identifier - to ensure all data related to particular business transaction are processed in order
      • +
      • A globally agreed customer identifier - to ensure all data related to a particular business entity are processed in order
      • +
      +

      Using multiple topics

      +

      There are some advanced scenarios where you need to merge streams of ordered data, so that two previously separately +ordered streams of communication (different state machines) are joined together to process a critical decision/transition +in a deterministic order.

      +

      A synchronization point between two otherwise independent streams of communication.

      +

      To do this, simply specify two topics in the message you sent, and the message will be independently ordered against +both of those topics.

      +
      +

      You will also receive two events for the confirmation of that message, one for each topic.

      +
      +

      Some examples:

      +
        +
      • Agreeing to join two previously separate business transactions with ids 000001 and 000002, by discarding business transaction 000001 as a duplicate
      • +
      • Specify topics: ["000001","000002"] on the special merge message, and then from that point onwards you would only need to specify topics: ["000002"].
      • +
      • Agreeing to join two previously separate entities with id1 and id2, into a merged entity with id3.
      • +
      • Specify topics: ["id1","id2","id3"] on the special merge message, and then from that point onwards you would only need to specify topics: ["id3"].
      • +
      +

      Transaction type

      +

      By default messages are pinned to the blockchain, within a Batch.

      +

      For private messages, you can choose to disable this pinning by setting header.txtype: "unpinned".

      +

      Broadcast messages must be pinned to the blockchain.

      +

      In-line data

      +

      When sending a message you can specify the array of Data attachments in-line, as part of the same JSON payload.

      +

      For example, a minimal broadcast message could be:

      +
      {
      +    "data": [
      +        {"value": "hello world"}
      +    ]
      +}
      +
      +

      When you send this message with /api/v1/namespaces/{ns}/messages/broadcast:

      +
        +
      • The header will be initialized with the default values, including txtype: "batch_pin"
      • +
      • The data[0] entry will be stored as a Data resource
      • +
      • The message will be assembled into a batch and broadcast
      • +
      + + +

      Example

      +
      {
      +    "header": {
      +        "id": "4ea27cce-a103-4187-b318-f7b20fd87bf3",
      +        "cid": "00d20cba-76ed-431d-b9ff-f04b4cbee55c",
      +        "type": "private",
      +        "txtype": "batch_pin",
      +        "author": "did:firefly:org/acme",
      +        "key": "0xD53B0294B6a596D404809b1d51D1b4B3d1aD4945",
      +        "created": "2022-05-16T01:23:10Z",
      +        "namespace": "ns1",
      +        "group": "781caa6738a604344ae86ee336ada1b48a404a85e7041cf75b864e50e3b14a22",
      +        "topics": [
      +            "topic1"
      +        ],
      +        "tag": "blue_message",
      +        "datahash": "c07be180b147049baced0b6219d9ce7a84ab48f2ca7ca7ae949abb3fe6491b54"
      +    },
      +    "localNamespace": "ns1",
      +    "state": "confirmed",
      +    "confirmed": "2022-05-16T01:23:16Z",
      +    "data": [
      +        {
      +            "id": "fdf9f118-eb81-4086-a63d-b06715b3bb4e",
      +            "hash": "34cf848d896c83cdf433ea7bd9490c71800b316a96aac3c3a78a42a4c455d67d"
      +        }
      +    ]
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      headerThe message header contains all fields that are used to build the message hashMessageHeader
      localNamespaceThe local namespace of the messagestring
      hashThe hash of the message. Derived from the header, which includes the data hashBytes32
      batchThe UUID of the batch in which the message was pinned/transferredUUID
      txidThe ID of the transaction used to order/deliver this messageUUID
      stateThe current state of the messageFFEnum:
      "staged"
      "ready"
      "sent"
      "pending"
      "confirmed"
      "rejected"
      "cancelled"
      confirmedThe timestamp of when the message was confirmed/rejectedFFTime
      rejectReasonIf a message was rejected, provides details on the rejection reasonstring
      dataThe list of data elements attached to the messageDataRef[]
      pinsFor private messages, a unique pin hash:nonce is assigned for each topicstring[]
      idempotencyKeyAn optional unique identifier for a message. Cannot be duplicated within a namespace, thus allowing idempotent submission of messages to the API. Local only - not transferred when the message is sent to other members of the networkIdempotencyKey
      +

      MessageHeader

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the message. Unique to each messageUUID
      cidThe correlation ID of the message. Set this when a message is a response to another messageUUID
      typeThe type of the messageFFEnum:
      "definition"
      "broadcast"
      "private"
      "groupinit"
      "transfer_broadcast"
      "transfer_private"
      "approval_broadcast"
      "approval_private"
      txtypeThe type of transaction used to order/deliver this messageFFEnum:
      "none"
      "unpinned"
      "batch_pin"
      "network_action"
      "token_pool"
      "token_transfer"
      "contract_deploy"
      "contract_invoke"
      "contract_invoke_pin"
      "token_approval"
      "data_publish"
      authorThe DID of identity of the submitterstring
      keyThe on-chain signing key used to sign the transactionstring
      createdThe creation time of the messageFFTime
      namespaceThe namespace of the message within the multiparty networkstring
      topicsA message topic associates this message with an ordered stream of data. A custom topic should be assigned - using the default topic is discouragedstring[]
      tagThe message tag indicates the purpose of the message to the applications that process itstring
      datahashA single hash representing all data in the message. Derived from the array of data ids+hashes attached to this messageBytes32
      txparentThe parent transaction that originally triggered this messageTransactionRef
      +

      TransactionRef

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      +

      DataRef

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the referenced data resourceUUID
      hashThe hash of the referenced dataBytes32
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/namespace.html b/head/reference/types/namespace.html deleted file mode 100644 index 1052b7135..000000000 --- a/head/reference/types/namespace.html +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - Namespace - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Namespace | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Namespace - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Namespace
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -

      -

      - - - Namespace - - -

      - - -

      A namespace is a logical isolation domain for different applications, or tenants, that share the -FireFly node.

      - -
      -

      Significant evolution of the Hyperledger FireFly namespace construct, is proposed under -FIR-12

      -
      -

      - - - Example - - -

      - - -
      {
      -    "name": "default",
      -    "networkName": "default",
      -    "description": "Default predefined namespace",
      -    "created": "2022-05-16T01:23:16Z"
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      nameThe local namespace namestring
      networkNameThe shared namespace name within the multiparty networkstring
      descriptionA description of the namespacestring
      createdThe time the namespace was createdFFTime
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/namespace/index.html b/head/reference/types/namespace/index.html new file mode 100644 index 000000000..76fdd101f --- /dev/null +++ b/head/reference/types/namespace/index.html @@ -0,0 +1,3489 @@ + + + + + + + + + + + + + + + + + + + + + + + Namespace - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Namespace

      + + +

      A namespace is a logical isolation domain for different applications, or tenants, that share the +FireFly node.

      +
      +

      Significant evolution of the Hyperledger FireFly namespace construct, is proposed under +FIR-12

      +
      + + +

      Example

      +
      {
      +    "name": "default",
      +    "networkName": "default",
      +    "description": "Default predefined namespace",
      +    "created": "2022-05-16T01:23:16Z"
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      nameThe local namespace namestring
      networkNameThe shared namespace name within the multiparty networkstring
      descriptionA description of the namespacestring
      createdThe time the namespace was createdFFTime
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/nextpin.html b/head/reference/types/nextpin.html deleted file mode 100644 index 9e5ce42d2..000000000 --- a/head/reference/types/nextpin.html +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - - - - NextPin - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -NextPin | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - NextPin - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. NextPin
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -

      -

      - - - NextPin - - -

      - - -

      Next-pins are maintained by each member of a privacy group, in order to detect if a on-chain transaction with a -given “pin” for a message represents the next message for any member of the privacy group.

      - -

      This allows every member to maintain a global order of transactions within a topic in a privacy group, without -leaking the same hash between the messages that are communicated in that group.

      - -
      -

      See Group for more information on privacy groups.

      -
      -

      - - - Example - - -

      - - -
      {
      -    "namespace": "ns1",
      -    "context": "a25b65cfe49e5ed78c256e85cf07c96da938144f12fcb02fe4b5243a4631bd5e",
      -    "identity": "did:firefly:org/example",
      -    "hash": "00e55c63905a59782d5bc466093ead980afc4a2825eb68445bcf1312cc3d6de2",
      -    "nonce": 12345
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      namespaceThe namespace of the next-pinstring
      contextThe context the next-pin applies to - the hash of the privacy group-hash + topic. The group-hash is only known to the participants (can itself contain a salt in the group-name). This context is combined with the member and nonce to determine the final hash that is written on-chainBytes32
      identityThe member of the privacy group the next-pin applies tostring
      hashThe unique masked pin stringBytes32
      nonceThe numeric index - which is monotonically increasing for each member of the privacy groupint64
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/nextpin/index.html b/head/reference/types/nextpin/index.html new file mode 100644 index 000000000..2dd119703 --- /dev/null +++ b/head/reference/types/nextpin/index.html @@ -0,0 +1,3496 @@ + + + + + + + + + + + + + + + + + + + + + + + NextPin - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      NextPin

      + + +

      Next-pins are maintained by each member of a privacy group, in order to detect if a on-chain transaction with a +given "pin" for a message represents the next message for any member of the privacy group.

      +

      This allows every member to maintain a global order of transactions within a topic in a privacy group, without +leaking the same hash between the messages that are communicated in that group.

      +
      +

      See Group for more information on privacy groups.

      +
      + + +

      Example

      +
      {
      +    "namespace": "ns1",
      +    "context": "a25b65cfe49e5ed78c256e85cf07c96da938144f12fcb02fe4b5243a4631bd5e",
      +    "identity": "did:firefly:org/example",
      +    "hash": "00e55c63905a59782d5bc466093ead980afc4a2825eb68445bcf1312cc3d6de2",
      +    "nonce": 12345
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      namespaceThe namespace of the next-pinstring
      contextThe context the next-pin applies to - the hash of the privacy group-hash + topic. The group-hash is only known to the participants (can itself contain a salt in the group-name). This context is combined with the member and nonce to determine the final hash that is written on-chainBytes32
      identityThe member of the privacy group the next-pin applies tostring
      hashThe unique masked pin stringBytes32
      nonceThe numeric index - which is monotonically increasing for each member of the privacy groupint64
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/operation.html b/head/reference/types/operation.html deleted file mode 100644 index 120935d7e..000000000 --- a/head/reference/types/operation.html +++ /dev/null @@ -1,470 +0,0 @@ - - - - - - - - - Operation - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Operation | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Operation - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Operation
          -
        1. Operation status
        2. -
        3. Example
        4. -
        5. Field Descriptions
        6. -
        -
      2. -

      -

      - - - Operation - - -

      - - -

      Operations are stateful external actions that FireFly triggers via plugins. They can succeed or fail. -They are grouped into Transactions in order to accomplish a single logical task.

      - -

      The diagram below shows the different types of operation that are performed by each -FireFly plugin type. The color coding (and numbers) map those different types of operation -to the Transaction types that include those operations.

      - -

      FireFly operations by transaction type

      -

      - - - Operation status - - -

      - - -

      When initially created an operation is in Initialized state. Once the operation has been successfully sent to its respective plugin to be processed its -status moves to Pending state. This indicates that the plugin is processing the operation. The operation will then move to Succeeded or Failed -state depending on the outcome.

      - -

      In the event that an operation could not be submitted to the plugin for processing, for example because the plugin’s microservice was temporarily -unavailable, the operation will remain in Initialized state. Re-submitting the same FireFly API call using the same idempotency key will cause FireFly -to re-submit the operation to its plugin.

      -

      - - - Example - - -

      - - -
      {
      -    "id": "04a8b0c4-03c2-4935-85a1-87d17cddc20a",
      -    "namespace": "ns1",
      -    "tx": "99543134-769b-42a8-8be4-a5f8873f969d",
      -    "type": "sharedstorage_upload_batch",
      -    "status": "Succeeded",
      -    "plugin": "ipfs",
      -    "input": {
      -        "id": "80d89712-57f3-48fe-b085-a8cba6e0667d"
      -    },
      -    "output": {
      -        "payloadRef": "QmWj3tr2aTHqnRYovhS2mQAjYneRtMWJSU4M4RdAJpJwEC"
      -    },
      -    "created": "2022-05-16T01:23:15Z"
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the operationUUID
      namespaceThe namespace of the operationstring
      txThe UUID of the FireFly transaction the operation is part ofUUID
      typeThe type of the operationFFEnum:
      "blockchain_pin_batch"
      "blockchain_network_action"
      "blockchain_deploy"
      "blockchain_invoke"
      "sharedstorage_upload_batch"
      "sharedstorage_upload_blob"
      "sharedstorage_upload_value"
      "sharedstorage_download_batch"
      "sharedstorage_download_blob"
      "dataexchange_send_batch"
      "dataexchange_send_blob"
      "token_create_pool"
      "token_activate_pool"
      "token_transfer"
      "token_approval"
      statusThe current status of the operationOpStatus
      pluginThe plugin responsible for performing the operationstring
      inputThe input to this operationJSONObject
      outputAny output reported back from the plugin for this operationJSONObject
      errorAny error reported back from the plugin for this operationstring
      createdThe time the operation was createdFFTime
      updatedThe last update time of the operationFFTime
      retryIf this operation was initiated as a retry to a previous operation, this field points to the UUID of the operation being retriedUUID
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/operation/index.html b/head/reference/types/operation/index.html new file mode 100644 index 000000000..7d9c7294b --- /dev/null +++ b/head/reference/types/operation/index.html @@ -0,0 +1,3563 @@ + + + + + + + + + + + + + + + + + + + + + + + Operation - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Operation

      + + +

      Operations are stateful external actions that FireFly triggers via plugins. They can succeed or fail. +They are grouped into Transactions in order to accomplish a single logical task.

      +

      The diagram below shows the different types of operation that are performed by each +FireFly plugin type. The color coding (and numbers) map those different types of operation +to the Transaction types that include those operations.

      +

      FireFly operations by transaction type

      +

      Operation status

      +

      When initially created an operation is in Initialized state. Once the operation has been successfully sent to its respective plugin to be processed its +status moves to Pending state. This indicates that the plugin is processing the operation. The operation will then move to Succeeded or Failed +state depending on the outcome.

      +

      In the event that an operation could not be submitted to the plugin for processing, for example because the plugin's microservice was temporarily +unavailable, the operation will remain in Initialized state. Re-submitting the same FireFly API call using the same idempotency key will cause FireFly +to re-submit the operation to its plugin.

      + + +

      Example

      +
      {
      +    "id": "04a8b0c4-03c2-4935-85a1-87d17cddc20a",
      +    "namespace": "ns1",
      +    "tx": "99543134-769b-42a8-8be4-a5f8873f969d",
      +    "type": "sharedstorage_upload_batch",
      +    "status": "Succeeded",
      +    "plugin": "ipfs",
      +    "input": {
      +        "id": "80d89712-57f3-48fe-b085-a8cba6e0667d"
      +    },
      +    "output": {
      +        "payloadRef": "QmWj3tr2aTHqnRYovhS2mQAjYneRtMWJSU4M4RdAJpJwEC"
      +    },
      +    "created": "2022-05-16T01:23:15Z"
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the operationUUID
      namespaceThe namespace of the operationstring
      txThe UUID of the FireFly transaction the operation is part ofUUID
      typeThe type of the operationFFEnum:
      "blockchain_pin_batch"
      "blockchain_network_action"
      "blockchain_deploy"
      "blockchain_invoke"
      "sharedstorage_upload_batch"
      "sharedstorage_upload_blob"
      "sharedstorage_upload_value"
      "sharedstorage_download_batch"
      "sharedstorage_download_blob"
      "dataexchange_send_batch"
      "dataexchange_send_blob"
      "token_create_pool"
      "token_activate_pool"
      "token_transfer"
      "token_approval"
      statusThe current status of the operationOpStatus
      pluginThe plugin responsible for performing the operationstring
      inputThe input to this operationJSONObject
      outputAny output reported back from the plugin for this operationJSONObject
      errorAny error reported back from the plugin for this operationstring
      createdThe time the operation was createdFFTime
      updatedThe last update time of the operationFFTime
      retryIf this operation was initiated as a retry to a previous operation, this field points to the UUID of the operation being retriedUUID
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/operationwithdetail.html b/head/reference/types/operationwithdetail.html deleted file mode 100644 index 181dc9566..000000000 --- a/head/reference/types/operationwithdetail.html +++ /dev/null @@ -1,544 +0,0 @@ - - - - - - - - - OperationWithDetail - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -OperationWithDetail | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - OperationWithDetail - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. OperationWithDetail
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -

      -

      - - - OperationWithDetail - - -

      - - -

      Operation with detail is an extension to operations that allow additional information to be encapsulated with an operation. An operation -can be supplemented by a connector and that information will be returned in the detail field.

      -

      - - - Example - - -

      - - -
      {
      -    "id": "04a8b0c4-03c2-4935-85a1-87d17cddc20a",
      -    "namespace": "ns1",
      -    "tx": "99543134-769b-42a8-8be4-a5f8873f969d",
      -    "type": "sharedstorage_upload_batch",
      -    "status": "Succeeded",
      -    "plugin": "ipfs",
      -    "input": {
      -        "id": "80d89712-57f3-48fe-b085-a8cba6e0667d"
      -    },
      -    "output": {
      -        "payloadRef": "QmWj3tr2aTHqnRYovhS2mQAjYneRtMWJSU4M4RdAJpJwEC"
      -    },
      -    "created": "2022-05-16T01:23:15Z",
      -    "detail": {
      -        "created": "2023-01-27T17:04:24.26406392Z",
      -        "firstSubmit": "2023-01-27T17:04:24.419913295Z",
      -        "gas": "4161076",
      -        "gasPrice": "0",
      -        "history": [
      -            {
      -                "actions": [
      -                    {
      -                        "action": "AssignNonce",
      -                        "count": 1,
      -                        "lastOccurrence": "",
      -                        "time": ""
      -                    },
      -                    {
      -                        "action": "RetrieveGasPrice",
      -                        "count": 1,
      -                        "lastOccurrence": "2023-01-27T17:11:41.161213303Z",
      -                        "time": "2023-01-27T17:11:41.161213303Z"
      -                    },
      -                    {
      -                        "action": "Submit",
      -                        "count": 1,
      -                        "lastOccurrence": "2023-01-27T17:11:41.222374636Z",
      -                        "time": "2023-01-27T17:11:41.222374636Z"
      -                    }
      -                ],
      -                "subStatus": "Received",
      -                "time": "2023-01-27T17:11:41.122965803Z"
      -            },
      -            {
      -                "actions": [
      -                    {
      -                        "action": "ReceiveReceipt",
      -                        "count": 1,
      -                        "lastOccurrence": "2023-01-27T17:11:47.930332625Z",
      -                        "time": "2023-01-27T17:11:47.930332625Z"
      -                    },
      -                    {
      -                        "action": "Confirm",
      -                        "count": 1,
      -                        "lastOccurrence": "2023-01-27T17:12:02.660275549Z",
      -                        "time": "2023-01-27T17:12:02.660275549Z"
      -                    }
      -                ],
      -                "subStatus": "Tracking",
      -                "time": "2023-01-27T17:11:41.222400219Z"
      -            },
      -            {
      -                "actions": [],
      -                "subStatus": "Confirmed",
      -                "time": "2023-01-27T17:12:02.660309382Z"
      -            }
      -        ],
      -        "historySummary": [
      -            {
      -                "count": 1,
      -                "subStatus": "Received"
      -            },
      -            {
      -                "action": "AssignNonce",
      -                "count": 1
      -            },
      -            {
      -                "action": "RetrieveGasPrice",
      -                "count": 1
      -            },
      -            {
      -                "action": "Submit",
      -                "count": 1
      -            },
      -            {
      -                "count": 1,
      -                "subStatus": "Tracking"
      -            },
      -            {
      -                "action": "ReceiveReceipt",
      -                "count": 1
      -            },
      -            {
      -                "action": "Confirm",
      -                "count": 1
      -            },
      -            {
      -                "count": 1,
      -                "subStatus": "Confirmed"
      -            }
      -        ],
      -        "sequenceId": "0185f42f-fec8-93df-aeba-387417d477e0",
      -        "status": "Succeeded",
      -        "transactionHash": "0xfb39178fee8e725c03647b8286e6f5cb13f982abf685479a9ee59e8e9d9e51d8"
      -    }
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the operationUUID
      namespaceThe namespace of the operationstring
      txThe UUID of the FireFly transaction the operation is part ofUUID
      typeThe type of the operationFFEnum:
      "blockchain_pin_batch"
      "blockchain_network_action"
      "blockchain_deploy"
      "blockchain_invoke"
      "sharedstorage_upload_batch"
      "sharedstorage_upload_blob"
      "sharedstorage_upload_value"
      "sharedstorage_download_batch"
      "sharedstorage_download_blob"
      "dataexchange_send_batch"
      "dataexchange_send_blob"
      "token_create_pool"
      "token_activate_pool"
      "token_transfer"
      "token_approval"
      statusThe current status of the operationOpStatus
      pluginThe plugin responsible for performing the operationstring
      inputThe input to this operationJSONObject
      outputAny output reported back from the plugin for this operationJSONObject
      errorAny error reported back from the plugin for this operationstring
      createdThe time the operation was createdFFTime
      updatedThe last update time of the operationFFTime
      retryIf this operation was initiated as a retry to a previous operation, this field points to the UUID of the operation being retriedUUID
      detailAdditional detailed information about an operation provided by the connector``
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/operationwithdetail/index.html b/head/reference/types/operationwithdetail/index.html new file mode 100644 index 000000000..44a7466ce --- /dev/null +++ b/head/reference/types/operationwithdetail/index.html @@ -0,0 +1,3631 @@ + + + + + + + + + + + + + + + + + + + + + + + OperationWithDetail - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      OperationWithDetail

      + + +

      Operation with detail is an extension to operations that allow additional information to be encapsulated with an operation. An operation +can be supplemented by a connector and that information will be returned in the detail field.

      + + +

      Example

      +
      {
      +    "id": "04a8b0c4-03c2-4935-85a1-87d17cddc20a",
      +    "namespace": "ns1",
      +    "tx": "99543134-769b-42a8-8be4-a5f8873f969d",
      +    "type": "sharedstorage_upload_batch",
      +    "status": "Succeeded",
      +    "plugin": "ipfs",
      +    "input": {
      +        "id": "80d89712-57f3-48fe-b085-a8cba6e0667d"
      +    },
      +    "output": {
      +        "payloadRef": "QmWj3tr2aTHqnRYovhS2mQAjYneRtMWJSU4M4RdAJpJwEC"
      +    },
      +    "created": "2022-05-16T01:23:15Z",
      +    "detail": {
      +        "created": "2023-01-27T17:04:24.26406392Z",
      +        "firstSubmit": "2023-01-27T17:04:24.419913295Z",
      +        "gas": "4161076",
      +        "gasPrice": "0",
      +        "history": [
      +            {
      +                "actions": [
      +                    {
      +                        "action": "AssignNonce",
      +                        "count": 1,
      +                        "lastOccurrence": "",
      +                        "time": ""
      +                    },
      +                    {
      +                        "action": "RetrieveGasPrice",
      +                        "count": 1,
      +                        "lastOccurrence": "2023-01-27T17:11:41.161213303Z",
      +                        "time": "2023-01-27T17:11:41.161213303Z"
      +                    },
      +                    {
      +                        "action": "Submit",
      +                        "count": 1,
      +                        "lastOccurrence": "2023-01-27T17:11:41.222374636Z",
      +                        "time": "2023-01-27T17:11:41.222374636Z"
      +                    }
      +                ],
      +                "subStatus": "Received",
      +                "time": "2023-01-27T17:11:41.122965803Z"
      +            },
      +            {
      +                "actions": [
      +                    {
      +                        "action": "ReceiveReceipt",
      +                        "count": 1,
      +                        "lastOccurrence": "2023-01-27T17:11:47.930332625Z",
      +                        "time": "2023-01-27T17:11:47.930332625Z"
      +                    },
      +                    {
      +                        "action": "Confirm",
      +                        "count": 1,
      +                        "lastOccurrence": "2023-01-27T17:12:02.660275549Z",
      +                        "time": "2023-01-27T17:12:02.660275549Z"
      +                    }
      +                ],
      +                "subStatus": "Tracking",
      +                "time": "2023-01-27T17:11:41.222400219Z"
      +            },
      +            {
      +                "actions": [],
      +                "subStatus": "Confirmed",
      +                "time": "2023-01-27T17:12:02.660309382Z"
      +            }
      +        ],
      +        "historySummary": [
      +            {
      +                "count": 1,
      +                "subStatus": "Received"
      +            },
      +            {
      +                "action": "AssignNonce",
      +                "count": 1
      +            },
      +            {
      +                "action": "RetrieveGasPrice",
      +                "count": 1
      +            },
      +            {
      +                "action": "Submit",
      +                "count": 1
      +            },
      +            {
      +                "count": 1,
      +                "subStatus": "Tracking"
      +            },
      +            {
      +                "action": "ReceiveReceipt",
      +                "count": 1
      +            },
      +            {
      +                "action": "Confirm",
      +                "count": 1
      +            },
      +            {
      +                "count": 1,
      +                "subStatus": "Confirmed"
      +            }
      +        ],
      +        "sequenceId": "0185f42f-fec8-93df-aeba-387417d477e0",
      +        "status": "Succeeded",
      +        "transactionHash": "0xfb39178fee8e725c03647b8286e6f5cb13f982abf685479a9ee59e8e9d9e51d8"
      +    }
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the operationUUID
      namespaceThe namespace of the operationstring
      txThe UUID of the FireFly transaction the operation is part ofUUID
      typeThe type of the operationFFEnum:
      "blockchain_pin_batch"
      "blockchain_network_action"
      "blockchain_deploy"
      "blockchain_invoke"
      "sharedstorage_upload_batch"
      "sharedstorage_upload_blob"
      "sharedstorage_upload_value"
      "sharedstorage_download_batch"
      "sharedstorage_download_blob"
      "dataexchange_send_batch"
      "dataexchange_send_blob"
      "token_create_pool"
      "token_activate_pool"
      "token_transfer"
      "token_approval"
      statusThe current status of the operationOpStatus
      pluginThe plugin responsible for performing the operationstring
      inputThe input to this operationJSONObject
      outputAny output reported back from the plugin for this operationJSONObject
      errorAny error reported back from the plugin for this operationstring
      createdThe time the operation was createdFFTime
      updatedThe last update time of the operationFFTime
      retryIf this operation was initiated as a retry to a previous operation, this field points to the UUID of the operation being retriedUUID
      detailAdditional detailed information about an operation provided by the connector``
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/simpletypes.html b/head/reference/types/simpletypes.html deleted file mode 100644 index af0b56cbb..000000000 --- a/head/reference/types/simpletypes.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - - - Simple Types - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Simple Types | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Simple Types - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. UUID
      2. -
      3. FFTime
      4. -
      5. FFBigInt
      6. -
      7. JSONAny
      8. -
      9. JSONObject
      10. -

      -

      - - - UUID - - -

      - - -

      IDs are generated as UUID V4 globally unique identifiers

      -

      - - - FFTime - - -

      - - -

      Times are serialized to JSON on the API in RFC 3339 / ISO 8601 nanosecond UTC time -for example 2022-05-05T21:19:27.454767543Z.

      - -

      Note that JavaScript can parse this format happily into millisecond time with Date.parse().

      - -

      Times are persisted as a nanosecond resolution timestamps in the database.

      - -

      On input, and in queries, times can be parsed from RFC3339, or unix timestamps -(second, millisecond or nanosecond resolution).

      -

      - - - FFBigInt - - -

      - - -

      Large integers of up to 256bits in size are common in blockchain, and -handled in FireFly.

      - -

      In JSON output payloads in FireFly, including events, they are serialized as -strings (with base 10).

      - -

      On input you can provide JSON string (string with an 0x prefix are -parsed at base 16), or a JSON number.

      - -

      Be careful when using JSON numbers, that the largest -number that is safe to transfer using a JSON number is 2^53 - 1.

      -

      - - - JSONAny - - -

      - - -

      Any JSON type. An object, array, string, number, boolean or null.

      - -

      FireFly stores object data with the same field order as was provided on the input, -but with any whitespace removed.

      -

      - - - JSONObject - - -

      - - -

      Any JSON Object. Must be an object, rather than an array or a simple type.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/simpletypes/index.html b/head/reference/types/simpletypes/index.html new file mode 100644 index 000000000..54f027015 --- /dev/null +++ b/head/reference/types/simpletypes/index.html @@ -0,0 +1,3532 @@ + + + + + + + + + + + + + + + + + + + + + + + Simple Types - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Simple Types

      + +

      UUID

      + +

      IDs are generated as UUID V4 globally unique identifiers

      + + +

      FFTime

      + +

      Times are serialized to JSON on the API in RFC 3339 / ISO 8601 nanosecond UTC time +for example 2022-05-05T21:19:27.454767543Z.

      +

      Note that JavaScript can parse this format happily into millisecond time with Date.parse().

      +

      Times are persisted as a nanosecond resolution timestamps in the database.

      +

      On input, and in queries, times can be parsed from RFC3339, or unix timestamps +(second, millisecond or nanosecond resolution).

      + + +

      FFBigInt

      + +

      Large integers of up to 256bits in size are common in blockchain, and +handled in FireFly.

      +

      In JSON output payloads in FireFly, including events, they are serialized as +strings (with base 10).

      +

      On input you can provide JSON string (string with an 0x prefix are +parsed at base 16), or a JSON number.

      +

      Be careful when using JSON numbers, that the largest +number that is safe to transfer using a JSON number is 2^53 - 1.

      + + +

      JSONAny

      + +

      Any JSON type. An object, array, string, number, boolean or null.

      +

      FireFly stores object data with the same field order as was provided on the input, +but with any whitespace removed.

      + + +

      JSONObject

      + +

      Any JSON Object. Must be an object, rather than an array or a simple type.

      + + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/subscription.html b/head/reference/types/subscription.html deleted file mode 100644 index bf72ce71f..000000000 --- a/head/reference/types/subscription.html +++ /dev/null @@ -1,1171 +0,0 @@ - - - - - - - - - Subscription - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Subscription | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Subscription - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Subscription
          -
        1. Creating a subscription
        2. -
        3. Subscriptions and workload balancing
        4. -
        5. Pluggable Transports
        6. -
        7. WebSockets
            -
          1. WebSocket protocol
          2. -
          3. Using start and ack explicitly
          4. -
          5. Auto-starting via URL query and autoack
          6. -
          7. Ephemeral WebSocket subscriptions
          8. -
          -
        8. -
        9. Webhooks
            -
          1. Batching events
          2. -
          -
        10. -
        11. Example
        12. -
        13. Field Descriptions
        14. -
        -
      2. -
      3. SubscriptionFilter
      4. -
      5. MessageFilter
      6. -
      7. TransactionFilter
      8. -
      9. BlockchainEventFilter
      10. -
      11. SubscriptionOptions
      12. -
      13. WebhookInputOptions
      14. -
      15. WebhookRetryOptions
      16. -
      17. WebhookHTTPOptions
      18. -

      -

      - - - Subscription - - -

      - - -

      Each Subscription tracks delivery of events to a particular -application, and allows FireFly to ensure that messages are delivered reliably -to that application.

      - -

      FireFly Event Subscription Model

      -

      - - - Creating a subscription - - -

      - - -

      Before you can connect to a subscription, you must create it via the REST API.

      - -
      -

      One special case where you do not need to do this, is Ephemeral WebSocket -connections (described below). -For these you can just connect and immediately start receiving events.

      -
      - -

      When creating a new subscription, you give it a name which is how you will -refer to it when you connect.

      - -

      You are also able to specify server-side filtering that should be performed -against the event stream, to limit the set of events that are sent to your -application.

      - -

      All subscriptions are created within a namespace, and automatically filter -events to only those emitted within that namespace.

      - -

      You can create multiple subscriptions for your application, to request -different sets of server-side filtering for events. You can then request -FireFly to deliver events for both subscriptions over the same WebSocket -(if you are using the WebSocket transport). However, delivery order is -not assured between two subscriptions.

      -

      - - - Subscriptions and workload balancing - - -

      - - -

      You can have multiple scaled runtime instances of a single application, -all running in parallel. These instances of the application all share a -single subscription.

      - -
      -

      Each event is only delivered once to the subscription, regardless of how -many instances of your application connect to FireFly.

      -
      - -

      With multiple WebSocket connections active on a single subscription, -each event might be delivered to different instance of your application. -This means workload is balanced across your instances. However, each -event still needs to be acknowledged, so delivery processing order -can still be maintained within your application database state.

      - -

      If you have multiple different applications all needing their own copy of -the same event, then you need to configure a separate subscription -for each application.

      -

      - - - Pluggable Transports - - -

      - - -

      Hyperledger FireFly has two built-in transports for delivery of events -to applications - WebSockets and Webhooks.

      - -

      The event interface is fully pluggable, so you can extend connectivity -over an external event bus - such as NATS, Apache Kafka, Rabbit MQ, Redis etc.

      -

      - - - WebSockets - - -

      - - -

      If your application has a back-end server runtime, then WebSockets are -the most popular option for listening to events. WebSockets are well supported -by all popular application development frameworks, and are very firewall friendly -for connecting applications into your FireFly server.

      - -
      -

      Check out the @hyperledger/firefly-sdk -SDK for Node.js applications, and the hyperledger/firefly-common -module for Golang applications. These both contain reliable WebSocket clients for your event listeners.

      - -

      A Java SDK is a roadmap item for the community.

      -
      -

      - - - WebSocket protocol - - -

      - - -

      FireFly has a simple protocol on top of WebSockets:

      - -
        -
      1. Each time you connect/reconnect you need to tell FireFly to start -sending you events on a particular subscription. You can do this in two -ways (described in detail below): -
          -
        1. Send a WSStart JSON payload
        2. -
        3. Include a namespace and name query parameter in the URL when you -connect, along with query params for other fields of WSStart
        4. -
        -
      2. -
      3. One you have started your subscription, each event flows from -the server, to your application as a JSON Event payload
      4. -
      5. For each event you receive, you need to send a WSAck payload. -
          -
        • Unless you specified autoack in step (1)
        • -
        -
      6. -
      - -
      -

      The SDK libraries for FireFly help you ensure you send the start -payload each time your WebSocket reconnects.

      -
      -

      - - - Using start and ack explicitly - - -

      - - -

      Here’s an example websocat command -showing an explicit start and ack.

      - -
      $ websocat ws://localhost:5000/ws
      -{"type":"start","namespace":"default","name":"docexample"}
      -# ... for each event that arrives here, you send an ack ...
      -{"type":"ack","id":"70ed4411-57cf-4ba1-bedb-fe3b4b5fd6b6"}
      -
      - -

      When creating your subscription, you can set readahead in order to -ask FireFly to stream a number of messages to your application, -ahead of receiving the acknowledgements.

      - -
      -

      readahead can be a powerful tool to increase performance, but does -require your application to ensure it processes events in the correct -order and sends exactly one ack for each event.

      -
      -

      - - - Auto-starting via URL query and autoack - - -

      - - -

      Here’s an example websocat where we use -URL query parameters to avoid the need to send a start JSON payload.

      - -

      We also use autoack so that events just keep flowing from the server.

      - -
      $ websocat "ws://localhost:5000/ws?namespace=default&name=docexample&autoack"
      -# ... events just keep arriving here, as the server-side auto-acknowledges
      -#     the events as it delivers them to you.
      -
      - -
      -

      Note using autoack means you can miss events in the case of a disconnection, -so should not be used for production applications that require at-least-once delivery.

      -
      -

      - - - Ephemeral WebSocket subscriptions - - -

      - - -

      FireFly WebSockets provide a special option to create a subscription dynamically, that -only lasts for as long as you are connected to the server.

      - -

      We call these ephemeral subscriptions.

      - -

      Here’s an example websocat command -showing an an ephemeral subscription - notice we don’t specify a name for the -subscription, and there is no need to have already created the subscription -beforehand.

      - -

      Here we also include an extra query parameter to set a server-side filter, to only -include message events.

      - -
      $ websocat "ws://localhost:5000/ws?namespace=default&ephemeral&autoack&filter.events=message_.*"
      -{"type":"start","namespace":"default","name":"docexample"}
      -# ... for each event that arrives here, you send an ack ...
      -{"type":"ack","id":"70ed4411-57cf-4ba1-bedb-fe3b4b5fd6b6"}
      -
      - -
      -

      Ephemeral subscriptions are very convenient for experimentation, debugging and monitoring. -However, they do not give reliable delivery because you only receive events that -occur while you are connected. If you disconnect and reconnect, you will miss all events -that happened while your application was not listening.

      -
      -

      - - - Webhooks - - -

      - - -

      The Webhook transport allows FireFly to make HTTP calls against your application’s API -when events matching your subscription are emitted.

      - -

      This means the direction of network connection is from the FireFly server, to the -application (the reverse of WebSockets). Conversely it means you don’t need to add -any connection management code to your application - just expose and API that -FireFly can call to process the events.

      - -
      -

      Webhooks are great for serverless functions (AWS Lambda etc.), integrations -with SaaS applications, and calling existing APIs.

      -
      - -

      The FireFly configuration options for a Webhook subscription are very flexible, -allowing you to customize your HTTP requests as follows:

      - -
        -
      • Set the HTTP request details: -
          -
        • Method, URL, query, headers and input body
        • -
        -
      • -
      • Wait for a invocation of the back-end service, before acknowledging -
          -
        • To retry requests to your Webhook on a non-2xx HTTP status code -or other error, you should enable and configure -options.retry
        • -
        • The event is acknowledged once the request (with any retries), is -completed - regardless of whether the outcome was a success or failure.
        • -
        -
      • -
      • Use fastack to acknowledge against FireFly immediately and make multiple -parallel calls to the HTTP API in a fire-and-forget fashion.
      • -
      • Set the HTTP request details dynamically from message_confirmed events: -
          -
        • Map data out of the first data element in message events
        • -
        • Requires withData to be set on the subscription, in addition to the -input.* configuration options
        • -
        -
      • -
      • Can automatically generate a “reply” message for message_confirmed events: -
          -
        • Maps the response body of the HTTP call to data in the reply message
        • -
        • Sets the cid and topic in the reply message to match the request
        • -
        • Sets a tag in the reply message, per the configuration, or dynamically -based on a field in the input request data.
        • -
        -
      • -
      -

      - - - Batching events - - -

      - - -

      Webhooks have the ability to batch events into a single HTTP request instead of sending an event per HTTP request. The interface will be a JSON array of events instead of a top level JSON object with a single event. The size of the batch will be set by the readAhead limit and an optional timeout can be specified to send the events when the batch hasn’t filled.

      - -

      To enable this set the following configuration under SubscriptionOptions

      - - - - - - - - - -
      batchEvents are delivered in batches in an ordered array. The batch size is capped to the readAhead limit. The event payload is always an array even if there is a single event in the batch. Commonly used with Webhooks to allow events to be delivered and acknowledged in batches.bool
      - - - - - - - - - -
      batchTimeoutWhen batching is enabled, the optional timeout to send events even when the batch hasn’t filled. Defaults to 2 secondsstring
      - -

      NOTE: When batch is enabled, withData cannot be used as these may alter the HTTP request based on a single event and in batching it does not make sense for now.

      -

      - - - Example - - -

      - - -
      {
      -    "id": "c38d69fd-442e-4d6f-b5a4-bab1411c7fe8",
      -    "namespace": "ns1",
      -    "name": "app1",
      -    "transport": "websockets",
      -    "filter": {
      -        "events": "^(message_.*|token_.*)$",
      -        "message": {
      -            "tag": "^(red|blue)$"
      -        },
      -        "transaction": {},
      -        "blockchainevent": {}
      -    },
      -    "options": {
      -        "firstEvent": "newest",
      -        "readAhead": 50
      -    },
      -    "created": "2022-05-16T01:23:15Z",
      -    "updated": null
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the subscriptionUUID
      namespaceThe namespace of the subscription. A subscription will only receive events generated in the namespace of the subscriptionstring
      nameThe name of the subscription. The application specifies this name when it connects, in order to attach to the subscription and receive events that arrived while it was disconnected. If multiple apps connect to the same subscription, events are workload balanced across the connected application instancesstring
      transportThe transport plugin responsible for event delivery (WebSockets, Webhooks, JMS, NATS etc.)string
      filterServer-side filter to apply to eventsSubscriptionFilter
      optionsSubscription optionsSubscriptionOptions
      ephemeralEphemeral subscriptions only exist as long as the application is connected, and as such will miss events that occur while the application is disconnected, and cannot be created administratively. You can create one over over a connected WebSocket connectionbool
      createdCreation time of the subscriptionFFTime
      updatedLast time the subscription was updatedFFTime
      -

      - - - SubscriptionFilter - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      eventsRegular expression to apply to the event type, to subscribe to a subset of event typesstring
      messageFilters specific to message events. If an event is not a message event, these filters are ignoredMessageFilter
      transactionFilters specific to events with a transaction. If an event is not associated with a transaction, this filter is ignoredTransactionFilter
      blockchaineventFilters specific to blockchain events. If an event is not a blockchain event, these filters are ignoredBlockchainEventFilter
      topicRegular expression to apply to the topic of the event, to subscribe to a subset of topics. Note for messages sent with multiple topics, a separate event is emitted for each topicstring
      topicsDeprecated: Please use ‘topic’ insteadstring
      tagDeprecated: Please use ‘message.tag’ insteadstring
      groupDeprecated: Please use ‘message.group’ insteadstring
      authorDeprecated: Please use ‘message.author’ insteadstring
      -

      - - - MessageFilter - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      tagRegular expression to apply to the message ‘header.tag’ fieldstring
      groupRegular expression to apply to the message ‘header.group’ fieldstring
      authorRegular expression to apply to the message ‘header.author’ fieldstring
      -

      - - - TransactionFilter - - -

      - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeRegular expression to apply to the transaction ‘type’ fieldstring
      -

      - - - BlockchainEventFilter - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      nameRegular expression to apply to the blockchain event ‘name’ field, which is the name of the event in the underlying blockchain smart contractstring
      listenerRegular expression to apply to the blockchain event ‘listener’ field, which is the UUID of the event listener. So you can restrict your subscription to certain blockchain listeners. Alternatively to avoid your application need to know listener UUIDs you can set the ‘topic’ field of blockchain event listeners, and use a topic filter on your subscriptionsstring
      -

      - - - SubscriptionOptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      firstEventWhether your application would like to receive events from the ‘oldest’ event emitted by your FireFly node (from the beginning of time), or the ‘newest’ event (from now), or a specific event sequence. Default is ‘newest’SubOptsFirstEvent
      readAheadThe number of events to stream ahead to your application, while waiting for confirmation of consumption of those events. At least once delivery semantics are used in FireFly, so if your application crashes/reconnects this is the maximum number of events you would expect to be redelivered after it restartsuint16
      withDataWhether message events delivered over the subscription, should be packaged with the full data of those messages in-line as part of the event JSON payload. Or if the application should make separate REST calls to download that data. May not be supported on some transports.bool
      batchEvents are delivered in batches in an ordered array. The batch size is capped to the readAhead limit. The event payload is always an array even if there is a single event in the batch, allowing client-side optimizations when processing the events in a group. Available for both Webhooks and WebSockets.bool
      batchTimeoutWhen batching is enabled, the optional timeout to send events even when the batch hasn’t filled.string
      fastackWebhooks only: When true the event will be acknowledged before the webhook is invoked, allowing parallel invocationsbool
      urlWebhooks only: HTTP url to invoke. Can be relative if a base URL is set in the webhook plugin configstring
      methodWebhooks only: HTTP method to invoke. Default=POSTstring
      jsonWebhooks only: Whether to assume the response body is JSON, regardless of the returned Content-Typebool
      replyWebhooks only: Whether to automatically send a reply event, using the body returned by the webhookbool
      replytagWebhooks only: The tag to set on the reply messagestring
      replytxWebhooks only: The transaction type to set on the reply messagestring
      headersWebhooks only: Static headers to set on the webhook request``
      queryWebhooks only: Static query params to set on the webhook request``
      tlsConfigNameThe name of an existing TLS configuration associated to the namespace to usestring
      inputWebhooks only: A set of options to extract data from the first JSON input data in the incoming message. Only applies if withData=trueWebhookInputOptions
      retryWebhooks only: a set of options for retrying the webhook callWebhookRetryOptions
      httpOptionsWebhooks only: a set of options for HTTPWebhookHTTPOptions
      -

      - - - WebhookInputOptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      queryA top-level property of the first data input, to use for query parametersstring
      headersA top-level property of the first data input, to use for headersstring
      bodyA top-level property of the first data input, to use for the request body. Default is the whole first bodystring
      pathA top-level property of the first data input, to use for a path to append with escaping to the webhook pathstring
      replytxA top-level property of the first data input, to use to dynamically set whether to pin the response (so the requester can choose)string
      -

      - - - WebhookRetryOptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      enabledEnables retry on HTTP calls, defaults to falsebool
      countNumber of times to retry the webhook call in case of failureint
      initialDelayInitial delay between retries when we retry the webhook callstring
      maxDelayMax delay between retries when we retry the webhookcallstring
      -

      - - - WebhookHTTPOptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      proxyURLHTTP proxy URL to use for outbound requests to the webhookstring
      tlsHandshakeTimeoutThe max duration to hold a TLS handshake alivestring
      requestTimeoutThe max duration to hold a TLS handshake alivestring
      maxIdleConnsThe max number of idle connections to hold pooledint
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callsstring
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmitted.string
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docsstring
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/subscription/index.html b/head/reference/types/subscription/index.html new file mode 100644 index 000000000..41cb0d1be --- /dev/null +++ b/head/reference/types/subscription/index.html @@ -0,0 +1,4259 @@ + + + + + + + + + + + + + + + + + + + + + + + Subscription - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Subscription

      + + +

      Each Subscription tracks delivery of events to a particular +application, and allows FireFly to ensure that messages are delivered reliably +to that application.

      +

      FireFly Event Subscription Model

      +

      Creating a subscription

      +

      Before you can connect to a subscription, you must create it via the REST API.

      +
      +

      One special case where you do not need to do this, is Ephemeral WebSocket +connections (described below). +For these you can just connect and immediately start receiving events.

      +
      +

      When creating a new subscription, you give it a name which is how you will +refer to it when you connect.

      +

      You are also able to specify server-side filtering that should be performed +against the event stream, to limit the set of events that are sent to your +application.

      +

      All subscriptions are created within a namespace, and automatically filter +events to only those emitted within that namespace.

      +

      You can create multiple subscriptions for your application, to request +different sets of server-side filtering for events. You can then request +FireFly to deliver events for both subscriptions over the same WebSocket +(if you are using the WebSocket transport). However, delivery order is +not assured between two subscriptions.

      +

      Subscriptions and workload balancing

      +

      You can have multiple scaled runtime instances of a single application, +all running in parallel. These instances of the application all share a +single subscription.

      +
      +

      Each event is only delivered once to the subscription, regardless of how +many instances of your application connect to FireFly.

      +
      +

      With multiple WebSocket connections active on a single subscription, +each event might be delivered to different instance of your application. +This means workload is balanced across your instances. However, each +event still needs to be acknowledged, so delivery processing order +can still be maintained within your application database state.

      +

      If you have multiple different applications all needing their own copy of +the same event, then you need to configure a separate subscription +for each application.

      +

      Pluggable Transports

      +

      Hyperledger FireFly has two built-in transports for delivery of events +to applications - WebSockets and Webhooks.

      +

      The event interface is fully pluggable, so you can extend connectivity +over an external event bus - such as NATS, Apache Kafka, Rabbit MQ, Redis etc.

      +

      WebSockets

      +

      If your application has a back-end server runtime, then WebSockets are +the most popular option for listening to events. WebSockets are well supported +by all popular application development frameworks, and are very firewall friendly +for connecting applications into your FireFly server.

      +
      +

      Check out the @hyperledger/firefly-sdk +SDK for Node.js applications, and the hyperledger/firefly-common +module for Golang applications. These both contain reliable WebSocket clients for your event listeners.

      +

      A Java SDK is a roadmap item for the community.

      +
      +

      WebSocket protocol

      +

      FireFly has a simple protocol on top of WebSockets:

      +
        +
      1. Each time you connect/reconnect you need to tell FireFly to start + sending you events on a particular subscription. You can do this in two + ways (described in detail below):
      2. +
      3. Send a WSStart JSON payload
      4. +
      5. Include a namespace and name query parameter in the URL when you + connect, along with query params for other fields of WSStart
      6. +
      7. One you have started your subscription, each event flows from + the server, to your application as a JSON Event payload
      8. +
      9. For each event you receive, you need to send a WSAck payload.
      10. +
      11. Unless you specified autoack in step (1)
      12. +
      +
      +

      The SDK libraries for FireFly help you ensure you send the start +payload each time your WebSocket reconnects.

      +
      +

      Using start and ack explicitly

      +

      Here's an example websocat command +showing an explicit start and ack.

      +
      $ websocat ws://localhost:5000/ws
      +{"type":"start","namespace":"default","name":"docexample"}
      +# ... for each event that arrives here, you send an ack ...
      +{"type":"ack","id":"70ed4411-57cf-4ba1-bedb-fe3b4b5fd6b6"}
      +
      +

      When creating your subscription, you can set readahead in order to +ask FireFly to stream a number of messages to your application, +ahead of receiving the acknowledgements.

      +
      +

      readahead can be a powerful tool to increase performance, but does +require your application to ensure it processes events in the correct +order and sends exactly one ack for each event.

      +
      +

      Auto-starting via URL query and autoack

      +

      Here's an example websocat where we use +URL query parameters to avoid the need to send a start JSON payload.

      +

      We also use autoack so that events just keep flowing from the server.

      +
      $ websocat "ws://localhost:5000/ws?namespace=default&name=docexample&autoack"
      +# ... events just keep arriving here, as the server-side auto-acknowledges
      +#     the events as it delivers them to you.
      +
      +
      +

      Note using autoack means you can miss events in the case of a disconnection, +so should not be used for production applications that require at-least-once delivery.

      +
      +

      Ephemeral WebSocket subscriptions

      +

      FireFly WebSockets provide a special option to create a subscription dynamically, that +only lasts for as long as you are connected to the server.

      +

      We call these ephemeral subscriptions.

      +

      Here's an example websocat command +showing an an ephemeral subscription - notice we don't specify a name for the +subscription, and there is no need to have already created the subscription +beforehand.

      +

      Here we also include an extra query parameter to set a server-side filter, to only +include message events.

      +
      $ websocat "ws://localhost:5000/ws?namespace=default&ephemeral&autoack&filter.events=message_.*"
      +{"type":"start","namespace":"default","name":"docexample"}
      +# ... for each event that arrives here, you send an ack ...
      +{"type":"ack","id":"70ed4411-57cf-4ba1-bedb-fe3b4b5fd6b6"}
      +
      +
      +

      Ephemeral subscriptions are very convenient for experimentation, debugging and monitoring. +However, they do not give reliable delivery because you only receive events that +occur while you are connected. If you disconnect and reconnect, you will miss all events +that happened while your application was not listening.

      +
      +

      Webhooks

      +

      The Webhook transport allows FireFly to make HTTP calls against your application's API +when events matching your subscription are emitted.

      +

      This means the direction of network connection is from the FireFly server, to the +application (the reverse of WebSockets). Conversely it means you don't need to add +any connection management code to your application - just expose and API that +FireFly can call to process the events.

      +
      +

      Webhooks are great for serverless functions (AWS Lambda etc.), integrations +with SaaS applications, and calling existing APIs.

      +
      +

      The FireFly configuration options for a Webhook subscription are very flexible, +allowing you to customize your HTTP requests as follows:

      +
        +
      • Set the HTTP request details:
      • +
      • Method, URL, query, headers and input body
      • +
      • Wait for a invocation of the back-end service, before acknowledging
      • +
      • To retry requests to your Webhook on a non-2xx HTTP status code + or other error, you should enable and configure + options.retry
      • +
      • The event is acknowledged once the request (with any retries), is + completed - regardless of whether the outcome was a success or failure.
      • +
      • Use fastack to acknowledge against FireFly immediately and make multiple + parallel calls to the HTTP API in a fire-and-forget fashion.
      • +
      • Set the HTTP request details dynamically from message_confirmed events:
      • +
      • Map data out of the first data element in message events
      • +
      • Requires withData to be set on the subscription, in addition to the + input.* configuration options
      • +
      • Can automatically generate a "reply" message for message_confirmed events:
      • +
      • Maps the response body of the HTTP call to data in the reply message
      • +
      • Sets the cid and topic in the reply message to match the request
      • +
      • Sets a tag in the reply message, per the configuration, or dynamically + based on a field in the input request data.
      • +
      +

      Batching events

      +

      Webhooks have the ability to batch events into a single HTTP request instead of sending an event per HTTP request. The interface will be a JSON array of events instead of a top level JSON object with a single event. The size of the batch will be set by the readAhead limit and an optional timeout can be specified to send the events when the batch hasn't filled.

      +

      To enable this set the following configuration under SubscriptionOptions

      +

      batch | Events are delivered in batches in an ordered array. The batch size is capped to the readAhead limit. The event payload is always an array even if there is a single event in the batch. Commonly used with Webhooks to allow events to be delivered and acknowledged in batches. | bool |

      +

      batchTimeout | When batching is enabled, the optional timeout to send events even when the batch hasn't filled. Defaults to 2 seconds | string

      +

      NOTE: When batch is enabled, withData cannot be used as these may alter the HTTP request based on a single event and in batching it does not make sense for now.

      + + +

      Example

      +
      {
      +    "id": "c38d69fd-442e-4d6f-b5a4-bab1411c7fe8",
      +    "namespace": "ns1",
      +    "name": "app1",
      +    "transport": "websockets",
      +    "filter": {
      +        "events": "^(message_.*|token_.*)$",
      +        "message": {
      +            "tag": "^(red|blue)$"
      +        },
      +        "transaction": {},
      +        "blockchainevent": {}
      +    },
      +    "options": {
      +        "firstEvent": "newest",
      +        "readAhead": 50
      +    },
      +    "created": "2022-05-16T01:23:15Z",
      +    "updated": null
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the subscriptionUUID
      namespaceThe namespace of the subscription. A subscription will only receive events generated in the namespace of the subscriptionstring
      nameThe name of the subscription. The application specifies this name when it connects, in order to attach to the subscription and receive events that arrived while it was disconnected. If multiple apps connect to the same subscription, events are workload balanced across the connected application instancesstring
      transportThe transport plugin responsible for event delivery (WebSockets, Webhooks, JMS, NATS etc.)string
      filterServer-side filter to apply to eventsSubscriptionFilter
      optionsSubscription optionsSubscriptionOptions
      ephemeralEphemeral subscriptions only exist as long as the application is connected, and as such will miss events that occur while the application is disconnected, and cannot be created administratively. You can create one over over a connected WebSocket connectionbool
      createdCreation time of the subscriptionFFTime
      updatedLast time the subscription was updatedFFTime
      +

      SubscriptionFilter

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      eventsRegular expression to apply to the event type, to subscribe to a subset of event typesstring
      messageFilters specific to message events. If an event is not a message event, these filters are ignoredMessageFilter
      transactionFilters specific to events with a transaction. If an event is not associated with a transaction, this filter is ignoredTransactionFilter
      blockchaineventFilters specific to blockchain events. If an event is not a blockchain event, these filters are ignoredBlockchainEventFilter
      topicRegular expression to apply to the topic of the event, to subscribe to a subset of topics. Note for messages sent with multiple topics, a separate event is emitted for each topicstring
      topicsDeprecated: Please use 'topic' insteadstring
      tagDeprecated: Please use 'message.tag' insteadstring
      groupDeprecated: Please use 'message.group' insteadstring
      authorDeprecated: Please use 'message.author' insteadstring
      +

      MessageFilter

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      tagRegular expression to apply to the message 'header.tag' fieldstring
      groupRegular expression to apply to the message 'header.group' fieldstring
      authorRegular expression to apply to the message 'header.author' fieldstring
      +

      TransactionFilter

      + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeRegular expression to apply to the transaction 'type' fieldstring
      +

      BlockchainEventFilter

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      nameRegular expression to apply to the blockchain event 'name' field, which is the name of the event in the underlying blockchain smart contractstring
      listenerRegular expression to apply to the blockchain event 'listener' field, which is the UUID of the event listener. So you can restrict your subscription to certain blockchain listeners. Alternatively to avoid your application need to know listener UUIDs you can set the 'topic' field of blockchain event listeners, and use a topic filter on your subscriptionsstring
      +

      SubscriptionOptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      firstEventWhether your application would like to receive events from the 'oldest' event emitted by your FireFly node (from the beginning of time), or the 'newest' event (from now), or a specific event sequence. Default is 'newest'SubOptsFirstEvent
      readAheadThe number of events to stream ahead to your application, while waiting for confirmation of consumption of those events. At least once delivery semantics are used in FireFly, so if your application crashes/reconnects this is the maximum number of events you would expect to be redelivered after it restartsuint16
      withDataWhether message events delivered over the subscription, should be packaged with the full data of those messages in-line as part of the event JSON payload. Or if the application should make separate REST calls to download that data. May not be supported on some transports.bool
      batchEvents are delivered in batches in an ordered array. The batch size is capped to the readAhead limit. The event payload is always an array even if there is a single event in the batch, allowing client-side optimizations when processing the events in a group. Available for both Webhooks and WebSockets.bool
      batchTimeoutWhen batching is enabled, the optional timeout to send events even when the batch hasn't filled.string
      fastackWebhooks only: When true the event will be acknowledged before the webhook is invoked, allowing parallel invocationsbool
      urlWebhooks only: HTTP url to invoke. Can be relative if a base URL is set in the webhook plugin configstring
      methodWebhooks only: HTTP method to invoke. Default=POSTstring
      jsonWebhooks only: Whether to assume the response body is JSON, regardless of the returned Content-Typebool
      replyWebhooks only: Whether to automatically send a reply event, using the body returned by the webhookbool
      replytagWebhooks only: The tag to set on the reply messagestring
      replytxWebhooks only: The transaction type to set on the reply messagestring
      headersWebhooks only: Static headers to set on the webhook request``
      queryWebhooks only: Static query params to set on the webhook request``
      tlsConfigNameThe name of an existing TLS configuration associated to the namespace to usestring
      inputWebhooks only: A set of options to extract data from the first JSON input data in the incoming message. Only applies if withData=trueWebhookInputOptions
      retryWebhooks only: a set of options for retrying the webhook callWebhookRetryOptions
      httpOptionsWebhooks only: a set of options for HTTPWebhookHTTPOptions
      +

      WebhookInputOptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      queryA top-level property of the first data input, to use for query parametersstring
      headersA top-level property of the first data input, to use for headersstring
      bodyA top-level property of the first data input, to use for the request body. Default is the whole first bodystring
      pathA top-level property of the first data input, to use for a path to append with escaping to the webhook pathstring
      replytxA top-level property of the first data input, to use to dynamically set whether to pin the response (so the requester can choose)string
      +

      WebhookRetryOptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      enabledEnables retry on HTTP calls, defaults to falsebool
      countNumber of times to retry the webhook call in case of failureint
      initialDelayInitial delay between retries when we retry the webhook callstring
      maxDelayMax delay between retries when we retry the webhookcallstring
      +

      WebhookHTTPOptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      proxyURLHTTP proxy URL to use for outbound requests to the webhookstring
      tlsHandshakeTimeoutThe max duration to hold a TLS handshake alivestring
      requestTimeoutThe max duration to hold a TLS handshake alivestring
      maxIdleConnsThe max number of idle connections to hold pooledint
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callsstring
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmitted.string
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docsstring
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/tokenapproval.html b/head/reference/types/tokenapproval.html deleted file mode 100644 index aa3435b4b..000000000 --- a/head/reference/types/tokenapproval.html +++ /dev/null @@ -1,528 +0,0 @@ - - - - - - - - - TokenApproval - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -TokenApproval | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - TokenApproval - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. TokenApproval
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -
      3. TransactionRef
      4. -

      -

      - - - TokenApproval - - -

      - - -

      A token approval is a record that an address other than the owner of a token balance, -has been granted authority to transfer tokens on the owners behalf.

      - -

      The approved “operator” (or “spender”) account might be a smart contract, -or another individual.

      - -

      FireFly provides APIs for initiating and tracking approvals, which token -connectors integrate with the implementation of the underlying token.

      - -

      The off-chain index maintained in FireFly for allowance allows you to quickly -find the most recent allowance event associated with a pair of keys, -using the subject field, combined with the active field. -When a new Token Approval event is delivered to FireFly Core by the -Token Connector, any previous approval for the same subject is marked -"active": false, and the new approval is marked with "active": true

      - -
      -

      The token connector is responsible for the format of the subject field -to reflect the owner / operator (spender) relationship.

      -
      -

      - - - Example - - -

      - - -
      {
      -    "localId": "1cd3e2e2-dd6a-441d-94c5-02439de9897b",
      -    "pool": "1244ecbe-5862-41c3-99ec-4666a18b9dd5",
      -    "connector": "erc20_erc721",
      -    "key": "0x55860105d6a675dbe6e4d83f67b834377ba677ad",
      -    "operator": "0x30017fd084715e41aa6536ab777a8f3a2b11a5a1",
      -    "approved": true,
      -    "info": {
      -        "owner": "0x55860105d6a675dbe6e4d83f67b834377ba677ad",
      -        "spender": "0x30017fd084715e41aa6536ab777a8f3a2b11a5a1",
      -        "value": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
      -    },
      -    "namespace": "ns1",
      -    "protocolId": "000000000032/000000/000000",
      -    "subject": "0x55860105d6a675dbe6e4d83f67b834377ba677ad:0x30017fd084715e41aa6536ab777a8f3a2b11a5a1",
      -    "active": true,
      -    "created": "2022-05-16T01:23:15Z",
      -    "tx": {
      -        "type": "token_approval",
      -        "id": "4b6e086d-0e31-482d-9683-cd18b2045031"
      -    }
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      localIdThe UUID of this token approval, in the local FireFly nodeUUID
      poolThe UUID the token pool this approval applies toUUID
      connectorThe name of the token connector, as specified in the FireFly core configuration file. Required on input when there are more than one token connectors configuredstring
      keyThe blockchain signing key for the approval request. On input defaults to the first signing key of the organization that operates the nodestring
      operatorThe blockchain identity that is granted the approvalstring
      approvedWhether this record grants permission for an operator to perform actions on the token balance (true), or revokes permission (false)bool
      infoToken connector specific information about the approval operation, such as whether it applied to a limited balance of a fungible token. See your chosen token connector documentation for detailsJSONObject
      namespaceThe namespace for the approval, which must match the namespace of the token poolstring
      protocolIdAn alphanumerically sortable string that represents this event uniquely with respect to the blockchainstring
      subjectA string identifying the parties and entities in the scope of this approval, as provided by the token connectorstring
      activeIndicates if this approval is currently active (only one approval can be active per subject)bool
      messageThe UUID of a message that has been correlated with this approval using the data field of the approval in a compatible token connectorUUID
      messageHashThe hash of a message that has been correlated with this approval using the data field of the approval in a compatible token connectorBytes32
      createdThe creation time of the token approvalFFTime
      txIf submitted via FireFly, this will reference the UUID of the FireFly transaction (if the token connector in use supports attaching data)TransactionRef
      blockchainEventThe UUID of the blockchain eventUUID
      configInput only field, with token connector specific configuration of the approval. See your chosen token connector documentation for detailsJSONObject
      -

      - - - TransactionRef - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/tokenapproval/index.html b/head/reference/types/tokenapproval/index.html new file mode 100644 index 000000000..df5b64259 --- /dev/null +++ b/head/reference/types/tokenapproval/index.html @@ -0,0 +1,3620 @@ + + + + + + + + + + + + + + + + + + + + + + + TokenApproval - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      TokenApproval

      + + +

      A token approval is a record that an address other than the owner of a token balance, +has been granted authority to transfer tokens on the owners behalf.

      +

      The approved "operator" (or "spender") account might be a smart contract, +or another individual.

      +

      FireFly provides APIs for initiating and tracking approvals, which token +connectors integrate with the implementation of the underlying token.

      +

      The off-chain index maintained in FireFly for allowance allows you to quickly +find the most recent allowance event associated with a pair of keys, +using the subject field, combined with the active field. +When a new Token Approval event is delivered to FireFly Core by the +Token Connector, any previous approval for the same subject is marked +"active": false, and the new approval is marked with "active": true

      +
      +

      The token connector is responsible for the format of the subject field +to reflect the owner / operator (spender) relationship.

      +
      + + +

      Example

      +
      {
      +    "localId": "1cd3e2e2-dd6a-441d-94c5-02439de9897b",
      +    "pool": "1244ecbe-5862-41c3-99ec-4666a18b9dd5",
      +    "connector": "erc20_erc721",
      +    "key": "0x55860105d6a675dbe6e4d83f67b834377ba677ad",
      +    "operator": "0x30017fd084715e41aa6536ab777a8f3a2b11a5a1",
      +    "approved": true,
      +    "info": {
      +        "owner": "0x55860105d6a675dbe6e4d83f67b834377ba677ad",
      +        "spender": "0x30017fd084715e41aa6536ab777a8f3a2b11a5a1",
      +        "value": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
      +    },
      +    "namespace": "ns1",
      +    "protocolId": "000000000032/000000/000000",
      +    "subject": "0x55860105d6a675dbe6e4d83f67b834377ba677ad:0x30017fd084715e41aa6536ab777a8f3a2b11a5a1",
      +    "active": true,
      +    "created": "2022-05-16T01:23:15Z",
      +    "tx": {
      +        "type": "token_approval",
      +        "id": "4b6e086d-0e31-482d-9683-cd18b2045031"
      +    }
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      localIdThe UUID of this token approval, in the local FireFly nodeUUID
      poolThe UUID the token pool this approval applies toUUID
      connectorThe name of the token connector, as specified in the FireFly core configuration file. Required on input when there are more than one token connectors configuredstring
      keyThe blockchain signing key for the approval request. On input defaults to the first signing key of the organization that operates the nodestring
      operatorThe blockchain identity that is granted the approvalstring
      approvedWhether this record grants permission for an operator to perform actions on the token balance (true), or revokes permission (false)bool
      infoToken connector specific information about the approval operation, such as whether it applied to a limited balance of a fungible token. See your chosen token connector documentation for detailsJSONObject
      namespaceThe namespace for the approval, which must match the namespace of the token poolstring
      protocolIdAn alphanumerically sortable string that represents this event uniquely with respect to the blockchainstring
      subjectA string identifying the parties and entities in the scope of this approval, as provided by the token connectorstring
      activeIndicates if this approval is currently active (only one approval can be active per subject)bool
      messageThe UUID of a message that has been correlated with this approval using the data field of the approval in a compatible token connectorUUID
      messageHashThe hash of a message that has been correlated with this approval using the data field of the approval in a compatible token connectorBytes32
      createdThe creation time of the token approvalFFTime
      txIf submitted via FireFly, this will reference the UUID of the FireFly transaction (if the token connector in use supports attaching data)TransactionRef
      blockchainEventThe UUID of the blockchain eventUUID
      configInput only field, with token connector specific configuration of the approval. See your chosen token connector documentation for detailsJSONObject
      +

      TransactionRef

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/tokenpool.html b/head/reference/types/tokenpool.html deleted file mode 100644 index d027a5a7d..000000000 --- a/head/reference/types/tokenpool.html +++ /dev/null @@ -1,601 +0,0 @@ - - - - - - - - - TokenPool - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -TokenPool | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - TokenPool - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. TokenPool
          -
        1. Example token pool types
        2. -
        3. Example
        4. -
        5. Field Descriptions
        6. -
        -
      2. -
      3. TransactionRef
      4. -
      5. FFIReference
      6. -

      -

      - - - TokenPool - - -

      - - -

      Token pools are a FireFly construct for describing a set of tokens.

      - -

      The total supply of a particular fungible token, or a group of related non-fungible tokens.

      - -

      The exact definition of a token pool is dependent on the token connector implementation.

      - -

      Check the documentation for your chosen connector implementation to see the detailed options -for configuring a new Token Pool.

      - -

      Note that it is very common to use a Token Pool to teach Hyperledger FireFly about an -existing token, so that you can start interacting with a token that already exists.

      -

      - - - Example token pool types - - -

      - - -

      Some examples of how the generic concept of a Token Pool maps to various well-defined Ethereum standards:

      - -
        -
      • ERC-1155: a single contract instance can efficiently allocate -many isolated pools of fungible or non-fungible tokens
      • -
      • ERC-20 / ERC-777: -each contract instance represents a single fungible pool of value, e.g. “a coin”
      • -
      • ERC-721: each contract instance represents a single pool of NFTs, -each with unique identities within the pool
      • -
      • ERC-1400 / ERC-1410: -partially supported in the same manner as ERC-20/ERC-777, but would require new features for working with partitions
      • -
      - -

      These are provided as examples only - a custom token connector could be backed by any token technology (Ethereum or otherwise) -as long as it can support the basic operations described here (create pool, mint, burn, transfer). Other FireFly repos include a sample implementation of a token connector for ERC-20 and ERC-721 as well as ERC-1155.

      -

      - - - Example - - -

      - - -
      {
      -    "id": "90ebefdf-4230-48a5-9d07-c59751545859",
      -    "type": "fungible",
      -    "namespace": "ns1",
      -    "name": "my_token",
      -    "standard": "ERC-20",
      -    "locator": "address=0x056df1c53c3c00b0e13d37543f46930b42f71db0\u0026schema=ERC20WithData\u0026type=fungible",
      -    "decimals": 18,
      -    "connector": "erc20_erc721",
      -    "message": "43923040-b1e5-4164-aa20-47636c7177ee",
      -    "active": true,
      -    "created": "2022-05-16T01:23:15Z",
      -    "info": {
      -        "address": "0x056df1c53c3c00b0e13d37543f46930b42f71db0",
      -        "name": "pool8197",
      -        "schema": "ERC20WithData"
      -    },
      -    "tx": {
      -        "type": "token_pool",
      -        "id": "a23ffc87-81a2-4cbc-97d6-f53d320c36cd"
      -    },
      -    "published": false
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the token poolUUID
      typeThe type of token the pool contains, such as fungible/non-fungibleFFEnum:
      "fungible"
      "nonfungible"
      namespaceThe namespace for the token poolstring
      nameThe name of the token pool. Note the name is not validated against the description of the token on the blockchainstring
      networkNameThe published name of the token pool within the multiparty networkstring
      standardThe ERC standard the token pool conforms to, as reported by the token connectorstring
      locatorA unique identifier for the pool, as provided by the token connectorstring
      keyThe signing key used to create the token pool. On input for token connectors that support on-chain deployment of new tokens (vs. only index existing ones) this determines the signing key used to create the token on-chainstring
      symbolThe token symbol. If supplied on input for an existing on-chain token, this must match the on-chain informationstring
      decimalsNumber of decimal places that this token hasint
      connectorThe name of the token connector, as specified in the FireFly core configuration file that is responsible for the token pool. Required on input when multiple token connectors are configuredstring
      messageThe UUID of the broadcast message used to inform the network about this poolUUID
      activeIndicates whether the pool has been successfully activated with the token connectorbool
      createdThe creation time of the poolFFTime
      configInput only field, with token connector specific configuration of the pool, such as an existing Ethereum address and block number to used to index the pool. See your chosen token connector documentation for detailsJSONObject
      infoToken connector specific information about the pool. See your chosen token connector documentation for detailsJSONObject
      txReference to the FireFly transaction used to create and broadcast this pool to the networkTransactionRef
      interfaceA reference to an existing FFI, containing pre-registered type information for the token contractFFIReference
      interfaceFormatThe interface encoding format supported by the connector for this token poolFFEnum:
      "abi"
      "ffi"
      methodsThe method definitions resolved by the token connector to be used by each token operationJSONAny
      publishedIndicates if the token pool is published to other members of the multiparty networkbool
      -

      - - - TransactionRef - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      -

      - - - FFIReference - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the FireFly interfaceUUID
      nameThe name of the FireFly interfacestring
      versionThe version of the FireFly interfacestring
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/tokenpool/index.html b/head/reference/types/tokenpool/index.html new file mode 100644 index 000000000..fcae27f71 --- /dev/null +++ b/head/reference/types/tokenpool/index.html @@ -0,0 +1,3711 @@ + + + + + + + + + + + + + + + + + + + + + + + TokenPool - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      TokenPool

      + + +

      Token pools are a FireFly construct for describing a set of tokens.

      +

      The total supply of a particular fungible token, or a group of related non-fungible tokens.

      +

      The exact definition of a token pool is dependent on the token connector implementation.

      +

      Check the documentation for your chosen connector implementation to see the detailed options +for configuring a new Token Pool.

      +

      Note that it is very common to use a Token Pool to teach Hyperledger FireFly about an +existing token, so that you can start interacting with a token that already exists.

      +

      Example token pool types

      +

      Some examples of how the generic concept of a Token Pool maps to various well-defined Ethereum standards:

      +
        +
      • ERC-1155: a single contract instance can efficiently allocate + many isolated pools of fungible or non-fungible tokens
      • +
      • ERC-20 / ERC-777: + each contract instance represents a single fungible pool of value, e.g. "a coin"
      • +
      • ERC-721: each contract instance represents a single pool of NFTs, + each with unique identities within the pool
      • +
      • ERC-1400 / ERC-1410: + partially supported in the same manner as ERC-20/ERC-777, but would require new features for working with partitions
      • +
      +

      These are provided as examples only - a custom token connector could be backed by any token technology (Ethereum or otherwise) +as long as it can support the basic operations described here (create pool, mint, burn, transfer). Other FireFly repos include a sample implementation of a token connector for ERC-20 and ERC-721 as well as ERC-1155.

      + + + + +

      Example

      +
      {
      +    "id": "90ebefdf-4230-48a5-9d07-c59751545859",
      +    "type": "fungible",
      +    "namespace": "ns1",
      +    "name": "my_token",
      +    "standard": "ERC-20",
      +    "locator": "address=0x056df1c53c3c00b0e13d37543f46930b42f71db0\u0026schema=ERC20WithData\u0026type=fungible",
      +    "decimals": 18,
      +    "connector": "erc20_erc721",
      +    "message": "43923040-b1e5-4164-aa20-47636c7177ee",
      +    "active": true,
      +    "created": "2022-05-16T01:23:15Z",
      +    "info": {
      +        "address": "0x056df1c53c3c00b0e13d37543f46930b42f71db0",
      +        "name": "pool8197",
      +        "schema": "ERC20WithData"
      +    },
      +    "tx": {
      +        "type": "token_pool",
      +        "id": "a23ffc87-81a2-4cbc-97d6-f53d320c36cd"
      +    },
      +    "published": false
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the token poolUUID
      typeThe type of token the pool contains, such as fungible/non-fungibleFFEnum:
      "fungible"
      "nonfungible"
      namespaceThe namespace for the token poolstring
      nameThe name of the token pool. Note the name is not validated against the description of the token on the blockchainstring
      networkNameThe published name of the token pool within the multiparty networkstring
      standardThe ERC standard the token pool conforms to, as reported by the token connectorstring
      locatorA unique identifier for the pool, as provided by the token connectorstring
      keyThe signing key used to create the token pool. On input for token connectors that support on-chain deployment of new tokens (vs. only index existing ones) this determines the signing key used to create the token on-chainstring
      symbolThe token symbol. If supplied on input for an existing on-chain token, this must match the on-chain informationstring
      decimalsNumber of decimal places that this token hasint
      connectorThe name of the token connector, as specified in the FireFly core configuration file that is responsible for the token pool. Required on input when multiple token connectors are configuredstring
      messageThe UUID of the broadcast message used to inform the network about this poolUUID
      activeIndicates whether the pool has been successfully activated with the token connectorbool
      createdThe creation time of the poolFFTime
      configInput only field, with token connector specific configuration of the pool, such as an existing Ethereum address and block number to used to index the pool. See your chosen token connector documentation for detailsJSONObject
      infoToken connector specific information about the pool. See your chosen token connector documentation for detailsJSONObject
      txReference to the FireFly transaction used to create and broadcast this pool to the networkTransactionRef
      interfaceA reference to an existing FFI, containing pre-registered type information for the token contractFFIReference
      interfaceFormatThe interface encoding format supported by the connector for this token poolFFEnum:
      "abi"
      "ffi"
      methodsThe method definitions resolved by the token connector to be used by each token operationJSONAny
      publishedIndicates if the token pool is published to other members of the multiparty networkbool
      +

      TransactionRef

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      +

      FFIReference

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the FireFly interfaceUUID
      nameThe name of the FireFly interfacestring
      versionThe version of the FireFly interfacestring
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/tokentransfer.html b/head/reference/types/tokentransfer.html deleted file mode 100644 index f54be1973..000000000 --- a/head/reference/types/tokentransfer.html +++ /dev/null @@ -1,589 +0,0 @@ - - - - - - - - - TokenTransfer - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -TokenTransfer | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - TokenTransfer - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. TokenTransfer
          -
        1. FireFly initiated vs. non-FireFly initiated transfers
        2. -
        3. Message coordinated transfers
        4. -
        5. Transfer types
        6. -
        7. Example
        8. -
        9. Field Descriptions
        10. -
        -
      2. -
      3. TransactionRef
      4. -

      -

      - - - TokenTransfer - - -

      - - -

      A Token Transfer is created for each transfer of value that happens under a token pool.

      - -

      The transfers form an off-chain audit history (an “index”) of the transactions that -have been performed on the blockchain.

      - -

      This historical information cannot be queried directly from the blockchain for most token -implementations, because it is inefficient to use the blockchain to store complex -data structures like this. So the blockchain simply emits events when state changes, -and if you want to be able to query this historical information you need to track -it in your own off-chain database.

      - -

      Hyperledger FireFly maintains this index automatically for all Token Pools that are configured.

      -

      - - - FireFly initiated vs. non-FireFly initiated transfers - - -

      - - -

      There is no requirement at all to use FireFly to initiate transfers in Token Pools that -Hyperledger FireFly is aware of. FireFly will listen to and update its audit history -and balances for all transfers, regardless of whether they were initiated using a FireFly -Supernode or not.

      - -

      So you could for example use Metamask to initiate a transfer directly against an ERC-20/ERC-721 -contract directly on your blockchain, and you will see it appear as a transfer. Or initiate -a transfer on-chain via another Smart Contract, such as a Hashed Timelock Contract (HTLC) releasing -funds held in digital escrow.

      -

      - - - Message coordinated transfers - - -

      - - -

      One special feature enabled when using FireFly to initiate transfers, is to coordinate an off-chain -data transfer (private or broadcast) with the on-chain transfer of value. This is a powerful -tool to allow transfers to have rich metadata associated that is too sensitive (or too large) -to include on the blockchain itself.

      - -

      These transfers have a message associated with them, and require a compatible Token Connector and -on-chain Smart Contract that allows a data payload to be included as part of the transfer, and to -be emitted as part of the transfer event.

      - -

      Examples of how to do this are included in the ERC-20, ERC-721 and ERC-1155 Token Connector sample -smart contracts.

      -

      - - - Transfer types - - -

      - - -

      There are three primary types of transfer:

      - -
        -
      1. Mint - new tokens come into existence, increasing the total supply of tokens -within the pool. The from address will be unset for these transfer types.
      2. -
      3. Burn - existing tokens are taken out of circulation. The to address will be -unset for these transfer types.
      4. -
      5. Transfer - tokens move from ownership by one account, to another account. -The from and to addresses are both set for these type of transfers.
      6. -
      - -

      Note that the key that signed the Transfer transaction might be different to the from -account that is the owner of the tokens before the transfer.

      - -

      The Approval resource is used to track which signing accounts (other than the owner) -have approval to transfer tokens on the owner’s behalf.

      -

      - - - Example - - -

      - - -
      {
      -    "type": "transfer",
      -    "pool": "1244ecbe-5862-41c3-99ec-4666a18b9dd5",
      -    "uri": "firefly://token/1",
      -    "connector": "erc20_erc721",
      -    "namespace": "ns1",
      -    "key": "0x55860105D6A675dBE6e4d83F67b834377Ba677AD",
      -    "from": "0x55860105D6A675dBE6e4d83F67b834377Ba677AD",
      -    "to": "0x55860105D6A675dBE6e4d83F67b834377Ba677AD",
      -    "amount": "1000000000000000000",
      -    "protocolId": "000000000041/000000/000000",
      -    "message": "780b9b90-e3b0-4510-afac-b4b1f2940b36",
      -    "messageHash": "780204e634364c42779920eddc8d9fecccb33e3607eeac9f53abd1b31184ae4e",
      -    "created": "2022-05-16T01:23:15Z",
      -    "tx": {
      -        "type": "token_transfer",
      -        "id": "62767ca8-99f9-439c-9deb-d80c6672c158"
      -    },
      -    "blockchainEvent": "b57fcaa2-156e-4c3f-9b0b-ddec9ee25933"
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeThe type of transfer such as mint/burn/transferFFEnum:
      "mint"
      "burn"
      "transfer"
      localIdThe UUID of this token transfer, in the local FireFly nodeUUID
      poolThe UUID the token pool this transfer applies toUUID
      tokenIndexThe index of the token within the pool that this transfer applies tostring
      uriThe URI of the token this transfer applies tostring
      connectorThe name of the token connector, as specified in the FireFly core configuration file. Required on input when there are more than one token connectors configuredstring
      namespaceThe namespace for the transfer, which must match the namespace of the token poolstring
      keyThe blockchain signing key for the transfer. On input defaults to the first signing key of the organization that operates the nodestring
      fromThe source account for the transfer. On input defaults to the value of ‘key’string
      toThe target account for the transfer. On input defaults to the value of ‘key’string
      amountThe amount for the transfer. For non-fungible tokens will always be 1. For fungible tokens, the number of decimals for the token pool should be considered when inputting the amount. For example, with 18 decimals a fractional balance of 10.234 will be specified as 10,234,000,000,000,000,000FFBigInt
      protocolIdAn alphanumerically sortable string that represents this event uniquely with respect to the blockchainstring
      messageThe UUID of a message that has been correlated with this transfer using the data field of the transfer in a compatible token connectorUUID
      messageHashThe hash of a message that has been correlated with this transfer using the data field of the transfer in a compatible token connectorBytes32
      createdThe creation time of the transferFFTime
      txIf submitted via FireFly, this will reference the UUID of the FireFly transaction (if the token connector in use supports attaching data)TransactionRef
      blockchainEventThe UUID of the blockchain eventUUID
      configInput only field, with token connector specific configuration of the transfer. See your chosen token connector documentation for detailsJSONObject
      -

      - - - TransactionRef - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/tokentransfer/index.html b/head/reference/types/tokentransfer/index.html new file mode 100644 index 000000000..33214fb14 --- /dev/null +++ b/head/reference/types/tokentransfer/index.html @@ -0,0 +1,3703 @@ + + + + + + + + + + + + + + + + + + + + + + + TokenTransfer - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      TokenTransfer

      + + +

      A Token Transfer is created for each transfer of value that happens under a token pool.

      +

      The transfers form an off-chain audit history (an "index") of the transactions that +have been performed on the blockchain.

      +

      This historical information cannot be queried directly from the blockchain for most token +implementations, because it is inefficient to use the blockchain to store complex +data structures like this. So the blockchain simply emits events when state changes, +and if you want to be able to query this historical information you need to track +it in your own off-chain database.

      +

      Hyperledger FireFly maintains this index automatically for all Token Pools that are configured.

      +

      FireFly initiated vs. non-FireFly initiated transfers

      +

      There is no requirement at all to use FireFly to initiate transfers in Token Pools that +Hyperledger FireFly is aware of. FireFly will listen to and update its audit history +and balances for all transfers, regardless of whether they were initiated using a FireFly +Supernode or not.

      +

      So you could for example use Metamask to initiate a transfer directly against an ERC-20/ERC-721 +contract directly on your blockchain, and you will see it appear as a transfer. Or initiate +a transfer on-chain via another Smart Contract, such as a Hashed Timelock Contract (HTLC) releasing +funds held in digital escrow.

      +

      Message coordinated transfers

      +

      One special feature enabled when using FireFly to initiate transfers, is to coordinate an off-chain +data transfer (private or broadcast) with the on-chain transfer of value. This is a powerful +tool to allow transfers to have rich metadata associated that is too sensitive (or too large) +to include on the blockchain itself.

      +

      These transfers have a message associated with them, and require a compatible Token Connector and +on-chain Smart Contract that allows a data payload to be included as part of the transfer, and to +be emitted as part of the transfer event.

      +

      Examples of how to do this are included in the ERC-20, ERC-721 and ERC-1155 Token Connector sample +smart contracts.

      +

      Transfer types

      +

      There are three primary types of transfer:

      +
        +
      1. Mint - new tokens come into existence, increasing the total supply of tokens + within the pool. The from address will be unset for these transfer types.
      2. +
      3. Burn - existing tokens are taken out of circulation. The to address will be + unset for these transfer types.
      4. +
      5. Transfer - tokens move from ownership by one account, to another account. + The from and to addresses are both set for these type of transfers.
      6. +
      +

      Note that the key that signed the Transfer transaction might be different to the from +account that is the owner of the tokens before the transfer.

      +

      The Approval resource is used to track which signing accounts (other than the owner) +have approval to transfer tokens on the owner's behalf.

      + + +

      Example

      +
      {
      +    "type": "transfer",
      +    "pool": "1244ecbe-5862-41c3-99ec-4666a18b9dd5",
      +    "uri": "firefly://token/1",
      +    "connector": "erc20_erc721",
      +    "namespace": "ns1",
      +    "key": "0x55860105D6A675dBE6e4d83F67b834377Ba677AD",
      +    "from": "0x55860105D6A675dBE6e4d83F67b834377Ba677AD",
      +    "to": "0x55860105D6A675dBE6e4d83F67b834377Ba677AD",
      +    "amount": "1000000000000000000",
      +    "protocolId": "000000000041/000000/000000",
      +    "message": "780b9b90-e3b0-4510-afac-b4b1f2940b36",
      +    "messageHash": "780204e634364c42779920eddc8d9fecccb33e3607eeac9f53abd1b31184ae4e",
      +    "created": "2022-05-16T01:23:15Z",
      +    "tx": {
      +        "type": "token_transfer",
      +        "id": "62767ca8-99f9-439c-9deb-d80c6672c158"
      +    },
      +    "blockchainEvent": "b57fcaa2-156e-4c3f-9b0b-ddec9ee25933"
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeThe type of transfer such as mint/burn/transferFFEnum:
      "mint"
      "burn"
      "transfer"
      localIdThe UUID of this token transfer, in the local FireFly nodeUUID
      poolThe UUID the token pool this transfer applies toUUID
      tokenIndexThe index of the token within the pool that this transfer applies tostring
      uriThe URI of the token this transfer applies tostring
      connectorThe name of the token connector, as specified in the FireFly core configuration file. Required on input when there are more than one token connectors configuredstring
      namespaceThe namespace for the transfer, which must match the namespace of the token poolstring
      keyThe blockchain signing key for the transfer. On input defaults to the first signing key of the organization that operates the nodestring
      fromThe source account for the transfer. On input defaults to the value of 'key'string
      toThe target account for the transfer. On input defaults to the value of 'key'string
      amountThe amount for the transfer. For non-fungible tokens will always be 1. For fungible tokens, the number of decimals for the token pool should be considered when inputting the amount. For example, with 18 decimals a fractional balance of 10.234 will be specified as 10,234,000,000,000,000,000FFBigInt
      protocolIdAn alphanumerically sortable string that represents this event uniquely with respect to the blockchainstring
      messageThe UUID of a message that has been correlated with this transfer using the data field of the transfer in a compatible token connectorUUID
      messageHashThe hash of a message that has been correlated with this transfer using the data field of the transfer in a compatible token connectorBytes32
      createdThe creation time of the transferFFTime
      txIf submitted via FireFly, this will reference the UUID of the FireFly transaction (if the token connector in use supports attaching data)TransactionRef
      blockchainEventThe UUID of the blockchain eventUUID
      configInput only field, with token connector specific configuration of the transfer. See your chosen token connector documentation for detailsJSONObject
      +

      TransactionRef

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeThe type of the FireFly transactionFFEnum:
      idThe UUID of the FireFly transactionUUID
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/transaction.html b/head/reference/types/transaction.html deleted file mode 100644 index d0e6d646b..000000000 --- a/head/reference/types/transaction.html +++ /dev/null @@ -1,445 +0,0 @@ - - - - - - - - - Transaction - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Transaction | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Transaction - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Transaction
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -

      -

      - - - Transaction - - -

      - - -

      FireFly Transactions are a grouping construct for a number of Operations and Events -that need to complete or fail as unit.

      - -
      -

      FireFly Transactions are not themselves Blockchain transactions, but in many cases there is -exactly one Blockchain transaction associated with each FireFly transaction. Exceptions include -unpinned transactions, where there is no blockchain transaction at all.

      -
      - -

      The Blockchain native transaction ID is stored in the FireFly transaction object when it is known. -However, the FireFly transaction starts before a Blockchain transaction exists - because reliably submitting -the blockchain transaction is one of the operations that is performed inside of the FireFly transaction.

      - -

      The below screenshot from the FireFly Explorer nicely illustrates how multiple operations and events -are associated with a FireFly transaction. In this example, the transaction tracking is pinning of a batch of -messages stored in IPFS to the blockchain.

      - -

      So there is a Blockchain ID for the transaction - as there is just one Blockchain transaction regardless -of how many messages in the batch. There are operations for the submission of that transaction, and -the upload of the data to IPFS. Then a corresponding Blockchain Event Received event for the detection -of the event from the blockchain smart contract when the transaction was mined, and a Message Confirmed -event for each message in the batch (in this case 1). Then here the message was a special Definition message -that advertised a new Contract API to all members of the network - so there is a Contract API Confirmed -event as well.

      - -

      FireFly Transactions - Explorer View

      - -

      Each FireFly transaction has a UUID. This UUID is propagated through to all participants in a FireFly transaction. -For example in a Token Transfer that is coordinated with an off-chain private Message, -the transaction ID is propagated to all parties who are part of that transaction. So the same UUID can be used -to find the transaction in the FireFly Explorer of any member who has access to the message. -This is possible because hash-pinned off-chain data is associated with that on-chain transfer.

      - -

      However, in the case of a raw ERC-20/ERC-721 transfer (without data), or any other raw Blockchain transaction, -the FireFly transaction UUID cannot be propagated - so it will be local on the node that initiated -the transaction.

      -

      - - - Example - - -

      - - -
      {
      -    "id": "4e7e0943-4230-4f67-89b6-181adf471edc",
      -    "namespace": "ns1",
      -    "type": "contract_invoke",
      -    "created": "2022-05-16T01:23:15Z",
      -    "blockchainIds": [
      -        "0x34b0327567fefed09ac7b4429549bc609302b08a9cbd8f019a078ec44447593d"
      -    ]
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the FireFly transactionUUID
      namespaceThe namespace of the FireFly transactionstring
      typeThe type of the FireFly transactionFFEnum:
      "none"
      "unpinned"
      "batch_pin"
      "network_action"
      "token_pool"
      "token_transfer"
      "contract_deploy"
      "contract_invoke"
      "contract_invoke_pin"
      "token_approval"
      "data_publish"
      createdThe time the transaction was created on this node. Note the transaction is individually created with the same UUID on each participant in the FireFly transactionFFTime
      idempotencyKeyAn optional unique identifier for a transaction. Cannot be duplicated within a namespace, thus allowing idempotent submission of transactions to the APIIdempotencyKey
      blockchainIdsThe blockchain transaction ID, in the format specific to the blockchain involved in the transaction. Not all FireFly transactions include a blockchain. FireFly transactions are extensible to support multiple blockchain transactionsstring[]
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/transaction/index.html b/head/reference/types/transaction/index.html new file mode 100644 index 000000000..5d8ad28c2 --- /dev/null +++ b/head/reference/types/transaction/index.html @@ -0,0 +1,3525 @@ + + + + + + + + + + + + + + + + + + + + + + + Transaction - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Transaction

      + + +

      FireFly Transactions are a grouping construct for a number of Operations and Events +that need to complete or fail as unit.

      +
      +

      FireFly Transactions are not themselves Blockchain transactions, but in many cases there is +exactly one Blockchain transaction associated with each FireFly transaction. Exceptions include +unpinned transactions, where there is no blockchain transaction at all.

      +
      +

      The Blockchain native transaction ID is stored in the FireFly transaction object when it is known. +However, the FireFly transaction starts before a Blockchain transaction exists - because reliably submitting +the blockchain transaction is one of the operations that is performed inside of the FireFly transaction.

      +

      The below screenshot from the FireFly Explorer nicely illustrates how multiple operations and events +are associated with a FireFly transaction. In this example, the transaction tracking is pinning of a batch of +messages stored in IPFS to the blockchain.

      +

      So there is a Blockchain ID for the transaction - as there is just one Blockchain transaction regardless +of how many messages in the batch. There are operations for the submission of that transaction, and +the upload of the data to IPFS. Then a corresponding Blockchain Event Received event for the detection +of the event from the blockchain smart contract when the transaction was mined, and a Message Confirmed +event for each message in the batch (in this case 1). Then here the message was a special Definition message +that advertised a new Contract API to all members of the network - so there is a Contract API Confirmed +event as well.

      +

      FireFly Transactions - Explorer View

      +

      Each FireFly transaction has a UUID. This UUID is propagated through to all participants in a FireFly transaction. +For example in a Token Transfer that is coordinated with an off-chain private Message, +the transaction ID is propagated to all parties who are part of that transaction. So the same UUID can be used +to find the transaction in the FireFly Explorer of any member who has access to the message. +This is possible because hash-pinned off-chain data is associated with that on-chain transfer.

      +

      However, in the case of a raw ERC-20/ERC-721 transfer (without data), or any other raw Blockchain transaction, +the FireFly transaction UUID cannot be propagated - so it will be local on the node that initiated +the transaction.

      + + +

      Example

      +
      {
      +    "id": "4e7e0943-4230-4f67-89b6-181adf471edc",
      +    "namespace": "ns1",
      +    "type": "contract_invoke",
      +    "created": "2022-05-16T01:23:15Z",
      +    "blockchainIds": [
      +        "0x34b0327567fefed09ac7b4429549bc609302b08a9cbd8f019a078ec44447593d"
      +    ]
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the FireFly transactionUUID
      namespaceThe namespace of the FireFly transactionstring
      typeThe type of the FireFly transactionFFEnum:
      "none"
      "unpinned"
      "batch_pin"
      "network_action"
      "token_pool"
      "token_transfer"
      "contract_deploy"
      "contract_invoke"
      "contract_invoke_pin"
      "token_approval"
      "data_publish"
      createdThe time the transaction was created on this node. Note the transaction is individually created with the same UUID on each participant in the FireFly transactionFFTime
      idempotencyKeyAn optional unique identifier for a transaction. Cannot be duplicated within a namespace, thus allowing idempotent submission of transactions to the APIIdempotencyKey
      blockchainIdsThe blockchain transaction ID, in the format specific to the blockchain involved in the transaction. Not all FireFly transactions include a blockchain. FireFly transactions are extensible to support multiple blockchain transactionsstring[]
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/verifier.html b/head/reference/types/verifier.html deleted file mode 100644 index ff6f32b7a..000000000 --- a/head/reference/types/verifier.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - - - - - - Verifier - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Verifier | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Verifier - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Verifier
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -

      -

      - - - Verifier - - -

      - - -

      A verifier is a cryptographic verification mechanism for an identity in FireFly.

      - -

      FireFly generally defers verification of these keys to the lower layers of technologies -in the stack - the blockchain (Fabric, Ethereum etc.) or Data Exchange technology.

      - -

      As such the details of the public key cryptography scheme are not represented in the -FireFly verifiers. Only the string identifier of the verifier that is appropriate -to the technology.

      - -
        -
      • Ethereum blockchains: The Ethereum address hex string
      • -
      • Hyperledger Fabric: The fully qualified MSP Identifier string
      • -
      • Data exchange: The data exchange “Peer ID”, as determined by the DX plugin
      • -
      -

      - - - Example - - -

      - - -
      {
      -    "hash": "6818c41093590b862b781082d4df5d4abda6d2a4b71d737779edf6d2375d810b",
      -    "identity": "114f5857-9983-46fb-b1fc-8c8f0a20846c",
      -    "type": "ethereum_address",
      -    "value": "0x30017fd084715e41aa6536ab777a8f3a2b11a5a1",
      -    "created": "2022-05-16T01:23:15Z"
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      hashHash used as a globally consistent identifier for this namespace + type + value combination on every node in the networkBytes32
      identityThe UUID of the parent identity that has claimed this verifierUUID
      namespaceThe namespace of the verifierstring
      typeThe type of the verifierFFEnum:
      "ethereum_address"
      "tezos_address"
      "fabric_msp_id"
      "dx_peer_id"
      valueThe verifier string, such as an Ethereum address, or Fabric MSP identifierstring
      createdThe time this verifier was created on this nodeFFTime
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/verifier/index.html b/head/reference/types/verifier/index.html new file mode 100644 index 000000000..9a2e6c0c6 --- /dev/null +++ b/head/reference/types/verifier/index.html @@ -0,0 +1,3505 @@ + + + + + + + + + + + + + + + + + + + + + + + Verifier - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Verifier

      + + +

      A verifier is a cryptographic verification mechanism for an identity in FireFly.

      +

      FireFly generally defers verification of these keys to the lower layers of technologies +in the stack - the blockchain (Fabric, Ethereum etc.) or Data Exchange technology.

      +

      As such the details of the public key cryptography scheme are not represented in the +FireFly verifiers. Only the string identifier of the verifier that is appropriate +to the technology.

      +
        +
      • Ethereum blockchains: The Ethereum address hex string
      • +
      • Hyperledger Fabric: The fully qualified MSP Identifier string
      • +
      • Data exchange: The data exchange "Peer ID", as determined by the DX plugin
      • +
      + + +

      Example

      +
      {
      +    "hash": "6818c41093590b862b781082d4df5d4abda6d2a4b71d737779edf6d2375d810b",
      +    "identity": "114f5857-9983-46fb-b1fc-8c8f0a20846c",
      +    "type": "ethereum_address",
      +    "value": "0x30017fd084715e41aa6536ab777a8f3a2b11a5a1",
      +    "created": "2022-05-16T01:23:15Z"
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      hashHash used as a globally consistent identifier for this namespace + type + value combination on every node in the networkBytes32
      identityThe UUID of the parent identity that has claimed this verifierUUID
      namespaceThe namespace of the verifierstring
      typeThe type of the verifierFFEnum:
      "ethereum_address"
      "tezos_address"
      "fabric_msp_id"
      "dx_peer_id"
      valueThe verifier string, such as an Ethereum address, or Fabric MSP identifierstring
      createdThe time this verifier was created on this nodeFFTime
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/wsack.html b/head/reference/types/wsack.html deleted file mode 100644 index 632c068f9..000000000 --- a/head/reference/types/wsack.html +++ /dev/null @@ -1,446 +0,0 @@ - - - - - - - - - WSAck - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -WSAck | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - WSAck - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. WSAck
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -
      3. SubscriptionRef
      4. -

      -

      - - - WSAck - - -

      - - -

      An ack must be sent on a WebSocket for each event delivered to an application.

      - -
      -

      Unless autoack is set in the WSStart payload/URL parameters to cause -automatic acknowledgement.

      -
      - -

      Your application should specify the id of each event that it acknowledges.

      - -

      If the id is omitted, then FireFly will assume the oldest message delivered to the -application that has not been acknowledged is the one the ack is associated with.

      - -

      If multiple subscriptions are started on a WebSocket, then you need to specify the -subscription namespace+name as part of each ack.

      - -

      If you send an acknowledgement that cannot be correlated, then a WSError -payload will be sent to the application.

      -

      - - - Example - - -

      - - -
      {
      -    "type": "ack",
      -    "id": "f78bf82b-1292-4c86-8a08-e53d855f1a64",
      -    "subscription": {
      -        "namespace": "ns1",
      -        "name": "app1_subscription"
      -    }
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeWSActionBase.typeFFEnum:
      "start"
      "ack"
      "protocol_error"
      "event_batch"
      idWSAck.idUUID
      subscriptionWSAck.subscriptionSubscriptionRef
      -

      - - - SubscriptionRef - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      idThe UUID of the subscriptionUUID
      namespaceThe namespace of the subscription. A subscription will only receive events generated in the namespace of the subscriptionstring
      nameThe name of the subscription. The application specifies this name when it connects, in order to attach to the subscription and receive events that arrived while it was disconnected. If multiple apps connect to the same subscription, events are workload balanced across the connected application instancesstring
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/wsack/index.html b/head/reference/types/wsack/index.html new file mode 100644 index 000000000..96ac69455 --- /dev/null +++ b/head/reference/types/wsack/index.html @@ -0,0 +1,3537 @@ + + + + + + + + + + + + + + + + + + + + + + + WSAck - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      WSAck

      + + +

      An ack must be sent on a WebSocket for each event delivered to an application.

      +
      +

      Unless autoack is set in the WSStart payload/URL parameters to cause +automatic acknowledgement.

      +
      +

      Your application should specify the id of each event that it acknowledges.

      +

      If the id is omitted, then FireFly will assume the oldest message delivered to the +application that has not been acknowledged is the one the ack is associated with.

      +

      If multiple subscriptions are started on a WebSocket, then you need to specify the +subscription namespace+name as part of each ack.

      +

      If you send an acknowledgement that cannot be correlated, then a WSError +payload will be sent to the application.

      + + +

      Example

      +
      {
      +    "type": "ack",
      +    "id": "f78bf82b-1292-4c86-8a08-e53d855f1a64",
      +    "subscription": {
      +        "namespace": "ns1",
      +        "name": "app1_subscription"
      +    }
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeWSActionBase.typeFFEnum:
      "start"
      "ack"
      "protocol_error"
      "event_batch"
      idWSAck.idUUID
      subscriptionWSAck.subscriptionSubscriptionRef
      +

      SubscriptionRef

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      idThe UUID of the subscriptionUUID
      namespaceThe namespace of the subscription. A subscription will only receive events generated in the namespace of the subscriptionstring
      nameThe name of the subscription. The application specifies this name when it connects, in order to attach to the subscription and receive events that arrived while it was disconnected. If multiple apps connect to the same subscription, events are workload balanced across the connected application instancesstring
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/wserror.html b/head/reference/types/wserror.html deleted file mode 100644 index 30f512412..000000000 --- a/head/reference/types/wserror.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - - - - - WSError - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -WSError | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - WSError - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. WSError
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -

      -

      - - - WSError - - -

      - -

      - - - Example - - -

      - - -
      {
      -    "type": "protocol_error",
      -    "error": "FF10175: Acknowledgment does not match an inflight event + subscription"
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeWSAck.typeFFEnum:
      "start"
      "ack"
      "protocol_error"
      "event_batch"
      errorWSAck.errorstring
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/wserror/index.html b/head/reference/types/wserror/index.html new file mode 100644 index 000000000..ebd2a86bb --- /dev/null +++ b/head/reference/types/wserror/index.html @@ -0,0 +1,3472 @@ + + + + + + + + + + + + + + + + + + + + + + + WSError - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      WSError

      + + + + + +

      Example

      +
      {
      +    "type": "protocol_error",
      +    "error": "FF10175: Acknowledgment does not match an inflight event + subscription"
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeWSAck.typeFFEnum:
      "start"
      "ack"
      "protocol_error"
      "event_batch"
      errorWSAck.errorstring
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/reference/types/wsstart.html b/head/reference/types/wsstart.html deleted file mode 100644 index d688fa42d..000000000 --- a/head/reference/types/wsstart.html +++ /dev/null @@ -1,840 +0,0 @@ - - - - - - - - - WSStart - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -WSStart | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - WSStart - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. WSStart
          -
        1. Example
        2. -
        3. Field Descriptions
        4. -
        -
      2. -
      3. SubscriptionFilter
      4. -
      5. MessageFilter
      6. -
      7. TransactionFilter
      8. -
      9. BlockchainEventFilter
      10. -
      11. SubscriptionOptions
      12. -
      13. WebhookInputOptions
      14. -
      15. WebhookRetryOptions
      16. -
      17. WebhookHTTPOptions
      18. -

      -

      - - - WSStart - - -

      - - -

      The start payload is sent after an application connects to a WebSocket, to start -delivery of events over that connection.

      - -

      The start command can refer to a subscription by name in order to reliably receive all matching -events for that subscription, including those that were emitted when the application -was disconnected.

      - -

      Alternatively the start command can request "ephemeral": true in order to dynamically create a new -subscription that lasts only for the duration that the connection is active.

      -

      - - - Example - - -

      - - -
      {
      -    "type": "start",
      -    "autoack": false,
      -    "namespace": "ns1",
      -    "name": "app1_subscription",
      -    "ephemeral": false,
      -    "filter": {
      -        "message": {},
      -        "transaction": {},
      -        "blockchainevent": {}
      -    },
      -    "options": {}
      -}
      -
      -

      - - - Field Descriptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeWSActionBase.typeFFEnum:
      "start"
      "ack"
      "protocol_error"
      "event_batch"
      autoackWSStart.autoackbool
      namespaceWSStart.namespacestring
      nameWSStart.namestring
      ephemeralWSStart.ephemeralbool
      filterWSStart.filterSubscriptionFilter
      optionsWSStart.optionsSubscriptionOptions
      -

      - - - SubscriptionFilter - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      eventsRegular expression to apply to the event type, to subscribe to a subset of event typesstring
      messageFilters specific to message events. If an event is not a message event, these filters are ignoredMessageFilter
      transactionFilters specific to events with a transaction. If an event is not associated with a transaction, this filter is ignoredTransactionFilter
      blockchaineventFilters specific to blockchain events. If an event is not a blockchain event, these filters are ignoredBlockchainEventFilter
      topicRegular expression to apply to the topic of the event, to subscribe to a subset of topics. Note for messages sent with multiple topics, a separate event is emitted for each topicstring
      topicsDeprecated: Please use ‘topic’ insteadstring
      tagDeprecated: Please use ‘message.tag’ insteadstring
      groupDeprecated: Please use ‘message.group’ insteadstring
      authorDeprecated: Please use ‘message.author’ insteadstring
      -

      - - - MessageFilter - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      tagRegular expression to apply to the message ‘header.tag’ fieldstring
      groupRegular expression to apply to the message ‘header.group’ fieldstring
      authorRegular expression to apply to the message ‘header.author’ fieldstring
      -

      - - - TransactionFilter - - -

      - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      typeRegular expression to apply to the transaction ‘type’ fieldstring
      -

      - - - BlockchainEventFilter - - -

      - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      nameRegular expression to apply to the blockchain event ‘name’ field, which is the name of the event in the underlying blockchain smart contractstring
      listenerRegular expression to apply to the blockchain event ‘listener’ field, which is the UUID of the event listener. So you can restrict your subscription to certain blockchain listeners. Alternatively to avoid your application need to know listener UUIDs you can set the ‘topic’ field of blockchain event listeners, and use a topic filter on your subscriptionsstring
      -

      - - - SubscriptionOptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      firstEventWhether your application would like to receive events from the ‘oldest’ event emitted by your FireFly node (from the beginning of time), or the ‘newest’ event (from now), or a specific event sequence. Default is ‘newest’SubOptsFirstEvent
      readAheadThe number of events to stream ahead to your application, while waiting for confirmation of consumption of those events. At least once delivery semantics are used in FireFly, so if your application crashes/reconnects this is the maximum number of events you would expect to be redelivered after it restartsuint16
      withDataWhether message events delivered over the subscription, should be packaged with the full data of those messages in-line as part of the event JSON payload. Or if the application should make separate REST calls to download that data. May not be supported on some transports.bool
      batchEvents are delivered in batches in an ordered array. The batch size is capped to the readAhead limit. The event payload is always an array even if there is a single event in the batch, allowing client-side optimizations when processing the events in a group. Available for both Webhooks and WebSockets.bool
      batchTimeoutWhen batching is enabled, the optional timeout to send events even when the batch hasn’t filled.string
      fastackWebhooks only: When true the event will be acknowledged before the webhook is invoked, allowing parallel invocationsbool
      urlWebhooks only: HTTP url to invoke. Can be relative if a base URL is set in the webhook plugin configstring
      methodWebhooks only: HTTP method to invoke. Default=POSTstring
      jsonWebhooks only: Whether to assume the response body is JSON, regardless of the returned Content-Typebool
      replyWebhooks only: Whether to automatically send a reply event, using the body returned by the webhookbool
      replytagWebhooks only: The tag to set on the reply messagestring
      replytxWebhooks only: The transaction type to set on the reply messagestring
      headersWebhooks only: Static headers to set on the webhook request``
      queryWebhooks only: Static query params to set on the webhook request``
      tlsConfigNameThe name of an existing TLS configuration associated to the namespace to usestring
      inputWebhooks only: A set of options to extract data from the first JSON input data in the incoming message. Only applies if withData=trueWebhookInputOptions
      retryWebhooks only: a set of options for retrying the webhook callWebhookRetryOptions
      httpOptionsWebhooks only: a set of options for HTTPWebhookHTTPOptions
      -

      - - - WebhookInputOptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      queryA top-level property of the first data input, to use for query parametersstring
      headersA top-level property of the first data input, to use for headersstring
      bodyA top-level property of the first data input, to use for the request body. Default is the whole first bodystring
      pathA top-level property of the first data input, to use for a path to append with escaping to the webhook pathstring
      replytxA top-level property of the first data input, to use to dynamically set whether to pin the response (so the requester can choose)string
      -

      - - - WebhookRetryOptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      enabledEnables retry on HTTP calls, defaults to falsebool
      countNumber of times to retry the webhook call in case of failureint
      initialDelayInitial delay between retries when we retry the webhook callstring
      maxDelayMax delay between retries when we retry the webhookcallstring
      -

      - - - WebhookHTTPOptions - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Field NameDescriptionType
      proxyURLHTTP proxy URL to use for outbound requests to the webhookstring
      tlsHandshakeTimeoutThe max duration to hold a TLS handshake alivestring
      requestTimeoutThe max duration to hold a TLS handshake alivestring
      maxIdleConnsThe max number of idle connections to hold pooledint
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callsstring
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmitted.string
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docsstring
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/reference/types/wsstart/index.html b/head/reference/types/wsstart/index.html new file mode 100644 index 000000000..468ccbb91 --- /dev/null +++ b/head/reference/types/wsstart/index.html @@ -0,0 +1,3997 @@ + + + + + + + + + + + + + + + + + + + + + + + WSStart - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      WSStart

      + + +

      The start payload is sent after an application connects to a WebSocket, to start +delivery of events over that connection.

      +

      The start command can refer to a subscription by name in order to reliably receive all matching +events for that subscription, including those that were emitted when the application +was disconnected.

      +

      Alternatively the start command can request "ephemeral": true in order to dynamically create a new +subscription that lasts only for the duration that the connection is active.

      + + +

      Example

      +
      {
      +    "type": "start",
      +    "autoack": false,
      +    "namespace": "ns1",
      +    "name": "app1_subscription",
      +    "ephemeral": false,
      +    "filter": {
      +        "message": {},
      +        "transaction": {},
      +        "blockchainevent": {}
      +    },
      +    "options": {}
      +}
      +
      +

      Field Descriptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeWSActionBase.typeFFEnum:
      "start"
      "ack"
      "protocol_error"
      "event_batch"
      autoackWSStart.autoackbool
      namespaceWSStart.namespacestring
      nameWSStart.namestring
      ephemeralWSStart.ephemeralbool
      filterWSStart.filterSubscriptionFilter
      optionsWSStart.optionsSubscriptionOptions
      +

      SubscriptionFilter

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      eventsRegular expression to apply to the event type, to subscribe to a subset of event typesstring
      messageFilters specific to message events. If an event is not a message event, these filters are ignoredMessageFilter
      transactionFilters specific to events with a transaction. If an event is not associated with a transaction, this filter is ignoredTransactionFilter
      blockchaineventFilters specific to blockchain events. If an event is not a blockchain event, these filters are ignoredBlockchainEventFilter
      topicRegular expression to apply to the topic of the event, to subscribe to a subset of topics. Note for messages sent with multiple topics, a separate event is emitted for each topicstring
      topicsDeprecated: Please use 'topic' insteadstring
      tagDeprecated: Please use 'message.tag' insteadstring
      groupDeprecated: Please use 'message.group' insteadstring
      authorDeprecated: Please use 'message.author' insteadstring
      +

      MessageFilter

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      tagRegular expression to apply to the message 'header.tag' fieldstring
      groupRegular expression to apply to the message 'header.group' fieldstring
      authorRegular expression to apply to the message 'header.author' fieldstring
      +

      TransactionFilter

      + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      typeRegular expression to apply to the transaction 'type' fieldstring
      +

      BlockchainEventFilter

      + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      nameRegular expression to apply to the blockchain event 'name' field, which is the name of the event in the underlying blockchain smart contractstring
      listenerRegular expression to apply to the blockchain event 'listener' field, which is the UUID of the event listener. So you can restrict your subscription to certain blockchain listeners. Alternatively to avoid your application need to know listener UUIDs you can set the 'topic' field of blockchain event listeners, and use a topic filter on your subscriptionsstring
      +

      SubscriptionOptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      firstEventWhether your application would like to receive events from the 'oldest' event emitted by your FireFly node (from the beginning of time), or the 'newest' event (from now), or a specific event sequence. Default is 'newest'SubOptsFirstEvent
      readAheadThe number of events to stream ahead to your application, while waiting for confirmation of consumption of those events. At least once delivery semantics are used in FireFly, so if your application crashes/reconnects this is the maximum number of events you would expect to be redelivered after it restartsuint16
      withDataWhether message events delivered over the subscription, should be packaged with the full data of those messages in-line as part of the event JSON payload. Or if the application should make separate REST calls to download that data. May not be supported on some transports.bool
      batchEvents are delivered in batches in an ordered array. The batch size is capped to the readAhead limit. The event payload is always an array even if there is a single event in the batch, allowing client-side optimizations when processing the events in a group. Available for both Webhooks and WebSockets.bool
      batchTimeoutWhen batching is enabled, the optional timeout to send events even when the batch hasn't filled.string
      fastackWebhooks only: When true the event will be acknowledged before the webhook is invoked, allowing parallel invocationsbool
      urlWebhooks only: HTTP url to invoke. Can be relative if a base URL is set in the webhook plugin configstring
      methodWebhooks only: HTTP method to invoke. Default=POSTstring
      jsonWebhooks only: Whether to assume the response body is JSON, regardless of the returned Content-Typebool
      replyWebhooks only: Whether to automatically send a reply event, using the body returned by the webhookbool
      replytagWebhooks only: The tag to set on the reply messagestring
      replytxWebhooks only: The transaction type to set on the reply messagestring
      headersWebhooks only: Static headers to set on the webhook request``
      queryWebhooks only: Static query params to set on the webhook request``
      tlsConfigNameThe name of an existing TLS configuration associated to the namespace to usestring
      inputWebhooks only: A set of options to extract data from the first JSON input data in the incoming message. Only applies if withData=trueWebhookInputOptions
      retryWebhooks only: a set of options for retrying the webhook callWebhookRetryOptions
      httpOptionsWebhooks only: a set of options for HTTPWebhookHTTPOptions
      +

      WebhookInputOptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      queryA top-level property of the first data input, to use for query parametersstring
      headersA top-level property of the first data input, to use for headersstring
      bodyA top-level property of the first data input, to use for the request body. Default is the whole first bodystring
      pathA top-level property of the first data input, to use for a path to append with escaping to the webhook pathstring
      replytxA top-level property of the first data input, to use to dynamically set whether to pin the response (so the requester can choose)string
      +

      WebhookRetryOptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      enabledEnables retry on HTTP calls, defaults to falsebool
      countNumber of times to retry the webhook call in case of failureint
      initialDelayInitial delay between retries when we retry the webhook callstring
      maxDelayMax delay between retries when we retry the webhookcallstring
      +

      WebhookHTTPOptions

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Field NameDescriptionType
      proxyURLHTTP proxy URL to use for outbound requests to the webhookstring
      tlsHandshakeTimeoutThe max duration to hold a TLS handshake alivestring
      requestTimeoutThe max duration to hold a TLS handshake alivestring
      maxIdleConnsThe max number of idle connections to hold pooledint
      idleTimeoutThe max duration to hold a HTTP keepalive connection between callsstring
      connectionTimeoutThe maximum amount of time that a connection is allowed to remain with no data transmitted.string
      expectContinueTimeoutSee ExpectContinueTimeout in the Go docsstring
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/releasenotes/1.1_migration_guide.html b/head/releasenotes/1.1_migration_guide.html deleted file mode 100644 index 5d89f6dc7..000000000 --- a/head/releasenotes/1.1_migration_guide.html +++ /dev/null @@ -1,568 +0,0 @@ - - - - - - - - - v1.1.0 Migration Guide - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -v1.1.0 Migration Guide | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - v1.1.0 Migration Guide - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Overview
      2. -
      3. Before Upgrading
          -
        1. Common Steps
        2. -
        3. Less Common Situations
        4. -
        -
      4. -
      5. Performing the Upgrade
      6. -
      7. After Upgrading
      8. -
      9. Upgrading the Multi-Party Contract
      10. -

      -

      - - - Overview - - -

      - - -

      Hyperledger FireFly v1.1.0 is a feature release that includes significant new functionality around namespaces and plugins, as detailed in FIR-12. As a result, upgrading an existing FireFly environment from any prior release may require special steps (depending on the functionality used).

      - -

      If seamless data preservation is not required, you can simply create a new network from scratch using FireFly v1.1.0.

      - -

      If you want to preserve data from an existing 1.0.x network, significant care has been taken to ensure that it is possible. Most existing environments can be upgraded with minimal extra steps. This document attempts to call out all potentially breaking changes (both common and uncommon), so that you can easily assess the impact of the upgrade and any needed preparation before proceeding.

      -

      - - - Before Upgrading - - -

      - - -

      These steps are all safe to do while running FireFly v1.0.x. While they do not have to be done prior to upgrading, performing them ahead of time may allow you to preemptively fix some problems and ease the migration to v1.1.0.

      -

      - - - Common Steps - - -

      - - -

      Upgrade to latest v1.0.x patch release

      - -

      Before upgrading to v1.1.0, it is strongly recommended to upgrade to the latest v1.0.x patch release (v1.0.4 as of the writing this document). Do not proceed any further in this guide until all nodes are successfully running the latest patch release version.

      - -

      Fix any deprecated config usage

      - -

      All items in FireFly’s YAML config that were deprecated at any time in the v1.0.x line will be unsupported in v1.1.0. After upgrading to the latest v1.0.x patch release, you should therefore look for any deprecation warnings when starting FireFly, and ensure they are fixed before upgrading to v1.1.0. Failure to do so will cause your config file to be rejected in v1.1.0, and FireFly will fail to start.

      - -

      You can utilize the ffconfig tool to automatically check and fix deprecated config with a command such as:

      - -
      ffconfig migrate -f <input-file> -o <output-file> --to 1.0.4
      -
      - -

      This should ensure your config file is acceptable to 1.0.x or 1.1.x.

      - -

      Note that if you are attempting to migrate a Dockerized development environment (such as one stood up by the firefly-cli), you may need to edit the config file inside the Docker. Environments created by a v1.0.x CLI do not expose the config file outside the Docker container.

      -

      - - - Less Common Situations - - -

      - - -

      Record all broadcast namespaces in the config file

      - -
      -Expand for migration details only if your application uses non-default namespaces. - -FireFly v1.0 allowed for the dynamic creation of new namespaces by broadcasting a namespace definition to all nodes. This functionality is _removed_ in v1.1.0. If your network relies on any namespaces that were created via a broadcast, you must add those namespaces to the `namespaces.predefined` list in your YAML config prior to upgrade. If you do not, they will cease to function after upgrading to v1.1.0 (all events on those namespaces will be ignored by your node). - -
      - -

      Identify queries for organization/node identities

      - -
      -Expand for migration details only if your application queries /network/organizations or /network/nodes. - -Applications that query `/network/organizations` or `/network/nodes` will temporarily receive _empty result lists_ after upgrading to v1.1.0, just until all identities have been re-registered (see steps in "After Upgrading"). This is because organization and node identities were broadcast on a global "ff_system" namespace in v1.0, but are no longer global in v1.1.0. - -The simplest solution is to shut down applications until the FireFly upgrade is complete on all nodes and all identities have been re-broadcast. - -If this poses a problem and you require zero downtime from these APIs, you can proactively mitigate with the following steps in your application code: - -- Applications that query the `/network/organizations` may be altered to _also_ query `/namespaces/ff_system/network/organizations` and combine the results (but should disregard the second query if it fails). -- Applications that query the `/network/nodes` may be altered to _also_ query `/namespaces/ff_system/network/nodes` and combine the results (but should disregard the second query if it fails). - -Further details on the changes to `/network` APIs are provided in the next section. - -
      - -

      Identify usage of changed APIs

      - -
      -Expand for migration details on all changes to /namespaces, /status, and /network APIs. - -The primary API change in this version is that the "global" paths beginning with `/network` and `/status` have been relocated under the `/namespaces/{ns}` prefix, as this data is now specific to a namespace instead of being global. At the same time, the API server has been enhanced so that omitting a namespace from an API path will _query the default namespace_ instead. That is, querying `/messages` is now the same as querying `/namespaces/default/messages` (assuming your default namespace is named "default"). This has the effect that most of the moved APIs will continue to function without requiring changes. See below for details on the affected paths. - -These global routes have been moved under `/namespaces/{ns}`. Continuing to use them without the namespace prefix **will still work**, and will simply query the default namespace. - -``` -/network/diddocs/{did} -/network/nodes -/network/nodes/{nameOrId} -/network/nodes/self -/network/organizations -/network/organizations/{nameOrId} -/network/organizations/self -/status -/status/batchmanager -``` - -These global routes have been moved under `/namespaces/{ns}` and have also been deprecated in favor of a new route name. Continuing to use them without the namespace prefix **will still work**, and will simply query the default namespace. However, it is recommended to switch to the new API spelling when possible. - -``` -/network/identities - replaced by existing /namespaces/{ns}/identities -/network/identities/{did} - replaced by new /namespaces/{ns}/identities/{did} -``` - -These global routes have been have been permanently renamed. They are deemed less likely to be used by client applications, but any usage **will be broken** by this release and must be changed after upgrading. - -``` -/status/pins - moved to /namespaces/{ns}/pins (or /pins to query the default namespace) -/status/websockets - moved to /websockets -``` - -The response bodies of the following APIs have also had fields removed. Any usage of the removed fields **will be broken** by this release and must be changed after upgrading. - -``` -/namespaces - removed all fields except "name", "description", "created" -/namespaces/{ns} - same as above -/namespaces/{ns}/status - removed "defaults" -``` - -
      - -

      Adjust or remove usage of admin APIs

      - -
      -Expand for migration details on all changes to /admin and /spi. - -FireFly provides an administrative API in addition to the normal API. In v1.1.0, this has been renamed to -SPI (Service Provider Interface). Consequently, all of the routes have moved from `/admin` to `/spi`, and -the config section has been renamed from `admin` to `spi`. There is no automatic migration provided, so -any usage of the old routes will need to be changed, and your config file will need to be adjusted if you -wish to keep the SPI enabled (although it is perfectly fine to have both `admin` and `spi` sections if -needed for migration). - -The ability to set FireFly config via these routes has also been removed. Any usage of the `/admin/config` -routes must be discontinued, and config should be set exclusively by editing the FireFly config file. -The only route retained from this functionality was `/admin/config/reset`, which has been renamed to -`/spi/reset` - this will continue to be available for performing a soft reset that reloads FireFly's config. - -
      -

      - - - Performing the Upgrade - - -

      - - -

      Backup current data

      - -

      Before beginning the upgrade, it is recommended to take a full backup of your FireFly database(s). -If you encounter any serious issues after the upgrade, you should revert to the old binary and restore -your database snapshot. While down-migrations are provided to revert a database in place, they are -not guaranteed to work in all scenarios.

      - -

      Upgrade FireFly and all dependencies

      - -

      Bring FireFly down and replace it with the new v1.1.0 binary. You should also replace other runtimes (such as blockchain, data exchange, and token connectors) with the supported versions noted in the v1.1.0 release. Once all binaries have been replaced, start them up again.

      -

      - - - After Upgrading - - -

      - - -

      Ensure nodes start without errors

      - -

      Ensure that FireFly starts without errors. There will likely be new deprecation warnings for config that was deprecated in v1.1.0, but these are safe to ignore for the moment. If you face any errors or crashes, please report the logs to the FireFly channel on Discord, and return your nodes to running the previous version of FireFly if necessary.

      - -

      Re-broadcast organization and node identities

      - -

      Once all nodes in the multiparty network have been upgraded and are running without errors, each node should re-broadcast its org and node identity by invoking /network/organizations/self and /network/nodes/self (or, if your application uses a non-default namespace, by invoking the /namespace/{ns}-prefixed versions of these APIs).

      - -

      This will ensure that queries to /network/organizations and /network/nodes return the expected results, and will register the identities in a way that can be supported by both V1 and V2 multiparty contracts (see “Upgrading the Multi-Party Contract”).

      - -

      Update config file to latest format

      - -

      Once the network is stable, you should update your config file(s) again to remove deprecated -configuration and set yourself up to take advantage of all the new configuration options -available in v1.1.0.

      - -

      You can utilize the ffconfig tool to automatically check and fix deprecated config with a command such as:

      - -
      ffconfig migrate -f <input-file> -o <output-file>
      -
      -

      - - - Upgrading the Multi-Party Contract - - -

      - - -

      FireFly v1.1.0 includes a new recommended version of the contract used for multi-party systems (for both Ethereum and Fabric). It also introduces a versioning method for this contract, and a path for migrating networks from one contract address to a new one.

      - -

      After upgrading FireFly itself, it is recommended to upgrade your multi-party system to the -latest contract version by following these steps.

      - -
        -
      1. Compile and deploy an instance of the new FireFly contract (linked above) to your blockchain, using ff deploy or a similar method.
      2. -
      3. Edit the config file on each node in your network, to add the new contract to the multi-party contract list like so:
      4. -
      - -
      namespaces:
      -  predefined:
      -  - name: default
      -    multiparty:
      -      enabled: true
      -      contract:
      -      - location:
      -          address: 0x09f107d670b2e69a700a4d9ef1687490ae1568db
      -      - location:
      -          address: 0x1bee32b37dc48e99c6b6bf037982eb3bee0e816b
      -
      - -

      This example assumes 0x09f1... represents the address of the original contract, and 0x1bee... represents the new one. Note that if you have multiple namespaces, you must repeat this step for each namespace in the config - and you must deploy a unique contract instance per namespace (in the new network rules, multiple namespaces cannot share a single contract).

      - -
        -
      1. After updating each node’s configuration, restart the node and ensure it starts without issues.
      2. -
      3. Have any member of the multi-party network invoke the /namespaces/{ns}/network/action FireFly API with a body of {"type": "terminate"}. This will terminate the old contract and instruct all members to move simultaneously to the newly configured one.
      4. -
      5. Verify success by querying /namespaces/{ns}/status on each node and checking that the active multi-party contract matches the new address.
      6. -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/releasenotes/1.1_migration_guide/index.html b/head/releasenotes/1.1_migration_guide/index.html new file mode 100644 index 000000000..465e60bf9 --- /dev/null +++ b/head/releasenotes/1.1_migration_guide/index.html @@ -0,0 +1,3691 @@ + + + + + + + + + + + + + + + + + + + + + + + v1.1.0 Migration Guide - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      + +
      +
      + + + +
      +
      + + + + + + + +

      v1.1.0 Migration Guide

      +

      Overview

      +

      Hyperledger FireFly v1.1.0 is a feature release that includes significant new functionality around namespaces and plugins, as detailed in FIR-12. As a result, upgrading an existing FireFly environment from any prior release may require special steps (depending on the functionality used).

      +

      If seamless data preservation is not required, you can simply create a new network from scratch using FireFly v1.1.0.

      +

      If you want to preserve data from an existing 1.0.x network, significant care has been taken to ensure that it is possible. Most existing environments can be upgraded with minimal extra steps. This document attempts to call out all potentially breaking changes (both common and uncommon), so that you can easily assess the impact of the upgrade and any needed preparation before proceeding.

      +

      Before Upgrading

      +

      These steps are all safe to do while running FireFly v1.0.x. While they do not have to be done prior to upgrading, performing them ahead of time may allow you to preemptively fix some problems and ease the migration to v1.1.0.

      +

      Common Steps

      +

      Upgrade to latest v1.0.x patch release

      +

      Before upgrading to v1.1.0, it is strongly recommended to upgrade to the latest v1.0.x patch release (v1.0.4 as of the writing this document). Do not proceed any further in this guide until all nodes are successfully running the latest patch release version.

      +

      Fix any deprecated config usage

      +

      All items in FireFly's YAML config that were deprecated at any time in the v1.0.x line will be unsupported in v1.1.0. After upgrading to the latest v1.0.x patch release, you should therefore look for any deprecation warnings when starting FireFly, and ensure they are fixed before upgrading to v1.1.0. Failure to do so will cause your config file to be rejected in v1.1.0, and FireFly will fail to start.

      +

      You can utilize the ffconfig tool to automatically check and fix deprecated config with a command such as:

      +
      ffconfig migrate -f <input-file> -o <output-file> --to 1.0.4
      +
      +

      This should ensure your config file is acceptable to 1.0.x or 1.1.x.

      +

      Note that if you are attempting to migrate a Dockerized development environment (such as one stood up by the firefly-cli), you may need to edit the config file inside the Docker. Environments created by a v1.0.x CLI do not expose the config file outside the Docker container.

      +

      Less Common Situations

      +

      Record all broadcast namespaces in the config file

      +
      +Expand for migration details only if your application uses non-default namespaces. + +FireFly v1.0 allowed for the dynamic creation of new namespaces by broadcasting a namespace definition to all nodes. This functionality is _removed_ in v1.1.0. If your network relies on any namespaces that were created via a broadcast, you must add those namespaces to the `namespaces.predefined` list in your YAML config prior to upgrade. If you do not, they will cease to function after upgrading to v1.1.0 (all events on those namespaces will be ignored by your node). + +
      + +

      Identify queries for organization/node identities

      +
      +Expand for migration details only if your application queries /network/organizations or /network/nodes. + +Applications that query `/network/organizations` or `/network/nodes` will temporarily receive _empty result lists_ after upgrading to v1.1.0, just until all identities have been re-registered (see steps in "After Upgrading"). This is because organization and node identities were broadcast on a global "ff_system" namespace in v1.0, but are no longer global in v1.1.0. + +The simplest solution is to shut down applications until the FireFly upgrade is complete on all nodes and all identities have been re-broadcast. + +If this poses a problem and you require zero downtime from these APIs, you can proactively mitigate with the following steps in your application code: + +- Applications that query the `/network/organizations` may be altered to _also_ query `/namespaces/ff_system/network/organizations` and combine the results (but should disregard the second query if it fails). +- Applications that query the `/network/nodes` may be altered to _also_ query `/namespaces/ff_system/network/nodes` and combine the results (but should disregard the second query if it fails). + +Further details on the changes to `/network` APIs are provided in the next section. + +
      + +

      Identify usage of changed APIs

      +
      +Expand for migration details on all changes to /namespaces, /status, and /network APIs. + +The primary API change in this version is that the "global" paths beginning with `/network` and `/status` have been relocated under the `/namespaces/{ns}` prefix, as this data is now specific to a namespace instead of being global. At the same time, the API server has been enhanced so that omitting a namespace from an API path will _query the default namespace_ instead. That is, querying `/messages` is now the same as querying `/namespaces/default/messages` (assuming your default namespace is named "default"). This has the effect that most of the moved APIs will continue to function without requiring changes. See below for details on the affected paths. + +These global routes have been moved under `/namespaces/{ns}`. Continuing to use them without the namespace prefix **will still work**, and will simply query the default namespace. + +
      /network/diddocs/{did}
      +/network/nodes
      +/network/nodes/{nameOrId}
      +/network/nodes/self
      +/network/organizations
      +/network/organizations/{nameOrId}
      +/network/organizations/self
      +/status
      +/status/batchmanager
      +
      + +These global routes have been moved under `/namespaces/{ns}` and have also been deprecated in favor of a new route name. Continuing to use them without the namespace prefix **will still work**, and will simply query the default namespace. However, it is recommended to switch to the new API spelling when possible. + +
      /network/identities - replaced by existing /namespaces/{ns}/identities
      +/network/identities/{did} - replaced by new /namespaces/{ns}/identities/{did}
      +
      + +These global routes have been have been permanently renamed. They are deemed less likely to be used by client applications, but any usage **will be broken** by this release and must be changed after upgrading. + +
      /status/pins - moved to /namespaces/{ns}/pins (or /pins to query the default namespace)
      +/status/websockets - moved to /websockets
      +
      + +The response bodies of the following APIs have also had fields removed. Any usage of the removed fields **will be broken** by this release and must be changed after upgrading. + +
      /namespaces - removed all fields except "name", "description", "created"
      +/namespaces/{ns} - same as above
      +/namespaces/{ns}/status - removed "defaults"
      +
      + +
      + +

      Adjust or remove usage of admin APIs

      +
      +Expand for migration details on all changes to /admin and /spi. + +FireFly provides an administrative API in addition to the normal API. In v1.1.0, this has been renamed to +SPI (Service Provider Interface). Consequently, all of the routes have moved from `/admin` to `/spi`, and +the config section has been renamed from `admin` to `spi`. There is no automatic migration provided, so +any usage of the old routes will need to be changed, and your config file will need to be adjusted if you +wish to keep the SPI enabled (although it is perfectly fine to have both `admin` and `spi` sections if +needed for migration). + +The ability to set FireFly config via these routes has also been removed. Any usage of the `/admin/config` +routes must be discontinued, and config should be set exclusively by editing the FireFly config file. +The only route retained from this functionality was `/admin/config/reset`, which has been renamed to +`/spi/reset` - this will continue to be available for performing a soft reset that reloads FireFly's config. + +
      + +

      Performing the Upgrade

      +

      Backup current data

      +

      Before beginning the upgrade, it is recommended to take a full backup of your FireFly database(s). +If you encounter any serious issues after the upgrade, you should revert to the old binary and restore +your database snapshot. While down-migrations are provided to revert a database in place, they are +not guaranteed to work in all scenarios.

      +

      Upgrade FireFly and all dependencies

      +

      Bring FireFly down and replace it with the new v1.1.0 binary. You should also replace other runtimes (such as blockchain, data exchange, and token connectors) with the supported versions noted in the v1.1.0 release. Once all binaries have been replaced, start them up again.

      +

      After Upgrading

      +

      Ensure nodes start without errors

      +

      Ensure that FireFly starts without errors. There will likely be new deprecation warnings for config that was deprecated in v1.1.0, but these are safe to ignore for the moment. If you face any errors or crashes, please report the logs to the FireFly channel on Discord, and return your nodes to running the previous version of FireFly if necessary.

      +

      Re-broadcast organization and node identities

      +

      Once all nodes in the multiparty network have been upgraded and are running without errors, each node should re-broadcast its org and node identity by invoking /network/organizations/self and /network/nodes/self (or, if your application uses a non-default namespace, by invoking the /namespace/{ns}-prefixed versions of these APIs).

      +

      This will ensure that queries to /network/organizations and /network/nodes return the expected results, and will register the identities in a way that can be supported by both V1 and V2 multiparty contracts (see "Upgrading the Multi-Party Contract").

      +

      Update config file to latest format

      +

      Once the network is stable, you should update your config file(s) again to remove deprecated +configuration and set yourself up to take advantage of all the new configuration options +available in v1.1.0.

      +

      You can utilize the ffconfig tool to automatically check and fix deprecated config with a command such as:

      +
      ffconfig migrate -f <input-file> -o <output-file>
      +
      +

      Upgrading the Multi-Party Contract

      +

      FireFly v1.1.0 includes a new recommended version of the contract used for multi-party systems (for both Ethereum and Fabric). It also introduces a versioning method for this contract, and a path for migrating networks from one contract address to a new one.

      +

      After upgrading FireFly itself, it is recommended to upgrade your multi-party system to the +latest contract version by following these steps.

      +
        +
      1. Compile and deploy an instance of the new FireFly contract (linked above) to your blockchain, using ff deploy or a similar method.
      2. +
      3. Edit the config file on each node in your network, to add the new contract to the multi-party contract list like so:
      4. +
      +
      namespaces:
      +  predefined:
      +  - name: default
      +    multiparty:
      +      enabled: true
      +      contract:
      +      - location:
      +          address: 0x09f107d670b2e69a700a4d9ef1687490ae1568db
      +      - location:
      +          address: 0x1bee32b37dc48e99c6b6bf037982eb3bee0e816b
      +
      +

      This example assumes 0x09f1... represents the address of the original contract, and 0x1bee... represents the new one. Note that if you have multiple namespaces, you must repeat this step for each namespace in the config - and you must deploy a unique contract instance per namespace (in the new network rules, multiple namespaces cannot share a single contract).

      +
        +
      1. After updating each node's configuration, restart the node and ensure it starts without issues.
      2. +
      3. Have any member of the multi-party network invoke the /namespaces/{ns}/network/action FireFly API with a body of {"type": "terminate"}. This will terminate the old contract and instruct all members to move simultaneously to the newly configured one.
      4. +
      5. Verify success by querying /namespaces/{ns}/status on each node and checking that the active multi-party contract matches the new address.
      6. +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/releasenotes/1.2_migration_guide.html b/head/releasenotes/1.2_migration_guide.html deleted file mode 100644 index 2865a8e58..000000000 --- a/head/releasenotes/1.2_migration_guide.html +++ /dev/null @@ -1,655 +0,0 @@ - - - - - - - - - v1.2.0 Migration Guide - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -v1.2.0 Migration Guide | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - v1.2.0 Migration Guide - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Overview
      2. -
      3. Tokens considerations
          -
        1. Sample token contract deprecations
        2. -
        3. Differences from v1.1.0
            -
          1. Optional fields
          2. -
          3. Auto incrementing token index
          4. -
          -
        4. -
        -
      4. -
      5. Data management considerations
          -
        1. Differences from v1.1.0
        2. -
        -
      6. -
      7. Application considerations
          -
        1. Optional tokens fields
        2. -
        3. Transaction output details
        4. -
        -
      8. -
      9. Local development considerations
      10. -

      -

      - - - Overview - - -

      - - -

      Hyperledger FireFly v1.2.0 is a feature release that includes new features for tokens and data management as well as enhancements for debugging FireFly apps and operating FireFly nodes.

      - -

      For the most part, upgrading from v1.1.x to v.1.2.0 should be a seamless experience, but there are several important things to note about changes between the two versions, which are described in detail on this page.

      -

      - - - Tokens considerations - - -

      - - -

      There are quite a few new features around tokens in FireFly v1.2.0. Most notably, FireFly’s token APIs now work with a much wider variety of ERC-20, ERC-721, and ERC-1155 contracts, supporting variations of these contracts generated by the OpenZepplin Contract Wizard.

      -

      - - - Sample token contract deprecations - - -

      - - -

      In FireFly v1.2.0 two of the old, lesser used sample token contracts have been deprecated. The ERC20NoData and ERC721NoData contracts have been updated and the previous versions are no longer supported, unless you set the USE_LEGACY_ERC20_SAMPLE=true or USE_LEGACY_ERC721_SAMPLE=true environment variables for your token connector.

      - -

      For more details you can read the description of the pull requests (#104 and #109) where these changes were made.

      -

      - - - Differences from v1.1.0 - - -

      - -

      - - - Optional fields - - -

      - - -

      Some token connectors support some optional fields when using them with certain contracts. For example, the ERC-721 token connector supports a URI field. If these optional fields are specified in an API call to a token connector and contract that does not support that field, an error will be returned, rather than the field being silently ignored.

      -

      - - - Auto incrementing token index - - -

      - - -

      In FireFly v1.2.0 the default ERC-721 and ERC-1155 contracts have changed to automatically increment the token index when a token is minted. This is useful when many tokens may be minted around the same time, or by different minters. This lets the blockchain handle the ordering, and keeping track of the state of which token index should be minted next, rather than making that an application concern.

      - -
      -

      NOTE: These new contracts will only be used for brand new FireFly stacks with v1.2.0. If you have an existing stack, the new token contracts will not be used, unless you specifically deploy them and start using them.

      -
      -

      - - - Data management considerations - - -

      - - -

      FireFly v1.2.0 introduces the ability to delete data records and their associated blobs, if present. This will remove the data and blob rows from the FireFly database, as well as removing the blob from the Data Exchange microservice. This can be very useful if your organization has data retention requirements for sensitive, private data and needs to purge data after a certain period of time.

      - -

      Please note that this API only removes data from the FireFly node on which it is called. If data has been shared with other participants of a multi-party network, it is each participants’ responsibility to satisfy their own data retention policies.

      -

      - - - Differences from v1.1.0 - - -

      - - -

      It is important to note that FireFly now stores a separate copy of a blob for a given payload, even if the same data object is sent in different messages, by different network participants. Previously, in FireFly v1.1.0 the blob was de-duplicated in some cases. In FireFly v1.2.0, deleting the data object will result in each copy of the associated payload being removed.

      - -
      -

      NOTE: If data has been published to IPFS, it cannot be deleted completely. You can still call the DELETE method on it, and it will be removed from FireFly’s database and Data Exchange, but the payload will still persist in IPFS.

      -
      -

      - - - Application considerations - - -

      - -

      - - - Optional tokens fields - - -

      - - -

      Please see the optional token fields section above for details. If your application code is calling any token API endpoints with optional fields that are not supported by your token connector or contract, you will need to remove those fields from your API request or it will fail.

      -

      - - - Transaction output details - - -

      - - -

      In previous versions of FireFly, transaction output details used to appear under the output object in the response body. Behind the scenes, some of this data is now fetched from the blockchain connector asynchronously. If your application needs the detailed output, it should now add a fetchStatus=true query parameter when querying for an Operation. Additionally the details have moved from the output field to a new detail field on the response body. For more details, please refer to the PRs where this change was made (#1111 and #1151). For a detailed example comparing what an Operation response body looks like in FireFly v1.2.0 compared with v1.1.x, you can expand the sections below.

      - -
      -v1.2.0 Operation response body with `fetchStatus=true` - -
      -{
      -  "id": "2b0ec132-2abd-40f0-aa56-79871a7a23b9",
      -  "namespace": "default",
      -  "tx": "cb0e6de1-50a9-44f2-a2ff-411f6dcc19c9",
      -  "type": "blockchain_invoke",
      -  "status": "Succeeded",
      -  "plugin": "ethereum",
      -  "input": {
      -    "idempotencyKey": "5a634941-29cb-4a4b-b5a7-196331723d6d",
      -    "input": {
      -      "newValue": 42
      -    },
      -    "interface": "46189886-cae5-42ff-bf09-25d4f58d649e",
      -    "key": "0x2ecd8d5d97fb4bb7af0fbc27d7b89fd6f0366350",
      -    "location": {
      -      "address": "0x9d7ea8561d4b21cba495d1bd29a6d3421c31cf8f"
      -    },
      -    "method": {
      -      "description": "",
      -      "id": "d1d2a0cf-19ea-42c3-89b8-cb65850fb9c5",
      -      "interface": "46189886-cae5-42ff-bf09-25d4f58d649e",
      -      "name": "set",
      -      "namespace": "default",
      -      "params": [
      -        {
      -          "name": "newValue",
      -          "schema": {
      -            "details": {
      -              "type": "uint256"
      -            },
      -            "type": "integer"
      -          }
      -        }
      -      ],
      -      "pathname": "set",
      -      "returns": []
      -    },
      -    "methodPath": "set",
      -    "options": null,
      -    "type": "invoke"
      -  },
      -  "output": {
      -    "Headers": {
      -      "requestId": "default:2b0ec132-2abd-40f0-aa56-79871a7a23b9",
      -      "type": "TransactionSuccess"
      -    },
      -    "protocolId": "000000000052/000000",
      -    "transactionHash": "0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71"
      -  },
      -  "created": "2023-01-24T14:08:17.371587084Z",
      -  "updated": "2023-01-24T14:08:17.385558417Z",
      -  "detail": {
      -    "created": "2023-01-24T14:08:17.378147625Z",
      -    "firstSubmit": "2023-01-24T14:08:17.381787042Z",
      -    "gas": "42264",
      -    "gasPrice": 0,
      -    "history": [
      -      {
      -        "count": 1,
      -        "info": "Success=true,Receipt=000000000052/000000,Confirmations=0,Hash=0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71",
      -        "lastOccurrence": null,
      -        "time": "2023-01-24T14:08:17.384371042Z"
      -      },
      -      {
      -        "count": 1,
      -        "info": "Submitted=true,Receipt=,Hash=0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71",
      -        "lastOccurrence": null,
      -        "time": "2023-01-24T14:08:17.381908959Z"
      -      }
      -    ],
      -    "id": "default:2b0ec132-2abd-40f0-aa56-79871a7a23b9",
      -    "lastSubmit": "2023-01-24T14:08:17.381787042Z",
      -    "nonce": "34",
      -    "policyInfo": null,
      -    "receipt": {
      -      "blockHash": "0x7a2ca7cc57fe1eb4ead3e60d3030b123667d18eb67f4b390fb0f51f970f1fba0",
      -      "blockNumber": "52",
      -      "extraInfo": {
      -        "contractAddress": null,
      -        "cumulativeGasUsed": "28176",
      -        "from": "0x2ecd8d5d97fb4bb7af0fbc27d7b89fd6f0366350",
      -        "gasUsed": "28176",
      -        "status": "1",
      -        "to": "0x9d7ea8561d4b21cba495d1bd29a6d3421c31cf8f"
      -      },
      -      "protocolId": "000000000052/000000",
      -      "success": true,
      -      "transactionIndex": "0"
      -    },
      -    "sequenceId": "0185e41b-ade2-67e4-c104-5ff553135320",
      -    "status": "Succeeded",
      -    "transactionData": "0x60fe47b1000000000000000000000000000000000000000000000000000000000000002a",
      -    "transactionHash": "0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71",
      -    "transactionHeaders": {
      -      "from": "0x2ecd8d5d97fb4bb7af0fbc27d7b89fd6f0366350",
      -      "to": "0x9d7ea8561d4b21cba495d1bd29a6d3421c31cf8f"
      -    },
      -    "updated": "2023-01-24T14:08:17.384371042Z"
      -  }
      -}
      -
      -
      - -
      -v1.1.x Operation response body - -
      -{
      -  "id": "4a1a19cf-7fd2-43f1-8fae-1e3d5774cf0d",
      -  "namespace": "default",
      -  "tx": "2978a248-f5df-4c78-bf04-711ab9c79f3d",
      -  "type": "blockchain_invoke",
      -  "status": "Succeeded",
      -  "plugin": "ethereum",
      -  "input": {
      -    "idempotencyKey": "5dc2ee8a-be5c-4e60-995f-9e21818a441d",
      -    "input": {
      -      "newValue": 42
      -    },
      -    "interface": "752af5a3-d383-4952-88a9-b32b837ed1cb",
      -    "key": "0xd8a27cb390fd4f446acce01eb282c7808ec52572",
      -    "location": {
      -      "address": "0x7c0a598252183999754c53d97659af9436293b82"
      -    },
      -    "method": {
      -      "description": "",
      -      "id": "1739f25d-ab48-4534-b278-58c4cf151bf9",
      -      "interface": "752af5a3-d383-4952-88a9-b32b837ed1cb",
      -      "name": "set",
      -      "namespace": "default",
      -      "params": [
      -        {
      -          "name": "newValue",
      -          "schema": {
      -            "details": {
      -              "type": "uint256"
      -            },
      -            "type": "integer"
      -          }
      -        }
      -      ],
      -      "pathname": "set",
      -      "returns": []
      -    },
      -    "methodPath": "set",
      -    "options": null,
      -    "type": "invoke"
      -  },
      -  "output": {
      -    "_id": "default:4a1a19cf-7fd2-43f1-8fae-1e3d5774cf0d",
      -    "blockHash": "0x13660667b69f48646025a87db603abdeeaa88036e9a1252b1af4ec1fc3e1d850",
      -    "blockNumber": "52",
      -    "cumulativeGasUsed": "28176",
      -    "from": "0xd8a27cb390fd4f446acce01eb282c7808ec52572",
      -    "gasUsed": "28176",
      -    "headers": {
      -      "id": "8dfaabd1-4493-4a64-52dd-762497022ba2",
      -      "requestId": "default:4a1a19cf-7fd2-43f1-8fae-1e3d5774cf0d",
      -      "requestOffset": "",
      -      "timeElapsed": 0.109499833,
      -      "timeReceived": "2023-01-24T17:16:52.372449013Z",
      -      "type": "TransactionSuccess"
      -    },
      -    "nonce": "0",
      -    "receivedAt": 1674580612482,
      -    "status": "1",
      -    "to": "0x7c0a598252183999754c53d97659af9436293b82",
      -    "transactionHash": "0x522e5aac000f5befba61ddfd707aaf5c61314f47e00cd0c5b779f69dd14bd899",
      -    "transactionIndex": "0"
      -  },
      -  "created": "2023-01-24T17:16:52.368498346Z",
      -  "updated": "2023-01-24T17:16:52.48408293Z"
      -}
      -
      -
      -

      - - - Local development considerations - - -

      - - -

      It is also worth noting that the default Ethereum blockchain connector in the FireFly CLI is now Evmconnect. Ethconnect is still fully supported, but FireFly v1.2.0 marks a point of maturity in the project where it is now the recommended choice for any Ethereum based FireFly stack.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/releasenotes/1.2_migration_guide/index.html b/head/releasenotes/1.2_migration_guide/index.html new file mode 100644 index 000000000..f4a9fb36a --- /dev/null +++ b/head/releasenotes/1.2_migration_guide/index.html @@ -0,0 +1,3816 @@ + + + + + + + + + + + + + + + + + + + + + v1.2.0 Migration Guide - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      v1.2.0 Migration Guide

      +

      Overview

      +

      Hyperledger FireFly v1.2.0 is a feature release that includes new features for tokens and data management as well as enhancements for debugging FireFly apps and operating FireFly nodes.

      +

      For the most part, upgrading from v1.1.x to v.1.2.0 should be a seamless experience, but there are several important things to note about changes between the two versions, which are described in detail on this page.

      +

      Tokens considerations

      +

      There are quite a few new features around tokens in FireFly v1.2.0. Most notably, FireFly's token APIs now work with a much wider variety of ERC-20, ERC-721, and ERC-1155 contracts, supporting variations of these contracts generated by the OpenZepplin Contract Wizard.

      +

      Sample token contract deprecations

      +

      In FireFly v1.2.0 two of the old, lesser used sample token contracts have been deprecated. The ERC20NoData and ERC721NoData contracts have been updated and the previous versions are no longer supported, unless you set the USE_LEGACY_ERC20_SAMPLE=true or USE_LEGACY_ERC721_SAMPLE=true environment variables for your token connector.

      +

      For more details you can read the description of the pull requests (#104 and #109) where these changes were made.

      +

      Differences from v1.1.0

      +

      Optional fields

      +

      Some token connectors support some optional fields when using them with certain contracts. For example, the ERC-721 token connector supports a URI field. If these optional fields are specified in an API call to a token connector and contract that does not support that field, an error will be returned, rather than the field being silently ignored.

      +

      Auto incrementing token index

      +

      In FireFly v1.2.0 the default ERC-721 and ERC-1155 contracts have changed to automatically increment the token index when a token is minted. This is useful when many tokens may be minted around the same time, or by different minters. This lets the blockchain handle the ordering, and keeping track of the state of which token index should be minted next, rather than making that an application concern.

      +
      +

      NOTE: These new contracts will only be used for brand new FireFly stacks with v1.2.0. If you have an existing stack, the new token contracts will not be used, unless you specifically deploy them and start using them.

      +
      +

      Data management considerations

      +

      FireFly v1.2.0 introduces the ability to delete data records and their associated blobs, if present. This will remove the data and blob rows from the FireFly database, as well as removing the blob from the Data Exchange microservice. This can be very useful if your organization has data retention requirements for sensitive, private data and needs to purge data after a certain period of time.

      +

      Please note that this API only removes data from the FireFly node on which it is called. If data has been shared with other participants of a multi-party network, it is each participants' responsibility to satisfy their own data retention policies.

      +

      Differences from v1.1.0

      +

      It is important to note that FireFly now stores a separate copy of a blob for a given payload, even if the same data object is sent in different messages, by different network participants. Previously, in FireFly v1.1.0 the blob was de-duplicated in some cases. In FireFly v1.2.0, deleting the data object will result in each copy of the associated payload being removed.

      +
      +

      NOTE: If data has been published to IPFS, it cannot be deleted completely. You can still call the DELETE method on it, and it will be removed from FireFly's database and Data Exchange, but the payload will still persist in IPFS.

      +
      +

      Application considerations

      +

      Optional tokens fields

      +

      Please see the optional token fields section above for details. If your application code is calling any token API endpoints with optional fields that are not supported by your token connector or contract, you will need to remove those fields from your API request or it will fail.

      +

      Transaction output details

      +

      In previous versions of FireFly, transaction output details used to appear under the output object in the response body. Behind the scenes, some of this data is now fetched from the blockchain connector asynchronously. If your application needs the detailed output, it should now add a fetchStatus=true query parameter when querying for an Operation. Additionally the details have moved from the output field to a new detail field on the response body. For more details, please refer to the PRs where this change was made (#1111 and #1151). For a detailed example comparing what an Operation response body looks like in FireFly v1.2.0 compared with v1.1.x, you can expand the sections below.

      +
      +v1.2.0 Operation response body with `fetchStatus=true` + +
      +{
      +  "id": "2b0ec132-2abd-40f0-aa56-79871a7a23b9",
      +  "namespace": "default",
      +  "tx": "cb0e6de1-50a9-44f2-a2ff-411f6dcc19c9",
      +  "type": "blockchain_invoke",
      +  "status": "Succeeded",
      +  "plugin": "ethereum",
      +  "input": {
      +    "idempotencyKey": "5a634941-29cb-4a4b-b5a7-196331723d6d",
      +    "input": {
      +      "newValue": 42
      +    },
      +    "interface": "46189886-cae5-42ff-bf09-25d4f58d649e",
      +    "key": "0x2ecd8d5d97fb4bb7af0fbc27d7b89fd6f0366350",
      +    "location": {
      +      "address": "0x9d7ea8561d4b21cba495d1bd29a6d3421c31cf8f"
      +    },
      +    "method": {
      +      "description": "",
      +      "id": "d1d2a0cf-19ea-42c3-89b8-cb65850fb9c5",
      +      "interface": "46189886-cae5-42ff-bf09-25d4f58d649e",
      +      "name": "set",
      +      "namespace": "default",
      +      "params": [
      +        {
      +          "name": "newValue",
      +          "schema": {
      +            "details": {
      +              "type": "uint256"
      +            },
      +            "type": "integer"
      +          }
      +        }
      +      ],
      +      "pathname": "set",
      +      "returns": []
      +    },
      +    "methodPath": "set",
      +    "options": null,
      +    "type": "invoke"
      +  },
      +  "output": {
      +    "Headers": {
      +      "requestId": "default:2b0ec132-2abd-40f0-aa56-79871a7a23b9",
      +      "type": "TransactionSuccess"
      +    },
      +    "protocolId": "000000000052/000000",
      +    "transactionHash": "0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71"
      +  },
      +  "created": "2023-01-24T14:08:17.371587084Z",
      +  "updated": "2023-01-24T14:08:17.385558417Z",
      +  "detail": {
      +    "created": "2023-01-24T14:08:17.378147625Z",
      +    "firstSubmit": "2023-01-24T14:08:17.381787042Z",
      +    "gas": "42264",
      +    "gasPrice": 0,
      +    "history": [
      +      {
      +        "count": 1,
      +        "info": "Success=true,Receipt=000000000052/000000,Confirmations=0,Hash=0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71",
      +        "lastOccurrence": null,
      +        "time": "2023-01-24T14:08:17.384371042Z"
      +      },
      +      {
      +        "count": 1,
      +        "info": "Submitted=true,Receipt=,Hash=0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71",
      +        "lastOccurrence": null,
      +        "time": "2023-01-24T14:08:17.381908959Z"
      +      }
      +    ],
      +    "id": "default:2b0ec132-2abd-40f0-aa56-79871a7a23b9",
      +    "lastSubmit": "2023-01-24T14:08:17.381787042Z",
      +    "nonce": "34",
      +    "policyInfo": null,
      +    "receipt": {
      +      "blockHash": "0x7a2ca7cc57fe1eb4ead3e60d3030b123667d18eb67f4b390fb0f51f970f1fba0",
      +      "blockNumber": "52",
      +      "extraInfo": {
      +        "contractAddress": null,
      +        "cumulativeGasUsed": "28176",
      +        "from": "0x2ecd8d5d97fb4bb7af0fbc27d7b89fd6f0366350",
      +        "gasUsed": "28176",
      +        "status": "1",
      +        "to": "0x9d7ea8561d4b21cba495d1bd29a6d3421c31cf8f"
      +      },
      +      "protocolId": "000000000052/000000",
      +      "success": true,
      +      "transactionIndex": "0"
      +    },
      +    "sequenceId": "0185e41b-ade2-67e4-c104-5ff553135320",
      +    "status": "Succeeded",
      +    "transactionData": "0x60fe47b1000000000000000000000000000000000000000000000000000000000000002a",
      +    "transactionHash": "0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71",
      +    "transactionHeaders": {
      +      "from": "0x2ecd8d5d97fb4bb7af0fbc27d7b89fd6f0366350",
      +      "to": "0x9d7ea8561d4b21cba495d1bd29a6d3421c31cf8f"
      +    },
      +    "updated": "2023-01-24T14:08:17.384371042Z"
      +  }
      +}
      +
      +
      + +
      +v1.1.x Operation response body + +
      +{
      +  "id": "4a1a19cf-7fd2-43f1-8fae-1e3d5774cf0d",
      +  "namespace": "default",
      +  "tx": "2978a248-f5df-4c78-bf04-711ab9c79f3d",
      +  "type": "blockchain_invoke",
      +  "status": "Succeeded",
      +  "plugin": "ethereum",
      +  "input": {
      +    "idempotencyKey": "5dc2ee8a-be5c-4e60-995f-9e21818a441d",
      +    "input": {
      +      "newValue": 42
      +    },
      +    "interface": "752af5a3-d383-4952-88a9-b32b837ed1cb",
      +    "key": "0xd8a27cb390fd4f446acce01eb282c7808ec52572",
      +    "location": {
      +      "address": "0x7c0a598252183999754c53d97659af9436293b82"
      +    },
      +    "method": {
      +      "description": "",
      +      "id": "1739f25d-ab48-4534-b278-58c4cf151bf9",
      +      "interface": "752af5a3-d383-4952-88a9-b32b837ed1cb",
      +      "name": "set",
      +      "namespace": "default",
      +      "params": [
      +        {
      +          "name": "newValue",
      +          "schema": {
      +            "details": {
      +              "type": "uint256"
      +            },
      +            "type": "integer"
      +          }
      +        }
      +      ],
      +      "pathname": "set",
      +      "returns": []
      +    },
      +    "methodPath": "set",
      +    "options": null,
      +    "type": "invoke"
      +  },
      +  "output": {
      +    "_id": "default:4a1a19cf-7fd2-43f1-8fae-1e3d5774cf0d",
      +    "blockHash": "0x13660667b69f48646025a87db603abdeeaa88036e9a1252b1af4ec1fc3e1d850",
      +    "blockNumber": "52",
      +    "cumulativeGasUsed": "28176",
      +    "from": "0xd8a27cb390fd4f446acce01eb282c7808ec52572",
      +    "gasUsed": "28176",
      +    "headers": {
      +      "id": "8dfaabd1-4493-4a64-52dd-762497022ba2",
      +      "requestId": "default:4a1a19cf-7fd2-43f1-8fae-1e3d5774cf0d",
      +      "requestOffset": "",
      +      "timeElapsed": 0.109499833,
      +      "timeReceived": "2023-01-24T17:16:52.372449013Z",
      +      "type": "TransactionSuccess"
      +    },
      +    "nonce": "0",
      +    "receivedAt": 1674580612482,
      +    "status": "1",
      +    "to": "0x7c0a598252183999754c53d97659af9436293b82",
      +    "transactionHash": "0x522e5aac000f5befba61ddfd707aaf5c61314f47e00cd0c5b779f69dd14bd899",
      +    "transactionIndex": "0"
      +  },
      +  "created": "2023-01-24T17:16:52.368498346Z",
      +  "updated": "2023-01-24T17:16:52.48408293Z"
      +}
      +
      +
      + +

      Local development considerations

      +

      It is also worth noting that the default Ethereum blockchain connector in the FireFly CLI is now Evmconnect. Ethconnect is still fully supported, but FireFly v1.2.0 marks a point of maturity in the project where it is now the recommended choice for any Ethereum based FireFly stack.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/releasenotes/index.html b/head/releasenotes/index.html index 6d7e4197f..722c88e1c 100644 --- a/head/releasenotes/index.html +++ b/head/releasenotes/index.html @@ -1,516 +1,3566 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + Release Notes - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + -
      - This site uses Just the Docs, a documentation theme for Jekyll. -
      -
      -
      -
      - - + + + + + +
    1. + + + + + FAQs + + + + +
    2. + + + - -
      -
      + + + + + + + + + + -
      -

      + + + + + +
    3. + - Release Notes + -
    4. - + + + - v1.2.0 - February 6, 2023 + + + + -
        -
      • Enhanced support for token contracts generated by the OpenZepplin Wizard
      • -
      • Custom smart contract error types are now returned on the API
      • -
      • Data objects and associated blobs can now be deleted
      • -
      • Optional dynamic reload of core configuration file
      • -
      • The X-FireFly-Request-ID HTTP header is now passed through to FireFly dependency microservices
      • -
      • Custom HTTP headers can be passed through to FireFly dependency microservices
      • -
      • Evmconnect is now the default blockchain connector for Ethereum based FireFly stacks
      • -
      -

      + + + +

      +
      +
      + + + + + + + +
      +
      + + -

      Migration guide

      + + -

      What’s New:

      +

      Full release notes

      +

      v1.2.0 - February 6, 2023

      +

      Migration guide

      +

      What's New:

        -
      • Gateway Mode: Connect to many chains with auto-indexing of activities
      • -
      • Public EVM Chain Support: Manage public chain connections including Ethereum, Polygon, Arbitrum, Binance Smart Chain, Moonbeam, and more.
      • -
      • Namespaces: Isolated environments within a FireFly runtime allowing independent configuration of plugin and infrastructure components and more
      • -
      • Connector Toolkit: Quickly build custom connectors
      • -
      • Pluggable API Security: Plug in your own API security
      • -
      • Mass Scale Tokens: Support many parallel copies of token plugins for mass scale
      • +
      • Enhanced support for token contracts generated by the OpenZepplin Wizard
      • +
      • Custom smart contract error types are now returned on the API
      • +
      • Data objects and associated blobs can now be deleted
      • +
      • Optional dynamic reload of core configuration file
      • +
      • The X-FireFly-Request-ID HTTP header is now passed through to FireFly dependency microservices
      • +
      • Custom HTTP headers can be passed through to FireFly dependency microservices
      • +
      • Evmconnect is now the default blockchain connector for Ethereum based FireFly stacks
      -

      - - - v1.0.3 - July 07, 2022 - - -

      - - -

      What’s New:

      - +

      Release Notes

      +

      Full release notes

      +

      v1.1.0 - September 12, 2022

      +

      Migration guide

      +

      What's New:

        -
      • Adds support for custom URIs for non-fungible tokens and documentation updates
      • -
      • Deprecate default value for “ffdx”
      • -
      • Back port of custom URI support for non-fungible tokens
      • -
      • Update token connector versions
      • -
      • Back port of “FAQ and FireFly Tutorial updates”
      • +
      • Gateway Mode: Connect to many chains with auto-indexing of activities
      • +
      • Public EVM Chain Support: Manage public chain connections including Ethereum, Polygon, Arbitrum, Binance Smart Chain, Moonbeam, and more.
      • +
      • Namespaces: Isolated environments within a FireFly runtime allowing independent configuration of plugin and infrastructure components and more
      • +
      • Connector Toolkit: Quickly build custom connectors
      • +
      • Pluggable API Security: Plug in your own API security
      • +
      • Mass Scale Tokens: Support many parallel copies of token plugins for mass scale
      -

      - - - v1.0.2 - May 12, 2022 - - -

      - - -

      What’s New:

      - +

      v1.0.3 - July 07, 2022

      +

      What's New:

        -
      • Fix invocations on custom Fabric chaincode, which were not properly reporting success/failure status back to FireFly (along with other minor bugfixes).
      • -
      • De-duplicate existing token approvals in database migration
      • -
      • Backport docs generation and versioning code for 1.0 stream
      • -
      • Default fabconnect calls to async
      • -
      • Set message header type of broadcast/private
      • +
      • Adds support for custom URIs for non-fungible tokens and documentation updates
      • +
      • Deprecate default value for "ffdx"
      • +
      • Back port of custom URI support for non-fungible tokens
      • +
      • Update token connector versions
      • +
      • Back port of "FAQ and FireFly Tutorial updates"
      -

      - - - v1.0.1 - May 09, 2022 - - -

      - - -

      What’s New:

      - +

      v1.0.2 - May 12, 2022

      +

      What's New:

        -
      • Fixes for token approvals - previously approvals would intermittently be missed by FireFly or recorded with incorrect details.
      • -
      • New versions of ERC20/ERC721 connector will assume “no data” support if you create a token pool against an older version of the sample smart contracts.
      • +
      • Fix invocations on custom Fabric chaincode, which were not properly reporting success/failure status back to FireFly (along with other minor bugfixes).
      • +
      • De-duplicate existing token approvals in database migration
      • +
      • Backport docs generation and versioning code for 1.0 stream
      • +
      • Default fabconnect calls to async
      • +
      • Set message header type of broadcast/private
      -

      - - - v1.0.0 - April 28, 2022 - - -

      - - +

      v1.0.1 - May 09, 2022

      +

      What's New:

      +
        +
      • Fixes for token approvals - previously approvals would intermittently be missed by FireFly or recorded with incorrect details.
      • +
      • New versions of ERC20/ERC721 connector will assume "no data" support if you create a token pool against an older version of the sample smart contracts.
      • +
      +

      v1.0.0 - April 28, 2022

      This release includes lots of major hardening, performance improvements, and bug fixes, as well as more complete documentation and OpenAPI specifications.

      - -

      What’s New:

      - +

      What's New:

        -
      • Massive performance improvements across the board
      • -
      • Up-to-date documentation and fully annotated OpenAPI specification
      • -
      • Overhaul of UI
      • -
      • Cleaner logs and error messages
      • -
      • Lots of bug fixes and miscellaneous enhancements
      • +
      • Massive performance improvements across the board
      • +
      • Up-to-date documentation and fully annotated OpenAPI specification
      • +
      • Overhaul of UI
      • +
      • Cleaner logs and error messages
      • +
      • Lots of bug fixes and miscellaneous enhancements
      -

      - - - v0.14.0 - March 22, 2022 - - -

      - - -

      What’s New:

      - +

      v0.14.0 - March 22, 2022

      +

      What's New:

        -
      • Major UI updates including Activity, Blockchain, Off-Chain, Tokens, Network Map, and My Node sections
      • -
      • Custom contract APIs
      • -
      • Enhanced subscription filters
      • -
      • Event API enrichment
      • -
      • Performance updates
      • -
      • Bug fixes
      • +
      • Major UI updates including Activity, Blockchain, Off-Chain, Tokens, Network Map, and My Node sections
      • +
      • Custom contract APIs
      • +
      • Enhanced subscription filters
      • +
      • Event API enrichment
      • +
      • Performance updates
      • +
      • Bug fixes
      -

      - - - v0.13.0 - February 14, 2022 - - -

      - - -

      What’s New:

      - +

      v0.13.0 - February 14, 2022

      +

      What's New:

        -
      • Hardening release with significant rework to core of FireFly, mostly to fix issues exposed by the performance testing.
      • -
      • Support for running on ARM-based M1 processors
      • -
      • Rewrite of the message batching and event aggregation logic inside FireFly, to fix numerous edge cases with lost or hung messages
      • -
      • Hardening of operations and transactions to behave more consistently across all types
      • -
      • Metrics reporting to Prometheus
      • -
      • Continued development to support custom on-chain logic (still in preview)
      • +
      • Hardening release with significant rework to core of FireFly, mostly to fix issues exposed by the performance testing.
      • +
      • Support for running on ARM-based M1 processors
      • +
      • Rewrite of the message batching and event aggregation logic inside FireFly, to fix numerous edge cases with lost or hung messages
      • +
      • Hardening of operations and transactions to behave more consistently across all types
      • +
      • Metrics reporting to Prometheus
      • +
      • Continued development to support custom on-chain logic (still in preview)
      -

      - - - v0.12.0 - February 02, 2022 - - -

      - - -

      What’s New:

      - +

      v0.12.0 - February 02, 2022

      +

      What's New:

        -
      • All APIs deprecated in v0.11.0 or earlier are removed
      • -
      • Preview of custom on-chain logic
      • -
      • Support for new ERC20 / ERC721 connector
      • -
      • Overhaul of Transaction type and new BlockchainEvent type
      • -
      • Support for delivery confirmations via DX plugin
      • +
      • All APIs deprecated in v0.11.0 or earlier are removed
      • +
      • Preview of custom on-chain logic
      • +
      • Support for new ERC20 / ERC721 connector
      • +
      • Overhaul of Transaction type and new BlockchainEvent type
      • +
      • Support for delivery confirmations via DX plugin
      -

      - - - v0.11.0 - November 22, 2021 - - -

      - - -

      What’s New:

      - +

      v0.11.0 - November 22, 2021

      +

      What's New:

        -
      • Significant hardening and enhanced token functionality
      • -
      • Major web UI overhaul
      • -
      • Optimized database operations for increased transactional throughput
      • -
      • Fixed PostgreSQL database migrations
      • +
      • Significant hardening and enhanced token functionality
      • +
      • Major web UI overhaul
      • +
      • Optimized database operations for increased transactional throughput
      • +
      • Fixed PostgreSQL database migrations
      - + + + + + + + + + + + + + + + + +
      +
      + + + +
      -
      -

      Table of contents

      - + - +
      + +
      + + + + + + + + + + + + + + +
      +
      +
      + + + + + - -
      - - - - + + \ No newline at end of file diff --git a/head/search/search_index.json b/head/search/search_index.json new file mode 100644 index 000000000..fb6bd9841 --- /dev/null +++ b/head/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Hyperledger FireFly","text":"

      Hyperledger FireFly is an open source Supernode, a complete stack for enterprises to build and scale secure Web3 applications.

      The easiest way to understand a FireFly Supernode is to think of it like a toolbox. Connect your existing apps and/or back office systems to the toolbox and within it there are two different sets of tools. One set of tools helps you connect to the Web3 world that already exists, and the other set allows you to build new decentralized applications quickly with security and scalability.

      Head to the Understanding FireFly section for more details.

      "},{"location":"#documentation-sections","title":"Documentation Sections","text":"
      • Understanding FireFly
      • Getting Started
      • Tutorials
      • Reference
      • Architecture
      • Contributors
      • API Spec
      • FAQs
      • Release notes
      "},{"location":"SUMMARY/","title":"SUMMARY","text":"
      • Home
      • Understanding FireFly
        • Introduction
        • Usage Patterns
        • Key Features
          • overview/key_components/*
        • Web3 Gateway Features
        • Multiparty Features
          • overview/multiparty/*
        • Public and Permissioned
      • Getting Started
        • \u2460 Install the FireFly CLI
        • \u2461 Start your environment
        • \u2462 Use the Sandbox
      • Tutorials
        • tutorials/*
      • Reference
        • reference/*.md
        • Microservices
          • reference/microservices/*.md
        • Types
          • reference/types/*.md
      • Architecture
        • architecture/*
      • Contributors
        • contributors/*
      • API Spec
      • FAQs
      • Release Notes
        • releasenotes/*
      "},{"location":"architecture/blockchain_connector_framework/","title":"Blockchain Connector Toolkit","text":""},{"location":"architecture/blockchain_connector_framework/#blockchain-connector-framework","title":"Blockchain Connector Framework","text":"

      Hyperledger FireFly has a multi-tier pluggable architecture for supporting blockchains of all shapes and sizes. This includes a remote API that allows a microservice connector to be built from scratch in any programming language.

      It also includes the Connector Toolkit, which is a pluggable SDK in Golang that provides a set of re-usable modules that can be used across blockchain implementations.

      This is the preferred way to build a new blockchain connector, if you are comfortable with coding in Golang and there are language bindings available for the raw RPC interface of your blockchain.

      "},{"location":"architecture/blockchain_connector_framework/#connector-toolkit-architecture","title":"Connector Toolkit Architecture","text":"

      The core component of the FireFly Connector Framework for Blockchains is a Go module called FireFly Transaction Manager (FFTM).

      FFTM is responsible for:

      • Submission of transactions to blockchains of all types

      • Protocol connectivity decoupled with additional lightweight API connector

      • Easy to add additional protocols that conform to normal patterns of TX submission / events

      • Monitoring and updating blockchain operations

      • Receipts

      • Confirmations

      • Extensible transaction handler with capabilities such as:

      • Nonce management: idempotent submission of transactions, and assignment of nonces

      • Transaction management: pre-signing transactions, resubmission, customizable policy engine
      • Gas management: Gas Gas station API integration
      • Transaction process history

      • Event streaming

      • Protocol agnostic event polling/streaming support
      • Reliable checkpoint restart
      • At least once delivery API
      "},{"location":"architecture/blockchain_connector_framework/#assumptions-requirements","title":"Assumptions / Requirements","text":"

      The framework is currently constrained to blockchains that adhere to certain basic principals:

      1. Has transactions

      2. That are signed

      3. That can optionally have gas semantics (limits and prices, expressed in a blockchain specific way)

      4. Has events (or \"logs\")

      5. That are emitted as a deterministic outcome of transactions

      6. Has blocks

      7. Containing zero or more transactions, with their associated events

      8. With a sequential numeric order
      9. With a hash
      10. With a parent hash

      11. Has finality for transactions & events that can be expressed as a level of confidence over time

      12. Confirmations: A number of sequential blocks in the canonical chain that contain the transaction

      "},{"location":"architecture/blockchain_connector_framework/#nonce-management-in-the-simple-transaction-handler","title":"Nonce management in the simple transaction handler","text":"

      The nonces for transactions is assigned as early as possible in the flow:

      • Before the REST API for submission of the transaction occurs
      • After the FFCAPI blockchain connector verifies the transaction can be encoded successfully to the chain
      • With protection against multiple parallel API requests for the same signing address
      • With stateful persistence meaning the connector knows about all nonces it previously allocated, to avoids duplicates

      This \"at source\" allocation of nonces provides the strictest assurance of order of transactions possible, because the order is locked in with the coordination of the business logic of the application submitting the transaction.

      As well as protecting against loss of transactions, this protects against duplication of transactions - even in crash recovery scenarios with a sufficiently reliable persistence layer.

      "},{"location":"architecture/blockchain_connector_framework/#avoid-multiple-nonce-management-systems-against-the-same-signing-key","title":"Avoid multiple nonce management systems against the same signing key","text":"

      FFTM is optimized for cases where all transactions for a given signing address flow through the same FireFly connector. If you have signing and nonce allocation happening elsewhere, not going through the FireFly blockchain connector, then it is possible that the same nonce will be allocated in two places.

      Be careful that the signing keys for transactions you stream through the Nonce Management of the FireFly blockchain connector are not used elsewhere.

      If you must have multiple systems performing nonce management against the same keys you use with FireFly nonce management, you can set the transactions.nonceStateTimeout to 0 (or a low threshold like 100ms) to cause the nonce management to query the pending transaction pool of the node every time a nonce is allocated.

      This reduces the window for concurrent nonce allocation to be small (basically the same as if you had multiple simple web/mobile wallets used against the same key), but it does not eliminate it completely it.

      "},{"location":"architecture/blockchain_connector_framework/#why-at-source-nonce-management-was-chosen-vs-at-target","title":"Why \"at source\" nonce management was chosen vs. \"at target\"","text":"

      The \"at source\" approach to ordering used in FFTM could be compared with the \"at target\" allocation of nonces used in EthConnect).

      The \"at target\" approach optimizes for throughput and ability to send new transactions to the chain, with an at-least-once delivery assurance to the applications.

      An \"at target\" algorithm as used in EthConnect could resume transaction delivery automatically without operator intervention from almost all scenarios, including where nonces have been double allocated.

      However, \"at target\" comes with two compromises that mean FFTM chose the \"at source\" approach was chosen for FFTM:

      • Individual transactions might fail in certain scenarios, and subsequent transactions will still be streamed to the chain. While desirable for automation and throughput, this reduces the ordering guarantee for high value transactions.

      • In crash recovery scenarios the assurance is at-least-once delivery for \"at target\" ordering (rather than \"exactly once\"), although the window can be made very small through various optimizations included in the EthConnect codebase.

      "},{"location":"architecture/blockchain_connector_framework/#transaction-handler","title":"Transaction Handler","text":"

      The transaction Handler is a pluggable component that allows customized logic to be applied to the gas pricing, signing, submission and re-submission of transactions to the blockchain.

      The transaction Handler can store custom state in the state store of the FFTM code, which is also reported in status within the FireFly API/Explorer on the operation.

      A reference implementation is provided that:

      • Submits transactions via the underlying FFCAPI
      • Estimates gas price in one of three modes:
      • Fixed: It is specified via configuration
      • Connector: The FFCAPI is used to estimate the gas price (e.g. eth_gasPrice for EVM JSON/RPC)
      • Gas Oracle: A REST API is called the the result mapped via a Go template
      • Re-submits transactions after a configurable stale time
      • Record detailed information about transaction sub-status and actions
      • Emit customized metrics for transaction processing

      The reference implementation is available here

      "},{"location":"architecture/blockchain_connector_framework/#event-streams","title":"Event Streams","text":"

      One of the largest pieces of heavy lifting code in the FFTM codebase, is the event stream support. This provides a WebSocket (and Webhook) interface that FireFly Core and the Tokens Connectors connect to in order to receive ordered streams of events from the blockchain.

      The interface down to the blockchain layer is via go channels, and there are lifecycle interactions over the FFCAPI to the blockchain specific code to add and remove listeners for different types of blockchain events.

      Some high architectural principals that informed the code:

      • Event Stream
      • A delivery stream of events that have been confirmed
      • Only events that have reached finality are delivered to an event stream
      • FireFly creates a single event stream per namespace from core
      • Each token connector creates a single event stream
      • If one event stream is blocked, it must not block other streams in the FFTM based runtime
      • Listener (/Subscription)
      • A blockchain specific specification for a set of events to listen to
      • Specifies an initial block to listen from, and will replay all events from that block
      • Can have multiple blockchain specific filters, to match multiple events
      • The order of delivery within a listener matches the blockchain across all filters > - Note that the EVMConnect implementation of FFCAPI attempts to make this true across all listeners > on an event stream. However, this is impossible when a new listener has been added, > and that listener is catching up from an old block.
      • Compatibility
      • Has breaking changes from the API of EthConnect
      • A component that has been upgraded to support EVMConnect, can maintain backwards compatibility with EthConnect
      • Batching & Checkpoints
      • Delivery on event streams is via batches, with a single confirmation for each batch
      • At-least-once delivery of batches
      • Checkpoints are written after each batch
      • Chain head stability
      • A configurable section of the head of the chain is considered unstable
      • If no events have been delivered for a listener, checkpoints are still moved forwards
      • These empty checkpoints will never be written in the unstable head of the chain
      • Confirmation manager
      • Plugged in between detection of the events, and assembling into batches
      • Determines the final order based on order of confirmation on the blockchain

      "},{"location":"architecture/blockchain_connector_framework/#blockchain-error-messages","title":"Blockchain error messages","text":"

      The receipt for a FireFly blockchain operation contains an extraInfo section that records additional information about the transaction. For example:

      \"receipt\": {\n  ...\n  \"extraInfo\": [\n    {\n      {\n        \"contractAddress\":\"0x87ae94ab290932c4e6269648bb47c86978af4436\",\n        \"cumulativeGasUsed\":\"33812\",\n        \"from\":\"0x2b1c769ef5ad304a4889f2a07a6617cd935849ae\",\n        \"to\":\"0x302259069aaa5b10dc6f29a9a3f72a8e52837cc3\",\n        \"gasUsed\":\"33812\",\n        \"status\":\"0\",\n        \"errorMessage\":\"Not enough tokens\",\n      }\n    }\n  ],\n  ...\n},\n

      The errorMessage field can be be set by a blockchain connector to provide FireFly and the end-user with more information about the reason why a tranasction failed. The blockchain connector can choose what information to include in errorMessage field. It may be set to an error message relating to the blockchain connector itself or an error message passed back from the blockchain or smart contract that was invoked.

      "},{"location":"architecture/blockchain_connector_framework/#format-of-a-firefly-evmconnect-error-message","title":"Format of a firefly-evmconnect error message","text":"

      The following section describes the way that the firefly-evmconnect plugin uses the errorMessage field. This serves both as an explanation of how EVM-based transaction errors will be formatted, and as a guide that other blockchain connectors may decide to follow.

      The errorMessage field for a firefly-evmconnect transaction may contain one of the following:

      1. An error message from the FireFly blockchain connector

      2. For example \"FF23054\", \"Error return value unavailable\"

      3. A decoded error string from the blockchain transaction

      4. For example Not enough tokens

      5. This could be an error string from a smart contract e.g. require(requestedTokens <= allowance, \"Not enough tokens\");

      6. An un-decoded byte string from the blockchain transaction

      7. For example

      FF23053: Error return value for custom error: 0x1320fa6a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000010\n
      • This could be a custom error from a smart contract e.g.
      error AllowanceTooSmall(uint256 requested, uint256 allowance);\n...\nrevert AllowanceTooSmall({ requested: 100, allowance: 20 });\n
      • If an error reason cannot be decoded the returnValue of the extraInfo will be set to the raw byte string. For example:
      \"receipt\": {\n  ...\n  \"extraInfo\": [\n     {\n       {\n         \"contractAddress\":\"0x87ae94ab290932c4e6269648bb47c86978af4436\",\n         \"cumulativeGasUsed\":\"33812\",\n         \"from\":\"0x2b1c769ef5ad304a4889f2a07a6617cd935849ae\",\n         \"to\":\"0x302259069aaa5b10dc6f29a9a3f72a8e52837cc3\",\n         \"gasUsed\":\"33812\",\n         \"status\":\"0\",\n         \"errorMessage\":\"FF23053: Error return value for custom error: 0x1320fa6a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000010\",\n         \"returnValue\":\"0x1320fa6a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000010\"\n       }\n     }\n  ],\n  ...\n},\n
      "},{"location":"architecture/blockchain_connector_framework/#retrieving-evm-blockchain-transaction-errors","title":"Retrieving EVM blockchain transaction errors","text":"

      The ability of a blockchain connector such as firefly-evmconnect to retrieve the reason for a transaction failure, is dependent on by the configuration of the blockchain it is connected to. For an EVM blockchain the reason why a transaction failed is recorded with the REVERT op code, with a REASON set to the reason for the failure. By default, most EVM clients do not store this reason in the transaction receipt. This is typically to reduce resource consumption such as memory usage in the client. It is usually possible to configure an EVM client to store the revert reason in the transaction receipt. For example Hyperledger Besu\u2122 provides the --revert-reason-enabled configuration option. If the transaction receipt does not contain the revert reason it is possible to request that an EVM client re-run the transaction and return a trace of all of the op-codes, including the final REVERT REASON. This can be a resource intensive request to submit to an EVM client, and is only available on archive nodes or for very recent blocks.

      The firefly-evmconnect blockchain connector attempts to obtain the reason for a transaction revert and include it in the extraInfo field. It uses the following mechanisms, in this order:

      1. Checks if the blockchain transaction receipt contains the revert reason.
      2. If the revert reason is not in the receipt, and the connector.traceTXForRevertReason configuration option is set to true, calls debug_traceTransaction to obtain a full trace of the transaction and extract the revert reason. By default, connector.traceTXForRevertReason is set to false to avoid submitting high-resource requests to the EVM client.

      If the revert reason can be obtained using either mechanism above, the revert reason bytes are decoded in the following way:

      • Attempts to decode the bytes as the standard Error(string) signature format and includes the decoded string in the errorMessage
      • If the reason is not a standard Error(String) error, sets the errorMessage to FF23053: Error return value for custom error: <raw hex string> and includes the raw byte string in the returnValue field.
      "},{"location":"architecture/internal_event_sequencing/","title":"Internal Event Sequencing","text":""},{"location":"architecture/internal_event_sequencing/#overview","title":"Overview","text":"

      One of the most important roles FireFly has, is to take actions being performed by the local apps, process them, get them confirmed, and then deliver back as \"stream of consciousness\" to the application alongside all the other events that are coming into the application from other FireFly Nodes in the network.

      You might observe the problems solved in this architecture are similar to those in a message queuing system (like Apache Kafka, or a JMS/AMQP provider like ActiveMQ etc.).

      However, we cannot directly replace the internal logic with such a runtime - because FireFly's job is to aggregate data from multiple runtimes that behave similarly to these:

      • Private messaging in the Data Exchange
      • The blockchain ledger(s) themselves, which are a stream of sequenced events
      • The event dispatcher delivering messages to applications that have been sequenced by FireFly

      So FireFly provides the convenient REST based management interface to simplify the world for application developers, by aggregating the data from multiple locations, and delivering it to apps in a deterministic sequence.

      The sequence is made deterministic:

      • Globally to all apps within the scope of the ledger, when a Blockchain ledger is used to pin events (see #10)
      • Locally for messages delivered through a single FireFly node into the network
      • Locally for all messages delivered to applications connected to a FireFly node, across blockchain
      "},{"location":"architecture/internal_event_sequencing/#app-instances","title":"App Instances","text":"
      • Broadcast messages to the network
      • Ingest ack when message persisted in local messages table
      • Consume events via Websocket connection into FireFly
      "},{"location":"architecture/internal_event_sequencing/#outbound-sequencers","title":"Outbound Sequencers","text":"
      • Broadcast or Private through IPFS or Private Data Storage
      • Long-running leader-elected jobs listening to the database (via event tables in SQL, etc.)
      "},{"location":"architecture/internal_event_sequencing/#inbound-aggregator","title":"Inbound Aggregator","text":"
      • Triggered each time an event is detected by the associated plugin.
      • It is the responsibility of the plugin to fire events sequentially. Can be workload managed but must be sequential.
      "},{"location":"architecture/internal_event_sequencing/#events-table","title":"Events Table","text":"
      • Deliberately lightweight persisted object, that is generated as a byproduct of other persistent actions.
      • Records the local sequence of a specific event within the local node.
      • The highest level event type is the confirmation of a message, however the table can be extended for more granularity on event types.
      "},{"location":"architecture/internal_event_sequencing/#subscription-manager","title":"Subscription Manager","text":"
      • Responsible for filtering and delivering batches of events to the active event dispatchers.
      • Records the latest offset confirmed by each dispatcher.
      "},{"location":"architecture/internal_event_sequencing/#event-dispatcher","title":"Event Dispatcher","text":"
      • Created with leadership election when WebSocket connection is made from an app into FireFly.
      • Extensible to other dispatchers (AMQP, etc.).
      "},{"location":"architecture/multiparty_event_sequencing/","title":"Multiparty Event Sequencing","text":""},{"location":"architecture/multiparty_event_sequencing/#transaction-submission","title":"Transaction Submission","text":"
      • An individual FireFly instance preserves the order that it received messages from application instances.
      • Where possible, batching is used to roll-up hundreds of transactions into a single blockchain transaction.
      • Blockchain allows these messages to be globally sequenced with messages submitted by other members of the network.
      "},{"location":"architecture/multiparty_event_sequencing/#blockchain-ordering","title":"Blockchain Ordering","text":"
      • All member FireFly runtimes see every transaction in the same sequence.
      • This includes when transactions are being submitted by both sides concurrently.
      "},{"location":"architecture/multiparty_event_sequencing/#message-assembly","title":"Message Assembly","text":"
      • A queue of events is maintained for each matching app subscription.
      • The public/private payloads travel separately to the blockchain, and arrive at different times. FireFly assembles these together prior to delivery.
      • If data associated with a blockchain transaction is late, or does not arrive, all messages on the same \"context\" will be blocked.
      • It is good practice to send messages that don't need to be processed in order, with different \"context\" fields. For example use the ID of your business transaction, or other long-running process / customer identifier.
      "},{"location":"architecture/multiparty_event_sequencing/#event-processing","title":"Event Processing","text":"
      • Events are processed consistently by all parties.
      • All FireFly runtimes see every event that they are subscribed to, in the same sequence.
      • The submitter must also apply the logic only in the sequence ordered by the blockhain. It cannot assume the order even if it is the member that submitted it.
      "},{"location":"architecture/node_component_architecture/","title":"Node Component Architecture","text":""},{"location":"architecture/node_component_architecture/#what-is-a-firefly-node","title":"What is a FireFly Node?","text":"

      The core architecture of a FireFly node can be broken down into the following three areas:

      • The various runtimes encapsulating the node.
      • The core runtime responsibilities and pluggable elements.
      • The actual code running inside the node.

      "},{"location":"architecture/node_component_architecture/#runtimes","title":"Runtimes","text":"

      What fundamentally is a node - left side of the above diagram.

      • It is a collection of multiple runtimes with a single unified HTTPS/Websocket API (exposed by the Core).
      • It has a private database, containing your private data, and data received from others in the network.
      • It has connectivity out to other parties in the network, through runtimes (Blockchain, Shared Filesystems, Messaging etc.).
      "},{"location":"architecture/node_component_architecture/#responsibilities-pluggable-elements","title":"Responsibilities & Pluggable Elements","text":"

      What are the core runtime responsibilities, and pluggable elements - right side of the above diagram.

      • The core elements of function that FireFly performs, and which runtime is responsible.
      • This means some insight into core itself, and the jobs it performs, but not full code structure.
      • More importantly, what the split of responsibilities is between Connectors and Infrastructure Runtimes.
        • Connectors are the bridging runtimes, that know how to talk to a particular runtime.
        • They run separately to the core (like a microservice architecture of an app).
        • They can be written in any language (not just Go) - Java, TypeScript, Rust, Python, .NET etc.
        • They can use any network transport (not just HTTPS/Websockets) - GRPC, AMQP, UDP etc.
        • They connect to the core with a Golang shim - see separate Plugin Architecture discussion. > - In some special cases (like the Database) the Golang shim does not need a connector runtime.
        • Infrastructure Runtimes are the core runtimes for multi-party system activities.
        • Blockchain nodes - Ethereum (Hyperledger Besu, Quorum, Geth), Hyperledger Fabric, Corda etc.
        • Shared strorage - IPFS etc.
        • Database - PostreSQL, CouchDB etc.
      "},{"location":"architecture/node_component_architecture/#code-structure","title":"Code Structure","text":"

      What is the code structure inside the core.

      • The README.md is the reference for this.
      • Developers contributing to FireFly, on the core, or building new plugins, need this level of detail.
        • A reconciliation is underway to ensure the medium-level view correlates well with this code structure.
      "},{"location":"architecture/ping_pong_txflow/","title":"Example Transaction Flow (Ping Pong)","text":""},{"location":"architecture/ping_pong_txflow/#overview","title":"Overview","text":"

      This demonstrates the problem that at its core FireFly is there to solve. The internal plumbing complexity of just a very simple set of Enterprise blockchain / multi-party system interactions.

      • Party A: Establish existence of a digital asset.
      • Nothing more than some binary data (an image, a document, a specification etc.).
      • Party A: Broadcast some information about that asset to everyone, using blockchain to record, sequence and propagate.
      • So people can find it, or part of a more sophisticated workflow.
      • Party B: Request the actual data - with evidence of that request tied to the blockchain.
      • Including some private data that's sent to the Party A, reliably off-chain.
      • Party A: Authorize the request, and send the data privately to Party B.
      • In this example there's no blockchain involved in this step.

      This is the kind of thing that enterprise projects have been solving ground-up since the dawn of enterprise blockchain, and the level of engineering required that is completely detached from business value, is very high.

      The \"tramlines\" view shows how FireFly's pluggable model makes the job of the developer really simple:

      • A few simple API calls from a modern web app.
      • Event triggered execution of application logic.

      This is deliberately a simple flow, and all kinds of additional layers might well layer on (and fit within the FireFly model):

      • NFTs to track ownership etc. related to the digital asset.
      • Tokenized rewards/payments integrated with the authorization of the transfer of data.
      • Proof of deterministic execution of the logic to perform the authorization (on-chain, TEEs, ZKPs).
      • Human workflow, that is of course completely non-deterministic.
      • Multiple additional process steps, deterministic or not.
      • Inclusion of multiple additional parties (maybe it's a request-for-tender, submit-tender flow for example).
      • etc.
      "},{"location":"architecture/ping_pong_txflow/#broadcast-public-description-of-binary-data-asset-member-1","title":"Broadcast Public Description of Binary Data Asset (Member 1)","text":"
      • Upload Blob of the actual data
      • Returns a hash of the payload
      • Upload JSON containing the public index data
      • Includes the hash of the full payload
      • Send a broadcast message with the public index data
      • Agree upon a primary key of the data as the \"context\"
      "},{"location":"architecture/ping_pong_txflow/#receive-public-description-request-asset-data-member-2","title":"Receive Public Description & Request Asset Data (Member 2)","text":"
      • Store data in your own off-chain database for rich, efficient query
      • Run automated logic to decide if you want to request the full data
      • Upload JSON for data request
      • Send a private message
      • Backed by blockchain in this flow
      "},{"location":"architecture/ping_pong_txflow/#authorize-transfer-data-member-1","title":"Authorize & Transfer Data (Member 1)","text":"
      • Inspect the request data
      • Retrieve data asset by hash
      • Send the private data in a private message
      • No blockchain in this flow
      "},{"location":"architecture/ping_pong_txflow/#receive-data-asset-member-2","title":"Receive Data Asset (Member 2)","text":"
      • Receive a link to your local copy of the asset data
      "},{"location":"architecture/plugin_architecture/","title":"Plugin Architecture","text":"

      This diagram shows the various plugins that are currently in the codebase and the layers in each plugin

      This diagram shows the details of what goes into each layer of a FireFly plugin

      "},{"location":"architecture/plugin_architecture/#overview","title":"Overview","text":"

      The FireFly node is built for extensibility, with separate pluggable runtimes orchestrated into a common API for developers. The mechanics of that pluggability for developers of new connectors is explained below:

      This architecture is designed to provide separations of concerns to account for:

      • Differences in code language for the low-level connection to a backend (Java for Corda for example)
      • Differences in transports, particularly for delivery of events:
      • Between FireFly Core and the Connector
        • Different transports other than HTTPS/WebSockets (GRPC etc.), and different wire protocols (socket.io, etc.)
      • Between the Connector and the underlying Infrastructure Runtime
        • Often this is heavy lifting engineering within the connector
      • Differences in High Availability (HA) / Scale architectures
      • Between FireFly Core, and the Connector
        • Often for event management, and active/passive connector runtime is sufficient
      • Between the Connector and the Infrastructure Runtime
        • The infrastructure runtimes have all kinds of variation here... think of the potential landscape here from PostreSQL through Besu/Fabric/Corda, to Hyperledger Avalon and even Main-net ethereum
      "},{"location":"architecture/plugin_architecture/#firefly-core","title":"FireFly Core","text":"
      • Golang
      • N-way scalable cluster
      • Database is also pluggable via this architecture
      • No long lived in-memory processing
      • All micro-batching must be recoverable
      • Driven by single configuration set
      • Viper semantics - file, env var, cmdline flags
      "},{"location":"architecture/plugin_architecture/#plugin-for-connector","title":"Plugin for Connector","text":"
      • Golang
      • Statically compiled in support at runtime
      • Go dynamic plugin support too immature
      • Must be 100% FLOSS code (no GPL/LGPL etc.)
      • Contributed via PR to FF Core
      • Intended to be lightweight binding/mapping
      • Must adhere to FF Core Coding Standards
      • Scrutiny on addition of new frameworks/transports
      "},{"location":"architecture/plugin_architecture/#connector","title":"Connector","text":"
      • Node.js / Java / Golang, etc.
      • Runs/scales independently from FF core
      • Coded in any language, OSS or proprietary
      • One runtime or multiple
      • HA model can be active/passive or active/active
      • Expectation is all plugins need a connector
      • Some exceptions exist (e.g. database plugin)
      "},{"location":"architecture/plugin_architecture/#infrastructure-runtime","title":"Infrastructure Runtime","text":"
      • Besu, Quorum, Corda, Fabric, IPFS, Kafka, etc.
      • Runs/scales independently from FF Core
      • Coded in any language, OSS or proprietary
      • Not specific to FireFly
      • HA model can be active/passive or active/active
      "},{"location":"contributors/","title":"Contributors' Guide","text":"

      We welcome anyone to contribute to the FireFly project! If you're interested, this is a guide on how to get started. You don't have to be a blockchain expert to make valuable contributions! There are lots of places for developers of all experience levels to get involved.

      \ud83e\uddd1\ud83c\udffd\u200d\ud83d\udcbb \ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb \ud83d\udc69\ud83c\udffe\u200d\ud83d\udcbb \ud83e\uddd1\ud83c\udffb\u200d\ud83d\udcbb \ud83e\uddd1\ud83c\udfff\u200d\ud83d\udcbb \ud83d\udc68\ud83c\udffd\u200d\ud83d\udcbb \ud83d\udc69\ud83c\udffd\u200d\ud83d\udcbb \ud83e\uddd1\ud83c\udffe\u200d\ud83d\udcbb \ud83d\udc68\ud83c\udfff\u200d\ud83d\udcbb \ud83d\udc68\ud83c\udffe\u200d\ud83d\udcbb \ud83d\udc69\ud83c\udfff\u200d\ud83d\udcbb \ud83d\udc68\ud83c\udffb\u200d\ud83d\udcbb

      "},{"location":"contributors/#connect-with-us-on-discord","title":"\ud83d\ude80 Connect with us on Discord","text":"

      You can chat with maintainers and other contributors on Discord in the firefly channel: https://discord.gg/hyperledger

      Join Discord Server

      "},{"location":"contributors/#join-our-community-calls","title":"\ud83d\udcc5 Join our Community Calls","text":"

      Community calls are a place to talk to other contributors, maintainers, and other people interested in FireFly. Maintainers often discuss upcoming changes and proposed new features on these calls. These calls are a great way for the community to give feedback on new ideas, ask questions about FireFly, and hear how others are using FireFly to solve real world problems.

      Please see the FireFly Calendar for the current meeting schedule, and the link to join. Everyone is welcome to join, regardless of background or experience level.

      "},{"location":"contributors/#find-your-first-issue","title":"\ud83d\udd0d Find your first issue","text":"

      If you're looking for somewhere to get started in the FireFly project and want something small and relatively easy, take a look at issues tagged with \"Good first issue\". You can definitely work on other things if you want to. These are only suggestions for easy places to get started.

      See \"Good First Issues\"

      NOTE Hyperledger FireFly has a microservice architecture so it has many different GitHub repos. Use the link or the button above to look for \"Good First Issues\" across all the repos at once.

      Here are some other suggestions of places to get started, based on experience you may already have:

      "},{"location":"contributors/#any-level-of-experience","title":"Any level of experience","text":"

      If you looking to make your first open source contribution the FireFly documentation is a great place to make small, easy improvements. These improvements are also very valuable, because they help the next person that may want to know the same thing.

      Here are some detailed instructions on Contributing to Documentation

      "},{"location":"contributors/#go-experience","title":"Go experience","text":"

      If you have some experience in Go and really want to jump into FireFly, the FireFly Core is the heart of the project.

      Here are some detailed instructions on Setting up a FireFly Core Development Environment.

      "},{"location":"contributors/#little-or-no-go-experience-but-want-to-learn","title":"Little or no Go experience, but want to learn","text":"

      If you don't have a lot of experience with Go, but are interested in learning, the FireFly CLI might be a good place to start. The FireFly CLI is a tool to set up local instances of FireFly for building apps that use FireFly, and for doing development on FireFly itself.

      "},{"location":"contributors/#typescript-experience","title":"TypeScript experience","text":"

      If you have some experience in TypeScript, there are several FireFly microservices that are written in TypeScript. The Data Exchange is used for private messaging between FireFly nodes. The ERC-20/ERC-271 Tokens Connector and ERC-1155 Tokens Connector are used to abstract token contract specifics from the FireFly Core.

      "},{"location":"contributors/#reacttypescript-experience","title":"React/TypeScript experience","text":"

      If you want to do some frontend development, the FireFly UI is written in TypeScript and React.

      "},{"location":"contributors/#go-and-blockchain-experience","title":"Go and blockchain experience","text":"

      If you already have some experience with blockchain and want to work on some backend components, the blockchain connectors, firefly-ethconnect (for Ethereum) and firefly-fabconnect (for Fabric) are great places to get involved.

      "},{"location":"contributors/#make-changes","title":"\ud83d\udcdd Make changes","text":"

      To contribute to the repository, please fork the repository that you want to change. Then clone your fork locally on your machine and make your changes. As you commit your changes, push them to your fork. More information on making commits below.

      "},{"location":"contributors/#commit-with-developer-certificate-of-origin","title":"\ud83d\udcd1 Commit with Developer Certificate of Origin","text":"

      As with all Hyperledger repositories, FireFly requires proper sign-off on every commit that is merged into the main branch. The sign-off indicates that you certify the changes you are submitting are in accordance with the Developer Certificate of Origin. To sign-off on your commit, you can use the -s flag when you commit changes.

      git commit -s -m \"Your commit message\"\n

      This will add a string like this to the end of your commit message:

      \"Signed-off-by: Your Name <your-email@address>\"\n

      NOTE: Sign-off is not the same thing as signing your commits with a private key. Both operations use a similar flag, which can be confusing. The one you want is the lowercase -s \ud83d\ude42

      "},{"location":"contributors/#open-a-pull-request","title":"\ud83d\udce5 Open a Pull Request","text":"

      When you're ready to submit your changes for review, open a Pull Request back to the upstream repository. When you open your pull request, the maintainers will automatically be notified. Additionally, a series of automated checks will be performed on your code to make sure it passes certain repository specific requirements.

      Maintainers may have suggestions on things to improve in your pull request. It is our goal to get code that is beneficial to the project merged as quickly as possible, so we don't like to leave pull requests hanging around for a long time. If the project maintainers are satisfied with the changes, they will approve and merge the pull request.

      Thanks for your interest in collaborating on this project!

      "},{"location":"contributors/#inclusivity","title":"Inclusivity","text":"

      The Hyperledger Foundation and the FireFly project are committed to fostering a community that is welcoming to all people. When participating in community discussions, contributing code, or documentaiton, please abide by the following guidelines:

      • Consider that users who will read the docs are from different background and cultures and that they have different preferences.
      • Avoid potential offensive terms and, for instance, prefer \"allow list and deny list\" to \"white list and black list\".
      • We believe that we all have a role to play to improve our world, and even if writing inclusive doc might not look like a huge improvement, it's a first step in the right direction.
      • We suggest to refer to Microsoft bias free writing guidelines and Google inclusive doc writing guide as starting points.
      "},{"location":"contributors/advanced_cli_usage/","title":"Advanced CLI Usage","text":"

      This page details some of the more advanced options of the FireFly CLI

      "},{"location":"contributors/advanced_cli_usage/#understanding-how-the-cli-uses-firefly-releases","title":"Understanding how the CLI uses FireFly releases","text":""},{"location":"contributors/advanced_cli_usage/#the-manifestjson-file","title":"The manifest.json file","text":"

      FireFly has a manifest.json file in the root of the repo. This file contains a list of versions (both tag and sha) for each of the microservices that should be used with this specific commit.

      Here is an example of what the manifest.json looks like:

      {\n  \"ethconnect\": {\n    \"image\": \"ghcr.io/hyperledger/firefly-ethconnect\",\n    \"tag\": \"v3.0.4\",\n    \"sha\": \"0b7ce0fb175b5910f401ff576ced809fe6f0b83894277c1cc86a73a2d61c6f41\"\n  },\n  \"fabconnect\": {\n    \"image\": \"ghcr.io/hyperledger/firefly-fabconnect\",\n    \"tag\": \"v0.9.0\",\n    \"sha\": \"a79a4c66b0a2551d5122d019c15c6426e8cdadd6566ce3cbcb36e008fb7861ca\"\n  },\n  \"dataexchange-https\": {\n    \"image\": \"ghcr.io/hyperledger/firefly-dataexchange-https\",\n    \"tag\": \"v0.9.0\",\n    \"sha\": \"0de5b1db891a02871505ba5e0507821416d9fa93c96ccb4b1ba2fac45eb37214\"\n  },\n  \"tokens-erc1155\": {\n    \"image\": \"ghcr.io/hyperledger/firefly-tokens-erc1155\",\n    \"tag\": \"v0.9.0-20211019-01\",\n    \"sha\": \"aabc6c483db408896838329dab5f4b9e3c16d1e9fa9fffdb7e1ff05b7b2bbdd4\"\n  }\n}\n
      "},{"location":"contributors/advanced_cli_usage/#default-cli-behavior-for-releases","title":"Default CLI behavior for releases","text":"

      When creating a new stack, the CLI will by default, check the latest non-pre-release version of FireFly and look at its manifest.json file that was part of that commit. It will then use the Docker images referenced in that file to determine which images it should pull for the new stack. The specific image tag and sha is written to the docker-compose.yml file for that stack, so restarting or resetting a stack will never pull a newer image.

      "},{"location":"contributors/advanced_cli_usage/#running-a-specific-release-of-firefly","title":"Running a specific release of FireFly","text":"

      If you need to run some other version that is not the latest release of FireFly, you can tell the FireFly CLI which release to use by using the --release or -r flag. For example, to explicitly use v0.9.0 run this command to initialize the stack:

      ff init -r v0.9.0\n
      "},{"location":"contributors/advanced_cli_usage/#running-an-unreleased-version-of-one-or-more-services","title":"Running an unreleased version of one or more services","text":"

      If you need to run an unreleased version of FireFly or one of its microservices, you can point the CLI to a specific manifest.json on your local disk. To do this, use the --manifest or -m flag. For example, if you have a file at ~/firefly/manifest.json:

      ff init -m ~/firefly/manifest.json\n

      If you need to test a locally built docker image of a specific service, you'll want to edit the manifest.json before running ff init. Let's look at an example where we want to run a locally built version of fabconnect. The same steps apply to any of FireFly's microservices.

      "},{"location":"contributors/advanced_cli_usage/#build-a-new-image-of-fabconnect-locally","title":"Build a new image of fabconnect locally","text":"

      From the fabconnect project directory, build and tag a new Docker image:

      docker build -t ghcr.io/hyperledger/firefly-fabconnect .\n
      "},{"location":"contributors/advanced_cli_usage/#edit-your-manifestjson-file","title":"Edit your manifest.json file","text":"

      Next, edit the fabconnect section of the manifest.json file. You'll want to remove the tag and sha and a \"local\": true field, so it looks like this:

      ...\n  \"fabconnect\": {\n    \"image\": \"ghcr.io/hyperledger/firefly-fabconnect\",\n    \"local\": true\n  },\n...\n
      "},{"location":"contributors/advanced_cli_usage/#initialize-the-stack-with-the-custom-manifestjson-file","title":"Initialize the stack with the custom manifest.json file","text":"
       ff init local-test -b fabric -m ~/Code/hyperledger/firefly/manifest.json\n ff start local-test\n

      If you are iterating on changes locally, you can get the CLI to use an updated image by doing the following:

      • Whenever the CLI does its first time setup, it will use your newly built local docker image
      • If you've already run the stack, you can run ff reset <stack_name> and ff start <stack_name> to reset the data, and use the newer image
      "},{"location":"contributors/advanced_cli_usage/#running-a-locally-built-firefly-core-image","title":"Running a locally built FireFly Core image","text":"

      You may have noticed that FireFly core is actually not listed in the manifest.json file. If you want to run a locally built image of FireFly Core, you can follow the same steps above, but instead of editing an existing section in the file, we'll add a new one for FireFly.

      "},{"location":"contributors/advanced_cli_usage/#build-a-new-image-of-firefly-locally","title":"Build a new image of FireFly locally","text":"

      From the firefly project directory, build and tag a new Docker image:

      make docker\n
      "},{"location":"contributors/advanced_cli_usage/#initialize-the-stack-with-the-custom-manifestjson-file_1","title":"Initialize the stack with the custom manifest.json file","text":"
       ff init local-test -m ~/Code/hyperledger/firefly/manifest.json\n ff start local-test\n
      "},{"location":"contributors/code_hierarchy/","title":"FireFly Code Hierarchy","text":"

      Use the following diagram to better understand the hierarchy amongst the core FireFly components, plugins and utility frameworks:

      \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 cmd      \u251c\u2500\u2500\u2524 firefly   [Ff]\u2502  - CLI entry point\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2502               \u2502  - Creates parent context\n              \u2502               \u2502  - Signal handling\n              \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                    \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - HTTP listener (Gorilla mux)\n\u2502 internal \u251c\u2500\u2500\u2524 api       [As]\u2502    * TLS (SSL), CORS configuration etc.\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  \u2502 server        \u2502    * WS upgrade on same port\n              \u2502               \u2502  - REST route definitions\n              \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Simple routing logic only, all processing deferred to orchestrator\n                    \u2502\n              \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - REST route definition framework\n              \u2502 openapi   [Oa]\u2502    * Standardizes Body, Path, Query, Filter semantics\n              \u2502 spec          |      - OpenAPI 3.0 (Swagger) generation\n              \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Including Swagger. UI\n                    \u2502\n              \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - WebSocket server\n              \u2502           [Ws]\u2502    * Developer friendly JSON based protocol business app development\n              \u2502 websockets    \u2502    * Reliable sequenced delivery\n              \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * _Event interface [Ei] supports lower level integration with other compute frameworks/transports_\n                    \u2502\n              \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Extension point interface to listen for database change events\n              \u2502 admin     [Ae]\u2502    * For building microservice extensions to the core that run externally\n              \u2502 events        |    * Used by the Transaction Manager component\n              \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Filtering to specific object types\n                    \u2502\n              \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Core data types\n              \u2502 fftypes   [Ft]\u2502    * Used for API and Serialization\n              \u2502               \u2502    * APIs can mask fields on input via router definition\n              \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                    \u2502\n              \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Core runtime server. Initializes and owns instances of:\n              \u2502           [Or]\u2502    * Components: Implement features\n  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2524 orchestrator  \u2502    * Plugins:    Pluggable infrastructure services\n  \u2502       \u2502   \u2502               \u2502  - Exposes actions to router\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Processing starts here for all API calls\n  \u2502       \u2502\n  \u2502  Components: Components do the heavy lifting within the engine\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Integrates with Blockchain Smart Contract logic across blockchain technologies\n  \u2502       \u251c\u2500\u2500\u2500\u2524 contract  [Cm]\u2502    * Generates OpenAPI 3 / Swagger definitions for smart contracts, and propagates to network\n  \u2502       \u2502   \u2502 manager       \u2502    * Manages listeners for native Blockchain events, and routes those to application events\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Convert to/from native Blockchain interfaces (ABI etc.) and FireFly Interface [FFI] format\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Maintains a view of the entire network\n  \u2502       \u251c\u2500\u2500\u2500\u2524 network   [Nm]\u2502    * Integrates with network permissioning [NP] plugin\n  \u2502       \u2502   \u2502 map           \u2502    * Integrates with broadcast plugin\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Handles hierarchy of member identity, node identity and signing identity\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Broadcast of data to all parties in the network\n  \u2502       \u251c\u2500\u2500\u2500\u2524 broadcast [Bm]\u2502    * Implements dispatcher for batch component\n  \u2502       \u2502   \u2502 manager       |    * Integrates with shared storage interface [Ss] plugin\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Integrates with blockchain interface [Bi] plugin\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Send private data to individual parties in the network\n  \u2502       \u251c\u2500\u2500\u2500\u2524 private   [Pm]\u2502    * Implements dispatcher for batch component\n  \u2502       \u2502   \u2502 messaging     |    * Integrates with the data exchange [Dx] plugin\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Messages can be pinned and sequenced via the blockchain, or just sent\n  \u2502       \u2502          \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Groups of parties, with isolated data and/or blockchains\n  \u2502       \u2502   \u2502 group     [Gm]\u2502    * Integrates with data exchange [Dx] plugin\n  \u2502       \u2502   \u2502 manager       \u2502    * Integrates with blockchain interface [Bi] plugin\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Private data management and validation\n  \u2502       \u251c\u2500\u2500\u2500\u2524 data      [Dm]\u2502    * Implements dispatcher for batch component\n  \u2502       \u2502   \u2502 manager       \u2502    * Integrates with data exchange [Dx] plugin\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Integrates with blockchain interface [Bi] plugin\n  \u2502       \u2502          \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - JSON data schema management and validation (architecture extensible to XML and more)\n  \u2502       \u2502   \u2502 json      [Jv]\u2502    * JSON Schema validation logic for outbound and inbound messages\n  \u2502       \u2502   \u2502 validator     \u2502    * Schema propagation\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Integrates with broadcast plugin\n  \u2502       \u2502          \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Binary data addressable via ID or Hash\n  \u2502       \u2502   \u2502 blobstore [Bs]\u2502    * Integrates with data exchange [Dx] plugin\n  \u2502       \u2502   \u2502               \u2502    * Hashes data, and maintains mapping to payload references in blob storage\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Integrates with blockchain interface [Bi] plugin\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Download from shared storage\n  \u2502       \u251c\u2500\u2500\u2500\u2524 shared    [Sd]\u2502    * Parallel asynchronous download\n  \u2502       \u2502   \u2502 download      \u2502    * Resilient retry and crash recovery\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Notification to event aggregator on completion\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502       \u251c\u2500\u2500\u2500\u2524 identity [Im] \u2502  - Central identity management service across components\n  \u2502       \u2502   \u2502 manager       \u2502    * Resolves API input identity + key combos (short names, formatting etc.)\n  \u2502       \u2502   \u2502               \u2502    * Resolves registered on-chain signing keys back to identities\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Integrates with Blockchain Interface and pluggable Identity Interface (TBD)\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Keeps track of all operations performed against external components via plugins\n  \u2502       \u251c\u2500\u2500\u2500\u2524 operation [Om]\u2502    * Updates database with inputs/outputs\n  \u2502       \u2502   \u2502 manager       \u2502    * Provides consistent retry semantics across plugins\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Private data management and validation\n  \u2502       \u251c\u2500\u2500\u2500\u2524 event     [Em]\u2502    * Implements dispatcher for batch component\n  \u2502       \u2502   \u2502 manager       \u2502    * Integrates with data exchange [Dx] plugin\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Integrates with blockchain interface [Bi] plugin\n  \u2502       \u2502          \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Handles incoming external data\n  \u2502       \u2502   \u2502           [Ag]\u2502    * Integrates with data exchange [Dx] plugin\n  \u2502       \u2502   \u2502 aggregator    \u2502    * Integrates with shared storage interface [Ss] plugin\n  \u2502       \u2502   \u2502               \u2502    * Integrates with blockchain interface [Bi] plugin\n  \u2502       \u2502   \u2502               \u2502  - Ensures valid events are dispatched only once all data is available\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Context aware, to prevent block-the-world scenarios\n  \u2502       \u2502          \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Subscription manager\n  \u2502       \u2502   \u2502           [Sm]\u2502    * Creation and management of subscriptions\n  \u2502       \u2502   \u2502 subscription  \u2502    * Creation and management of subscriptions\n  \u2502       \u2502   \u2502 manager       \u2502    * Message to Event matching logic\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502       \u2502          \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Manages delivery of events to connected applications\n  \u2502       \u2502   \u2502 event     [Ed]\u2502    * Integrates with data exchange [Dx] plugin\n  \u2502       \u2502   \u2502 dispatcher    \u2502    * Integrates with blockchain interface [Bi] plugin\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Token creation/transfer initiation, indexing and coordination\n  \u2502       \u251c\u2500\u2500\u2500\u2524 asset     [Am]\u2502    * Fungible tokens: Digitized value/settlement (coins)\n  \u2502       \u2502   \u2502 manager       \u2502    * Non-fungible tokens: NFTs / globally uniqueness / digital twins\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Full indexing of transaction history\n  \u2502       \u2502   [REST/WebSockets]\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\n  \u2502       \u2502   \u2502 ERC-20 / ERC-721  \u251c\u2500\u2500\u2500\u2524 ERC-1155 \u251c\u2500\u2500\u2500\u2524  Simple framework for building token connectors\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502       \u251c\u2500\u2500\u2500\u2524 sync /   [Sa] \u2502  - Sync/Async Bridge\n  \u2502       \u2502   \u2502 async bridge  \u2502    * Provides synchronous request/reply APIs\n  \u2502       \u2502   \u2502               \u2502    * Translates to underlying event-driven API\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502       \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Aggregates messages and data, with rolled up hashes for pinning\n  \u2502       \u251c\u2500\u2500\u2500\u2524 batch     [Ba]\u2502    * Pluggable dispatchers\n  \u2502       \u2502   \u2502 manager       \u2502  - Database decoupled from main-line API processing\n  \u2502       \u2502   \u2502               \u2502    * See architecture diagrams for more info on active/active sequencing\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  - Manages creation of batch processor instances\n  \u2502       \u2502          \u2502\n  \u2502       \u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Short lived agent spun up to assemble batches on demand\n  \u2502       \u2502   \u2502 batch     [Bp]\u2502    * Coupled to an author+type of messages\n  \u2502       \u2502   \u2502 processor     \u2502  - Builds batches of 100s messages for efficient pinning\n  \u2502       \u2502   \u2502               \u2502    * Aggregates messages and data, with rolled up hashes for pinning\n  \u2502       \u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518  - Shuts down automatically after a configurable inactivity period\n  \u2502       ... more TBD\n  \u2502\nPlugins: Each plugin comprises a Go shim, plus a remote agent microservice runtime (if required)\n  \u2502\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Blockchain Interface\n  \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524           [Bi]\u2502    * Transaction submission - including signing key management\n  \u2502           \u2502 blockchain    \u2502    * Event listening\n  \u2502           \u2502 interface     \u2502    * Standardized operations, and custom on-chain coupling\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502                 \u2502\n  \u2502                 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502           \u2502 ethereum      \u2502   \u2502 fabric        \u2502   \u2502 corda/cordapps \u2502\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502           [REST/WebSockets]\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\n  \u2502           \u2502 transaction manager [Tm] \u251c\u2500\u2500\u2500\u2524 Connector API [ffcapi] \u251c\u2500\u2500\u2500\u2524  Simple framework for building blockchain connectors\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\n  \u2502\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Token interface\n  \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 tokens    [Ti]\u2502    * Standardizes core concepts: token pools, transfers, approvals\n  \u2502           \u2502 interface     \u2502    * Pluggable across token standards\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Supports simple implementation of custom token standards via microservice connector\n  \u2502           [REST/WebSockets]\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\n  \u2502           \u2502 ERC-20 / ERC-721  \u251c\u2500\u2500\u2500\u2524 ERC-1155 \u251c\u2500\u2500\u2500\u2524  Simple framework for building token connectors\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\n  \u2502\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - P2P Content Addresssed Filesystem\n  \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 shared    [Si]\u2502    * Payload upload / download\n  \u2502           \u2502 storage       \u2502    * Payload reference management\n  \u2502           \u2502 interface     \u2502\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502                 \u2502\n  \u2502                 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 ... extensible to any shared storage sytem, accessible to all members\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502           \u2502 ipfs          \u2502\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Private Data Exchange\n  \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 data      [Dx]\u2502    * Blob storage\n  \u2502           \u2502 exchange      \u2502    * Private secure messaging\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Secure file transfer\n  \u2502                 \u2502\n  \u2502                 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 ... extensible to any private data exchange tech\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502           \u2502 https / MTLS  \u2502   \u2502 Kaleido       \u2502\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - API Authentication and Authorization Interface\n  \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 api auth  [Aa]\u2502    * Authenticates security credentials (OpenID Connect id token JWTs etc.)\n  \u2502           \u2502               \u2502    * Extracts API/user identity (for identity interface to map)\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Enforcement point for fine grained API access control\n  \u2502                 \u2502\n  \u2502                 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 ... extensible other single sign-on technologies\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502           \u2502 apikey        \u2502   \u2502 jwt           \u2502\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Database Interactions\n  \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 database  [Di]\u2502    * Create, Read, Update, Delete (CRUD) actions\n  \u2502           \u2502 interace      \u2502    * Filtering and update definition interace\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Migrations and Indexes\n  \u2502                 \u2502\n  \u2502                 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 ... extensible to NoSQL (CouchDB / MongoDB etc.)\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502           \u2502 sqlcommon     \u2502\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502                 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 ... extensible other SQL databases\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510     \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502           \u2502 postgres      \u2502     \u2502 sqlite3        \u2502\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518     \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Connects the core event engine to external frameworks and applications\n  \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 event     [Ei]\u2502    * Supports long-lived (durable) and ephemeral event subscriptions\n  \u2502           \u2502 interface     \u2502    * Batching, filtering, all handled in core prior to transport\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Interface supports connect-in (websocket) and connect-out (broker runtime style) plugins\n  \u2502                 \u2502\n  \u2502                 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500   ... extensible to additional event buses (Kafka, NATS, AMQP etc.)\n  \u2502           \u250c\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510     \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n  \u2502           \u2502 websockets    \u2502     \u2502 webhooks       \u2502\n  \u2502           \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518     \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2502  ... more TBD\n\n  Additional utility framworks\n              \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - REST API client\n              \u2502 rest      [Re]\u2502    * Provides convenience and logging\n              \u2502 client        \u2502    * Standardizes auth, config and retry logic\n              \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Built on Resty\n\n              \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - WebSocket client\n              \u2502 wsclient  [Wc]\u2502    * Provides convenience and logging\n              \u2502               \u2502    * Standardizes auth, config and reconnect logic\n              \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Built on Gorilla WebSockets\n\n              \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Translation framework\n              \u2502 i18n      [In]\u2502    * Every translations must be added to `en_translations.json` - with an `FF10101` key\n              \u2502               \u2502    * Errors are wrapped, providing extra features from the `errors` package (stack etc.)\n              \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Description translations also supported, such as OpenAPI description\n\n              \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Logging framework\n              \u2502 log       [Lo]\u2502    * Logging framework (logrus) integrated with context based tagging\n              \u2502               \u2502    * Context is used throughout the code to pass API invocation context, and logging context\n              \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Example: Every API call has an ID that can be traced, as well as a timeout\n\n              \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510  - Configuration\n              \u2502 config    [Co]\u2502    * File and Environment Variable based logging framework (viper)\n              \u2502               \u2502    * Primary config keys all defined centrally\n              \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518    * Plugins integrate by returning their config structure for unmarshaling (JSON tags)\n
      "},{"location":"contributors/code_overview/","title":"FireFly Code Overview","text":""},{"location":"contributors/code_overview/#developer-intro","title":"Developer Intro","text":"

      FireFly is a second generation implementation re-engineered from the ground up to improve developer experience, runtime performance, and extensibility.

      This means a simplified REST/WebSocket programming model for app development, and a wider range of infrastructure options for deployment.

      It also means a focus on an architecture and code structure for a vibrant open source community.

      A few highlights:

      • Golang codebase
      • Strong coding standards, including unit test coverage, translation support, logging and more
      • Fast starting, low memory footprint, multi-threaded runtime
      • OpenAPI 3.0 API specification (Swagger)
      • Generated from the API router code, to avoid divergence with the implementation
      • Active/active HA architecture for the core runtime
      • Deferring to the core database for state high availability
      • Exploiting leader election where required
      • Fully pluggable architecture
      • Everything from Database through to Blockchain, and Compute
      • Golang plugin infrastructure to decouple the core code from the implementation
      • Remote Agent model to decouple code languages, and HA designs
      • Updated API resource model
      • Asset, Data, Message, Event, Topic, Transaction
      • Added flexibility, with simplified the developer experience:

      • Versioning of data definitions

      • Introducing a first class Context construct link related events into a single sequence
      • Allow many pieces of data to be attached to a single message, and be automatically re-assembled on arrival
      • Clearer separation of concerns between the FireFly DB and the Application DB
      • Better search, filter and query support

      ## Directories

      • internal: The core Golang implementation code
      • pkg: Interfaces intended for external project use
      • cmd: The command line entry point
      • smart_contracts: smart contract code for FireFly's onchain logic
      "},{"location":"contributors/code_repositories/","title":"Code Repositories","text":"

      FireFly has a plugin based architecture design, with a microservice runtime footprint. As such there are a number of repos, and the list will grow as the community evolves.

      But not to worry, one of those repos is a CLI designed to get you running with all the components you need in minutes!

      • CLI / Developer experience
      • FireFly Samples
      • UI Explorer
      • Core
      • HTTP Data Exchange
      • Ethereum (Hyperledger Besu / Quorum) connector
      • Corda connector
      • Hyperledger Fabric connector
      • Token connector reference implementation (ERC1155)

      Note only the projects that are primarily built to support FireFly are listed here, not all of the ecosystem of projects that integrate underneath the plugins.

      "},{"location":"contributors/dev_environment_setup/","title":"Setting up a FireFly Core Development Environment","text":"

      This guide will walk you through setting up your machine for contributing to FireFly, specifically the FireFly core.

      "},{"location":"contributors/dev_environment_setup/#dependencies","title":"Dependencies","text":"

      You will need a few prerequisites set up on your machine before you can build FireFly from source. We recommend doing development on macOS, Linux, or WSL 2.0.

      • Go 1.21
      • make
      • GCC
      • openssl
      "},{"location":"contributors/dev_environment_setup/#install-the-firefly-cli","title":"Install the FireFly CLI","text":"

      The first step to setting up a local development environment is to install the FireFly CLI. Please section of the Getting Started Guide to install The FireFly CLI.

      "},{"location":"contributors/dev_environment_setup/#installing-go-and-setting-up-your-gopath","title":"Installing Go and setting up your GOPATH","text":"

      We recommend following the instructions on golang.org to install Go, rather than installing Go from another package magager such as brew. Although it is possible to install Go any way you'd like, setting up your GOPATH may differ from the following instructions.

      After installing Go, you will need to add a few environment variables to your shell run commands file. This is usually a hidden file in your home directory called .bashrc or .zshrc, depending on which shell you're using.

      Add the following lines to your .bashrc or .zshrc file:

      export GOPATH=$HOME/go\nexport GOROOT=\"/usr/local/go\"\nexport PATH=\"$PATH:${GOPATH}/bin:${GOROOT}/bin\"\n
      "},{"location":"contributors/dev_environment_setup/#building-firefly","title":"Building FireFly","text":"

      After installing dependencies, building FireFly from source is very easy. Just clone the repo:

      git clone git@github.com:hyperledger/firefly.git && cd firefly\n

      And run the Makefile to run tests, and compile the app

      make\n

      If you want to install the binary on your path (assuming your Go Home is already on your path), from inside the project directory you can simply run:

      go install\n
      "},{"location":"contributors/dev_environment_setup/#install-the-cli","title":"Install the CLI","text":"

      Please check the CLI Installation instructions for the best way to install the CLI on your machine: https://github.com/hyperledger/firefly-cli#install-the-cli

      "},{"location":"contributors/dev_environment_setup/#set-up-a-development-stack","title":"Set up a development stack","text":"

      Now that you have both FireFly and the FireFly CLI installed, it's time to create a development stack. The CLI can be used to create a docker-compose environment that runs the entirety of a FireFly network. This will include several different processes for each member of the network. This is very useful for people that want to build apps that use FireFly's API. It can also be useful if you want to make changes to FireFly itself, however we need to set up the stack slightly differently in that case.

      Essentially what we are going to do is have docker-compose run everything in the FireFly network except one FireFly core process. We'll run this FireFly core process on our host machine, and configure it to connect to the rest of the microservices running in docker-compose. This means we could launch FireFly from Visual Studio Code or some other IDE and use a debugger to see what's going on inside FireFly as it's running.

      We'll call this stack dev. We're also going to add --external 1 to the end of our command to create the new stack:

      ff init dev --external 1\n

      This tells the CLI that we want to manage one of the FireFly core processes outside the docker-compose stack. For convenience, the CLI will still generate a config file for this process though.

      "},{"location":"contributors/dev_environment_setup/#start-the-stack","title":"Start the stack","text":"

      To start your new stack simply run:

      ff start dev\n

      At a certain point in the startup process, the CLI will pause and wait for up to two minutes for you to start the other FireFly node. There are two different ways you can run the external FireFly core process.

      "},{"location":"contributors/dev_environment_setup/#1-from-another-terminal","title":"1) From another terminal","text":"

      The CLI will print out the command line which can be copied and pasted into another terminal window to run FireFly. This command should be run from the firefly core project directory. Here is an example of the command that the CLI will tell you to run:

      firefly -f ~/.firefly/stacks/dev/runtime/config/firefly_core_0.yml\n

      NOTE: The first time you run FireFly with a fresh database, it will need a directory of database migrations to apply to the empty database. If you run FireFly from the firefly project directory you cloned from GitHub, it will automatically find these and apply them. If you run it from some other directory, you will have to point FireFly to the migrations on your own.

      "},{"location":"contributors/dev_environment_setup/#2-using-an-ide","title":"2) Using an IDE","text":"

      If you named your stack dev there is a launch.json file for Visual Studio code already in the project directory. If you have the project open in Visual Studio Code, you can either press the F5 key to run it, or go to the \"Run and Debug\" view in Visual Studio code, and click \"Run FireFly Core\".

      Now you should have a full FireFly stack up and running, and be able to debug FireFly using your IDE. Happy hacking!

      NOTE: Because firefly-ui is a separate repo, unless you also start a UI dev server for the external FireFly core, the default UI path will not load. This is expected, and if you're just working on FireFly core itself, you don't need to worry about it.`

      "},{"location":"contributors/dev_environment_setup/#set-up-dev-environment-for-other-components","title":"Set up dev environment for other components","text":"

      Refer to Advanced CLI Usage.

      "},{"location":"contributors/docs_setup/","title":"Contributing to Documentation","text":"

      This guide will walk you through setting up your machine for contributing to FireFly documentation. Documentation contributions are extremely valuable. If you discover something is missing in the docs, we would love to include your additions or clarifications to help the next person who has the same question.

      This doc site is generated by a set of Markdown files in the main FireFly repository, under the ./doc-site directory. You can browse the source for the current live site in GitHub here: https://github.com/hyperledger/firefly/tree/main/doc-site

      "},{"location":"contributors/docs_setup/#process-for-updating-documentation","title":"Process for updating documentation","text":"

      The process for updating the documentation is really easy! You'll follow the same basic steps outlined in the same steps outlined in the Contributor's guide. Here are the detailed steps for contributing to the docs:

      1. Fork https://github.com/hyperledger/firefly
      2. Clone your fork locally to your computer
      3. Follow the steps below to view your local copy of the docs in a browser
      4. Make some improvements to the Markdown files
      5. Verify that your changes look they way you want them to in your browser
      6. Create a new git commit with your changes. Be sure to sign-off on your commit by using git commit -s!
      7. Push your changes
      8. Open a Pull Request to incorporate your changes back into the hyperledger/firefly repo

      This FireFly documentation site is based on the Hyperledger documentation template. The template utilizes MkDocs (documentation at mkdocs.org) and the theme Material for MkDocs (documentation at Material for MkDocs). Material adds a number of extra features to MkDocs, and Hyperledger repositories can take advantage of the theme's Insiders capabilities.

      "},{"location":"contributors/docs_setup/#prerequisites","title":"Prerequisites","text":"

      To test the documents and update the published site, the following tools are needed:

      • A Bash shell
      • git
      • Python 3
      • The Material for Mkdocs theme.
      • The Mike MkDocs plugin for publishing versions to gh-pages.
      • Not used locally, but referenced in the mkdocs.yml file and needed for deploying the site to gh-pages.
      "},{"location":"contributors/docs_setup/#git","title":"git","text":"

      git can be installed locally, as described in the Install Git Guide from GitHub.

      "},{"location":"contributors/docs_setup/#python-3","title":"Python 3","text":"

      Python 3 can be installed locally, as described in the Python Getting Started guide.

      "},{"location":"contributors/docs_setup/#virtual-environment","title":"Virtual environment","text":"

      It is recommended to install your Python dependencies in a virtual environment in case you have other conflicting Python installations on your machine. This also removes the need to install these packages globally on your computer.

      cd doc-site\npython3 -m venv venv\nsource venv/bin/activate\n
      "},{"location":"contributors/docs_setup/#mkdocs","title":"Mkdocs","text":"

      The Mkdocs-related items can be installed locally, as described in the Material for Mkdocs installation instructions. The short, case-specific version of those instructions follow:

      pip install -r requirements.txt\n
      "},{"location":"contributors/docs_setup/#verify-setup","title":"Verify Setup","text":"

      To verify your setup, check that you can run mkdocs by running the command mkdocs --help to see the help text.

      "},{"location":"contributors/docs_setup/#useful-mkdocs-commands","title":"Useful MkDocs Commands","text":"

      The commands you will usually use with mkdocs are:

      • mkdocs serve - Start the live-reloading docs server.
      • mkdocs build - Build the documentation site.
      • mkdocs -h - Print help message and exit.
      "},{"location":"contributors/docs_setup/#adding-content","title":"Adding Content","text":"

      The basic process for adding content to the site is:

      • Create a new markdown file under the docs folder
      • Add the new file to the table of contents (nav section in the mkdocs.yml file)

      If you are using this as a template for creating your own documentation, please see the instructions for customization.

      "},{"location":"contributors/docs_setup/#repository-layout","title":"Repository layout","text":"
      mkdocs.yml    # The configuration file.\ndocs/\n    index.md  # The documentation homepage.\n    ...       # Other markdown pages, images and other files.\n
      "},{"location":"contributors/release_guide/","title":"Release Guide","text":"

      This guide will walk you through creating a release.

      "},{"location":"contributors/release_guide/#versioning-scheme","title":"Versioning scheme","text":"

      FireFly follows semantic versioning. For more details on how we determine which version to use please see the Versioning Scheme guide.

      "},{"location":"contributors/release_guide/#the-manifestjson-file","title":"The manifest.json file","text":"

      FireFly has a manifest.json file in the root of the repo. This file contains a list of versions (both tag and sha) for each of the microservices that should be used with this specific commit. If you need FireFly to use a newer version of a microservice listed in this file, you should update the manifest.json file, commit it, and include it in your PR. This will trigger an end-to-end test run, using the specified versions.

      Here is an example of what the manifest.json looks like:

      {\n  \"ethconnect\": {\n    \"image\": \"ghcr.io/hyperledger/firefly-ethconnect\",\n    \"tag\": \"v3.0.4\",\n    \"sha\": \"0b7ce0fb175b5910f401ff576ced809fe6f0b83894277c1cc86a73a2d61c6f41\"\n  },\n  \"fabconnect\": {\n    \"image\": \"ghcr.io/hyperledger/firefly-fabconnect\",\n    \"tag\": \"v0.9.0\",\n    \"sha\": \"a79a4c66b0a2551d5122d019c15c6426e8cdadd6566ce3cbcb36e008fb7861ca\"\n  },\n  \"dataexchange-https\": {\n    \"image\": \"ghcr.io/hyperledger/firefly-dataexchange-https\",\n    \"tag\": \"v0.9.0\",\n    \"sha\": \"0de5b1db891a02871505ba5e0507821416d9fa93c96ccb4b1ba2fac45eb37214\"\n  },\n  \"tokens-erc1155\": {\n    \"image\": \"ghcr.io/hyperledger/firefly-tokens-erc1155\",\n    \"tag\": \"v0.9.0-20211019-01\",\n    \"sha\": \"aabc6c483db408896838329dab5f4b9e3c16d1e9fa9fffdb7e1ff05b7b2bbdd4\"\n  }\n}\n

      NOTE: You can run make manifest in the FireFly core source directory, and a script will run to automatically get the latests non-pre-release version of each of FireFly's microservices. If you need to use a snapshot or pre-release version you should edit manifest.json file manually, as this script will not fetch those versions.

      "},{"location":"contributors/release_guide/#creating-a-new-release","title":"Creating a new release","text":"

      Releases and builds are managed by GitHub. New binaries and/or Docker images will automatically be created when a new release is published. The easiest way to create a release is through the web UI for the repo that you wish to release.

      "},{"location":"contributors/release_guide/#1-navigate-to-the-release-page-for-the-repo","title":"1) Navigate to the release page for the repo","text":""},{"location":"contributors/release_guide/#2-click-the-draft-a-new-release-button","title":"2) Click the Draft a new release button","text":""},{"location":"contributors/release_guide/#3-fill-out-the-form-for-your-release","title":"3) Fill out the form for your release","text":"

      It is recommended to start with the auto-generated release notes. Additional notes can be added as-needed.

      "},{"location":"contributors/release_guide/#automatic-docker-builds","title":"Automatic Docker builds","text":"

      After cutting a new release, a GitHub Action will automatically start a new Docker build, if the repo has a Docker image associated with it. You can check the status of the build by clicking the \"Actions\" tab along the top of the page, for that repo.

      "},{"location":"contributors/version_scheme/","title":"Versioning Scheme","text":"

      This page describes FireFly's versioning scheme

      "},{"location":"contributors/version_scheme/#semantic-versioning","title":"Semantic versioning","text":"

      FireFly follows semantic versioning. In summary, this means:

      Given a version number MAJOR.MINOR.PATCH, increment the:

      • MAJOR version when you make incompatible API changes,
      • MINOR version when you add functionality in a backwards compatible manner, and
      • PATCH version when you make backwards compatible bug fixes.
      • Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

      When creating a new release, the release name and tag should be the semantic version should be prefixed with a v . For example, a certain release name/tag could be v0.9.0.

      "},{"location":"contributors/version_scheme/#pre-release-test-versions","title":"Pre-release test versions","text":"

      For pre-release versions for testing, we append a date and index to the end of the most recently released version. For example, if we needed to create a pre-release based on v0.9.0 and today's date is October 22, 2021, the version name/tag would be: v0.9.0-20211022-01. If for some reason you needed to create another pre-release version in the same day (hey, stuff happens), the name/tag for that one would be v0.9.0-20211022-02.

      "},{"location":"contributors/version_scheme/#candidate-releases","title":"Candidate releases","text":"

      For pre-releases that are candidates to become a new major or minor release, the release name/tag will be based on the release that the candidate will become (as opposed to the test releases above, which are based on the previous release). For example, if the current latest release is v0.9.0 but we want to create an alpha release for 1.0, the release name/tag would be v1.0.0-alpha.1.

      "},{"location":"faqs/","title":"FAQs","text":"

      Find answers to the most commonly asked FireFly questions.

      "},{"location":"faqs/#how-does-firefly-enable-multi-chain-applications","title":"How does FireFly enable multi-chain applications?","text":"

      It's best to think about FireFly as a rich orchestration layer that sits one layer above the blockchain. FireFly helps to abstract away much of the complex blockchain functionality (such as data exchange, private messaging, common token functionality, etc) in a loosely coupled microservice architecture with highly pluggable components. This enables application developers to focus on building innovative Web3 applications.

      There aren't any out of the box bridges to connect two separate chains together, but with a collection of FireFly instances across a consortium, FireFly could help listen for events on Blockchain A and take an action on Blockchain B when certain conditions are met.

      "},{"location":"faqs/#how-do-i-deploy-smart-contracts","title":"\ud83d\udcdc How do I deploy smart contracts?","text":"

      The recommended way to deploy smart contracts on Ethereum chains is by using FireFly's built in API. For a step by step example of how to do this you can refer to the Smart Contract Tutorial for Ethereum based chains.

      For Fabric networks, please refer to the Fabric chaincode lifecycle docs for detailed instructions on how to deploy and manage Fabric chaincode.

      "},{"location":"faqs/#can-i-connect-firefly-to-metamask","title":"\ud83e\udd8a Can I connect FireFly to MetaMask?","text":"

      Yes! Before you set up MetaMask you'll likely want to create some tokens that you can use to send between wallets on your FF network. Go to the tokens tab in your FireFly node's UI, create a token pool, and then mint some tokens. Once you've done this, follow the steps listed here to set up MetaMask on your network.

      "},{"location":"faqs/#connect-with-us-on-discord","title":"\ud83d\ude80 Connect with us on Discord","text":"

      If your question isn't answered here or if you have immediate questions please don't hesitate to reach out to us on Discord in the firefly channel:

      "},{"location":"gettingstarted/","title":"Getting Started","text":"

      If you're new to FireFly, this is the perfect place to start! With the FireFly CLI and the FireFly Sandbox it's really easy to get started building powerful blockchain apps. Just follow along with the steps below and you'll be up and running in no time!

      "},{"location":"gettingstarted/#what-you-will-accomplish-with-this-guide","title":"What you will accomplish with this guide","text":"

      With this easy-to-follow guide, you'll go from \"zero\" to blockchain-hero in the time it takes to drink a single cup of coffee. It will walk you through setting up your machine, all the way through sending your first blockchain transactions using the FireFly Sandbox.

      "},{"location":"gettingstarted/#were-here-to-help","title":"We're here to help!","text":"

      We want to make it as easy as possible for anyone to get started with FireFly, and we don't want anyone to feel like they're stuck. If you're having trouble, or are just curious about what else you can do with FireFly we encourage you to join the Hyperledger Discord server and come chat with us in the #firefly channel.

      "},{"location":"gettingstarted/#get-started-install-the-firefly-cli","title":"Get started: Install the FireFly CLI","text":"

      Now that you've got the FireFly CLI set up on your machine, the next step is to create and start a FireFly stack.

      \u2460 Install the FireFly CLI \u2192

      "},{"location":"gettingstarted/firefly_cli/","title":"Install the FireFly CLI","text":""},{"location":"gettingstarted/firefly_cli/#prerequisites","title":"Prerequisites","text":"

      In order to run the FireFly CLI, you will need a few things installed on your dev machine:

      • Docker
      • Docker Compose
      • openssl
      "},{"location":"gettingstarted/firefly_cli/#linux-users","title":"Linux Users","text":"

      NOTE: For Linux users, it is recommended that you add your user to the docker group so that you do not have to run ff or docker as root or with sudo. For more information about Docker permissions on Linux, please see Docker's documentation on the topic.

      "},{"location":"gettingstarted/firefly_cli/#windows-users","title":"Windows Users","text":"

      NOTE: For Windows users, we recommend that you use Windows Subsystem for Linux 2 (WSL2). Binaries provided for Linux will work in this environment.

      "},{"location":"gettingstarted/firefly_cli/#install-the-cli","title":"Install the CLI","text":"

      There are several ways to install the FireFly CLI. The easiest way to get up and running with the FireFly CLI is to download a pre-compiled binary of the latest release.

      "},{"location":"gettingstarted/firefly_cli/#download-the-package-for-your-os","title":"Download the package for your OS","text":"

      Go to the latest release page and download the package for your OS and CPU architecture.

      "},{"location":"gettingstarted/firefly_cli/#extract-the-binary-and-move-it-to-usrbinlocal","title":"Extract the binary and move it to /usr/bin/local","text":"

      Assuming you downloaded the package from GitHub into your Downloads directory, run the following command:

      sudo tar -zxf ~/Downloads/firefly-cli_*.tar.gz -C /usr/local/bin ff && rm ~/Downloads/firefly-cli_*.tar.gz\n

      If you downloaded the package from GitHub into a different directory, you will need to change the tar command above to wherever the firefly-cli_*.tar.gz file is located.

      "},{"location":"gettingstarted/firefly_cli/#macosusers","title":"macOSUsers","text":"

      NOTE: On recent versions of macOS, default security settings will prevent the FireFly CLI binary from running, because it was downloaded from the internet. You will need to allow the FireFly CLI in System Preferences, before it will run.

      "},{"location":"gettingstarted/firefly_cli/#alternative-installation-method-install-via-go","title":"Alternative installation method: Install via Go","text":"

      If you have a local Go development environment, and you have included ${GOPATH}/bin in your path, you could also use Go to install the FireFly CLI by running:

      go install github.com/hyperledger/firefly-cli/ff@latest\n
      "},{"location":"gettingstarted/firefly_cli/#verify-the-installation","title":"Verify the installation","text":"

      After using either installation method above, you can verify that the CLI is successfully installed by running ff version. This should print the current version like this:

      {\n  \"Version\": \"v0.0.47\",\n  \"License\": \"Apache-2.0\"\n}\n
      "},{"location":"gettingstarted/firefly_cli/#next-steps-start-your-environment","title":"Next steps: Start your environment","text":"

      Now that you've got the FireFly CLI set up on your machine, the next step is to create and start a FireFly stack.

      \u2461 Start your environment \u2192

      "},{"location":"gettingstarted/sandbox/","title":"Use the Sandbox","text":""},{"location":"gettingstarted/sandbox/#previous-steps-start-your-environment","title":"Previous steps: Start your environment","text":"

      If you haven't started a FireFly stack already, please go back to the previous step and read the guide on how to Start your environment.

      \u2190 \u2461 Start your environment

      Now that you have a full network of three Supernodes running on your machine, let's look at the first two components that you will interact with: the FireFly Sandbox and the FireFly Explorer.

      "},{"location":"gettingstarted/sandbox/#video-walkthrough","title":"Video walkthrough","text":"

      This video is a walkthrough of the FireFly Sandbox and FireFly Explorer from the FireFly 1.0 launch webinar. At this point you should be able to follow along and try all these same things on your own machine.

      "},{"location":"gettingstarted/sandbox/#open-the-firefly-sandbox-for-the-first-member","title":"Open the FireFly Sandbox for the first member","text":"

      When you set up your FireFly stack in the previous section, it should have printed some URLs like the following. Open the link in a browser for the `Sandbox UI for member '0'. It should be: http://127.0.0.1:5109

      ff start dev\nthis will take a few seconds longer since this is the first time you're running this stack...\ndone\n\nWeb UI for member '0': http://127.0.0.1:5000/ui\nSandbox UI for member '0': http://127.0.0.1:5109\n\nWeb UI for member '1': http://127.0.0.1:5001/ui\nSandbox UI for member '1': http://127.0.0.1:5209\n\nWeb UI for member '2': http://127.0.0.1:5002/ui\nSandbox UI for member '2': http://127.0.0.1:5309\n\n\nTo see logs for your stack run:\n\nff logs dev\n
      "},{"location":"gettingstarted/sandbox/#sandbox-layout","title":"Sandbox Layout","text":"

      The Sandbox is split up into three columns:

      "},{"location":"gettingstarted/sandbox/#left-column-prepare-your-request","title":"Left column: Prepare your request","text":"

      On the left-hand side of the page, you can fill out simple form fields to construct messages and more. Some tabs have more types of requests on them in sections that can be expanded or collapsed. Across the top of this column there are three tabs that switch between the three main sets of functionality in the Sandbox. The next three sections of this guide will walk you through each one of these.

      The first tab we will explore is the MESSAGING tab. This is where we can send broadcasts and private messages.

      "},{"location":"gettingstarted/sandbox/#middle-column-preview-server-code-and-see-response","title":"Middle column: Preview server code and see response","text":"

      As you type in the form on the left side of the page, you may notice that the source code in the top middle of the page updates automatically. If you were building a backend app, this is an example of code that your app could use to call the FireFly SDK. The middle column also contains a RUN button to actually send the request.

      "},{"location":"gettingstarted/sandbox/#right-column-events-received-on-the-websocket","title":"Right column: Events received on the WebSocket","text":"

      On the right-hand side of the page you can see a stream of events being received on a WebSocket connection that the backend has open to FireFly. For example, as you make requests to send messages, you can see when the messages are asynchronously confirmed.

      "},{"location":"gettingstarted/sandbox/#messages","title":"Messages","text":"

      The Messages tab is where we can send broadcast and private messages to other members and nodes in the FireFly network. Messages can be a string, any arbitrary JSON object, or a binary file. For more details, please see the tutorial on Broadcasting data and Privately sending data.

      "},{"location":"gettingstarted/sandbox/#things-to-try-out","title":"Things to try out","text":"
      • Send a broadcast message and view the data payload in every member's FireFly Explorer
      • Send a private message to one member, and verify that the data payload is not visible in the third member's FireFly Explorer
      • Send an image file and download it from another member's FireFly Explorer
      "},{"location":"gettingstarted/sandbox/#tokens","title":"Tokens","text":"

      The Tokens tab is where you can create token pools, and mint, burn, or transfer tokens. This works with both fungible and non-fungible tokens (NFTs). For more details, please see the Tokens tutorials.

      "},{"location":"gettingstarted/sandbox/#things-to-try-out_1","title":"Things to try out","text":"
      • Create a fungible token pool and mint some tokens and view your balance in the FireFly Explorer
      • Transfer some amount of those tokens to another member and view the transfer transaction in the FireFly Explorer
      • Burn some amount of tokens and view the transaction and updated balances in the FireFly Explorer
      • Create a non-fungible token pool and mint some NFTs
      • Transfer an NFT to another member and verify the account balances in the FireFly Explorer
      "},{"location":"gettingstarted/sandbox/#contracts","title":"Contracts","text":"

      The Contracts section of the Sandbox lets you interact with custom smart contracts, right from your web browser! The Sandbox also provides some helpful tips on deploying your smart contract to the blockchain. For more details, please see the tutorial on Working with custom smart contracts.

      "},{"location":"gettingstarted/sandbox/#things-to-try-out_2","title":"Things to try out","text":"
      • Create a contract interface and API, then view the Swagger UI for your new API
      • Create an event listener
      • Use the Swagger UI to call a smart contract function that emits an event. Verify that the event is received in the Sandbox and shows up in the FireFly Explorer.
      "},{"location":"gettingstarted/sandbox/#go-forth-and-build","title":"Go forth and build!","text":"

      At this point you should have a pretty good understanding of some of the major features of Hyperledger FireFly. Now, using what you've learned, you can go and build your own Web3 app! Don't forget to join the Hyperledger Discord server and come chat with us in the #firefly channel.

      "},{"location":"gettingstarted/setup_env/","title":"Start your environment","text":""},{"location":"gettingstarted/setup_env/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the previous step and read the guide on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      Now that you have the FireFly CLI installed, you are ready to run some Supernodes on your machine!

      "},{"location":"gettingstarted/setup_env/#a-firefly-stack","title":"A FireFly Stack","text":"

      A FireFly stack is a collection of Supernodes with networking and configuration that are designed to work together on a single development machine. A stack has multiple members (also referred to organizations). Each member has their own Supernode within the stack. This allows developers to build and test data flows with a mix of public and private data between various parties, all within a single development environment.

      The stack also contains an instance of the FireFly Sandbox for each member. This is an example of an end-user application that uses FireFly's API. It has a backend and a frontend which are designed to walk developers through the features of FireFly, and provides code snippets as examples of how to build those features into their own application. The next section in this guide will walk you through using the Sandbox.

      "},{"location":"gettingstarted/setup_env/#system-resources","title":"System Resources","text":"

      The FireFly stack will run in a docker-compose project. For systems that run Docker containers inside a virtual machine, like macOS, you need to make sure that you've allocated enough memory to the Docker virtual machine. We recommend allocating 1GB per member. In this case, we're going to set up a stack with 3 members, so please make sure you have at least 3 GB of RAM allocated in your Docker Desktop settings.

      "},{"location":"gettingstarted/setup_env/#creating-a-new-stack","title":"Creating a new stack","text":"

      It's really easy to create a new FireFly stack. The ff init command can create a new stack for you, and will prompt you for a few details such as the name, and how many members you want in your stack.

      To create an Ethereum based stack, run:

      ff init ethereum\n

      To create an Fabric based stack, run:

      ff init fabric\n

      Choose a stack name. For this guide, I will choose the name dev, but you can pick whatever you want:

      stack name: dev\n

      Chose the number of members for your stack. For this guide, we should pick 3 members, so we can try out both public and private messaging use cases:

      number of members: 3\n

      "},{"location":"gettingstarted/setup_env/#stack-initialization-options","title":"Stack initialization options","text":"

      There are quite a few options that you can choose from when creating a new stack. For now, we'll just stick with the defaults. To see the full list of Ethereum options, just run ff init ethereum --help or to see the full list of Fabric options run ff init fabric --help

      ff init ethereum --help\nCreate a new FireFly local dev stack using an Ethereum blockchain\n\nUsage:\n  ff init ethereum [stack_name] [member_count] [flags]\n\nFlags:\n      --block-period int              Block period in seconds. Default is variable based on selected blockchain provider. (default -1)\n  -c, --blockchain-connector string   Blockchain connector to use. Options are: [evmconnect ethconnect] (default \"evmconnect\")\n  -n, --blockchain-node string        Blockchain node type to use. Options are: [geth besu remote-rpc] (default \"geth\")\n      --chain-id int                  The chain ID - also used as the network ID (default 2021)\n      --contract-address string       Do not automatically deploy a contract, instead use a pre-configured address\n  -h, --help                          help for ethereum\n      --remote-node-url string        For cases where the node is pre-existing and running remotely\n\nGlobal Flags:\n      --ansi string                   control when to print ANSI control characters (\"never\"|\"always\"|\"auto\") (default \"auto\")\n      --channel string                Select the FireFly release channel to use. Options are: [stable head alpha beta rc] (default \"stable\")\n      --connector-config string       The path to a yaml file containing extra config for the blockchain connector\n      --core-config string            The path to a yaml file containing extra config for FireFly Core\n  -d, --database string               Database type to use. Options are: [sqlite3 postgres] (default \"sqlite3\")\n  -e, --external int                  Manage a number of FireFly core processes outside of the docker-compose stack - useful for development and debugging\n  -p, --firefly-base-port int         Mapped port base of FireFly core API (1 added for each member) (default 5000)\n      --ipfs-mode string              Set the mode in which IFPS operates. Options are: [private public] (default \"private\")\n  -m, --manifest string               Path to a manifest.json file containing the versions of each FireFly microservice to use. Overrides the --release flag.\n      --multiparty                    Enable or disable multiparty mode (default true)\n      --node-name stringArray         Node name\n      --org-name stringArray          Organization name\n      --prometheus-enabled            Enables Prometheus metrics exposition and aggregation to a shared Prometheus server\n      --prometheus-port int           Port for the shared Prometheus server (default 9090)\n      --prompt-names                  Prompt for org and node names instead of using the defaults\n  -r, --release string                Select the FireFly release version to use. Options are: [stable head alpha beta rc] (default \"latest\")\n      --request-timeout int           Custom request timeout (in seconds) - useful for registration to public chains\n      --sandbox-enabled               Enables the FireFly Sandbox to be started with your FireFly stack (default true)\n  -s, --services-base-port int        Mapped port base of services (100 added for each member) (default 5100)\n  -t, --token-providers stringArray   Token providers to use. Options are: [none erc1155 erc20_erc721] (default [erc20_erc721])\n  -v, --verbose                       verbose log output\n
      "},{"location":"gettingstarted/setup_env/#start-your-stack","title":"Start your stack","text":"

      To start your stack simply run:

      ff start dev\n

      This may take a minute or two and in the background the FireFly CLI will do the following for you:

      • Download Docker images for all of the components of the Supernode
      • Initialize a new blockchain and blockchain node running inside a container
      • Set up configuration between all the components
      • Deploy FireFly's BatchPin smart contract
      • Deploy an ERC-1155 token smart contract
      • Register an identity for each member and node

      NOTE: For macOS users, the default port (5000) is already in-use by ControlCe service (AirPlay Receiver). You can either disable this service in your environment, or use a different port when creating your stack (e.g. ff init dev -p 8000)

      After your stack finishes starting it will print out the links to each member's UI and the Sandbox for that node:

      ff start dev\nthis will take a few seconds longer since this is the first time you're running this stack...\ndone\n\nWeb UI for member '0': http://127.0.0.1:5000/ui\nSandbox UI for member '0': http://127.0.0.1:5109\n\nWeb UI for member '1': http://127.0.0.1:5001/ui\nSandbox UI for member '1': http://127.0.0.1:5209\n\nWeb UI for member '2': http://127.0.0.1:5002/ui\nSandbox UI for member '2': http://127.0.0.1:5309\n\n\nTo see logs for your stack run:\n\nff logs dev\n
      "},{"location":"gettingstarted/setup_env/#next-steps-use-in-the-sandbox","title":"Next steps: Use in the Sandbox","text":"

      Now that you have some Supernodes running, it's time to start playing: in the Sandbox!

      \u2462 Use the Sandbox \u2192

      "},{"location":"overview/gateway_features/","title":"Web3 Gateway Features","text":"

      Web3 Gateway features allow your FireFly Supernode to connect to any blockchain ecosystem, public or private. When a chain is connected, the FireFly Supernode may invoke custom smart contracts, interact with tokens, and monitor transactions. A single FireFly Supernode is able to have multiple namespaces, or isolated environments, where each namespace is a connection to a different chain.

      "},{"location":"overview/gateway_features/#transfer-tokenized-value","title":"Transfer tokenized value","text":"

      The Digital Asset Features allow you to connect to token economies, in multiple blockchains, using the same infrastructure and signing keys.

      The complexities of how each token works, and how each blockchain works, are abstracted away from you by the Hyperledger FireFly Connector Framework.

      All of the layers of plumbing required to execute a transaction exactly once on a blockchain, and tracking it through to completion, are part of the stack. Deploy and configure them once in your Web3 gateway, and use them for multiple use cases in your enterprise.

      "},{"location":"overview/gateway_features/#invoke-any-other-type-of-smart-contract","title":"Invoke any other type of smart contract","text":"

      The API Generation features of Hyperledger FireFly, allow you to generate a convenient and reliable REST API for any smart contract logic.

      Then you just invoke that contract like you would any other API, with all the features you would expect like an OpenAPI 3.0 specification for the API, and UI explorer.

      The same reliable transaction submission framework is used as for token transfers, and you can use Hyperledger FireFly as a high volume staging post for those transactions.

      • Handles peaks in workload, drip-feeding transactions onto the chain
      • Handles large batch submissions, tracking
      • Manages nonce assignment at high volume
      • Idempotent APIs assuring that business transactions are submitted exactly once

      For EVM based chains, these features were significantly enhanced in the new EVMConnect connector introduced in v1.1 of FireFly (superseding EthConnect).

      "},{"location":"overview/gateway_features/#index-data-from-the-blockchain","title":"Index data from the blockchain","text":"

      Blockchain nodes are not designed for efficient querying of historical information. Instead their core function is to provide an ordered ledger of actions+events, along with a consistent world state at any point in time.

      This means that almost all user experiences and business APIs need a separate data store, that provides an fast indexed view of the history and current state of the chain.

      As an example, you've probably looked at a Block Explorer for a public blockchain on the web. Well, you weren't looking directly at the blockchain node. You were querying an off-chain indexed database, of all the blocks and transactions on that chain. An indexer behind the scenes was listening to the blockchain and synchronizing the off-chain state.

      Hyperledger FireFly has a built-in indexer for tokens, that maps every token mint/burn/transfer/approve operation that happens on the the blockchain into the database for fast query. You just specify which tokens you're interested in, and FireFly takes care of the rest.

      Additionally, FireFly does the heavy lifting part of indexing for all other types of smart contract event that might occur. It scrapes the blockchain for the events, formats them into easy to consume JSON, and reliably delivers them to your application.

      So your application just needs a small bit of code to take those payloads, and insert them into the database with the right database indexes you need to query your data by.

      "},{"location":"overview/gateway_features/#reliably-trigger-events-in-your-applications","title":"Reliably trigger events in your applications","text":"

      One of the most important universal rules about Web3 applications, is that they are event-driven.

      No one party in the system can chose to change the state, instead they must submit transactions that get ordered against everyone else's transactions, and only once confirmed through the consensus algorithm are they actioned.

      This means the integration into your application and core systems needs to be event-driven too.

      The same features that support reliable indexing of the blockchain data, allow reliable triggering of application code, business workflows, and core system integrations.

      Learn more about the FireFly Event Bus

      "},{"location":"overview/gateway_features/#manage-decentralized-data-nfts-etc","title":"Manage decentralized data (NFTs etc.)","text":"

      Your blockchain transactions are likely to refer to data that is stored off-chain.

      One common example is non-fungible-token (NFT) metadata, images and documents. These are not a good fit for storing directly in any blockchain ledger, so complimentary decentralized technologies like the InterPlanetary File System (IPFS) are used to make the data widely available and resilient outside of the blockchain itself.

      As a publisher or consumer of such metadata from decentralized storage, you need to be confident you have your own copy safe. So just like with the blockchain data, Hyperledger FireFly can act as a staging post for this data.

      Structured JSON data can be stored, uploaded and downloaded from the FireFly database.

      Large image/document/video payloads are handled by the pluggable Data Exchange microservice, which allows you to attach local or cloud storage to manage your copy of the data.

      FireFly then provides a standardized API to allow publishing of this data. So configuring a reliable gateway to the decentralized storage tier can be done once, and then accessed from your applications via a single Web3 Gateway.

      "},{"location":"overview/gateway_features/#maintain-a-private-address-book","title":"Maintain a private address book","text":"

      You need to manage your signing keys, and know the signing keys of others you are transacting with. A blockchain address like 0x0742e81393ee79C768e84cF57F1bF314F0f31ECe is not very helpful for this.

      So Hyperledger FireFly provides a pluggable identity system, built on the foundation of the Decentralized IDentifier (DID). When in Web3 Gateway Mode these identities are not shared or published, and simply provide you a local address book.

      You can associate profile information with the identities, for example correlating them to the identifiers in your own core systems - such as an Identity and Access Management (IAM) system, or Know Your Customer (KYC) database.

      Learn more about Hyperledger FireFly Identities

      "},{"location":"overview/public_vs_permissioned/","title":"Public and Permissioned Blockchain","text":""},{"location":"overview/public_vs_permissioned/#public-and-permissioned-blockchains","title":"Public and Permissioned Blockchains","text":"

      A separate choice to the technology for your blockchain, is what combination of blockchain ecosystems you will integrate with.

      There are a huge variety of options, and increasingly you might find yourself integrating with multiple ecosystems in your solutions.

      A rough (and incomplete) high level classification of the blockchains available is as follows:

      • Layer 1 public blockchains
      • This is where most token ecosystems are rooted
      • Layer 2 public scaling solutions backed by a Layer 1 blockchain
      • These are increasing where transaction execution takes place that needs to be reflected eventually back to a Layer 1 blockchain (due to cost/congestion in the Layer 1 chains)
      • Permissioned side-chains
      • Historically this has been where the majority of production adoption of enterprise blockchain has focussed, due to the predictable cost, performance, and ability to manage the validator set and boundary API security alongside a business network governance policy
      • These might have their state check-pointed/rolled-up to a Layer 2 or Layer 1 chain

      The lines are blurring between these categorizations as the technologies and ecosystems evolve.

      "},{"location":"overview/public_vs_permissioned/#public-blockchain-variations","title":"Public blockchain variations","text":"

      For the public Layer 1 and 2 solutions, there are too many subclassifications to go into in detail here:

      • Whether ecosystems supports custom smart contract execution (EVM based is most common, where contracts are supported)
      • What types of token standards are supported, or other chain specific embedded smart contracts
      • Whether the chain follows an unspent transaction output (UTXO) or Account model
      • How value is bridged in-to / out-of the ecosystem
      • How the validator set of the chain is established - most common is Proof of Stake (PoS)
      • How data availability is maintained - to check the working of the validators ensure the historical state is not lost
      • The consensus algorithm, and how it interacts with the consensus of other blockchains
      • How state in a Layer 2 is provable in a parent Layer 1 chain (rollup technologies etc.)
      "},{"location":"overview/public_vs_permissioned/#common-public-considerations","title":"Common public considerations","text":"

      The thing most consistent across public blockchain technologies, is that the technical decisions are backed by token economics.

      Put simply, creating a system where it's more financially rewarding to behave honestly, than it is to subvert and cheat the system.

      This means that participation costs, and that the mechanisms needed to reliably get your transactions into these systems are complex. Also that the time it might take to get a transaction onto the chain can be much longer than for a permissioned blockchain, with the potential to have to make a number of adjustments/resubmissions.

      The choice of whether to run your own node, or use a managed API, to access these blockchain ecosystems is also a factor in the behavior of the transaction submission and event streaming.

      "},{"location":"overview/public_vs_permissioned/#firefly-architecture-for-public-chains","title":"FireFly architecture for public chains","text":"

      One of the fastest evolving aspects of the Hyperledger FireFly ecosystem, is how it facilitates enterprises to participate in these.

      The architecture is summarized as follows:

      • New FireFly Transaction Manager runtime
      • Operates as a microservice extension of the FireFly Core
      • Uses the operation resource within FireFly Core to store and update state
      • Runs as a singleton and is responsible for nonce assignment
      • Takes as much heavy lifting away from blockchain specific connectors as possible
      • Lightweight FireFly Connector API (ffcapi)
      • Simple synchronous RPC operations that map to the most common operations supported across public blockchain technologies
      • Examples:
        • Find the next nonce for a given signing key
        • Serialize a transaction from a set of JSON inputs and an interface definition
        • Submit an un-signed transaction with a given gas price to the blockchain, via a signing wallet
        • Establish a new block listener
        • Poll for new blocks
        • Establish a new event log listener
        • Poll for new events
      • Pluggable Policy Engine
      • Invoked to make decisions on transaction submission
      • Responsible for gas price calculation
      • Able to intervene and adjust the characteristics of signing/submission
      • OSS reference implementation provided with Gas Station REST API integration
      • Confirmation Manager
      • Extracted from the Ethconnect codebase
      • Coupled to both transaction submission and event confirmation
      • Embeds an efficient block cache
      • Event Streams
      • Extracted from the Ethconnect codebase
      • Checkpoint restart based reliable at-least-once delivery of events
      • WebSockets interface upstream to FireFly Core

      This evolution involves a significant refactoring of components used for production solutions in the FireFly Ethconnect microservice since mid 2018. This was summarized in firefly-ethconnect#149, and cumulated in the creation of a new repository in 2022.

      You can follow the progress and contribute in this repo: https://github.com/hyperledger/firefly-transaction-manager

      "},{"location":"overview/supernode_concept/","title":"Introduction to Hyperledger FireFly","text":""},{"location":"overview/supernode_concept/#your-gateway-to-web3-technologies","title":"Your Gateway to Web3 Technologies","text":"

      Hyperledger FireFly is an organization's gateway to Web3, including all the blockchain ecosystems that they participate in.

      Multiple blockchains, multiple token economies, and multiple business networks.

      FireFly is not another blockchain implementation, rather it is a pluggable API Orchestration and Data layer, integrating into all of the different types of decentralized technologies that exist in Web3:

      • Public Blockchains, Layer 2 scaling solutions, Side chains, and App chains
      • Permissioned Blockchains and Distributed Ledger Technologies (DLTs)
      • Decentralized storage solutions
      • Token ecosystems and standards
      • Smart Contracts, DeFi solutions and DAOs
      • Private off-chain encrypted communication rails
      • Advanced cryptography solutions
      • Identity frameworks
      "},{"location":"overview/supernode_concept/#an-open-source-supernode-for-web3-apps","title":"An Open Source Supernode for Web3 Apps","text":"

      Hyperledger FireFly is a toolkit for building and connecting new full-stack decentralized applications (dapps), as well as integrating your existing core systems to the world of Web3.

      It has a runtime engine, and it provides a data layer that synchronizes state from the blockchain and other Web3 technologies. It exposes an API and Event Bus to your business logic, that is reliable, developer friendly and ready for enterprise use.

      We call this a Supernode - it sits between the application and the underlying infrastructure nodes, providing layers of additional function.

      The concept of a Supernode has evolved over the last decade of enterprise blockchain projects, as developers realized that they need much more than a blockchain node for their projects to be successful.

      Without a technology like Hyperledger FireFly, the application layer becomes extremely complex and fragile. Tens of thousands of lines of complex low-level \"plumbing\" / \"middleware\" code is required to integrate the web3 infrastructure into the application. This code provides zero unique business value to the solution, but can consume a huge proportion of the engineering budget and maintenance cost if built bespoke within a solution.

      "},{"location":"overview/usage_patterns/","title":"Usage Patterns","text":"

      There are two modes of usage for Hyperledger Firefly: Web3 Gateway and Multiparty

      A single runtime can operate in both of these modes, using different namespaces.

      "},{"location":"overview/usage_patterns/#web3-gateway-mode","title":"Web3 Gateway Mode","text":"

      Web3 Gateway mode lets you interact with any Web3 application, regardless of whether Hyperledger FireFly is being used by other members of your business network.

      In this mode you can:

      • Transfer tokenized value
      • Invoke any other type of smart contract
      • Index data from the blockchain
      • Reliably trigger events in your applications and back-office core systems
      • Manage decentralized data (NFTs etc.)
      • Use a private address book to manage signing identities and relationships
      • ... and much more

      Learn more about Web3 Gateway Mode.

      "},{"location":"overview/usage_patterns/#multiparty-mode","title":"Multiparty Mode","text":"

      Multiparty mode is used to build multi-party systems, with a common application runtime deployed by each enterprise participant.

      This allows sophisticated applications to be built, that all use the pluggable APIs of Hyperledger FireFly to achieve end-to-end business value in an enterprise context.

      In this mode you can do everything you could do in Web3 Gateway mode, plus:

      • Share and enforce common data formats
      • Exchange data privately, via an encrypted data bus
      • Structured JSON data payloads
      • Large documents
      • Coordinate on-chain and off-chain data exchange
      • Private data
      • Broadcast data
      • Mask on-chain activities using hashes
      • Use a shared address book to manage signing identities and relationships
      • ... and much more

      Learn more about Multiparty Mode.

      "},{"location":"overview/key_components/","title":"Key Features","text":"

      Hyperledger FireFly provides a rich suite of features for building new applications, and connecting existing Web3 ecosystems to your business. In this section we introduce each core pillar of functionality.

      "},{"location":"overview/key_components/apps/","title":"Apps","text":""},{"location":"overview/key_components/apps/#apps","title":"Apps","text":"

      Rapidly accelerating development of applications is a key feature of Hyperledger FireFly.

      The toolkit is designed to support the full-stack of applications in the enterprise Web3 ecosystem, not just the Smart Contract layer.

      Business logic APIs, back-office system integrations, and web/mobile user experiences are just as important to the overall Web3 use case.

      These layers require a different developer skill-set to the on-chain Smart Contracts, and those developers must have the tools they need to work efficiently.

      "},{"location":"overview/key_components/apps/#api-gateway","title":"API Gateway","text":"

      FireFly provides APIs that:

      • Are fast and efficient
      • Have rich query support
      • Give deterministic outcomes and clear instructions for safe use
      • Integrate with your security frameworks like OAuth 2.0 / OpenID Connect single sign-on
      • Provide Open API 3 / Swagger definitions
      • Come with code SDKs, with rich type information
      • Conform as closely as possible to the principles of REST
      • Do not pretend to be RESTful in cases when it is impossible to be

      Learn more about deploying APIs for custom smart contracts in this tutorial

      "},{"location":"overview/key_components/apps/#event-streams","title":"Event Streams","text":"

      The reality is that the only programming paradigm that works for a decentralized solutions, is an event-driven one.

      All blockchain technologies are for this reason event-driven programming interfaces at their core.

      In an overall solution, those on-chain events must be coordinated with off-chain private data transfers, and existing core-systems / human workflows.

      This means great event support is a must:

      • Convenient WebSocket APIs that work for your microservices development stack
      • Support for Webhooks to integrated serverless functions
      • Integration with your core enterprise message queue (MQ) or enterprise service bus (ESB)
      • At-least-once delivery assurance, with simple instructions at the application layer

      Learn all about the Hyperledger FireFly Event Bus, and event-driven application architecture, in this reference section

      "},{"location":"overview/key_components/apps/#api-generation","title":"API Generation","text":"

      The blockchain is going to be at the heart of your Web3 project. While usually small in overall surface area compared to the lines of code in the traditional application tiers, this kernel of mission-critical code is what makes your solution transformational compared to a centralized / Web 2.0 solution.

      Whether the smart contract is hand crafted for your project, an existing contract on a public blockchain, or a built-in pattern of a framework like FireFly - it must be interacted with correctly.

      So there can be no room for misinterpretation in the hand-off between the blockchain Smart Contract specialist, familiar with EVM contracts in Solidity/Vyper, Fabric chaincode (or maybe even raw block transition logic in Rust or Go), and the backend / full-stack application developer / core-system integrator.

      Well documented APIs are the modern norm for this, and it is no different for blockchain.

      This means Hyperledger FireFly provides:

      • Generating the interface for methods and events on your smart contract
      • Providing robust transaction submission, and event streaming
      • Publishing the API, version, and location, of your smart contracts to the network
      "},{"location":"overview/key_components/connectors/","title":"Connector Framework","text":""},{"location":"overview/key_components/connectors/#pluggable-microservices-architecture","title":"Pluggable Microservices Architecture","text":"

      The ability for every component to be pluggable is at the core of Hyperledger FireFly.

      A microservices approach is used, combining code plug-points in the core runtime, with API extensibility to remote runtimes implemented in a variety of programming languages.

      "},{"location":"overview/key_components/connectors/#extension-points","title":"Extension points","text":"
      • Blockchain - a rich framework for extensibility to any blockchain / digital ledger technology (DLT)
      • Tokens - mapping token standards and governance models to a common data model
      • Shared storage - supporting permissioned and public distributed storage technologies
      • Data exchange - private local/storage and encrypted transfer of data
      • Identity - flexibility for resolving identities via Decentralized IDentifier (DID)
      • Persistence - the local private database

      Learn more about the plugin architecture here

      "},{"location":"overview/key_components/connectors/#blockchain-connector-framework","title":"Blockchain Connector Framework","text":"

      The most advanced extension point is for the blockchain layer, where multiple layers of extensibility are provided to support the programming models, and behaviors of different blockchain technologies.

      This framework has been proven with technologies as different as EVM based Layer 2 Ethereum Scaling solutions like Polygon, all the way to permissioned Hyperledger Fabric networks.

      Check out instructions to connect to a list of remote blockchain networks here.

      Find out more about the Blockchain Connector Framework here.

      "},{"location":"overview/key_components/digital_assets/","title":"Digital Assets","text":""},{"location":"overview/key_components/digital_assets/#digital-asset-features","title":"Digital asset features","text":"

      The modelling, transfer and management of digital assets is the core programming foundation of blockchain.

      Yet out of the box, raw blockchains designed to efficiently manage these assets in large ecosystems, do not come with all the building blocks needed by applications.

      "},{"location":"overview/key_components/digital_assets/#token-api","title":"Token API","text":"

      Token standards have been evolving in the industry through standards like ERC-20/ERC-721, and the Web3 signing wallets that support these.

      Hyperledger FireFly bring this same standardization to the application tier. Providing APIs that work across token standards, and blockchain implementations, providing consistent and interoperable support.

      This means one application or set of back-end systems, can integrate with multiple blockchains, and different token implementations.

      Pluggability here is key, so that the rules of governance of each digital asset ecosystem can be exposed and enforced. Whether tokens are fungible, non-fungible, or some hybrid in between.

      Learn more about token standards for fungible tokens, and non-fungible tokens (NFTs) in this set of tutorials

      "},{"location":"overview/key_components/digital_assets/#transfer-history-audit-trail","title":"Transfer history / audit trail","text":"

      For efficiency blockchains do not provide a direct ability to query historical transaction information.

      Depending on the blockchain technology, even the current balance of your wallet can be complex to calculate - particularly for blockchain technologies based on an Unspent Transaction Output (UTXO) model.

      So off-chain indexing of transaction history is an absolute must-have for any digital asset solution.

      Hyperledger FireFly provides:

      • Automatic indexing of tokens, whether existing or newly deployed
      • Off-chain indexing of fungible and non-fungible asset transfers & balances
      • Off-chain indexing of approvals
      • Integration with digital identity
      • Full extensibility across both token standards and blockchain technologies
      "},{"location":"overview/key_components/digital_assets/#wallets","title":"Wallets","text":"

      Wallet and signing-key management is a critical requirement for any blockchain solution, particularly those involving the transfer of digital assets between wallets.

      Hyperledger FireFly provides you the ability to:

      • Integrate multiple different signing/custody solutions in a proven way
      • Manage the mapping of off-chain identities to on-chain signing identities
      • Provide a plug-point for policy-based decision making on high value transactions
      • Manage connections to multiple different blockchain solutions
      "},{"location":"overview/key_components/flows/","title":"Flows","text":""},{"location":"overview/key_components/flows/#data-flow","title":"Data flow","text":"

      The reality of most Web3 scenarios is that only a small part of the overall use-case can be represented inside the blockchain or distributed ledger technology.

      Some additional data flow is always required. This does not diminish the value of executing the kernel of the logic within the blockchain itself.

      Hyperledger FireFly embraces this reality, and allows an organization to keep track of the relationship between the off-chain data flow, and the on-chain transactions.

      Let's look at a few common examples:

      "},{"location":"overview/key_components/flows/#digital-asset-transfers","title":"Digital Asset Transfers","text":"

      Examples of common data flows performed off-chain, include Know Your Customer (KYC) and Anti Money Laundering (AML) checks that need to be performed and validated before participating in transactions.

      There might also be document management and business transaction flows required to verify the conditions are correct to digitally settle a transaction. Have the goods been delivered? Are the contracts in place?

      In regulated enterprise scenarios it is common to see a 10-to-1 difference in the number of steps performed off-chain to complete a business transaction, vs. the number of steps performed on-chain.

      These off-chain data flows might be coordinated with on-chain smart contracts that lock assets in digital escrow until the off-chain steps are completed by each party, and protect each party while the steps are being completed.

      A common form of digital escrow is a Hashed Timelock Contract (HTLC).

      "},{"location":"overview/key_components/flows/#non-fungible-tokens-nfts-and-hash-pinning","title":"Non-fungible Tokens (NFTs) and hash-pinning","text":"

      The data associated with an NFT might be as simple as a JSON document pointing at an interesting piece of artwork, or as complex a set of high resolution scans / authenticity documents representing a digital twin of a real world object.

      Here the concept of a hash pinning is used - allowing anyone who has a copy of the original data to recreate the hash that is stored in the on-chain record.

      With even the simplest NFT the business data is not stored on-chain, so simple data flow is always required to publish/download the off-chain data.

      The data might be published publicly for anyone to download, or it might be sensitive and require a detailed permissioning flow to obtain it from a current holder of that data.

      "},{"location":"overview/key_components/flows/#dynamic-nfts-and-business-transaction-flow","title":"Dynamic NFTs and Business Transaction Flow","text":"

      In an enterprise context, an NFT might have a dynamic ever-evolving trail of business transaction data associated with it. Different parties might have different views of that business data, based on their participation in the business transactions associated with it.

      Here the NFT becomes a like a foreign key integrated across the core systems of a set of enterprises working together in a set of business transactions.

      The data itself needs to be downloaded, retained, processed and rendered. Probably integrated to systems, acted upon, and used in multiple exchanges between companies on different blockchains, or off-chain.

      The business process is accelerated through this Enterprise NFT on the blockchain - as all parties have matched or bound their own private data store to that NFT. This means they are confident to be executing a business transaction against the same person or thing in the world.

      "},{"location":"overview/key_components/flows/#data-and-transaction-flow-patterns","title":"Data and Transaction Flow patterns","text":"

      Hyperledger FireFly provides the raw tools for building data and transaction flow patterns, such as storing, hashing and transferring data. It provides the event bus to trigger off-chain applications and integration to participate in the flows.

      It also provides the higher level flow capabilities that are needed for multiple parties to build sophisticated transaction flows together, massively simplifying the application logic required:

      • Coordinating the transfer of data off-chain with a blockchain sequencing transaction
      • Batching for high throughput transfer via the blockchain and distributed storage technologies
      • Managing privacy groups between parties involved in a business transaction
      • Masking the relationship between blockchain transactions, for sensitive data

      Learn more in Multiparty Process Flows

      "},{"location":"overview/key_components/orchestration_engine/","title":"Orchestration Engine","text":""},{"location":"overview/key_components/orchestration_engine/#firefly-core","title":"FireFly Core","text":"

      At the core of Hyperledger FireFly is an event-driven engine that routes, indexed, aggregates, and sequences data to and from the blockchain, and other connectors.

      "},{"location":"overview/key_components/orchestration_engine/#data-layer","title":"Data Layer","text":"

      Your own private view of the each network you connect:

      • Indexes of all tokens and NFTs that you transact with
      • A consistent view across multiple blockchains
      • High performance rich query of transaction and data audit trail
      • Private data you have received from other parties
      • Local copies of data you have download from IPFS or other shared storage tech
      "},{"location":"overview/key_components/orchestration_engine/#event-bus","title":"Event Bus","text":"

      Whether a few dozen companies in a private blockchain consortium, or millions of users connected to a public blockchain network - one thing is always true:

      Decentralized applications are event-driven.

      In an enterprise context, you need to think not only about how those events are being handled and made consistent within the blockchain layer, but also how those events are being processed and integrated to your core systems.

      FireFly provides you with the reliable streams of events you need, as well as the interfaces to subscribe to those events and integrate them into your core systems.

      • Token transfer events, across multiple blockchains, and varied asset types
      • Custom smart contract events
      • Correlated on-chain and off-chain data events

      Learn more about the event bus and event-driven programming in this reference document

      "},{"location":"overview/key_components/security/","title":"Security","text":""},{"location":"overview/key_components/security/#api-security","title":"API Security","text":"

      Hyperledger FireFly provides a pluggable infrastructure for authenticating API requests.

      Each namespace can be configured with a different authentication plugin, such that different teams can have different access to resources on the same FireFly server.

      A reference plugin implementation is provided for HTTP Basic Auth, combined with a htpasswd verification of passwords with a bcrypt encoding.

      See this config section for details, and the reference implementation in Github

      Pre-packaged vendor extensions to Hyperledger FireFly are known to be available, addressing more comprehensive role-based access control (RBAC) and JWT/OAuth based security models.

      "},{"location":"overview/key_components/security/#data-partitioning-and-tenancy","title":"Data Partitioning and Tenancy","text":"

      Namespaces also provide a data isolation system for different applications / teams / tenants sharing a Hyperledger FireFly node.

      Data is partitioned within the FireFly database by namespace. It is also possible to increase the separation between namespaces, by using separate database configurations. For example to different databases or table spaces within a single database server, or even to different database servers.

      "},{"location":"overview/key_components/security/#private-data-exchange","title":"Private Data Exchange","text":"

      FireFly has a pluggable implementation of a private data transfer bus. This transport supports both structured data (conforming to agreed data formats), and large unstructured data & documents.

      A reference microservice implementation is provided for HTTPS point-to-point connectivity with mutual TLS encryption.

      See the reference implementation in Github

      Pre-packaged vendor extensions to Hyperledger FireFly are known to be available, addressing message queue based reliable delivery of messages, hub-and-spoke connectivity models, chunking of very large file payloads, and end-to-end encryption.

      Learn more about these private data flows in Multiparty Process Flows.

      "},{"location":"overview/key_components/tools/","title":"Tools","text":""},{"location":"overview/key_components/tools/#firefly-cli","title":"FireFly CLI","text":"

      The FireFly CLI can be used to create local FireFly stacks for offline development of blockchain apps. This allows developers to rapidly iterate on their idea without needing to set up a bunch of infrastructure before they can write the first line of code.

      "},{"location":"overview/key_components/tools/#firefly-sandbox","title":"FireFly Sandbox","text":"

      The FireFly Sandbox sits logically outside the Supernode, and it acts like an \"end-user\" application written to use FireFly's API. In your setup, you have one Sandbox per member, each talking to their own FireFly API. The purpose of the Sandbox is to provide a quick and easy way to try out all of the fundamental building blocks that FireFly provides. It also shows developers, through example code snippets, how they would implement the same functionality in their own app's backend.

      \ud83d\uddd2 Technical details: The FireFly Sandbox is an example \"full-stack\" web app. It has a backend written in TypeScript / Node.js, and a frontend in TypeScript / React. When you click a button in your browser, the frontend makes a request to the backend, which then uses the FireFly Node.js SDK to make requests to FireFly's API.

      "},{"location":"overview/key_components/tools/#firefly-explorer","title":"FireFly Explorer","text":"

      The FireFly explorer is a part of FireFly Core itself. It is a view into the system that allows operators to monitor the current state of the system and investigate specific transactions, messages, and events. It is also a great way for developers to see the results of running their code against FireFly's API.

      "},{"location":"overview/multiparty/","title":"Enterprise multi-party systems","text":""},{"location":"overview/multiparty/#introduction","title":"Introduction","text":"

      Multiparty mode has all the features in Gateway mode with the added benefit of multi-party process flows.

      A multi-party system is a class of application empowered by the technology revolution of blockchain digital ledger technology (DLT), and emerging cryptographic proof technologies like zero-knowledge proofs (ZKPs) and trusted execution environments (TEEs).

      By combining these technologies with existing best practice technologies for data security in regulated industries, multi-party systems allow businesses to collaborate in ways previously impossible.

      Through agreement on a common source of truth, such as the completion of a step in a business process to proceed, or the existence and ownership of a unique asset, businesses can cut out huge inefficiencies in existing multi-party processes.

      New business and transaction models can be achieved, unlocking value in assets and data that were previously siloed within a single organization. Governance and incentive models can be created to enable secure collaboration in new ways, without compromising the integrity of an individual organization.

      The technology is most powerful in ecosystems of \"coopetition\", where privacy and security requirements are high. Multi-party systems establish new models of trust, with easy to prove outcomes that minimize the need for third party arbitration, and costly investigation into disputes.

      "},{"location":"overview/multiparty/#points-of-difference","title":"Points of difference","text":"

      Integration with existing systems of record is critical to unlock the potential of these new ecosystems. So multi-party systems embrace the existing investments of each party, rather than seeking to unify or replace them.

      Multi-party systems are different from centralized third-party systems, because each party retains sovereignty over:

      • Their application instance
      • Their private data
      • Their business processes
      • Their proprietary business logic
      • Their internal business processes and IT controls
      "},{"location":"overview/multiparty/#use-case-example","title":"Use Case Example","text":"

      There are many multiparty use cases. An example for healthcare is detailed below.

      Patient care requires multiple entities to work together including healthcare providers, insurance companies, and medical systems. Sharing data between these parties is inefficient and prone to errors and patient information must be kept secure and up to date. Blockchain's shared ledger makes it possible to automate data sharing while ensuring accuracy and privacy.

      In a Multi-party FireFly system, entities are able to share data privately as detailed in the \"Data Exchange\" section. For example, imagine a scenario where there is one healthcare provider and two insurance companies operating in a multi-party system. Insurance company A may send private data to the healthcare provider that insurance company B is not privy to. While insurance company B may not know the contents of data transferred, it may verify that a transfer of data did occur. This validation is all thats needed to maintain an up to date state of the blockchain.

      In a larger healthcare ecosystem with many members, a similar concept may emerge with multiple variations of members.

      "},{"location":"overview/multiparty/broadcast/","title":"Broadcast / shared data","text":""},{"location":"overview/multiparty/broadcast/#introduction","title":"Introduction","text":"

      Multi-party systems are about establishing a shared source of truth, and often that needs to include certain reference data that is available to all parties in the network. The data needs to be \"broadcast\" to all members, and also need to be available to new members that join the network

      "},{"location":"overview/multiparty/broadcast/#blockchain-backed-broadcast","title":"Blockchain backed broadcast","text":"

      In order to maintain a complete history of all broadcast data for new members joining the network, FireFly uses the blockchain to sequence the broadcasts with pinning transactions referring to the data itself.

      Using the blockchain also gives a global order of events for these broadcasts, which allows them to be processed by each member in a way that allows them to derive the same result - even though the processing logic on the events themselves is being performed independently by each member.

      For more information see Multiparty Event Sequencing.

      "},{"location":"overview/multiparty/broadcast/#shared-data","title":"Shared data","text":"

      The data included in broadcasts is not recorded on the blockchain. Instead a pluggable shared storage mechanism is used to contain the data itself. The on-chain transaction just contains a hash of the data that is stored off-chain.

      This is because the data itself might be too large to be efficiently stored and transferred via the blockchain itself, or subject to deletion at some point in the future through agreement by the members in the network.

      While the data should be reliably stored with visibility to all members of the network, the data can still be secured from leakage outside of the network.

      The InterPlanetary File System (IPFS) is an example of a distributed technology for peer-to-peer storage and distribution of such data in a decentralized multi-party system. It provides secure connectivity between a number of nodes, combined with a decentralized index of data that is available, and native use of hashes within the technology as the way to reference data by content.

      "},{"location":"overview/multiparty/broadcast/#firefly-built-in-broadcasts","title":"FireFly built-in broadcasts","text":"

      FireFly uses the broadcast mechanism internally to distribute key information to all parties in the network:

      • Network map
      • Organizational identities
      • Nodes
      • See Identities in the reference section for more information
      • Datatype definitions
      • See Datatype in the reference section for more information
      • Namespaces
      • See Namespaces for more information

      These definitions rely on the same assurances provided by blockchain backed broadcast that FireFly applications do.

      • Verification of the identity of the party in the network that performed the broadcast
      • Deterministic assignment of a namespace+name to an unique item of data
      • If two parties in the network broadcast the same data at similar times, the same one \"wins\" for all parties in the network (including the broadcaster)
      "},{"location":"overview/multiparty/data_exchange/","title":"Private data exchange","text":""},{"location":"overview/multiparty/data_exchange/#introduction","title":"Introduction","text":"

      Private data exchange is the way most enterprise business-to-business communication happens today. One party privately sends data to another, over a pipe that has been agreed as sufficiently secure between the two parties. That might be a REST API, SOAP Web Service, FTP / EDI, Message Queue (MQ), or other B2B Gateway technology.

      The ability to perform these same private data exchanges within a multi-party system is critical. In fact it's common for the majority of business data continue to transfer over such interfaces.

      So real-time application to application private messaging, and private transfer of large blobs/documents, are first class constructs in the FireFly API.

      "},{"location":"overview/multiparty/data_exchange/#qualities-of-service","title":"Qualities of service","text":"

      FireFly recognizes that a multi-party system will need to establish a secure messaging backbone, with the right qualities of service for their requirements. So the implementation is pluggable, and the plugin interface embraces the following quality of service characteristics that differ between different implementations.

      • Transport Encryption
      • Technologies like TLS encrypt data while it is in flight, so that it cannot be sniffed by a third party that has access to the underlying network.
      • Authentication
      • There are many technologies including Mutual TLS, and Java Web Tokens (JWT), that can be used to ensure a private data exchange is happening with the correct party in the system.
      • Most modern approaches use public/private key encryption to establish the identity during the setup phase of a connection. This means a distribution mechanism is required for public keys, which might be enhanced with a trust hierarchy (like PKI).
      • Request/Response (Sync) vs. Message Queuing (Async)
      • Synchronous transports like HTTPS require both parties to be available at the time data is sent, and the transmission must be retried at the application (plugin) layer if it fails or times out.
      • Asynchronous transports like AMQP, MQTT or Kafka introduce one or more broker runtimes between the parties, that reliably buffer the communications if the target application falls behind or is temporarily unavailable.
      • Hub & spoke vs. Peer to peer
      • Connectivity might be direct from one party to another within the network, tackling the IT security complexity of firewalls between sensitive networks. Or network shared infrastructure / as-a-service provider might be used to provide a reliable backbone for data exchange between the members.
      • End-to-end Payload Encryption
      • Particularly in cases where the networking hops are complex, or involve shared shared/third-party infrastructure, end-to-end encryption can be used to additionally protect the data while in flight. This technology means data remains encrypted from the source to the target, regardless of the number of transport hops taken in-between.
      • Large blob / Managed file transfer
      • The optimal approach to transferring real-time small messages (KBs in size) is different to the approach to transferring large blobs (MBs/GBs in size). For large blobs chunking, compression, and checkpoint restart are common for efficient and reliable transfer.
      "},{"location":"overview/multiparty/data_exchange/#firefly-oss-implementation","title":"FireFly OSS implementation","text":"

      A reference implementation of a private data exchange is provided as part of the FireFly project. This implementation uses peer-to-peer transfer over a synchronous HTTPS transport, backed by Mutual TLS authentication. X509 certificate exchange is orchestrated by FireFly, such that self-signed certificates can be used (or multiple PKI trust roots) and bound to the blockchain-backed identities of the organizations in FireFly.

      See hyperledger/firefly-dataexchange-https

      "},{"location":"overview/multiparty/deterministic/","title":"Deterministic Compute","text":""},{"location":"overview/multiparty/deterministic/#introduction","title":"Introduction","text":"

      A critical aspect of designing a multi-party systems, is choosing where you exploit the blockchain and other advanced cryptography technology to automate agreement between parties.

      Specifically where you rely on the computation itself to come up with a result that all parties can independently trust. For example because all parties performed the same computation independently and came up with the same result, against the same data, and agreed to that result using a consensus algorithm.

      The more sophisticated the agreement is you want to prove, the more consideration needs to be taken into factors such as:

      • Data privacy
      • Data deletion
      • Ease of understanding by business users
      • Ease of audit
      • Autonomy of parties with proprietary business logic
      • Human workflows (obviously non-deterministic)
      • Technology complexity/maturity (particularly for privacy preserving technologies)
      • Cost and skills for implementation

      FireFly embraces the fact that different use cases, will make different decisions on how much of the agreement should be enforced through deterministic compute.

      Also that multi-party systems include a mixture of approaches in addition to deterministic compute, including traditional off-chain secure HTTP/Messaging, documents, private non-deterministic logic, and human workflows.

      "},{"location":"overview/multiparty/deterministic/#the-fundamental-building-blocks","title":"The fundamental building blocks","text":"

      There are some fundamental types of deterministic computation, that can be proved with mature blockchain technology, and all multi-party systems should consider exploiting:

      • Total conservation of value
      • Allows you to assign value to something, because you know it is a fraction of a total pool
      • This is the magic behind fungible tokens, or \"coins\"
      • The proven technology for this is a shared ledger of all previous transactions
      • Learn more in the Tokens section
      • Existence and ownership of a unique identifiable thing
      • Gives you an anchor to attach to something in the real world
      • This is the magic behind non-fungible tokens (NTFs)
      • The proven technology for this is a shared ledger of its creation, and ownership changes
      • Learn more in the Tokens section
      • An agreed sequence of events
      • The foundation tool that allows the building of higher level constructs (including tokens)
      • Not previously available when business ecosystems used HTTP/Messaging transports alone
      • Can be bi-lateral, multi-lateral or global
      • Each blockchain technology has different features to establish these \"chains\" of information
      • Different approaches provide privacy different levels of privacy on the parties and sequence
      • Identification of data by a \"hash\" of its contents
      • The glue that binds a piece of private data, to a proof that you have a copy of that data
      • This is the basis of \"pinning\" data to the blockchain, without sharing its contents
      • Care needs to be taken to make sure the data is unique enough to make the hash secure
      • Learn more in the Gateway Features section
      "},{"location":"overview/multiparty/deterministic/#advanced-cryptography-and-privacy-preserving-trusted-compute","title":"Advanced Cryptography and Privacy Preserving Trusted Compute","text":"

      There are use cases where a deterministic agreement on computation is desired, but the data upon which the execution is performed cannot be shared between all the parties.

      For example proving total conservation of value in a token trading scenario, without knowing who is involved in the individual transactions. Or providing you have access to a piece of data, without disclosing what that data is.

      Technologies exist that can solve these requirements, with two major categories:

      • Zero Knowledge Proofs (ZKPs)
      • Advanced cryptography techniques that allow one party to generate a proof that can be be verified by another party, without access to the data used to generate the proof.
      • Trusted Compute Environments (TEEs)
      • Secure compute environments that provide proofs of what code was executed, such that other parties can be confident of the logic that was executed without having access to the data.

      FireFly today provides an orchestration engine that's helpful in coordinating the inputs, outputs, and execution of such advanced cryptography technologies.

      Active collaboration between the FireFly and other projects like Hyperledger Avalon, and Hyperledger Cactus, is evolving how these technologies can plug-in with higher level patterns.

      "},{"location":"overview/multiparty/deterministic/#complementary-approaches-to-deterministic-computation","title":"Complementary approaches to deterministic computation","text":"

      Enterprise multi-party systems usually operate differently to end-user decentralized applications. In particular, strong identity is established for the organizations that are involved, and those organizations usually sign legally binding commitments around their participation in the network. Those businesses then bring on-board an ecosystem of employees and or customers that are end-users to the system.

      So the shared source of truth empowered by the blockchain and other cryptography are not the only tools that can be used in the toolbox to ensure correct behavior. Recognizing that there are real legal entities involved, that are mature and regulated, does not undermine the value of the blockchain components. In fact it enhances it.

      A multi-party system can use just enough of this secret sauce in the right places, to change the dynamics of trust such that competitors in a market are willing to create value together that could never be created before.

      Or create a system where parties can share data with each other while still conforming to their own regulatory and audit commitments, that previously would have been impossible to share.

      Not to be overlooked is the sometimes astonishing efficiency increase that can be added to existing business relationships, by being able to agree the order and sequence of a set of events. Having the tools to digitize processes that previously took physical documents flying round the world, into near-immediate digital agreement where the arbitration of a dispute can be resolved at a tiny fraction of what would have been possible without a shared and immutable audit trail of who said what when.

      "},{"location":"overview/multiparty/multiparty_flow/","title":"Multiparty Process Flows","text":""},{"location":"overview/multiparty/multiparty_flow/#flow-features","title":"Flow features","text":"

      Data, value, and process flow are how decentralized systems function. In an enterprise context not all of this data can be shared with all parties, and some is very sensitive.

      "},{"location":"overview/multiparty/multiparty_flow/#private-data-flow","title":"Private data flow","text":"

      Managing the flows of data so that the right information is shared with the right parties, at the right time, means thinking carefully about what data flows over what channel.

      The number of enterprise solutions where all data can flow directly through the blockchain, is vanishingly small.

      Coordinating these different data flows is often one of the biggest pieces of heavy lifting solved on behalf of the application by a robust framework like FireFly:

      • Establishing the identity of participants so data can be shared
      • Securing the transfer of data off-chain
      • Coordinating off-chain data flow with on-chain data flow
      • Managing sequence for deterministic outcomes for all parties
      • Integrating off-chain private execution with multi-step stateful business logic
      "},{"location":"overview/multiparty/multiparty_flow/#multi-party-business-process-flow","title":"Multi-party business process flow","text":"

      Web3 has the potential to transform how ecosystems interact. Digitally transforming legacy process flows, by giving deterministic outcomes that are trusted by all parties, backed by new forms of digital trust between parties.

      Some of the most interesting use cases require complex multi-step business process across participants. The Web3 version of business process management, comes with a some new challenges.

      So you need the platform to:

      • Provide a robust event-driven programming model fitting a \"state machine\" approach
      • Integrate with the decentralized application stack of each participant
      • Allow integration with the core-systems and human decision making of each participant
      • Provide deterministic ordering between all parties
      • Provide identity assurance and proofs for data flow / transition logic
      "},{"location":"overview/multiparty/multiparty_flow/#data-exchange","title":"Data exchange","text":"

      Business processes need data, and that data comes in many shapes and sizes.

      The platform needs to handle all of them:

      • Large files and documents, as well as application data
      • Uniqueness / Enterprise NFTs - agreement on a single \"foreign key\" for a record
      • Non-repudiation, and acknowledgement of receipt
      • Coordination of flows of data, with flows of value - delivery vs. payment scenarios
      "},{"location":"overview/multiparty/multiparty_flow/#building-multi-party-flows","title":"Building multi-party flows","text":"

      The ability to globally sequence events across parties is a game changing capability of a multiparty system. FireFly is designed to allow developers to harnesses that power in the application layer, to build sophisticated multi-party APIs and user experiences.

      • Build multi-party business processes where there is one agreed outcome:
      • Agree the trigger, inputs, outputs of each step in the process
      • Agree any common \"rules of the road\" must be adhered to
      • Look back at your shared history, when deciding to commit to the next step:
      • Fast rich-query cache, backed by a private database
      • Initiate the next step through automated or manual decision making
      • Only consider a step final once it's multi-party sequence has been confirmed
      • Gain big efficiencies in how multi-party business processes work:
      • Once locked in, a step is consider final - attested to by the party
      • If two parties submit conflicting actions, one wins, and one loses
      • Avoids complex compensation logic in the business orchestration layer
      • Provides one clear source of truth to quickly resolve multi-party disputes
      • Program multi-party apps using the tools you know:
      • REST APIs for triggering the next step in a process, and querying history
      • WebSockets and Webhooks for events (pluggable to other event transports)
      • Remember - each party runs their own copy of the app, with their own private data
      • Allow each party to integrate into their existing core systems:
      • Realtime or batch
      • Human workflows
      • Proprietary business logic that is unique to one party
      • Avoid sensitive data written to the blockchain:
      • Works in bi-lateral and multi-lateral scenarios
      • Designed to limit leaking other \"metadata\" about the transaction as well
      • Share partial history with different participants in a
      • No requirement to write custom on-chain smart contract logic:
      • Can be combined with rich custom on-chain logic as well
      "},{"location":"overview/multiparty/multiparty_flow/#innovate-fast","title":"Innovate fast","text":"

      Building a successful multi-party system is often about business experimentation, and business results. Proving the efficiency gains, and new business models, made possible by working together in a new way under a new system of trust.

      Things that can get in the way of that innovation, can include concerns over data privacy, technology maturity, and constraints on autonomy of an individual party in the system. An easy to explain position on how new technology components are used, where data lives, and how business process independence is maintained can really help parties make the leap of faith necessary to take the step towards a new model.

      Keys to success often include building great user experiences that help digitize clunky decades old manual processes. Also easy to integrate with APIs, what embrace the existing core systems of record that are establish within each party.

      "},{"location":"overview/multiparty/multiparty_flow/#consider-the-on-chain-toolbox-too","title":"Consider the on-chain toolbox too","text":"

      There is a huge amount of value that deterministic execution of multi-party logic within the blockchain can add. However, the more compute is made fully deterministic via a blockchain consensus algorithm validated by multiple parties beyond those with a business need for access to the data, the more sensitivity needs to be taken to data privacy. Also bear in mind any data that is used in this processing becomes immutable - it can never be deleted.

      The core constructs of blockchain are a great place to start. Almost every process can be enhanced with pre-built fungible and non-fungible tokens, for example. Maybe it's to build a token economy that enhances the value parties get from the system, or to encourage healthy participation (and discourage bad behavior). Or maybe it's to track exactly which party owns a document, asset, or action within a process using NFTs.

      On top of this you can add advanced tools like digital escrow, signature / threshold based voting on outcomes, and atomic swaps of value/ownership.

      The investment in building this bespoke on-chain logic is higher than building the off-chain pieces (and there are always some off-chain pieces as we've discussed), so it's about finding the kernel of value the blockchain can provide to differentiate your solution from a centralized database solution.

      The power provided by deterministic sequencing of events, attested by signatures, and pinned to private data might be sufficient for some cases. In others the token constructs are the key value that differentiates the decentralized ecosystem. Whatever it is, it's important it is identified and crafted carefully.

      Note that advanced privacy preserving techniques such as zero-knowledge proofs (ZKP) are gaining traction and hardening in their production readiness and efficiency. Expect these to play an increasing role in the technology stack of multiparty systems (and Hyperledger FireFly) in the future.

      Learn more in the Deterministic Compute section.

      "},{"location":"reference/api_post_syntax/","title":"API POST Syntax","text":""},{"location":"reference/api_post_syntax/#syntax-overview","title":"Syntax Overview","text":"

      Endpoints that allow submitting a transaction allow an optional query parameter called confirm. When confirm=true is set in the query string, FireFly will wait to send an HTTP response until the message has been confirmed. This means, where a blockchain transaction is involved, the HTTP request will not return until the blockchain transaction is complete.

      This is useful for endpoints such as registration, where the client app cannot proceed until the transaction is complete and the member/node is registered. Rather than making a request to register a member/node and then repeatedly polling the API to check to see if it succeeded, an HTTP client can use this query parameter and block until registration is complete.

      NOTE: This does not mean that any other member of the network has received, processed, or responded to the message. It just means that the transaction is complete from the perspective of the FireFly node to which the transaction was submitted.

      "},{"location":"reference/api_post_syntax/#example-api-call","title":"Example API Call","text":"

      POST /api/v1/messages/broadcast?confirm=true

      This will broadcast a message and wait for the message to be confirmed before returning.

      "},{"location":"reference/api_query_syntax/","title":"API Query Syntax","text":""},{"location":"reference/api_query_syntax/#syntax-overview","title":"Syntax Overview","text":"

      REST collections provide filter, skip, limit and sort support.

      • The field in the message is used as the query parameter
      • Syntax: field=[modifiers][operator]match-string
      • When multiple query parameters are supplied these are combined with AND
      • When the same query parameter is supplied multiple times, these are combined with OR
      "},{"location":"reference/api_query_syntax/#example-api-call","title":"Example API Call","text":"

      GET /api/v1/messages?confirmed=>0&type=broadcast&topic=t1&topic=t2&context=@someprefix&sort=sequence&descending&skip=100&limit=50

      This states:

      • Filter on confirmed greater than 0
      • Filter on type exactly equal to broadcast
      • Filter on topic exactly equal to t1 or t2
      • Filter on context containing the case-sensitive string someprefix
      • Sort on sequence in descending order
      • Paginate with limit of 50 and skip of 100 (e.g. get page 3, with 50/page)

      Table of filter operations, which must be the first character of the query string (after the = in the above URL path example)

      "},{"location":"reference/api_query_syntax/#operators","title":"Operators","text":"

      Operators are a type of comparison operation to perform against the match string.

      Operator Description = Equal (none) Equal (shortcut) @ Containing ^ Starts with $ Ends with << Less than < Less than (shortcut) <= Less than or equal >> Greater than > Greater than (shortcut) >= Greater than or equal

      Shortcuts are only safe to use when your match string starts with a-z, A-Z, 0-9, - or _.

      "},{"location":"reference/api_query_syntax/#modifiers","title":"Modifiers","text":"

      Modifiers can appear before the operator, to change its behavior.

      Modifier Description ! Not - negates the match : Case insensitive ? Treat empty match string as null [ Combine using AND on the same field ] Combine using OR on the same field (default)"},{"location":"reference/api_query_syntax/#detailed-examples","title":"Detailed examples","text":"Example Description cat Equals \"cat\" =cat Equals \"cat\" (same) !=cat Not equal to \"cat\" :=cat Equal to \"CAT\", \"cat\", \"CaT etc. !:cat Not equal to \"CAT\", \"cat\", \"CaT etc. =!cat Equal to \"!cat\" (! is after operator) ^cats/ Starts with \"cats/\" $_cat Ends with with \"_cat\" !:^cats/ Does not start with \"cats/\", \"CATs/\" etc. !$-cat Does not end with \"-cat\" ?= Is null !?= Is not null"},{"location":"reference/api_query_syntax/#time-range-example","title":"Time range example","text":"

      For this case we need to combine multiple queries on the same created field using AND semantics (with the [) modifier:

      ?created=[>>2021-01-01T00:00:00Z&created=[<=2021-01-02T00:00:00Z\n

      So this means:

      • created greater than 2021-01-01T00:00:00Z
      • AND
      • created less than or equal to 2021-01-02T00:00:00Z
      "},{"location":"reference/blockchain_operation_status/","title":"Blockchain Operation Status","text":""},{"location":"reference/blockchain_operation_status/#blockchain-operations","title":"Blockchain Operations","text":"

      Every FireFly Transaction can involve zero or more Operations. Blockchain operations are handled by the blockchain connector configured for the namespace and represent a blockchain transaction being handled by that connector.

      "},{"location":"reference/blockchain_operation_status/#blockchain-operation-status_1","title":"Blockchain Operation Status","text":"

      A blockchain operation can require the connector to go through various stages of processing in order to successfully confirm the transaction on the blockchain. The orchestrator in FireFly receives updates from the connector to indicate when the operation has been completed and determine when the FireFly transaction as a whole has finished. These updates must contain enough information to correlate the operation to the FireFly transaction but it can be useful to see more detailed information about how the transaction was processed.

      FireFly 1.2 introduced the concept of sub-status types that allow a blockchain connector to distinguish between the intermediate steps involved in progressing a transaction. It also introduced the concept of an action which a connector might carry out in order to progress between types of sub-status. This can be described as a state machine as shown in the following diagram:

      To access detailed information about a blockchain operation FireFly 1.2 introduced a new query parameter, fetchStatus, to the /transaction/{txid}/operation/{opid} API. When FireFly receives an API request that includes the fetchStatus query parameter it makes a synchronous call directly to the blockchain connector, requesting all of blockchain transaction detail it has. This payload is then included in the FireFly operation response under a new detail field.

      "},{"location":"reference/blockchain_operation_status/#blockchain-operation-example","title":"Blockchain Operation Example","text":"
      {\n  \"id\": \"04a8b0c4-03c2-4935-85a1-87d17cddc20a\",\n  \"created\": \"2022-05-16T01:23:15Z\",\n  \"namespace\": \"ns1\",\n  \"tx\": \"99543134-769b-42a8-8be4-a5f8873f969d\",\n  \"type\": \"blockchain_invoke\",\n  \"status\": \"Succeeded\",\n  \"plugin\": \"ethereum\",\n  \"input\": {\n    // Input used to initiate the blockchain operation\n  },\n  \"output\": {\n    // Minimal blockchain operation data necessary\n    // to resolve the FF transaction\n  },\n  \"detail\": {\n    // Full blockchain operation information, including sub-status\n    // transitions that took place for the operation to succeed.\n  }\n}\n
      "},{"location":"reference/blockchain_operation_status/#detail-status-structure","title":"Detail Status Structure","text":"

      The structure of a blockchain operation follows the structure described in Operations. In FireFly 1.2, 2 new attributes were added to that structure to allow more detailed status information to be recorded:

      • history an ordered list of status changes that have taken place during processing of the transaction
      • historySummary an un-ordered list any sub-status type that the blockchain connector uses, and any action type that the blockchain connector carries out as part of processing the transaction.

      The history field is designed to record an ordered list of sub-status changes that the transaction has gone through. Within each sub-status change are the actions that have been carried out to try and move the transaction on to a new sub-status. Some transactions might spend a long time going looping between different sub-status types so this field records the N most recent sub-status changes (where the size of N is determined by blockchain connector and its configuration). The follow example shows a transaction going starting at Received, moving to Tracking, and finally ending up as Confirmed. In order to move from Received to Tracking several actions were performed: AssignNonce, RetrieveGasPrice, and SubmitTransaction.

      "},{"location":"reference/blockchain_operation_status/#history-example","title":"History Example","text":"
      {\n    ...\n    \"lastSubmit\": \"2023-01-27T17:11:41.222375469Z\",\n    \"nonce\": \"14\",\n    \"history\": [\n        {\n            \"subStatus\": \"Received\",\n            \"time\": \"2023-01-27T17:11:41.122965803Z\",\n            \"actions\": [\n                {\n                    \"action\": \"AssignNonce\",\n                    \"count\": 1,\n                    \"lastInfo\": {\n   \u2003                    \"nonce\": \"14\"\n                    },\n                    \"lastOccurrence\": \"2023-01-27T17:11:41.122967219Z\",\n                    \"time\": \"2023-01-27T17:11:41.122967136Z\"\n                },\n   \u2003            {\n                    \"action\": \"RetrieveGasPrice\",\n                    \"count\": 1,\n                    \"lastInfo\": {\n                        \"gasPrice\": \"0\"\n                    },\n                    \"lastOccurrence\": \"2023-01-27T17:11:41.161213303Z\",\n                    \"time\": \"2023-01-27T17:11:41.161213094Z\"\n                },\n                {\n                    \"action\": \"SubmitTransaction\",\n                    \"count\": 1,\n   \u2003                \"lastInfo\": {\n                        \"txHash\": \"0x4c37de1cf320a1d5c949082bbec8ad5fe918e6621cec3948d609ec3f7deac243\"\n                    },\n   \u2003                \"lastOccurrence\": \"2023-01-27T17:11:41.222374636Z\",\n   \u2003                \"time\": \"2023-01-27T17:11:41.222374553Z\"\n   \u2003            }\n   \u2003        ],\n  \u2003     },\n \u2003      {\n \u2003\u2003         \"subStatus\": \"Tracking\",\n            \"time\": \"2023-01-27T17:11:41.222400219Z\",\n    \u2003       \"actions\": [\n   \u2003\u2003\u2003          {\n    \u2003\u2003\u2003\u2003            \"action\": \"ReceiveReceipt\",\n     \u2003\u2003\u2003\u2003           \"count\": 2,\n    \u2003\u2003\u2003\u2003            \"lastInfo\": {\n     \u2003\u2003\u2003\u2003\u2003              \"protocolId\": \"000001265122/000000\"\n    \u2003\u2003\u2003\u2003            },\n    \u2003\u2003\u2003\u2003            \"lastOccurrence\": \"2023-01-27T17:11:57.93120838Z\",\n    \u2003\u2003\u2003\u2003            \"time\": \"2023-01-27T17:11:47.930332625Z\"\n   \u2003\u2003\u2003          },\n   \u2003\u2003\u2003          {\n   \u2003\u2003\u2003\u2003             \"action\": \"Confirm\",\n    \u2003\u2003\u2003\u2003            \"count\": 1,\n    \u2003\u2003\u2003\u2003            \"lastOccurrence\": \"2023-01-27T17:12:02.660275549Z\",\n    \u2003\u2003\u2003\u2003            \"time\": \"2023-01-27T17:12:02.660275382Z\"\n    \u2003\u2003\u2003         }\n   \u2003\u2003       ],\n  \u2003     },\n  \u2003     {\n \u2003\u2003         \"subStatus\": \"Confirmed\",\n  \u2003\u2003        \"time\": \"2023-01-27T17:12:02.660309382Z\",\n  \u2003\u2003        \"actions\": [],\n  \u2003     }\n    ]\n    ...\n}\n

      Because the history field is a FIFO structure describing the N most recent sub-status changes, some early sub-status changes or actions may be lost over time. For example an action of assignNonce might only happen once when the transaction is first processed by the connector. The historySummary field ensures that a minimal set of information is kept about every single subStatus type and action that has been recorded.

      "},{"location":"reference/blockchain_operation_status/#history-summary-example","title":"History Summary Example","text":"
      {\n    ...\n    \"historySummary\": [\n        {\n            \"count\": 1,\n   \u2003        \"firstOccurrence\": \"2023-01-27T17:11:41.122966136Z\",\n            \"lastOccurrence\": \"2023-01-27T17:11:41.122966136Z\",\n   \u2003        \"subStatus\": \"Received\"\n        },\n        {\n            \"count\": 1,\n            \"firstOccurrence\": \"2023-01-27T17:11:41.122967219Z\",\n            \"lastOccurrence\": \"2023-01-27T17:11:41.122967219Z\",\n            \"action\": \"AssignNonce\"\n        },\n        {\n            \"count\": 1,\n            \"firstOccurrence\": \"2023-01-27T17:11:41.161213303Z\",\n            \"lastOccurrence\": \"2023-01-27T17:11:41.161213303Z\",\n            \"action\": \"RetrieveGasPrice\"\n        },\n        {\n            \"count\": 1,\n            \"firstOccurrence\": \"2023-01-27T17:11:41.222374636Z\",\n            \"lastOccurrence\": \"2023-01-27T17:11:41.222374636Z\",\n            \"action\": \"SubmitTransaction\"\n        },\n        {\n  \u2003         \"count\": 1,\n  \u2003         \"firstOccurrence\": \"2023-01-27T17:11:41.222400678Z\",\n            \"lastOccurrence\": \"\",\n  \u2003         \"subStatus\": \"Tracking\"\n        },\n        {\n            \"count\": 1,\n            \"firstOccurrence\": \"2023-01-27T17:11:57.93120838Z\",\n            \"lastOccurrence\": \"2023-01-27T17:11:57.93120838Z\",\n            \"action\": \"ReceiveReceipt\"\n        },\n        {\n            \"count\": 1,\n            \"firstOccurrence\": \"2023-01-27T17:12:02.660309382Z\",\n            \"lastOccurrence\": \"2023-01-27T17:12:02.660309382Z\",\n            \"action\": \"Confirm\"\n        },\n        {\n \u2003          \"count\": 1,\n   \u2003        \"firstOccurrence\": \"2023-01-27T17:12:02.660309757Z\",\n            \"lastOccurrence\": \"2023-01-27T17:12:02.660309757Z\",\n   \u2003        \"subStatus\": \"Confirmed\"\n        }\n    ]\n}\n
      "},{"location":"reference/blockchain_operation_status/#public-chain-operations","title":"Public Chain Operations","text":"

      Blockchain transactions submitted to a public chain, for example to Polygon PoS, might take longer and involve more sub-status transitions before being confirmed. One reason for this could be because of gas price fluctuations of the chain. In this case the history for a public blockchain operation might include a large number of subStatus entries. Using the example sub-status values above, a blockchain operation might move from Tracking to Stale, back to Tracking, back to Stale and so on.

      Below is an example of the history for a public blockchain operation.

      "},{"location":"reference/blockchain_operation_status/#polygon-example","title":"Polygon Example","text":"
      {\n    ...\n    \"lastSubmit\": \"2023-01-27T17:11:41.222375469Z\",\n    \"nonce\": \"14\",\n    \"history\": [\n        {\n            \"subStatus\": \"Received\",\n            \"time\": \"2023-01-27T17:11:41.122965803Z\",\n            \"actions\": [\n                {\n                    \"action\": \"AssignNonce\",\n                    \"count\": 1,\n                    \"lastInfo\": {\n   \u2003                    \"nonce\": \"1\"\n                    },\n                    \"lastOccurrence\": \"2023-01-27T17:11:41.122967219Z\",\n                    \"time\": \"2023-01-27T17:11:41.122967136Z\"\n                },\n   \u2003            {\n                    \"action\": \"RetrieveGasPrice\",\n                    \"count\": 1,\n                    \"lastInfo\": {\n                        \"gasPrice\": \"34422243\"\n                    },\n                    \"lastOccurrence\": \"2023-01-27T17:11:41.161213303Z\",\n                    \"time\": \"2023-01-27T17:11:41.161213094Z\"\n                },\n                {\n                    \"action\": \"SubmitTransaction\",\n                    \"count\": 1,\n   \u2003                \"lastInfo\": {\n                        \"txHash\": \"0x83ba5e1cf320a1d5c949082bbec8ae7fe918e6621cec39478609ec3f7deacbdb\"\n                    },\n   \u2003                \"lastOccurrence\": \"2023-01-27T17:11:41.222374636Z\",\n   \u2003                \"time\": \"2023-01-27T17:11:41.222374553Z\"\n   \u2003            }\n   \u2003        ],\n  \u2003     },\n \u2003      {\n \u2003\u2003         \"subStatus\": \"Tracking\",\n            \"time\": \"2023-01-27T17:11:41.222400219Z\",\n    \u2003       \"actions\": [],\n  \u2003     },\n \u2003      {\n \u2003\u2003         \"subStatus\": \"Stale\",\n            \"time\": \"2023-01-27T17:13:21.222100434Z\",\n    \u2003       \"actions\": [\n   \u2003\u2003\u2003          {\n    \u2003\u2003\u2003\u2003            \"action\": \"RetrieveGasPrice\",\n     \u2003\u2003\u2003\u2003           \"count\": 1,\n                    \"lastInfo\": {\n                        \"gasPrice\": \"44436243\"\n                    },\n    \u2003\u2003\u2003\u2003            \"lastOccurrence\": \"2023-01-27T17:13:22.93120838Z\",\n    \u2003\u2003\u2003\u2003            \"time\": \"2023-01-27T17:13:22.93120838Z\"\n   \u2003\u2003\u2003          },\n                {\n                    \"action\": \"SubmitTransaction\",\n                    \"count\": 1,\n   \u2003                \"lastInfo\": {\n                        \"txHash\": \"0x7b3a5e1ccbc0a1d5c949082bbec8ae7fe918e6621cec39478609ec7aea6103d5\"\n                    },\n   \u2003                \"lastOccurrence\": \"2023-01-27T17:13:32.656374637Z\",\n   \u2003                \"time\": \"2023-01-27T17:13:32.656374637Z\"\n   \u2003            }\n   \u2003\u2003       ],\n  \u2003     },\n \u2003      {\n \u2003\u2003         \"subStatus\": \"Tracking\",\n            \"time\": \"2023-01-27T17:13:33.434400219Z\",\n    \u2003       \"actions\": [],\n  \u2003     },\n \u2003      {\n \u2003\u2003         \"subStatus\": \"Stale\",\n            \"time\": \"2023-01-27T17:15:21.222100434Z\",\n    \u2003       \"actions\": [\n   \u2003\u2003\u2003          {\n    \u2003\u2003\u2003\u2003            \"action\": \"RetrieveGasPrice\",\n     \u2003\u2003\u2003\u2003           \"count\": 1,\n                    \"lastInfo\": {\n                        \"gasPrice\": \"52129243\"\n                    },\n    \u2003\u2003\u2003\u2003            \"lastOccurrence\": \"2023-01-27T17:15:22.93120838Z\",\n    \u2003\u2003\u2003\u2003            \"time\": \"2023-01-27T17:15:22.93120838Z\"\n   \u2003\u2003\u2003          },\n                {\n                    \"action\": \"SubmitTransaction\",\n                    \"count\": 1,\n   \u2003                \"lastInfo\": {\n                        \"txHash\": \"0x89995e1ccbc0a1d5c949082bbec8ae7fe918e6621cec39478609ec7a8c64abc\"\n                    },\n   \u2003                \"lastOccurrence\": \"2023-01-27T17:15:32.656374637Z\",\n   \u2003                \"time\": \"2023-01-27T17:15:32.656374637Z\"\n   \u2003            }\n   \u2003\u2003       ],\n  \u2003     },\n \u2003      {\n \u2003\u2003         \"subStatus\": \"Tracking\",\n            \"time\": \"2023-01-27T17:15:33.434400219Z\",\n    \u2003       \"actions\": [\n   \u2003\u2003\u2003          {\n    \u2003\u2003\u2003\u2003            \"action\": \"ReceiveReceipt\",\n     \u2003\u2003\u2003\u2003           \"count\": 1,\n    \u2003\u2003\u2003\u2003            \"lastInfo\": {\n     \u2003\u2003\u2003\u2003\u2003              \"protocolId\": \"000004897621/000000\"\n    \u2003\u2003\u2003\u2003            },\n    \u2003\u2003\u2003\u2003            \"lastOccurrence\": \"2023-01-27T17:15:33.94120833Z\",\n    \u2003\u2003\u2003\u2003            \"time\": \"2023-01-27T17:15:33.94120833Z\"\n   \u2003\u2003\u2003          },\n   \u2003\u2003\u2003          {\n   \u2003\u2003\u2003\u2003             \"action\": \"Confirm\",\n    \u2003\u2003\u2003\u2003            \"count\": 1,\n    \u2003\u2003\u2003\u2003            \"lastOccurrence\": \"2023-01-27T17:16:02.780275549Z\",\n    \u2003\u2003\u2003\u2003            \"time\": \"2023-01-27T17:16:02.780275382Z\"\n    \u2003\u2003\u2003         }\n   \u2003\u2003       ],\n  \u2003     },\n  \u2003     {\n \u2003\u2003         \"subStatus\": \"Confirmed\",\n  \u2003\u2003        \"time\": \"2023-01-27T17:16:03.990309381Z\",\n  \u2003\u2003        \"actions\": [],\n  \u2003     }\n    ]\n    ...\n}\n
      "},{"location":"reference/config/","title":"Configuration Reference","text":""},{"location":"reference/config/#admin","title":"admin","text":"Key Description Type Default Value enabled Deprecated - use spi.enabled instead boolean <nil>"},{"location":"reference/config/#api","title":"api","text":"Key Description Type Default Value defaultFilterLimit The maximum number of rows to return if no limit is specified on an API request int 25 dynamicPublicURLHeader Dynamic header that informs the backend the base public URL for the request, in order to build URL links in OpenAPI/SwaggerUI string <nil> maxFilterLimit The largest value of limit that an HTTP client can specify in a request int 1000 passthroughHeaders A list of HTTP request headers to pass through to dependency microservices []string [] requestMaxTimeout The maximum amount of time that an HTTP client can specify in a Request-Timeout header to keep a specific request open time.Duration 10m requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 120s"},{"location":"reference/config/#assetmanager","title":"asset.manager","text":"Key Description Type Default Value keyNormalization Mechanism to normalize keys before using them. Valid options are blockchain_plugin - use blockchain plugin (default) or none - do not attempt normalization (deprecated - use namespaces.predefined[].asset.manager.keyNormalization) string blockchain_plugin"},{"location":"reference/config/#batchmanager","title":"batch.manager","text":"Key Description Type Default Value minimumPollDelay The minimum time the batch manager waits between polls on the DB - to prevent thrashing time.Duration 100ms pollTimeout How long to wait without any notifications of new messages before doing a page query time.Duration 30s readPageSize The size of each page of messages read from the database into memory when assembling batches int 100"},{"location":"reference/config/#batchretry","title":"batch.retry","text":"Key Description Type Default Value factor The retry backoff factor float32 2 initDelay The initial retry delay time.Duration 250ms maxDelay The maximum retry delay time.Duration 30s"},{"location":"reference/config/#blobreceiverretry","title":"blobreceiver.retry","text":"Key Description Type Default Value factor The retry backoff factor float32 2 initialDelay The initial retry delay time.Duration 250ms maxDelay The maximum retry delay time.Duration 1m"},{"location":"reference/config/#blobreceiverworker","title":"blobreceiver.worker","text":"Key Description Type Default Value batchMaxInserts The maximum number of items the blob receiver worker will insert in a batch int 200 batchTimeout The maximum amount of the the blob receiver worker will wait time.Duration 50ms count The number of blob receiver workers int 5"},{"location":"reference/config/#broadcastbatch","title":"broadcast.batch","text":"Key Description Type Default Value agentTimeout How long to keep around a batching agent for a sending identity before disposal string 2m payloadLimit The maximum payload size of a batch for broadcast messages BytesSize 800Kb size The maximum number of messages that can be packed into a batch int 200 timeout The timeout to wait for a batch to fill, before sending time.Duration 1s"},{"location":"reference/config/#cache","title":"cache","text":"Key Description Type Default Value enabled Enables caching, defaults to true boolean true"},{"location":"reference/config/#cacheaddressresolver","title":"cache.addressresolver","text":"Key Description Type Default Value limit Max number of cached items for address resolver int 1000 ttl Time to live of cached items for address resolver string 24h"},{"location":"reference/config/#cachebatch","title":"cache.batch","text":"Key Description Type Default Value limit Max number of cached items for batches int 100 ttl Time to live of cache items for batches string 5m"},{"location":"reference/config/#cacheblockchain","title":"cache.blockchain","text":"Key Description Type Default Value limit Max number of cached items for blockchain int 100 ttl Time to live of cached items for blockchain string 5m"},{"location":"reference/config/#cacheblockchainevent","title":"cache.blockchainevent","text":"Key Description Type Default Value limit Max number of cached blockchain events for transactions int 1000 ttl Time to live of cached blockchain events for transactions string 5m"},{"location":"reference/config/#cacheeventlistenertopic","title":"cache.eventlistenertopic","text":"Key Description Type Default Value limit Max number of cached items for blockchain listener topics int 100 ttl Time to live of cached items for blockchain listener topics string 5m"},{"location":"reference/config/#cachegroup","title":"cache.group","text":"Key Description Type Default Value limit Max number of cached items for groups int 50 ttl Time to live of cached items for groups string 1h"},{"location":"reference/config/#cacheidentity","title":"cache.identity","text":"Key Description Type Default Value limit Max number of cached identities for identity manager int 100 ttl Time to live of cached identities for identity manager string 1h"},{"location":"reference/config/#cachemessage","title":"cache.message","text":"Key Description Type Default Value size Max size of cached messages for data manager BytesSize 50Mb ttl Time to live of cached messages for data manager string 5m"},{"location":"reference/config/#cachemethods","title":"cache.methods","text":"Key Description Type Default Value limit Max number of cached items for schema validations on blockchain methods int 200 ttl Time to live of cached items for schema validations on blockchain methods string 5m"},{"location":"reference/config/#cacheoperations","title":"cache.operations","text":"Key Description Type Default Value limit Max number of cached items for operations int 1000 ttl Time to live of cached items for operations string 5m"},{"location":"reference/config/#cachetokenpool","title":"cache.tokenpool","text":"Key Description Type Default Value limit Max number of cached items for token pools int 100 ttl Time to live of cached items for token pool string 1h"},{"location":"reference/config/#cachetransaction","title":"cache.transaction","text":"Key Description Type Default Value size Max size of cached transactions BytesSize 1Mb ttl Time to live of cached transactions string 5m"},{"location":"reference/config/#cachevalidator","title":"cache.validator","text":"Key Description Type Default Value size Max size of cached validators for data manager BytesSize 1Mb ttl Time to live of cached validators for data manager string 1h"},{"location":"reference/config/#config","title":"config","text":"Key Description Type Default Value autoReload Monitor the configuration file for changes, and automatically add/remove/reload namespaces and plugins boolean <nil>"},{"location":"reference/config/#cors","title":"cors","text":"Key Description Type Default Value credentials CORS setting to control whether a browser allows credentials to be sent to this API boolean true debug Whether debug is enabled for the CORS implementation boolean false enabled Whether CORS is enabled boolean true headers CORS setting to control the allowed headers []string [*] maxAge The maximum age a browser should rely on CORS checks time.Duration 600 methods CORS setting to control the allowed methods []string [GET POST PUT PATCH DELETE] origins CORS setting to control the allowed origins []string [*]"},{"location":"reference/config/#debug","title":"debug","text":"Key Description Type Default Value address The HTTP interface the go debugger binds to string localhost port An HTTP port on which to enable the go debugger int -1"},{"location":"reference/config/#downloadretry","title":"download.retry","text":"Key Description Type Default Value factor The retry backoff factor float32 2 initialDelay The initial retry delay time.Duration 100ms maxAttempts The maximum number attempts int 100 maxDelay The maximum retry delay time.Duration 1m"},{"location":"reference/config/#downloadworker","title":"download.worker","text":"Key Description Type Default Value count The number of download workers int 10 queueLength The length of the work queue in the channel to the workers - defaults to 2x the worker count int <nil>"},{"location":"reference/config/#eventaggregator","title":"event.aggregator","text":"Key Description Type Default Value batchSize The maximum number of records to read from the DB before performing an aggregation run BytesSize 200 batchTimeout How long to wait for new events to arrive before performing aggregation on a page of events time.Duration 0ms firstEvent The first event the aggregator should process, if no previous offest is stored in the DB. Valid options are oldest or newest string oldest pollTimeout The time to wait without a notification of new events, before trying a select on the table time.Duration 30s rewindQueryLimit Safety limit on the maximum number of records to search when performing queries to search for rewinds int 1000 rewindQueueLength The size of the queue into the rewind dispatcher int 10 rewindTimeout The minimum time to wait for rewinds to accumulate before resolving them time.Duration 50ms"},{"location":"reference/config/#eventaggregatorretry","title":"event.aggregator.retry","text":"Key Description Type Default Value factor The retry backoff factor float32 2 initDelay The initial retry delay time.Duration 100ms maxDelay The maximum retry delay time.Duration 30s"},{"location":"reference/config/#eventdbevents","title":"event.dbevents","text":"Key Description Type Default Value bufferSize The size of the buffer of change events BytesSize 100"},{"location":"reference/config/#eventdispatcher","title":"event.dispatcher","text":"Key Description Type Default Value batchTimeout A short time to wait for new events to arrive before re-polling for new events time.Duration 0ms bufferLength The number of events + attachments an individual dispatcher should hold in memory ready for delivery to the subscription int 5 pollTimeout The time to wait without a notification of new events, before trying a select on the table time.Duration 30s"},{"location":"reference/config/#eventdispatcherretry","title":"event.dispatcher.retry","text":"Key Description Type Default Value factor The retry backoff factor float32 <nil> initDelay The initial retry delay time.Duration <nil> maxDelay The maximum retry delay time.Duration <nil>"},{"location":"reference/config/#eventtransports","title":"event.transports","text":"Key Description Type Default Value default The default event transport for new subscriptions string websockets enabled Which event interface plugins are enabled boolean [websockets webhooks]"},{"location":"reference/config/#eventswebhooks","title":"events.webhooks","text":"Key Description Type Default Value connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s headers Adds custom headers to HTTP requests map[string]string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s"},{"location":"reference/config/#eventswebhooksauth","title":"events.webhooks.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#eventswebhooksproxy","title":"events.webhooks.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to connect through string <nil>"},{"location":"reference/config/#eventswebhooksretry","title":"events.webhooks.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#eventswebhookstls","title":"events.webhooks.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#eventswebsockets","title":"events.websockets","text":"Key Description Type Default Value readBufferSize WebSocket read buffer size BytesSize 16Kb writeBufferSize WebSocket write buffer size BytesSize 16Kb"},{"location":"reference/config/#histograms","title":"histograms","text":"Key Description Type Default Value maxChartRows The maximum rows to fetch for each histogram bucket int 100"},{"location":"reference/config/#http","title":"http","text":"Key Description Type Default Value address The IP address on which the HTTP API should listen IP Address string 127.0.0.1 port The port on which the HTTP API should listen int 5000 publicURL The fully qualified public URL for the API. This is used for building URLs in HTTP responses and in OpenAPI Spec generation URL string <nil> readTimeout The maximum time to wait when reading from an HTTP connection time.Duration 15s shutdownTimeout The maximum amount of time to wait for any open HTTP requests to finish before shutting down the HTTP server time.Duration 10s writeTimeout The maximum time to wait when writing to an HTTP connection time.Duration 15s"},{"location":"reference/config/#httpauth","title":"http.auth","text":"Key Description Type Default Value type The auth plugin to use for server side authentication of requests string <nil>"},{"location":"reference/config/#httpauthbasic","title":"http.auth.basic","text":"Key Description Type Default Value passwordfile The path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt. string <nil>"},{"location":"reference/config/#httptls","title":"http.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#log","title":"log","text":"Key Description Type Default Value compress Determines if the rotated log files should be compressed using gzip boolean <nil> filename Filename is the file to write logs to. Backup log files will be retained in the same directory string <nil> filesize MaxSize is the maximum size the log file before it gets rotated BytesSize 100m forceColor Force color to be enabled, even when a non-TTY output is detected boolean <nil> includeCodeInfo Enables the report caller for including the calling file and line number, and the calling function. If using text logs, it uses the logrus text format rather than the default prefix format. boolean false level The log level - error, warn, info, debug, trace string info maxAge The maximum time to retain old log files based on the timestamp encoded in their filename time.Duration 24h maxBackups Maximum number of old log files to retain int 2 noColor Force color to be disabled, event when TTY output is detected boolean <nil> timeFormat Custom time format for logs Time format string 2006-01-02T15:04:05.000Z07:00 utc Use UTC timestamps for logs boolean false"},{"location":"reference/config/#logjson","title":"log.json","text":"Key Description Type Default Value enabled Enables JSON formatted logs rather than text. All log color settings are ignored when enabled. boolean false"},{"location":"reference/config/#logjsonfields","title":"log.json.fields","text":"Key Description Type Default Value file configures the JSON key containing the calling file string file func Configures the JSON key containing the calling function string func level Configures the JSON key containing the log level string level message Configures the JSON key containing the log message string message timestamp Configures the JSON key containing the timestamp of the log string @timestamp"},{"location":"reference/config/#messagewriter","title":"message.writer","text":"Key Description Type Default Value batchMaxInserts The maximum number of database inserts to include when writing a single batch of messages + data int 200 batchTimeout How long to wait for more messages to arrive before flushing the batch time.Duration 10ms count The number of message writer workers int 5"},{"location":"reference/config/#metrics","title":"metrics","text":"Key Description Type Default Value address The IP address on which the metrics HTTP API should listen int 127.0.0.1 enabled Enables the metrics API boolean true path The path from which to serve the Prometheus metrics string /metrics port The port on which the metrics HTTP API should listen int 6000 publicURL The fully qualified public URL for the metrics API. This is used for building URLs in HTTP responses and in OpenAPI Spec generation URL string <nil> readTimeout The maximum time to wait when reading from an HTTP connection time.Duration 15s shutdownTimeout The maximum amount of time to wait for any open HTTP requests to finish before shutting down the HTTP server time.Duration 10s writeTimeout The maximum time to wait when writing to an HTTP connection time.Duration 15s"},{"location":"reference/config/#metricsauth","title":"metrics.auth","text":"Key Description Type Default Value type The auth plugin to use for server side authentication of requests string <nil>"},{"location":"reference/config/#metricsauthbasic","title":"metrics.auth.basic","text":"Key Description Type Default Value passwordfile The path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt. string <nil>"},{"location":"reference/config/#metricstls","title":"metrics.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#namespaces","title":"namespaces","text":"Key Description Type Default Value default The default namespace - must be in the predefined list string default predefined A list of namespaces to ensure exists, without requiring a broadcast from the network List string <nil>"},{"location":"reference/config/#namespacespredefined","title":"namespaces.predefined[]","text":"Key Description Type Default Value defaultKey A default signing key for blockchain transactions within this namespace string <nil> description A description for the namespace string <nil> name The name of the namespace (must be unique) string <nil> plugins The list of plugins for this namespace string <nil>"},{"location":"reference/config/#namespacespredefinedassetmanager","title":"namespaces.predefined[].asset.manager","text":"Key Description Type Default Value keyNormalization Mechanism to normalize keys before using them. Valid options are blockchain_plugin - use blockchain plugin (default) or none - do not attempt normalization string <nil>"},{"location":"reference/config/#namespacespredefinedmultiparty","title":"namespaces.predefined[].multiparty","text":"Key Description Type Default Value enabled Enables multi-party mode for this namespace (defaults to true if an org name or key is configured, either here or at the root level) boolean <nil> networknamespace The shared namespace name to be sent in multiparty messages, if it differs from the local namespace name string <nil>"},{"location":"reference/config/#namespacespredefinedmultipartycontract","title":"namespaces.predefined[].multiparty.contract[]","text":"Key Description Type Default Value firstEvent The first event the contract should process. Valid options are oldest or newest string <nil> location A blockchain-specific contract location. For example, an Ethereum contract address, or a Fabric chaincode name and channel string <nil> options Blockchain-specific contract options string <nil>"},{"location":"reference/config/#namespacespredefinedmultipartynode","title":"namespaces.predefined[].multiparty.node","text":"Key Description Type Default Value description A description for the node in this namespace string <nil> name The node name for this namespace string <nil>"},{"location":"reference/config/#namespacespredefinedmultipartyorg","title":"namespaces.predefined[].multiparty.org","text":"Key Description Type Default Value description A description for the local root organization within this namespace string <nil> key The signing key allocated to the root organization within this namespace string <nil> name A short name for the local root organization within this namespace string <nil>"},{"location":"reference/config/#namespacespredefinedtlsconfigs","title":"namespaces.predefined[].tlsConfigs[]","text":"Key Description Type Default Value name Name of the TLS Config string <nil>"},{"location":"reference/config/#namespacespredefinedtlsconfigstls","title":"namespaces.predefined[].tlsConfigs[].tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#namespacesretry","title":"namespaces.retry","text":"Key Description Type Default Value factor The retry backoff factor float32 2 initDelay The initial retry delay time.Duration 5s maxDelay The maximum retry delay time.Duration 1m"},{"location":"reference/config/#node","title":"node","text":"Key Description Type Default Value description The description of this FireFly node string <nil> name The name of this FireFly node string <nil>"},{"location":"reference/config/#opupdateretry","title":"opupdate.retry","text":"Key Description Type Default Value factor The retry backoff factor float32 2 initialDelay The initial retry delay time.Duration 250ms maxDelay The maximum retry delay time.Duration 1m"},{"location":"reference/config/#opupdateworker","title":"opupdate.worker","text":"Key Description Type Default Value batchMaxInserts The maximum number of database inserts to include when writing a single batch of messages + data int 200 batchTimeout How long to wait for more messages to arrive before flushing the batch time.Duration 50ms count The number of operation update works int 5 queueLength The size of the queue for the Operation Update worker int 50"},{"location":"reference/config/#orchestrator","title":"orchestrator","text":"Key Description Type Default Value startupAttempts The number of times to attempt to connect to core infrastructure on startup string 5"},{"location":"reference/config/#org","title":"org","text":"Key Description Type Default Value description A description of the organization to which this FireFly node belongs (deprecated - should be set on each multi-party namespace instead) string <nil> key The signing key allocated to the organization (deprecated - should be set on each multi-party namespace instead) string <nil> name The name of the organization to which this FireFly node belongs (deprecated - should be set on each multi-party namespace instead) string <nil>"},{"location":"reference/config/#plugins","title":"plugins","text":"Key Description Type Default Value auth Authorization plugin configuration map[string]string <nil> blockchain The list of configured Blockchain plugins string <nil> database The list of configured Database plugins string <nil> dataexchange The array of configured Data Exchange plugins string <nil> identity The list of available Identity plugins string <nil> sharedstorage The list of configured Shared Storage plugins string <nil> tokens The token plugin configurations string <nil>"},{"location":"reference/config/#pluginsauth","title":"plugins.auth[]","text":"Key Description Type Default Value name The name of the auth plugin to use string <nil> type The type of the auth plugin to use string <nil>"},{"location":"reference/config/#pluginsauthbasic","title":"plugins.auth[].basic","text":"Key Description Type Default Value passwordfile The path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt. string <nil>"},{"location":"reference/config/#pluginsblockchain","title":"plugins.blockchain[]","text":"Key Description Type Default Value name The name of the configured Blockchain plugin string <nil> type The type of the configured Blockchain Connector plugin string <nil>"},{"location":"reference/config/#pluginsblockchainethereumaddressresolver","title":"plugins.blockchain[].ethereum.addressResolver","text":"Key Description Type Default Value alwaysResolve Causes the address resolver to be invoked on every API call that submits a signing key, regardless of whether the input string conforms to an 0x address. Also disables any result caching boolean <nil> bodyTemplate The body go template string to use when making HTTP requests. The template input contains '.Key' and '.Intent' string variables. Go Template string <nil> connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s headers Adds custom headers to HTTP requests string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 method The HTTP method to use when making requests to the Address Resolver string GET passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s responseField The name of a JSON field that is provided in the response, that contains the ethereum address (default address) string address retainOriginal When true the original pre-resolved string is retained after the lookup, and passed down to Ethconnect as the from address boolean <nil> tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s url The URL of the Address Resolver string <nil> urlTemplate The URL Go template string to use when calling the Address Resolver. The template input contains '.Key' and '.Intent' string variables. Go Template string <nil>"},{"location":"reference/config/#pluginsblockchainethereumaddressresolverauth","title":"plugins.blockchain[].ethereum.addressResolver.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#pluginsblockchainethereumaddressresolverproxy","title":"plugins.blockchain[].ethereum.addressResolver.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to use when connecting to the Address Resolver URL string <nil>"},{"location":"reference/config/#pluginsblockchainethereumaddressresolverretry","title":"plugins.blockchain[].ethereum.addressResolver.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#pluginsblockchainethereumaddressresolvertls","title":"plugins.blockchain[].ethereum.addressResolver.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#pluginsblockchainethereumethconnect","title":"plugins.blockchain[].ethereum.ethconnect","text":"Key Description Type Default Value batchSize The number of events Ethconnect should batch together for delivery to FireFly core. Only applies when automatically creating a new event stream int 50 batchTimeout How long Ethconnect should wait for new events to arrive and fill a batch, before sending the batch to FireFly core. Only applies when automatically creating a new event stream time.Duration 500 connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s fromBlock The first event this FireFly instance should listen to from the BatchPin smart contract. Default=0. Only affects initial creation of the event stream Address string 0 headers Adds custom headers to HTTP requests map[string]string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms instance The Ethereum address of the FireFly BatchPin smart contract that has been deployed to the blockchain Address string <nil> maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false prefixLong The prefix that will be used for Ethconnect specific HTTP headers when FireFly makes requests to Ethconnect string firefly prefixShort The prefix that will be used for Ethconnect specific query parameters when FireFly makes requests to Ethconnect string fly requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s topic The websocket listen topic that the node should register on, which is important if there are multiple nodes using a single ethconnect string <nil> url The URL of the Ethconnect instance URL string <nil>"},{"location":"reference/config/#pluginsblockchainethereumethconnectauth","title":"plugins.blockchain[].ethereum.ethconnect.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#pluginsblockchainethereumethconnectbackgroundstart","title":"plugins.blockchain[].ethereum.ethconnect.backgroundStart","text":"Key Description Type Default Value enabled Start the Ethconnect plugin in the background and enter retry loop if failed to start boolean <nil> factor Set the factor by which the delay increases when retrying float32 2 initialDelay Delay between restarts in the case where we retry to restart the ethereum plugin time.Duration 5s maxDelay Max delay between restarts in the case where we retry to restart the ethereum plugin time.Duration 1m"},{"location":"reference/config/#pluginsblockchainethereumethconnectproxy","title":"plugins.blockchain[].ethereum.ethconnect.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to use when connecting to Ethconnect URL string <nil>"},{"location":"reference/config/#pluginsblockchainethereumethconnectretry","title":"plugins.blockchain[].ethereum.ethconnect.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#pluginsblockchainethereumethconnecttls","title":"plugins.blockchain[].ethereum.ethconnect.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#pluginsblockchainethereumethconnectws","title":"plugins.blockchain[].ethereum.ethconnect.ws","text":"Key Description Type Default Value connectionTimeout The amount of time to wait while establishing a connection (or auto-reconnection) time.Duration 45s heartbeatInterval The amount of time to wait between heartbeat signals on the WebSocket connection time.Duration 30s initialConnectAttempts The number of attempts FireFly will make to connect to the WebSocket when starting up, before failing int 5 path The WebSocket sever URL to which FireFly should connect WebSocket URL string <nil> readBufferSize The size in bytes of the read buffer for the WebSocket connection BytesSize 16Kb url URL to use for WebSocket - overrides url one level up (in the HTTP config) string <nil> writeBufferSize The size in bytes of the write buffer for the WebSocket connection BytesSize 16Kb"},{"location":"reference/config/#pluginsblockchainethereumfftm","title":"plugins.blockchain[].ethereum.fftm","text":"Key Description Type Default Value connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s headers Adds custom headers to HTTP requests map[string]string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s url The URL of the FireFly Transaction Manager runtime, if enabled string <nil>"},{"location":"reference/config/#pluginsblockchainethereumfftmauth","title":"plugins.blockchain[].ethereum.fftm.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#pluginsblockchainethereumfftmproxy","title":"plugins.blockchain[].ethereum.fftm.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to use when connecting to the Transaction Manager string <nil>"},{"location":"reference/config/#pluginsblockchainethereumfftmretry","title":"plugins.blockchain[].ethereum.fftm.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#pluginsblockchainethereumfftmtls","title":"plugins.blockchain[].ethereum.fftm.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#pluginsblockchainfabricfabconnect","title":"plugins.blockchain[].fabric.fabconnect","text":"Key Description Type Default Value batchSize The number of events Fabconnect should batch together for delivery to FireFly core. Only applies when automatically creating a new event stream int 50 batchTimeout The maximum amount of time to wait for a batch to complete time.Duration 500 chaincode The name of the Fabric chaincode that FireFly will use for BatchPin transactions (deprecated - use fireflyContract[].chaincode) string <nil> channel The Fabric channel that FireFly will use for BatchPin transactions string <nil> connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s headers Adds custom headers to HTTP requests map[string]string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false prefixLong The prefix that will be used for Fabconnect specific HTTP headers when FireFly makes requests to Fabconnect string firefly prefixShort The prefix that will be used for Fabconnect specific query parameters when FireFly makes requests to Fabconnect string fly requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s signer The Fabric signing key to use when submitting transactions to Fabconnect string <nil> tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s topic The websocket listen topic that the node should register on, which is important if there are multiple nodes using a single Fabconnect string <nil> url The URL of the Fabconnect instance URL string <nil>"},{"location":"reference/config/#pluginsblockchainfabricfabconnectauth","title":"plugins.blockchain[].fabric.fabconnect.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#pluginsblockchainfabricfabconnectbackgroundstart","title":"plugins.blockchain[].fabric.fabconnect.backgroundStart","text":"Key Description Type Default Value enabled Start the fabric plugin in the background and enter retry loop if failed to start boolean <nil> factor Set the factor by which the delay increases when retrying float32 2 initialDelay Delay between restarts in the case where we retry to restart the fabric plugin time.Duration 5s maxDelay Max delay between restarts in the case where we retry to restart the fabric plugin time.Duration 1m"},{"location":"reference/config/#pluginsblockchainfabricfabconnectproxy","title":"plugins.blockchain[].fabric.fabconnect.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to use when connecting to Fabconnect URL string <nil>"},{"location":"reference/config/#pluginsblockchainfabricfabconnectretry","title":"plugins.blockchain[].fabric.fabconnect.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#pluginsblockchainfabricfabconnecttls","title":"plugins.blockchain[].fabric.fabconnect.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#pluginsblockchainfabricfabconnectws","title":"plugins.blockchain[].fabric.fabconnect.ws","text":"Key Description Type Default Value connectionTimeout The amount of time to wait while establishing a connection (or auto-reconnection) time.Duration 45s heartbeatInterval The amount of time to wait between heartbeat signals on the WebSocket connection time.Duration 30s initialConnectAttempts The number of attempts FireFly will make to connect to the WebSocket when starting up, before failing int 5 path The WebSocket sever URL to which FireFly should connect WebSocket URL string <nil> readBufferSize The size in bytes of the read buffer for the WebSocket connection BytesSize 16Kb url URL to use for WebSocket - overrides url one level up (in the HTTP config) string <nil> writeBufferSize The size in bytes of the write buffer for the WebSocket connection BytesSize 16Kb"},{"location":"reference/config/#pluginsblockchaintezosaddressresolver","title":"plugins.blockchain[].tezos.addressResolver","text":"Key Description Type Default Value alwaysResolve Causes the address resolver to be invoked on every API call that submits a signing key. Also disables any result caching boolean <nil> bodyTemplate The body go template string to use when making HTTP requests Go Template string <nil> connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s headers Adds custom headers to HTTP requests map[string]string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 method The HTTP method to use when making requests to the Address Resolver string GET passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s responseField The name of a JSON field that is provided in the response, that contains the tezos address (default address) string address retainOriginal When true the original pre-resolved string is retained after the lookup, and passed down to Tezosconnect as the from address boolean <nil> tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s url The URL of the Address Resolver string <nil> urlTemplate The URL Go template string to use when calling the Address Resolver. The template input contains '.Key' and '.Intent' string variables. Go Template string <nil>"},{"location":"reference/config/#pluginsblockchaintezosaddressresolverauth","title":"plugins.blockchain[].tezos.addressResolver.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#pluginsblockchaintezosaddressresolverproxy","title":"plugins.blockchain[].tezos.addressResolver.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to connect through string <nil>"},{"location":"reference/config/#pluginsblockchaintezosaddressresolverretry","title":"plugins.blockchain[].tezos.addressResolver.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#pluginsblockchaintezosaddressresolvertls","title":"plugins.blockchain[].tezos.addressResolver.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#pluginsblockchaintezostezosconnect","title":"plugins.blockchain[].tezos.tezosconnect","text":"Key Description Type Default Value batchSize The number of events Tezosconnect should batch together for delivery to FireFly core. Only applies when automatically creating a new event stream int 50 batchTimeout How long Tezosconnect should wait for new events to arrive and fill a batch, before sending the batch to FireFly core. Only applies when automatically creating a new event stream time.Duration 500 connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s headers Adds custom headers to HTTP requests map[string]string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false prefixLong The prefix that will be used for Tezosconnect specific HTTP headers when FireFly makes requests to Tezosconnect string firefly prefixShort The prefix that will be used for Tezosconnect specific query parameters when FireFly makes requests to Tezosconnect string fly requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s topic The websocket listen topic that the node should register on, which is important if there are multiple nodes using a single tezosconnect string <nil> url The URL of the Tezosconnect instance URL string <nil>"},{"location":"reference/config/#pluginsblockchaintezostezosconnectauth","title":"plugins.blockchain[].tezos.tezosconnect.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#pluginsblockchaintezostezosconnectbackgroundstart","title":"plugins.blockchain[].tezos.tezosconnect.backgroundStart","text":"Key Description Type Default Value enabled Start the Tezosconnect plugin in the background and enter retry loop if failed to start boolean <nil> factor Set the factor by which the delay increases when retrying float32 2 initialDelay Delay between restarts in the case where we retry to restart the tezos plugin time.Duration 5s maxDelay Max delay between restarts in the case where we retry to restart the tezos plugin time.Duration 1m"},{"location":"reference/config/#pluginsblockchaintezostezosconnectproxy","title":"plugins.blockchain[].tezos.tezosconnect.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to use when connecting to Tezosconnect URL string <nil>"},{"location":"reference/config/#pluginsblockchaintezostezosconnectretry","title":"plugins.blockchain[].tezos.tezosconnect.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#pluginsblockchaintezostezosconnecttls","title":"plugins.blockchain[].tezos.tezosconnect.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#pluginsblockchaintezostezosconnectws","title":"plugins.blockchain[].tezos.tezosconnect.ws","text":"Key Description Type Default Value connectionTimeout The amount of time to wait while establishing a connection (or auto-reconnection) time.Duration 45s heartbeatInterval The amount of time to wait between heartbeat signals on the WebSocket connection time.Duration 30s initialConnectAttempts The number of attempts FireFly will make to connect to the WebSocket when starting up, before failing int 5 path The WebSocket sever URL to which FireFly should connect WebSocket URL string <nil> readBufferSize The size in bytes of the read buffer for the WebSocket connection BytesSize 16Kb url URL to use for WebSocket - overrides url one level up (in the HTTP config) string <nil> writeBufferSize The size in bytes of the write buffer for the WebSocket connection BytesSize 16Kb"},{"location":"reference/config/#pluginsdatabase","title":"plugins.database[]","text":"Key Description Type Default Value name The name of the Database plugin string <nil> type The type of the configured Database plugin string <nil>"},{"location":"reference/config/#pluginsdatabasepostgres","title":"plugins.database[].postgres","text":"Key Description Type Default Value maxConnIdleTime The maximum amount of time a database connection can be idle time.Duration 1m maxConnLifetime The maximum amount of time to keep a database connection open time.Duration <nil> maxConns Maximum connections to the database int 50 maxIdleConns The maximum number of idle connections to the database int <nil> url The PostgreSQL connection string for the database string <nil>"},{"location":"reference/config/#pluginsdatabasepostgresmigrations","title":"plugins.database[].postgres.migrations","text":"Key Description Type Default Value auto Enables automatic database migrations boolean false directory The directory containing the numerically ordered migration DDL files to apply to the database string ./db/migrations/postgres"},{"location":"reference/config/#pluginsdatabasesqlite3","title":"plugins.database[].sqlite3","text":"Key Description Type Default Value maxConnIdleTime The maximum amount of time a database connection can be idle time.Duration 1m maxConnLifetime The maximum amount of time to keep a database connection open time.Duration <nil> maxConns Maximum connections to the database int 1 maxIdleConns The maximum number of idle connections to the database int <nil> url The SQLite connection string for the database string <nil>"},{"location":"reference/config/#pluginsdatabasesqlite3migrations","title":"plugins.database[].sqlite3.migrations","text":"Key Description Type Default Value auto Enables automatic database migrations boolean false directory The directory containing the numerically ordered migration DDL files to apply to the database string ./db/migrations/sqlite"},{"location":"reference/config/#pluginsdataexchange","title":"plugins.dataexchange[]","text":"Key Description Type Default Value name The name of the configured Data Exchange plugin string <nil> type The Data Exchange plugin to use string <nil>"},{"location":"reference/config/#pluginsdataexchangeffdx","title":"plugins.dataexchange[].ffdx","text":"Key Description Type Default Value connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s headers Adds custom headers to HTTP requests map[string]string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms initEnabled Instructs FireFly to always post all current nodes to the /init API before connecting or reconnecting to the connector boolean false manifestEnabled Determines whether to require+validate a manifest from other DX instances in the network. Must be supported by the connector string false maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s url The URL of the Data Exchange instance URL string <nil>"},{"location":"reference/config/#pluginsdataexchangeffdxauth","title":"plugins.dataexchange[].ffdx.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#pluginsdataexchangeffdxbackgroundstart","title":"plugins.dataexchange[].ffdx.backgroundStart","text":"Key Description Type Default Value enabled Start the data exchange plugin in the background and enter retry loop if failed to start boolean false factor Set the factor by which the delay increases when retrying float32 2 initialDelay Delay between restarts in the case where we retry to restart the data exchange plugin time.Duration 5s maxDelay Max delay between restarts in the case where we retry to restart the data exchange plugin time.Duration 1m"},{"location":"reference/config/#pluginsdataexchangeffdxeventretry","title":"plugins.dataexchange[].ffdx.eventRetry","text":"Key Description Type Default Value factor The retry backoff factor, for event processing float32 2 initialDelay The initial retry delay, for event processing time.Duration 50ms maxDelay The maximum retry delay, for event processing time.Duration 30s"},{"location":"reference/config/#pluginsdataexchangeffdxproxy","title":"plugins.dataexchange[].ffdx.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to use when connecting to the Data Exchange URL string <nil>"},{"location":"reference/config/#pluginsdataexchangeffdxretry","title":"plugins.dataexchange[].ffdx.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#pluginsdataexchangeffdxtls","title":"plugins.dataexchange[].ffdx.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#pluginsdataexchangeffdxws","title":"plugins.dataexchange[].ffdx.ws","text":"Key Description Type Default Value connectionTimeout The amount of time to wait while establishing a connection (or auto-reconnection) time.Duration 45s heartbeatInterval The amount of time to wait between heartbeat signals on the WebSocket connection time.Duration 30s initialConnectAttempts The number of attempts FireFly will make to connect to the WebSocket when starting up, before failing int 5 path The WebSocket sever URL to which FireFly should connect WebSocket URL string <nil> readBufferSize The size in bytes of the read buffer for the WebSocket connection BytesSize 16Kb url URL to use for WebSocket - overrides url one level up (in the HTTP config) string <nil> writeBufferSize The size in bytes of the write buffer for the WebSocket connection BytesSize 16Kb"},{"location":"reference/config/#pluginsidentity","title":"plugins.identity[]","text":"Key Description Type Default Value name The name of a configured Identity plugin string <nil> type The type of a configured Identity plugin string <nil>"},{"location":"reference/config/#pluginssharedstorage","title":"plugins.sharedstorage[]","text":"Key Description Type Default Value name The name of the Shared Storage plugin to use string <nil> type The Shared Storage plugin to use string <nil>"},{"location":"reference/config/#pluginssharedstorageipfsapi","title":"plugins.sharedstorage[].ipfs.api","text":"Key Description Type Default Value connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s headers Adds custom headers to HTTP requests map[string]string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s url The URL for the IPFS API URL string <nil>"},{"location":"reference/config/#pluginssharedstorageipfsapiauth","title":"plugins.sharedstorage[].ipfs.api.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#pluginssharedstorageipfsapiproxy","title":"plugins.sharedstorage[].ipfs.api.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to use when connecting to the IPFS API URL string <nil>"},{"location":"reference/config/#pluginssharedstorageipfsapiretry","title":"plugins.sharedstorage[].ipfs.api.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#pluginssharedstorageipfsapitls","title":"plugins.sharedstorage[].ipfs.api.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#pluginssharedstorageipfsgateway","title":"plugins.sharedstorage[].ipfs.gateway","text":"Key Description Type Default Value connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s headers Adds custom headers to HTTP requests map[string]string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s url The URL for the IPFS Gateway URL string <nil>"},{"location":"reference/config/#pluginssharedstorageipfsgatewayauth","title":"plugins.sharedstorage[].ipfs.gateway.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#pluginssharedstorageipfsgatewayproxy","title":"plugins.sharedstorage[].ipfs.gateway.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to use when connecting to the IPFS Gateway URL string <nil>"},{"location":"reference/config/#pluginssharedstorageipfsgatewayretry","title":"plugins.sharedstorage[].ipfs.gateway.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#pluginssharedstorageipfsgatewaytls","title":"plugins.sharedstorage[].ipfs.gateway.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#pluginstokens","title":"plugins.tokens[]","text":"Key Description Type Default Value broadcastName The name to be used in broadcast messages related to this token plugin, if it differs from the local plugin name string <nil> name A name to identify this token plugin string <nil> type The type of the token plugin to use string <nil>"},{"location":"reference/config/#pluginstokensfftokens","title":"plugins.tokens[].fftokens","text":"Key Description Type Default Value connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted time.Duration 30s expectContinueTimeout See ExpectContinueTimeout in the Go docs time.Duration 1s headers Adds custom headers to HTTP requests map[string]string <nil> idleTimeout The max duration to hold a HTTP keepalive connection between calls time.Duration 475ms maxConnsPerHost The max number of connections, per unique hostname. Zero means no limit int 0 maxIdleConns The max number of idle connections to hold pooled int 100 passthroughHeadersEnabled Enable passing through the set of allowed HTTP request headers boolean false requestTimeout The maximum amount of time that a request is allowed to remain open time.Duration 30s tlsHandshakeTimeout The maximum amount of time to wait for a successful TLS handshake time.Duration 10s url The URL of the token connector URL string <nil>"},{"location":"reference/config/#pluginstokensfftokensauth","title":"plugins.tokens[].fftokens.auth","text":"Key Description Type Default Value password Password string <nil> username Username string <nil>"},{"location":"reference/config/#pluginstokensfftokensbackgroundstart","title":"plugins.tokens[].fftokens.backgroundStart","text":"Key Description Type Default Value enabled Start the tokens plugin in the background and enter retry loop if failed to start boolean false factor Set the factor by which the delay increases when retrying float32 2 initialDelay Delay between restarts in the case where we retry to restart the token plugin time.Duration 5s maxDelay Max delay between restarts in the case where we retry to restart the token plugin time.Duration 1m"},{"location":"reference/config/#pluginstokensfftokenseventretry","title":"plugins.tokens[].fftokens.eventRetry","text":"Key Description Type Default Value factor The retry backoff factor, for event processing float32 2 initialDelay The initial retry delay, for event processing time.Duration 50ms maxDelay The maximum retry delay, for event processing time.Duration 30s"},{"location":"reference/config/#pluginstokensfftokensproxy","title":"plugins.tokens[].fftokens.proxy","text":"Key Description Type Default Value url Optional HTTP proxy server to use when connecting to the token connector URL string <nil>"},{"location":"reference/config/#pluginstokensfftokensretry","title":"plugins.tokens[].fftokens.retry","text":"Key Description Type Default Value count The maximum number of times to retry int 5 enabled Enables retries boolean false errorStatusCodeRegex The regex that the error response status code must match to trigger retry string <nil> initWaitTime The initial retry delay time.Duration 250ms maxWaitTime The maximum retry delay time.Duration 30s"},{"location":"reference/config/#pluginstokensfftokenstls","title":"plugins.tokens[].fftokens.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#pluginstokensfftokensws","title":"plugins.tokens[].fftokens.ws","text":"Key Description Type Default Value connectionTimeout The amount of time to wait while establishing a connection (or auto-reconnection) time.Duration 45s heartbeatInterval The amount of time to wait between heartbeat signals on the WebSocket connection time.Duration 30s initialConnectAttempts The number of attempts FireFly will make to connect to the WebSocket when starting up, before failing int 5 path The WebSocket sever URL to which FireFly should connect WebSocket URL string <nil> readBufferSize The size in bytes of the read buffer for the WebSocket connection BytesSize 16Kb url URL to use for WebSocket - overrides url one level up (in the HTTP config) string <nil> writeBufferSize The size in bytes of the write buffer for the WebSocket connection BytesSize 16Kb"},{"location":"reference/config/#privatemessagingbatch","title":"privatemessaging.batch","text":"Key Description Type Default Value agentTimeout How long to keep around a batching agent for a sending identity before disposal time.Duration 2m payloadLimit The maximum payload size of a private message Data Exchange payload BytesSize 800Kb size The maximum number of messages in a batch for private messages int 200 timeout The timeout to wait for a batch to fill, before sending time.Duration 1s"},{"location":"reference/config/#privatemessagingretry","title":"privatemessaging.retry","text":"Key Description Type Default Value factor The retry backoff factor float32 2 initDelay The initial retry delay time.Duration 100ms maxDelay The maximum retry delay time.Duration 30s"},{"location":"reference/config/#spi","title":"spi","text":"Key Description Type Default Value address The IP address on which the admin HTTP API should listen IP Address string 127.0.0.1 enabled Enables the admin HTTP API boolean false port The port on which the admin HTTP API should listen int 5001 publicURL The fully qualified public URL for the admin API. This is used for building URLs in HTTP responses and in OpenAPI Spec generation URL string <nil> readTimeout The maximum time to wait when reading from an HTTP connection time.Duration 15s shutdownTimeout The maximum amount of time to wait for any open HTTP requests to finish before shutting down the HTTP server time.Duration 10s writeTimeout The maximum time to wait when writing to an HTTP connection time.Duration 15s"},{"location":"reference/config/#spiauth","title":"spi.auth","text":"Key Description Type Default Value type The auth plugin to use for server side authentication of requests string <nil>"},{"location":"reference/config/#spiauthbasic","title":"spi.auth.basic","text":"Key Description Type Default Value passwordfile The path to a .htpasswd file to use for authenticating requests. Passwords should be hashed with bcrypt. string <nil>"},{"location":"reference/config/#spitls","title":"spi.tls","text":"Key Description Type Default Value caFile The path to the CA file for TLS on this API string <nil> certFile The path to the certificate file for TLS on this API string <nil> clientAuth Enables or disables client auth for TLS on this API string <nil> enabled Enables or disables TLS on this API boolean false insecureSkipHostVerify When to true in unit test development environments to disable TLS verification. Use with extreme caution boolean <nil> keyFile The path to the private key file for TLS on this API string <nil> requiredDNAttributes A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes) map[string]string <nil>"},{"location":"reference/config/#spiws","title":"spi.ws","text":"Key Description Type Default Value blockedWarnInterval How often to log warnings in core, when an admin change event listener falls behind the stream they requested and misses events time.Duration 1m eventQueueLength Server-side queue length for events waiting for delivery over an admin change event listener websocket int 250 readBufferSize The size in bytes of the read buffer for the WebSocket connection BytesSize 16Kb writeBufferSize The size in bytes of the write buffer for the WebSocket connection BytesSize 16Kb"},{"location":"reference/config/#subscription","title":"subscription","text":"Key Description Type Default Value max The maximum number of pre-defined subscriptions that can exist (note for high fan-out consider connecting a dedicated pub/sub broker to the dispatcher) int 500"},{"location":"reference/config/#subscriptiondefaults","title":"subscription.defaults","text":"Key Description Type Default Value batchSize Default read ahead to enable for subscriptions that do not explicitly configure readahead int 50 batchTimeout Default batch timeout int 50ms"},{"location":"reference/config/#subscriptionevents","title":"subscription.events","text":"Key Description Type Default Value maxScanLength The maximum number of events a search for historical events matching a subscription will index from the database int 1000"},{"location":"reference/config/#subscriptionretry","title":"subscription.retry","text":"Key Description Type Default Value factor The retry backoff factor float32 2 initDelay The initial retry delay time.Duration 250ms maxDelay The maximum retry delay time.Duration 30s"},{"location":"reference/config/#transactionwriter","title":"transaction.writer","text":"Key Description Type Default Value batchMaxTransactions The maximum number of transaction inserts to include in a batch int 100 batchTimeout How long to wait for more transactions to arrive before flushing the batch time.Duration 10ms count The number of message writer workers int 5"},{"location":"reference/config/#ui","title":"ui","text":"Key Description Type Default Value enabled Enables the web user interface boolean true path The file system path which contains the static HTML, CSS, and JavaScript files for the user interface string <nil>"},{"location":"reference/events/","title":"Event Bus","text":""},{"location":"reference/events/#hyperledger-firefly-event-bus","title":"Hyperledger FireFly Event Bus","text":"

      The FireFly event bus provides your application with a single stream of events from all of the back-end services that plug into FireFly.

      Applications subscribe to these events using developer friendly protocols like WebSockets, and Webhooks. Additional transports and messaging systems like NATS, Kafka, and JMS Servers can be connected through plugins.

      Each application creates one or more Subscriptions to identify itself. In this subscription the application can choose to receive all events that are emitted within a namespace, or can use server-side filtering to only receive a sub-set of events.

      The event bus reliably keeps track of which events have been delivered to which applications, via an offset into the main event stream that is updated each time an application acknowledges receipt of events over its subscription.

      "},{"location":"reference/events/#event-driven-application-architecture","title":"Event-Driven Application Architecture","text":"

      Decentralized applications are built around a source of truth that is shared between multiple parties. No one party can change the state unilaterally, as their changes need to be processed in order with the other changes in the system. Each party processes requests to change shared state in the same order, against a common set of rules for what is allowed at that exact point in the processing. As a result everybody deterministically ends up with the same state at the end of the processing.

      This requires an event-driven programming model.

      You will find an event-driven model at the core of every blockchain Smart Contract technology.

      This event-driven approach is unavoidable regardless of how much of your business data & logic can be directly stored/processed on-chain, vs. off-chain.

      So Hyperledger FireFly aims to provide you with the tools to easily manage this model throughout your decentralized application stack.

      Your back-end application should be structured for this event-driven paradigm, with an Event Handler constantly listening for events, applying a consistent State Machine to those events and applying the changes to your Application Database.

      FireFly comes with a built in event processor for Token transfers & approvals, that implements this pattern to maintain balances, and transaction history in a rich query off-chain data cache.

      "},{"location":"reference/events/#decentralized-event-processing","title":"Decentralized Event Processing","text":"

      In a decentralized system, you need to consider that each organization runs its own applications, and has its own private database.

      At any given point in time different organizations will have slightly different views of what the most up to date information is - even for the blockchain state.

      As well as the agreed business logic, there will be private data and core system integration that are needed to process events as they happen. Some of this data might be received privately from other parties, over a secure communications channel (not the blockchain).

      The system must be eventually consistent across all parties for any business data/decision that those parties need to agree on. This happens by all parties processing the same events in the same order, and by applying the same business logic (for the parts of the business logic that are agreed).

      This means that when processing an event, a participant must have access to enough historical data/state to reach the same conclusion as everyone else.

      Let's look at a couple of examples.

      "},{"location":"reference/events/#example-1-a-fungible-token-balance-transfer","title":"Example 1: A fungible token balance transfer","text":"

      You need to be able to verify the complete lineage of the tokens being spent, in order to know that they cannot be double spent anywhere in the network.

      This means the transaction must be backed by a blockchain verifiable by all participants on the network that could hold balances of that token.

      You might be able to use advanced cryptography (such as zero-knowledge proofs) to mask the participants in the trade, but the transaction themselves must be verifiable to everyone in a global sequence that prevents double spending.

      "},{"location":"reference/events/#example-2-a-step-in-a-multi-party-business-process","title":"Example 2: A step in a multi-party business process","text":"

      Here it is likely you want to restrict visibility of the data to just the parties directly involved in the business process.

      To come to a common agreement on outcome, the parties must know they are processing the same data in the same order. So at minimum a proof (a hash of the data) needs to \"pinned\" to a blockchain ledger visible to all participants involved in the process.

      You can then choose to put more processing on the blockchain, to enforce some critical rules in the business state machine that must be executed fairly to prevent one party from cheating the system. Such as that the highest bid is chosen in a competitive bidding process, or a minimum set of parties have voted agreement before a transaction is finalized.

      Other steps in the process might include human decision making, private data from the core systems of one member, or proprietary business logic that one member is not willing to share. These steps are \"non-deterministic\" - you cannot predict the outcome, nor be guaranteed to reproduce the same outcome with the same inputs in the future.

      The FireFly event bus is designed to make triggering these non-deterministic steps easy, while still allowing them to be part of the overall state machine of the business process. You need to take care that the system is designed so parties cannot cheat, and must follow the rules. How much of that rule enforcement needs to be executed on-chain vs. off-chain (backed by a deterministic order through the blockchain) is different for each use case.

      Remember that tokens provide a great set of building blocks for on-chain steps in your decentralized applications. Enterprise NFTs allow generation of a globally unique ID, and track ownership. Fungible tokens allow value transfer, and can be extended with smart contracts that to lock/unlock funds in \"digital escrow\" while complex off-chain agreement happens.

      "},{"location":"reference/events/#privacy-groups-and-late-join","title":"Privacy groups and late join","text":"

      If a new participant needs to join into a business transaction that has already started, they must first \"catch up\" with the current state before they can play their part. In a real-world scenario they might not be allowed to see all the data that's visible to the other parties, so it is common to create a new stream of communications that includes all of the existing parties, plus the new party, to continue the process.

      If you use the same blockchain to back both groups, then you can safely order business process steps that involve different parties across these overlapping groups of participants.

      Using a single Ethereum permissioned side-chain for example.

      Alternatively, you can create dedicated distributed ledgers (DLTs) for communication between these groups of participants. This can allow more logic and data to go on-chain directly, although you still must consider the fact that this data is immutable and can never be deleted.

      Using Hyperledger Fabric channels for example.

      On top of either type of ledger, FireFly provides a private Group construct to facilitate secure off-chain data exchanges, and to efficiently pin these communications to the blockchain in batches.

      These private data exchanges can also be coordinated with most sophisticated on-chain transactions, such as token transfers.

      "},{"location":"reference/events/#event-types","title":"Event Types","text":"

      FireFly provides a number of different types of events to your application, designed to allow you to build your application state machine quickly and reliably.

      All events in FireFly share a common base structure, regardless of their type. They are then linked (via a reference) to an object that contains detailed information.

      The categories of event your application can receive are as follows:

      See the Core Resources/Event page for a full list of event types, and more details on the data you can expect for each type.

      "},{"location":"reference/events/#blockchain-events","title":"Blockchain events","text":"

      FireFly allows your application to subscribe to any event from a blockchain smart contract.

      In order for applications connected to the FireFly API to receive blockchain events from a smart contracts, a ContractListener fist must be created to instruct FireFly to listen to those events from the blockchain (via the blockchain plugin).

      Once you have configured the blockchain event listener, every event detected from the blockchain will result in a FireFly event delivered to your application of type blockchain_event_received.

      Check out the Custom Contracts Tutorial for a walk-through of how to set up listeners for the events from your smart contracts.

      FireFly automatically establishes listeners for some blockchain events:

      • Events from the FireFly BatchPin contract that is used to pin identities, off-chain data broadcast and private messaging to the blockchain.

      • Events from Token contracts, for which a Token Pool has been configured. These events are detected indirectly via the token connector.

      "},{"location":"reference/events/#token-events","title":"Token events","text":"

      FireFly provides a Wallet API, that is pluggable to multiple token implementations without needing to change your app.

      The pluggable API/Event interface allows all kinds of technical implementations of tokens to be fitted into a common framework.

      The following wallet operations are supported. These are universal to all token implementations - NFTs and fungible tokens alike:

      • Mint
      • Burn
      • Transfer
      • Approve

      FireFly processes, indexes and stores the events associated with these actions, for any Token Pool that has been configured on the FireFly node.

      See Token Transfer and Token Approval for more information on the individual operations.

      The token connector is responsible for mapping from the raw Blockchain Events, to the FireFly model for tokens. Reference token connector implementations are provided for common interface standards implemented by tokens - like ERC-20, ERC-721 and ERC-115.

      A particular token contract might have many additional features that are unique to that contract, particularly around governance. For these you would use the Smart Contract features of FireFly to interact with the blockchain API and Events directly.

      "},{"location":"reference/events/#message-events-on-chain-off-chain-coordinated","title":"Message events: on-chain / off-chain coordinated","text":"

      Event aggregation between data arriving off-chain, and the associated ordered proof/transaction events being confirmed on-chain, is a complex orchestration task.

      The universal order and additional transaction logic on-chain must be the source of truth for when and how an event is processed.

      However, that event cannot be processed until the off-chain private/broadcast data associated with that event is also available and verified against the on-chain hash of that additional data.

      They might arrive in any order, and no further events can be processed on that business transaction until the data is available.

      Multiple parties might be emitting events as part of the business transaction, and the outcome will only be assured to be the same by all parties if they process these events in the same order.

      Hyperledger FireFly handles this for you. Events related to a message are not emitted until both the on-chain and off-chain parts (including large binary attachments) are available+verified in your local FireFly node, and all previous messages on the same topic have been processed successfully by your application.

      Your application just needs to:

      1. Choose a suitable topic for your messages that determines the ordered stream it is part of. Such as a business transaction identifier.
      2. Make sure the application does not acknowledge a message, until it has finished processing it.

      See Message for more information

      "},{"location":"reference/events/#transaction-submission-events","title":"Transaction submission events","text":"

      These events are emitted each time a new transaction is initiated via the Firefly API.

      These events are only emitted on the local FireFly node that initiates an activity.

      For more information about FireFly Transactions, and how they relate to blockchain transactions, see Transaction.

      "},{"location":"reference/firefly_interface_format/","title":"FireFly Interface Format","text":"

      FireFly defines a common, blockchain agnostic way to describe smart contracts. This is referred to as a Contract Interface, and it is written in the FireFly Interface (FFI) format. It is a simple JSON document that has a name, a namespace, a version, a list of methods, and a list of events.

      "},{"location":"reference/firefly_interface_format/#overview","title":"Overview","text":"

      There are four required fields when broadcasting a contract interface in FireFly: a name, a version, a list of methods, and a list of events. A namespace field will also be filled in automatically based on the URL path parameter. Here is an example of the structure of the required fields:

      {\n  \"name\": \"example\",\n  \"version\": \"v1.0.0\",\n  \"methods\": [],\n  \"events\": []\n}\n

      NOTE: Contract interfaces are scoped to a namespace. Within a namespace each contract interface must have a unique name and version combination. The same name and version combination can exist in different namespaces simultaneously.

      "},{"location":"reference/firefly_interface_format/#method","title":"Method","text":"

      Let's look at a what goes inside the methods array now. It is also a JSON object that has a name, a list of params which are the arguments the function will take and a list of returns which are the return values of the function. It also has an optional description which can be helpful in OpenAPI Spec generation. Finally, it has an optional details object which wraps blockchain specific information about this method. This can be used by the blockchain plugin when invoking this function, and it is also used in documentation generation.

      {\n  \"name\": \"add\",\n  \"description\": \"Add two numbers together\",\n  \"params\": [],\n  \"returns\": [],\n  \"details\": {}\n}\n
      "},{"location":"reference/firefly_interface_format/#event","title":"Event","text":"

      What goes into the events array is very similar. It is also a JSON object that has a name and a list of params. The difference is that events don't have returns. Arguments that are passed to the event when it is emitted are in params. It also has an optional description which can be helpful in OpenAPI Spec generation. Finally, it has an optional details object which wraps blockchain specific information about this event. This can be used by the blockchain plugin when invoking this function, and it is also used in documentation generation.

      {\n  \"name\": \"added\",\n  \"description\": \"An event that occurs when numbers have been added\",\n  \"params\": [],\n  \"details\": {}\n}\n
      "},{"location":"reference/firefly_interface_format/#param","title":"Param","text":"

      Both methods, and events have lists of params or returns, and the type of JSON object that goes in each of these arrays is the same. It is simply a JSON object with a name and a schema. There is also an optional details field that is passed to the blockchain plugin for blockchain specific requirements.

      {\n  \"name\": \"x\",\n  \"schema\": {\n    \"type\": \"integer\",\n    \"details\": {}\n  }\n}\n
      "},{"location":"reference/firefly_interface_format/#schema","title":"Schema","text":"

      The param schema is an important field which tells FireFly the type information about this particular field. This is used in several different places, such as OpenAPI Spec generation, API request validation, and blockchain request preparation.

      The schema field accepts JSON Schema (version 2020-12) with several additional requirements:

      • A type field is always mandatory
      • The list of valid types is:
      • boolean
      • integer
      • string
      • object
      • array
      • Blockchain plugins can add their own specific requirements to this list of validation rules

      NOTE: Floats or decimals are not currently accepted because certain underlying blockchains (e.g. Ethereum) only allow integers

      The type field here is the JSON input type when making a request to FireFly to invoke or query a smart contract. This type can be different from the actual blockchain type, usually specified in the details field, if there is a compatible type mapping between the two.

      "},{"location":"reference/firefly_interface_format/#schema-details","title":"Schema details","text":"

      The details field is quite important in some cases. Because the details field is passed to the blockchain plugin, it is used to encapsulate blockchain specific type information about a particular field. Additionally, because each blockchain plugin can add rules to the list of schema requirements above, a blockchain plugin can enforce that certain fields are always present within the details field.

      For example, the Ethereum plugin always needs to know what Solidity type the field is. It also defines several optional fields. A full Ethereum details field may look like:

      {\n  \"type\": \"uint256\",\n  \"internalType\": \"uint256\",\n  \"indexed\": false\n}\n
      "},{"location":"reference/firefly_interface_format/#automated-generation-of-firefly-interfaces","title":"Automated generation of FireFly Interfaces","text":"

      A convenience endpoint exists on the API to facilitate converting from native blockchain interface formats such as an Ethereum ABI to the FireFly Interface format. For details, please see the API documentation for the contract interface generation endpoint.

      For an example of using this endpoint with a specific Ethereum contract, please see the Tutorial to Work with custom smart contracts.

      "},{"location":"reference/firefly_interface_format/#full-example","title":"Full Example","text":"

      Putting it all together, here is a full example of the FireFly Interface format with all the fields filled in:

      {\n  \"namespace\": \"default\",\n  \"name\": \"SimpleStorage\",\n  \"description\": \"A simple smart contract that stores and retrieves an integer on-chain\",\n  \"version\": \"v1.0.0\",\n  \"methods\": [\n    {\n      \"name\": \"get\",\n      \"description\": \"Retrieve the value of the stored integer\",\n      \"params\": [],\n      \"returns\": [\n        {\n          \"name\": \"output\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ],\n      \"details\": {\n        \"stateMutability\": \"viewable\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"description\": \"Set the stored value on-chain\",\n      \"params\": [\n        {\n          \"name\": \"newValue\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ],\n      \"returns\": [],\n      \"details\": {\n        \"stateMutability\": \"payable\"\n      }\n    }\n  ],\n  \"events\": [\n    {\n      \"name\": \"Changed\",\n      \"description\": \"An event that is fired when the stored integer value changes\",\n      \"params\": [\n        {\n          \"name\": \"from\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"details\": {\n              \"type\": \"address\",\n              \"internalType\": \"address\",\n              \"indexed\": true\n            }\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ],\n      \"details\": {}\n    }\n  ]\n}\n
      "},{"location":"reference/idempotency/","title":"Idempotency Keys","text":""},{"location":"reference/idempotency/#idempotency","title":"Idempotency","text":"

      The transaction submission REST APIs of Hyperledger FireFly are idempotent.

      Idempotent APIs allow an application to safely submit a request multiple times, and for the transaction to only be accepted and executed once.

      This is the well accepted approach for REST APIs over HTTP/HTTPS to achieve resilience, as HTTP requests can fail in indeterminate ways. For example in a request or gateway timeout situation, the requester is unable to know whether the request will or will not eventually be processed.

      There are various types of FireFly transaction that can be submitted. These include direct submission of blockchain transactions to a smart contract, as well as more complex transactions including coordination of multiple operations across on-chain and off-chain connectors.

      In order for Hyperledger FireFly to deduplicate transactions, and make them idempotent, the application must supply an idempotencyKey on each API request.

      "},{"location":"reference/idempotency/#firefly-idempotency-keys","title":"FireFly Idempotency Keys","text":"

      The caller of the API specifies its own unique identifier (an arbitrary string up to 256 characters) that uniquely identifies the request, in the idempotencyKey field of the API.

      So if there is a network connectivity failure, or an abrupt termination of either runtime, the application can safely attempt to resubmit the REST API call and be returned a 409 Conflict HTTP code.

      Examples of how an app might construct such an idempotencyKey include:

      • Unique business identifiers from the request that comes into its API up-stream - passing idempotency along the chain
      • A hash of the business unique data that relates to the request - maybe all the input data of a blockchain transaction for example, if that payload is guaranteed to be unique.

        Be careful of cases where the business data might not be unique - like a transfer of 10 coins from A to B.

        Such a transfer could happen multiple times, and each would be a separate business transaction.

        Where as transfer with invoice number abcd1234 of 10 coins from A to B would be assured to be unique.

      • A unique identifier of a business transaction generated within the application and stored in its database before submission

        This moves the challenge up one layer into your application. How does that unique ID get generated? Is that itself idempotent?

      "},{"location":"reference/idempotency/#operation-idempotency","title":"Operation Idempotency","text":"

      FireFly provides an idempotent interface downstream to connectors.

      Each operation within a FireFly transaction receives a unique ID within the overall transaction that is used as an idempotency key when invoking that connector.

      Well formed connectors honor this idempotency key internally, ensuring that the end-to-end transaction submission is idempotent.

      Key examples of such connectors are EVMConnect and others built on the Blockchain Connector Toolkit.

      When an operation is retried automatically, the same idempotency key is re-used to avoid resubmission.

      "},{"location":"reference/idempotency/#short-term-retry","title":"Short term retry","text":"

      The FireFly core uses standard HTTP request code to communicate with all connector APIs.

      This code include exponential backoff retry, that can be enabled with a simple boolean in the plugin of FireFly core. The minimum retry, maximum retry, and backoff factor can be tuned individually as well on each connector.

      See Configuration Reference for more information.

      "},{"location":"reference/idempotency/#administrative-operation-retry","title":"Administrative operation retry","text":"

      The operations/{operationId}/retry API can be called administratively to resubmit a transaction that has reached Failed status, or otherwise been determined by an operator/monitor to be unrecoverable within the connector.

      In this case, the previous operation is marked Retried, a new operation ID is allocated, and the operation is re-submitted to the connector with this new ID.

      "},{"location":"reference/identities/","title":"Identities","text":""},{"location":"reference/identities/#overview","title":"Overview","text":"

      Identities are a critical part of using FireFly in a multi-party system. Every party that joins a multi-party system must begin by claiming an on- and off-chain identity, which is described with a unique DID. Each type of identity is also associated with an on- or off-chain verifier, which can be used in some way to check the authorship of a piece of data. Together, these concepts form the backbone of the trust model for exchanging multi-party data.

      "},{"location":"reference/identities/#types-of-identities","title":"Types of Identities","text":"

      There are three types of identities:

      "},{"location":"reference/identities/#org","title":"org","text":"

      Organizations are the primary identity type in FireFly. They represent a logical on-chain signing identity, and the attached verifier is therefore a blockchain key (with the exact format depending on the blockchain being used). Every party in a multi-party system must claim a root organization identity as the first step to joining the network.

      The root organization name and key must be defined in the FireFly config (once for every multi-party system). It can be claimed with a POST to /network/organizations/self.

      Organizations may have child identities of any type.

      "},{"location":"reference/identities/#node","title":"node","text":"

      Nodes represent a logical off-chain identity - and specifically, they are tied to an instance of a data exchange connector. The format of the attached verifier depends on the data exchange plugin being used, but it will be mapped to some validation provided by that plugin (ie the name of an X.509 certificate or similar). Every party in a multi-party system must claim a node identity when joining the network, which must be a child of one of its organization identities (but it is possible for many nodes to share a parent organization).

      The node name must be defined in the FireFly config (once for every multi-party system). It can be claimed with a POST to /network/nodes/self.

      Nodes must be a child of an organization, and cannot have any child identities of their own.

      Note that \"nodes\" as an identity concept are distinct from FireFly supernodes, from underlying blockchain nodes, and from anywhere else the term \"node\" happens to be used.

      "},{"location":"reference/identities/#custom","title":"custom","text":"

      Custom identities are similar to organizations, but are provided for applications to define their own more granular notions of identity. They are associated with an on-chain verifier in the same way as organizations.

      They can only have child identities which are also of type \"custom\".

      "},{"location":"reference/identities/#identity-claims","title":"Identity Claims","text":"

      Before an identity can be used within a multi-party system, it must be claimed. The identity claim is a special type of broadcast message sent by FireFly to establish an identity uniquely among the parties in the multi-party system. As with other broadcasts, this entails an on-chain transaction which contains a public reference to an off-chain piece of data (such as an IPFS reference) describing the details of the identity claim.

      The claim data consists of information on the identity being claimed - such as the type, the DID, and the parent (if applicable). The DID must be unique and unclaimed. The verifier will be inferred from the message - for on-chain identities (org and custom), it is the blockchain key that was used to sign the on-chain portion of the message, while for off-chain identities (nodes), is is an identifier queried from data exchange.

      For on-chain identities with a parent, two messages are actually required - the claim message signed with the new identity's blockchain key, as well as a separate verification message signed with the parent identity's blockchain key. Both messages must be received before the identity is confirmed.

      "},{"location":"reference/identities/#messaging","title":"Messaging","text":"

      In the context of a multi-party system, FireFly provides capabilities for sending off-chain messages that are pinned to an on-chain proof. The sender of every message must therefore have an on-chain and off-chain identity. For private messages, every recipient must also have an on-chain and off-chain identity.

      "},{"location":"reference/identities/#sender","title":"Sender","text":"

      When sending a message, the on-chain identity of the sender is controlled by the author and key fields.

      • If both are blank, the root organization is assumed.
      • If author alone is specified, it should be the DID of an org or custom identity. The associated verifier will be looked up to use as the key.
      • If key alone is specified, it must match the registered blockchain verifier for an org or custom identity that was previously claimed. A reverse lookup will be used to populate the DID for the author.
      • If author and key are both specified, they will be used as-is (can be used to send private messages with an unregistered blockchain key).

      The resolved key will be used to sign the blockchain transaction, which establishes the sender's on-chain identity.

      The sender's off-chain identity is always controlled by the node.name from the config along with the data exchange plugin.

      "},{"location":"reference/identities/#recipients","title":"Recipients","text":"

      When specifying private message recipients, each one has an identity and a node.

      • If identity alone is specified, it should be the DID of an org or custom identity. The first node owned by that identity or one of its ancestors will be automatically selected.
      • If both identity and node are specified, they will be used as-is. The node should be a child of the given identity or one of its ancestors.

      The node in this case will control how the off-chain portion of the message is routed via data exchange.

      "},{"location":"reference/identities/#verification","title":"Verification","text":"

      When a message is received, FireFly verifies the following:

      • The sender's author and key are specified in the message. The author must be a known org or custom identity. The key must match the blockchain key that was used to sign the on-chain portion of the message. For broadcast messages, the key must match the registered verifier for the author.
      • For private messages, the sending node (as reported by data exchange) must be a known node identity which is a child of the message's author identity or one of its ancestors. The combination of the author identity and the node must also be found in the message group.

      In addition, the data exchange plugin is responsible for verifying the sending and receiving identities for the off-chain data (such as validating the relevant certificates).

      "},{"location":"reference/namespaces/","title":"Namespaces","text":""},{"location":"reference/namespaces/#introduction-to-namespaces","title":"Introduction to Namespaces","text":"

      Namespaces are a construct for segregating data and operations within a FireFly supernode. Each namespace is an isolated environment within a FireFly runtime, that allows independent configuration of:

      • Plugin and infrastructure components
      • API security
      • Identity broadcasting
      • On-chain data indexing
      • How datatypes, locations of on-chain contrats, etc. should be shared

      They can be thought of in two basic modes:

      "},{"location":"reference/namespaces/#multi-party-namespaces","title":"Multi-party Namespaces","text":"

      This namespace is shared with one or more other FireFly nodes. It requires three types of communication plugins - blockchain, data exchange, and shared storage. Organization and node identities must be claimed with an identity broadcast when joining the namespace, which establishes credentials for blockchain and off-chain communication. Shared objects can be defined in the namespace (such as datatypes and token pools), and details of them will be implicitly broadcast to other members.

      This type of namespace is used when multiple parties need to share on- and off-chain data and agree upon the ordering and authenticity of that data. For more information, see the multi-party system overview.

      "},{"location":"reference/namespaces/#gateway-namespaces","title":"Gateway Namespaces","text":"

      Nothing in this namespace will be shared automatically, and no assumptions are made about whether other parties connected through this namespace are also using Hyperledger FireFly. Plugins for data exchange and shared storage are not supported. If any identities or definitions are created in this namespace, they will be stored in the local database, but will not be shared implicitly outside the node.

      This type of namespace is mainly used when interacting directly with a blockchain, without assuming that the interaction needs to conform to FireFly's multi-party system model.

      "},{"location":"reference/namespaces/#configuration","title":"Configuration","text":"

      FireFly nodes can be configured with one or many namespaces of different modes. This means that a single FireFly node can be used to interact with multiple distinct blockchains, multiple distinct token economies, and multiple business networks.

      Below is an example plugin and namespace configuration containing both a multi-party and gateway namespace:

      plugins:\n  database:\n  - name: database0\n    type: sqlite3\n    sqlite3:\n      migrations:\n        auto: true\n      url: /etc/firefly/db?_busy_timeout=5000\n  blockchain:\n  - name: blockchain0\n    type: ethereum\n    ethereum:\n      ethconnect:\n        url: http://ethconnect_0:8080\n        topic: \"0\"\n  - name: blockchain1\n    type: ethereum\n    ethereum:\n      ethconnect:\n        url: http://ethconnect_01:8080\n        topic: \"0\"\n  dataexchange:\n  - name: dataexchange0\n    type: ffdx\n    ffdx:\n      url: http://dataexchange_0:3000\n  sharedstorage:\n  - name: sharedstorage0\n    type: ipfs\n    ipfs:\n      api:\n        url: http://ipfs_0:5001\n      gateway:\n        url: http://ipfs_0:8080\n  tokens:\n  - name: erc20_erc721\n    broadcastName: erc20_erc721\n    type: fftokens\n    fftokens:\n      url: http://tokens_0_0:3000\nnamespaces:\n  default: alpha\n  predefined:\n  - name: alpha\n    description: Default predefined namespace\n    defaultKey: 0x123456\n    plugins: [database0, blockchain0, dataexchange0, sharedstorage0, erc20_erc721]\n    multiparty:\n      networkNamespace: alpha\n      enabled: true\n      org:\n        name: org0\n        description: org0\n        key: 0x123456\n      node:\n        name: node0\n        description: node0\n      contract:\n        - location:\n            address: 0x4ae50189462b0e5d52285f59929d037f790771a6\n          firstEvent: 0\n        - location:\n            address: 0x3c1bef20a7858f5c2f78bda60796758d7cafff27\n          firstEvent: 5000\n  - name: omega\n    defaultkey: 0x48a54f9964d7ceede2d6a8b451bf7ad300c7b09f\n    description: Gateway namespace\n    plugins: [database0, blockchain1, erc20_erc721]\n

      The namespaces.predefined object contains the follow sub-keys:

      • defaultKey is a blockchain key used to sign transactions when none is specified (in multi-party mode, defaults to the org key)
      • plugins is an array of plugin names to be activated for this namespace (defaults to all available plugins if omitted)
      • multiparty.networkNamespace is the namespace name to be sent in plugin calls, if it differs from the locally used name (useful for interacting with multiple shared namespaces of the same name - defaults to the value of name)
      • multiparty.enabled controls if multi-party mode is enabled (defaults to true if an org key or org name is defined on this namespace or in the deprecated org section at the root)
      • multiparty.org is the root org identity for this multi-party namespace (containing name, description, and key)
      • multiparty.node is the local node identity for this multi-party namespace (containing name and description)
      • multiparty.contract is an array of objects describing the location(s) of a FireFly multi-party smart contract. Its children are blockchain-agnostic location and firstEvent fields, with formats identical to the same fields on custom contract interfaces and contract listeners. The blockchain plugin will interact with the first contract in the list until instructions are received to terminate it and migrate to the next.
      "},{"location":"reference/namespaces/#config-restrictions","title":"Config Restrictions","text":"
      • name must be unique on this node
      • for historical reasons, \"ff_system\" is a reserved string and cannot be used as a name or multiparty.networkNamespace
      • a database plugin is required for every namespace
      • if multiparty.enabled is true, plugins must include one each of blockchain, dataexchange, and sharedstorage
      • if multiparty.enabled is false, plugins must not include dataexchange or sharedstorage
      • at most one of each type of plugin is allowed per namespace, except for tokens (which may have many per namespace)

      All namespaces must be called out in the FireFly config file in order to be valid. Namespaces found in the database but not represented in the config file will be ignored.

      "},{"location":"reference/namespaces/#definitions","title":"Definitions","text":"

      In FireFly, definitions are immutable payloads that are used to define identities, datatypes, smart contract interfaces, token pools, and other constructs. Each type of definition in FireFly has a schema that it must adhere to. Some definitions also have a name and a version which must be unique within a namespace. In a multiparty namespace, definitions are broadcasted to other organizations.

      "},{"location":"reference/namespaces/#local-definitions","title":"Local Definitions","text":"

      The following are all \"definition\" types in FireFly:

      • datatype
      • group
      • token pool
      • contract interface
      • contract API
      • organization (deprecated)
      • node (deprecated)
      • identity claim
      • identity verification
      • identity update

      For gateway namespaces, the APIs which create these definitions will become an immediate local database insert, instead of performing a broadcast. Additional caveats:

      • identities in this mode will not undergo any claim/verification process, but will be created and stored locally
      • datatypes and groups will not be supported, as they are only useful in the context of messaging (which is disabled in gateway namespaces)
      "},{"location":"reference/tls/","title":"TLS","text":""},{"location":"reference/tls/#tls-overview","title":"TLS Overview","text":"

      To enable TLS in Firefly, there is a configuration available to provide certificates and keys.

      The common configuration is as such:

      tls:\n  enabled: true/false # Toggle on or off TLS\n  caFile: <path to the CA file you want the client or server to trust>\n  certFile: <path to the cert file you want the client or server to use when performing authentication in mTLS>\n  keyFile: <path to the priavte key file you want the client or server to use when performing  authentication in mTLS>\n  clientAuth: true/false # Only applicable to the server side, to toggle on or off client authentication\n  requiredDNAttributes: A set of required subject DN attributes. Each entry is a regular expression, and the subject certificate must have a matching attribute of the specified type (CN, C, O, OU, ST, L, STREET, POSTALCODE, SERIALNUMBER are valid attributes)\n

      NOTE The CAs, certificates and keys have to be in PEM format.

      "},{"location":"reference/tls/#configuring-tls-for-the-api-server","title":"Configuring TLS for the API server","text":"

      Using the above configuration, we can place it under the http config and enable TLS or mTLS for any API call.

      See this config section for details

      "},{"location":"reference/tls/#configuring-tls-for-the-webhooks","title":"Configuring TLS for the webhooks","text":"

      Using the above configuration, we can place it under the events.webhooks config and enable TLS or mTLS for any webhook call.

      See this config section for details

      "},{"location":"reference/tls/#configuring-clients-and-websockets","title":"Configuring clients and websockets","text":"

      Firefly has a set of HTTP clients and websockets that communicate the external endpoints and services that could be secured using TLS. In order to configure these clients, we can use the same configuration as above in the respective places in the config which relate to those clients.

      For example, if you wish to configure the ethereum blockchain connector with TLS you would look at this config section

      For more clients, search in the configuration reference for a TLS section.

      "},{"location":"reference/tls/#enhancing-validation-of-certificates","title":"Enhancing validation of certificates","text":"

      In the case where we want to verify that a specific client certificate has certain attributes we can use the requiredDNAtributes configuration as described above. This will allow you by the means of a regex expresssion matching against well known distinguished names (DN). To learn more about a DNs look at this document

      "},{"location":"reference/microservices/fftokens/","title":"fftokens","text":""},{"location":"reference/microservices/fftokens/#overview","title":"Overview","text":"

      fftokens is a protocol that can be implemented by token connector runtimes in order to be usable by the fftokens plugin in FireFly.

      The connector runtime must expose an HTTP and websocket server, along with a minimum set of HTTP APIs and websocket events. Each connector will be strongly coupled to a specific ledger technology and token standard(s), but no assumptions are made in the fftokens spec about what these technologies must be, as long as they can satisfy the basic requirements laid out here.

      Note that this is an internal protocol in the FireFly ecosystem - application developers working against FireFly should never need to care about or directly interact with a token connector runtime. The audience for this document is only developers interested in creating new token connectors (or editing/forking existing ones).

      Two implementations of this specification have been created to date (both based on common Ethereum token standards) - firefly-tokens-erc1155 and firefly-tokens-erc20-erc721.

      "},{"location":"reference/microservices/fftokens/#http-apis","title":"HTTP APIs","text":"

      This is the minimum set of APIs that must be implemented by a conforming token connector. A connector may choose to expose other APIs for its own purposes. All requests and responses to the APIs below are encoded as JSON. The APIs are currently understood to live under a /api/v1 prefix.

      "},{"location":"reference/microservices/fftokens/#post-createpool","title":"POST /createpool","text":"

      Create a new token pool. The exact meaning of this is flexible - it may mean invoking a contract or contract factory to actually define a new set of tokens via a blockchain transaction, or it may mean indexing a set of tokens that already exists (depending on the options a connector accepts in config).

      In a multiparty network, this operation will only be performed by one of the parties, and FireFly will broadcast the result to the others.

      FireFly will store a \"pending\" token pool after a successful creation, but will replace it with a \"confirmed\" token pool after a successful activation (see below).

      Request

      {\n  \"type\": \"fungible\",\n  \"signer\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"namespace\": \"default\",\n  \"name\": \"FFCoin\",\n  \"symbol\": \"FFC\",\n  \"data\": \"pool-metadata\",\n  \"requestId\": \"1\",\n  \"config\": {}\n}\n
      Parameter Type Description type string enum The type of pool to create. Currently supported types are \"fungible\" and \"nonfungible\". It is recommended (but not required) that token connectors support both. Unrecognized/unsupported types should be rejected with HTTP 400. signer string The signing identity to be used for the blockchain transaction, in a format understood by this connector. namespace string The namespace of the token pool name string (OPTIONAL) If supported by this token contract, this is a requested name for the token pool. May be ignored at the connector's discretion. symbol string (OPTIONAL) If supported by this token contract, this is a requested symbol for the token pool. May be ignored at the connector's discretion. requestId string (OPTIONAL) A unique identifier for this request. Will be included in the \"receipt\" websocket event to match receipts to requests. data string (OPTIONAL) A data string that should be returned in the connector's response to this creation request. config object (OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the token pool is created.

      Response

      HTTP 200: pool creation was successful, and the pool details are returned in the response.

      See Response Types: Token Pool

      HTTP 202: request was accepted, but pool will be created asynchronously, with \"receipt\" and \"token-pool\" events sent later on the websocket.

      See Response Types: Async Request

      "},{"location":"reference/microservices/fftokens/#post-activatepool","title":"POST /activatepool","text":"

      Activate a token pool to begin receiving events. Generally this means the connector will create blockchain event listeners for transfer and approval events related to the set of tokens encompassed by this token pool.

      In a multiparty network, this step will be performed by every member after a successful token pool broadcast. It therefore also serves the purpose of validating the broadcast info - if the connector does not find a valid pool given the poolLocator and config information passed in to this call, the pool should not get confirmed.

      Request

      {\n  \"namespace\": \"default\",\n  \"poolLocator\": \"id=F1\",\n  \"poolData\": \"extra-pool-info\",\n  \"config\": {}\n}\n
      Parameter Type Description namespace string The namespace of the token pool poolLocator string The locator of the pool, as supplied by the output of the pool creation. poolData string (OPTIONAL) A data string that should be permanently attached to this pool and returned in all events. config object (OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. This should be the same config object that was passed when the pool was created.

      Response

      HTTP 200: pool activation was successful, and the pool details are returned in the response.

      See Response Types: Token Pool

      HTTP 202: request was accepted, but pool will be activated asynchronously, with \"receipt\" and \"token-pool\" events sent later on the websocket.

      See Response Types: Async Request

      HTTP 204: activation was successful - no separate receipt will be delivered, but \"token-pool\" event will be sent later on the websocket.

      No body

      "},{"location":"reference/microservices/fftokens/#post-deactivatepool","title":"POST /deactivatepool","text":"

      Deactivate a token pool to stop receiving events and delete all blockchain listeners related to that pool.

      Request

      {\n  \"namespace\": \"default\",\n  \"poolLocator\": \"id=F1\",\n  \"poolData\": \"extra-pool-info\",\n  \"config\": {}\n}\n
      Parameter Type Description namespace string The namespace of the token pool poolLocator string The locator of the pool, as supplied by the output of the pool creation. poolData string (OPTIONAL) The data string that was attached to this pool at activation. config object (OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired.

      Response

      HTTP 204: deactivation was successful, and one or more listeners were deleted.

      No body

      HTTP 404: no blockchain listeners were found for the given pool information.

      No body

      "},{"location":"reference/microservices/fftokens/#post-checkinterface","title":"POST /checkinterface","text":"

      This is an optional (but recommended) API for token connectors. If implemented, support will be indicated by the presence of the interfaceFormat field in all Token Pool responses.

      In the case that a connector supports multiple variants of a given token standard (such as many different ways to structure \"mint\" or \"burn\" calls on an underlying smart contract), this API allows the connector to be provided with a full description of the interface methods in use for a given token pool, so the connector can determine which methods it knows how to invoke.

      Request

      {\n  \"poolLocator\": \"id=F1\",\n  \"format\": \"abi\",\n  \"methods\": [\n    {\n      \"name\": \"burn\",\n      \"type\": \"function\",\n      \"inputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"tokenId\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\"\n    },\n    ...\n  ]\n}\n
      Parameter Type Description poolLocator string The locator of the pool, as supplied by the output of the pool creation. format string enum The format of the data in this payload. Should match the interfaceFormat as supplied by the output of the pool creation. methods object array A list of all the methods available on the interface underpinning this token pool, encoded in the format specified by format.

      Response

      HTTP 200: interface was successfully parsed, and methods of interest are returned in the body.

      The response body includes a section for each type of token operation (burn/mint/transfer/approval), which specifies a subset of the input body useful to that operation. The caller (FireFly) can then store and provide the proper subset of the interface for every future token operation (via the interface parameter).

      {\n  \"burn\": {\n    \"format\": \"abi\",\n    \"methods\": [\n      {\n        \"name\": \"burn\",\n        \"type\": \"function\",\n        \"inputs\": [\n          {\n            \"internalType\": \"uint256\",\n            \"name\": \"tokenId\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"outputs\": [],\n        \"stateMutability\": \"nonpayable\"\n      }\n    ]\n  },\n  \"mint\": { ... },\n  \"transfer\": { ... },\n  \"approval\": { ... }\n}\n
      "},{"location":"reference/microservices/fftokens/#post-mint","title":"POST /mint","text":"

      Mint new tokens.

      Request

      {\n  \"namespace\": \"default\",\n  \"poolLocator\": \"id=F1\",\n  \"signer\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"to\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"amount\": \"10\",\n  \"tokenIndex\": \"1\",\n  \"uri\": \"ipfs://000000\",\n  \"requestId\": \"1\",\n  \"data\": \"transfer-metadata\",\n  \"config\": {},\n  \"interface\": {}\n}\n
      Parameter Type Description namespace string The namespace of the token pool poolLocator string The locator of the pool, as supplied by the output of the pool creation. signer string The signing identity to be used for the blockchain transaction, in a format understood by this connector. to string The identity to receive the minted tokens, in a format understood by this connector. amount number string The amount of tokens to mint. tokenIndex string (OPTIONAL) For non-fungible tokens that require choosing an index at mint time, the index of the specific token to mint. uri string (OPTIONAL) For non-fungible tokens that support choosing a URI at mint time, the URI to be attached to the token. requestId string (OPTIONAL) A unique identifier for this request. Will be included in the \"receipt\" websocket event to match receipts to requests. data string (OPTIONAL) A data string that should be returned in the connector's response to this mint request. config object (OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the mint is carried out. interface object (OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.

      Response

      HTTP 202: request was accepted, but mint will occur asynchronously, with \"receipt\" and \"token-mint\" events sent later on the websocket.

      See Response Types: Async Request

      "},{"location":"reference/microservices/fftokens/#post-burn","title":"POST /burn","text":"

      Burn tokens.

      Request

      {\n  \"namespace\": \"default\",\n  \"poolLocator\": \"id=F1\",\n  \"signer\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"from\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"amount\": \"10\",\n  \"tokenIndex\": \"1\",\n  \"requestId\": \"1\",\n  \"data\": \"transfer-metadata\",\n  \"config\": {},\n  \"interface\": {}\n}\n
      Parameter Type Description namespace string The namespace of the token pool poolLocator string The locator of the pool, as supplied by the output of the pool creation. signer string The signing identity to be used for the blockchain transaction, in a format understood by this connector. from string The identity that currently owns the tokens to be burned, in a format understood by this connector. amount number string The amount of tokens to burn. tokenIndex string (OPTIONAL) For non-fungible tokens, the index of the specific token to burn. requestId string (OPTIONAL) A unique identifier for this request. Will be included in the \"receipt\" websocket event to match receipts to requests. data string (OPTIONAL) A data string that should be returned in the connector's response to this burn request. config object (OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the burn is carried out. interface object (OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.

      Response

      HTTP 202: request was accepted, but burn will occur asynchronously, with \"receipt\" and \"token-burn\" events sent later on the websocket.

      See Response Types: Async Request

      "},{"location":"reference/microservices/fftokens/#post-transfer","title":"POST /transfer","text":"

      Transfer tokens from one address to another.

      Request

      {\n  \"namespace\": \"default\",\n  \"poolLocator\": \"id=F1\",\n  \"signer\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"from\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"to\": \"0xb107ed9caa1323b7bc36e81995a4658ec2251951\",\n  \"amount\": \"1\",\n  \"tokenIndex\": \"1\",\n  \"requestId\": \"1\",\n  \"data\": \"transfer-metadata\",\n  \"config\": {},\n  \"interface\": {}\n}\n
      Parameter Type Description namespace string The namespace of the token pool poolLocator string The locator of the pool, as supplied by the output of the pool creation. signer string The signing identity to be used for the blockchain transaction, in a format understood by this connector. from string The identity to be used for the source of the transfer, in a format understood by this connector. to string The identity to be used for the destination of the transfer, in a format understood by this connector. amount number string The amount of tokens to transfer. tokenIndex string (OPTIONAL) For non-fungible tokens, the index of the specific token to transfer. requestId string (OPTIONAL) A unique identifier for this request. Will be included in the \"receipt\" websocket event to match receipts to requests. data string (OPTIONAL) A data string that should be returned in the connector's response to this transfer request. config object (OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the transfer is carried out. interface object (OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.

      Response

      HTTP 202: request was accepted, but transfer will occur asynchronously, with \"receipt\" and \"token-transfer\" events sent later on the websocket.

      See Response Types: Async Request

      "},{"location":"reference/microservices/fftokens/#post-approval","title":"POST /approval","text":"

      Approve another identity to manage tokens.

      Request

      {\n  \"namespace\": \"default\",\n  \"poolLocator\": \"id=F1\",\n  \"signer\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"operator\": \"0xb107ed9caa1323b7bc36e81995a4658ec2251951\",\n  \"approved\": true,\n  \"requestId\": \"1\",\n  \"data\": \"approval-metadata\",\n  \"config\": {},\n  \"interface\": {}\n}\n
      Parameter Type Description namespace string The namespace of the token pool poolLocator string The locator of the pool, as supplied by the output of the pool creation. signer string The signing identity to be used for the blockchain transaction, in a format understood by this connector. operator string The identity to be approved (or unapproved) for managing the signer's tokens. approved boolean Whether to approve (the default) or unapprove. requestId string (OPTIONAL) A unique identifier for this request. Will be included in the \"receipt\" websocket event to match receipts to requests. data string (OPTIONAL) A data string that should be returned in the connector's response to this approval request. config object (OPTIONAL) An arbitrary JSON object where the connector may accept additional parameters if desired. Each connector may define its own valid options to influence how the approval is carried out. interface object (OPTIONAL) Details on interface methods that are useful to this operation, as negotiated previously by a /checkinterface call.

      Response

      HTTP 202: request was accepted, but approval will occur asynchronously, with \"receipt\" and \"token-approval\" events sent later on the websocket.

      See Response Types: Async Request

      "},{"location":"reference/microservices/fftokens/#websocket-commands","title":"Websocket Commands","text":"

      In order to start listening for events on a certain namespace, the client needs to send the start command. Clients should send this command every time they connect, or after an automatic reconnect.

      {\n  \"type\": \"start\",\n  \"namespace\": \"default\"\n}\n
      "},{"location":"reference/microservices/fftokens/#websocket-events","title":"Websocket Events","text":"

      A connector should expose a websocket at /api/ws. All emitted websocket events are a JSON string of the form:

      {\n  \"id\": \"event-id\",\n  \"event\": \"event-name\",\n  \"data\": {}\n}\n

      The event name will match one of the names listed below, and the data payload will correspond to the linked response object.

      All events except the receipt event must be acknowledged by sending an ack of the form:

      {\n  \"event\": \"ack\",\n  \"data\": {\n    \"id\": \"event-id\"\n  }\n}\n

      Many messages may also be batched into a single websocket event of the form:

      {\n  \"id\": \"event-id\",\n  \"event\": \"batch\",\n  \"data\": {\n    \"events\": [\n      {\n        \"event\": \"event-name\",\n        \"data\": {}\n      },\n      ...\n    ]\n  }\n}\n

      Batched messages must be acked all at once using the ID of the batch.

      "},{"location":"reference/microservices/fftokens/#receipt","title":"receipt","text":"

      An asynchronous operation has completed.

      See Response Types: Receipt

      "},{"location":"reference/microservices/fftokens/#token-pool","title":"token-pool","text":"

      A new token pool has been created or activated.

      See Response Types: Token Pool

      "},{"location":"reference/microservices/fftokens/#token-mint","title":"token-mint","text":"

      Tokens have been minted.

      See Response Types: Token Transfer

      "},{"location":"reference/microservices/fftokens/#token-burn","title":"token-burn","text":"

      Tokens have been burned.

      See Response Types: Token Transfer

      "},{"location":"reference/microservices/fftokens/#token-transfer","title":"token-transfer","text":"

      Tokens have been transferred.

      See Response Types: Token Transfer

      "},{"location":"reference/microservices/fftokens/#token-approval","title":"token-approval","text":"

      Token approvals have changed.

      See Response Types: Token Approval

      "},{"location":"reference/microservices/fftokens/#response-types","title":"Response Types","text":""},{"location":"reference/microservices/fftokens/#async-request","title":"Async Request","text":"

      Many operations may happen asynchronously in the background, and will return only a request ID. This may be a request ID that was passed in, or if none was passed, will be randomly assigned. This ID can be used to correlate with a receipt event later received on the websocket.

      {\n  \"id\": \"b84ab27d-0d50-42a6-9c26-2fda5eb901ba\"\n}\n
      "},{"location":"reference/microservices/fftokens/#receipt_1","title":"Receipt","text":"
        \"headers\": {\n    \"type\": \"\",\n    \"requestId\": \"\"\n  }\n  \"transactionHash\": \"\",\n  \"errorMessage\": \"\"\n}\n
      Parameter Type Description headers.type string enum The type of this response. Should be \"TransactionSuccess\", \"TransactionUpdate\", or \"TransactionFailed\". headers.requestId string The ID of the request to which this receipt should correlate. transactionHash string The unique identifier for the blockchain transaction which generated this receipt. errorMessage string (OPTIONAL) If this is a failure, contains details on the reason for the failure."},{"location":"reference/microservices/fftokens/#token-pool_1","title":"Token Pool","text":"
      {\n  \"namespace\": \"default\",\n  \"type\": \"fungible\",\n  \"data\": \"pool-metadata\",\n  \"poolLocator\": \"id=F1\",\n  \"standard\": \"ERC20\",\n  \"interfaceFormat\": \"abi\",\n  \"symbol\": \"FFC\",\n  \"decimals\": 18,\n  \"info\": {},\n  \"signer\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"blockchain\": {}\n}\n
      Parameter Type Description namespace string The namespace of the token pool type string enum The type of pool that was created. data string A copy of the data that was passed in on the creation request. poolLocator string A string to identify this pool, generated by the connector. Must be unique for each pool created by this connector. Will be passed back on all operations within this pool, and may be packed with relevant data about the pool for later usage (such as the address and type of the pool). standard string (OPTIONAL) The name of a well-defined token standard to which this pool conforms. interfaceFormat string enum (OPTIONAL) If this connector supports the /checkinterface API, this is the interface format to be used for describing the interface underpinning this pool. Must be \"abi\" or \"ffi\". symbol string (OPTIONAL) The symbol for this token pool, if applicable. decimals number (OPTIONAL) The number of decimals used for balances in this token pool, if applicable. info object (OPTIONAL) Additional information about the pool. Each connector may define the format for this object. signer string (OPTIONAL) If this operation triggered a blockchain transaction, the signing identity used for the transaction. blockchain object (OPTIONAL) If this operation triggered a blockchain transaction, contains details on the blockchain event in FireFly's standard blockchain event format."},{"location":"reference/microservices/fftokens/#token-transfer_1","title":"Token Transfer","text":"

      Note that mint and burn operations are just specialized versions of transfer. A mint will omit the \"from\" field, while a burn will omit the \"to\" field.

      {\n  \"namespace\": \"default\",\n  \"id\": \"1\",\n  \"data\": \"transfer-metadata\",\n  \"poolLocator\": \"id=F1\",\n  \"poolData\": \"extra-pool-info\",\n  \"from\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"to\": \"0xb107ed9caa1323b7bc36e81995a4658ec2251951\",\n  \"amount\": \"1\",\n  \"tokenIndex\": \"1\",\n  \"uri\": \"ipfs://000000\",\n  \"signer\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"blockchain\": {}\n}\n
      Parameter Type Description namespace string The namespace of the token pool id string An identifier for this transfer. Must be unique for every transfer within this pool. data string A copy of the data that was passed in on the mint/burn/transfer request. May be omitted if the token contract does not support a method of attaching extra data (will result in reduced ability for FireFly to correlate the inputs and outputs of the transaction). poolLocator string The locator of the pool, as supplied by the output of the pool creation. poolData string The extra data associated with the pool at pool activation. from string The identity used for the source of the transfer. to string The identity used for the destination of the transfer. amount number string The amount of tokens transferred. tokenIndex string (OPTIONAL) For non-fungible tokens, the index of the specific token transferred. uri string (OPTIONAL) For non-fungible tokens, the URI attached to the token. signer string (OPTIONAL) If this operation triggered a blockchain transaction, the signing identity used for the transaction. blockchain object (OPTIONAL) If this operation triggered a blockchain transaction, contains details on the blockchain event in FireFly's standard blockchain event format."},{"location":"reference/microservices/fftokens/#token-approval_1","title":"Token Approval","text":"
      {\n  \"namespace\": \"default\",\n  \"id\": \"1\",\n  \"data\": \"transfer-metadata\",\n  \"poolLocator\": \"id=F1\",\n  \"poolData\": \"extra-pool-info\",\n  \"operator\": \"0xb107ed9caa1323b7bc36e81995a4658ec2251951\",\n  \"approved\": true,\n  \"subject\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A:0xb107ed9caa1323b7bc36e81995a4658ec2251951\",\n  \"info\": {},\n  \"signer\": \"0x0Ef1D0Dd56a8FB1226C0EaC374000B81D6c8304A\",\n  \"blockchain\": {}\n}\n
      Parameter Type Description namespace string The namespace of the token pool id string An identifier for this approval. Must be unique for every approval within this pool. data string A copy of the data that was passed in on the approval request. May be omitted if the token contract does not support a method of attaching extra data (will result in reduced ability for FireFly to correlate the inputs and outputs of the transaction). poolLocator string The locator of the pool, as supplied by the output of the pool creation. poolData string The extra data associated with the pool at pool activation. operator string The identity that was approved (or unapproved) for managing tokens. approved boolean Whether this was an approval or unapproval. subject string A string identifying the scope of the approval, generated by the connector. Approvals with the same subject are understood replace one another, so that a previously-recorded approval becomes inactive. This string may be a combination of the identities involved, the token index, etc. info object (OPTIONAL) Additional information about the approval. Each connector may define the format for this object. signer string (OPTIONAL) If this operation triggered a blockchain transaction, the signing identity used for the transaction. blockchain object (OPTIONAL) If this operation triggered a blockchain transaction, contains details on the blockchain event in FireFly's standard blockchain event format."},{"location":"reference/types/batch/","title":"Batch","text":"

      A batch bundles a number of off-chain messages, with associated data, into a single payload for broadcast or private transfer.

      This allows the transfer of many messages (hundreds) to be backed by a single blockchain transaction. Thus making very efficient use of the blockchain.

      The same benefit also applies to the off-chain transport mechanism.

      Shared storage operations benefit from the same optimization. In IPFS for example chunks are 256Kb in size, so there is a great throughput benefit in packaging many small messages into a single large payload.

      For a data exchange transport, there is often cryptography and transport overhead for each individual transport level send between participants. This is particularly true if using a data exchange transport with end-to-end payload encryption, using public/private key cryptography for the envelope.

      "},{"location":"reference/types/batch/#example","title":"Example","text":"
      {\n    \"id\": \"894bc0ea-0c2e-4ca4-bbca-b4c39a816bbb\",\n    \"type\": \"private\",\n    \"namespace\": \"ns1\",\n    \"node\": \"5802ab80-fa71-4f52-9189-fb534de93756\",\n    \"group\": \"cd1fedb69fb83ad5c0c62f2f5d0b04c59d2e41740916e6815a8e063b337bd32e\",\n    \"created\": \"2022-05-16T01:23:16Z\",\n    \"author\": \"did:firefly:org/example\",\n    \"key\": \"0x0a989907dcd17272257f3ebcf72f4351df65a846\",\n    \"hash\": \"78d6861f860c8724468c9254b99dc09e7d9fd2d43f26f7bd40ecc9ee47be384d\",\n    \"payload\": {\n        \"tx\": {\n            \"type\": \"private\",\n            \"id\": \"04930d84-0227-4044-9d6d-82c2952a0108\"\n        },\n        \"messages\": [],\n        \"data\": []\n    }\n}\n
      "},{"location":"reference/types/batch/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the batch UUID type The type of the batch FFEnum:\"broadcast\"\"private\" namespace The namespace of the batch string node The UUID of the node that generated the batch UUID group The privacy group the batch is sent to, for private batches Bytes32 created The time the batch was sealed FFTime author The DID of identity of the submitter string key The on-chain signing key used to sign the transaction string hash The hash of the manifest of the batch Bytes32 payload Batch.payload BatchPayload"},{"location":"reference/types/batch/#batchpayload","title":"BatchPayload","text":"Field Name Description Type tx BatchPayload.tx TransactionRef messages BatchPayload.messages Message[] data BatchPayload.data Data[]"},{"location":"reference/types/batch/#transactionref","title":"TransactionRef","text":"Field Name Description Type type The type of the FireFly transaction FFEnum: id The UUID of the FireFly transaction UUID"},{"location":"reference/types/blockchainevent/","title":"BlockchainEvent","text":"

      Blockchain Events are detected by the blockchain plugin:

      1. When a ContractListener has been configured against any custom smart contract through the FireFly API
      2. Indirectly via a Token Connector, which understands the correct events to listen to for a Token Pool configured against a standard such as ERC-20/ERC-721/ERC-1155
      3. Automatically by FireFly core, for the BatchPin contract that can be used for high throughput batched pinning of off-chain data transfers to the blockchain (complementary to using your own smart contracts).
      "},{"location":"reference/types/blockchainevent/#protocol-id","title":"Protocol ID","text":"

      Each Blockchain Event (once final) exists in an absolute location somewhere in the transaction history of the blockchain. A particular slot, in a particular block.

      How to describe that position contains blockchain specifics - depending on how a particular blockchain represents transactions, blocks and events (or \"logs\").

      So FireFly is flexible with a string protocolId in the core object to represent this location, and then there is a convention that is adopted by the blockchain plugins to try and create some consistency.

      An example protocolId string is: 000000000041/000020/000003

      • 000000000041 - this is the block number
      • 000020 - this is the transaction index within that block
      • 000003 - this is the event (/log) index within that transaction

      The string is alphanumerically sortable as a plain string;

      Sufficient zero padding is included at each layer to support future expansion without creating a string that would no longer sort correctly.

      "},{"location":"reference/types/blockchainevent/#example","title":"Example","text":"
      {\n    \"id\": \"e9bc4735-a332-4071-9975-b1066e51ab8b\",\n    \"source\": \"ethereum\",\n    \"namespace\": \"ns1\",\n    \"name\": \"MyEvent\",\n    \"listener\": \"c29b4595-03c2-411a-89e3-8b7f27ef17bb\",\n    \"protocolId\": \"000000000048/000000/000000\",\n    \"output\": {\n        \"addr1\": \"0x55860105d6a675dbe6e4d83f67b834377ba677ad\",\n        \"value2\": \"42\"\n    },\n    \"info\": {\n        \"address\": \"0x57A9bE18CCB50D06B7567012AaF6031D669BBcAA\",\n        \"blockHash\": \"0xae7382ef2573553f517913b927d8b9691ada8d617266b8b16f74bb37aa78cae8\",\n        \"blockNumber\": \"48\",\n        \"logIndex\": \"0\",\n        \"signature\": \"Changed(address,uint256)\",\n        \"subId\": \"sb-e4d5efcd-2eba-4ed1-43e8-24831353fffc\",\n        \"timestamp\": \"1653048837\",\n        \"transactionHash\": \"0x34b0327567fefed09ac7b4429549bc609302b08a9cbd8f019a078ec44447593d\",\n        \"transactionIndex\": \"0x0\"\n    },\n    \"timestamp\": \"2022-05-16T01:23:15Z\",\n    \"tx\": {\n        \"blockchainId\": \"0x34b0327567fefed09ac7b4429549bc609302b08a9cbd8f019a078ec44447593d\"\n    }\n}\n
      "},{"location":"reference/types/blockchainevent/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID assigned to the event by FireFly UUID source The blockchain plugin or token service that detected the event string namespace The namespace of the listener that detected this blockchain event string name The name of the event in the blockchain smart contract string listener The UUID of the listener that detected this event, or nil for built-in events in the system namespace UUID protocolId An alphanumerically sortable string that represents this event uniquely on the blockchain (convention for plugins is zero-padded values BLOCKNUMBER/TXN_INDEX/EVENT_INDEX) string output The data output by the event, parsed to JSON according to the interface of the smart contract JSONObject info Detailed blockchain specific information about the event, as generated by the blockchain connector JSONObject timestamp The time allocated to this event by the blockchain. This is the block timestamp for most blockchain connectors FFTime tx If this blockchain event is coorelated to FireFly transaction such as a FireFly submitted token transfer, this field is set to the UUID of the FireFly transaction BlockchainTransactionRef"},{"location":"reference/types/blockchainevent/#blockchaintransactionref","title":"BlockchainTransactionRef","text":"Field Name Description Type type The type of the FireFly transaction FFEnum: id The UUID of the FireFly transaction UUID blockchainId The blockchain transaction ID, in the format specific to the blockchain involved in the transaction. Not all FireFly transactions include a blockchain string"},{"location":"reference/types/contractapi/","title":"ContractAPI","text":"

      Contract APIs provide generated REST APIs for on-chain smart contracts.

      API endpoints are generated to invoke or perform query operations against each of the functions/methods implemented by the smart contract.

      API endpoints are also provided to add listeners to the events of that smart contract.

      Note that once you have established listeners for your blockchain events into FireFly, you need to also subscribe in your application to receive the FireFly events (of type blockchain_event_received) that are emitted for each detected blockchain event.

      For more information see the Events reference section.

      "},{"location":"reference/types/contractapi/#url","title":"URL","text":"

      The base path for your Contract API is:

      • /api/v1/namespaces/{ns}/apis/{apiName}

      For the default namespace, this can be shortened to:

      • /api/v1/apis/{apiName}
      "},{"location":"reference/types/contractapi/#firefly-interface-ffi-and-on-chain-location","title":"FireFly Interface (FFI) and On-chain Location","text":"

      Contract APIs are registered against:

      1. A FireFly Interface (FFI) definition, which defines in a blockchain agnostic format the list of functions/events supported by the smart contract. Also detailed type information about the inputs/outputs to those functions/events.

      2. An optional location configured on the Contract API describes where the instance of the smart contract the API should interact with exists in the blockchain layer. For example the address of the Smart Contract for an Ethereum based blockchain, or the name and channel for a Hyperledger Fabric based blockchain.

      If the location is not specified on creation of the Contract API, then it must be specified on each API call made to the Contract API endpoints.

      "},{"location":"reference/types/contractapi/#openapi-v3-swagger-definitions","title":"OpenAPI V3 / Swagger Definitions","text":"

      Each Contract API comes with an OpenAPI V3 / Swagger generated definition, which can be downloaded from:

      • /api/v1/namespaces/{namespaces}/apis/{apiName}/api/swagger.json
      "},{"location":"reference/types/contractapi/#swagger-ui","title":"Swagger UI","text":"

      A browser / exerciser UI for your API is also available on:

      • /api/v1/namespaces/{namespaces}/apis/{apiName}/api
      "},{"location":"reference/types/contractapi/#example","title":"Example","text":"
      {\n    \"id\": \"0f12317b-85a0-4a77-a722-857ea2b0a5fa\",\n    \"namespace\": \"ns1\",\n    \"interface\": {\n        \"id\": \"c35d3449-4f24-4676-8e64-91c9e46f06c4\"\n    },\n    \"location\": {\n        \"address\": \"0x95a6c4895c7806499ba35f75069198f45e88fc69\"\n    },\n    \"name\": \"my_contract_api\",\n    \"message\": \"b09d9f77-7b16-4760-a8d7-0e3c319b2a16\",\n    \"urls\": {\n        \"api\": \"http://127.0.0.1:5000/api/v1/namespaces/default/apis/my_contract_api\",\n        \"openapi\": \"http://127.0.0.1:5000/api/v1/namespaces/default/apis/my_contract_api/api/swagger.json\",\n        \"ui\": \"http://127.0.0.1:5000/api/v1/namespaces/default/apis/my_contract_api/api\"\n    },\n    \"published\": false\n}\n
      "},{"location":"reference/types/contractapi/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the contract API UUID namespace The namespace of the contract API string interface Reference to the FireFly Interface definition associated with the contract API FFIReference location If this API is tied to an individual instance of a smart contract, this field can include a blockchain specific contract identifier. For example an Ethereum contract address, or a Fabric chaincode name and channel JSONAny name The name that is used in the URL to access the API string networkName The published name of the API within the multiparty network string message The UUID of the broadcast message that was used to publish this API to the network UUID urls The URLs to use to access the API ContractURLs published Indicates if the API is published to other members of the multiparty network bool"},{"location":"reference/types/contractapi/#ffireference","title":"FFIReference","text":"Field Name Description Type id The UUID of the FireFly interface UUID name The name of the FireFly interface string version The version of the FireFly interface string"},{"location":"reference/types/contractapi/#contracturls","title":"ContractURLs","text":"Field Name Description Type api The URL to use to invoke the API string openapi The URL to download the OpenAPI v3 (Swagger) description for the API generated in JSON or YAML format string ui The URL to use in a web browser to access the SwaggerUI explorer/exerciser for the API string"},{"location":"reference/types/contractlistener/","title":"ContractListener","text":"

      A contract listener configures FireFly to stream events from the blockchain, from a specific location on the blockchain, according to a given definition of the interface for that event.

      Check out the Custom Contracts Tutorial for a walk-through of how to set up listeners for the events from your smart contracts.

      "},{"location":"reference/types/contractlistener/#example","title":"Example","text":"
      {\n    \"id\": \"d61980a9-748c-4c72-baf5-8b485b514d59\",\n    \"interface\": {\n        \"id\": \"ff1da3c1-f9e7-40c2-8d93-abb8855e8a1d\"\n    },\n    \"namespace\": \"ns1\",\n    \"name\": \"contract1_events\",\n    \"backendId\": \"sb-dd8795fc-a004-4554-669d-c0cf1ee2c279\",\n    \"location\": {\n        \"address\": \"0x596003a91a97757ef1916c8d6c0d42592630d2cf\"\n    },\n    \"created\": \"2022-05-16T01:23:15Z\",\n    \"event\": {\n        \"name\": \"Changed\",\n        \"description\": \"\",\n        \"params\": [\n            {\n                \"name\": \"x\",\n                \"schema\": {\n                    \"type\": \"integer\",\n                    \"details\": {\n                        \"type\": \"uint256\",\n                        \"internalType\": \"uint256\"\n                    }\n                }\n            }\n        ]\n    },\n    \"signature\": \"Changed(uint256)\",\n    \"topic\": \"app1_topic\",\n    \"options\": {\n        \"firstEvent\": \"newest\"\n    }\n}\n
      "},{"location":"reference/types/contractlistener/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the smart contract listener UUID interface A reference to an existing FFI, containing pre-registered type information for the event FFIReference namespace The namespace of the listener, which defines the namespace of all blockchain events detected by this listener string name A descriptive name for the listener string backendId An ID assigned by the blockchain connector to this listener string location A blockchain specific contract identifier. For example an Ethereum contract address, or a Fabric chaincode name and channel JSONAny created The creation time of the listener FFTime event The definition of the event, either provided in-line when creating the listener, or extracted from the referenced FFI FFISerializedEvent signature The stringified signature of the event, as computed by the blockchain plugin string topic A topic to set on the FireFly event that is emitted each time a blockchain event is detected from the blockchain. Setting this topic on a number of listeners allows applications to easily subscribe to all events they need string options Options that control how the listener subscribes to events from the underlying blockchain ContractListenerOptions"},{"location":"reference/types/contractlistener/#ffireference","title":"FFIReference","text":"Field Name Description Type id The UUID of the FireFly interface UUID name The name of the FireFly interface string version The version of the FireFly interface string"},{"location":"reference/types/contractlistener/#ffiserializedevent","title":"FFISerializedEvent","text":"Field Name Description Type name The name of the event string description A description of the smart contract event string params An array of event parameter/argument definitions FFIParam[] details Additional blockchain specific fields about this event from the original smart contract. Used by the blockchain plugin and for documentation generation. JSONObject"},{"location":"reference/types/contractlistener/#ffiparam","title":"FFIParam","text":"Field Name Description Type name The name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contract string schema FireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detail JSONAny"},{"location":"reference/types/contractlistener/#contractlisteneroptions","title":"ContractListenerOptions","text":"Field Name Description Type firstEvent A blockchain specific string, such as a block number, to start listening from. The special strings 'oldest' and 'newest' are supported by all blockchain connectors. Default is 'newest' string"},{"location":"reference/types/data/","title":"Data","text":"

      Data is a uniquely identified piece of data available for retrieval or transfer.

      Multiple data items can be attached to a message when sending data off-chain to another party in a multi-party system. Note that if you pass data in-line when sending a message, those data elements will be stored separately to the message and available to retrieve separately later.

      An UUID is allocated to each data resource.

      A hash is also calculated as follows:

      • If there is only data, the hash is of the value serialized as JSON with no additional whitespace (order of the keys is retained from the original upload order).
      • If there is only a blob attachment, the hash is of the blob data.
      • There is is both a blob and a value, then the hash is a hash of the concatenation of a hash of the value and a hash of the blob.
      "},{"location":"reference/types/data/#value-json-data-stored-in-the-core-database","title":"Value - JSON data stored in the core database","text":"

      Each data resource can contain a value, which is any JSON type. String, number, boolean, array or object. This value is stored directly in the FireFly database.

      If the value you are storing is not JSON data, but is small enough you want it to be stored in the core database, then use a JSON string to store an encoded form of your data (such as XML, CSV etc.).

      "},{"location":"reference/types/data/#datatype-validation-of-agreed-data-types","title":"Datatype - validation of agreed data types","text":"

      A datatype can be associated with your data, causing FireFly to verify the value against a schema before accepting it (on upload, or receipt from another party in the network).

      These datatypes are pre-established via broadcast messages, and support versioning. Use this system to enforce a set of common data types for exchange of data across your business network, and reduce the overhead of data verification\\ required in the application/integration tier.

      More information in the Datatype section

      "},{"location":"reference/types/data/#blob-binary-data-stored-via-the-data-exchange","title":"Blob - binary data stored via the Data Exchange","text":"

      Data resources can also contain a blob attachment, which is stored via the Data Exchange plugin outside of the FireFly core database. This is intended for large data payloads, which might be structured or unstructured. PDF documents, multi-MB XML payloads, CSV data exports, JPEG images video files etc.

      A Data resource can contain both a value JSON payload, and a blob attachment, meaning that you bind a set of metadata to a binary payload. For example a set of extracted metadata from OCR processing of a PDF document.

      One special case is a filename for a document. This pattern is so common for file/document management scenarios, that special handling is provided for it. If a JSON object is stored in value, and it has a property called name, then this value forms part of the data hash (as does every field in the value) and is stored in a separately indexed blob.name field.

      The upload REST API provides an autometa form field, which can be set to ask FireFly core to automatically set the value to contain the filename, size, and MIME type from the file upload.

      "},{"location":"reference/types/data/#example","title":"Example","text":"
      {\n    \"id\": \"4f11e022-01f4-4c3f-909f-5226947d9ef0\",\n    \"validator\": \"json\",\n    \"namespace\": \"ns1\",\n    \"hash\": \"5e2758423c99b799f53d3f04f587f5716c1ff19f1d1a050f40e02ea66860b491\",\n    \"created\": \"2022-05-16T01:23:15Z\",\n    \"datatype\": {\n        \"name\": \"widget\",\n        \"version\": \"v1.2.3\"\n    },\n    \"value\": {\n        \"name\": \"filename.pdf\",\n        \"a\": \"example\",\n        \"b\": {\n            \"c\": 12345\n        }\n    },\n    \"blob\": {\n        \"hash\": \"cef238f7b02803a799f040cdabe285ad5cd6db4a15cb9e2a1000f2860884c7ad\",\n        \"size\": 12345,\n        \"name\": \"filename.pdf\"\n    }\n}\n
      "},{"location":"reference/types/data/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the data resource UUID validator The data validator type FFEnum: namespace The namespace of the data resource string hash The hash of the data resource. Derived from the value and the hash of any binary blob attachment Bytes32 created The creation time of the data resource FFTime datatype The optional datatype to use of validation of this data DatatypeRef value The value for the data, stored in the FireFly core database. Can be any JSON type - object, array, string, number or boolean. Can be combined with a binary blob attachment JSONAny public If the JSON value has been published to shared storage, this field is the id of the data in the shared storage plugin (IPFS hash etc.) string blob An optional hash reference to a binary blob attachment BlobRef"},{"location":"reference/types/data/#datatyperef","title":"DatatypeRef","text":"Field Name Description Type name The name of the datatype string version The version of the datatype. Semantic versioning is encouraged, such as v1.0.1 string"},{"location":"reference/types/data/#blobref","title":"BlobRef","text":"Field Name Description Type hash The hash of the binary blob data Bytes32 size The size of the binary data int64 name The name field from the metadata attached to the blob, commonly used as a path/filename, and indexed for search string path If a name is specified, this field stores the '/' prefixed and separated path extracted from the full name string public If the blob data has been published to shared storage, this field is the id of the data in the shared storage plugin (IPFS hash etc.) string"},{"location":"reference/types/datatype/","title":"Datatype","text":"

      A datatype defines the format of some data that can be shared between parties, in a way that FireFly can enforce consistency of that data against the schema.

      Data that does not match the schema associated with it will not be accepted on upload to FireFly, and if this were bypassed by a participant in some way it would be rejected by all parties and result in a message_rejected event (rather than message_confirmed event).

      Currently JSON Schema validation of data is supported.

      The system for defining datatypes is pluggable, to support other schemes in the future, such as XML Schema, or CSV, EDI etc.

      "},{"location":"reference/types/datatype/#example","title":"Example","text":"
      {\n    \"id\": \"3a479f7e-ddda-4bda-aa24-56d06c0bf08e\",\n    \"message\": \"bfcf904c-bdf7-40aa-bbd7-567f625c26c0\",\n    \"validator\": \"json\",\n    \"namespace\": \"ns1\",\n    \"name\": \"widget\",\n    \"version\": \"1.0.0\",\n    \"hash\": \"639cd98c893fa45a9df6fd87bd0393a9b39e31e26fbb1eeefe90cb40c3fa02d2\",\n    \"created\": \"2022-05-16T01:23:16Z\",\n    \"value\": {\n        \"$id\": \"https://example.com/widget.schema.json\",\n        \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n        \"title\": \"Widget\",\n        \"type\": \"object\",\n        \"properties\": {\n            \"id\": {\n                \"type\": \"string\",\n                \"description\": \"The unique identifier for the widget.\"\n            },\n            \"name\": {\n                \"type\": \"string\",\n                \"description\": \"The person's last name.\"\n            }\n        },\n        \"additionalProperties\": false\n    }\n}\n
      "},{"location":"reference/types/datatype/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the datatype UUID message The UUID of the broadcast message that was used to publish this datatype to the network UUID validator The validator that should be used to verify this datatype FFEnum:\"json\"\"none\"\"definition\" namespace The namespace of the datatype. Data resources can only be created referencing datatypes in the same namespace string name The name of the datatype string version The version of the datatype. Multiple versions can exist with the same name. Use of semantic versioning is encourages, such as v1.0.1 string hash The hash of the value, such as the JSON schema. Allows all parties to be confident they have the exact same rules for verifying data created against a datatype Bytes32 created The time the datatype was created FFTime value The definition of the datatype, in the syntax supported by the validator (such as a JSON Schema definition) JSONAny"},{"location":"reference/types/event/","title":"Event","text":"

      Every Event emitted by FireFly shares a common structure.

      See Events for a reference for how the overall event bus in Hyperledger FireFly operates, and descriptions of all the sub-categories of events.

      "},{"location":"reference/types/event/#sequence","title":"Sequence","text":"

      A local sequence number is assigned to each event, and you can use an API to query events using this sequence number in exactly the same order that they are delivered to your application.

      "},{"location":"reference/types/event/#reference","title":"Reference","text":"

      Events have a reference to the UUID of an object that is the subject of the event, such as a detailed Blockchain Event, or an off-chain Message.

      When events are delivered to your application, the reference field is automatically retrieved and included in the JSON payload that is delivered to your application.

      You can use the ?fetchreferences query parameter on API calls to request the same in-line JSON payload be included in query results.

      The type of the reference also determines what subscription filters apply when performing server-side filters.

      Here is the mapping between event types, and the object that you find in the reference field.

      "},{"location":"reference/types/event/#correlator","title":"Correlator","text":"

      For some event types, there is a secondary reference to an object that is associated with the event. This is set in a correlator field on the Event, but is not automatically fetched. This field is primarily used for the confirm option on API calls to allow FireFly to determine when a request has succeeded/failed.

      "},{"location":"reference/types/event/#topic","title":"Topic","text":"

      Events have a topic, and how that topic is determined is specific to the type of event. This is intended to be a property you would use to filter events to your application, or query all historical events associated with a given business data stream.

      For example when you send a Message, you set the topics you want that message to apply to, and FireFly ensures a consistent global order between all parties that receive that message.

      "},{"location":"reference/types/event/#transaction","title":"Transaction","text":"

      When actions are submitted by a FireFly node, they are performed within a FireFly Transaction. The events that occur as a direct result of that transaction, are tagged with the transaction ID so that they can be grouped together.

      This construct is a distinct higher level construct than a Blockchain transaction, that groups together a number of operations/events that might be on-chain or off-chain. In some cases, such as unpinned off-chain data transfer, a FireFly transaction can exist when there is no blockchain transaction at all. Wherever possible you will find that FireFly tags the FireFly transaction with any associated Blockchain transaction(s).

      Note that some events cannot be tagged with a Transaction ID:

      • Blockchain events, unless they were part of a batch-pin transaction for transfer of a message
      • Token transfers/approvals, unless they had a message transfer associated with them (and included a data payload in the event they emitted)
      "},{"location":"reference/types/event/#reference-topic-and-correlator-by-event-type","title":"Reference, Topic and Correlator by Event Type","text":"Types Reference Topic Correlator transaction_submitted Transaction transaction.type message_confirmedmessage_rejected Message message.header.topics[i]* message.header.cid token_pool_confirmed TokenPool tokenPool.id token_pool_op_failed Operation tokenPool.id tokenPool.id token_transfer_confirmed TokenTransfer tokenPool.id token_transfer_op_failed Operation tokenPool.id tokenTransfer.localId token_approval_confirmed TokenApproval tokenPool.id token_approval_op_failed Operation tokenPool.id tokenApproval.localId namespace_confirmed Namespace \"ff_definition\" datatype_confirmed Datatype \"ff_definition\" identity_confirmedidentity_updated Identity \"ff_definition\" contract_interface_confirmed FFI \"ff_definition\" contract_api_confirmed ContractAPI \"ff_definition\" blockchain_event_received BlockchainEvent From listener ** blockchain_invoke_op_succeeded Operation blockchain_invoke_op_failed Operation blockchain_contract_deploy_op_succeeded Operation blockchain_contract_deploy_op_failed Operation
      • A separate event is emitted for each topic associated with a Message.

      ** The topic for a blockchain event is inherited from the blockchain listener, allowing you to create multiple blockchain listeners that all deliver messages to your application on a single FireFly topic.

      "},{"location":"reference/types/event/#example","title":"Example","text":"
      {\n    \"id\": \"5f875824-b36b-4559-9791-a57a2e2b30dd\",\n    \"sequence\": 168,\n    \"type\": \"transaction_submitted\",\n    \"namespace\": \"ns1\",\n    \"reference\": \"0d12aa75-5ed8-48a7-8b54-45274c6edcb1\",\n    \"tx\": \"0d12aa75-5ed8-48a7-8b54-45274c6edcb1\",\n    \"topic\": \"batch_pin\",\n    \"created\": \"2022-05-16T01:23:15Z\"\n}\n
      "},{"location":"reference/types/event/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID assigned to this event by your local FireFly node UUID sequence A sequence indicating the order in which events are delivered to your application. Assure to be unique per event in your local FireFly database (unlike the created timestamp) int64 type All interesting activity in FireFly is emitted as a FireFly event, of a given type. The 'type' combined with the 'reference' can be used to determine how to process the event within your application FFEnum:\"transaction_submitted\"\"message_confirmed\"\"message_rejected\"\"datatype_confirmed\"\"identity_confirmed\"\"identity_updated\"\"token_pool_confirmed\"\"token_pool_op_failed\"\"token_transfer_confirmed\"\"token_transfer_op_failed\"\"token_approval_confirmed\"\"token_approval_op_failed\"\"contract_interface_confirmed\"\"contract_api_confirmed\"\"blockchain_event_received\"\"blockchain_invoke_op_succeeded\"\"blockchain_invoke_op_failed\"\"blockchain_contract_deploy_op_succeeded\"\"blockchain_contract_deploy_op_failed\" namespace The namespace of the event. Your application must subscribe to events within a namespace string reference The UUID of an resource that is the subject of this event. The event type determines what type of resource is referenced, and whether this field might be unset UUID correlator For message events, this is the 'header.cid' field from the referenced message. For certain other event types, a secondary object is referenced such as a token pool UUID tx The UUID of a transaction that is event is part of. Not all events are part of a transaction UUID topic A stream of information this event relates to. For message confirmation events, a separate event is emitted for each topic in the message. For blockchain events, the listener specifies the topic. Rules exist for how the topic is set for other event types string created The time the event was emitted. Not guaranteed to be unique, or to increase between events in the same order as the final sequence events are delivered to your application. As such, the 'sequence' field should be used instead of the 'created' field for querying events in the exact order they are delivered to applications FFTime"},{"location":"reference/types/ffi/","title":"FFI","text":"

      See FireFly Interface Format

      "},{"location":"reference/types/ffi/#example","title":"Example","text":"
      {\n    \"id\": \"c35d3449-4f24-4676-8e64-91c9e46f06c4\",\n    \"message\": \"e4ad2077-5714-416e-81f9-7964a6223b6f\",\n    \"namespace\": \"ns1\",\n    \"name\": \"SimpleStorage\",\n    \"description\": \"A simple example contract in Solidity\",\n    \"version\": \"v0.0.1\",\n    \"methods\": [\n        {\n            \"id\": \"8f3289dd-3a19-4a9f-aab3-cb05289b013c\",\n            \"interface\": \"c35d3449-4f24-4676-8e64-91c9e46f06c4\",\n            \"name\": \"get\",\n            \"namespace\": \"ns1\",\n            \"pathname\": \"get\",\n            \"description\": \"Get the current value\",\n            \"params\": [],\n            \"returns\": [\n                {\n                    \"name\": \"output\",\n                    \"schema\": {\n                        \"type\": \"integer\",\n                        \"details\": {\n                            \"type\": \"uint256\"\n                        }\n                    }\n                }\n            ],\n            \"details\": {\n                \"stateMutability\": \"viewable\"\n            }\n        },\n        {\n            \"id\": \"fc6f54ee-2e3c-4e56-b17c-4a1a0ae7394b\",\n            \"interface\": \"c35d3449-4f24-4676-8e64-91c9e46f06c4\",\n            \"name\": \"set\",\n            \"namespace\": \"ns1\",\n            \"pathname\": \"set\",\n            \"description\": \"Set the value\",\n            \"params\": [\n                {\n                    \"name\": \"newValue\",\n                    \"schema\": {\n                        \"type\": \"integer\",\n                        \"details\": {\n                            \"type\": \"uint256\"\n                        }\n                    }\n                }\n            ],\n            \"returns\": [],\n            \"details\": {\n                \"stateMutability\": \"payable\"\n            }\n        }\n    ],\n    \"events\": [\n        {\n            \"id\": \"9f653f93-86f4-45bc-be75-d7f5888fbbc0\",\n            \"interface\": \"c35d3449-4f24-4676-8e64-91c9e46f06c4\",\n            \"namespace\": \"ns1\",\n            \"pathname\": \"Changed\",\n            \"signature\": \"Changed(address,uint256)\",\n            \"name\": \"Changed\",\n            \"description\": \"Emitted when the value changes\",\n            \"params\": [\n                {\n                    \"name\": \"_from\",\n                    \"schema\": {\n                        \"type\": \"string\",\n                        \"details\": {\n                            \"type\": \"address\",\n                            \"indexed\": true\n                        }\n                    }\n                },\n                {\n                    \"name\": \"_value\",\n                    \"schema\": {\n                        \"type\": \"integer\",\n                        \"details\": {\n                            \"type\": \"uint256\"\n                        }\n                    }\n                }\n            ]\n        }\n    ],\n    \"published\": false\n}\n
      "},{"location":"reference/types/ffi/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the FireFly interface (FFI) smart contract definition UUID message The UUID of the broadcast message that was used to publish this FFI to the network UUID namespace The namespace of the FFI string name The name of the FFI - usually matching the smart contract name string networkName The published name of the FFI within the multiparty network string description A description of the smart contract this FFI represents string version A version for the FFI - use of semantic versioning such as 'v1.0.1' is encouraged string methods An array of smart contract method definitions FFIMethod[] events An array of smart contract event definitions FFIEvent[] errors An array of smart contract error definitions FFIError[] published Indicates if the FFI is published to other members of the multiparty network bool"},{"location":"reference/types/ffi/#ffimethod","title":"FFIMethod","text":"Field Name Description Type id The UUID of the FFI method definition UUID interface The UUID of the FFI smart contract definition that this method is part of UUID name The name of the method string namespace The namespace of the FFI string pathname The unique name allocated to this method within the FFI for use on URL paths. Supports contracts that have multiple method overrides with the same name string description A description of the smart contract method string params An array of method parameter/argument definitions FFIParam[] returns An array of method return definitions FFIParam[] details Additional blockchain specific fields about this method from the original smart contract. Used by the blockchain plugin and for documentation generation. JSONObject"},{"location":"reference/types/ffi/#ffiparam","title":"FFIParam","text":"Field Name Description Type name The name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contract string schema FireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detail JSONAny"},{"location":"reference/types/ffi/#ffievent","title":"FFIEvent","text":"Field Name Description Type id The UUID of the FFI event definition UUID interface The UUID of the FFI smart contract definition that this event is part of UUID namespace The namespace of the FFI string pathname The unique name allocated to this event within the FFI for use on URL paths. Supports contracts that have multiple event overrides with the same name string signature The stringified signature of the event, as computed by the blockchain plugin string name The name of the event string description A description of the smart contract event string params An array of event parameter/argument definitions FFIParam[] details Additional blockchain specific fields about this event from the original smart contract. Used by the blockchain plugin and for documentation generation. JSONObject"},{"location":"reference/types/ffi/#ffiparam_1","title":"FFIParam","text":"Field Name Description Type name The name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contract string schema FireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detail JSONAny"},{"location":"reference/types/ffi/#ffierror","title":"FFIError","text":"Field Name Description Type id The UUID of the FFI error definition UUID interface The UUID of the FFI smart contract definition that this error is part of UUID namespace The namespace of the FFI string pathname The unique name allocated to this error within the FFI for use on URL paths string signature The stringified signature of the error, as computed by the blockchain plugin string name The name of the error string description A description of the smart contract error string params An array of error parameter/argument definitions FFIParam[]"},{"location":"reference/types/ffi/#ffiparam_2","title":"FFIParam","text":"Field Name Description Type name The name of the parameter. Note that parameters must be ordered correctly on the FFI, according to the order in the blockchain smart contract string schema FireFly uses an extended subset of JSON Schema to describe parameters, similar to OpenAPI/Swagger. Converters are available for native blockchain interface definitions / type systems - such as an Ethereum ABI. See the documentation for more detail JSONAny"},{"location":"reference/types/group/","title":"Group","text":"

      A privacy group is a list of identities that should receive a private communication.

      When you send a private message, you can specify the list of participants in-line and it will be resolved to a group. Or you can reference the group using its identifying hash.

      The sender of a message must be included in the group along with the other participants. The sender receives an event confirming the message, just as any other participant would do.

      The sender is included automatically in the group when members are specified in-line, if it is omitted.

      "},{"location":"reference/types/group/#group-identity-hash","title":"Group identity hash","text":"

      The identifying hash for a group is determined as follows:

      • All identities are resolved to their DID.
      • An organization name or identity UUID can be used on input
      • The UUID of the node that should receive the data for each participant is determined (if not specified).
      • The first node found that is in the same identity hierarchy as the participant identity, will be chosen.
      • The list of participants is ordered by DID, with de-duplication of any identities.
      • The namespace, name, and members array are then serialized into a JSON object, without whitespace.
      • A SHA256 hash of the JSON object is calculated
      "},{"location":"reference/types/group/#private-messaging-architecture","title":"Private messaging architecture","text":"

      The mechanism that keeps data private and ordered, without leaking data to the blockchain, is summarized in the below diagram.

      The key points are:

      • Data is sent off-chain to all participants via the Data Exchange plugin
      • The Data Exchange is responsible for encryption and off-chain identity verification
      • Only parties that are involved in the privacy group receive the data
      • Other parties are only able to view the blockchain transaction
      • The hash and member list of the group are not shared outside of the privacy group
      • The name of the group can be used as an additional salt in generation of the group hash
      • The member list must be known by all members of the group to verify the blockchain transactions, so the full group JSON structure is communicated privately with the first message sent on a group
      • The blockchain transaction is the source of truth for ordering
      • All members are able to detect a blockchain transaction is part of a group they are a member of, from only the blockchain transaction - so they can block processing of subsequent messages until the off-chain data arrives (asynchronously)
      • The ordering context for messages is masked on the blockchain, so that two messages that are for same group do not contain the same context
      • The ordering context (topic+group) is combined with a nonce that is incremented for each individual sender, to form a message-specific hash.
      • For each blockchain transaction, this hash can be compared against the expected next hash for each member to determine if it is a message on a known group - even without the private data (which might arrive later)

      See NextPin for more information on the structure used for storing the next expected masked context pin, for each member of the privacy group.

      "},{"location":"reference/types/group/#example","title":"Example","text":"
      {\n    \"namespace\": \"ns1\",\n    \"name\": \"\",\n    \"members\": [\n        {\n            \"identity\": \"did:firefly:org/1111\",\n            \"node\": \"4f563179-b4bd-4161-86e0-c2c1c0869c4f\"\n        },\n        {\n            \"identity\": \"did:firefly:org/2222\",\n            \"node\": \"61a99af8-c1f7-48ea-8fcc-489e4822a0ed\"\n        }\n    ],\n    \"localNamespace\": \"ns1\",\n    \"message\": \"0b9dfb76-103d-443d-92fd-b114fe07c54d\",\n    \"hash\": \"c52ad6c034cf5c7382d9a294f49297096a52eb55cc2da696c564b2a276633b95\",\n    \"created\": \"2022-05-16T01:23:16Z\"\n}\n
      "},{"location":"reference/types/group/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type namespace The namespace of the group within the multiparty network string name The optional name of the group, allowing multiple unique groups to exist with the same list of recipients string members The list of members in this privacy group Member[] localNamespace The local namespace of the group string message The message used to broadcast this group privately to the members UUID hash The identifier hash of this group. Derived from the name and group members Bytes32 created The time when the group was first used to send a message in the network FFTime"},{"location":"reference/types/group/#member","title":"Member","text":"Field Name Description Type identity The DID of the group member string node The UUID of the node that receives a copy of the off-chain message for the identity UUID"},{"location":"reference/types/identity/","title":"Identity","text":"

      FireFly contains an address book of identities, which is managed in a decentralized way across a multi-party system through claim and verification system.

      See FIR-12 for evolution that is happening to Hyperledger FireFly to allow:

      • Private address books that are not shared with other participants
      • Multiple address books backed by different chains, in the same node

      Root identities are registered with only a claim - which is a signed transaction from a particular blockchain account, to bind a DID with a name that is unique within the network, to that signing key.

      The signing key then becomes a Verifier for that identity. Using that key the root identity can be used to register a new FireFly node in the network, send and receive messages, and register child identities.

      When child identities are registered, a claim using a key that is going to be the Verifier for that child identity is required. However, this is insufficient to establish that identity as a child identity of the parent. There must be an additional verification that references the claim (by UUID) using the key verifier of the parent identity.

      "},{"location":"reference/types/identity/#dids","title":"DIDs","text":"

      FireFly has adopted the DID standard for representing identities. A \"DID Method\" name of firefly is used to represent that the built-in identity system of Hyperledger FireFly is being used to resolve these DIDs.

      So an example FireFly DID for organization abcd1234 is:

      • did:firefly:org/abcd1234

      The adoption of DIDs in Hyperledger FireFly v1.0 is also a stepping stone to allowing pluggable DID based identity resolvers into FireFly in the future.

      You can also download a DID Document for a FireFly identity, which represents the verifiers and other information about that identity according to the JSON format in the DID standard.

      "},{"location":"reference/types/identity/#example","title":"Example","text":"
      {\n    \"id\": \"114f5857-9983-46fb-b1fc-8c8f0a20846c\",\n    \"did\": \"did:firefly:org/org_1\",\n    \"type\": \"org\",\n    \"parent\": \"688072c3-4fa0-436c-a86b-5d89673b8938\",\n    \"namespace\": \"ff_system\",\n    \"name\": \"org_1\",\n    \"messages\": {\n        \"claim\": \"911b364b-5863-4e49-a3f8-766dbbae7c4c\",\n        \"verification\": \"24636f11-c1f9-4bbb-9874-04dd24c7502f\",\n        \"update\": null\n    },\n    \"created\": \"2022-05-16T01:23:15Z\"\n}\n
      "},{"location":"reference/types/identity/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the identity UUID did The DID of the identity. Unique across namespaces within a FireFly network string type The type of the identity FFEnum:\"org\"\"node\"\"custom\" parent The UUID of the parent identity. Unset for root organization identities UUID namespace The namespace of the identity. Organization and node identities are always defined in the ff_system namespace string name The name of the identity. The name must be unique within the type and namespace string description A description of the identity. Part of the updatable profile information of an identity string profile A set of metadata for the identity. Part of the updatable profile information of an identity JSONObject messages References to the broadcast messages that established this identity and proved ownership of the associated verifiers (keys) IdentityMessages created The creation time of the identity FFTime updated The last update time of the identity profile FFTime"},{"location":"reference/types/identity/#identitymessages","title":"IdentityMessages","text":"Field Name Description Type claim The UUID of claim message UUID verification The UUID of claim message. Unset for root organization identities UUID update The UUID of the most recently applied update message. Unset if no updates have been confirmed UUID"},{"location":"reference/types/message/","title":"Message","text":"

      Message is the envelope by which coordinated data exchange can happen between parties in the network. Data is passed by reference in these messages, and a chain of hashes covering the data and the details of the message, provides a verification against tampering.

      A message is made up of three sections:

      1. The header - a set of metadata that determines how the message is ordered, who should receive it, and how they should process it
      2. The data - an array of data attachments
      3. Status information - fields that are calculated independently by each node, and hence update as the message makes it way through the system
      "},{"location":"reference/types/message/#hash","title":"Hash","text":"

      Sections (1) and (2) are fixed once the message is sent, and a hash is generated that provides tamper protection.

      The hash is a function of the header, and all of the data payloads. Calculated as follows:

      • The hash of each Data element is calculated individually
      • A JSON array of [{\"id\":\"{{DATA_UUID}}\",\"hash\":\"{{DATA_HASH}}\"}] is hashed, and that hash is stored in header.datahash
      • The header is serialized as JSON with the deterministic order (listed below) and hashed
      • JSON data is serialized without whitespace to hash it.
      • The hashing algorithm is SHA-256

      Each node independently calculates the hash, and the hash is included in the manifest of the Batch by the node that sends the message. Because the hash of that batch manifest is included in the blockchain transaction, a message transferred to a node that does not match the original message hash is rejected.

      "},{"location":"reference/types/message/#tag","title":"Tag","text":"

      The header.tag tells the processors of the message how it should be processed, and what data they should expect it to contain.

      If you think of your decentralized application like a state machine, then you need to have a set of well defined transitions that can be performed between states. Each of these transitions that requires off-chain transfer of private data (optionally coordinated with an on-chain transaction) should be expressed as a type of message, with a particular tag.

      Every copy of the application that runs in the participants of the network should look at this tag to determine what logic to execute against it.

      Note: For consistency in ordering, the sender should also wait to process the state machine transitions associated with the message they send until it is ordered by the blockchain. They should not consider themselves special because they sent the message, and process it immediately - otherwise they could end up processing it in a different order to other parties in the network that are also processing the message.

      "},{"location":"reference/types/message/#topics","title":"Topics","text":"

      The header.topics strings allow you to set the the ordering context for each message you send, and you are strongly encouraged to set it explicitly on every message you send (falling back to the default topic is not recommended).

      A key difference between blockchain backed decentralized applications and other event-driven applications, is that there is a single source of truth for the order in which things happen.

      In a multi-party system with off-chain transfer of data as well as on-chain transfer of data, the two sets of data need to be coordinated together. The off-chain transfer might happen at different times, and is subject to the reliability of the parties & network links involved in that off-chain communication.

      A \"stop the world\" approach to handling a single piece of missing data is not practical for a high volume production business network.

      The ordering context is a function of:

      1. Whether the message is broadcast or private
      2. If it is private, the privacy group associated with the message
      3. The topic of the message

      When an on-chain transaction is detected by FireFly, it can determine the above ordering - noting that privacy is preserved for private messages by masking this ordering context message-by-message with a nonce and the group ID, so that only the participants in that group can decode the ordering context.

      If a piece of off-chain data is unavailable, then the FireFly node will block only streams of data that are associated with that ordering context.

      For your application, you should choose the most granular identifier you can for your topic to minimize the scope of any blockage if one item of off-chain data fails to be delivered or is delayed. Some good examples are:

      • A business transaction identifier - to ensure all data related to particular business transaction are processed in order
      • A globally agreed customer identifier - to ensure all data related to a particular business entity are processed in order
      "},{"location":"reference/types/message/#using-multiple-topics","title":"Using multiple topics","text":"

      There are some advanced scenarios where you need to merge streams of ordered data, so that two previously separately ordered streams of communication (different state machines) are joined together to process a critical decision/transition in a deterministic order.

      A synchronization point between two otherwise independent streams of communication.

      To do this, simply specify two topics in the message you sent, and the message will be independently ordered against both of those topics.

      You will also receive two events for the confirmation of that message, one for each topic.

      Some examples:

      • Agreeing to join two previously separate business transactions with ids 000001 and 000002, by discarding business transaction 000001 as a duplicate
      • Specify topics: [\"000001\",\"000002\"] on the special merge message, and then from that point onwards you would only need to specify topics: [\"000002\"].
      • Agreeing to join two previously separate entities with id1 and id2, into a merged entity with id3.
      • Specify topics: [\"id1\",\"id2\",\"id3\"] on the special merge message, and then from that point onwards you would only need to specify topics: [\"id3\"].
      "},{"location":"reference/types/message/#transaction-type","title":"Transaction type","text":"

      By default messages are pinned to the blockchain, within a Batch.

      For private messages, you can choose to disable this pinning by setting header.txtype: \"unpinned\".

      Broadcast messages must be pinned to the blockchain.

      "},{"location":"reference/types/message/#in-line-data","title":"In-line data","text":"

      When sending a message you can specify the array of Data attachments in-line, as part of the same JSON payload.

      For example, a minimal broadcast message could be:

      {\n    \"data\": [\n        {\"value\": \"hello world\"}\n    ]\n}\n

      When you send this message with /api/v1/namespaces/{ns}/messages/broadcast:

      • The header will be initialized with the default values, including txtype: \"batch_pin\"
      • The data[0] entry will be stored as a Data resource
      • The message will be assembled into a batch and broadcast
      "},{"location":"reference/types/message/#example","title":"Example","text":"
      {\n    \"header\": {\n        \"id\": \"4ea27cce-a103-4187-b318-f7b20fd87bf3\",\n        \"cid\": \"00d20cba-76ed-431d-b9ff-f04b4cbee55c\",\n        \"type\": \"private\",\n        \"txtype\": \"batch_pin\",\n        \"author\": \"did:firefly:org/acme\",\n        \"key\": \"0xD53B0294B6a596D404809b1d51D1b4B3d1aD4945\",\n        \"created\": \"2022-05-16T01:23:10Z\",\n        \"namespace\": \"ns1\",\n        \"group\": \"781caa6738a604344ae86ee336ada1b48a404a85e7041cf75b864e50e3b14a22\",\n        \"topics\": [\n            \"topic1\"\n        ],\n        \"tag\": \"blue_message\",\n        \"datahash\": \"c07be180b147049baced0b6219d9ce7a84ab48f2ca7ca7ae949abb3fe6491b54\"\n    },\n    \"localNamespace\": \"ns1\",\n    \"state\": \"confirmed\",\n    \"confirmed\": \"2022-05-16T01:23:16Z\",\n    \"data\": [\n        {\n            \"id\": \"fdf9f118-eb81-4086-a63d-b06715b3bb4e\",\n            \"hash\": \"34cf848d896c83cdf433ea7bd9490c71800b316a96aac3c3a78a42a4c455d67d\"\n        }\n    ]\n}\n
      "},{"location":"reference/types/message/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type header The message header contains all fields that are used to build the message hash MessageHeader localNamespace The local namespace of the message string hash The hash of the message. Derived from the header, which includes the data hash Bytes32 batch The UUID of the batch in which the message was pinned/transferred UUID txid The ID of the transaction used to order/deliver this message UUID state The current state of the message FFEnum:\"staged\"\"ready\"\"sent\"\"pending\"\"confirmed\"\"rejected\"\"cancelled\" confirmed The timestamp of when the message was confirmed/rejected FFTime rejectReason If a message was rejected, provides details on the rejection reason string data The list of data elements attached to the message DataRef[] pins For private messages, a unique pin hash:nonce is assigned for each topic string[] idempotencyKey An optional unique identifier for a message. Cannot be duplicated within a namespace, thus allowing idempotent submission of messages to the API. Local only - not transferred when the message is sent to other members of the network IdempotencyKey"},{"location":"reference/types/message/#messageheader","title":"MessageHeader","text":"Field Name Description Type id The UUID of the message. Unique to each message UUID cid The correlation ID of the message. Set this when a message is a response to another message UUID type The type of the message FFEnum:\"definition\"\"broadcast\"\"private\"\"groupinit\"\"transfer_broadcast\"\"transfer_private\"\"approval_broadcast\"\"approval_private\" txtype The type of transaction used to order/deliver this message FFEnum:\"none\"\"unpinned\"\"batch_pin\"\"network_action\"\"token_pool\"\"token_transfer\"\"contract_deploy\"\"contract_invoke\"\"contract_invoke_pin\"\"token_approval\"\"data_publish\" author The DID of identity of the submitter string key The on-chain signing key used to sign the transaction string created The creation time of the message FFTime namespace The namespace of the message within the multiparty network string topics A message topic associates this message with an ordered stream of data. A custom topic should be assigned - using the default topic is discouraged string[] tag The message tag indicates the purpose of the message to the applications that process it string datahash A single hash representing all data in the message. Derived from the array of data ids+hashes attached to this message Bytes32 txparent The parent transaction that originally triggered this message TransactionRef"},{"location":"reference/types/message/#transactionref","title":"TransactionRef","text":"Field Name Description Type type The type of the FireFly transaction FFEnum: id The UUID of the FireFly transaction UUID"},{"location":"reference/types/message/#dataref","title":"DataRef","text":"Field Name Description Type id The UUID of the referenced data resource UUID hash The hash of the referenced data Bytes32"},{"location":"reference/types/namespace/","title":"Namespace","text":"

      A namespace is a logical isolation domain for different applications, or tenants, that share the FireFly node.

      Significant evolution of the Hyperledger FireFly namespace construct, is proposed under FIR-12

      "},{"location":"reference/types/namespace/#example","title":"Example","text":"
      {\n    \"name\": \"default\",\n    \"networkName\": \"default\",\n    \"description\": \"Default predefined namespace\",\n    \"created\": \"2022-05-16T01:23:16Z\"\n}\n
      "},{"location":"reference/types/namespace/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type name The local namespace name string networkName The shared namespace name within the multiparty network string description A description of the namespace string created The time the namespace was created FFTime"},{"location":"reference/types/nextpin/","title":"NextPin","text":"

      Next-pins are maintained by each member of a privacy group, in order to detect if a on-chain transaction with a given \"pin\" for a message represents the next message for any member of the privacy group.

      This allows every member to maintain a global order of transactions within a topic in a privacy group, without leaking the same hash between the messages that are communicated in that group.

      See Group for more information on privacy groups.

      "},{"location":"reference/types/nextpin/#example","title":"Example","text":"
      {\n    \"namespace\": \"ns1\",\n    \"context\": \"a25b65cfe49e5ed78c256e85cf07c96da938144f12fcb02fe4b5243a4631bd5e\",\n    \"identity\": \"did:firefly:org/example\",\n    \"hash\": \"00e55c63905a59782d5bc466093ead980afc4a2825eb68445bcf1312cc3d6de2\",\n    \"nonce\": 12345\n}\n
      "},{"location":"reference/types/nextpin/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type namespace The namespace of the next-pin string context The context the next-pin applies to - the hash of the privacy group-hash + topic. The group-hash is only known to the participants (can itself contain a salt in the group-name). This context is combined with the member and nonce to determine the final hash that is written on-chain Bytes32 identity The member of the privacy group the next-pin applies to string hash The unique masked pin string Bytes32 nonce The numeric index - which is monotonically increasing for each member of the privacy group int64"},{"location":"reference/types/operation/","title":"Operation","text":"

      Operations are stateful external actions that FireFly triggers via plugins. They can succeed or fail. They are grouped into Transactions in order to accomplish a single logical task.

      The diagram below shows the different types of operation that are performed by each FireFly plugin type. The color coding (and numbers) map those different types of operation to the Transaction types that include those operations.

      "},{"location":"reference/types/operation/#operation-status","title":"Operation status","text":"

      When initially created an operation is in Initialized state. Once the operation has been successfully sent to its respective plugin to be processed its status moves to Pending state. This indicates that the plugin is processing the operation. The operation will then move to Succeeded or Failed state depending on the outcome.

      In the event that an operation could not be submitted to the plugin for processing, for example because the plugin's microservice was temporarily unavailable, the operation will remain in Initialized state. Re-submitting the same FireFly API call using the same idempotency key will cause FireFly to re-submit the operation to its plugin.

      "},{"location":"reference/types/operation/#example","title":"Example","text":"
      {\n    \"id\": \"04a8b0c4-03c2-4935-85a1-87d17cddc20a\",\n    \"namespace\": \"ns1\",\n    \"tx\": \"99543134-769b-42a8-8be4-a5f8873f969d\",\n    \"type\": \"sharedstorage_upload_batch\",\n    \"status\": \"Succeeded\",\n    \"plugin\": \"ipfs\",\n    \"input\": {\n        \"id\": \"80d89712-57f3-48fe-b085-a8cba6e0667d\"\n    },\n    \"output\": {\n        \"payloadRef\": \"QmWj3tr2aTHqnRYovhS2mQAjYneRtMWJSU4M4RdAJpJwEC\"\n    },\n    \"created\": \"2022-05-16T01:23:15Z\"\n}\n
      "},{"location":"reference/types/operation/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the operation UUID namespace The namespace of the operation string tx The UUID of the FireFly transaction the operation is part of UUID type The type of the operation FFEnum:\"blockchain_pin_batch\"\"blockchain_network_action\"\"blockchain_deploy\"\"blockchain_invoke\"\"sharedstorage_upload_batch\"\"sharedstorage_upload_blob\"\"sharedstorage_upload_value\"\"sharedstorage_download_batch\"\"sharedstorage_download_blob\"\"dataexchange_send_batch\"\"dataexchange_send_blob\"\"token_create_pool\"\"token_activate_pool\"\"token_transfer\"\"token_approval\" status The current status of the operation OpStatus plugin The plugin responsible for performing the operation string input The input to this operation JSONObject output Any output reported back from the plugin for this operation JSONObject error Any error reported back from the plugin for this operation string created The time the operation was created FFTime updated The last update time of the operation FFTime retry If this operation was initiated as a retry to a previous operation, this field points to the UUID of the operation being retried UUID"},{"location":"reference/types/operationwithdetail/","title":"OperationWithDetail","text":"

      Operation with detail is an extension to operations that allow additional information to be encapsulated with an operation. An operation can be supplemented by a connector and that information will be returned in the detail field.

      "},{"location":"reference/types/operationwithdetail/#example","title":"Example","text":"
      {\n    \"id\": \"04a8b0c4-03c2-4935-85a1-87d17cddc20a\",\n    \"namespace\": \"ns1\",\n    \"tx\": \"99543134-769b-42a8-8be4-a5f8873f969d\",\n    \"type\": \"sharedstorage_upload_batch\",\n    \"status\": \"Succeeded\",\n    \"plugin\": \"ipfs\",\n    \"input\": {\n        \"id\": \"80d89712-57f3-48fe-b085-a8cba6e0667d\"\n    },\n    \"output\": {\n        \"payloadRef\": \"QmWj3tr2aTHqnRYovhS2mQAjYneRtMWJSU4M4RdAJpJwEC\"\n    },\n    \"created\": \"2022-05-16T01:23:15Z\",\n    \"detail\": {\n        \"created\": \"2023-01-27T17:04:24.26406392Z\",\n        \"firstSubmit\": \"2023-01-27T17:04:24.419913295Z\",\n        \"gas\": \"4161076\",\n        \"gasPrice\": \"0\",\n        \"history\": [\n            {\n                \"actions\": [\n                    {\n                        \"action\": \"AssignNonce\",\n                        \"count\": 1,\n                        \"lastOccurrence\": \"\",\n                        \"time\": \"\"\n                    },\n                    {\n                        \"action\": \"RetrieveGasPrice\",\n                        \"count\": 1,\n                        \"lastOccurrence\": \"2023-01-27T17:11:41.161213303Z\",\n                        \"time\": \"2023-01-27T17:11:41.161213303Z\"\n                    },\n                    {\n                        \"action\": \"Submit\",\n                        \"count\": 1,\n                        \"lastOccurrence\": \"2023-01-27T17:11:41.222374636Z\",\n                        \"time\": \"2023-01-27T17:11:41.222374636Z\"\n                    }\n                ],\n                \"subStatus\": \"Received\",\n                \"time\": \"2023-01-27T17:11:41.122965803Z\"\n            },\n            {\n                \"actions\": [\n                    {\n                        \"action\": \"ReceiveReceipt\",\n                        \"count\": 1,\n                        \"lastOccurrence\": \"2023-01-27T17:11:47.930332625Z\",\n                        \"time\": \"2023-01-27T17:11:47.930332625Z\"\n                    },\n                    {\n                        \"action\": \"Confirm\",\n                        \"count\": 1,\n                        \"lastOccurrence\": \"2023-01-27T17:12:02.660275549Z\",\n                        \"time\": \"2023-01-27T17:12:02.660275549Z\"\n                    }\n                ],\n                \"subStatus\": \"Tracking\",\n                \"time\": \"2023-01-27T17:11:41.222400219Z\"\n            },\n            {\n                \"actions\": [],\n                \"subStatus\": \"Confirmed\",\n                \"time\": \"2023-01-27T17:12:02.660309382Z\"\n            }\n        ],\n        \"historySummary\": [\n            {\n                \"count\": 1,\n                \"subStatus\": \"Received\"\n            },\n            {\n                \"action\": \"AssignNonce\",\n                \"count\": 1\n            },\n            {\n                \"action\": \"RetrieveGasPrice\",\n                \"count\": 1\n            },\n            {\n                \"action\": \"Submit\",\n                \"count\": 1\n            },\n            {\n                \"count\": 1,\n                \"subStatus\": \"Tracking\"\n            },\n            {\n                \"action\": \"ReceiveReceipt\",\n                \"count\": 1\n            },\n            {\n                \"action\": \"Confirm\",\n                \"count\": 1\n            },\n            {\n                \"count\": 1,\n                \"subStatus\": \"Confirmed\"\n            }\n        ],\n        \"sequenceId\": \"0185f42f-fec8-93df-aeba-387417d477e0\",\n        \"status\": \"Succeeded\",\n        \"transactionHash\": \"0xfb39178fee8e725c03647b8286e6f5cb13f982abf685479a9ee59e8e9d9e51d8\"\n    }\n}\n
      "},{"location":"reference/types/operationwithdetail/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the operation UUID namespace The namespace of the operation string tx The UUID of the FireFly transaction the operation is part of UUID type The type of the operation FFEnum:\"blockchain_pin_batch\"\"blockchain_network_action\"\"blockchain_deploy\"\"blockchain_invoke\"\"sharedstorage_upload_batch\"\"sharedstorage_upload_blob\"\"sharedstorage_upload_value\"\"sharedstorage_download_batch\"\"sharedstorage_download_blob\"\"dataexchange_send_batch\"\"dataexchange_send_blob\"\"token_create_pool\"\"token_activate_pool\"\"token_transfer\"\"token_approval\" status The current status of the operation OpStatus plugin The plugin responsible for performing the operation string input The input to this operation JSONObject output Any output reported back from the plugin for this operation JSONObject error Any error reported back from the plugin for this operation string created The time the operation was created FFTime updated The last update time of the operation FFTime retry If this operation was initiated as a retry to a previous operation, this field points to the UUID of the operation being retried UUID detail Additional detailed information about an operation provided by the connector ``"},{"location":"reference/types/simpletypes/","title":"Simple Types","text":""},{"location":"reference/types/simpletypes/#uuid","title":"UUID","text":"

      IDs are generated as UUID V4 globally unique identifiers

      "},{"location":"reference/types/simpletypes/#fftime","title":"FFTime","text":"

      Times are serialized to JSON on the API in RFC 3339 / ISO 8601 nanosecond UTC time for example 2022-05-05T21:19:27.454767543Z.

      Note that JavaScript can parse this format happily into millisecond time with Date.parse().

      Times are persisted as a nanosecond resolution timestamps in the database.

      On input, and in queries, times can be parsed from RFC3339, or unix timestamps (second, millisecond or nanosecond resolution).

      "},{"location":"reference/types/simpletypes/#ffbigint","title":"FFBigInt","text":"

      Large integers of up to 256bits in size are common in blockchain, and handled in FireFly.

      In JSON output payloads in FireFly, including events, they are serialized as strings (with base 10).

      On input you can provide JSON string (string with an 0x prefix are parsed at base 16), or a JSON number.

      Be careful when using JSON numbers, that the largest number that is safe to transfer using a JSON number is 2^53 - 1.

      "},{"location":"reference/types/simpletypes/#jsonany","title":"JSONAny","text":"

      Any JSON type. An object, array, string, number, boolean or null.

      FireFly stores object data with the same field order as was provided on the input, but with any whitespace removed.

      "},{"location":"reference/types/simpletypes/#jsonobject","title":"JSONObject","text":"

      Any JSON Object. Must be an object, rather than an array or a simple type.

      "},{"location":"reference/types/subscription/","title":"Subscription","text":"

      Each Subscription tracks delivery of events to a particular application, and allows FireFly to ensure that messages are delivered reliably to that application.

      "},{"location":"reference/types/subscription/#creating-a-subscription","title":"Creating a subscription","text":"

      Before you can connect to a subscription, you must create it via the REST API.

      One special case where you do not need to do this, is Ephemeral WebSocket connections (described below). For these you can just connect and immediately start receiving events.

      When creating a new subscription, you give it a name which is how you will refer to it when you connect.

      You are also able to specify server-side filtering that should be performed against the event stream, to limit the set of events that are sent to your application.

      All subscriptions are created within a namespace, and automatically filter events to only those emitted within that namespace.

      You can create multiple subscriptions for your application, to request different sets of server-side filtering for events. You can then request FireFly to deliver events for both subscriptions over the same WebSocket (if you are using the WebSocket transport). However, delivery order is not assured between two subscriptions.

      "},{"location":"reference/types/subscription/#subscriptions-and-workload-balancing","title":"Subscriptions and workload balancing","text":"

      You can have multiple scaled runtime instances of a single application, all running in parallel. These instances of the application all share a single subscription.

      Each event is only delivered once to the subscription, regardless of how many instances of your application connect to FireFly.

      With multiple WebSocket connections active on a single subscription, each event might be delivered to different instance of your application. This means workload is balanced across your instances. However, each event still needs to be acknowledged, so delivery processing order can still be maintained within your application database state.

      If you have multiple different applications all needing their own copy of the same event, then you need to configure a separate subscription for each application.

      "},{"location":"reference/types/subscription/#pluggable-transports","title":"Pluggable Transports","text":"

      Hyperledger FireFly has two built-in transports for delivery of events to applications - WebSockets and Webhooks.

      The event interface is fully pluggable, so you can extend connectivity over an external event bus - such as NATS, Apache Kafka, Rabbit MQ, Redis etc.

      "},{"location":"reference/types/subscription/#websockets","title":"WebSockets","text":"

      If your application has a back-end server runtime, then WebSockets are the most popular option for listening to events. WebSockets are well supported by all popular application development frameworks, and are very firewall friendly for connecting applications into your FireFly server.

      Check out the @hyperledger/firefly-sdk SDK for Node.js applications, and the hyperledger/firefly-common module for Golang applications. These both contain reliable WebSocket clients for your event listeners.

      A Java SDK is a roadmap item for the community.

      "},{"location":"reference/types/subscription/#websocket-protocol","title":"WebSocket protocol","text":"

      FireFly has a simple protocol on top of WebSockets:

      1. Each time you connect/reconnect you need to tell FireFly to start sending you events on a particular subscription. You can do this in two ways (described in detail below):
      2. Send a WSStart JSON payload
      3. Include a namespace and name query parameter in the URL when you connect, along with query params for other fields of WSStart
      4. One you have started your subscription, each event flows from the server, to your application as a JSON Event payload
      5. For each event you receive, you need to send a WSAck payload.
      6. Unless you specified autoack in step (1)

      The SDK libraries for FireFly help you ensure you send the start payload each time your WebSocket reconnects.

      "},{"location":"reference/types/subscription/#using-start-and-ack-explicitly","title":"Using start and ack explicitly","text":"

      Here's an example websocat command showing an explicit start and ack.

      $ websocat ws://localhost:5000/ws\n{\"type\":\"start\",\"namespace\":\"default\",\"name\":\"docexample\"}\n# ... for each event that arrives here, you send an ack ...\n{\"type\":\"ack\",\"id\":\"70ed4411-57cf-4ba1-bedb-fe3b4b5fd6b6\"}\n

      When creating your subscription, you can set readahead in order to ask FireFly to stream a number of messages to your application, ahead of receiving the acknowledgements.

      readahead can be a powerful tool to increase performance, but does require your application to ensure it processes events in the correct order and sends exactly one ack for each event.

      "},{"location":"reference/types/subscription/#auto-starting-via-url-query-and-autoack","title":"Auto-starting via URL query and autoack","text":"

      Here's an example websocat where we use URL query parameters to avoid the need to send a start JSON payload.

      We also use autoack so that events just keep flowing from the server.

      $ websocat \"ws://localhost:5000/ws?namespace=default&name=docexample&autoack\"\n# ... events just keep arriving here, as the server-side auto-acknowledges\n#     the events as it delivers them to you.\n

      Note using autoack means you can miss events in the case of a disconnection, so should not be used for production applications that require at-least-once delivery.

      "},{"location":"reference/types/subscription/#ephemeral-websocket-subscriptions","title":"Ephemeral WebSocket subscriptions","text":"

      FireFly WebSockets provide a special option to create a subscription dynamically, that only lasts for as long as you are connected to the server.

      We call these ephemeral subscriptions.

      Here's an example websocat command showing an an ephemeral subscription - notice we don't specify a name for the subscription, and there is no need to have already created the subscription beforehand.

      Here we also include an extra query parameter to set a server-side filter, to only include message events.

      $ websocat \"ws://localhost:5000/ws?namespace=default&ephemeral&autoack&filter.events=message_.*\"\n{\"type\":\"start\",\"namespace\":\"default\",\"name\":\"docexample\"}\n# ... for each event that arrives here, you send an ack ...\n{\"type\":\"ack\",\"id\":\"70ed4411-57cf-4ba1-bedb-fe3b4b5fd6b6\"}\n

      Ephemeral subscriptions are very convenient for experimentation, debugging and monitoring. However, they do not give reliable delivery because you only receive events that occur while you are connected. If you disconnect and reconnect, you will miss all events that happened while your application was not listening.

      "},{"location":"reference/types/subscription/#webhooks","title":"Webhooks","text":"

      The Webhook transport allows FireFly to make HTTP calls against your application's API when events matching your subscription are emitted.

      This means the direction of network connection is from the FireFly server, to the application (the reverse of WebSockets). Conversely it means you don't need to add any connection management code to your application - just expose and API that FireFly can call to process the events.

      Webhooks are great for serverless functions (AWS Lambda etc.), integrations with SaaS applications, and calling existing APIs.

      The FireFly configuration options for a Webhook subscription are very flexible, allowing you to customize your HTTP requests as follows:

      • Set the HTTP request details:
      • Method, URL, query, headers and input body
      • Wait for a invocation of the back-end service, before acknowledging
      • To retry requests to your Webhook on a non-2xx HTTP status code or other error, you should enable and configure options.retry
      • The event is acknowledged once the request (with any retries), is completed - regardless of whether the outcome was a success or failure.
      • Use fastack to acknowledge against FireFly immediately and make multiple parallel calls to the HTTP API in a fire-and-forget fashion.
      • Set the HTTP request details dynamically from message_confirmed events:
      • Map data out of the first data element in message events
      • Requires withData to be set on the subscription, in addition to the input.* configuration options
      • Can automatically generate a \"reply\" message for message_confirmed events:
      • Maps the response body of the HTTP call to data in the reply message
      • Sets the cid and topic in the reply message to match the request
      • Sets a tag in the reply message, per the configuration, or dynamically based on a field in the input request data.
      "},{"location":"reference/types/subscription/#batching-events","title":"Batching events","text":"

      Webhooks have the ability to batch events into a single HTTP request instead of sending an event per HTTP request. The interface will be a JSON array of events instead of a top level JSON object with a single event. The size of the batch will be set by the readAhead limit and an optional timeout can be specified to send the events when the batch hasn't filled.

      To enable this set the following configuration under SubscriptionOptions

      batch | Events are delivered in batches in an ordered array. The batch size is capped to the readAhead limit. The event payload is always an array even if there is a single event in the batch. Commonly used with Webhooks to allow events to be delivered and acknowledged in batches. | bool |

      batchTimeout | When batching is enabled, the optional timeout to send events even when the batch hasn't filled. Defaults to 2 seconds | string

      NOTE: When batch is enabled, withData cannot be used as these may alter the HTTP request based on a single event and in batching it does not make sense for now.

      "},{"location":"reference/types/subscription/#example","title":"Example","text":"
      {\n    \"id\": \"c38d69fd-442e-4d6f-b5a4-bab1411c7fe8\",\n    \"namespace\": \"ns1\",\n    \"name\": \"app1\",\n    \"transport\": \"websockets\",\n    \"filter\": {\n        \"events\": \"^(message_.*|token_.*)$\",\n        \"message\": {\n            \"tag\": \"^(red|blue)$\"\n        },\n        \"transaction\": {},\n        \"blockchainevent\": {}\n    },\n    \"options\": {\n        \"firstEvent\": \"newest\",\n        \"readAhead\": 50\n    },\n    \"created\": \"2022-05-16T01:23:15Z\",\n    \"updated\": null\n}\n
      "},{"location":"reference/types/subscription/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the subscription UUID namespace The namespace of the subscription. A subscription will only receive events generated in the namespace of the subscription string name The name of the subscription. The application specifies this name when it connects, in order to attach to the subscription and receive events that arrived while it was disconnected. If multiple apps connect to the same subscription, events are workload balanced across the connected application instances string transport The transport plugin responsible for event delivery (WebSockets, Webhooks, JMS, NATS etc.) string filter Server-side filter to apply to events SubscriptionFilter options Subscription options SubscriptionOptions ephemeral Ephemeral subscriptions only exist as long as the application is connected, and as such will miss events that occur while the application is disconnected, and cannot be created administratively. You can create one over over a connected WebSocket connection bool created Creation time of the subscription FFTime updated Last time the subscription was updated FFTime"},{"location":"reference/types/subscription/#subscriptionfilter","title":"SubscriptionFilter","text":"Field Name Description Type events Regular expression to apply to the event type, to subscribe to a subset of event types string message Filters specific to message events. If an event is not a message event, these filters are ignored MessageFilter transaction Filters specific to events with a transaction. If an event is not associated with a transaction, this filter is ignored TransactionFilter blockchainevent Filters specific to blockchain events. If an event is not a blockchain event, these filters are ignored BlockchainEventFilter topic Regular expression to apply to the topic of the event, to subscribe to a subset of topics. Note for messages sent with multiple topics, a separate event is emitted for each topic string topics Deprecated: Please use 'topic' instead string tag Deprecated: Please use 'message.tag' instead string group Deprecated: Please use 'message.group' instead string author Deprecated: Please use 'message.author' instead string"},{"location":"reference/types/subscription/#messagefilter","title":"MessageFilter","text":"Field Name Description Type tag Regular expression to apply to the message 'header.tag' field string group Regular expression to apply to the message 'header.group' field string author Regular expression to apply to the message 'header.author' field string"},{"location":"reference/types/subscription/#transactionfilter","title":"TransactionFilter","text":"Field Name Description Type type Regular expression to apply to the transaction 'type' field string"},{"location":"reference/types/subscription/#blockchaineventfilter","title":"BlockchainEventFilter","text":"Field Name Description Type name Regular expression to apply to the blockchain event 'name' field, which is the name of the event in the underlying blockchain smart contract string listener Regular expression to apply to the blockchain event 'listener' field, which is the UUID of the event listener. So you can restrict your subscription to certain blockchain listeners. Alternatively to avoid your application need to know listener UUIDs you can set the 'topic' field of blockchain event listeners, and use a topic filter on your subscriptions string"},{"location":"reference/types/subscription/#subscriptionoptions","title":"SubscriptionOptions","text":"Field Name Description Type firstEvent Whether your application would like to receive events from the 'oldest' event emitted by your FireFly node (from the beginning of time), or the 'newest' event (from now), or a specific event sequence. Default is 'newest' SubOptsFirstEvent readAhead The number of events to stream ahead to your application, while waiting for confirmation of consumption of those events. At least once delivery semantics are used in FireFly, so if your application crashes/reconnects this is the maximum number of events you would expect to be redelivered after it restarts uint16 withData Whether message events delivered over the subscription, should be packaged with the full data of those messages in-line as part of the event JSON payload. Or if the application should make separate REST calls to download that data. May not be supported on some transports. bool batch Events are delivered in batches in an ordered array. The batch size is capped to the readAhead limit. The event payload is always an array even if there is a single event in the batch, allowing client-side optimizations when processing the events in a group. Available for both Webhooks and WebSockets. bool batchTimeout When batching is enabled, the optional timeout to send events even when the batch hasn't filled. string fastack Webhooks only: When true the event will be acknowledged before the webhook is invoked, allowing parallel invocations bool url Webhooks only: HTTP url to invoke. Can be relative if a base URL is set in the webhook plugin config string method Webhooks only: HTTP method to invoke. Default=POST string json Webhooks only: Whether to assume the response body is JSON, regardless of the returned Content-Type bool reply Webhooks only: Whether to automatically send a reply event, using the body returned by the webhook bool replytag Webhooks only: The tag to set on the reply message string replytx Webhooks only: The transaction type to set on the reply message string headers Webhooks only: Static headers to set on the webhook request `` query Webhooks only: Static query params to set on the webhook request `` tlsConfigName The name of an existing TLS configuration associated to the namespace to use string input Webhooks only: A set of options to extract data from the first JSON input data in the incoming message. Only applies if withData=true WebhookInputOptions retry Webhooks only: a set of options for retrying the webhook call WebhookRetryOptions httpOptions Webhooks only: a set of options for HTTP WebhookHTTPOptions"},{"location":"reference/types/subscription/#webhookinputoptions","title":"WebhookInputOptions","text":"Field Name Description Type query A top-level property of the first data input, to use for query parameters string headers A top-level property of the first data input, to use for headers string body A top-level property of the first data input, to use for the request body. Default is the whole first body string path A top-level property of the first data input, to use for a path to append with escaping to the webhook path string replytx A top-level property of the first data input, to use to dynamically set whether to pin the response (so the requester can choose) string"},{"location":"reference/types/subscription/#webhookretryoptions","title":"WebhookRetryOptions","text":"Field Name Description Type enabled Enables retry on HTTP calls, defaults to false bool count Number of times to retry the webhook call in case of failure int initialDelay Initial delay between retries when we retry the webhook call string maxDelay Max delay between retries when we retry the webhookcall string"},{"location":"reference/types/subscription/#webhookhttpoptions","title":"WebhookHTTPOptions","text":"Field Name Description Type proxyURL HTTP proxy URL to use for outbound requests to the webhook string tlsHandshakeTimeout The max duration to hold a TLS handshake alive string requestTimeout The max duration to hold a TLS handshake alive string maxIdleConns The max number of idle connections to hold pooled int idleTimeout The max duration to hold a HTTP keepalive connection between calls string connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted. string expectContinueTimeout See ExpectContinueTimeout in the Go docs string"},{"location":"reference/types/tokenapproval/","title":"TokenApproval","text":"

      A token approval is a record that an address other than the owner of a token balance, has been granted authority to transfer tokens on the owners behalf.

      The approved \"operator\" (or \"spender\") account might be a smart contract, or another individual.

      FireFly provides APIs for initiating and tracking approvals, which token connectors integrate with the implementation of the underlying token.

      The off-chain index maintained in FireFly for allowance allows you to quickly find the most recent allowance event associated with a pair of keys, using the subject field, combined with the active field. When a new Token Approval event is delivered to FireFly Core by the Token Connector, any previous approval for the same subject is marked \"active\": false, and the new approval is marked with \"active\": true

      The token connector is responsible for the format of the subject field to reflect the owner / operator (spender) relationship.

      "},{"location":"reference/types/tokenapproval/#example","title":"Example","text":"
      {\n    \"localId\": \"1cd3e2e2-dd6a-441d-94c5-02439de9897b\",\n    \"pool\": \"1244ecbe-5862-41c3-99ec-4666a18b9dd5\",\n    \"connector\": \"erc20_erc721\",\n    \"key\": \"0x55860105d6a675dbe6e4d83f67b834377ba677ad\",\n    \"operator\": \"0x30017fd084715e41aa6536ab777a8f3a2b11a5a1\",\n    \"approved\": true,\n    \"info\": {\n        \"owner\": \"0x55860105d6a675dbe6e4d83f67b834377ba677ad\",\n        \"spender\": \"0x30017fd084715e41aa6536ab777a8f3a2b11a5a1\",\n        \"value\": \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n    },\n    \"namespace\": \"ns1\",\n    \"protocolId\": \"000000000032/000000/000000\",\n    \"subject\": \"0x55860105d6a675dbe6e4d83f67b834377ba677ad:0x30017fd084715e41aa6536ab777a8f3a2b11a5a1\",\n    \"active\": true,\n    \"created\": \"2022-05-16T01:23:15Z\",\n    \"tx\": {\n        \"type\": \"token_approval\",\n        \"id\": \"4b6e086d-0e31-482d-9683-cd18b2045031\"\n    }\n}\n
      "},{"location":"reference/types/tokenapproval/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type localId The UUID of this token approval, in the local FireFly node UUID pool The UUID the token pool this approval applies to UUID connector The name of the token connector, as specified in the FireFly core configuration file. Required on input when there are more than one token connectors configured string key The blockchain signing key for the approval request. On input defaults to the first signing key of the organization that operates the node string operator The blockchain identity that is granted the approval string approved Whether this record grants permission for an operator to perform actions on the token balance (true), or revokes permission (false) bool info Token connector specific information about the approval operation, such as whether it applied to a limited balance of a fungible token. See your chosen token connector documentation for details JSONObject namespace The namespace for the approval, which must match the namespace of the token pool string protocolId An alphanumerically sortable string that represents this event uniquely with respect to the blockchain string subject A string identifying the parties and entities in the scope of this approval, as provided by the token connector string active Indicates if this approval is currently active (only one approval can be active per subject) bool message The UUID of a message that has been correlated with this approval using the data field of the approval in a compatible token connector UUID messageHash The hash of a message that has been correlated with this approval using the data field of the approval in a compatible token connector Bytes32 created The creation time of the token approval FFTime tx If submitted via FireFly, this will reference the UUID of the FireFly transaction (if the token connector in use supports attaching data) TransactionRef blockchainEvent The UUID of the blockchain event UUID config Input only field, with token connector specific configuration of the approval. See your chosen token connector documentation for details JSONObject"},{"location":"reference/types/tokenapproval/#transactionref","title":"TransactionRef","text":"Field Name Description Type type The type of the FireFly transaction FFEnum: id The UUID of the FireFly transaction UUID"},{"location":"reference/types/tokenpool/","title":"TokenPool","text":"

      Token pools are a FireFly construct for describing a set of tokens.

      The total supply of a particular fungible token, or a group of related non-fungible tokens.

      The exact definition of a token pool is dependent on the token connector implementation.

      Check the documentation for your chosen connector implementation to see the detailed options for configuring a new Token Pool.

      Note that it is very common to use a Token Pool to teach Hyperledger FireFly about an existing token, so that you can start interacting with a token that already exists.

      "},{"location":"reference/types/tokenpool/#example-token-pool-types","title":"Example token pool types","text":"

      Some examples of how the generic concept of a Token Pool maps to various well-defined Ethereum standards:

      • ERC-1155: a single contract instance can efficiently allocate many isolated pools of fungible or non-fungible tokens
      • ERC-20 / ERC-777: each contract instance represents a single fungible pool of value, e.g. \"a coin\"
      • ERC-721: each contract instance represents a single pool of NFTs, each with unique identities within the pool
      • ERC-1400 / ERC-1410: partially supported in the same manner as ERC-20/ERC-777, but would require new features for working with partitions

      These are provided as examples only - a custom token connector could be backed by any token technology (Ethereum or otherwise) as long as it can support the basic operations described here (create pool, mint, burn, transfer). Other FireFly repos include a sample implementation of a token connector for ERC-20 and ERC-721 as well as ERC-1155.

      "},{"location":"reference/types/tokenpool/#example","title":"Example","text":"
      {\n    \"id\": \"90ebefdf-4230-48a5-9d07-c59751545859\",\n    \"type\": \"fungible\",\n    \"namespace\": \"ns1\",\n    \"name\": \"my_token\",\n    \"standard\": \"ERC-20\",\n    \"locator\": \"address=0x056df1c53c3c00b0e13d37543f46930b42f71db0\\u0026schema=ERC20WithData\\u0026type=fungible\",\n    \"decimals\": 18,\n    \"connector\": \"erc20_erc721\",\n    \"message\": \"43923040-b1e5-4164-aa20-47636c7177ee\",\n    \"active\": true,\n    \"created\": \"2022-05-16T01:23:15Z\",\n    \"info\": {\n        \"address\": \"0x056df1c53c3c00b0e13d37543f46930b42f71db0\",\n        \"name\": \"pool8197\",\n        \"schema\": \"ERC20WithData\"\n    },\n    \"tx\": {\n        \"type\": \"token_pool\",\n        \"id\": \"a23ffc87-81a2-4cbc-97d6-f53d320c36cd\"\n    },\n    \"published\": false\n}\n
      "},{"location":"reference/types/tokenpool/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the token pool UUID type The type of token the pool contains, such as fungible/non-fungible FFEnum:\"fungible\"\"nonfungible\" namespace The namespace for the token pool string name The name of the token pool. Note the name is not validated against the description of the token on the blockchain string networkName The published name of the token pool within the multiparty network string standard The ERC standard the token pool conforms to, as reported by the token connector string locator A unique identifier for the pool, as provided by the token connector string key The signing key used to create the token pool. On input for token connectors that support on-chain deployment of new tokens (vs. only index existing ones) this determines the signing key used to create the token on-chain string symbol The token symbol. If supplied on input for an existing on-chain token, this must match the on-chain information string decimals Number of decimal places that this token has int connector The name of the token connector, as specified in the FireFly core configuration file that is responsible for the token pool. Required on input when multiple token connectors are configured string message The UUID of the broadcast message used to inform the network about this pool UUID active Indicates whether the pool has been successfully activated with the token connector bool created The creation time of the pool FFTime config Input only field, with token connector specific configuration of the pool, such as an existing Ethereum address and block number to used to index the pool. See your chosen token connector documentation for details JSONObject info Token connector specific information about the pool. See your chosen token connector documentation for details JSONObject tx Reference to the FireFly transaction used to create and broadcast this pool to the network TransactionRef interface A reference to an existing FFI, containing pre-registered type information for the token contract FFIReference interfaceFormat The interface encoding format supported by the connector for this token pool FFEnum:\"abi\"\"ffi\" methods The method definitions resolved by the token connector to be used by each token operation JSONAny published Indicates if the token pool is published to other members of the multiparty network bool"},{"location":"reference/types/tokenpool/#transactionref","title":"TransactionRef","text":"Field Name Description Type type The type of the FireFly transaction FFEnum: id The UUID of the FireFly transaction UUID"},{"location":"reference/types/tokenpool/#ffireference","title":"FFIReference","text":"Field Name Description Type id The UUID of the FireFly interface UUID name The name of the FireFly interface string version The version of the FireFly interface string"},{"location":"reference/types/tokentransfer/","title":"TokenTransfer","text":"

      A Token Transfer is created for each transfer of value that happens under a token pool.

      The transfers form an off-chain audit history (an \"index\") of the transactions that have been performed on the blockchain.

      This historical information cannot be queried directly from the blockchain for most token implementations, because it is inefficient to use the blockchain to store complex data structures like this. So the blockchain simply emits events when state changes, and if you want to be able to query this historical information you need to track it in your own off-chain database.

      Hyperledger FireFly maintains this index automatically for all Token Pools that are configured.

      "},{"location":"reference/types/tokentransfer/#firefly-initiated-vs-non-firefly-initiated-transfers","title":"FireFly initiated vs. non-FireFly initiated transfers","text":"

      There is no requirement at all to use FireFly to initiate transfers in Token Pools that Hyperledger FireFly is aware of. FireFly will listen to and update its audit history and balances for all transfers, regardless of whether they were initiated using a FireFly Supernode or not.

      So you could for example use Metamask to initiate a transfer directly against an ERC-20/ERC-721 contract directly on your blockchain, and you will see it appear as a transfer. Or initiate a transfer on-chain via another Smart Contract, such as a Hashed Timelock Contract (HTLC) releasing funds held in digital escrow.

      "},{"location":"reference/types/tokentransfer/#message-coordinated-transfers","title":"Message coordinated transfers","text":"

      One special feature enabled when using FireFly to initiate transfers, is to coordinate an off-chain data transfer (private or broadcast) with the on-chain transfer of value. This is a powerful tool to allow transfers to have rich metadata associated that is too sensitive (or too large) to include on the blockchain itself.

      These transfers have a message associated with them, and require a compatible Token Connector and on-chain Smart Contract that allows a data payload to be included as part of the transfer, and to be emitted as part of the transfer event.

      Examples of how to do this are included in the ERC-20, ERC-721 and ERC-1155 Token Connector sample smart contracts.

      "},{"location":"reference/types/tokentransfer/#transfer-types","title":"Transfer types","text":"

      There are three primary types of transfer:

      1. Mint - new tokens come into existence, increasing the total supply of tokens within the pool. The from address will be unset for these transfer types.
      2. Burn - existing tokens are taken out of circulation. The to address will be unset for these transfer types.
      3. Transfer - tokens move from ownership by one account, to another account. The from and to addresses are both set for these type of transfers.

      Note that the key that signed the Transfer transaction might be different to the from account that is the owner of the tokens before the transfer.

      The Approval resource is used to track which signing accounts (other than the owner) have approval to transfer tokens on the owner's behalf.

      "},{"location":"reference/types/tokentransfer/#example","title":"Example","text":"
      {\n    \"type\": \"transfer\",\n    \"pool\": \"1244ecbe-5862-41c3-99ec-4666a18b9dd5\",\n    \"uri\": \"firefly://token/1\",\n    \"connector\": \"erc20_erc721\",\n    \"namespace\": \"ns1\",\n    \"key\": \"0x55860105D6A675dBE6e4d83F67b834377Ba677AD\",\n    \"from\": \"0x55860105D6A675dBE6e4d83F67b834377Ba677AD\",\n    \"to\": \"0x55860105D6A675dBE6e4d83F67b834377Ba677AD\",\n    \"amount\": \"1000000000000000000\",\n    \"protocolId\": \"000000000041/000000/000000\",\n    \"message\": \"780b9b90-e3b0-4510-afac-b4b1f2940b36\",\n    \"messageHash\": \"780204e634364c42779920eddc8d9fecccb33e3607eeac9f53abd1b31184ae4e\",\n    \"created\": \"2022-05-16T01:23:15Z\",\n    \"tx\": {\n        \"type\": \"token_transfer\",\n        \"id\": \"62767ca8-99f9-439c-9deb-d80c6672c158\"\n    },\n    \"blockchainEvent\": \"b57fcaa2-156e-4c3f-9b0b-ddec9ee25933\"\n}\n
      "},{"location":"reference/types/tokentransfer/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type type The type of transfer such as mint/burn/transfer FFEnum:\"mint\"\"burn\"\"transfer\" localId The UUID of this token transfer, in the local FireFly node UUID pool The UUID the token pool this transfer applies to UUID tokenIndex The index of the token within the pool that this transfer applies to string uri The URI of the token this transfer applies to string connector The name of the token connector, as specified in the FireFly core configuration file. Required on input when there are more than one token connectors configured string namespace The namespace for the transfer, which must match the namespace of the token pool string key The blockchain signing key for the transfer. On input defaults to the first signing key of the organization that operates the node string from The source account for the transfer. On input defaults to the value of 'key' string to The target account for the transfer. On input defaults to the value of 'key' string amount The amount for the transfer. For non-fungible tokens will always be 1. For fungible tokens, the number of decimals for the token pool should be considered when inputting the amount. For example, with 18 decimals a fractional balance of 10.234 will be specified as 10,234,000,000,000,000,000 FFBigInt protocolId An alphanumerically sortable string that represents this event uniquely with respect to the blockchain string message The UUID of a message that has been correlated with this transfer using the data field of the transfer in a compatible token connector UUID messageHash The hash of a message that has been correlated with this transfer using the data field of the transfer in a compatible token connector Bytes32 created The creation time of the transfer FFTime tx If submitted via FireFly, this will reference the UUID of the FireFly transaction (if the token connector in use supports attaching data) TransactionRef blockchainEvent The UUID of the blockchain event UUID config Input only field, with token connector specific configuration of the transfer. See your chosen token connector documentation for details JSONObject"},{"location":"reference/types/tokentransfer/#transactionref","title":"TransactionRef","text":"Field Name Description Type type The type of the FireFly transaction FFEnum: id The UUID of the FireFly transaction UUID"},{"location":"reference/types/transaction/","title":"Transaction","text":"

      FireFly Transactions are a grouping construct for a number of Operations and Events that need to complete or fail as unit.

      FireFly Transactions are not themselves Blockchain transactions, but in many cases there is exactly one Blockchain transaction associated with each FireFly transaction. Exceptions include unpinned transactions, where there is no blockchain transaction at all.

      The Blockchain native transaction ID is stored in the FireFly transaction object when it is known. However, the FireFly transaction starts before a Blockchain transaction exists - because reliably submitting the blockchain transaction is one of the operations that is performed inside of the FireFly transaction.

      The below screenshot from the FireFly Explorer nicely illustrates how multiple operations and events are associated with a FireFly transaction. In this example, the transaction tracking is pinning of a batch of messages stored in IPFS to the blockchain.

      So there is a Blockchain ID for the transaction - as there is just one Blockchain transaction regardless of how many messages in the batch. There are operations for the submission of that transaction, and the upload of the data to IPFS. Then a corresponding Blockchain Event Received event for the detection of the event from the blockchain smart contract when the transaction was mined, and a Message Confirmed event for each message in the batch (in this case 1). Then here the message was a special Definition message that advertised a new Contract API to all members of the network - so there is a Contract API Confirmed event as well.

      Each FireFly transaction has a UUID. This UUID is propagated through to all participants in a FireFly transaction. For example in a Token Transfer that is coordinated with an off-chain private Message, the transaction ID is propagated to all parties who are part of that transaction. So the same UUID can be used to find the transaction in the FireFly Explorer of any member who has access to the message. This is possible because hash-pinned off-chain data is associated with that on-chain transfer.

      However, in the case of a raw ERC-20/ERC-721 transfer (without data), or any other raw Blockchain transaction, the FireFly transaction UUID cannot be propagated - so it will be local on the node that initiated the transaction.

      "},{"location":"reference/types/transaction/#example","title":"Example","text":"
      {\n    \"id\": \"4e7e0943-4230-4f67-89b6-181adf471edc\",\n    \"namespace\": \"ns1\",\n    \"type\": \"contract_invoke\",\n    \"created\": \"2022-05-16T01:23:15Z\",\n    \"blockchainIds\": [\n        \"0x34b0327567fefed09ac7b4429549bc609302b08a9cbd8f019a078ec44447593d\"\n    ]\n}\n
      "},{"location":"reference/types/transaction/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type id The UUID of the FireFly transaction UUID namespace The namespace of the FireFly transaction string type The type of the FireFly transaction FFEnum:\"none\"\"unpinned\"\"batch_pin\"\"network_action\"\"token_pool\"\"token_transfer\"\"contract_deploy\"\"contract_invoke\"\"contract_invoke_pin\"\"token_approval\"\"data_publish\" created The time the transaction was created on this node. Note the transaction is individually created with the same UUID on each participant in the FireFly transaction FFTime idempotencyKey An optional unique identifier for a transaction. Cannot be duplicated within a namespace, thus allowing idempotent submission of transactions to the API IdempotencyKey blockchainIds The blockchain transaction ID, in the format specific to the blockchain involved in the transaction. Not all FireFly transactions include a blockchain. FireFly transactions are extensible to support multiple blockchain transactions string[]"},{"location":"reference/types/verifier/","title":"Verifier","text":"

      A verifier is a cryptographic verification mechanism for an identity in FireFly.

      FireFly generally defers verification of these keys to the lower layers of technologies in the stack - the blockchain (Fabric, Ethereum etc.) or Data Exchange technology.

      As such the details of the public key cryptography scheme are not represented in the FireFly verifiers. Only the string identifier of the verifier that is appropriate to the technology.

      • Ethereum blockchains: The Ethereum address hex string
      • Hyperledger Fabric: The fully qualified MSP Identifier string
      • Data exchange: The data exchange \"Peer ID\", as determined by the DX plugin
      "},{"location":"reference/types/verifier/#example","title":"Example","text":"
      {\n    \"hash\": \"6818c41093590b862b781082d4df5d4abda6d2a4b71d737779edf6d2375d810b\",\n    \"identity\": \"114f5857-9983-46fb-b1fc-8c8f0a20846c\",\n    \"type\": \"ethereum_address\",\n    \"value\": \"0x30017fd084715e41aa6536ab777a8f3a2b11a5a1\",\n    \"created\": \"2022-05-16T01:23:15Z\"\n}\n
      "},{"location":"reference/types/verifier/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type hash Hash used as a globally consistent identifier for this namespace + type + value combination on every node in the network Bytes32 identity The UUID of the parent identity that has claimed this verifier UUID namespace The namespace of the verifier string type The type of the verifier FFEnum:\"ethereum_address\"\"tezos_address\"\"fabric_msp_id\"\"dx_peer_id\" value The verifier string, such as an Ethereum address, or Fabric MSP identifier string created The time this verifier was created on this node FFTime"},{"location":"reference/types/wsack/","title":"WSAck","text":"

      An ack must be sent on a WebSocket for each event delivered to an application.

      Unless autoack is set in the WSStart payload/URL parameters to cause automatic acknowledgement.

      Your application should specify the id of each event that it acknowledges.

      If the id is omitted, then FireFly will assume the oldest message delivered to the application that has not been acknowledged is the one the ack is associated with.

      If multiple subscriptions are started on a WebSocket, then you need to specify the subscription namespace+name as part of each ack.

      If you send an acknowledgement that cannot be correlated, then a WSError payload will be sent to the application.

      "},{"location":"reference/types/wsack/#example","title":"Example","text":"
      {\n    \"type\": \"ack\",\n    \"id\": \"f78bf82b-1292-4c86-8a08-e53d855f1a64\",\n    \"subscription\": {\n        \"namespace\": \"ns1\",\n        \"name\": \"app1_subscription\"\n    }\n}\n
      "},{"location":"reference/types/wsack/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type type WSActionBase.type FFEnum:\"start\"\"ack\"\"protocol_error\"\"event_batch\" id WSAck.id UUID subscription WSAck.subscription SubscriptionRef"},{"location":"reference/types/wsack/#subscriptionref","title":"SubscriptionRef","text":"Field Name Description Type id The UUID of the subscription UUID namespace The namespace of the subscription. A subscription will only receive events generated in the namespace of the subscription string name The name of the subscription. The application specifies this name when it connects, in order to attach to the subscription and receive events that arrived while it was disconnected. If multiple apps connect to the same subscription, events are workload balanced across the connected application instances string"},{"location":"reference/types/wserror/","title":"WSError","text":""},{"location":"reference/types/wserror/#example","title":"Example","text":"
      {\n    \"type\": \"protocol_error\",\n    \"error\": \"FF10175: Acknowledgment does not match an inflight event + subscription\"\n}\n
      "},{"location":"reference/types/wserror/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type type WSAck.type FFEnum:\"start\"\"ack\"\"protocol_error\"\"event_batch\" error WSAck.error string"},{"location":"reference/types/wsstart/","title":"WSStart","text":"

      The start payload is sent after an application connects to a WebSocket, to start delivery of events over that connection.

      The start command can refer to a subscription by name in order to reliably receive all matching events for that subscription, including those that were emitted when the application was disconnected.

      Alternatively the start command can request \"ephemeral\": true in order to dynamically create a new subscription that lasts only for the duration that the connection is active.

      "},{"location":"reference/types/wsstart/#example","title":"Example","text":"
      {\n    \"type\": \"start\",\n    \"autoack\": false,\n    \"namespace\": \"ns1\",\n    \"name\": \"app1_subscription\",\n    \"ephemeral\": false,\n    \"filter\": {\n        \"message\": {},\n        \"transaction\": {},\n        \"blockchainevent\": {}\n    },\n    \"options\": {}\n}\n
      "},{"location":"reference/types/wsstart/#field-descriptions","title":"Field Descriptions","text":"Field Name Description Type type WSActionBase.type FFEnum:\"start\"\"ack\"\"protocol_error\"\"event_batch\" autoack WSStart.autoack bool namespace WSStart.namespace string name WSStart.name string ephemeral WSStart.ephemeral bool filter WSStart.filter SubscriptionFilter options WSStart.options SubscriptionOptions"},{"location":"reference/types/wsstart/#subscriptionfilter","title":"SubscriptionFilter","text":"Field Name Description Type events Regular expression to apply to the event type, to subscribe to a subset of event types string message Filters specific to message events. If an event is not a message event, these filters are ignored MessageFilter transaction Filters specific to events with a transaction. If an event is not associated with a transaction, this filter is ignored TransactionFilter blockchainevent Filters specific to blockchain events. If an event is not a blockchain event, these filters are ignored BlockchainEventFilter topic Regular expression to apply to the topic of the event, to subscribe to a subset of topics. Note for messages sent with multiple topics, a separate event is emitted for each topic string topics Deprecated: Please use 'topic' instead string tag Deprecated: Please use 'message.tag' instead string group Deprecated: Please use 'message.group' instead string author Deprecated: Please use 'message.author' instead string"},{"location":"reference/types/wsstart/#messagefilter","title":"MessageFilter","text":"Field Name Description Type tag Regular expression to apply to the message 'header.tag' field string group Regular expression to apply to the message 'header.group' field string author Regular expression to apply to the message 'header.author' field string"},{"location":"reference/types/wsstart/#transactionfilter","title":"TransactionFilter","text":"Field Name Description Type type Regular expression to apply to the transaction 'type' field string"},{"location":"reference/types/wsstart/#blockchaineventfilter","title":"BlockchainEventFilter","text":"Field Name Description Type name Regular expression to apply to the blockchain event 'name' field, which is the name of the event in the underlying blockchain smart contract string listener Regular expression to apply to the blockchain event 'listener' field, which is the UUID of the event listener. So you can restrict your subscription to certain blockchain listeners. Alternatively to avoid your application need to know listener UUIDs you can set the 'topic' field of blockchain event listeners, and use a topic filter on your subscriptions string"},{"location":"reference/types/wsstart/#subscriptionoptions","title":"SubscriptionOptions","text":"Field Name Description Type firstEvent Whether your application would like to receive events from the 'oldest' event emitted by your FireFly node (from the beginning of time), or the 'newest' event (from now), or a specific event sequence. Default is 'newest' SubOptsFirstEvent readAhead The number of events to stream ahead to your application, while waiting for confirmation of consumption of those events. At least once delivery semantics are used in FireFly, so if your application crashes/reconnects this is the maximum number of events you would expect to be redelivered after it restarts uint16 withData Whether message events delivered over the subscription, should be packaged with the full data of those messages in-line as part of the event JSON payload. Or if the application should make separate REST calls to download that data. May not be supported on some transports. bool batch Events are delivered in batches in an ordered array. The batch size is capped to the readAhead limit. The event payload is always an array even if there is a single event in the batch, allowing client-side optimizations when processing the events in a group. Available for both Webhooks and WebSockets. bool batchTimeout When batching is enabled, the optional timeout to send events even when the batch hasn't filled. string fastack Webhooks only: When true the event will be acknowledged before the webhook is invoked, allowing parallel invocations bool url Webhooks only: HTTP url to invoke. Can be relative if a base URL is set in the webhook plugin config string method Webhooks only: HTTP method to invoke. Default=POST string json Webhooks only: Whether to assume the response body is JSON, regardless of the returned Content-Type bool reply Webhooks only: Whether to automatically send a reply event, using the body returned by the webhook bool replytag Webhooks only: The tag to set on the reply message string replytx Webhooks only: The transaction type to set on the reply message string headers Webhooks only: Static headers to set on the webhook request `` query Webhooks only: Static query params to set on the webhook request `` tlsConfigName The name of an existing TLS configuration associated to the namespace to use string input Webhooks only: A set of options to extract data from the first JSON input data in the incoming message. Only applies if withData=true WebhookInputOptions retry Webhooks only: a set of options for retrying the webhook call WebhookRetryOptions httpOptions Webhooks only: a set of options for HTTP WebhookHTTPOptions"},{"location":"reference/types/wsstart/#webhookinputoptions","title":"WebhookInputOptions","text":"Field Name Description Type query A top-level property of the first data input, to use for query parameters string headers A top-level property of the first data input, to use for headers string body A top-level property of the first data input, to use for the request body. Default is the whole first body string path A top-level property of the first data input, to use for a path to append with escaping to the webhook path string replytx A top-level property of the first data input, to use to dynamically set whether to pin the response (so the requester can choose) string"},{"location":"reference/types/wsstart/#webhookretryoptions","title":"WebhookRetryOptions","text":"Field Name Description Type enabled Enables retry on HTTP calls, defaults to false bool count Number of times to retry the webhook call in case of failure int initialDelay Initial delay between retries when we retry the webhook call string maxDelay Max delay between retries when we retry the webhookcall string"},{"location":"reference/types/wsstart/#webhookhttpoptions","title":"WebhookHTTPOptions","text":"Field Name Description Type proxyURL HTTP proxy URL to use for outbound requests to the webhook string tlsHandshakeTimeout The max duration to hold a TLS handshake alive string requestTimeout The max duration to hold a TLS handshake alive string maxIdleConns The max number of idle connections to hold pooled int idleTimeout The max duration to hold a HTTP keepalive connection between calls string connectionTimeout The maximum amount of time that a connection is allowed to remain with no data transmitted. string expectContinueTimeout See ExpectContinueTimeout in the Go docs string"},{"location":"releasenotes/","title":"Release Notes","text":"

      Full release notes

      "},{"location":"releasenotes/#v120-february-6-2023","title":"v1.2.0 - February 6, 2023","text":"

      Migration guide

      What's New:

      • Enhanced support for token contracts generated by the OpenZepplin Wizard
      • Custom smart contract error types are now returned on the API
      • Data objects and associated blobs can now be deleted
      • Optional dynamic reload of core configuration file
      • The X-FireFly-Request-ID HTTP header is now passed through to FireFly dependency microservices
      • Custom HTTP headers can be passed through to FireFly dependency microservices
      • Evmconnect is now the default blockchain connector for Ethereum based FireFly stacks
      "},{"location":"releasenotes/#release-notes","title":"Release Notes","text":"

      Full release notes

      "},{"location":"releasenotes/#v110-september-12-2022","title":"v1.1.0 - September 12, 2022","text":"

      Migration guide

      What's New:

      • Gateway Mode: Connect to many chains with auto-indexing of activities
      • Public EVM Chain Support: Manage public chain connections including Ethereum, Polygon, Arbitrum, Binance Smart Chain, Moonbeam, and more.
      • Namespaces: Isolated environments within a FireFly runtime allowing independent configuration of plugin and infrastructure components and more
      • Connector Toolkit: Quickly build custom connectors
      • Pluggable API Security: Plug in your own API security
      • Mass Scale Tokens: Support many parallel copies of token plugins for mass scale
      "},{"location":"releasenotes/#v103-july-07-2022","title":"v1.0.3 - July 07, 2022","text":"

      What's New:

      • Adds support for custom URIs for non-fungible tokens and documentation updates
      • Deprecate default value for \"ffdx\"
      • Back port of custom URI support for non-fungible tokens
      • Update token connector versions
      • Back port of \"FAQ and FireFly Tutorial updates\"
      "},{"location":"releasenotes/#v102-may-12-2022","title":"v1.0.2 - May 12, 2022","text":"

      What's New:

      • Fix invocations on custom Fabric chaincode, which were not properly reporting success/failure status back to FireFly (along with other minor bugfixes).
      • De-duplicate existing token approvals in database migration
      • Backport docs generation and versioning code for 1.0 stream
      • Default fabconnect calls to async
      • Set message header type of broadcast/private
      "},{"location":"releasenotes/#v101-may-09-2022","title":"v1.0.1 - May 09, 2022","text":"

      What's New:

      • Fixes for token approvals - previously approvals would intermittently be missed by FireFly or recorded with incorrect details.
      • New versions of ERC20/ERC721 connector will assume \"no data\" support if you create a token pool against an older version of the sample smart contracts.
      "},{"location":"releasenotes/#v100-april-28-2022","title":"v1.0.0 - April 28, 2022","text":"

      This release includes lots of major hardening, performance improvements, and bug fixes, as well as more complete documentation and OpenAPI specifications.

      What's New:

      • Massive performance improvements across the board
      • Up-to-date documentation and fully annotated OpenAPI specification
      • Overhaul of UI
      • Cleaner logs and error messages
      • Lots of bug fixes and miscellaneous enhancements
      "},{"location":"releasenotes/#v0140-march-22-2022","title":"v0.14.0 - March 22, 2022","text":"

      What's New:

      • Major UI updates including Activity, Blockchain, Off-Chain, Tokens, Network Map, and My Node sections
      • Custom contract APIs
      • Enhanced subscription filters
      • Event API enrichment
      • Performance updates
      • Bug fixes
      "},{"location":"releasenotes/#v0130-february-14-2022","title":"v0.13.0 - February 14, 2022","text":"

      What's New:

      • Hardening release with significant rework to core of FireFly, mostly to fix issues exposed by the performance testing.
      • Support for running on ARM-based M1 processors
      • Rewrite of the message batching and event aggregation logic inside FireFly, to fix numerous edge cases with lost or hung messages
      • Hardening of operations and transactions to behave more consistently across all types
      • Metrics reporting to Prometheus
      • Continued development to support custom on-chain logic (still in preview)
      "},{"location":"releasenotes/#v0120-february-02-2022","title":"v0.12.0 - February 02, 2022","text":"

      What's New:

      • All APIs deprecated in v0.11.0 or earlier are removed
      • Preview of custom on-chain logic
      • Support for new ERC20 / ERC721 connector
      • Overhaul of Transaction type and new BlockchainEvent type
      • Support for delivery confirmations via DX plugin
      "},{"location":"releasenotes/#v0110-november-22-2021","title":"v0.11.0 - November 22, 2021","text":"

      What's New:

      • Significant hardening and enhanced token functionality
      • Major web UI overhaul
      • Optimized database operations for increased transactional throughput
      • Fixed PostgreSQL database migrations
      "},{"location":"releasenotes/1.1_migration_guide/","title":"v1.1.0 Migration Guide","text":""},{"location":"releasenotes/1.1_migration_guide/#overview","title":"Overview","text":"

      Hyperledger FireFly v1.1.0 is a feature release that includes significant new functionality around namespaces and plugins, as detailed in FIR-12. As a result, upgrading an existing FireFly environment from any prior release may require special steps (depending on the functionality used).

      If seamless data preservation is not required, you can simply create a new network from scratch using FireFly v1.1.0.

      If you want to preserve data from an existing 1.0.x network, significant care has been taken to ensure that it is possible. Most existing environments can be upgraded with minimal extra steps. This document attempts to call out all potentially breaking changes (both common and uncommon), so that you can easily assess the impact of the upgrade and any needed preparation before proceeding.

      "},{"location":"releasenotes/1.1_migration_guide/#before-upgrading","title":"Before Upgrading","text":"

      These steps are all safe to do while running FireFly v1.0.x. While they do not have to be done prior to upgrading, performing them ahead of time may allow you to preemptively fix some problems and ease the migration to v1.1.0.

      "},{"location":"releasenotes/1.1_migration_guide/#common-steps","title":"Common Steps","text":"

      Upgrade to latest v1.0.x patch release

      Before upgrading to v1.1.0, it is strongly recommended to upgrade to the latest v1.0.x patch release (v1.0.4 as of the writing this document). Do not proceed any further in this guide until all nodes are successfully running the latest patch release version.

      Fix any deprecated config usage

      All items in FireFly's YAML config that were deprecated at any time in the v1.0.x line will be unsupported in v1.1.0. After upgrading to the latest v1.0.x patch release, you should therefore look for any deprecation warnings when starting FireFly, and ensure they are fixed before upgrading to v1.1.0. Failure to do so will cause your config file to be rejected in v1.1.0, and FireFly will fail to start.

      You can utilize the ffconfig tool to automatically check and fix deprecated config with a command such as:

      ffconfig migrate -f <input-file> -o <output-file> --to 1.0.4\n

      This should ensure your config file is acceptable to 1.0.x or 1.1.x.

      Note that if you are attempting to migrate a Dockerized development environment (such as one stood up by the firefly-cli), you may need to edit the config file inside the Docker. Environments created by a v1.0.x CLI do not expose the config file outside the Docker container.

      "},{"location":"releasenotes/1.1_migration_guide/#less-common-situations","title":"Less Common Situations","text":"

      Record all broadcast namespaces in the config file

      Expand for migration details only if your application uses non-default namespaces. FireFly v1.0 allowed for the dynamic creation of new namespaces by broadcasting a namespace definition to all nodes. This functionality is _removed_ in v1.1.0. If your network relies on any namespaces that were created via a broadcast, you must add those namespaces to the `namespaces.predefined` list in your YAML config prior to upgrade. If you do not, they will cease to function after upgrading to v1.1.0 (all events on those namespaces will be ignored by your node).

      Identify queries for organization/node identities

      Expand for migration details only if your application queries /network/organizations or /network/nodes. Applications that query `/network/organizations` or `/network/nodes` will temporarily receive _empty result lists_ after upgrading to v1.1.0, just until all identities have been re-registered (see steps in \"After Upgrading\"). This is because organization and node identities were broadcast on a global \"ff_system\" namespace in v1.0, but are no longer global in v1.1.0. The simplest solution is to shut down applications until the FireFly upgrade is complete on all nodes and all identities have been re-broadcast. If this poses a problem and you require zero downtime from these APIs, you can proactively mitigate with the following steps in your application code: - Applications that query the `/network/organizations` may be altered to _also_ query `/namespaces/ff_system/network/organizations` and combine the results (but should disregard the second query if it fails). - Applications that query the `/network/nodes` may be altered to _also_ query `/namespaces/ff_system/network/nodes` and combine the results (but should disregard the second query if it fails). Further details on the changes to `/network` APIs are provided in the next section.

      Identify usage of changed APIs

      Expand for migration details on all changes to /namespaces, /status, and /network APIs. The primary API change in this version is that the \"global\" paths beginning with `/network` and `/status` have been relocated under the `/namespaces/{ns}` prefix, as this data is now specific to a namespace instead of being global. At the same time, the API server has been enhanced so that omitting a namespace from an API path will _query the default namespace_ instead. That is, querying `/messages` is now the same as querying `/namespaces/default/messages` (assuming your default namespace is named \"default\"). This has the effect that most of the moved APIs will continue to function without requiring changes. See below for details on the affected paths. These global routes have been moved under `/namespaces/{ns}`. Continuing to use them without the namespace prefix **will still work**, and will simply query the default namespace.
      /network/diddocs/{did}\n/network/nodes\n/network/nodes/{nameOrId}\n/network/nodes/self\n/network/organizations\n/network/organizations/{nameOrId}\n/network/organizations/self\n/status\n/status/batchmanager\n
      These global routes have been moved under `/namespaces/{ns}` and have also been deprecated in favor of a new route name. Continuing to use them without the namespace prefix **will still work**, and will simply query the default namespace. However, it is recommended to switch to the new API spelling when possible.
      /network/identities - replaced by existing /namespaces/{ns}/identities\n/network/identities/{did} - replaced by new /namespaces/{ns}/identities/{did}\n
      These global routes have been have been permanently renamed. They are deemed less likely to be used by client applications, but any usage **will be broken** by this release and must be changed after upgrading.
      /status/pins - moved to /namespaces/{ns}/pins (or /pins to query the default namespace)\n/status/websockets - moved to /websockets\n
      The response bodies of the following APIs have also had fields removed. Any usage of the removed fields **will be broken** by this release and must be changed after upgrading.
      /namespaces - removed all fields except \"name\", \"description\", \"created\"\n/namespaces/{ns} - same as above\n/namespaces/{ns}/status - removed \"defaults\"\n

      Adjust or remove usage of admin APIs

      Expand for migration details on all changes to /admin and /spi. FireFly provides an administrative API in addition to the normal API. In v1.1.0, this has been renamed to SPI (Service Provider Interface). Consequently, all of the routes have moved from `/admin` to `/spi`, and the config section has been renamed from `admin` to `spi`. There is no automatic migration provided, so any usage of the old routes will need to be changed, and your config file will need to be adjusted if you wish to keep the SPI enabled (although it is perfectly fine to have both `admin` and `spi` sections if needed for migration). The ability to set FireFly config via these routes has also been removed. Any usage of the `/admin/config` routes must be discontinued, and config should be set exclusively by editing the FireFly config file. The only route retained from this functionality was `/admin/config/reset`, which has been renamed to `/spi/reset` - this will continue to be available for performing a soft reset that reloads FireFly's config."},{"location":"releasenotes/1.1_migration_guide/#performing-the-upgrade","title":"Performing the Upgrade","text":"

      Backup current data

      Before beginning the upgrade, it is recommended to take a full backup of your FireFly database(s). If you encounter any serious issues after the upgrade, you should revert to the old binary and restore your database snapshot. While down-migrations are provided to revert a database in place, they are not guaranteed to work in all scenarios.

      Upgrade FireFly and all dependencies

      Bring FireFly down and replace it with the new v1.1.0 binary. You should also replace other runtimes (such as blockchain, data exchange, and token connectors) with the supported versions noted in the v1.1.0 release. Once all binaries have been replaced, start them up again.

      "},{"location":"releasenotes/1.1_migration_guide/#after-upgrading","title":"After Upgrading","text":"

      Ensure nodes start without errors

      Ensure that FireFly starts without errors. There will likely be new deprecation warnings for config that was deprecated in v1.1.0, but these are safe to ignore for the moment. If you face any errors or crashes, please report the logs to the FireFly channel on Discord, and return your nodes to running the previous version of FireFly if necessary.

      Re-broadcast organization and node identities

      Once all nodes in the multiparty network have been upgraded and are running without errors, each node should re-broadcast its org and node identity by invoking /network/organizations/self and /network/nodes/self (or, if your application uses a non-default namespace, by invoking the /namespace/{ns}-prefixed versions of these APIs).

      This will ensure that queries to /network/organizations and /network/nodes return the expected results, and will register the identities in a way that can be supported by both V1 and V2 multiparty contracts (see \"Upgrading the Multi-Party Contract\").

      Update config file to latest format

      Once the network is stable, you should update your config file(s) again to remove deprecated configuration and set yourself up to take advantage of all the new configuration options available in v1.1.0.

      You can utilize the ffconfig tool to automatically check and fix deprecated config with a command such as:

      ffconfig migrate -f <input-file> -o <output-file>\n
      "},{"location":"releasenotes/1.1_migration_guide/#upgrading-the-multi-party-contract","title":"Upgrading the Multi-Party Contract","text":"

      FireFly v1.1.0 includes a new recommended version of the contract used for multi-party systems (for both Ethereum and Fabric). It also introduces a versioning method for this contract, and a path for migrating networks from one contract address to a new one.

      After upgrading FireFly itself, it is recommended to upgrade your multi-party system to the latest contract version by following these steps.

      1. Compile and deploy an instance of the new FireFly contract (linked above) to your blockchain, using ff deploy or a similar method.
      2. Edit the config file on each node in your network, to add the new contract to the multi-party contract list like so:
      namespaces:\n  predefined:\n  - name: default\n    multiparty:\n      enabled: true\n      contract:\n      - location:\n          address: 0x09f107d670b2e69a700a4d9ef1687490ae1568db\n      - location:\n          address: 0x1bee32b37dc48e99c6b6bf037982eb3bee0e816b\n

      This example assumes 0x09f1... represents the address of the original contract, and 0x1bee... represents the new one. Note that if you have multiple namespaces, you must repeat this step for each namespace in the config - and you must deploy a unique contract instance per namespace (in the new network rules, multiple namespaces cannot share a single contract).

      1. After updating each node's configuration, restart the node and ensure it starts without issues.
      2. Have any member of the multi-party network invoke the /namespaces/{ns}/network/action FireFly API with a body of {\"type\": \"terminate\"}. This will terminate the old contract and instruct all members to move simultaneously to the newly configured one.
      3. Verify success by querying /namespaces/{ns}/status on each node and checking that the active multi-party contract matches the new address.
      "},{"location":"releasenotes/1.2_migration_guide/","title":"v1.2.0 Migration Guide","text":""},{"location":"releasenotes/1.2_migration_guide/#overview","title":"Overview","text":"

      Hyperledger FireFly v1.2.0 is a feature release that includes new features for tokens and data management as well as enhancements for debugging FireFly apps and operating FireFly nodes.

      For the most part, upgrading from v1.1.x to v.1.2.0 should be a seamless experience, but there are several important things to note about changes between the two versions, which are described in detail on this page.

      "},{"location":"releasenotes/1.2_migration_guide/#tokens-considerations","title":"Tokens considerations","text":"

      There are quite a few new features around tokens in FireFly v1.2.0. Most notably, FireFly's token APIs now work with a much wider variety of ERC-20, ERC-721, and ERC-1155 contracts, supporting variations of these contracts generated by the OpenZepplin Contract Wizard.

      "},{"location":"releasenotes/1.2_migration_guide/#sample-token-contract-deprecations","title":"Sample token contract deprecations","text":"

      In FireFly v1.2.0 two of the old, lesser used sample token contracts have been deprecated. The ERC20NoData and ERC721NoData contracts have been updated and the previous versions are no longer supported, unless you set the USE_LEGACY_ERC20_SAMPLE=true or USE_LEGACY_ERC721_SAMPLE=true environment variables for your token connector.

      For more details you can read the description of the pull requests (#104 and #109) where these changes were made.

      "},{"location":"releasenotes/1.2_migration_guide/#differences-from-v110","title":"Differences from v1.1.0","text":""},{"location":"releasenotes/1.2_migration_guide/#optional-fields","title":"Optional fields","text":"

      Some token connectors support some optional fields when using them with certain contracts. For example, the ERC-721 token connector supports a URI field. If these optional fields are specified in an API call to a token connector and contract that does not support that field, an error will be returned, rather than the field being silently ignored.

      "},{"location":"releasenotes/1.2_migration_guide/#auto-incrementing-token-index","title":"Auto incrementing token index","text":"

      In FireFly v1.2.0 the default ERC-721 and ERC-1155 contracts have changed to automatically increment the token index when a token is minted. This is useful when many tokens may be minted around the same time, or by different minters. This lets the blockchain handle the ordering, and keeping track of the state of which token index should be minted next, rather than making that an application concern.

      NOTE: These new contracts will only be used for brand new FireFly stacks with v1.2.0. If you have an existing stack, the new token contracts will not be used, unless you specifically deploy them and start using them.

      "},{"location":"releasenotes/1.2_migration_guide/#data-management-considerations","title":"Data management considerations","text":"

      FireFly v1.2.0 introduces the ability to delete data records and their associated blobs, if present. This will remove the data and blob rows from the FireFly database, as well as removing the blob from the Data Exchange microservice. This can be very useful if your organization has data retention requirements for sensitive, private data and needs to purge data after a certain period of time.

      Please note that this API only removes data from the FireFly node on which it is called. If data has been shared with other participants of a multi-party network, it is each participants' responsibility to satisfy their own data retention policies.

      "},{"location":"releasenotes/1.2_migration_guide/#differences-from-v110_1","title":"Differences from v1.1.0","text":"

      It is important to note that FireFly now stores a separate copy of a blob for a given payload, even if the same data object is sent in different messages, by different network participants. Previously, in FireFly v1.1.0 the blob was de-duplicated in some cases. In FireFly v1.2.0, deleting the data object will result in each copy of the associated payload being removed.

      NOTE: If data has been published to IPFS, it cannot be deleted completely. You can still call the DELETE method on it, and it will be removed from FireFly's database and Data Exchange, but the payload will still persist in IPFS.

      "},{"location":"releasenotes/1.2_migration_guide/#application-considerations","title":"Application considerations","text":""},{"location":"releasenotes/1.2_migration_guide/#optional-tokens-fields","title":"Optional tokens fields","text":"

      Please see the optional token fields section above for details. If your application code is calling any token API endpoints with optional fields that are not supported by your token connector or contract, you will need to remove those fields from your API request or it will fail.

      "},{"location":"releasenotes/1.2_migration_guide/#transaction-output-details","title":"Transaction output details","text":"

      In previous versions of FireFly, transaction output details used to appear under the output object in the response body. Behind the scenes, some of this data is now fetched from the blockchain connector asynchronously. If your application needs the detailed output, it should now add a fetchStatus=true query parameter when querying for an Operation. Additionally the details have moved from the output field to a new detail field on the response body. For more details, please refer to the PRs where this change was made (#1111 and #1151). For a detailed example comparing what an Operation response body looks like in FireFly v1.2.0 compared with v1.1.x, you can expand the sections below.

      v1.2.0 Operation response body with `fetchStatus=true`
      \n{\n  \"id\": \"2b0ec132-2abd-40f0-aa56-79871a7a23b9\",\n  \"namespace\": \"default\",\n  \"tx\": \"cb0e6de1-50a9-44f2-a2ff-411f6dcc19c9\",\n  \"type\": \"blockchain_invoke\",\n  \"status\": \"Succeeded\",\n  \"plugin\": \"ethereum\",\n  \"input\": {\n    \"idempotencyKey\": \"5a634941-29cb-4a4b-b5a7-196331723d6d\",\n    \"input\": {\n      \"newValue\": 42\n    },\n    \"interface\": \"46189886-cae5-42ff-bf09-25d4f58d649e\",\n    \"key\": \"0x2ecd8d5d97fb4bb7af0fbc27d7b89fd6f0366350\",\n    \"location\": {\n      \"address\": \"0x9d7ea8561d4b21cba495d1bd29a6d3421c31cf8f\"\n    },\n    \"method\": {\n      \"description\": \"\",\n      \"id\": \"d1d2a0cf-19ea-42c3-89b8-cb65850fb9c5\",\n      \"interface\": \"46189886-cae5-42ff-bf09-25d4f58d649e\",\n      \"name\": \"set\",\n      \"namespace\": \"default\",\n      \"params\": [\n        {\n          \"name\": \"newValue\",\n          \"schema\": {\n            \"details\": {\n              \"type\": \"uint256\"\n            },\n            \"type\": \"integer\"\n          }\n        }\n      ],\n      \"pathname\": \"set\",\n      \"returns\": []\n    },\n    \"methodPath\": \"set\",\n    \"options\": null,\n    \"type\": \"invoke\"\n  },\n  \"output\": {\n    \"Headers\": {\n      \"requestId\": \"default:2b0ec132-2abd-40f0-aa56-79871a7a23b9\",\n      \"type\": \"TransactionSuccess\"\n    },\n    \"protocolId\": \"000000000052/000000\",\n    \"transactionHash\": \"0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71\"\n  },\n  \"created\": \"2023-01-24T14:08:17.371587084Z\",\n  \"updated\": \"2023-01-24T14:08:17.385558417Z\",\n  \"detail\": {\n    \"created\": \"2023-01-24T14:08:17.378147625Z\",\n    \"firstSubmit\": \"2023-01-24T14:08:17.381787042Z\",\n    \"gas\": \"42264\",\n    \"gasPrice\": 0,\n    \"history\": [\n      {\n        \"count\": 1,\n        \"info\": \"Success=true,Receipt=000000000052/000000,Confirmations=0,Hash=0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71\",\n        \"lastOccurrence\": null,\n        \"time\": \"2023-01-24T14:08:17.384371042Z\"\n      },\n      {\n        \"count\": 1,\n        \"info\": \"Submitted=true,Receipt=,Hash=0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71\",\n        \"lastOccurrence\": null,\n        \"time\": \"2023-01-24T14:08:17.381908959Z\"\n      }\n    ],\n    \"id\": \"default:2b0ec132-2abd-40f0-aa56-79871a7a23b9\",\n    \"lastSubmit\": \"2023-01-24T14:08:17.381787042Z\",\n    \"nonce\": \"34\",\n    \"policyInfo\": null,\n    \"receipt\": {\n      \"blockHash\": \"0x7a2ca7cc57fe1eb4ead3e60d3030b123667d18eb67f4b390fb0f51f970f1fba0\",\n      \"blockNumber\": \"52\",\n      \"extraInfo\": {\n        \"contractAddress\": null,\n        \"cumulativeGasUsed\": \"28176\",\n        \"from\": \"0x2ecd8d5d97fb4bb7af0fbc27d7b89fd6f0366350\",\n        \"gasUsed\": \"28176\",\n        \"status\": \"1\",\n        \"to\": \"0x9d7ea8561d4b21cba495d1bd29a6d3421c31cf8f\"\n      },\n      \"protocolId\": \"000000000052/000000\",\n      \"success\": true,\n      \"transactionIndex\": \"0\"\n    },\n    \"sequenceId\": \"0185e41b-ade2-67e4-c104-5ff553135320\",\n    \"status\": \"Succeeded\",\n    \"transactionData\": \"0x60fe47b1000000000000000000000000000000000000000000000000000000000000002a\",\n    \"transactionHash\": \"0x9adae77a46bf869ee97aab38bb5d789fa2496209500801e87bf9e2cce945dc71\",\n    \"transactionHeaders\": {\n      \"from\": \"0x2ecd8d5d97fb4bb7af0fbc27d7b89fd6f0366350\",\n      \"to\": \"0x9d7ea8561d4b21cba495d1bd29a6d3421c31cf8f\"\n    },\n    \"updated\": \"2023-01-24T14:08:17.384371042Z\"\n  }\n}\n
      v1.1.x Operation response body
      \n{\n  \"id\": \"4a1a19cf-7fd2-43f1-8fae-1e3d5774cf0d\",\n  \"namespace\": \"default\",\n  \"tx\": \"2978a248-f5df-4c78-bf04-711ab9c79f3d\",\n  \"type\": \"blockchain_invoke\",\n  \"status\": \"Succeeded\",\n  \"plugin\": \"ethereum\",\n  \"input\": {\n    \"idempotencyKey\": \"5dc2ee8a-be5c-4e60-995f-9e21818a441d\",\n    \"input\": {\n      \"newValue\": 42\n    },\n    \"interface\": \"752af5a3-d383-4952-88a9-b32b837ed1cb\",\n    \"key\": \"0xd8a27cb390fd4f446acce01eb282c7808ec52572\",\n    \"location\": {\n      \"address\": \"0x7c0a598252183999754c53d97659af9436293b82\"\n    },\n    \"method\": {\n      \"description\": \"\",\n      \"id\": \"1739f25d-ab48-4534-b278-58c4cf151bf9\",\n      \"interface\": \"752af5a3-d383-4952-88a9-b32b837ed1cb\",\n      \"name\": \"set\",\n      \"namespace\": \"default\",\n      \"params\": [\n        {\n          \"name\": \"newValue\",\n          \"schema\": {\n            \"details\": {\n              \"type\": \"uint256\"\n            },\n            \"type\": \"integer\"\n          }\n        }\n      ],\n      \"pathname\": \"set\",\n      \"returns\": []\n    },\n    \"methodPath\": \"set\",\n    \"options\": null,\n    \"type\": \"invoke\"\n  },\n  \"output\": {\n    \"_id\": \"default:4a1a19cf-7fd2-43f1-8fae-1e3d5774cf0d\",\n    \"blockHash\": \"0x13660667b69f48646025a87db603abdeeaa88036e9a1252b1af4ec1fc3e1d850\",\n    \"blockNumber\": \"52\",\n    \"cumulativeGasUsed\": \"28176\",\n    \"from\": \"0xd8a27cb390fd4f446acce01eb282c7808ec52572\",\n    \"gasUsed\": \"28176\",\n    \"headers\": {\n      \"id\": \"8dfaabd1-4493-4a64-52dd-762497022ba2\",\n      \"requestId\": \"default:4a1a19cf-7fd2-43f1-8fae-1e3d5774cf0d\",\n      \"requestOffset\": \"\",\n      \"timeElapsed\": 0.109499833,\n      \"timeReceived\": \"2023-01-24T17:16:52.372449013Z\",\n      \"type\": \"TransactionSuccess\"\n    },\n    \"nonce\": \"0\",\n    \"receivedAt\": 1674580612482,\n    \"status\": \"1\",\n    \"to\": \"0x7c0a598252183999754c53d97659af9436293b82\",\n    \"transactionHash\": \"0x522e5aac000f5befba61ddfd707aaf5c61314f47e00cd0c5b779f69dd14bd899\",\n    \"transactionIndex\": \"0\"\n  },\n  \"created\": \"2023-01-24T17:16:52.368498346Z\",\n  \"updated\": \"2023-01-24T17:16:52.48408293Z\"\n}\n
      "},{"location":"releasenotes/1.2_migration_guide/#local-development-considerations","title":"Local development considerations","text":"

      It is also worth noting that the default Ethereum blockchain connector in the FireFly CLI is now Evmconnect. Ethconnect is still fully supported, but FireFly v1.2.0 marks a point of maturity in the project where it is now the recommended choice for any Ethereum based FireFly stack.

      "},{"location":"swagger/","title":"API Spec","text":"

      This is the FireFly OpenAPI Specification document generated by FireFly

      Note: The 'Try it out' buttons will not work on this page because it's not running against a live version of FireFly. To actually try it out, we recommend using the FireFly CLI to start an instance on your local machine (which will start the FireFly core on port 5000 by default) and then open the Swagger UI associated with your local node by opening a new tab and visiting http://localhost:5000/api

      "},{"location":"tutorials/basic_auth/","title":"Basic Auth","text":""},{"location":"tutorials/basic_auth/#quick-reference","title":"Quick reference","text":"

      FireFly has a pluggable auth system which can be enabled at two different layers of the stack. At the top, auth can be enabled at the HTTP listener level. This will protect all requests to the given listener. FireFly has three different HTTP listeners, which could each use a different auth scheme:

      1. The main API
      2. The SPI (for internal or admin use)
      3. The metrics API.

      Auth can also be enabled at the namespace level within FireFly as well. This enables several different use cases. For example, you might have two different teams that want to use the same FireFly node, each with different sets of authorized users. You could configure them to use separate namespaces and create separate auth schemes on each.

      FireFly has a basic auth plugin built in, which we will be configuring in this tutorial.

      NOTE: This guide assumes that you have already gone through the Getting Started Guide and have set up and run a stack at least once.

      "},{"location":"tutorials/basic_auth/#additional-info","title":"Additional info","text":"
      • Config Reference: HTTP Auth
      • Auth plugin interface
      • Basic auth plugin implementation
      "},{"location":"tutorials/basic_auth/#create-a-password-file","title":"Create a password file","text":"

      FireFly's built in basic auth plugin uses a password hash file to store the list of authorized users. FireFly uses the bcrypt algorithm to compare passwords against the stored hash. You can use htpasswd on a command line to generate a hash file.

      "},{"location":"tutorials/basic_auth/#create-the-test_users-password-hash-file","title":"Create the test_users password hash file","text":"
      touch test_users\n
      "},{"location":"tutorials/basic_auth/#create-a-user-named-firefly","title":"Create a user named firefly","text":"
      htpasswd -B test_users firefly\n

      You will be prompted to type the password for the new user twice. Optional: You can continue to add new users by running this command with a different username.

      htpasswd -B test_users <username>\n
      "},{"location":"tutorials/basic_auth/#enable-basic-auth-at-the-namespace-level","title":"Enable basic auth at the Namespace level","text":"

      To enable auth at the HTTP listener level we will need to edit the FireFly core config file. You can find the config file for the first node in your stack at the following path:

      ~/.firefly/stacks/<stack_name>/runtime/config/firefly_core_0.yml\n

      Open the config file in your favorite editor and add the auth section to the plugins list:

      plugins:\n  auth:\n  - name: test_user_auth\n    type: basic\n    basic:\n      passwordfile: /etc/firefly/test_users\n

      You will also need to add test_user_auth to the list of plugins used by the default namespace:

      namespaces:\n  predefined:\n  - plugins:\n    - database0\n    - blockchain0\n    - dataexchange0\n    - sharedstorage0\n    - erc20_erc721\n    - test_user_auth\n
      "},{"location":"tutorials/basic_auth/#mount-the-password-hash-file-in-the-docker-container","title":"Mount the password hash file in the Docker container","text":"

      If you set up your FireFly stack using the FireFly CLI we will need to mount the password hash file in the Docker container, so that FireFly can actually read the file. This can be done by editing the docker-compose.override.yml file at:

      ~/.firefly/stacks/<stack_name>/docker-compose.override.yml\n

      Edit the file to look like this, replacing the path to your test_users file:

      # Add custom config overrides here\n# See https://docs.docker.com/compose/extends\nversion: \"2.1\"\nservices:\n  firefly_core_0:\n    volumes:\n      - PATH_TO_YOUR_TEST_USERS_FILE:/etc/firefly/test_users\n
      "},{"location":"tutorials/basic_auth/#restart-your-firefly-core-container","title":"Restart your FireFly Core container","text":"

      To restart your FireFly stack and have Docker pick up the new volume, run:

      ff stop <stack_name>\nff start <stack_name>\n

      NOTE: The FireFly basic auth plugin reads this file at startup and will not read it again during runtime. If you add any users or change passwords, restarting the node will be necessary to use an updated file.

      "},{"location":"tutorials/basic_auth/#test-basic-auth","title":"Test basic auth","text":"

      After FireFly starts back up, you should be able to test that auth is working correctly by making an unauthenticated request to the API:

      curl http://localhost:5000/api/v1/status\n{\"error\":\"FF00169: Unauthorized\"}\n

      However, if we add the username and password that we created above, the request should still work:

      curl -u \"firefly:firefly\" http://localhost:5000/api/v1/status\n{\"namespace\":{\"name\":\"default\",\"networkName\":\"default\",\"description\":\"Default predefined namespace\",\"created\":\"2022-10-18T16:35:57.603205507Z\"},\"node\":{\"name\":\"node_0\",\"registered\":false},\"org\":{\"name\":\"org_0\",\"registered\":false},\"plugins\":{\"blockchain\":[{\"name\":\"blockchain0\",\"pluginType\":\"ethereum\"}],\"database\":[{\"name\":\"database0\",\"pluginType\":\"sqlite3\"}],\"dataExchange\":[{\"name\":\"dataexchange0\",\"pluginType\":\"ffdx\"}],\"events\":[{\"pluginType\":\"websockets\"},{\"pluginType\":\"webhooks\"},{\"pluginType\":\"system\"}],\"identity\":[],\"sharedStorage\":[{\"name\":\"sharedstorage0\",\"pluginType\":\"ipfs\"}],\"tokens\":[{\"name\":\"erc20_erc721\",\"pluginType\":\"fftokens\"}]},\"multiparty\":{\"enabled\":true,\"contract\":{\"active\":{\"index\":0,\"location\":{\"address\":\"0xa750e2647e24828f4fec2e6e6d61fc08ccca5efa\"},\"info\":{\"subscription\":\"sb-d0642f14-f89a-41bb-6fd4-ae74b9501b6c\",\"version\":2}}}}}\n
      "},{"location":"tutorials/basic_auth/#enable-auth-at-the-http-listener-level","title":"Enable auth at the HTTP listener level","text":"

      You may also want to enable auth at the HTTP listener level, for instance on the SPI (Service Provider Interface) to limit administrative actions. To enable auth at the HTTP listener level we will need to edit the FireFly core config file. You can find the config file for the first node in your stack at the following path:

      ~/.firefly/stacks/<stack_name>/runtime/config/firefly_core_0.yml\n

      Open the config file in your favorite editor and change the spi section to look like the following:

      spi:\n  address: 0.0.0.0\n  enabled: true\n  port: 5101\n  publicURL: http://127.0.0.1:5101\n  auth:\n    type: basic\n    basic:\n      passwordfile: /etc/firefly/test_users\n
      "},{"location":"tutorials/basic_auth/#restart-firefly-to-apply-the-changes","title":"Restart FireFly to apply the changes","text":"

      NOTE You will need to mount the password hash file following the instructions above if you have not already.

      You can run the following to restart your stack:

      ff stop <stack_name>\nff start <stack_name>\n
      "},{"location":"tutorials/basic_auth/#test-basic-auth_1","title":"Test basic auth","text":"

      After FireFly starts back up, you should be able to query the SPI and the request should be unauthorized.

      curl http://127.0.0.1:5101/spi/v1/namespaces\n{\"error\":\"FF00169: Unauthorized\"}\n

      Adding the username and password that we set earlier, should make the request succeed.

      curl -u \"firefly:firefly\" http://127.0.0.1:5101/spi/v1/namespaces\n[{\"name\":\"default\",\"networkName\":\"default\",\"description\":\"Default predefined namespace\",\"created\":\"2022-10-18T16:35:57.603205507Z\"}]\n
      "},{"location":"tutorials/broadcast_data/","title":"Broadcast data","text":""},{"location":"tutorials/broadcast_data/#quick-reference","title":"Quick reference","text":"
      • Sends a message visible to all parties in the network
      • The message describes who sent it, and exactly what data was sent
      • A message has one or more attached pieces of business data
      • Can be sent in-line, uploaded in advanced, or received from other parties
      • Can include smaller JSON payloads suitable for database storage
        • These can be verified against a datatype
      • Can include references to large (multi megabyte/gigabyte) Blob data
      • Sequenced via the blockchain
      • The blockchain does not contain any data, just a hash pin
      • Batched for efficiency
      • One batch can pin hundreds of message broadcasts
      • The whole batch is written to the shared storage
      "},{"location":"tutorials/broadcast_data/#additional-info","title":"Additional info","text":"
      • Key Concepts: Broadcast / shared data
      • Swagger Reference: POST /api/v1/namespaces/{ns}/messages/broadcast
      "},{"location":"tutorials/broadcast_data/#example-1-inline-string-data","title":"Example 1: Inline string data","text":"

      POST /api/v1/namespaces/default/messages/broadcast

      {\n  \"data\": [\n    {\n      \"value\": \"a string\"\n    }\n  ]\n}\n
      "},{"location":"tutorials/broadcast_data/#example-message-response","title":"Example message response","text":"
      {\n  \"header\": {\n    \"id\": \"607e22ad-04fa-434a-a073-54f528ca14fb\", // uniquely identifies this broadcast message\n    \"type\": \"broadcast\", // set automatically\n    \"txtype\": \"batch_pin\", // message will be batched, and sequenced via the blockchain\n    \"author\": \"0x0a65365587a65ce44938eab5a765fe8bc6532bdf\", // set automatically in this example to the node org\n    \"created\": \"2021-07-01T18:06:24.5817016Z\", // set automatically\n    \"namespace\": \"default\", // the 'default' namespace was set in the URL\n    \"topics\": [\n      \"default\" // the default topic that the message is published on, if no topic is set\n    ],\n    // datahash is calculated from the data array below\n    \"datahash\": \"5a7bbc074441fa3231d9c8fc942d68ef9b9b646dd234bb48c57826dc723b26fd\"\n  },\n  \"hash\": \"81acf8c8f7982dbc49258535561461601cbe769752fecec0f8ce0358664979e6\", // hash of the header\n  \"state\": \"ready\", // this message is stored locally but not yet confirmed\n  \"data\": [\n    // one item of data was stored\n    {\n      \"id\": \"8d8635e2-7c90-4963-99cc-794c98a68b1d\", // can be used to query the data in the future\n      \"hash\": \"c95d6352f524a770a787c16509237baf7eb59967699fb9a6d825270e7ec0eacf\" // sha256 hash of `\"a string\"`\n    }\n  ]\n}\n
      "},{"location":"tutorials/broadcast_data/#example-2-inline-object-data-to-a-topic-no-datatype-verification","title":"Example 2: Inline object data to a topic (no datatype verification)","text":"

      It is very good practice to set a tag and topic in each of your messages:

      • tag should tell the apps receiving the broadcast (including the local app), what to do when it receives the message. Its the reason for the broadcast - an application specific type for the message.
      • topic should be something like a well known identifier that relates to the information you are publishing. It is used as an ordering context, so all broadcasts on a given topic are assured to be processed in order.

      POST /api/v1/namespaces/default/messages/broadcast

      {\n  \"header\": {\n    \"tag\": \"new_widget_created\",\n    \"topics\": [\"widget_id_12345\"]\n  },\n  \"data\": [\n    {\n      \"value\": {\n        \"id\": \"widget_id_12345\",\n        \"name\": \"superwidget\"\n      }\n    }\n  ]\n}\n
      "},{"location":"tutorials/broadcast_data/#notes-on-why-setting-a-topic-is-important","title":"Notes on why setting a topic is important","text":"

      The FireFly aggregator uses the topic (obfuscated on chain) to determine if a message is the next message in an in-flight sequence for any groups the node is involved in. If it is, then that message must receive all off-chain private data and be confirmed before any subsequent messages can be confirmed on the same sequence.

      So if you use the same topic in every message, then a single failed send on one topic blocks delivery of all messages between those parties, until the missing data arrives.

      Instead it is best practice to set the topic on your messages to a value that identifies an ordered stream of business processing. Some examples:

      • A long-running business process instance identifier assigned at initiation
      • A real-world business transaction identifier used off-chain
      • The agreed identifier of an asset you are attaching a stream of evidence to
      • An NFT identifier that is assigned to an asset (digital twin scenarios)
      • An agreed primary key for a data resource being reconciled between multiple parties

      The topic field is an array, because there are cases (such as merging two identifiers) where you need a message to be deterministically ordered across multiple sequences. However, this is an advanced use case and you are likely to set a single topic on the vast majority of your messages.

      "},{"location":"tutorials/broadcast_data/#example-3-upload-a-blob-with-metadata-and-broadcast","title":"Example 3: Upload a blob with metadata and broadcast","text":"

      Here we make two API calls.

      1. Create the data object explicitly, using a multi-part form upload

      2. You can also just post JSON to this endpoint

      3. Broadcast a message referring to that data

      4. The Blob attachment gets published to shared storage

      5. This happens the first time a broadcast happens on a data attachment
      6. A pin goes to the blockchain
      7. The metadata goes into a batch with the message
      "},{"location":"tutorials/broadcast_data/#multipart-form-post-of-a-file","title":"Multipart form post of a file","text":"

      Example curl command (Linux/Mac) to grab an image from the internet, and pipe it into a multi-part form post to FireFly.

      Note we use autometa to cause FireFly to automatically add the filename, and size, to the JSON part of the data object for us.

      curl -sLo - https://github.com/hyperledger/firefly/raw/main/docs/firefly_logo.png \\\n | curl --form autometa=true --form file=@- \\\n   http://localhost:5000/api/v1/namespaces/default/data\n
      "},{"location":"tutorials/broadcast_data/#example-data-response-from-blob-upload","title":"Example data response from Blob upload","text":"

      Status: 200 OK - your data is uploaded to your local FireFly node

      At this point the data has not be shared with anyone else in the network

      {\n  // A uniquely generated ID, we can refer to when sending this data to other parties\n  \"id\": \"97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8\",\n  \"validator\": \"json\", // the \"value\" part is JSON\n  \"namespace\": \"default\", // from the URL\n  // The hash is a combination of the hash of the \"value\" metadata, and the\n  // hash of the blob\n  \"hash\": \"997af6a9a19f06cc8a46872617b8bf974b106f744b2e407e94cc6959aa8cf0b8\",\n  \"created\": \"2021-07-01T20:20:35.5462306Z\",\n  \"value\": {\n    \"filename\": \"-\", // dash is how curl represents the filename for stdin\n    \"size\": 31185 // the size of the blob data\n  },\n  \"blob\": {\n    // A hash reference to the blob\n    \"hash\": \"86e6b39b04b605dd1b03f70932976775962509d29ae1ad2628e684faabe48136\"\n    // Note at this point there is no public reference. The only place\n    // this data has been uploaded to is our own private data exchange.\n    // It's ready to be published to everyone (broadcast), or privately\n    // transferred (send) to other parties in the network. But that hasn't\n    // happened yet.\n  }\n}\n
      "},{"location":"tutorials/broadcast_data/#broadcast-the-uploaded-data","title":"Broadcast the uploaded data","text":"

      Just include a reference to the id returned from the upload.

      POST /api/v1/namespaces/default/messages/broadcast

      {\n  \"data\": [\n    {\n      \"id\": \"97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8\"\n    }\n  ]\n}\n
      "},{"location":"tutorials/broadcast_data/#broadcasting-messages-using-the-sandbox","title":"Broadcasting Messages using the Sandbox","text":"

      All of the functionality discussed above can be done through the FireFly Sandbox.

      To get started, open up the Web UI and Sanbox UI for at least one of your members. The URLs for these were printed in your terminal when you started your FireFly stack.

      In the sandbox, enter your message into the message field as seen in the screenshot below.

      Notice how the data field in the center panel updates in real time.

      Click the blue Run button. This should return a 202 response immediately in the Server Response section and will populate the right hand panel with transaction information after a few seconds.

      Go back to the FireFly UI (the URL for this would have been shown in the terminal when you started the stack) and you'll see your successful blockchain transaction

      "},{"location":"tutorials/create_custom_identity/","title":"Create a Custom Identity","text":""},{"location":"tutorials/create_custom_identity/#quick-reference","title":"Quick reference","text":"

      Out of the box, a FireFly Supernode contains both an org and a node identity. Your use case might demand more granular notions of identity (ex. customers, clients, etc.). Instead of creating a Supernode for each identity, you can create multiple custom identities within a FireFly Supernode.

      "},{"location":"tutorials/create_custom_identity/#additional-info","title":"Additional info","text":"
      • Reference: Identities
      • Swagger: POST /api/v1/identities
      "},{"location":"tutorials/create_custom_identity/#previous-steps-start-your-environment","title":"Previous steps: Start your environment","text":"

      If you haven't started a FireFly stack already, please go to the Getting Started guide on how to Start your environment

      \u2190 \u2461 Start your environment

      "},{"location":"tutorials/create_custom_identity/#step-1-create-a-new-account","title":"Step 1: Create a new account","text":"

      The FireFly CLI has a helpful command to create an account in a local development environment for you.

      NOTE: In a production environment, key management actions such as creation, encryption, unlocking, etc. may be very different, depending on what type of blockchain node and signer your specific deployment is using.

      To create a new account on your local stack, run:

      ff accounts create <stack_name>\n
      {\n  \"address\": \"0xc00109e112e21165c7065da776c75cfbc9cdc5e7\",\n  \"privateKey\": \"...\"\n}\n

      The FireFly CLI has created a new private key and address for us to be able to use, and it has loaded the encrypted private key into the signing container. However, we haven't told FireFly itself about the new key, or who it belongs to. That's what we'll do in the next steps.

      "},{"location":"tutorials/create_custom_identity/#step-2-query-the-parent-org-for-its-uuid","title":"Step 2: Query the parent org for its UUID","text":"

      If we want to create a new custom identity under the organizational identity that we're using in a multiparty network, first we will need to look up the UUID for our org identity. We can look that up by making a GET request to the status endpoint on the default namespace.

      "},{"location":"tutorials/create_custom_identity/#request","title":"Request","text":"

      GET http://localhost:5000/api/v1/status

      "},{"location":"tutorials/create_custom_identity/#response","title":"Response","text":"
      {\n    \"namespace\": {...},\n    \"node\": {...},\n    \"org\": {\n        \"name\": \"org_0\",\n        \"registered\": true,\n        \"did\": \"did:firefly:org/org_0\",\n        \"id\": \"1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8\", // We need this in Step 3\n        \"verifiers\": [\n            {\n                \"type\": \"ethereum_address\",\n                \"value\": \"0xd7320c76a2efc1909196dea876c4c7dabe49c0f4\"\n            }\n        ]\n    },\n    \"plugins\": {...},\n    \"multiparty\": {...}\n}\n
      "},{"location":"tutorials/create_custom_identity/#step-3-register-the-new-custom-identity-with-firefly","title":"Step 3: Register the new custom identity with FireFly","text":"

      Now we can POST to the identities endpoint to create a new custom identity. We will include the UUID of the organizational identity from the previous step in the \"parent\" field in the request.

      "},{"location":"tutorials/create_custom_identity/#request_1","title":"Request","text":"

      POST http://localhost:5000/api/v1/identities

      {\n    \"name\": \"myCustomIdentity\",\n    \"key\": \"0xc00109e112e21165c7065da776c75cfbc9cdc5e7\", // Signing Key from Step 1\n    \"parent\": \"1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8\" // Org UUID from Step 2\n}\n
      "},{"location":"tutorials/create_custom_identity/#response_1","title":"Response","text":"
      {\n    \"id\": \"5ea8f770-e004-48b5-af60-01994230ed05\",\n    \"did\": \"did:firefly:myCustomIdentity\",\n    \"type\": \"custom\",\n    \"parent\": \"1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8\",\n    \"namespace\": \"\",\n    \"name\": \"myCustomIdentity\",\n    \"messages\": {\n        \"claim\": \"817b7c79-a934-4936-bbb1-7dcc7c76c1f4\",\n        \"verification\": \"ae55f998-49b1-4391-bed2-fa5e86dc85a2\",\n        \"update\": null\n    }\n}\n
      "},{"location":"tutorials/create_custom_identity/#step-4-query-the-new-custom-identity","title":"Step 4: Query the New Custom Identity","text":"

      Lastly, if we want to confirm that the new identity has been created, we can query the identities endpoint to see our new custom identity.

      "},{"location":"tutorials/create_custom_identity/#request_2","title":"Request","text":"

      GET http://localhost:5000/api/v1/identities?fetchverifiers=true

      NOTE: Using fetchverifiers=true will return the cryptographic verification mechanism for the FireFly identity.

      "},{"location":"tutorials/create_custom_identity/#response_2","title":"Response","text":"
      [\n    {\n        \"id\": \"5ea8f770-e004-48b5-af60-01994230ed05\",\n        \"did\": \"did:firefly:myCustomIdentity\",\n        \"type\": \"custom\",\n        \"parent\": \"1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8\",\n        \"namespace\": \"default\",\n        \"name\": \"myCustomIdentity\",\n        \"messages\": {\n            \"claim\": \"817b7c79-a934-4936-bbb1-7dcc7c76c1f4\",\n            \"verification\": \"ae55f998-49b1-4391-bed2-fa5e86dc85a2\",\n            \"update\": null\n        },\n        \"created\": \"2022-09-19T18:10:47.365068013Z\",\n        \"updated\": \"2022-09-19T18:10:47.365068013Z\",\n        \"verifiers\": [\n            {\n                \"type\": \"ethereum_address\",\n                \"value\": \"0xfe1ea8c8a065a0cda424e2351707c7e8eb4d2b6f\"\n            }\n        ]\n    },\n    { ... },\n    { ... }\n]\n
      "},{"location":"tutorials/define_datatype/","title":"Define a datatype","text":""},{"location":"tutorials/define_datatype/#quick-reference","title":"Quick reference","text":"

      As your use case matures, it is important to agree formal datatypes between the parties. These canonical datatypes need to be defined and versioned, so that each member can extract and transform data from their internal systems into this datatype.

      Datatypes are broadcast to the network so everybody refers to the same JSON schema when validating their data. The broadcast must complete before a datatype can be used by an application to upload/broadcast/send data. The same system of broadcast within FireFly is used to broadcast definitions of datatypes, as is used to broadcast the data itself.

      "},{"location":"tutorials/define_datatype/#additional-info","title":"Additional info","text":"
      • Key Concepts: Broadcast / shared data
      • Swagger: POST /api/v1/namespaces/{ns}/datatypes
      "},{"location":"tutorials/define_datatype/#example-1-broadcast-new-datatype","title":"Example 1: Broadcast new datatype","text":"

      POST /api/v1/namespaces/{ns}/datatypes

      {\n  \"name\": \"widget\",\n  \"version\": \"0.0.2\",\n  \"value\": {\n    \"$id\": \"https://example.com/widget.schema.json\",\n    \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n    \"title\": \"Widget\",\n    \"type\": \"object\",\n    \"properties\": {\n      \"id\": {\n        \"type\": \"string\",\n        \"description\": \"The unique identifier for the widget.\"\n      },\n      \"name\": {\n        \"type\": \"string\",\n        \"description\": \"The person's last name.\"\n      }\n    }\n  }\n}\n
      "},{"location":"tutorials/define_datatype/#example-message-response","title":"Example message response","text":"

      Status: 202 Accepted - a broadcast message has been sent, and on confirmation the new datatype will be created (unless it conflicts with another definition with the same name and version that was ordered onto the blockchain before this definition).

      {\n  \"header\": {\n    \"id\": \"727f7d3a-d07e-4e80-95af-59f8d2ac7531\", // this is the ID of the message, not the data type\n    \"type\": \"definition\", // a special type for system broadcasts\n    \"txtype\": \"batch_pin\", // the broadcast is pinned to the chain\n    \"author\": \"0x0a65365587a65ce44938eab5a765fe8bc6532bdf\", // the local identity\n    \"created\": \"2021-07-01T21:06:26.9997478Z\", // the time the broadcast was sent\n    \"namespace\": \"ff_system\", // the data/message broadcast happens on the system namespace\n    \"topic\": [\n      \"ff_ns_default\" // the namespace itself is used in the topic\n    ],\n    \"tag\": \"ff_define_datatype\", // a tag instructing FireFly to process this as a datatype definition\n    \"datahash\": \"56bd677e3e070ba62f547237edd7a90df5deaaf1a42e7d6435ec66a587c14370\"\n  },\n  \"hash\": \"5b6593720243831ba9e4ad002c550e95c63704b2c9dbdf31135d7d9207f8cae8\",\n  \"state\": \"ready\", // this message is stored locally but not yet confirmed\n  \"data\": [\n    {\n      \"id\": \"7539a0ab-78d8-4d42-b283-7e316b3afed3\", // this data object in the ff_system namespace, contains the schema\n      \"hash\": \"22ba1cdf84f2a4aaffac665c83ff27c5431c0004dc72a9bf031ae35a75ac5aef\"\n    }\n  ]\n}\n
      "},{"location":"tutorials/define_datatype/#lookup-the-confirmed-data-type","title":"Lookup the confirmed data type","text":"

      GET /api/v1/namespaces/default/datatypes?name=widget&version=0.0.2

      [\n  {\n    \"id\": \"421c94b1-66ce-4ba0-9794-7e03c63df29d\", // an ID allocated to the datatype\n    \"message\": \"727f7d3a-d07e-4e80-95af-59f8d2ac7531\", // the message that broadcast this data type\n    \"validator\": \"json\", // the type of validator that this datatype can be used for (this one is JSON Schema)\n    \"namespace\": \"default\", // the namespace of the datatype\n    \"name\": \"widget\", // the name of the datatype\n    \"version\": \"0.0.2\", // the version of the data type\n    \"hash\": \"a4dceb79a21937ca5ea9fa22419011ca937b4b8bc563d690cea3114af9abce2c\", // hash of the schema itself\n    \"created\": \"2021-07-01T21:06:26.983986Z\", // time it was confirmed\n    \"value\": {\n      // the JSON schema itself\n      \"$id\": \"https://example.com/widget.schema.json\",\n      \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n      \"title\": \"Widget\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"description\": \"The unique identifier for the widget.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The person's last name.\"\n        }\n      }\n    }\n  }\n]\n
      "},{"location":"tutorials/define_datatype/#example-private-send-referring-to-the-datatype","title":"Example private send referring to the datatype","text":"

      Once confirmed, a piece of data can be assigned that datatype and all FireFly nodes will verify it against the schema. On a sending node, the data will be rejected at upload/send time if it does not conform. On other nodes, bad data results in a message_rejected event (rather than message_confirmed) for any message that arrives referring to that data.

      POST /api/v1/namespaces/default/send/message

      {\n  \"header\": {\n    \"tag\": \"new_widget_created\",\n    \"topic\": [\"widget_id_12345\"]\n  },\n  \"group\": {\n    \"members\": [\n      {\n        \"identity\": \"org_1\"\n      }\n    ]\n  },\n  \"data\": [\n    {\n      \"datatype\": {\n        \"name\": \"widget\",\n        \"version\": \"0.0.2\"\n      },\n      \"value\": {\n        \"id\": \"widget_id_12345\",\n        \"name\": \"superwidget\"\n      }\n    }\n  ]\n}\n
      "},{"location":"tutorials/define_datatype/#defining-datatypes-using-the-sandbox","title":"Defining Datatypes using the Sandbox","text":"

      You can also define a datatype through the FireFly Sandbox.

      To get started, open up the Web UI and Sanbox UI for at least one of your members. The URLs for these were printed in your terminal when you started your FireFly stack.

      In the sandbox, enter the datatype's name, version, and JSON Schema as seen in the screenshot below.

      {\n  \"name\": \"widget\",\n  \"version\": \"0.0.2\",\n  \"value\": {\n    \"$id\": \"https://example.com/widget.schema.json\",\n    \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n    \"title\": \"Widget\",\n    \"type\": \"object\",\n    \"properties\": {\n      \"id\": {\n        \"type\": \"string\",\n        \"description\": \"The unique identifier for the widget.\"\n      },\n      \"name\": {\n        \"type\": \"string\",\n        \"description\": \"The person's last name.\"\n      }\n    }\n  }\n}\n

      Notice how the data field in the center panel updates in real time.

      Click the blue Run button. This should return a 202 response immediately in the Server Response section and will populate the right hand panel with transaction information after a few seconds.

      Go back to the FireFly UI (the URL for this would have been shown in the terminal when you started the stack) and you'll see that you've successfully defined your datatype

      "},{"location":"tutorials/events/","title":"Listen for events","text":""},{"location":"tutorials/events/#quick-reference","title":"Quick reference","text":"

      Probably the most important aspect of FireFly is that it is an event-driven programming model.

      Parties interact by sending messages and transactions to each other, on and off chain. Once aggregated and confirmed those events drive processing in the other party.

      This allows orchestration of complex multi-party system applications and business processes.

      FireFly provides each party with their own private history, that includes all exchanges outbound and inbound performed through the node into the multi-party system. That includes blockchain backed transactions, as well as completely off-chain message exchanges.

      The event transports are pluggable. The core transports are WebSockets and Webhooks. We focus on WebSockets in this getting started guide.

      Check out the Request/Reply section for more information on Webhooks

      "},{"location":"tutorials/events/#additional-info","title":"Additional info","text":"
      • Key Concepts: Multi-party process flow
      • Reference: coming soon
      "},{"location":"tutorials/events/#websockets-example-1-ephemeral-subscription-with-auto-commit","title":"WebSockets Example 1: Ephemeral subscription with auto-commit","text":"

      The simplest way to get started consuming events, is with an ephemeral WebSocket listener.

      Example connection URL:

      ws://localhost:5000/ws?namespace=default&ephemeral&autoack&filter.events=message_confirmed

      • namespace=default - event listeners are scoped to a namespace
      • ephemeral - listen for events that occur while this connection is active, but do not remember the app instance (great for UIs)
      • autoack- automatically acknowledge each event, so the next event is sent (great for UIs)
      • filter.events=message_confirmed - only listen for events resulting from a message confirmation

      There are a number of browser extensions that let you experiment with WebSockets:

      "},{"location":"tutorials/events/#example-event-payload","title":"Example event payload","text":"

      The events (by default) do not contain the payload data, just the event and referred message. This means the WebSocket payloads are a predictably small size, and the application can use the information in the message to post-filter the event to decide if it needs to download the full data.

      There are server-side filters provided on events as well

      {\n  \"id\": \"8f0da4d7-8af7-48da-912d-187979bf60ed\",\n  \"sequence\": 61,\n  \"type\": \"message_confirmed\",\n  \"namespace\": \"default\",\n  \"reference\": \"9710a350-0ba1-43c6-90fc-352131ce818a\",\n  \"created\": \"2021-07-02T04:37:47.6556589Z\",\n  \"subscription\": {\n    \"id\": \"2426c5b1-ffa9-4f7d-affb-e4e541945808\",\n    \"namespace\": \"default\",\n    \"name\": \"2426c5b1-ffa9-4f7d-affb-e4e541945808\"\n  },\n  \"message\": {\n    \"header\": {\n      \"id\": \"9710a350-0ba1-43c6-90fc-352131ce818a\",\n      \"type\": \"broadcast\",\n      \"txtype\": \"batch_pin\",\n      \"author\": \"0x1d14b65d2dd5c13f6cb6d3dc4aa13c795a8f3b28\",\n      \"created\": \"2021-07-02T04:37:40.1257944Z\",\n      \"namespace\": \"default\",\n      \"topic\": [\"default\"],\n      \"datahash\": \"cd6a09a15ccd3e6ed1d67d69fa4773b563f27f17f3eaad611a2792ba945ca34f\"\n    },\n    \"hash\": \"1b6808d2b95b418e54e7bd34593bfa36a002b841ac42f89d00586dac61e8df43\",\n    \"batchID\": \"16ffc02c-8cb0-4e2f-8b58-a707ad1d1eae\",\n    \"state\": \"confirmed\",\n    \"confirmed\": \"2021-07-02T04:37:47.6548399Z\",\n    \"data\": [\n      {\n        \"id\": \"b3a814cc-17d1-45d5-975e-90279ed2c3fc\",\n        \"hash\": \"9ddefe4435b21d901439e546d54a14a175a3493b9fd8fbf38d9ea6d3cbf70826\"\n      }\n    ]\n  }\n}\n
      "},{"location":"tutorials/events/#download-the-message-and-data","title":"Download the message and data","text":"

      A simple REST API is provided to allow you to download the data associated with the message:

      GET /api/v1/namespaces/default/messages/{id}?data=true

      "},{"location":"tutorials/events/#download-just-the-data-array-associated-with-a-message","title":"Download just the data array associated with a message","text":"

      As you already have the message object in the event delivery, you can query just the array of data objects as follows:

      GET /api/v1/namespaces/default/messages/{id}/data

      "},{"location":"tutorials/events/#websockets-example-2-durable-subscription-for-your-application-with-manual-commit","title":"WebSockets Example 2: Durable subscription for your application, with manual-commit","text":"

      To reliably process messages within your application, you should first set up a subscription.

      A subscription requests that:

      • FireFly keeps a record of the latest event consumed by that application
      • FireFly only delivers one copy of the event to the application, even when there are multiple active connections

      This should be combined with manual acknowledgment of the events, where the application sends a payload such as the following in response to each event it receives (where the id comes from the event it received):

      { \"type\": \"ack\", \"id\": \"617db63-2cf5-4fa3-8320-46150cbb5372\" }\n

      You must send an acknowledgement for every message, or you will stop receiving messages.

      "},{"location":"tutorials/events/#set-up-the-websocket-subscription","title":"Set up the WebSocket subscription","text":"

      Each subscription is scoped to a namespace, and must have a name. You can then choose to perform server-side filtering on the events using regular expressions matched against the information in the event.

      POST /namespaces/default/subscriptions

      {\n  \"transport\": \"websockets\",\n  \"name\": \"app1\",\n  \"filter\": {\n    \"blockchainevent\": {\n      \"listener\": \".*\",\n      \"name\": \".*\"\n    },\n    \"events\": \".*\",\n    \"message\": {\n      \"author\": \".*\",\n      \"group\": \".*\",\n      \"tag\": \".*\",\n      \"topics\": \".*\"\n    },\n    \"transaction\": {\n      \"type\": \".*\"\n    }\n  },\n  \"options\": {\n    \"firstEvent\": \"newest\",\n    \"readAhead\": 50\n  }\n}\n
      "},{"location":"tutorials/events/#connect-to-consume-messages","title":"Connect to consume messages","text":"

      Example connection URL:

      ws://localhost:5000/ws?namespace=default&name=app1

      • namespace=default - event listeners are scoped to a namespace
      • name=app1 - the subscription name
      "},{"location":"tutorials/events/#custom-contract-events","title":"Custom Contract Events","text":"

      If you are interested in learning more about events for custom smart contracts, please see the Working with custom smart contracts section.

      "},{"location":"tutorials/private_send/","title":"Privately send data","text":""},{"location":"tutorials/private_send/#quick-reference","title":"Quick reference","text":"
      • Sends a message to a restricted set of parties
      • The message describes who sent it, to whom, and exactly what data was sent
      • A message has one or more attached pieces of business data
      • Can be sent in-line, uploaded in advanced, or received from other parties
      • Can include smaller JSON payloads suitable for database storage
        • These can be verified against a datatype
      • Can include references to large (multi megabyte/gigabyte) Blob data
      • A group specifies who has visibility to the data
      • The author must be included in the group - auto-added if omitted
      • Can be specified in-line in the message by listing recipients directly
      • Can be referred to by hash
      • Private sends are optionally sequenced via pinning to the blockchain
      • If the send is pinned:
        • The blockchain does not contain any data, just a hash pin
        • Even the ordering context (topic) is obscured in the on-chain data
        • This is true regardless of whether a restricted set of participants are maintaining the ledger, such as in the case of a Fabric Channel.
        • The message should not be considered confirmed (even by the sender) until it has been sequenced via the blockchain and a message_confirmed event occurs
        • Batched for efficiency
        • One batch can pin hundreds of private message sends
        • The batch flows privately off-chain from the sender to each recipient
      • If the send is unpinned:
        • No data is written to the blockchain at all
        • The message is marked confirmed immediately
        • The sender receives a message_confirmed event immediately
        • The other parties in the group get message_confirmed events as soon as the data arrives
      "},{"location":"tutorials/private_send/#additional-info","title":"Additional info","text":"
      • Key Concepts: Private data exchange
      • Swagger: POST /api/v1/namespaces/{ns}/messages/private
      "},{"location":"tutorials/private_send/#example-1-pinned-private-send-of-in-line-string-data","title":"Example 1: Pinned private send of in-line string data","text":"

      POST /api/v1/namespaces/default/messages/private

      {\n  \"data\": [\n    {\n      \"value\": \"a string\"\n    }\n  ],\n  \"group\": {\n    \"members\": [\n      {\n        \"identity\": \"org_1\"\n      }\n    ]\n  }\n}\n
      "},{"location":"tutorials/private_send/#example-message-response","title":"Example message response","text":"

      Status: 202 Accepted - the message is on it's way, but has not yet been confirmed.

      {\n  \"header\": {\n    \"id\": \"c387e9d2-bdac-44cc-9dd5-5e7f0b6b0e58\", // uniquely identifies this private message\n    \"type\": \"private\", // set automatically\n    \"txtype\": \"batch_pin\", // message will be batched, and sequenced via the blockchain\n    \"author\": \"0x0a65365587a65ce44938eab5a765fe8bc6532bdf\", // set automatically in this example to the node org\n    \"created\": \"2021-07-02T02:37:13.4642085Z\", // set automatically\n    \"namespace\": \"default\", // the 'default' namespace was set in the URL\n    // The group hash is calculated from the resolved list of group participants.\n    // The first time a group is used, the participant list is sent privately along with the\n    // batch of messages in a `groupinit` message.\n    \"group\": \"2aa5297b5eed0c3a612a667c727ca38b54fb3b5cc245ebac4c2c7abe490bdf6c\",\n    \"topics\": [\n      \"default\" // the default topic that the message is published on, if no topic is set\n    ],\n    // datahash is calculated from the data array below\n    \"datahash\": \"24b2d583b87eda952fa00e02c6de4f78110df63218eddf568f0240be3d02c866\"\n  },\n  \"hash\": \"423ad7d99fd30ff679270ad2b6b35cdd85d48db30bafb71464ca1527ce114a60\", // hash of the header\n  \"state\": \"ready\", // this message is stored locally but not yet confirmed\n  \"data\": [\n    // one item of data was stored\n    {\n      \"id\": \"8d8635e2-7c90-4963-99cc-794c98a68b1d\", // can be used to query the data in the future\n      \"hash\": \"c95d6352f524a770a787c16509237baf7eb59967699fb9a6d825270e7ec0eacf\" // sha256 hash of `\"a string\"`\n    }\n  ]\n}\n
      "},{"location":"tutorials/private_send/#example-2-unpinned-private-send-of-in-line-string-data","title":"Example 2: Unpinned private send of in-line string data","text":"

      Set header.txtype: \"none\" to disable pinning of the private message send to the blockchain. The message is sent immediately (no batching) over the private data exchange.

      POST /api/v1/namespaces/default/messages/private

      {\n  \"header\": {\n    \"txtype\": \"none\"\n  },\n  \"data\": [\n    {\n      \"value\": \"a string\"\n    }\n  ],\n  \"group\": {\n    \"members\": [\n      {\n        \"identity\": \"org_1\"\n      }\n    ]\n  }\n}\n
      "},{"location":"tutorials/private_send/#example-3-inline-object-data-to-a-topic-no-datatype-verification","title":"Example 3: Inline object data to a topic (no datatype verification)","text":"

      It is very good practice to set a tag and topic in each of your messages:

      • tag should tell the apps receiving the private send (including the local app), what to do when it receives the message. Its the reason for the send - an application specific type for the message.
      • topic should be something like a well known identifier that relates to the information you are publishing. It is used as an ordering context, so all sends on a given topic are assured to be processed in order.

      POST /api/v1/namespaces/default/messages/private

      {\n  \"header\": {\n    \"tag\": \"new_widget_created\",\n    \"topics\": [\"widget_id_12345\"]\n  },\n  \"group\": {\n    \"members\": [\n      {\n        \"identity\": \"org_1\"\n      }\n    ]\n  },\n  \"data\": [\n    {\n      \"value\": {\n        \"id\": \"widget_id_12345\",\n        \"name\": \"superwidget\"\n      }\n    }\n  ]\n}\n
      "},{"location":"tutorials/private_send/#notes-on-why-setting-a-topic-is-important","title":"Notes on why setting a topic is important","text":"

      The FireFly aggregator uses the topic (obfuscated on chain) to determine if a message is the next message in an in-flight sequence for any groups the node is involved in. If it is, then that message must receive all off-chain private data and be confirmed before any subsequent messages can be confirmed on the same sequence.

      So if you use the same topic in every message, then a single failed send on one topic blocks delivery of all messages between those parties, until the missing data arrives.

      Instead it is best practice to set the topic on your messages to value that identifies an ordered stream of business processing. Some examples:

      • A long-running business process instance identifier assigned at initiation
      • A real-world business transaction identifier used off-chain
      • The agreed identifier of an asset you are attaching a stream of evidence to
      • An NFT identifier that is assigned to an asset (digital twin scenarios)
      • An agreed primary key for a data resource being reconciled between multiple parties

      The topic field is an array, because there are cases (such as merging two identifiers) where you need a message to be deterministically ordered across multiple sequences. However, this is an advanced use case and you are likely to set a single topic on the vast majority of your messages.

      "},{"location":"tutorials/private_send/#example-3-upload-a-blob-with-metadata-and-send-privately","title":"Example 3: Upload a blob with metadata and send privately","text":"

      Here we make two API calls.

      1. Create the data object explicitly, using a multi-part form upload

      2. You can also just post JSON to this endpoint

      3. Privately send a message referring to that data

      4. The Blob is sent privately to each party

      5. A pin goes to the blockchain
      6. The metadata goes into a batch with the message
      "},{"location":"tutorials/private_send/#multipart-form-post-of-a-file","title":"Multipart form post of a file","text":"

      Example curl command (Linux/Mac) to grab an image from the internet, and pipe it into a multi-part form post to FireFly.

      Note we use autometa to cause FireFly to automatically add the filename, and size, to the JSON part of the data object for us.

      curl -sLo - https://github.com/hyperledger/firefly/raw/main/docs/firefly_logo.png \\\n | curl --form autometa=true --form file=@- \\\n   http://localhost:5000/api/v1/namespaces/default/data\n
      "},{"location":"tutorials/private_send/#example-data-response-from-blob-upload","title":"Example data response from Blob upload","text":"

      Status: 200 OK - your data is uploaded to your local FireFly node

      At this point the data has not be shared with anyone else in the network

      {\n  // A uniquely generated ID, we can refer to when sending this data to other parties\n  \"id\": \"97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8\",\n  \"validator\": \"json\", // the \"value\" part is JSON\n  \"namespace\": \"default\", // from the URL\n  // The hash is a combination of the hash of the \"value\" metadata, and the\n  // hash of the blob\n  \"hash\": \"997af6a9a19f06cc8a46872617b8bf974b106f744b2e407e94cc6959aa8cf0b8\",\n  \"created\": \"2021-07-01T20:20:35.5462306Z\",\n  \"value\": {\n    \"filename\": \"-\", // dash is how curl represents the filename for stdin\n    \"size\": 31185 // the size of the blob data\n  },\n  \"blob\": {\n    // A hash reference to the blob\n    \"hash\": \"86e6b39b04b605dd1b03f70932976775962509d29ae1ad2628e684faabe48136\"\n  }\n}\n
      "},{"location":"tutorials/private_send/#send-the-uploaded-data-privately","title":"Send the uploaded data privately","text":"

      Just include a reference to the id returned from the upload.

      POST /api/v1/namespaces/default/messages/private

      {\n  \"data\": [\n    {\n      \"id\": \"97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8\"\n    }\n  ],\n  \"group\": {\n    \"members\": [\n      {\n        \"identity\": \"org_1\"\n      }\n    ]\n  }\n}\n
      "},{"location":"tutorials/private_send/#sending-private-messages-using-the-sandbox","title":"Sending Private Messages using the Sandbox","text":"

      All of the functionality discussed above can be done through the FireFly Sandbox.

      To get started, open up the Web UI and Sanbox UI for at least one of your members. The URLs for these were printed in your terminal when you started your FireFly stack.

      Make sure to expand the \"Send a Private Message\" section. Enter your message into the message field as seen in the screenshot below. Because we are sending a private message, make sure you're in the \"Send a Private Message\" section and that you choose a message recipient

      Notice how the data field in the center panel updates in real time as you update the message you wish to send.

      Click the blue Run button. This should return a 202 response immediately in the Server Response section and will populate the right hand panel with transaction information after a few seconds.

      Go back to the FireFly UI (the URL for this would have been shown in the terminal when you started the stack) and you'll see your successful blockchain transaction. Compare the \"Recent Network Changes\" widget With private messages, your

      "},{"location":"tutorials/query_messages/","title":"Explore messages","text":""},{"location":"tutorials/query_messages/#quick-reference","title":"Quick reference","text":"

      The FireFly Explorer is a great way to view the messages sent and received by your node.

      Just open /ui on your FireFly node to access it.

      This builds on the APIs to query and filter messages, described below

      "},{"location":"tutorials/query_messages/#additional-info","title":"Additional info","text":"
      • Reference: API Query Syntax
      • Swagger: GET /api/v1/namespaces/{ns}/messages
      "},{"location":"tutorials/query_messages/#example-1-query-confirmed-messages","title":"Example 1: Query confirmed messages","text":"

      These are the messages ready to be processed in your application. All data associated with the message (including Blob attachments) is available, and if they are sequenced by the blockchain, then those blockchain transactions are complete.

      The order in which you process messages should be determined by absolute order of message_confirmed events - queryable via the events collection, or through event listeners (discussed next in the getting started guide).

      That is because messages are ordered by timestamp, which is potentially subject to adjustments of the clock. Whereas events are ordered by the insertion order into the database, and as such changes in the clock do not affect the order.

      GET /api/v1/namespaces/{ns}/messages?pending=false&limit=100

      "},{"location":"tutorials/query_messages/#example-response","title":"Example response","text":"
      [\n  {\n    \"header\": {\n      \"id\": \"423302bb-abfc-4d64-892d-38b2fdfe1549\",\n      \"type\": \"private\", // this was a private send\n      \"txtype\": \"batch_pin\", // pinned in a batch to the blockchain\n      \"author\": \"0x1d14b65d2dd5c13f6cb6d3dc4aa13c795a8f3b28\",\n      \"created\": \"2021-07-02T03:09:40.2606238Z\",\n      \"namespace\": \"default\",\n      \"group\": \"2aa5297b5eed0c3a612a667c727ca38b54fb3b5cc245ebac4c2c7abe490bdf6c\", // sent to this group\n      \"topic\": [\"widget_id_12345\"],\n      \"tag\": \"new_widget_created\",\n      \"datahash\": \"551dd261e80ce76b1908c031cff8a707bd76376d6eddfdc1040c2ed6481ec8dd\"\n    },\n    \"hash\": \"bf2ca94db8c31bae3cae974bb626fa822c6eee5f572d274d72281e72537b30b3\",\n    \"batch\": \"f7ac773d-885a-4d73-ac6b-c09f5346a051\", // the batch ID that pinned this message to the chain\n    \"state\": \"confirmed\", // message is now confirmed\n    \"confirmed\": \"2021-07-02T03:09:49.9207211Z\", // timestamp when this node confirmed the message\n    \"data\": [\n      {\n        \"id\": \"914eed77-8789-451c-b55f-ba9570a71eba\",\n        \"hash\": \"9541cabc750c692e553a421a6c5c07ebcae820774d2d8d0b88fac2a231c10bf2\"\n      }\n    ],\n    \"pins\": [\n      // A \"pin\" is an identifier that is used by FireFly for sequencing messages.\n      //\n      // For private messages, it is an obfuscated representation of the sequence of this message,\n      // on a topic, within this group, from this sender. There will be one pin per topic. You will find these\n      // pins in the blockchain transaction, as well as the off-chain data.\n      // Each one is unqiue, and without the group hash, very difficult to correlate - meaning\n      // the data on-chain provides a high level of privacy.\n      //\n      // Note for broadcast (which does not require obfuscation), it is simply a hash of the topic.\n      // So you will see the same pin for all messages on the same topic.\n      \"ee56de6241522ab0ad8266faebf2c0f1dc11be7bd0c41d847998135b45685b77\"\n    ]\n  }\n]\n
      "},{"location":"tutorials/query_messages/#example-2-query-all-messages","title":"Example 2: Query all messages","text":"

      The natural sort order the API will return for messages is:

      • Pending messages first
      • In descending created timestamp order
      • Confirmed messages
      • In descending confirmed timestamp order

      GET /api/v1/namespaces/{ns}/messages

      "},{"location":"tutorials/rotate_dx_certs/","title":"Rotate DX Certs","text":""},{"location":"tutorials/rotate_dx_certs/#quick-reference","title":"Quick reference","text":"

      At some point you may need to rotate certificates on your Data Exchange nodes. FireFly provides an API to update a node identity, but there are a few prerequisite steps to load a new certificate on the Data Exchange node itself. This guide will walk you through that process. For more information on different types of identities in FireFly, please see the Reference page on Identities.

      NOTE: This guide assumes that you are working in a local development environment that was set up with the Getting Started Guide. For a production deployment, the exact process to accomplish each step may be different. For example, you may generate your certs with a CA, or in some other manner. But the high level steps remain the same.

      The high level steps to the process (described in detail below) are:

      • Generate new certs and keys
      • Install new certs and keys on each Data Exchange filesystem
      • Remove old certs from the peer-certs directory
      • Restart each Data Exchange process
      • PATCH the node identity using the FireFly API
      "},{"location":"tutorials/rotate_dx_certs/#generate-new-certs-and-keys","title":"Generate new certs and keys","text":"

      To generate a new cert, we're going to use a self signed certificate generated by openssl. This is how the FireFly CLI generated the original cert that was used when it created your stack.

      For the first member of a FireFly stack you run:

      openssl req -new -x509 -nodes -days 365 -subj /CN=dataexchange_0/O=member_0 -keyout key.pem -out cert.pem\n

      For the second member:

      openssl req -new -x509 -nodes -days 365 -subj /CN=dataexchange_1/O=member_1 -keyout key.pem -out cert.pem\n

      NOTE: If you perform these two commands in the same directory, the second one will overwrite the output of the first. It is advisable to run them in separate directories, or copy the cert and key to the Data Exchange file system (the next step below) before generating the next cert / key pair.

      "},{"location":"tutorials/rotate_dx_certs/#install-the-new-certs-on-each-data-exchange-file-system","title":"Install the new certs on each Data Exchange File System","text":"

      For a dev environment created with the FireFly CLI, the certificate and key will be located in the /data directory on the Data Exchange node's file system. You can use the docker cp command to copy the file to the correct location, then set the file ownership correctly.

      docker cp cert.pem dev_dataexchange_0:/data/cert.pem\ndocker exec dev_dataexchange_0 chown root:root /data/cert.pem\n

      NOTE: If your environment is not called dev you may need to change the beginning of the container name in the Docker commands listed in this guide.

      "},{"location":"tutorials/rotate_dx_certs/#remove-old-certs-from-the-peer-certs-directory","title":"Remove old certs from the peer-certs directory","text":"

      To clear out the old certs from the first Data Exchange node run:

      docker exec dev_dataexchange_0 sh -c \"rm /data/peer-certs/*.pem\"\n

      To clear out the old certs from the second Data Exchange node run:

      docker exec dev_dataexchange_1 sh -c \"rm /data/peer-certs/*.pem\"\n
      "},{"location":"tutorials/rotate_dx_certs/#restart-each-data-exchange-process","title":"Restart each Data Exchange process","text":"

      To restart your Data Exchange processes, run:

      docker restart dev_dataexchange_0\n
      docker restart dev_dataexchange_1\n
      "},{"location":"tutorials/rotate_dx_certs/#patch-the-node-identity-using-the-firefly-api","title":"PATCH the node identity using the FireFly API","text":"

      The final step is to broadcast the new cert for each node, from the FireFly node that will be using that cert. You will need to lookup the UUID for the node identity in order to update it.

      "},{"location":"tutorials/rotate_dx_certs/#request","title":"Request","text":"

      GET http://localhost:5000/api/v1/namespaces/default/identities

      "},{"location":"tutorials/rotate_dx_certs/#response","title":"Response","text":"

      In the JSON response body, look for the node identity that belongs on this FireFly instance. Here is the node identity from an example stack:

      ...\n    {\n        \"id\": \"20da74a2-d4e6-4eaf-8506-e7cd205d8254\",\n        \"did\": \"did:firefly:node/node_2b9630\",\n        \"type\": \"node\",\n        \"parent\": \"41e93d92-d0da-4e5a-9cee-adf33f017a60\",\n        \"namespace\": \"default\",\n        \"name\": \"node_2b9630\",\n        \"profile\": {\n            \"cert\": \"-----BEGIN CERTIFICATE-----\\nMIIC1DCCAbwCCQDa9x3wC7wepDANBgkqhkiG9w0BAQsFADAsMRcwFQYDVQQDDA5k\\nYXRhZXhjaGFuZ2VfMDERMA8GA1UECgwIbWVtYmVyXzAwHhcNMjMwMjA2MTQwMTEy\\nWhcNMjQwMjA2MTQwMTEyWjAsMRcwFQYDVQQDDA5kYXRhZXhjaGFuZ2VfMDERMA8G\\nA1UECgwIbWVtYmVyXzAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJ\\nSgtJw99V7EynvqxWdJkeiUlOg3y+JtJlhxGC//JLp+4sYCtOMriULNf5ouImxniR\\nO2vEd+LNdMuREN4oZdUHtJD4MM7lOFw/0ICNEPJ+oEoUTzOC0OK68sA+OCybeS2L\\nmLBu4yvWDkpufR8bxBJfBGarTAFl36ao1Eoogn4m9gmVrX+V5SOKUhyhlHZFkZNb\\ne0flwQmDMKg6qAbHf3j8cnrrZp26n68IGjwqySPFIRLFSz28zzMYtyzo4b9cF9NW\\nGxusMHsExX5gzlTjNacGx8Tlzwjfolt23D+WHhZX/gekOsFiV78mVjgJanE2ls6D\\n5ZlXi5iQSwm8dlmo9RxFAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAAwr4aAvQnXG\\nkO3xNO+7NGzbb/Nyck5udiQ3RmlZBEJSUsPCsWd4SBhH7LvgbT9ECuAEjgH+2Ip7\\nusd8CROr3sTb9t+7Krk+ljgZirkjq4j/mIRlqHcBJeBtylOz2p0oPsitlI8Yea2D\\nQ4/Xru6txUKNK+Yut3G9qvg/vm9TAwkNHSthzb26bI7s6lx9ZSuFbbG6mR+RQ+8A\\nU4AX1DVo5QyTwSi1lp0+pKFEgtutmWGYn8oT/ya+OLzj+l7Ul4HE/mEAnvECtA7r\\nOC8AEjC5T4gUsLt2IXW9a7lCgovjHjHIySQyqsdYBjkKSn5iw2LRovUWxT1GBvwH\\nFkTvCpHhgko=\\n-----END CERTIFICATE-----\\n\",\n            \"endpoint\": \"https://dataexchange_0:3001\",\n            \"id\": \"member_0/node_2b9630\"\n        },\n        \"messages\": {\n            \"claim\": \"95da690b-bb05-4873-9478-942f607f363a\",\n            \"verification\": null,\n            \"update\": null\n        },\n        \"created\": \"2023-02-06T14:02:50.874319382Z\",\n        \"updated\": \"2023-02-06T14:02:50.874319382Z\"\n    },\n...\n

      Copy the UUID from the id field, and add that to the PATCH request. In this case it is 20da74a2-d4e6-4eaf-8506-e7cd205d8254.

      "},{"location":"tutorials/rotate_dx_certs/#request_1","title":"Request","text":"

      Now we will send the new certificate to FireFly. Put the contents of your cert.pem file in the cert field.

      NOTE: Usually the cert.pem file will contain line breaks which will not be handled correctly by JSON parsers. Be sure to replace those line breaks with \\n so that the cert field is all on one line as shown below.

      PATCH http://localhost:5000/api/v1/namespaces/default/identities/20da74a2-d4e6-4eaf-8506-e7cd205d8254

      {\n  \"profile\": {\n    \"cert\": \"-----BEGIN CERTIFICATE-----\\nMIIC1DCCAbwCCQDeKjPt3siRHzANBgkqhkiG9w0BAQsFADAsMRcwFQYDVQQDDA5k\\nYXRhZXhjaGFuZ2VfMDERMA8GA1UECgwIbWVtYmVyXzAwHhcNMjMwMjA2MTYxNTU3\\nWhcNMjQwMjA2MTYxNTU3WjAsMRcwFQYDVQQDDA5kYXRhZXhjaGFuZ2VfMDERMA8G\\nA1UECgwIbWVtYmVyXzAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCy\\nEJaqDskxhkPHmCqj5Mxq+9QX1ec19fulh9Zvp8dLA6bfeg4fdQ9Ha7APG6w/0K8S\\nEaXOflSpXb0oKMe42amIqwvQaqTOA97HIe5R2HZxA1RWqXf+AueowWgI4crxr2M0\\nZCiXHyiZKpB8nzO+bdO9AKeYnzbhCsO0gq4LPOgpPjYkHPKhabeMVZilZypDVOGk\\nLU+ReQoVEZ+P+t0B/9v+5IQ2yyH41n5dh6lKv4mIaC1OBtLc+Pd6DtbRb7pijkgo\\n+LyqSdl24RHhSgZcTtMQfoRIVzvMkhF5SiJczOC4R8hmt62jtWadO4D5ZtJ7N37/\\noAG/7KJO4HbByVf4xOcDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKWbQftV05Fc\\niwVtZpyvP2l4BvKXvMOyg4GKcnBSZol7UwCNrjwYSjqgqyuedTSZXHNhGFxQbfAC\\n94H25bDhWOfd7JH2D7E6RRe3eD9ouDnrt+de7JulsNsFK23IM4Nz5mRhRMVy/5p5\\n9yrsdW+5MXKWgz9569TIjiciCf0JqB7iVPwRrQyz5gqOiPf81PlyaMDeaH9wXtra\\n/1ZRipXiGiNroSPFrQjIVLKWdmnhWKWjFXsiijdSV/5E+8dBb3t//kEZ8UWfBrc4\\nfYVuZ8SJtm2ZzBmit3HFatDlFTE8PanRf/UDALUp4p6YKJ8NE2T8g/uDE0ee1pnF\\nIDsrC1GX7rs=\\n-----END CERTIFICATE-----\\n\",\n    \"endpoint\": \"https://dataexchange_0:3001\",\n    \"id\": \"member_0\"\n  }\n}\n
      "},{"location":"tutorials/rotate_dx_certs/#response_1","title":"Response","text":"
      {\n  \"id\": \"20da74a2-d4e6-4eaf-8506-e7cd205d8254\",\n  \"did\": \"did:firefly:node/node_2b9630\",\n  \"type\": \"node\",\n  \"parent\": \"41e93d92-d0da-4e5a-9cee-adf33f017a60\",\n  \"namespace\": \"default\",\n  \"name\": \"node_2b9630\",\n  \"profile\": {\n    \"cert\": \"-----BEGIN CERTIFICATE-----\\nMIIC1DCCAbwCCQDeKjPt3siRHzANBgkqhkiG9w0BAQsFADAsMRcwFQYDVQQDDA5k\\nYXRhZXhjaGFuZ2VfMDERMA8GA1UECgwIbWVtYmVyXzAwHhcNMjMwMjA2MTYxNTU3\\nWhcNMjQwMjA2MTYxNTU3WjAsMRcwFQYDVQQDDA5kYXRhZXhjaGFuZ2VfMDERMA8G\\nA1UECgwIbWVtYmVyXzAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCy\\nEJaqDskxhkPHmCqj5Mxq+9QX1ec19fulh9Zvp8dLA6bfeg4fdQ9Ha7APG6w/0K8S\\nEaXOflSpXb0oKMe42amIqwvQaqTOA97HIe5R2HZxA1RWqXf+AueowWgI4crxr2M0\\nZCiXHyiZKpB8nzO+bdO9AKeYnzbhCsO0gq4LPOgpPjYkHPKhabeMVZilZypDVOGk\\nLU+ReQoVEZ+P+t0B/9v+5IQ2yyH41n5dh6lKv4mIaC1OBtLc+Pd6DtbRb7pijkgo\\n+LyqSdl24RHhSgZcTtMQfoRIVzvMkhF5SiJczOC4R8hmt62jtWadO4D5ZtJ7N37/\\noAG/7KJO4HbByVf4xOcDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKWbQftV05Fc\\niwVtZpyvP2l4BvKXvMOyg4GKcnBSZol7UwCNrjwYSjqgqyuedTSZXHNhGFxQbfAC\\n94H25bDhWOfd7JH2D7E6RRe3eD9ouDnrt+de7JulsNsFK23IM4Nz5mRhRMVy/5p5\\n9yrsdW+5MXKWgz9569TIjiciCf0JqB7iVPwRrQyz5gqOiPf81PlyaMDeaH9wXtra\\n/1ZRipXiGiNroSPFrQjIVLKWdmnhWKWjFXsiijdSV/5E+8dBb3t//kEZ8UWfBrc4\\nfYVuZ8SJtm2ZzBmit3HFatDlFTE8PanRf/UDALUp4p6YKJ8NE2T8g/uDE0ee1pnF\\nIDsrC1GX7rs=\\n-----END CERTIFICATE-----\\n\",\n    \"endpoint\": \"https://dataexchange_0:3001\",\n    \"id\": \"member_0\"\n  },\n  \"messages\": {\n    \"claim\": \"95da690b-bb05-4873-9478-942f607f363a\",\n    \"verification\": null,\n    \"update\": \"5782cd7c-7643-4d7f-811b-02765a7aaec5\"\n  },\n  \"created\": \"2023-02-06T14:02:50.874319382Z\",\n  \"updated\": \"2023-02-06T14:02:50.874319382Z\"\n}\n

      Repeat these requests for the second member/node running on port 5001. After that you should be back up and running with your new certs, and you should be able to send private messages again.

      "},{"location":"tutorials/chains/","title":"Connecting to other blockchains","text":"

      Write interesting stuff here

      "},{"location":"tutorials/chains/arbitrum/","title":"Arbitrum","text":"

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the Arbitrum Nitro Goerli Rollup Testnet.

      "},{"location":"tutorials/chains/arbitrum/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      "},{"location":"tutorials/chains/arbitrum/#create-an-evmconnectyml-config-file","title":"Create an evmconnect.yml config file","text":"

      In order to connect to the Binance Smart Chain testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      confirmations:\n  required: 4 # choose the number of confirmations you require\npolicyengine.simple:\n  fixedGasPrice: null\n  gasOracle:\n    mode: connector\n

      For more info about confirmations, see Public vs. Permissioned

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      "},{"location":"tutorials/chains/arbitrum/#creating-a-new-stack","title":"Creating a new stack","text":"

      To create a local FireFly development stack and connect it to the Arbitrum testnet, we will use command line flags to customize the following settings:

      • Create a new Ethereum based stack named arbitrum with 1 member
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • See the Arbitrum docs and select an HTTPS RPC endpoint.
      • Set the chain ID to 421613 (the correct ID for the Binance Smart Chain testnet)
      • Merge the custom config created above with the generated evmconnect config file

      To do this, run the following command:

      ff init ethereum arbitrum 1 \\\n    --multiparty=false \\\n    -n remote-rpc \\\n    --remote-node-url <selected RPC endpoint> \\\n    --chain-id 421613 \\\n    --connector-config ~/Desktop/evmconnect.yml\n
      "},{"location":"tutorials/chains/arbitrum/#start-the-stack","title":"Start the stack","text":"

      Now you should be able to start your stack by running:

      ff start arbitrum\n

      After some time it should print out the following:

      Web UI for member '0': http://127.0.0.1:5000/ui\nSandbox UI for member '0': http://127.0.0.1:5109\n\n\nTo see logs for your stack run:\n\nff logs arbitrum\n
      "},{"location":"tutorials/chains/arbitrum/#get-some-aribitrum","title":"Get some Aribitrum","text":"

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas.

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      ff accounts list arbitrum\n[\n  {\n    \"address\": \"0x225764d1be1f137be23ddfc426b819512b5d0f3e\",\n    \"privateKey\": \"...\"\n  }\n]\n

      Copy the address listed in the output from this command. Next, check out this article https://medium.com/offchainlabs/new-g%C3%B6rli-testnet-and-getting-rinkeby-ready-for-nitro-3ff590448053 and follow the instructions to send a tweet to the developers. Make sure to change the address to the one in the CLI.

      "},{"location":"tutorials/chains/arbitrum/#confirm-the-transaction-on-bscscan","title":"Confirm the transaction on Bscscan","text":"

      You should be able to go lookup your account on https://goerli-rollup-explorer.arbitrum.io/ and see that you now have a balance of 0.001 ether. Simply paste in your account address to search for it.

      "},{"location":"tutorials/chains/arbitrum/#use-the-public-testnet","title":"Use the public testnet","text":"

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Binance Smart Chain, please see the Arbitrum docs for instructions using various tools.

      "},{"location":"tutorials/chains/avalanche/","title":"Aavalanche","text":"

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the Avalanche C-Chain Fuji testnet.

      "},{"location":"tutorials/chains/avalanche/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      "},{"location":"tutorials/chains/avalanche/#create-an-evmconnectyml-config-file","title":"Create an evmconnect.yml config file","text":"

      In order to connect to the Avalanche testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      confirmations:\n  required: 4 # choose the number of confirmations you require\npolicyengine.simple:\n  fixedGasPrice: null\n  gasOracle:\n    mode: connector\n

      For more info about confirmations, see Public vs. Permissioned

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      "},{"location":"tutorials/chains/avalanche/#creating-a-new-stack","title":"Creating a new stack","text":"

      To create a local FireFly development stack and connect it to the Avalanche Fuji testnet, we will use command line flags to customize the following settings:

      • Create a new Ethereum based stack named avalanche with 1 member
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • See the Avalanche docs and select and HTTPS RPC endpoint.
      • Set the chain ID to 43113 (the correct ID for the Avalanche Fuji testnet)
      • Merge the custom config created above with the generated evmconnect config file

      To do this, run the following command:

      ff init ethereum avalanche 1 \\\n    --multiparty=false \\\n    -n remote-rpc \\\n    --remote-node-url <selected RPC endpoint> \\\n    --chain-id 43113 \\\n    --connector-config ~/Desktop/evmconnect.yml\n
      "},{"location":"tutorials/chains/avalanche/#start-the-stack","title":"Start the stack","text":"

      Now you should be able to start your stack by running:

      ff start avalanche\n

      After some time it should print out the following:

      Web UI for member '0': http://127.0.0.1:5000/ui\nSandbox UI for member '0': http://127.0.0.1:5109\n\n\nTo see logs for your stack run:\n\nff logs avalanche\n
      "},{"location":"tutorials/chains/avalanche/#get-some-avax","title":"Get some AVAX","text":"

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. A testnet faucet can give us some AVAX, the native token for Avalanche.

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      ff accounts list avalanche\n[\n  {\n    \"address\": \"0x6688e14f719766cc2a5856ccef63b069703d86f7\",\n    \"privateKey\": \"...\"\n  }\n]\n

      Copy the address listed in the output from this command. Go to https://faucet.avax.network/ and paste the address in the form. Make sure that the network you select is Fuji (C-Chain). Click the Request 2 AVAX button.

      "},{"location":"tutorials/chains/avalanche/#confirm-the-transaction-on-snowtrace","title":"Confirm the transaction on Snowtrace","text":"

      You should be able to go lookup your account on Snowtrace for the Fuji testnet and see that you now have a balance of 2 AVAX. Simply paste in your account address or transaction ID to search for it.

      "},{"location":"tutorials/chains/avalanche/#use-the-public-testnet","title":"Use the public testnet","text":"

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Avalanche, please see the Avalanche docs for instructions using various tools.

      "},{"location":"tutorials/chains/binance_smart_chain/","title":"Binance Smart Chain","text":"

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Binance Smart Chain testnet.

      "},{"location":"tutorials/chains/binance_smart_chain/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      "},{"location":"tutorials/chains/binance_smart_chain/#create-an-evmconnectyml-config-file","title":"Create an evmconnect.yml config file","text":"

      In order to connect to the Binance Smart Chain testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      confirmations:\n  required: 4 # choose the number of confirmations you require\npolicyengine.simple:\n  fixedGasPrice: null\n  gasOracle:\n    mode: connector\n

      For more info about confirmations, see Public vs. Permissioned

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      "},{"location":"tutorials/chains/binance_smart_chain/#creating-a-new-stack","title":"Creating a new stack","text":"

      To create a local FireFly development stack and connect it to the Binance Smart Chain testnet, we will use command line flags to customize the following settings:

      • Create a new Ethereum based stack named bsc with 1 member
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • See the Binance BscScan docs and select an HTTPS RPC endpoint.
      • Set the chain ID to 97 (the correct ID for the Binance Smart Chain testnet)
      • Merge the custom config created above with the generated evmconnect config file

      To do this, run the following command:

      ff init ethereum bsc 1 \\\n    --multiparty=false \\\n    -n remote-rpc \\\n    --remote-node-url <selected RPC endpoint> \\\n    --chain-id 97 \\\n    --connector-config ~/Desktop/evmconnect.yml\n
      "},{"location":"tutorials/chains/binance_smart_chain/#start-the-stack","title":"Start the stack","text":"

      Now you should be able to start your stack by running:

      ff start bsc\n

      After some time it should print out the following:

      Web UI for member '0': http://127.0.0.1:5000/ui\nSandbox UI for member '0': http://127.0.0.1:5109\n\n\nTo see logs for your stack run:\n\nff logs bsc\n
      "},{"location":"tutorials/chains/binance_smart_chain/#get-some-bnb","title":"Get some BNB","text":"

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. A testnet faucet can give us some BNB, the native token for Binance Smart Chain.

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      ff accounts list bsc\n[\n  {\n    \"address\": \"0x235461d246ab95d367925b4e91bd2755a921fdd8\",\n    \"privateKey\": \"...\"\n  }\n]\n

      Copy the address listed in the output from this command. Go to https://testnet.binance.org/faucet-smart and paste the address in the form. Go through the CAPTCH form and click the Give me BNB button.

      "},{"location":"tutorials/chains/binance_smart_chain/#confirm-the-transaction-on-bscscan","title":"Confirm the transaction on Bscscan","text":"

      You should be able to go lookup your account on Bscscan for the testnet https://testnet.bscscan.com/ and see that you now have a balance of 0.5 BNB. Simply paste in your account address to search for it.

      "},{"location":"tutorials/chains/binance_smart_chain/#use-the-public-testnet","title":"Use the public testnet","text":"

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Binance Smart Chain, please see the Binance docs for instructions using various tools.

      "},{"location":"tutorials/chains/fabric_test_network/","title":"Work with Fabric-Samples Test Network","text":"

      This guide will walk you through the steps to create a local FireFly development environment and connect it to the Fabric Test Network from the Fabric Samples repo

      "},{"location":"tutorials/chains/fabric_test_network/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      "},{"location":"tutorials/chains/fabric_test_network/#start-fabric-test-network-with-fabric-ca","title":"Start Fabric Test Network with Fabric CA","text":"

      For details about the Fabric Test Network and how to set it up, please see the Fabric Samples repo. The one important detail is that you need to start up the Test Network with a Fabric CA. This is because Fabconnect will use the Fabric CA to create an identity for its FireFly node to use. To start up the network with the CA, and create a new channel called mychannel run:

      ./network.sh up createChannel -ca\n

      NOTE: If you already have the Test Network running, you will need to bring it down first, by running: ./network.sh down

      "},{"location":"tutorials/chains/fabric_test_network/#deploy-firefly-chaincode","title":"Deploy FireFly Chaincode","text":"

      Next we will need to package and deploy the FireFly chaincode to mychannel in our new network. For more details on packaging and deploying chaincode, please see the Fabric chaincode lifecycle documentation. If you already have the FireFly repo cloned in the same directory as your fabric-samples repo, you can run the following script from your test-network directory:

      NOTE: This script is provided as a convenience only, and you are not required to use it. You are welcome to package and deploy the chaincode to your test-network any way you would like.

      #!/bin/bash\n\n# This file should be run from the test-network directory in the fabric-samples repo\n# It also assumes that you have the firefly repo checked out at the same level as the fabric-samples directory\n# It also assumes that the test-network is up and running and a channel named 'mychannel' has already been created\n\ncd ../../firefly/smart_contracts/fabric/firefly-go\nGO111MODULE=on go mod vendor\ncd ../../../../fabric-samples/test-network\n\nexport PATH=${PWD}/../bin:$PATH\nexport FABRIC_CFG_PATH=$PWD/../config/\n\npeer lifecycle chaincode package firefly.tar.gz --path ../../firefly/smart_contracts/fabric/firefly-go --lang golang --label firefly_1.0\n\nexport CORE_PEER_TLS_ENABLED=true\nexport CORE_PEER_LOCALMSPID=\"Org1MSP\"\nexport CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt\nexport CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp\nexport CORE_PEER_ADDRESS=localhost:7051\n\npeer lifecycle chaincode install firefly.tar.gz\n\nexport CORE_PEER_LOCALMSPID=\"Org2MSP\"\nexport CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt\nexport CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp\nexport CORE_PEER_ADDRESS=localhost:9051\n\npeer lifecycle chaincode install firefly.tar.gz\n\nexport CC_PACKAGE_ID=$(peer lifecycle chaincode queryinstalled --output json | jq --raw-output \".installed_chaincodes[0].package_id\")\n\npeer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name firefly --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile \"${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem\"\n\nexport CORE_PEER_LOCALMSPID=\"Org1MSP\"\nexport CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp\nexport CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt\nexport CORE_PEER_ADDRESS=localhost:7051\n\npeer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name firefly --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile \"${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem\"\n\npeer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name firefly --version 1.0 --sequence 1 --tls --cafile \"${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem\" --peerAddresses localhost:7051 --tlsRootCertFiles \"${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt\" --peerAddresses localhost:9051 --tlsRootCertFiles \"${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt\"\n
      "},{"location":"tutorials/chains/fabric_test_network/#create-ccpyml-documents","title":"Create ccp.yml documents","text":"

      Each FireFly Supernode (specifically the Fabconnect instance in each) will need to know how to connect to the Fabric network. Fabconnect will use a Fabric Connection Profile which describes the network and tells it where the certs and keys are that it needs. Below is a ccp.yml for each organization. You will need to fill in one line by replacing the string FILL_IN_KEY_NAME_HERE, because the file name of the private key for each user is randomly generated.

      "},{"location":"tutorials/chains/fabric_test_network/#organization-1-connection-profile","title":"Organization 1 connection profile","text":"

      Create a new file at ~/org1_ccp.yml with the contents below. Replace the string FILL_IN_KEY_NAME_HERE with the filename in your fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore directory.

      certificateAuthorities:\n  org1.example.com:\n    tlsCACerts:\n      path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp/tlscacerts/ca.crt\n    url: https://ca_org1:7054\n    grpcOptions:\n      ssl-target-name-override: org1.example.com\n    registrar:\n      enrollId: admin\n      enrollSecret: adminpw\nchannels:\n  mychannel:\n    orderers:\n      - fabric_orderer\n    peers:\n      fabric_peer:\n        chaincodeQuery: true\n        endorsingPeer: true\n        eventSource: true\n        ledgerQuery: true\nclient:\n  BCCSP:\n    security:\n      default:\n        provider: SW\n      enabled: true\n      hashAlgorithm: SHA2\n      level: 256\n      softVerify: true\n  credentialStore:\n    cryptoStore:\n      path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp\n    path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp\n  cryptoconfig:\n    path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp\n  logging:\n    level: info\n  organization: org1.example.com\n  tlsCerts:\n    client:\n      cert:\n        path: /etc/firefly/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/cert.pem\n      key:\n        path: /etc/firefly/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/FILL_IN_KEY_NAME_HERE\norderers:\n  fabric_orderer:\n    tlsCACerts:\n      path: /etc/firefly/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/tlscacerts/tls-localhost-9054-ca-orderer.pem\n    url: grpcs://orderer.example.com:7050\norganizations:\n  org1.example.com:\n    certificateAuthorities:\n      - org1.example.com\n    cryptoPath: /tmp/msp\n    mspid: Org1MSP\n    peers:\n      - fabric_peer\npeers:\n  fabric_peer:\n    tlsCACerts:\n      path: /etc/firefly/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/tlscacerts/tls-localhost-7054-ca-org1.pem\n    url: grpcs://peer0.org1.example.com:7051\nversion: 1.1.0%\n
      "},{"location":"tutorials/chains/fabric_test_network/#organization-2-connection-profile","title":"Organization 2 connection profile","text":"

      Create a new file at ~/org2_ccp.yml with the contents below. Replace the string FILL_IN_KEY_NAME_HERE with the filename in your fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore directory.

      certificateAuthorities:\n  org2.example.com:\n    tlsCACerts:\n      path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp/tlscacerts/ca.crt\n    url: https://ca_org2:8054\n    grpcOptions:\n      ssl-target-name-override: org2.example.com\n    registrar:\n      enrollId: admin\n      enrollSecret: adminpw\nchannels:\n  mychannel:\n    orderers:\n      - fabric_orderer\n    peers:\n      fabric_peer:\n        chaincodeQuery: true\n        endorsingPeer: true\n        eventSource: true\n        ledgerQuery: true\nclient:\n  BCCSP:\n    security:\n      default:\n        provider: SW\n      enabled: true\n      hashAlgorithm: SHA2\n      level: 256\n      softVerify: true\n  credentialStore:\n    cryptoStore:\n      path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp\n    path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp\n  cryptoconfig:\n    path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp\n  logging:\n    level: info\n  organization: org2.example.com\n  tlsCerts:\n    client:\n      cert:\n        path: /etc/firefly/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/cert.pem\n      key:\n        path: /etc/firefly/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/FILL_IN_KEY_NAME_HERE\norderers:\n  fabric_orderer:\n    tlsCACerts:\n      path: /etc/firefly/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/tlscacerts/tls-localhost-9054-ca-orderer.pem\n    url: grpcs://orderer.example.com:7050\norganizations:\n  org2.example.com:\n    certificateAuthorities:\n      - org2.example.com\n    cryptoPath: /tmp/msp\n    mspid: Org2MSP\n    peers:\n      - fabric_peer\npeers:\n  fabric_peer:\n    tlsCACerts:\n      path: /etc/firefly/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/tlscacerts/tls-localhost-8054-ca-org2.pem\n    url: grpcs://peer0.org2.example.com:9051\nversion: 1.1.0%\n
      "},{"location":"tutorials/chains/fabric_test_network/#create-the-firefly-stack","title":"Create the FireFly stack","text":"

      Now we can create a FireFly stack and pass in these files as command line flags.

      NOTE: The following command should be run in the test-network directory as it includes a relative path to the organizations directory containing each org's MSP.

      ff init fabric dev \\\n  --ccp \"${HOME}/org1_ccp.yml\" \\\n  --msp \"organizations\" \\\n  --ccp \"${HOME}/org2_ccp.yml\" \\\n  --msp \"organizations\" \\\n  --channel mychannel \\\n  --chaincode firefly\n
      "},{"location":"tutorials/chains/fabric_test_network/#edit-docker-composeoverrideyml","title":"Edit docker-compose.override.yml","text":"

      The last step before starting up FireFly is to make sure that our FireFly containers have networking access to the Fabric containers. Because these are in two different Docker Compose networks by default, normally the containers would not be able to connect directly. We can fix this by instructing Docker to also attach our FireFly containers to the Fabric test network Docker Compose network. The easiest way to do that is to edit ~/.firefly/stacks/dev/docker-compose.override.yml and set its contents to the following:

      # Add custom config overrides here\n# See https://docs.docker.com/compose/extends\nversion: \"2.1\"\nnetworks:\n  default:\n    name: fabric_test\n    external: true\n
      "},{"location":"tutorials/chains/fabric_test_network/#start-firefly-stack","title":"Start FireFly stack","text":"

      Now we can start up FireFly!

      ff start dev\n

      After everything starts up, you should have two FireFly nodes that are each mapped to an Organization in your Fabric network. You can that they each use separate signing keys for their Org on messages that each FireFly node sends.

      "},{"location":"tutorials/chains/fabric_test_network/#connecting-to-a-remote-fabric-network","title":"Connecting to a remote Fabric Network","text":"

      This same guide can be adapted to connect to a remote Fabric network running somewhere else. They key takeaways are:

      • You need the FireFly chaincode deployed on channel in your Fabric network
      • You need to pass the channel and chaincode name when you run ff init
      • You need to provide a connection profile and the correct certs, keys, etc. for each node when you run ff init
      • Your FireFly containers will need to have network access to your Fabric network
      "},{"location":"tutorials/chains/fabric_test_network/#troubleshooting","title":"Troubleshooting","text":"

      There are quite a few moving parts in this guide and if steps are missed or done out of order it can cause problems. Below are some of the common situations that you might run into while following this guide, and solutions for each.

      You may see a message something along the lines of:

      ERROR: for firefly_core_0  Container \"bc04521372aa\" is unhealthy.\nEncountered errors while bringing up the project.\n

      In this case, we need to look at the container logs to get more detail about what happened. To do this, we can run ff start and tell it not to clean up the stack after the failure, to let you inspect what went wrong. To do that, you can run:

      ff start dev --verbose --no-rollback\n

      Then we could run docker logs <container_name> to see the logs for that container.

      "},{"location":"tutorials/chains/fabric_test_network/#no-such-host","title":"No such host","text":"
      Error: http://127.0.0.1:5102/identities [500] {\"error\":\"enroll failed: enroll failed: POST failure of request: POST https://ca_org1:7054/enroll\\n{\\\"hosts\\\":null,\\\"certificate_request\\\":\\\"-----BEGIN CERTIFICATE REQUEST-----\\\\nMIH0MIGcAgEAMBAxDjAMBgNVBAMTBWFkbWluMFkwEwYHKoZIzj0CAQYIKoZIzj0D\\\\nAQcDQgAE7qJZ5nGt/kxU9IvrEb7EmgNIgn9xXoQUJLl1+U9nXdWB9cnxcmoitnvy\\\\nYN63kbBuUh0z21vOmO8GLD3QxaRaD6AqMCgGCSqGSIb3DQEJDjEbMBkwFwYDVR0R\\\\nBBAwDoIMMGQ4NGJhZWIwZGY0MAoGCCqGSM49BAMCA0cAMEQCIBcWb127dVxm/80K\\\\nB2LtenAY/Jtb2FbZczolrXNCKq+LAiAcGEJ6Mx8LVaPzuSP4uGpEoty6+bEErc5r\\\\nHVER+0aXiQ==\\\\n-----END CERTIFICATE REQUEST-----\\\\n\\\",\\\"profile\\\":\\\"\\\",\\\"crl_override\\\":\\\"\\\",\\\"label\\\":\\\"\\\",\\\"NotBefore\\\":\\\"0001-01-01T00:00:00Z\\\",\\\"NotAfter\\\":\\\"0001-01-01T00:00:00Z\\\",\\\"ReturnPrecert\\\":false,\\\"CAName\\\":\\\"\\\"}: Post \\\"https://ca_org1:7054/enroll\\\": dial tcp: lookup ca_org1 on 127.0.0.11:53: no such host\"}\n

      If you see something in your logs that looks like the above, there could be a couple issues:

      1. The hostname for one of your Fabric containers could be wrong in the ccp.yml. Check the ccp.yml for that member and make sure the hostnames are correct.
      2. The FireFly container doesn't have networking connectivity to the Fabric containers. Check the docker-compose.override.yml file to make sure you added the fabric_test network as instructed above.
      "},{"location":"tutorials/chains/fabric_test_network/#no-such-file-or-directory","title":"No such file or directory","text":"
      User credentials store creation failed. Failed to load identity configurations: failed to create identity config from backends: failed to load client TLSConfig : failed to load client key: failed to load pem bytes from path /etc/firefly/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/cfc50311e2204f232cfdfaf4eba7731279f2366ec291ca1c1781e2bf7bc75529_sk: open /etc/firefly/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/cfc50311e2204f232cfdfaf4eba7731279f2366ec291ca1c1781e2bf7bc75529_sk: no such file or directory\n

      If you see something in your logs that looks like the above, it's likely that your private key file name is not correct in your ccp.yml file for that particular member. Check your ccp.yml and make sure all the files listed there exist in your organizations directory.

      "},{"location":"tutorials/chains/moonbeam/","title":"Moonbeam Testnet","text":"

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Moonbeam Alpha testnet.

      "},{"location":"tutorials/chains/moonbeam/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      "},{"location":"tutorials/chains/moonbeam/#create-an-evmconnectyml-config-file","title":"Create an evmconnect.yml config file","text":"

      In order to connect to the Moonbeam testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      confirmations:\n  required: 4 # choose the number of confirmations you require\npolicyengine.simple:\n  fixedGasPrice: null\n  gasOracle:\n    mode: connector\n

      For more info about confirmations, see Public vs. Permissioned

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      "},{"location":"tutorials/chains/moonbeam/#creating-a-new-stack","title":"Creating a new stack","text":"

      To create a local FireFly development stack and connect it to the Moonbeam Alpha testnet, we will use command line flags to customize the following settings:

      • Create a new Ethereum based stack named moonbeam with 1 member
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • See the moonbeam docs and select an HTTPS RPC endpoint
      • Set the chain ID to 1287 (the correct ID for the Moonbeam Alpha testnet)
      • Merge the custom config created above with the generated evmconnect config file

      To do this, run the following command:

      ff init ethereum moonbeam 1 \\\n    --multiparty=false \\\n    -n remote-rpc \\\n    --remote-node-url <selected RPC endpoint> \\\n    --chain-id 1287 \\\n    --connector-config ~/Desktop/evmconnect.yml\n
      "},{"location":"tutorials/chains/moonbeam/#start-the-stack","title":"Start the stack","text":"

      Now you should be able to start your stack by running:

      ff start moonbeam\n

      After some time it should print out the following:

      Web UI for member '0': http://127.0.0.1:5000/ui\nSandbox UI for member '0': http://127.0.0.1:5109\n\n\nTo see logs for your stack run:\n\nff logs moonbeam\n
      "},{"location":"tutorials/chains/moonbeam/#get-some-dev","title":"Get some DEV","text":"

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. A testnet faucet can give us some DEV, the native token for Moonbeam.

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      ff accounts list moonbeam\n[\n  {\n    \"address\": \"0x02d42c32a97c894486afbc7b717edff50c70b292\",\n    \"privateKey\": \"...\"\n  }\n]\n

      Copy the address listed in the output from this command. Go to https://apps.moonbeam.network/moonbase-alpha/faucet/ and paste the address in the form. Click the Submit button.

      "},{"location":"tutorials/chains/moonbeam/#confirm-the-transaction-on-moonscan","title":"Confirm the transaction on Moonscan","text":"

      You should be able to go lookup your account on Moonscan for the Moonbase Alpha testnet and see that you now have a sufficient balance of DEV. Simply paste in your account address to search for it.

      "},{"location":"tutorials/chains/moonbeam/#use-the-public-testnet","title":"Use the public testnet","text":"

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on interacting with the Moonbeam Alpha testnet, please see the Moonbeam docs.

      "},{"location":"tutorials/chains/optimism/","title":"Optimism","text":"

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the Optimism Goerli testnet.

      "},{"location":"tutorials/chains/optimism/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      "},{"location":"tutorials/chains/optimism/#create-an-evmconnectyml-config-file","title":"Create an evmconnect.yml config file","text":"

      In order to connect to the Optimism testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      confirmations:\n  required: 4 # choose the number of confirmations you require\npolicyengine.simple:\n  fixedGasPrice: null\n  gasOracle:\n    mode: connector\n

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      "},{"location":"tutorials/chains/optimism/#creating-a-new-stack","title":"Creating a new stack","text":"

      To create a local FireFly development stack and connect it to the Optimism testnet, we will use command line flags to customize the following settings:

      • Create a new Ethereum based stack named optimism with 1 member
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • See the optimism docs and select an HTTPS RPC endpoint.
      • Set the chain ID to 420 (the correct ID for the Optimism testnet)
      • Merge the custom config created above with the generated evmconnect config file

      To do this, run the following command:

      ff init ethereum optimism 1 \\\n    --multiparty=false \\\n    -n remote-rpc \\\n    --remote-node-url <selected RPC endpoint> \\\n    --chain-id 420 \\\n    --connector-config ~/Desktop/evmconnect.yml\n
      "},{"location":"tutorials/chains/optimism/#start-the-stack","title":"Start the stack","text":"

      Now you should be able to start your stack by running:

      ff start optimism\n

      After some time it should print out the following:

      Web UI for member '0': http://127.0.0.1:5000/ui\nSandbox UI for member '0': http://127.0.0.1:5109\n\n\nTo see logs for your stack run:\n\nff logs optimism\n
      "},{"location":"tutorials/chains/optimism/#get-some-optimism","title":"Get some Optimism","text":"

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. A testnet faucet can give us some OP, the native token for Optimism.

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      ff accounts list optimism\n[\n  {\n    \"address\": \"0x235461d246ab95d367925b4e91bd2755a921fdd8\",\n    \"privateKey\": \"...\"\n  }\n]\n

      Copy the address listed in the output from this command. Go to https://optimismfaucet.xyz/. You will need to login to your Github account and paste the address in the form.

      "},{"location":"tutorials/chains/optimism/#confirm-the-transaction-on-blockcscout","title":"Confirm the transaction on Blockcscout","text":"

      You should be able to go lookup your account on Blockscout for Optimism testnet https://blockscout.com/optimism/goerli and see that you now have a balance of 100 OP. Simply paste in your account address to search for it.

      "},{"location":"tutorials/chains/optimism/#use-the-public-testnet","title":"Use the public testnet","text":"

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Optimism, please see the Optimism docs for instructions using various tools.

      "},{"location":"tutorials/chains/polygon_testnet/","title":"Polygon Testnet","text":"

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Polygon Mumbai testnet.

      "},{"location":"tutorials/chains/polygon_testnet/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      "},{"location":"tutorials/chains/polygon_testnet/#create-an-evmconnectyml-config-file","title":"Create an evmconnect.yml config file","text":"

      In order to connect to the Polygon testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      confirmations:\n  required: 4 # choose the number of confirmations you require\npolicyengine.simple:\n  fixedGasPrice: null\n  gasOracle:\n    mode: connector\n

      For more info about confirmations, see Public vs. Permissioned

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      "},{"location":"tutorials/chains/polygon_testnet/#creating-a-new-stack","title":"Creating a new stack","text":"

      To create a local FireFly development stack and connect it to the Polygon Mumbai testnet, we will use command line flags to customize the following settings:

      • Create a new Ethereum based stack named polygon with 1 member
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • See the list of Polygon RPC endpoints and select an HTTPS RPC endpoint.
      • Set the chain ID to 80001 (the correct ID for the Polygon Mumbai testnet)
      • Merge the custom config created above with the generated evmconnect config file

      To do this, run the following command:

      ff init ethereum polygon 1 \\\n    --multiparty=false \\\n    -n remote-rpc \\\n    --remote-node-url <selected RPC endpoint> \\\n    --chain-id 80001 \\\n    --connector-config ~/Desktop/evmconnect.yml\n
      "},{"location":"tutorials/chains/polygon_testnet/#start-the-stack","title":"Start the stack","text":"

      Now you should be able to start your stack by running:

      ff start polygon\n

      After some time it should print out the following:

      Web UI for member '0': http://127.0.0.1:5000/ui\nSandbox UI for member '0': http://127.0.0.1:5109\n\n\nTo see logs for your stack run:\n\nff logs polygon\n
      "},{"location":"tutorials/chains/polygon_testnet/#get-some-matic","title":"Get some MATIC","text":"

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. A testnet faucet can give us some MATIC, the native token for Polygon.

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      ff accounts list polygon\n[\n  {\n    \"address\": \"0x02d42c32a97c894486afbc7b717edff50c70b292\",\n    \"privateKey\": \"...\"\n  }\n]\n

      Copy the address listed in the output from this command. Go to https://faucet.polygon.technology/ and paste the address in the form. Click the Submit button, and then Confirm.

      "},{"location":"tutorials/chains/polygon_testnet/#confirm-the-transaction-on-polygonscan","title":"Confirm the transaction on Polygonscan","text":"

      You should be able to go lookup your account on Polygonscan for the Mumbai testnet and see that you now have a balance of 0.2 MATIC. Simply paste in your account address to search for it.

      You can also click on the Internal Txns tab from you account page to see the actual transfer of the MATIC from the faucet.

      "},{"location":"tutorials/chains/polygon_testnet/#use-the-public-testnet","title":"Use the public testnet","text":"

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Polygon, please see the Polygon docs for instructions using various tools.

      "},{"location":"tutorials/chains/tezos_testnet/","title":"Tezos Testnet","text":"

      This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Tezos Ghostnet testnet.

      "},{"location":"tutorials/chains/tezos_testnet/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      "},{"location":"tutorials/chains/tezos_testnet/#set-up-the-transaction-signing-service","title":"Set up the transaction signing service","text":"

      Signatory service allows to work with many different key-management systems.\\ By default, FF uses local signing option.\\ However, it is also possible to configure the transaction signing service using key management systems such as: AWS/Google/Azure KMS, HCP Vault, etc.

      NOTE: The default option is not secure and is mainly used for development and demo purposes. Therefore, for the production, use the selected KMS.\\ The full list can be found here.

      "},{"location":"tutorials/chains/tezos_testnet/#creating-a-new-stack","title":"Creating a new stack","text":"

      To create a local FireFly development stack and connect it to the Tezos Ghostnet testnet, we will use command line flags to customize the following settings:

      • Create a new Tezos based stack named tezos with 1 member
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • See the list of Tezos public RPC nodes and select an HTTPS RPC node.

      To do this, run the following command:

      ff init tezos dev 1 \\\n    --multiparty=false \\\n    --remote-node-url <selected RPC endpoint>\n

      NOTE: The public RPC nodes may have limitations or may not support all FF required RPC endpoints. Therefore it's not recommended to use ones for production and you may need to run own node or use third-party vendors.

      "},{"location":"tutorials/chains/tezos_testnet/#start-the-stack","title":"Start the stack","text":"

      Now you should be able to start your stack by running:

      ff start dev\n

      After some time it should print out the following:

      Web UI for member '0': http://127.0.0.1:5000/ui\nSandbox UI for member '0': http://127.0.0.1:5109\n\n\nTo see logs for your stack run:\n\nff logs dev\n
      "},{"location":"tutorials/chains/tezos_testnet/#get-some-xtz","title":"Get some XTZ","text":"

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay transaction fee. A testnet faucet can give us some XTZ, the native token for Tezos.

      First, you need to get an account address, which was created during signer set up step.\\ To check that, you can run:

      ff accounts list dev\n[\n  {\n    \"address\": \"tz1cuFw1E2Mn2bVS8q8d7QoCb6FXC18JivSp\",\n    \"privateKey\": \"...\"\n  }\n]\n

      After that, go to Tezos Ghostnet Faucet and paste the address in the form and click the Request button.

      "},{"location":"tutorials/chains/tezos_testnet/#confirm-the-transaction-on-tzstats","title":"Confirm the transaction on TzStats","text":"

      You should be able to go lookup your account on TzStats for the Ghostnet testnet and see that you now have a balance of 100 XTZ (or 2001 XTZ accordingly). Simply paste in your account address to search for it.

      On the Transfers tab from you account page you will see the actual transfer of the XTZ from the faucet.

      "},{"location":"tutorials/chains/tezos_testnet/#use-the-public-testnet","title":"Use the public testnet","text":"

      Now that you have everything set up, you can follow one of the other FireFly guides such as Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Tezos, please see the Tezos docs for instructions using various tools.

      "},{"location":"tutorials/chains/zksync_testnet/","title":"zkSync Testnet","text":"

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the zkSync testnet.

      "},{"location":"tutorials/chains/zksync_testnet/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      "},{"location":"tutorials/chains/zksync_testnet/#create-an-evmconnectyml-config-file","title":"Create an evmconnect.yml config file","text":"

      In order to connect to the zkSync testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      confirmations:\n  required: 4 # choose the number of confirmations you require\npolicyengine.simple:\n  fixedGasPrice: null\n  gasOracle:\n    mode: connector\n

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      "},{"location":"tutorials/chains/zksync_testnet/#creating-a-new-stack","title":"Creating a new stack","text":"

      To create a local FireFly development stack and connect it to the zkSync testnet, we will use command line flags to customize the following settings:

      • Create a new stack named zkSync with 1 member
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • Connect to an ethereum network
      • Use the evmconnect blockchain connector
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • See the list of providers for zkSync docs. For this tutorial we will use https://zksync2-testnet.zksync.dev
      • Set the chain ID to 280 (the correct ID for the zkSync testnet)
      • Merge the custom config created above with the generated evmconnect config file

      To do this, run the following command:

      ff init zksync 1\\\n    --multiparty=false \\\n    -b ethereum \\\n    -c evmconnect \\\n    -n remote-rpc \\\n    --remote-node-url https://zksync2-testnet.zksync.dev\\\n    --chain-id 280 \\\n    --connector-config ~/Desktop/evmconnect.yml\n
      "},{"location":"tutorials/chains/zksync_testnet/#start-the-stack","title":"Start the stack","text":"

      Now you should be able to start your stack by running:

      ff start zksync\n

      After some time it should print out the following:

      Web UI for member '0': http://127.0.0.1:5000/ui\nSandbox UI for member '0': http://127.0.0.1:5109\n\n\nTo see logs for your stack run:\n\nff logs zksync\n
      "},{"location":"tutorials/chains/zksync_testnet/#get-some-eth","title":"Get some ETH","text":"

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. zkSync does not currently have its own native token and instead uses Ethereum for transaction. A testnet faucet can give us some ETH.

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      ff accounts list zkSync\n[\n  {\n    \"address\": \"0x8cf4fd38b2d56a905113d23b5a7131f0269d8611\",\n    \"privateKey\": \"...\"\n  }\n]\n

      Copy your zkSync address and go to the Goerli Ethereum faucet and paste the address in the form. Click the Request Tokens button. Note that any Goerli Ethereum faucet will work.

      "},{"location":"tutorials/chains/zksync_testnet/#confirm-the-transaction-on-the-etherscan-explorer","title":"Confirm the transaction on the Etherscan Explorer","text":"

      You should be able to go lookup your account at https://etherscan.io/ and see that you now have a balance of 0.025 ETH. Simply paste in your account address to search for it.

      "},{"location":"tutorials/chains/zksync_testnet/#use-the-public-testnet","title":"Use the public testnet","text":"

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to zkSync, please see the zkSync docs for instructions using various tools.

      "},{"location":"tutorials/custom_contracts/","title":"Work with custom smart contracts","text":""},{"location":"tutorials/custom_contracts/#quick-reference","title":"Quick reference","text":"

      Almost all blockchain platforms offer the ability to execute smart contracts on-chain in order to manage states on the shared ledger. FireFly provides support to use RESTful APIs to interact with the smart contracts deployed in the target blockchains, and listening to events via websocket.

      FireFly's unified API creates a consistent application experience regardless of the specific underlying blockchain implementation. It also provides developer-friendly features like automatic OpenAPI Specification generation for smart contracts, plus a built-in Swagger UI.

      "},{"location":"tutorials/custom_contracts/#key-concepts","title":"Key concepts","text":"

      FireFly defines the following constructs to support custom smart contracts:

      • Contract Interface: FireFly defines a common, blockchain agnostic way to describe smart contracts. This is referred to as a Contract Interface. A contract interface is written in the FireFly Interface (FFI) format. It is a simple JSON document that has a name, a namespace, a version, a list of methods, and a list of events.

      For more details, you can also have a look at the Reference page for the FireFly Interface Format.

      For blockchains that offer a DSL describing the smart contract interface, such as Ethereum's ABI (Application Binary Interface), FireFly offers a convenience tool to convert the DSL into the FFI format.

      NOTE: Contract interfaces are scoped to a namespace. Within a namespace each contract interface must have a unique name and version combination. The same name and version combination can exist in different namespaces simultaneously.

      • HTTP API: Based on a Contract Interface, FireFly further defines an HTTP API for the smart contract, which is complete with an OpenAPI Specification and the Swagger UI. An HTTP API defines an /invoke root path to submit transactions, and a /query root path to send query requests to read the state back out.

      How the invoke vs. query requests get interpreted into the native blockchain requests are specific to the blockchain's connector. For instance, the Ethereum connector translates /invoke calls to eth_sendTransaction JSON-RPC requests, while /query calls are translated into eth_call JSON-RPC requests. One the other hand, the Fabric connector translates /invoke calls to the multiple requests required to submit a transaction to a Fabric channel (which first collects endorsements from peer nodes, and then sends the assembled transaction payload to an orderer, for details please refer to the Fabric documentation).

      • Blockchain Event Listener: Regardless of a blockchain's specific design, transaction processing are always asynchronous. This means a transaction is submitted to the network, at which point the submitting client gets an acknowledgement that it has been accepted for further processing. The client then listens for notifications by the blockchain when the transaction gets committed to the blockchain's ledger.

      FireFly defines event listeners to allow the client application to specify the relevant blockchain events to keep track of. A client application can then receive the notifications from FireFly via an event subscription.

      • Event Subscription: While an event listener tells FireFly to keep track of certain events emitted by the blockchain, an event subscription tells FireFly to relay those events to the client application. Each subscriptions represents a stream of events that can be delivered to a listening client with various modes of delivery with at-least-once delivery guarantee.

      This is exactly the same as listening for any other events from FireFly. For more details on how Subscriptions work in FireFly you can read the Getting Started guide to Listen for events.

      "},{"location":"tutorials/custom_contracts/#custom-onchain-logic-async-programming-in-firefly","title":"Custom onchain logic async programming in FireFly","text":"

      Like the rest of FireFly, custom onchain logic support are implemented with an asynchronous programming model. The key concepts here are:

      • Transactions are submitted to FireFly and an ID is returned. This is the Operation ID.
      • The transaction itself happens asynchronously from the HTTP request that initiated it
      • Blockchain events emitted by the custom onchain logic (Ethereum smart contracts, Fabric chaincodes, Corda flows, etc.) will be stored in FireFly's database if FireFly has a Event Listener set up for that specific type of event. FireFly will also emit an event of type blockchain_event_received when this happens.

      "},{"location":"tutorials/custom_contracts/ethereum/","title":"Work with Ethereum smart contracts","text":"

      This guide describes the steps to deploy a smart contract to an Ethereum blockchain and use FireFly to interact with it in order to submit transactions, query for states and listening for events.

      NOTE: This guide assumes that you are running a local FireFly stack with at least 2 members and an Ethereum blockchain created by the FireFly CLI. If you need help getting that set up, please see the Getting Started guide to Start your environment.

      "},{"location":"tutorials/custom_contracts/ethereum/#example-smart-contract","title":"Example smart contract","text":"

      For this tutorial, we will be using a well known, but slightly modified smart contract called SimpleStorage, and will be using this contract on an Ethereum blockchain. As the name implies, it's a very simple contract which stores an unsigned 256 bit integer, emits and event when the value is updated, and allows you to retrieve the current value.

      Here is the source for this contract:

      // SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.10;\n\n// Declares a new contract\ncontract SimpleStorage {\n    // Storage. Persists in between transactions\n    uint256 x;\n\n    // Allows the unsigned integer stored to be changed\n    function set(uint256 newValue) public {\n        x = newValue;\n        emit Changed(msg.sender, newValue);\n    }\n\n    // Returns the currently stored unsigned integer\n    function get() public view returns (uint256) {\n        return x;\n    }\n\n    event Changed(address indexed from, uint256 value);\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#contract-deployment","title":"Contract deployment","text":"

      If you need to deploy an Ethereum smart contract with a signing key that FireFly will use for submitting future transactions it is recommended to use FireFly's built in contract deployment API. This is useful in many cases. For example, you may want to deploy a token contract and have FireFly mint some tokens. Many token contracts only allow the contract deployer to mint, so the contract would need to be deployed with a FireFly signing key.

      You will need compile the contract yourself using solc or some other tool. After you have compiled the contract, look in the JSON output file for the fields to build the request below.

      "},{"location":"tutorials/custom_contracts/ethereum/#request","title":"Request","text":"Field Description key The signing key to use to dpeloy the contract. If omitted, the namespaces's default signing key will be used. contract The compiled bytecode for your smart contract. It should be either a hex encded string or Base64. definition The full ABI JSON array from your compiled JSON file. Copy the entire value of the abi field from the [ to the ]. input An ordered list of constructor arguments. Some contracts may not require any (such as this example).

      POST http://localhost:5000/api/v1/namespaces/default/contracts/deploy

      {\n  \"contract\": \"608060405234801561001057600080fd5b5061019e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806360fe47b11461003b5780636d4ce63c14610057575b600080fd5b61005560048036038101906100509190610111565b610075565b005b61005f6100cd565b60405161006c919061014d565b60405180910390f35b806000819055503373ffffffffffffffffffffffffffffffffffffffff167fb52dda022b6c1a1f40905a85f257f689aa5d69d850e49cf939d688fbe5af5946826040516100c2919061014d565b60405180910390a250565b60008054905090565b600080fd5b6000819050919050565b6100ee816100db565b81146100f957600080fd5b50565b60008135905061010b816100e5565b92915050565b600060208284031215610127576101266100d6565b5b6000610135848285016100fc565b91505092915050565b610147816100db565b82525050565b6000602082019050610162600083018461013e565b9291505056fea2646970667358221220e6cbd7725b98b234d07bc1823b60ac065b567c6645d15c8f8f6986e5fa5317c664736f6c634300080b0033\",\n  \"definition\": [\n    {\n      \"anonymous\": false,\n      \"inputs\": [\n        {\n          \"indexed\": true,\n          \"internalType\": \"address\",\n          \"name\": \"from\",\n          \"type\": \"address\"\n        },\n        {\n          \"indexed\": false,\n          \"internalType\": \"uint256\",\n          \"name\": \"value\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"name\": \"Changed\",\n      \"type\": \"event\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"get\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"newValue\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"name\": \"set\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    }\n  ],\n  \"input\": []\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response","title":"Response","text":"
      {\n  \"id\": \"aa155a3c-2591-410e-bc9d-68ae7de34689\",\n  \"namespace\": \"default\",\n  \"tx\": \"4712ffb3-cc1a-4a91-aef2-206ac068ba6f\",\n  \"type\": \"blockchain_deploy\",\n  \"status\": \"Succeeded\",\n  \"plugin\": \"ethereum\",\n  \"input\": {\n    \"contract\": \"608060405234801561001057600080fd5b5061019e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806360fe47b11461003b5780636d4ce63c14610057575b600080fd5b61005560048036038101906100509190610111565b610075565b005b61005f6100cd565b60405161006c919061014d565b60405180910390f35b806000819055503373ffffffffffffffffffffffffffffffffffffffff167fb52dda022b6c1a1f40905a85f257f689aa5d69d850e49cf939d688fbe5af5946826040516100c2919061014d565b60405180910390a250565b60008054905090565b600080fd5b6000819050919050565b6100ee816100db565b81146100f957600080fd5b50565b60008135905061010b816100e5565b92915050565b600060208284031215610127576101266100d6565b5b6000610135848285016100fc565b91505092915050565b610147816100db565b82525050565b6000602082019050610162600083018461013e565b9291505056fea2646970667358221220e6cbd7725b98b234d07bc1823b60ac065b567c6645d15c8f8f6986e5fa5317c664736f6c634300080b0033\",\n    \"definition\": [\n      {\n        \"anonymous\": false,\n        \"inputs\": [\n          {\n            \"indexed\": true,\n            \"internalType\": \"address\",\n            \"name\": \"from\",\n            \"type\": \"address\"\n          },\n          {\n            \"indexed\": false,\n            \"internalType\": \"uint256\",\n            \"name\": \"value\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"name\": \"Changed\",\n        \"type\": \"event\"\n      },\n      {\n        \"inputs\": [],\n        \"name\": \"get\",\n        \"outputs\": [\n          {\n            \"internalType\": \"uint256\",\n            \"name\": \"\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"stateMutability\": \"view\",\n        \"type\": \"function\"\n      },\n      {\n        \"inputs\": [\n          {\n            \"internalType\": \"uint256\",\n            \"name\": \"newValue\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"name\": \"set\",\n        \"outputs\": [],\n        \"stateMutability\": \"nonpayable\",\n        \"type\": \"function\"\n      }\n    ],\n    \"input\": [],\n    \"key\": \"0xddd93a452bfc8d3e62bbc60c243046e4d0cb971b\",\n    \"options\": null\n  },\n  \"output\": {\n    \"headers\": {\n      \"requestId\": \"default:aa155a3c-2591-410e-bc9d-68ae7de34689\",\n      \"type\": \"TransactionSuccess\"\n    },\n    \"contractLocation\": {\n      \"address\": \"0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1\"\n    },\n    \"protocolId\": \"000000000024/000000\",\n    \"transactionHash\": \"0x32d1144091877266d7f0426e48db157e7d1a857c62e6f488319bb09243f0f851\"\n  },\n  \"created\": \"2023-02-03T15:42:52.750277Z\",\n  \"updated\": \"2023-02-03T15:42:52.750277Z\"\n}\n

      Here we can see in the response above under the output section that our new contract address is 0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1. This is the address that we will reference in the rest of this guide.

      "},{"location":"tutorials/custom_contracts/ethereum/#the-firefly-interface-format","title":"The FireFly Interface Format","text":"

      If you have an Ethereum ABI for an existing smart contract, there is an HTTP endpoint on the FireFly API that will take the ABI as input and automatically generate the FireFly Interface for you. Rather than handcrafting our FFI, we'll let FireFly generate it for us using that endpoint now.

      "},{"location":"tutorials/custom_contracts/ethereum/#request_1","title":"Request","text":"

      Here we will take the JSON ABI generated by truffle or solc and POST that to FireFly to have it automatically generate the FireFly Interface for us. Copy the abi from the compiled JSON file, and put that inside an input object like the example below:

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces/generate

      {\n  \"input\": {\n    \"abi\": [\n      {\n        \"anonymous\": false,\n        \"inputs\": [\n          {\n            \"indexed\": true,\n            \"internalType\": \"address\",\n            \"name\": \"from\",\n            \"type\": \"address\"\n          },\n          {\n            \"indexed\": false,\n            \"internalType\": \"uint256\",\n            \"name\": \"value\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"name\": \"Changed\",\n        \"type\": \"event\"\n      },\n      {\n        \"inputs\": [],\n        \"name\": \"get\",\n        \"outputs\": [\n          {\n            \"internalType\": \"uint256\",\n            \"name\": \"\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"stateMutability\": \"view\",\n        \"type\": \"function\"\n      },\n      {\n        \"inputs\": [\n          {\n            \"internalType\": \"uint256\",\n            \"name\": \"newValue\",\n            \"type\": \"uint256\"\n          }\n        ],\n        \"name\": \"set\",\n        \"outputs\": [],\n        \"stateMutability\": \"nonpayable\",\n        \"type\": \"function\"\n      }\n    ]\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response_1","title":"Response","text":"

      FireFly generates and returns the the full FireFly Interface for the SimpleStorage contract in the response body:

      {\n  \"namespace\": \"default\",\n  \"name\": \"\",\n  \"description\": \"\",\n  \"version\": \"\",\n  \"methods\": [\n    {\n      \"name\": \"get\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [],\n      \"returns\": [\n        {\n          \"name\": \"\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"set\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"newValue\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    }\n  ],\n  \"events\": [\n    {\n      \"name\": \"Changed\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"from\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"details\": {\n              \"type\": \"address\",\n              \"internalType\": \"address\",\n              \"indexed\": true\n            }\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ]\n    }\n  ]\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#broadcast-the-contract-interface","title":"Broadcast the contract interface","text":"

      Now that we have a FireFly Interface representation of our smart contract, we want to broadcast that to the entire network. This broadcast will be pinned to the blockchain, so we can always refer to this specific name and version, and everyone in the network will know exactly which contract interface we are talking about.

      We will take the output from the previous HTTP response above, fill in the name and version and then POST that to the /contracts/interfaces API endpoint.

      "},{"location":"tutorials/custom_contracts/ethereum/#request_2","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces

      {\n  \"namespace\": \"default\",\n  \"name\": \"SimpleStorage\",\n  \"version\": \"v1.0.0\",\n  \"description\": \"\",\n  \"methods\": [\n    {\n      \"name\": \"get\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [],\n      \"returns\": [\n        {\n          \"name\": \"\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"set\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"newValue\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    }\n  ],\n  \"events\": [\n    {\n      \"name\": \"Changed\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"from\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"details\": {\n              \"type\": \"address\",\n              \"internalType\": \"address\",\n              \"indexed\": true\n            }\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ]\n    }\n  ]\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response_2","title":"Response","text":"
      {\n  \"id\": \"8bdd27a5-67c1-4960-8d1e-7aa31b9084d3\",\n  \"message\": \"3cd0dde2-1e39-4c9e-a4a1-569e87cca93a\",\n  \"namespace\": \"default\",\n  \"name\": \"SimpleStorage\",\n  \"description\": \"\",\n  \"version\": \"v1.0.0\",\n  \"methods\": [\n    {\n      \"id\": \"56467890-5713-4463-84b8-4537fcb63d8b\",\n      \"contract\": \"8bdd27a5-67c1-4960-8d1e-7aa31b9084d3\",\n      \"name\": \"get\",\n      \"namespace\": \"default\",\n      \"pathname\": \"get\",\n      \"description\": \"\",\n      \"params\": [],\n      \"returns\": [\n        {\n          \"name\": \"\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"id\": \"6b254d1d-5f5f-491e-bbd2-201e96892e1a\",\n      \"contract\": \"8bdd27a5-67c1-4960-8d1e-7aa31b9084d3\",\n      \"name\": \"set\",\n      \"namespace\": \"default\",\n      \"pathname\": \"set\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"newValue\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    }\n  ],\n  \"events\": [\n    {\n      \"id\": \"aa1fe67b-b2ac-41af-a7e7-7ad54a30a78d\",\n      \"contract\": \"8bdd27a5-67c1-4960-8d1e-7aa31b9084d3\",\n      \"namespace\": \"default\",\n      \"pathname\": \"Changed\",\n      \"name\": \"Changed\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"from\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"details\": {\n              \"type\": \"address\",\n              \"internalType\": \"address\",\n              \"indexed\": true\n            }\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"uint256\",\n              \"internalType\": \"uint256\"\n            }\n          }\n        }\n      ]\n    }\n  ]\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#create-an-http-api-for-the-contract","title":"Create an HTTP API for the contract","text":"

      Now comes the fun part where we see some of the powerful, developer-friendly features of FireFly. The next thing we're going to do is tell FireFly to build an HTTP API for this smart contract, complete with an OpenAPI Specification and Swagger UI. As part of this, we'll also tell FireFly where the contract is on the blockchain. Like the interface broadcast above, this will also generate a broadcast which will be pinned to the blockchain so all the members of the network will be aware of and able to interact with this API.

      We need to copy the id field we got in the response from the previous step to the interface.id field in the request body below. We will also pick a name that will be part of the URL for our HTTP API, so be sure to pick a name that is URL friendly. In this case we'll call it simple-storage. Lastly, in the location.address field, we're telling FireFly where an instance of the contract is deployed on-chain.

      NOTE: The location field is optional here, but if it is omitted, it will be required in every request to invoke or query the contract. This can be useful if you have multiple instances of the same contract deployed to different addresses.

      "},{"location":"tutorials/custom_contracts/ethereum/#request_3","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/apis

      {\n  \"name\": \"simple-storage\",\n  \"interface\": {\n    \"id\": \"8bdd27a5-67c1-4960-8d1e-7aa31b9084d3\"\n  },\n  \"location\": {\n    \"address\": \"0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response_3","title":"Response","text":"
      {\n  \"id\": \"9a681ec6-1dee-42a0-b91b-61d23a814b0f\",\n  \"namespace\": \"default\",\n  \"interface\": {\n    \"id\": \"8bdd27a5-67c1-4960-8d1e-7aa31b9084d3\"\n  },\n  \"location\": {\n    \"address\": \"0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1\"\n  },\n  \"name\": \"simple-storage\",\n  \"message\": \"d90d0386-8874-43fb-b7d3-485c22f35f47\",\n  \"urls\": {\n    \"openapi\": \"http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api/swagger.json\",\n    \"ui\": \"http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#view-openapi-spec-for-the-contract","title":"View OpenAPI spec for the contract","text":"

      You'll notice in the response body that there are a couple of URLs near the bottom. If you navigate to the one labeled ui in your browser, you should see the Swagger UI for your smart contract.

      "},{"location":"tutorials/custom_contracts/ethereum/#invoke-the-smart-contract","title":"Invoke the smart contract","text":"

      Now that we've got everything set up, it's time to use our smart contract! We're going to make a POST request to the invoke/set endpoint to set the integer value on-chain. Let's set it to the value of 3 right now.

      "},{"location":"tutorials/custom_contracts/ethereum/#request_4","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/invoke/set

      {\n  \"input\": {\n    \"newValue\": 3\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response_4","title":"Response","text":"
      {\n  \"id\": \"41c67c63-52cf-47ce-8a59-895fe2ffdc86\"\n}\n

      You'll notice that we just get an ID back here, and that's expected due to the asynchronous programming model of working with smart contracts in FireFly. To see what the value is now, we can query the smart contract. In a little bit, we'll also subscribe to the events emitted by this contract so we can know when the value is updated in realtime.

      "},{"location":"tutorials/custom_contracts/ethereum/#query-the-current-value","title":"Query the current value","text":"

      To make a read-only request to the blockchain to check the current value of the stored integer, we can make a POST to the query/get endpoint.

      "},{"location":"tutorials/custom_contracts/ethereum/#request_5","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/query/get

      {}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response_5","title":"Response","text":"
      {\n  \"output\": \"3\"\n}\n

      NOTE: Some contracts may have queries that require input parameters. That's why the query endpoint is a POST, rather than a GET so that parameters can be passed as JSON in the request body. This particular function does not have any parameters, so we just pass an empty JSON object.

      "},{"location":"tutorials/custom_contracts/ethereum/#passing-additional-options-with-a-request","title":"Passing additional options with a request","text":"

      Some smart contract functions may accept or require additional options to be passed with the request. For example, a Solidity function might be payable, meaning that a value field must be specified, indicating an amount of ETH to be transferred with the request. Each of your smart contract API's /invoke or /query endpoints support an options object in addition to the input arguments for the function itself.

      Here is an example of sending 100 wei with a transaction:

      "},{"location":"tutorials/custom_contracts/ethereum/#request_6","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/invoke/set

      {\n  \"input\": {\n    \"newValue\": 3\n  },\n  \"options\": {\n    \"value\": 100\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response_6","title":"Response","text":"
      {\n  \"id\": \"41c67c63-52cf-47ce-8a59-895fe2ffdc86\"\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#create-a-blockchain-event-listener","title":"Create a blockchain event listener","text":"

      Now that we've seen how to submit transactions and preform read-only queries to the blockchain, let's look at how to receive blockchain events so we know when things are happening in realtime.

      If you look at the source code for the smart contract we're working with above, you'll notice that it emits an event when the stored value of the integer is set. In order to receive these events, we first need to instruct FireFly to listen for this specific type of blockchain event. To do this, we create an Event Listener. The /contracts/listeners endpoint is RESTful so there are POST, GET, and DELETE methods available on it. To create a new listener, we will make a POST request. We are going to tell FireFly to listen to events with name \"Changed\" from the FireFly Interface we defined earlier, referenced by its ID. We will also tell FireFly which contract address we expect to emit these events, and the topic to assign these events to. Topics are a way for applications to subscribe to events they are interested in.

      "},{"location":"tutorials/custom_contracts/ethereum/#request_7","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/contracts/listeners

      {\n  \"interface\": {\n    \"id\": \"8bdd27a5-67c1-4960-8d1e-7aa31b9084d3\"\n  },\n  \"location\": {\n    \"address\": \"0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1\"\n  },\n  \"eventPath\": \"Changed\",\n  \"options\": {\n    \"firstEvent\": \"newest\"\n  },\n  \"topic\": \"simple-storage\"\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response_7","title":"Response","text":"
      {\n  \"id\": \"1bfa3b0f-3d90-403e-94a4-af978d8c5b14\",\n  \"interface\": {\n    \"id\": \"8bdd27a5-67c1-4960-8d1e-7aa31b9084d3\"\n  },\n  \"namespace\": \"default\",\n  \"name\": \"sb-66209ffc-d355-4ac0-7151-bc82490ca9df\",\n  \"protocolId\": \"sb-66209ffc-d355-4ac0-7151-bc82490ca9df\",\n  \"location\": {\n    \"address\": \"0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1\"\n  },\n  \"created\": \"2022-02-17T22:02:36.34549538Z\",\n  \"event\": {\n    \"name\": \"Changed\",\n    \"description\": \"\",\n    \"params\": [\n      {\n        \"name\": \"from\",\n        \"schema\": {\n          \"type\": \"string\",\n          \"details\": {\n            \"type\": \"address\",\n            \"internalType\": \"address\",\n            \"indexed\": true\n          }\n        }\n      },\n      {\n        \"name\": \"value\",\n        \"schema\": {\n          \"type\": \"integer\",\n          \"details\": {\n            \"type\": \"uint256\",\n            \"internalType\": \"uint256\"\n          }\n        }\n      }\n    ]\n  },\n  \"options\": {\n    \"firstEvent\": \"oldest\"\n  }\n}\n

      We can see in the response, that FireFly pulls all the schema information from the FireFly Interface that we broadcasted earlier and creates the listener with that schema. This is useful so that we don't have to enter all of that data again.

      "},{"location":"tutorials/custom_contracts/ethereum/#querying-listener-status","title":"Querying listener status","text":"

      If you are interested in learning about the current state of a listener you have created, you can query with the fetchstatus parameter. For FireFly stacks with an EVM compatible blockchain connector, the response will include checkpoint information and if the listener is currently in catchup mode.

      "},{"location":"tutorials/custom_contracts/ethereum/#request-response","title":"Request / Response","text":"

      GET http://localhost:5000/api/v1/namespaces/default/contracts/listeners/1bfa3b0f-3d90-403e-94a4-af978d8c5b14?fetchstatus

      {\n  \"id\": \"1bfa3b0f-3d90-403e-94a4-af978d8c5b14\",\n  \"interface\": {\n    \"id\": \"8bdd27a5-67c1-4960-8d1e-7aa31b9084d3\"\n  },\n  \"namespace\": \"default\",\n  \"name\": \"sb-66209ffc-d355-4ac0-7151-bc82490ca9df\",\n  \"protocolId\": \"sb-66209ffc-d355-4ac0-7151-bc82490ca9df\",\n  \"location\": {\n    \"address\": \"0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1\"\n  },\n  \"created\": \"2022-02-17T22:02:36.34549538Z\",\n  \"event\": {\n    \"name\": \"Changed\",\n    \"description\": \"\",\n    \"params\": [\n      {\n        \"name\": \"from\",\n        \"schema\": {\n          \"type\": \"string\",\n          \"details\": {\n            \"type\": \"address\",\n            \"internalType\": \"address\",\n            \"indexed\": true\n          }\n        }\n      },\n      {\n        \"name\": \"value\",\n        \"schema\": {\n          \"type\": \"integer\",\n          \"details\": {\n            \"type\": \"uint256\",\n            \"internalType\": \"uint256\"\n          }\n        }\n      }\n    ]\n  },\n  \"status\": {\n    \"checkpoint\": {\n      \"block\": 0,\n      \"transactionIndex\": -1,\n      \"logIndex\": -1\n    },\n    \"catchup\": true\n  },\n  \"options\": {\n    \"firstEvent\": \"oldest\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#subscribe-to-events-from-our-contract","title":"Subscribe to events from our contract","text":"

      Now that we've told FireFly that it should listen for specific events on the blockchain, we can set up a Subscription for FireFly to send events to our app. To set up our subscription, we will make a POST to the /subscriptions endpoint.

      We will set a friendly name simple-storage to identify the Subscription when we are connecting to it in the next step.

      We're also going to set up a filter to only send events blockchain events from our listener that we created in the previous step. To do that, we'll copy the listener ID from the step above (1bfa3b0f-3d90-403e-94a4-af978d8c5b14) and set that as the value of the listener field in the example below:

      "},{"location":"tutorials/custom_contracts/ethereum/#request_8","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/subscriptions

      {\n  \"namespace\": \"default\",\n  \"name\": \"simple-storage\",\n  \"transport\": \"websockets\",\n  \"filter\": {\n    \"events\": \"blockchain_event_received\",\n    \"blockchainevent\": {\n      \"listener\": \"1bfa3b0f-3d90-403e-94a4-af978d8c5b14\"\n    }\n  },\n  \"options\": {\n    \"firstEvent\": \"oldest\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response_8","title":"Response","text":"
      {\n  \"id\": \"f826269c-65ed-4634-b24c-4f399ec53a32\",\n  \"namespace\": \"default\",\n  \"name\": \"simple-storage\",\n  \"transport\": \"websockets\",\n  \"filter\": {\n    \"events\": \"blockchain_event_received\",\n    \"message\": {},\n    \"transaction\": {},\n    \"blockchainevent\": {\n      \"listener\": \"1bfa3b0f-3d90-403e-94a4-af978d8c5b14\"\n    }\n  },\n  \"options\": {\n    \"firstEvent\": \"-1\",\n    \"withData\": false\n  },\n  \"created\": \"2022-03-15T17:35:30.131698921Z\",\n  \"updated\": null\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#receive-custom-smart-contract-events","title":"Receive custom smart contract events","text":"

      The last step is to connect a WebSocket client to FireFly to receive the event. You can use any WebSocket client you like, such as Postman or a command line app like websocat.

      Connect your WebSocket client to ws://localhost:5000/ws.

      After connecting the WebSocket client, send a message to tell FireFly to:

      • Start sending events
      • For the Subscription named simple-storage
      • On the default namespace
      • Automatically \"ack\" each event which will let FireFly immediately send the next event when available
      {\n  \"type\": \"start\",\n  \"name\": \"simple-storage\",\n  \"namespace\": \"default\",\n  \"autoack\": true\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#websocket-event","title":"WebSocket event","text":"

      After creating the subscription, you should see an event arrive on the connected WebSocket client that looks something like this:

      {\n  \"id\": \"0f4a31d6-9743-4537-82df-5a9c76ccbd1e\",\n  \"sequence\": 24,\n  \"type\": \"blockchain_event_received\",\n  \"namespace\": \"default\",\n  \"reference\": \"dd3e1554-c832-47a8-898e-f1ee406bea41\",\n  \"created\": \"2022-03-15T17:32:27.824417878Z\",\n  \"blockchainevent\": {\n    \"id\": \"dd3e1554-c832-47a8-898e-f1ee406bea41\",\n    \"sequence\": 7,\n    \"source\": \"ethereum\",\n    \"namespace\": \"default\",\n    \"name\": \"Changed\",\n    \"listener\": \"1bfa3b0f-3d90-403e-94a4-af978d8c5b14\",\n    \"protocolId\": \"000000000010/000000/000000\",\n    \"output\": {\n      \"from\": \"0xb7e6a5eb07a75a2c81801a157192a82bcbce0f21\",\n      \"value\": \"3\"\n    },\n    \"info\": {\n      \"address\": \"0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1\",\n      \"blockNumber\": \"10\",\n      \"logIndex\": \"0\",\n      \"signature\": \"Changed(address,uint256)\",\n      \"subId\": \"sb-724b8416-786d-4e67-4cd3-5bae4a26eb0e\",\n      \"timestamp\": \"1647365460\",\n      \"transactionHash\": \"0xd5b5c716554097b2868d8705241bb2189bb76d16300f702ad05b0b02fccc4afb\",\n      \"transactionIndex\": \"0x0\"\n    },\n    \"timestamp\": \"2022-03-15T17:31:00Z\",\n    \"tx\": {\n      \"type\": \"\"\n    }\n  },\n  \"subscription\": {\n    \"id\": \"f826269c-65ed-4634-b24c-4f399ec53a32\",\n    \"namespace\": \"default\",\n    \"name\": \"simple-storage\"\n  }\n}\n

      You can see in the event received over the WebSocket connection, the blockchain event that was emitted from our first transaction, which happened in the past. We received this event, because when we set up both the Listener, and the Subscription, we specified the \"firstEvent\" as \"oldest\". This tells FireFly to look for this event from the beginning of the blockchain, and that your app is interested in FireFly events since the beginning of FireFly's event history.

      In the event, we can also see the blockchainevent itself, which has an output object. These are the params in our FireFly Interface, and the actual output of the event. Here we can see the value is 3 which is what we set the integer to in our original transaction.

      "},{"location":"tutorials/custom_contracts/ethereum/#subscription-offset","title":"Subscription offset","text":"

      If you query by the ID of your subscription with the fetchstatus parameter, you can see its current offset.

      GET http://localhost:5000/api/v1/namespaces/default/subscriptions/f826269c-65ed-4634-b24c-4f399ec53a32

      {\n  \"id\": \"f826269c-65ed-4634-b24c-4f399ec53a32\",\n  \"namespace\": \"default\",\n  \"name\": \"simple-storage\",\n  \"transport\": \"websockets\",\n  \"filter\": {\n    \"events\": \"blockchain_event_received\",\n    \"message\": {},\n    \"transaction\": {},\n    \"blockchainevent\": {\n      \"listener\": \"1bfa3b0f-3d90-403e-94a4-af978d8c5b14\"\n    }\n  },\n  \"options\": {\n    \"firstEvent\": \"-1\",\n    \"withData\": false\n  },\n  \"status\": {\n    \"offset\": 20\n  }\n  \"created\": \"2022-03-15T17:35:30.131698921Z\",\n  \"updated\": null\n}\n

      You've reached the end of the main guide to working with custom smart contracts in FireFly. Hopefully this was helpful and gives you what you need to get up and running with your own contracts. There are several additional ways to invoke or query smart contracts detailed below, so feel free to keep reading if you're curious.

      "},{"location":"tutorials/custom_contracts/ethereum/#appendix-i-work-with-a-custom-contract-without-creating-a-named-api","title":"Appendix I: Work with a custom contract without creating a named API","text":"

      FireFly aims to offer a developer-friendly and flexible approach to using custom smart contracts. The guide above has detailed the most robust and feature-rich way to use custom contracts with FireFly, but there are several alternative API usage patterns available as well.

      It is possible to broadcast a contract interface and use a smart contract that implements that interface without also broadcasting a named API as above. There are several key differences (which may or may not be desirable) compared to the method outlined in the full guide above:

      • OpenAPI Spec and Swagger UI are not available
      • Each HTTP request to invoke/query the contract will need to include the contract location
      • The contract location will not have been broadcasted to all other members of the network
      • The URL to invoke/query the contract will be different (described below)
      "},{"location":"tutorials/custom_contracts/ethereum/#request_9","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces/8bdd27a5-67c1-4960-8d1e-7aa31b9084d3/invoke/set

      {\n  \"location\": {\n    \"address\": \"0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1\"\n  },\n  \"input\": {\n    \"newValue\": 7\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response_9","title":"Response","text":"
      {\n  \"id\": \"f310fa4a-73d8-4777-9f9d-dfa5012a052f\"\n}\n

      All of the same invoke, query, and subscribe endpoints are available on the contract interface itself.

      "},{"location":"tutorials/custom_contracts/ethereum/#appendix-ii-work-directly-with-contracts-with-inline-requests","title":"Appendix II: Work directly with contracts with inline requests","text":"

      The final way of working with custom smart contracts with FireFly is to just put everything FireFly needs all in one request, each time a contract is invoked or queried. This is the most lightweight, but least feature-rich way of using a custom contract.

      To do this, we will need to put both the contract location, and a subset of the FireFly Interface that describes the method we want to invoke in the request body, in addition to the function input.

      "},{"location":"tutorials/custom_contracts/ethereum/#request_10","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/contracts/invoke

      {\n  \"location\": {\n    \"address\": \"0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1\"\n  },\n  \"method\": {\n    \"name\": \"set\",\n    \"params\": [\n      {\n        \"name\": \"x\",\n        \"schema\": {\n          \"type\": \"integer\",\n          \"details\": {\n            \"type\": \"uint256\"\n          }\n        }\n      }\n    ],\n    \"returns\": []\n  },\n  \"input\": {\n    \"x\": 42\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/ethereum/#response_10","title":"Response","text":"
      {\n  \"id\": \"386d3e23-e4bc-4a9b-bc1f-452f0a8c9ae5\"\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/","title":"Work with Hyperledger Fabric chaincodes","text":"

      This guide describes the steps to deploy a chaincode to a Hyperledger Fabric blockchain and use FireFly to interact with it in order to submit transactions, query for states and listening for events.

      NOTE: This guide assumes that you are running a local FireFly stack with at least 2 members and a Fabric blockchain created by the FireFly CLI. If you need help getting that set up, please see the Getting Started guide to Start your environment.

      "},{"location":"tutorials/custom_contracts/fabric/#example-smart-contract","title":"Example smart contract","text":"

      For this tutorial, we will be using a well known, but slightly modified smart contract called asset_transfer. It's based on the asset-transfer-basic chaincode in the fabric-samples project. Check out the code repository and use the source code provided below to replace part of the content of the file fabric-samples/asset-transfer-basic/chaincode-go/chaincode/smartcontract.go.

      Find the following return statement in the function CreateAsset:

          return ctx.GetStub().PutState(id, assetJSON)\n

      and replace it with the following, so that an event will be emitted when the transaction is committed to the channel ledger:

        err = ctx.GetStub().PutState(id, assetJSON)\n  if err != nil {\n    return err\n  }\n  return ctx.GetStub().SetEvent(\"AssetCreated\", assetJSON)\n
      "},{"location":"tutorials/custom_contracts/fabric/#create-the-chaincode-package","title":"Create the chaincode package","text":"

      Use the peer command to create the chaincode package for deployment. You can download the peer binary from the releases page of the Fabric project or build it from source.

        ~ johndoe$ cd fabric-samples/asset-transfer-basic/chaincode-go\n  chaincode-go johndoe$ touch core.yaml\n  chaincode-go johndoe$ peer lifecycle chaincode package -p . --label asset_transfer ./asset_transfer.zip\n

      The peer command requires an empty core.yaml file to be present in the working directory to perform the packaging. That's what touch core.yaml did above

      The resulting asset_transfer.zip archive file will be used in the next step to deploy to the Fabric network used in FireFly.

      "},{"location":"tutorials/custom_contracts/fabric/#contract-deployment","title":"Contract deployment","text":"

      Deployment of smart contracts is not currently within the scope of responsibility for FireFly. You can use your standard blockchain specific tools to deploy your contract to the blockchain you are using.

      The FireFly CLI provides a convenient function to deploy a chaincode package to a local FireFly stack.

      NOTE: The contract deployment function of the FireFly CLI is a convenience function to speed up local development, and not intended for production applications

      ~ johndoe$ ff help deploy fabric\nDeploy a packaged chaincode to the Fabric network used by a FireFly stack\n\nUsage:\n  ff deploy fabric <stack_name> <chaincode_package> <channel> <chaincodeName> <version> [flags]\n

      Notice the various parameters used by the command ff deploy fabric. We'll tell the FireFly to deploy using the following parameter values, if your stack setup is different, update the command accordingly:

      • stack name: dev
      • channel: firefly (this is the channel that is created by the FireFly CLI when bootstrapping the stack, replace if you use a different channel in your setup)
      • chaincode name: asset_transfer (must match the value of the --label parameter when creating the chaincode package)
      • version: 1.0
      $ ff deploy fabric dev asset_transfer.zip firefly asset_transfer 1.0\ninstalling chaincode\nquerying installed chaincode\napproving chaincode\ncommitting chaincode\n{\n  \"chaincode\": \"asset_transfer\",\n  \"channel\": \"firefly\"\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/#the-firefly-interface-format","title":"The FireFly Interface Format","text":"

      In order to teach FireFly how to interact with the chaincode, a FireFly Interface (FFI) document is needed. While Ethereum (or other EVM based blockchains) requires an Application Binary Interface (ABI) to govern the interaction between the client and the smart contract, which is specific to each smart contract interface design, Fabric defines a generic chaincode interface and leaves the encoding and decoding of the parameter values to the discretion of the chaincode developer.

      As a result, the FFI document for a Fabric chaincode must be hand-crafted. The following FFI sample demonstrates the specification for the following common cases:

      • structured JSON, used here for the list of chaincode function CreateAsset input parameters
      • array of JSON, used here for the chaincode function GetAllAssets output
      • structured JSON, used here for the list of chaincode event AssetCreated properties
      {\n  \"namespace\": \"default\",\n  \"name\": \"asset_transfer\",\n  \"description\": \"Spec interface for the asset-transfer-basic golang chaincode\",\n  \"version\": \"1.0\",\n  \"methods\": [\n    {\n      \"name\": \"GetAllAssets\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [],\n      \"returns\": [\n        {\n          \"name\": \"\",\n          \"schema\": {\n            \"type\": \"array\",\n            \"details\": {\n              \"type\": \"object\",\n              \"properties\": {\n                \"type\": \"string\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"CreateAsset\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"id\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"color\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"size\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"owner\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        }\n      ],\n      \"returns\": []\n    }\n  ],\n  \"events\": [\n    {\n      \"name\": \"AssetCreated\"\n    }\n  ]\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/#input-parameters","title":"Input parameters","text":"

      For the params section of the CreateAsset function, it is critical that the sequence of the properties (id, color, size, owner, value) matches the order of the input parameters in the chaincode's function signature:

      func CreateAsset(ctx contractapi.TransactionContextInterface, id string, color string, size int, owner string, appraisedValue int) error\n
      "},{"location":"tutorials/custom_contracts/fabric/#return-values","title":"Return values","text":"

      FireFly can automatically decode JSON payloads in the return values. That's why the returns section of the GetAllAssets function only needs to specify the type as array of objects, without having to specify the detailed structure of the JSON payload.

      On the other hand, if certain properties of the returned value are to be hidden, then you can provide a detailed structure of the JSON object with the desired properties. This is demonstrated in the JSON structure for the event payload, see below, where the property AppraisedValue is omitted from the output.

      "},{"location":"tutorials/custom_contracts/fabric/#event-payloads","title":"Event payloads","text":"

      For events, FireFly automatically decodes JSON payloads. If the event payload is not JSON, base64 encoded bytes will be returned instead. For the events section of the FFI, only the name property needs to be specified.

      "},{"location":"tutorials/custom_contracts/fabric/#broadcast-the-contract-interface","title":"Broadcast the contract interface","text":"

      Now that we have a FireFly Interface representation of our chaincode, we want to broadcast that to the entire network. This broadcast will be pinned to the blockchain, so we can always refer to this specific name and version, and everyone in the network will know exactly which contract interface we are talking about.

      We will use the FFI JSON constructed above and POST that to the /contracts/interfaces API endpoint.

      "},{"location":"tutorials/custom_contracts/fabric/#request","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces

      {\n  \"namespace\": \"default\",\n  \"name\": \"asset_transfer\",\n  \"description\": \"Spec interface for the asset-transfer-basic golang chaincode\",\n  \"version\": \"1.0\",\n  \"methods\": [\n    {\n      \"name\": \"GetAllAssets\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [],\n      \"returns\": [\n        {\n          \"name\": \"\",\n          \"schema\": {\n            \"type\": \"array\",\n            \"details\": {\n              \"type\": \"object\",\n              \"properties\": {\n                \"type\": \"string\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"CreateAsset\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"id\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"color\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"size\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"owner\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        }\n      ],\n      \"returns\": []\n    }\n  ],\n  \"events\": [\n    {\n      \"name\": \"AssetCreated\"\n    }\n  ]\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/#response","title":"Response","text":"
      {\n  \"id\": \"f1e5522c-59a5-4787-bbfd-89975e5b0954\",\n  \"message\": \"8a01fc83-5729-418b-9706-6fc17c8d2aac\",\n  \"namespace\": \"default\",\n  \"name\": \"asset_transfer\",\n  \"description\": \"Spec interface for the asset-transfer-basic golang chaincode\",\n  \"version\": \"1.1\",\n  \"methods\": [\n    {\n      \"id\": \"b31e3623-35e8-4918-bf8c-1b0d6c01de25\",\n      \"interface\": \"f1e5522c-59a5-4787-bbfd-89975e5b0954\",\n      \"name\": \"GetAllAssets\",\n      \"namespace\": \"default\",\n      \"pathname\": \"GetAllAssets\",\n      \"description\": \"\",\n      \"params\": [],\n      \"returns\": [\n        {\n          \"name\": \"\",\n          \"schema\": {\n            \"type\": \"array\",\n            \"details\": {\n              \"type\": \"object\",\n              \"properties\": {\n                \"type\": \"string\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"id\": \"e5a170d1-0be1-4697-800b-f4bcfaf71cf6\",\n      \"interface\": \"f1e5522c-59a5-4787-bbfd-89975e5b0954\",\n      \"name\": \"CreateAsset\",\n      \"namespace\": \"default\",\n      \"pathname\": \"CreateAsset\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"id\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"color\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"size\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"owner\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        }\n      ],\n      \"returns\": []\n    }\n  ],\n  \"events\": [\n    {\n      \"id\": \"27564533-30bd-4536-884e-02e5d79ec238\",\n      \"interface\": \"f1e5522c-59a5-4787-bbfd-89975e5b0954\",\n      \"namespace\": \"default\",\n      \"pathname\": \"AssetCreated\",\n      \"signature\": \"\",\n      \"name\": \"AssetCreated\",\n      \"description\": \"\",\n      \"params\": null\n    }\n  ]\n}\n

      NOTE: We can broadcast this contract interface conveniently with the help of FireFly Sandbox running at http://127.0.0.1:5108

      • Go to the Contracts Section
      • Click on Define a Contract Interface
      • Select FFI - FireFly Interface in the Interface Fromat dropdown
      • Copy the FFI JSON crafted by you into the Schema Field
      • Click on Run
      "},{"location":"tutorials/custom_contracts/fabric/#create-an-http-api-for-the-contract","title":"Create an HTTP API for the contract","text":"

      Now comes the fun part where we see some of the powerful, developer-friendly features of FireFly. The next thing we're going to do is tell FireFly to build an HTTP API for this chaincode, complete with an OpenAPI Specification and Swagger UI. As part of this, we'll also tell FireFly where the chaincode is on the blockchain.

      Like the interface broadcast above, this will also generate a broadcast which will be pinned to the blockchain so all the members of the network will be aware of and able to interact with this API.

      We need to copy the id field we got in the response from the previous step to the interface.id field in the request body below. We will also pick a name that will be part of the URL for our HTTP API, so be sure to pick a name that is URL friendly. In this case we'll call it asset_transfer. Lastly, in the location field, we're telling FireFly where an instance of the chaincode is deployed on-chain, which is a chaincode named asset_transfer in the channel firefly.

      NOTE: The location field is optional here, but if it is omitted, it will be required in every request to invoke or query the chaincode. This can be useful if you have multiple instances of the same chaincode deployed to different channels.

      "},{"location":"tutorials/custom_contracts/fabric/#request_1","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/apis

      {\n  \"name\": \"asset_transfer\",\n  \"interface\": {\n    \"id\": \"f1e5522c-59a5-4787-bbfd-89975e5b0954\"\n  },\n  \"location\": {\n    \"channel\": \"firefly\",\n    \"chaincode\": \"asset_transfer\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/#response_1","title":"Response","text":"
      {\n  \"id\": \"a9a9ab4e-2544-45d5-8824-3c05074fbf75\",\n  \"namespace\": \"default\",\n  \"interface\": {\n    \"id\": \"f1e5522c-59a5-4787-bbfd-89975e5b0954\"\n  },\n  \"location\": {\n    \"channel\": \"firefly\",\n    \"chaincode\": \"asset_transfer\"\n  },\n  \"name\": \"asset_transfer\",\n  \"message\": \"5f1556a1-5cb1-4bc6-8611-d8f88ccf9c30\",\n  \"urls\": {\n    \"openapi\": \"http://127.0.0.1:5000/api/v1/namespaces/default/apis/asset_transfer/api/swagger.json\",\n    \"ui\": \"http://127.0.0.1:5000/api/v1/namespaces/default/apis/asset_transfer/api\"\n  }\n}\n

      NOTE: We can create this Http API conveniently with the help of FireFly Sandbox running at http://127.0.0.1:5108

      • Go to the Contracts Section
      • Click on Register a Contract API
      • Select the name of your broadcasted FFI in the Contract Interface dropdown
      • In the Name Field, give a name that will be part of the URL for your Http API
      • In the Chaincode Field, give your chaincode name for which you wrote the FFI
      • In the Channel Field, give the channel name where your chaincode is deployed
      • Click on Run
      "},{"location":"tutorials/custom_contracts/fabric/#view-openapi-spec-for-the-contract","title":"View OpenAPI spec for the contract","text":"

      You'll notice in the response body that there are a couple of URLs near the bottom. If you navigate to the one labeled ui in your browser, you should see the Swagger UI for your chaincode.

      "},{"location":"tutorials/custom_contracts/fabric/#invoke-endpoints","title":"/invoke/* endpoints","text":"

      The /invoke endpoints in the generated API are for submitting transactions. These endpoints will be mapped to the POST /transactions endpoint of the FabConnect API.

      "},{"location":"tutorials/custom_contracts/fabric/#query-endpoints","title":"/query/* endpoints","text":"

      The /query endpoints in the generated API, on the other hand, are for sending query requests. These endpoints will be mapped to the POST /query endpoint of the Fabconnect API, which under the cover only sends chaincode endorsement requests to the target peer node without sending a trasaction payload to the orderer node.

      "},{"location":"tutorials/custom_contracts/fabric/#invoke-the-chaincode","title":"Invoke the chaincode","text":"

      Now that we've got everything set up, it's time to use our chaincode! We're going to make a POST request to the invoke/CreateAsset endpoint to create a new asset.

      "},{"location":"tutorials/custom_contracts/fabric/#request_2","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/apis/asset_transfer/invoke/CreateAsset

      {\n  \"input\": {\n    \"color\": \"blue\",\n    \"id\": \"asset-01\",\n    \"owner\": \"Harry\",\n    \"size\": \"30\",\n    \"value\": \"23400\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/#response_2","title":"Response","text":"
      {\n  \"id\": \"b8e905cc-bc23-434a-af7d-13c6d85ae545\",\n  \"namespace\": \"default\",\n  \"tx\": \"79d2668e-4626-4634-9448-1b40fa0d9dfd\",\n  \"type\": \"blockchain_invoke\",\n  \"status\": \"Pending\",\n  \"plugin\": \"fabric\",\n  \"input\": {\n    \"input\": {\n      \"color\": \"blue\",\n      \"id\": \"asset-02\",\n      \"owner\": \"Harry\",\n      \"size\": \"30\",\n      \"value\": \"23400\"\n    },\n    \"interface\": \"f1e5522c-59a5-4787-bbfd-89975e5b0954\",\n    \"key\": \"Org1MSP::x509::CN=org_0,OU=client::CN=fabric_ca.org1.example.com,OU=Hyperledger FireFly,O=org1.example.com,L=Raleigh,ST=North Carolina,C=US\",\n    \"location\": {\n      \"chaincode\": \"asset_transfer\",\n      \"channel\": \"firefly\"\n    },\n    \"method\": {\n      \"description\": \"\",\n      \"id\": \"e5a170d1-0be1-4697-800b-f4bcfaf71cf6\",\n      \"interface\": \"f1e5522c-59a5-4787-bbfd-89975e5b0954\",\n      \"name\": \"CreateAsset\",\n      \"namespace\": \"default\",\n      \"params\": [\n        {\n          \"name\": \"id\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"color\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"size\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"owner\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"schema\": {\n            \"type\": \"string\"\n          }\n        }\n      ],\n      \"pathname\": \"CreateAsset\",\n      \"returns\": []\n    },\n    \"methodPath\": \"CreateAsset\",\n    \"type\": \"invoke\"\n  },\n  \"created\": \"2022-05-02T17:08:40.811630044Z\",\n  \"updated\": \"2022-05-02T17:08:40.811630044Z\"\n}\n

      You'll notice that we got an ID back with status Pending, and that's expected due to the asynchronous programming model of working with custom onchain logic in FireFly. To see what the latest state is now, we can query the chaincode. In a little bit, we'll also subscribe to the events emitted by this chaincode so we can know when the state is updated in realtime.

      "},{"location":"tutorials/custom_contracts/fabric/#query-the-current-state","title":"Query the current state","text":"

      To make a read-only request to the blockchain to check the current list of assets, we can make a POST to the query/GetAllAssets endpoint.

      "},{"location":"tutorials/custom_contracts/fabric/#request_3","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/apis/asset_transfer/query/GetAllAssets

      {}\n
      "},{"location":"tutorials/custom_contracts/fabric/#response_3","title":"Response","text":"
      [\n  {\n    \"AppraisedValue\": 23400,\n    \"Color\": \"blue\",\n    \"ID\": \"asset-01\",\n    \"Owner\": \"Harry\",\n    \"Size\": 30\n  }\n]\n

      NOTE: Some chaincodes may have queries that require input parameters. That's why the query endpoint is a POST, rather than a GET so that parameters can be passed as JSON in the request body. This particular function does not have any parameters, so we just pass an empty JSON object.

      "},{"location":"tutorials/custom_contracts/fabric/#create-a-blockchain-event-listener","title":"Create a blockchain event listener","text":"

      Now that we've seen how to submit transactions and preform read-only queries to the blockchain, let's look at how to receive blockchain events so we know when things are happening in realtime.

      If you look at the source code for the smart contract we're working with above, you'll notice that it emits an event when a new asset is created. In order to receive these events, we first need to instruct FireFly to listen for this specific type of blockchain event. To do this, we create an Event Listener.

      The /contracts/listeners endpoint is RESTful so there are POST, GET, and DELETE methods available on it. To create a new listener, we will make a POST request. We are going to tell FireFly to listen to events with name \"AssetCreated\" from the FireFly Interface we defined earlier, referenced by its ID. We will also tell FireFly which channel and chaincode we expect to emit these events.

      "},{"location":"tutorials/custom_contracts/fabric/#request_4","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/contracts/listeners

      {\n  \"interface\": {\n    \"id\": \"f1e5522c-59a5-4787-bbfd-89975e5b0954\"\n  },\n  \"location\": {\n    \"channel\": \"firefly\",\n    \"chaincode\": \"asset_transfer\"\n  },\n  \"event\": {\n    \"name\": \"AssetCreated\"\n  },\n  \"options\": {\n    \"firstEvent\": \"oldest\"\n  },\n  \"topic\": \"assets\"\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/#response_4","title":"Response","text":"
      {\n  \"id\": \"6e7f5dd8-5a57-4163-a1d2-5654e784dc31\",\n  \"namespace\": \"default\",\n  \"name\": \"sb-2cac2bfa-38af-4408-4ff3-973421410e5d\",\n  \"backendId\": \"sb-2cac2bfa-38af-4408-4ff3-973421410e5d\",\n  \"location\": {\n    \"channel\": \"firefly\",\n    \"chaincode\": \"asset_transfer\"\n  },\n  \"created\": \"2022-05-02T17:19:13.144561086Z\",\n  \"event\": {\n    \"name\": \"AssetCreated\",\n    \"description\": \"\",\n    \"params\": null\n  },\n  \"signature\": \"AssetCreated\",\n  \"topic\": \"assets\",\n  \"options\": {\n    \"firstEvent\": \"oldest\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/#subscribe-to-events-from-our-contract","title":"Subscribe to events from our contract","text":"

      Now that we've told FireFly that it should listen for specific events on the blockchain, we can set up a Subscription for FireFly to send events to our client app. To set up our subscription, we will make a POST to the /subscriptions endpoint.

      We will set a friendly name asset_transfer to identify the Subscription when we are connecting to it in the next step.

      We're also going to set up a filter to only send events blockchain events from our listener that we created in the previous step. To do that, we'll copy the listener ID from the step above (6e7f5dd8-5a57-4163-a1d2-5654e784dc31) and set that as the value of the listener field in the example below:

      "},{"location":"tutorials/custom_contracts/fabric/#request_5","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/subscriptions

      {\n  \"namespace\": \"default\",\n  \"name\": \"asset_transfer\",\n  \"transport\": \"websockets\",\n  \"filter\": {\n    \"events\": \"blockchain_event_received\",\n    \"blockchainevent\": {\n      \"listener\": \"6e7f5dd8-5a57-4163-a1d2-5654e784dc31\"\n    }\n  },\n  \"options\": {\n    \"firstEvent\": \"oldest\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/#response_5","title":"Response","text":"
      {\n  \"id\": \"06d18b49-e763-4f5c-9e97-c25024fe57c8\",\n  \"namespace\": \"default\",\n  \"name\": \"asset_transfer\",\n  \"transport\": \"websockets\",\n  \"filter\": {\n    \"events\": \"blockchain_event_received\",\n    \"message\": {},\n    \"transaction\": {},\n    \"blockchainevent\": {\n      \"listener\": \"6e7f5dd8-5a57-4163-a1d2-5654e784dc31\"\n    }\n  },\n  \"options\": {\n    \"firstEvent\": \"-1\",\n    \"withData\": false\n  },\n  \"created\": \"2022-05-02T17:22:06.480181291Z\",\n  \"updated\": null\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/#receive-custom-smart-contract-events","title":"Receive custom smart contract events","text":"

      The last step is to connect a WebSocket client to FireFly to receive the event. You can use any WebSocket client you like, such as Postman or a command line app like websocat.

      Connect your WebSocket client to ws://localhost:5000/ws.

      After connecting the WebSocket client, send a message to tell FireFly to:

      • Start sending events
      • For the Subscription named asset_transfer
      • On the default namespace
      • Automatically \"ack\" each event which will let FireFly immediately send the next event when available
      {\n  \"type\": \"start\",\n  \"name\": \"asset_transfer\",\n  \"namespace\": \"default\",\n  \"autoack\": true\n}\n
      "},{"location":"tutorials/custom_contracts/fabric/#websocket-event","title":"WebSocket event","text":"

      After creating the subscription, you should see an event arrive on the connected WebSocket client that looks something like this:

      {\n  \"id\": \"d9fb86b2-b25b-43b8-80d3-936c5daa5a66\",\n  \"sequence\": 29,\n  \"type\": \"blockchain_event_received\",\n  \"namespace\": \"default\",\n  \"reference\": \"e0d670b4-a1b6-4efd-a985-06dfaaa58fe3\",\n  \"topic\": \"assets\",\n  \"created\": \"2022-05-02T17:26:57.57612001Z\",\n  \"blockchainEvent\": {\n    \"id\": \"e0d670b4-a1b6-4efd-a985-06dfaaa58fe3\",\n    \"source\": \"fabric\",\n    \"namespace\": \"default\",\n    \"name\": \"AssetCreated\",\n    \"listener\": \"6e7f5dd8-5a57-4163-a1d2-5654e784dc31\",\n    \"protocolId\": \"000000000015/000000/000000\",\n    \"output\": {\n      \"AppraisedValue\": 12300,\n      \"Color\": \"red\",\n      \"ID\": \"asset-01\",\n      \"Owner\": \"Jerry\",\n      \"Size\": 10\n    },\n    \"info\": {\n      \"blockNumber\": 15,\n      \"chaincodeId\": \"asset_transfer\",\n      \"eventIndex\": 0,\n      \"eventName\": \"AssetCreated\",\n      \"subId\": \"sb-2cac2bfa-38af-4408-4ff3-973421410e5d\",\n      \"timestamp\": 1651512414920972300,\n      \"transactionId\": \"172637bf59a3520ca6dd02f716e1043ba080e10e1cd2f98b4e6b85abcc6a6d69\",\n      \"transactionIndex\": 0\n    },\n    \"timestamp\": \"2022-05-02T17:26:54.9209723Z\",\n    \"tx\": {\n      \"type\": \"\",\n      \"blockchainId\": \"172637bf59a3520ca6dd02f716e1043ba080e10e1cd2f98b4e6b85abcc6a6d69\"\n    }\n  },\n  \"subscription\": {\n    \"id\": \"06d18b49-e763-4f5c-9e97-c25024fe57c8\",\n    \"namespace\": \"default\",\n    \"name\": \"asset_transfer\"\n  }\n}\n

      You can see in the event received over the WebSocket connection, the blockchain event that was emitted from our first transaction, which happened in the past. We received this event, because when we set up both the Listener, and the Subscription, we specified the \"firstEvent\" as \"oldest\". This tells FireFly to look for this event from the beginning of the blockchain, and that your app is interested in FireFly events since the beginning of FireFly's event history.

      In the event, we can also see the blockchainEvent itself, which has an output object. This contains the event payload that was set by the chaincode.

      "},{"location":"tutorials/custom_contracts/pinning/","title":"Pin off-chain data to a custom blockchain transaction","text":"

      This guide describes how to associate an arbitrary off-chain payload with a blockchain transaction on a contract of your own design. A hash of the payload will be recorded as part of the blockchain transaction, and on the receiving side, FireFly will ensure that both the on-chain and off-chain pieces are received and aggregated together.

      NOTE: This is an advanced FireFly feature. Before following any of the steps in this guide, you should be very familiar and comfortable with the basic features of how broadcast messages and private messages work, be proficient at custom contract development on your blockchain of choice, and understand the fundamentals of how FireFly interacts with custom contracts.

      "},{"location":"tutorials/custom_contracts/pinning/#designing-a-compatible-contract","title":"Designing a compatible contract","text":"

      In order to allow pinning a FireFly message batch with a custom contract transaction, your contract must meet certain criteria.

      First, any external method of the contract that will be used for associating with off-chain payloads must provide an extra parameter for passing the encoded batch data. This must be the last parameter in the method signature. This convention is chosen partly to align with the Ethereum ERC5750 standard, but should serve as a straightforward guideline for nearly any blockchain.

      Second, this method must emit a BatchPin event that can be received and parsed by FireFly. Exactly how the data is unpacked and used to emit this event will differ for each blockchain.

      "},{"location":"tutorials/custom_contracts/pinning/#ethereum","title":"Ethereum","text":"
      import \"@hyperledger/firefly-contracts/contracts/IBatchPin.sol\";\n\ncontract CustomPin {\n    IBatchPin firefly;\n\n    function setFireFlyAddress(address addr) external {\n        firefly = IBatchPin(addr);\n    }\n\n    function sayHello(bytes calldata data) external {\n        require(\n            address(firefly) != address(0),\n            \"CustomPin: FireFly address has not been set\"\n        );\n\n        /* do custom things */\n\n        firefly.pinBatchData(data);\n    }\n}\n
      • The method in question will receive packed \"batch pin\" data in its last method parameter (in the form of ABI-encoded bytes). The method must invoke the pinBatchData method of the FireFly Multiparty Contract and pass along this data payload. It is generally good practice to trigger this as a final step before returning, after the method has performed its own logic.
      • This also implies that the contract must know the on-chain location of the FireFly Multiparty Contract. How this is achieved is up to your individual implementation - the example above shows exposing a method to set the address. An application may leverage the fact that this location is available by querying the FireFly /status API (under multiparty.contract.location as of FireFly v1.1.0). However, the application must also consider how appropriately secure this functionality, and how to update this location if a multiparty \"network action\" is used to migrate the network onto a new FireFly multiparty contract.
      "},{"location":"tutorials/custom_contracts/pinning/#fabric","title":"Fabric","text":"
      package chaincode\n\nimport (\n    \"encoding/json\"\n    \"fmt\"\n\n    \"github.com/hyperledger/fabric-contract-api-go/contractapi\"\n    \"github.com/hyperledger/firefly/custompin_sample/batchpin\"\n)\n\ntype SmartContract struct {\n    contractapi.Contract\n}\n\nfunc (s *SmartContract) MyCustomPin(ctx contractapi.TransactionContextInterface, data string) error {\n    event, err := batchpin.BuildEventFromString(ctx, data)\n    if err != nil {\n        return err\n    }\n    bytes, err := json.Marshal(event)\n    if err != nil {\n        return fmt.Errorf(\"failed to marshal event: %s\", err)\n    }\n    return ctx.GetStub().SetEvent(\"BatchPin\", bytes)\n}\n
      • The method in question will received packed \"batch pin\" data in its last method parameter (in the form of a JSON-encoded string). The method must unpack this argument into a JSON object.
      • The contract must directly set a BatchPin event in the same format that is used by the FireFly Multiparty Contract.
      "},{"location":"tutorials/custom_contracts/pinning/#initializing-firefly","title":"Initializing FireFly","text":"

      Once you have a contract designed, you can initialize your environment using the blockchain of your choice.

      No special initialization arguments are needed for Ethereum.

      If you are using Fabric, you must pass the --custom-pin-support argument when initializing your FireFly stack. This will ensure that the BatchPin event listener listens to events from all chaincode deployed on the default channel, instead of only listening to events from the pre-deployed FireFly chaincode.

      "},{"location":"tutorials/custom_contracts/pinning/#invoking-the-contract","title":"Invoking the contract","text":"

      You can follow the normal steps for Ethereum or Fabric to define your contract interface and API in FireFly. When invoking the contract, you can include a message payload alongside the other parameters.

      POST http://localhost:5000/api/v1/namespaces/default/apis/custom-pin/invoke/sayHello

      {\n  \"input\": {},\n  \"message\": {\n    \"data\": [\n      {\n        \"value\": \"payload here\"\n      }\n    ]\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/pinning/#listening-for-events","title":"Listening for events","text":"

      All parties that receive the message will receive a message_confirmed on their event listeners. This event confirms that the off-chain payload has been received (via data exchange or shared storage) and that the blockchain transaction has been received and sequenced. It is guaranteed that these message_confirmed events will be ordered based on the sequence of the on-chain transactions, regardless of when the off-chain payload becomes available. This means that all parties will order messages on a given topic in exactly the same order, allowing for deterministic but decentralized event-driven architecture.

      "},{"location":"tutorials/custom_contracts/tezos/","title":"Work with Tezos smart contracts","text":"

      This guide describes the steps to deploy a smart contract to a Tezos blockchain and use FireFly to interact with it in order to submit transactions, query for states and listening for events.

      "},{"location":"tutorials/custom_contracts/tezos/#smart-contract-languages","title":"Smart Contract Languages","text":"

      Smart contracts on Tezos can be programmed using familiar, developer-friendly languages. All features available on Tezos can be written in any of the high-level languages used to write smart contracts, such as Archetype, LIGO, and SmartPy. These languages all compile down to Michelson and you can switch between languages based on your preferences and projects.

      NOTE: For this tutorial we are going to use SmartPy for building Tezos smart contracts utilizing the broadly adopted Python language.

      "},{"location":"tutorials/custom_contracts/tezos/#example-smart-contract","title":"Example smart contract","text":"

      First let's look at a simple contract smart contract called SimpleStorage, which we will be using on a Tezos blockchain. Here we have one state variable called 'storedValue' and initialized with the value 12. During initialization the type of the variable was defined as 'int'. You can see more at SmartPy types. And then we added a simple test, which set the storage value to 15 and checks that the value was changed as expected.

      NOTE: Smart contract's tests (marked with @sp.add_test annotation) are used to verify the validity of contract entrypoints and do not affect the state of the contract during deployment.

      Here is the source for this contract:

      import smartpy as sp\n\n@sp.module\ndef main():\n    # Declares a new contract\n    class SimpleStorage(sp.Contract):\n        # Storage. Persists in between transactions\n        def __init__(self, value):\n            self.data.x = value\n\n        # Allows the stored integer to be changed\n        @sp.entrypoint\n        def set(self, params):\n            self.data.x = params.value\n\n        # Returns the currently stored integer\n        @sp.onchain_view()\n        def get(self):\n            return self.data.x\n\n@sp.add_test()\ndef test():\n    # Create a test scenario\n    scenario = sp.test_scenario(\"Test simple storage\", main)\n    scenario.h1(\"SimpleStorage\")\n\n    # Initialize the contract\n    c = main.SimpleStorage(12)\n\n    # Run some test cases\n    scenario += c\n    c.set(value=15)\n    scenario.verify(c.data.x == 15)\n    scenario.verify(scenario.compute(c.get()) == 15)\n
      "},{"location":"tutorials/custom_contracts/tezos/#contract-deployment-via-smartpy-ide","title":"Contract deployment via SmartPy IDE","text":"

      To deploy the contract, we will use SmartPy IDE.

      1. Open an IDE;
      2. Paste the contract code;
      3. Click \"Run code\" button;
      4. Then you will see \"Show Michelson\" button, click on that;
      5. On the opened pop-up click button \"Deploy Contract\";
      6. Choose the Ghostnet network;
      7. Select an account, which you're going to use to deploy the contract;
      8. Click \"Estimate Cost From RPC\" button;
      9. Click \"Deploy Contract\" button;

      Here we can see that our new contract address is KT1ED4gj2xZnp8318yxa5NpvyvW15pqe4yFg. This is the address that we will reference in the rest of this guide.

      "},{"location":"tutorials/custom_contracts/tezos/#contract-deployment-via-http-api","title":"Contract deployment via HTTP API","text":"

      To deploy the contract we can use HTTP API: POST http://localhost:5000/api/v1/namespaces/default/contracts/deploy

      {\n  \"contract\": {\n    \"code\": [\n      {\n        \"prim\": \"storage\",\n        \"args\": [\n          {\n            \"prim\": \"int\"\n          }\n        ]\n      },\n      {\n        \"prim\": \"parameter\",\n        \"args\": [\n          {\n            \"prim\": \"int\",\n            \"annots\": [\"%set\"]\n          }\n        ]\n      },\n      {\n        \"prim\": \"code\",\n        \"args\": [\n          [\n            {\n              \"prim\": \"CAR\"\n            },\n            {\n              \"prim\": \"NIL\",\n              \"args\": [\n                {\n                  \"prim\": \"operation\"\n                }\n              ]\n            },\n            {\n              \"prim\": \"PAIR\"\n            }\n          ]\n        ]\n      },\n      {\n        \"prim\": \"view\",\n        \"args\": [\n          {\n            \"string\": \"get\"\n          },\n          {\n            \"prim\": \"unit\"\n          },\n          {\n            \"prim\": \"int\"\n          },\n          [\n            {\n              \"prim\": \"CDR\"\n            }\n          ]\n        ]\n      }\n    ],\n    \"storage\": {\n      \"int\": \"12\"\n    }\n  }\n}\n

      The contract field has two fields - code with Michelson code of contract and storage with initial Storage values.

      The response of request above:

      {\n  \"id\": \"0c3810c7-baed-4077-9d2c-af316a4a567f\",\n  \"namespace\": \"default\",\n  \"tx\": \"21d03e6d-d106-48f4-aacd-688bf17b71fd\",\n  \"type\": \"blockchain_deploy\",\n  \"status\": \"Pending\",\n  \"plugin\": \"tezos\",\n  \"input\": {\n    \"contract\": {\n      \"code\": [\n        {\n          \"args\": [\n            {\n              \"prim\": \"int\"\n            }\n          ],\n          \"prim\": \"storage\"\n        },\n        {\n          \"args\": [\n            {\n              \"annots\": [\"%set\"],\n              \"prim\": \"int\"\n            }\n          ],\n          \"prim\": \"parameter\"\n        },\n        {\n          \"args\": [\n            [\n              {\n                \"prim\": \"CAR\"\n              },\n              {\n                \"args\": [\n                  {\n                    \"prim\": \"operation\"\n                  }\n                ],\n                \"prim\": \"NIL\"\n              },\n              {\n                \"prim\": \"PAIR\"\n              }\n            ]\n          ],\n          \"prim\": \"code\"\n        },\n        {\n          \"args\": [\n            {\n              \"string\": \"get\"\n            },\n            {\n              \"prim\": \"unit\"\n            },\n            {\n              \"prim\": \"int\"\n            },\n            [\n              {\n                \"prim\": \"CDR\"\n              }\n            ]\n          ],\n          \"prim\": \"view\"\n        }\n      ],\n      \"storage\": {\n        \"int\": \"12\"\n      }\n    },\n    \"definition\": null,\n    \"input\": null,\n    \"key\": \"tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31\",\n    \"options\": null\n  },\n  \"created\": \"2024-04-01T14:20:20.665039Z\",\n  \"updated\": \"2024-04-01T14:20:20.665039Z\"\n}\n

      The success result of deploy can be checked by GET http://localhost:5000/api/v1/namespaces/default/operations/0c3810c7-baed-4077-9d2c-af316a4a567f where 0c3810c7-baed-4077-9d2c-af316a4a567f is operation id from response above.

      The success response:

      {\n  \"id\": \"0c3810c7-baed-4077-9d2c-af316a4a567f\",\n  \"namespace\": \"default\",\n  \"tx\": \"21d03e6d-d106-48f4-aacd-688bf17b71fd\",\n  \"type\": \"blockchain_deploy\",\n  \"status\": \"Succeeded\",\n  \"plugin\": \"tezos\",\n  \"input\": {\n    \"contract\": {\n      \"code\": [\n        {\n          \"args\": [\n            {\n              \"prim\": \"int\"\n            }\n          ],\n          \"prim\": \"storage\"\n        },\n        {\n          \"args\": [\n            {\n              \"annots\": [\"%set\"],\n              \"prim\": \"int\"\n            }\n          ],\n          \"prim\": \"parameter\"\n        },\n        {\n          \"args\": [\n            [\n              {\n                \"prim\": \"CAR\"\n              },\n              {\n                \"args\": [\n                  {\n                    \"prim\": \"operation\"\n                  }\n                ],\n                \"prim\": \"NIL\"\n              },\n              {\n                \"prim\": \"PAIR\"\n              }\n            ]\n          ],\n          \"prim\": \"code\"\n        },\n        {\n          \"args\": [\n            {\n              \"string\": \"get\"\n            },\n            {\n              \"prim\": \"unit\"\n            },\n            {\n              \"prim\": \"int\"\n            },\n            [\n              {\n                \"prim\": \"CDR\"\n              }\n            ]\n          ],\n          \"prim\": \"view\"\n        }\n      ],\n      \"storage\": {\n        \"int\": \"12\"\n      }\n    },\n    \"definition\": null,\n    \"input\": null,\n    \"key\": \"tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31\",\n    \"options\": null\n  },\n  \"output\": {\n    \"headers\": {\n      \"requestId\": \"default:0c3810c7-baed-4077-9d2c-af316a4a567f\",\n      \"type\": \"TransactionSuccess\"\n    },\n    \"protocolId\": \"ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH\",\n    \"transactionHash\": \"ootDut4xxR2yeYz6JuySuyTVZnXgda2t8SYrk3iuJpm531TZuCj\"\n  },\n  \"created\": \"2024-04-01T14:20:20.665039Z\",\n  \"updated\": \"2024-04-01T14:20:20.665039Z\",\n  \"detail\": {\n    \"created\": \"2024-04-01T14:20:21.928976Z\",\n    \"firstSubmit\": \"2024-04-01T14:20:22.714493Z\",\n    \"from\": \"tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31\",\n    \"gasPrice\": \"0\",\n    \"historySummary\": [\n      {\n        \"count\": 1,\n        \"firstOccurrence\": \"2024-04-01T14:20:21.930764Z\",\n        \"lastOccurrence\": \"2024-04-01T14:20:21.930765Z\",\n        \"subStatus\": \"Received\"\n      },\n      {\n        \"action\": \"AssignNonce\",\n        \"count\": 2,\n        \"firstOccurrence\": \"2024-04-01T14:20:21.930767Z\",\n        \"lastOccurrence\": \"2024-04-01T14:20:22.714772Z\"\n      },\n      {\n        \"action\": \"RetrieveGasPrice\",\n        \"count\": 1,\n        \"firstOccurrence\": \"2024-04-01T14:20:22.714774Z\",\n        \"lastOccurrence\": \"2024-04-01T14:20:22.714774Z\"\n      },\n      {\n        \"action\": \"SubmitTransaction\",\n        \"count\": 1,\n        \"firstOccurrence\": \"2024-04-01T14:20:22.715269Z\",\n        \"lastOccurrence\": \"2024-04-01T14:20:22.715269Z\"\n      },\n      {\n        \"action\": \"ReceiveReceipt\",\n        \"count\": 1,\n        \"firstOccurrence\": \"2024-04-01T14:20:29.244396Z\",\n        \"lastOccurrence\": \"2024-04-01T14:20:29.244396Z\"\n      },\n      {\n        \"action\": \"Confirm\",\n        \"count\": 1,\n        \"firstOccurrence\": \"2024-04-01T14:20:29.244762Z\",\n        \"lastOccurrence\": \"2024-04-01T14:20:29.244762Z\"\n      }\n    ],\n    \"id\": \"default:0c3810c7-baed-4077-9d2c-af316a4a567f\",\n    \"lastSubmit\": \"2024-04-01T14:20:22.714493Z\",\n    \"nonce\": \"23094946\",\n    \"policyInfo\": {},\n    \"receipt\": {\n      \"blockHash\": \"BLvWL4t8GbaufGcQwiv3hHCsvgD6qwXfAXofyvojSMoFeGMXMR1\",\n      \"blockNumber\": \"5868268\",\n      \"contractLocation\": {\n        \"address\": \"KT1CkTPsgTUQxR3CCpvtrcuQFV5Jf7cJgHFg\"\n      },\n      \"extraInfo\": [\n        {\n          \"consumedGas\": \"584\",\n          \"contractAddress\": \"KT1CkTPsgTUQxR3CCpvtrcuQFV5Jf7cJgHFg\",\n          \"counter\": null,\n          \"errorMessage\": null,\n          \"fee\": null,\n          \"from\": null,\n          \"gasLimit\": null,\n          \"paidStorageSizeDiff\": \"75\",\n          \"status\": \"applied\",\n          \"storage\": null,\n          \"storageLimit\": null,\n          \"storageSize\": \"75\",\n          \"to\": null\n        }\n      ],\n      \"protocolId\": \"ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH\",\n      \"success\": true,\n      \"transactionIndex\": \"0\"\n    },\n    \"sequenceId\": \"018e9a08-582a-01ec-9209-9d79ef742c9b\",\n    \"status\": \"Succeeded\",\n    \"transactionData\": \"c37274b662d68da8fdae2a02ad6c460a79933c70c6fa7500dc98a9ade6822f026d00673bb6e6298063f97940953de23d441ab20bf757f602a3cd810bad05b003000000000041020000003c0500045b00000004257365740501035b050202000000080316053d036d03420991000000130100000003676574036c035b020000000203170000000000000002000c\",\n    \"transactionHash\": \"ootDut4xxR2yeYz6JuySuyTVZnXgda2t8SYrk3iuJpm531TZuCj\",\n    \"transactionHeaders\": {\n      \"from\": \"tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31\",\n      \"nonce\": \"23094946\"\n    },\n    \"updated\": \"2024-04-01T14:20:29.245172Z\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/tezos/#the-firefly-interface-format","title":"The FireFly Interface Format","text":"

      As we know from the previous section - smart contracts on the Tezos blockchain are using the domain-specific, stack-based programming language called Michelson. It is a key component of the Tezos platform and plays a fundamental role in defining the behavior of smart contracts and facilitating their execution. This language is very efficient but also a bit tricky and challenging for learning, so in order to teach FireFly how to interact with the smart contract, we will be using FireFly Interface (FFI) to define the contract inteface which later will be encoded to Michelson.

      "},{"location":"tutorials/custom_contracts/tezos/#schema-details","title":"Schema details","text":"

      The details field is used to encapsulate blockchain specific type information about a specific field. (More details at schema details)

      "},{"location":"tutorials/custom_contracts/tezos/#supported-tezos-types","title":"Supported Tezos types","text":"
      • nat
      • integer
      • string
      • address
      • bytes
      • boolean
      • variant
      • list
      • struct
      • map
      "},{"location":"tutorials/custom_contracts/tezos/#internal-type-vs-internal-schema","title":"Internal type vs Internal schema","text":"

      internalType is a field which is used to describe tezos primitive types

      {\n  \"details\": {\n    \"type\": \"address\",\n    \"internalType\": \"address\"\n  }\n}\n

      internalSchema in turn is used to describe more complex tezos types as list, struct or variant

      Struct example:

      {\n  \"details\": {\n    \"type\": \"schema\",\n    \"internalSchema\": {\n      \"type\": \"struct\",\n      \"args\": [\n        {\n          \"name\": \"metadata\",\n          \"type\": \"bytes\"\n        },\n        {\n          \"name\": \"token_id\",\n          \"type\": \"nat\"\n        }\n      ]\n    }\n  }\n}\n

      List example:

      {\n  \"details\": {\n    \"type\": \"schema\",\n    \"internalSchema\": {\n      \"type\": \"struct\",\n      \"args\": [\n        {\n          \"name\": \"metadata\",\n          \"type\": \"bytes\"\n        },\n        {\n          \"name\": \"token_id\",\n          \"type\": \"nat\"\n        }\n      ]\n    }\n  }\n}\n

      Variant example:

      {\n  \"details\": {\n    \"type\": \"schema\",\n    \"internalSchema\": {\n      \"type\": \"variant\",\n      \"variants\": [\"add_operator\", \"remove_operator\"],\n      \"args\": [\n        {\n          \"type\": \"struct\",\n          \"args\": [\n            {\n              \"name\": \"owner\",\n              \"type\": \"address\"\n            },\n            {\n              \"name\": \"operator\",\n              \"type\": \"address\"\n            },\n            {\n              \"name\": \"token_id\",\n              \"type\": \"nat\"\n            }\n          ]\n        }\n      ]\n    }\n  }\n}\n

      Map example:

      {\n  \"details\": {\n    \"type\": \"schema\",\n    \"internalSchema\": {\n      \"type\": \"map\",\n      \"args\": [\n        {\n          \"name\": \"key\",\n          \"type\": \"integer\"\n        },\n        {\n          \"name\": \"value\",\n          \"type\": \"string\"\n        }\n      ]\n    }\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/tezos/#options","title":"Options","text":"

      Option type is used to indicate a value as optional (see more at smartpy options)

      {\n  \"details\": {\n    \"type\": \"string\",\n    \"internalType\": \"string\",\n    \"kind\": \"option\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/tezos/#fa2-example","title":"FA2 example","text":"

      The following FFI sample demonstrates the specification for the widely used FA2 (analogue of ERC721 for EVM) smart contract:

      {\n  \"namespace\": \"default\",\n  \"name\": \"fa2\",\n  \"version\": \"v1.0.0\",\n  \"description\": \"\",\n  \"methods\": [\n    {\n      \"name\": \"burn\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"token_ids\",\n          \"schema\": {\n            \"type\": \"array\",\n            \"details\": {\n              \"type\": \"nat\",\n              \"internalType\": \"nat\"\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    },\n    {\n      \"name\": \"destroy\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [],\n      \"returns\": []\n    },\n    {\n      \"name\": \"mint\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"owner\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"details\": {\n              \"type\": \"address\",\n              \"internalType\": \"address\"\n            }\n          }\n        },\n        {\n          \"name\": \"requests\",\n          \"schema\": {\n            \"type\": \"array\",\n            \"details\": {\n              \"type\": \"schema\",\n              \"internalSchema\": {\n                \"type\": \"struct\",\n                \"args\": [\n                  {\n                    \"name\": \"metadata\",\n                    \"type\": \"bytes\"\n                  },\n                  {\n                    \"name\": \"token_id\",\n                    \"type\": \"nat\"\n                  }\n                ]\n              }\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    },\n    {\n      \"name\": \"pause\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"pause\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"details\": {\n              \"type\": \"boolean\",\n              \"internalType\": \"boolean\"\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    },\n    {\n      \"name\": \"select\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"batch\",\n          \"schema\": {\n            \"type\": \"array\",\n            \"details\": {\n              \"type\": \"schema\",\n              \"internalSchema\": {\n                \"type\": \"struct\",\n                \"args\": [\n                  {\n                    \"name\": \"token_id\",\n                    \"type\": \"nat\"\n                  },\n                  {\n                    \"name\": \"recipient\",\n                    \"type\": \"address\"\n                  },\n                  {\n                    \"name\": \"token_id_start\",\n                    \"type\": \"nat\"\n                  },\n                  {\n                    \"name\": \"token_id_end\",\n                    \"type\": \"nat\"\n                  }\n                ]\n              }\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    },\n    {\n      \"name\": \"transfer\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"batch\",\n          \"schema\": {\n            \"type\": \"array\",\n            \"details\": {\n              \"type\": \"schema\",\n              \"internalSchema\": {\n                \"type\": \"struct\",\n                \"args\": [\n                  {\n                    \"name\": \"from_\",\n                    \"type\": \"address\"\n                  },\n                  {\n                    \"name\": \"txs\",\n                    \"type\": \"list\",\n                    \"args\": [\n                      {\n                        \"type\": \"struct\",\n                        \"args\": [\n                          {\n                            \"name\": \"to_\",\n                            \"type\": \"address\"\n                          },\n                          {\n                            \"name\": \"token_id\",\n                            \"type\": \"nat\"\n                          },\n                          {\n                            \"name\": \"amount\",\n                            \"type\": \"nat\"\n                          }\n                        ]\n                      }\n                    ]\n                  }\n                ]\n              }\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    },\n    {\n      \"name\": \"update_admin\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"admin\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"details\": {\n              \"type\": \"address\",\n              \"internalType\": \"address\"\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    },\n    {\n      \"name\": \"update_operators\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"requests\",\n          \"schema\": {\n            \"type\": \"array\",\n            \"details\": {\n              \"type\": \"schema\",\n              \"internalSchema\": {\n                \"type\": \"variant\",\n                \"variants\": [\"add_operator\", \"remove_operator\"],\n                \"args\": [\n                  {\n                    \"type\": \"struct\",\n                    \"args\": [\n                      {\n                        \"name\": \"owner\",\n                        \"type\": \"address\"\n                      },\n                      {\n                        \"name\": \"operator\",\n                        \"type\": \"address\"\n                      },\n                      {\n                        \"name\": \"token_id\",\n                        \"type\": \"nat\"\n                      }\n                    ]\n                  }\n                ]\n              }\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    }\n  ],\n  \"events\": []\n}\n
      "},{"location":"tutorials/custom_contracts/tezos/#broadcast-the-contract-interface","title":"Broadcast the contract interface","text":"

      Now that we have a FireFly Interface representation of our smart contract, we want to broadcast that to the entire network. This broadcast will be pinned to the blockchain, so we can always refer to this specific name and version, and everyone in the network will know exactly which contract interface we are talking about.

      We will use the FFI JSON constructed above and POST that to the /contracts/interfaces API endpoint.

      "},{"location":"tutorials/custom_contracts/tezos/#request","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces

      {\n  \"namespace\": \"default\",\n  \"name\": \"simplestorage\",\n  \"version\": \"v1.0.0\",\n  \"description\": \"\",\n  \"methods\": [\n    {\n      \"name\": \"set\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"newValue\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"integer\",\n              \"internalType\": \"integer\"\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    },\n    {\n      \"name\": \"get\",\n      \"pathname\": \"\",\n      \"description\": \"\",\n      \"params\": [],\n      \"returns\": []\n    }\n  ],\n  \"events\": []\n}\n
      "},{"location":"tutorials/custom_contracts/tezos/#response","title":"Response","text":"
      {\n  \"id\": \"f9e34787-e634-46cd-af47-b52c537404ff\",\n  \"namespace\": \"default\",\n  \"name\": \"simplestorage\",\n  \"description\": \"\",\n  \"version\": \"v1.0.0\",\n  \"methods\": [\n    {\n      \"id\": \"78f13a7f-7b85-47c3-bf51-346a9858c027\",\n      \"interface\": \"f9e34787-e634-46cd-af47-b52c537404ff\",\n      \"name\": \"set\",\n      \"namespace\": \"default\",\n      \"pathname\": \"set\",\n      \"description\": \"\",\n      \"params\": [\n        {\n          \"name\": \"newValue\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"details\": {\n              \"type\": \"integer\",\n              \"internalType\": \"integer\"\n            }\n          }\n        }\n      ],\n      \"returns\": []\n    },\n    {\n      \"id\": \"ee864e25-c3f7-42d3-aefd-a82f753e9002\",\n      \"interface\": \"f9e34787-e634-46cd-af47-b52c537404ff\",\n      \"name\": \"get\",\n      \"namespace\": \"tezos\",\n      \"pathname\": \"get\",\n      \"description\": \"\",\n      \"params\": [],\n      \"returns\": []\n    }\n  ]\n}\n

      NOTE: We can broadcast this contract interface conveniently with the help of FireFly Sandbox running at http://127.0.0.1:5108

      • Go to the Contracts Section
      • Click on Define a Contract Interface
      • Select FFI - FireFly Interface in the Interface Fromat dropdown
      • Copy the FFI JSON crafted by you into the Schema Field
      • Click on Run
      "},{"location":"tutorials/custom_contracts/tezos/#create-an-http-api-for-the-contract","title":"Create an HTTP API for the contract","text":"

      Now comes the fun part where we see some of the powerful, developer-friendly features of FireFly. The next thing we're going to do is tell FireFly to build an HTTP API for this smart contract, complete with an OpenAPI Specification and Swagger UI. As part of this, we'll also tell FireFly where the contract is on the blockchain.

      Like the interface broadcast above, this will also generate a broadcast which will be pinned to the blockchain so all the members of the network will be aware of and able to interact with this API.

      We need to copy the id field we got in the response from the previous step to the interface.id field in the request body below. We will also pick a name that will be part of the URL for our HTTP API, so be sure to pick a name that is URL friendly. In this case we'll call it simple-storage. Lastly, in the location.address field, we're telling FireFly where an instance of the contract is deployed on-chain.

      NOTE: The location field is optional here, but if it is omitted, it will be required in every request to invoke or query the contract. This can be useful if you have multiple instances of the same contract deployed to different addresses.

      "},{"location":"tutorials/custom_contracts/tezos/#request_1","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/apis

      {\n  \"name\": \"simple-storage\",\n  \"interface\": {\n    \"id\": \"f9e34787-e634-46cd-af47-b52c537404ff\"\n  },\n  \"location\": {\n    \"address\": \"KT1ED4gj2xZnp8318yxa5NpvyvW15pqe4yFg\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/tezos/#response_1","title":"Response","text":"
      {\n  \"id\": \"af09de97-741d-4f61-8d30-4db5e7460f76\",\n  \"namespace\": \"default\",\n  \"interface\": {\n    \"id\": \"f9e34787-e634-46cd-af47-b52c537404ff\"\n  },\n  \"location\": {\n    \"address\": \"KT1ED4gj2xZnp8318yxa5NpvyvW15pqe4yFg\"\n  },\n  \"name\": \"simple-storage\",\n  \"urls\": {\n    \"openapi\": \"http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api/swagger.json\",\n    \"ui\": \"http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api\"\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/tezos/#view-openapi-spec-for-the-contract","title":"View OpenAPI spec for the contract","text":"

      You'll notice in the response body that there are a couple of URLs near the bottom. If you navigate to the one labeled ui in your browser, you should see the Swagger UI for your smart contract.

      "},{"location":"tutorials/custom_contracts/tezos/#invoke-the-smart-contract","title":"Invoke the smart contract","text":"

      Now that we've got everything set up, it's time to use our smart contract! We're going to make a POST request to the invoke/set endpoint to set the integer value on-chain. Let's set it to the value of 3 right now.

      "},{"location":"tutorials/custom_contracts/tezos/#request_2","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/invoke/set

      {\n  \"input\": {\n    \"newValue\": 3\n  }\n}\n
      "},{"location":"tutorials/custom_contracts/tezos/#response_2","title":"Response","text":"
      {\n  \"id\": \"87c7ee1b-33d1-46e2-b3f5-8566c14367cf\",\n  \"type\": \"blockchain_invoke\",\n  \"status\": \"Pending\",\n  \"...\"\n}\n

      You'll notice that we got an ID back with status Pending, and that's expected due to the asynchronous programming model of working with smart contracts in FireFly. To see what the value is now, we can query the smart contract.

      "},{"location":"tutorials/custom_contracts/tezos/#query-the-current-value","title":"Query the current value","text":"

      To make a read-only request to the blockchain to check the current value of the stored integer, we can make a POST to the query/get endpoint.

      "},{"location":"tutorials/custom_contracts/tezos/#request_3","title":"Request","text":"

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/query/get

      {}\n
      "},{"location":"tutorials/custom_contracts/tezos/#response_3","title":"Response","text":"
      {\n  \"3\"\n}\n

      NOTE: Some contracts may have queries that require input parameters. That's why the query endpoint is a POST, rather than a GET so that parameters can be passed as JSON in the request body. This particular function does not have any parameters, so we just pass an empty JSON object.

      "},{"location":"tutorials/tokens/","title":"Use tokens","text":""},{"location":"tutorials/tokens/#quick-reference","title":"Quick reference","text":"

      Tokens are a critical building block in many blockchain-backed applications. Fungible tokens can represent a store of value or a means of rewarding participation in a multi-party system, while non-fungible tokens provide a clear way to identify and track unique entities across the network. FireFly provides flexible mechanisms to operate on any type of token and to tie those operations to on- and off-chain data.

      • FireFly provides an abstraction layer for multiple types of tokens
      • Tokens are grouped into pools, which each represent a particular type or class of token
      • Each pool is classified as fungible or non-fungible
      • In the case of non-fungible tokens, the pool is subdivided into individual tokens with a unique token index
      • Within a pool, you may mint (issue), transfer, and burn (redeem) tokens
      • Each operation can be optionally accompanied by a broadcast or private message, which will be recorded alongside the transfer on-chain
      • FireFly tracks a history of all token operations along with all current token balances
      • The blockchain backing each token connector may be the same or different from the one backing FireFly message pinning
      "},{"location":"tutorials/tokens/#what-is-a-pool","title":"What is a pool?","text":"

      Token pools are a FireFly construct for describing a set of tokens. The exact definition of a token pool is dependent on the token connector implementation. Some examples of how pools might map to various well-defined Ethereum standards:

      • ERC-1155: a single contract instance can efficiently allocate many isolated pools of fungible or non-fungible tokens
      • ERC-20 / ERC-777: each contract instance represents a single fungible pool of value, e.g. \"a coin\"
      • ERC-721: each contract instance represents a single pool of NFTs, each with unique identities within the pool
      • ERC-1400 / ERC-1410: partially supported in the same manner as ERC-20/ERC-777, but would require new features for working with partitions

      These are provided as examples only - a custom token connector could be backed by any token technology (Ethereum or otherwise) as long as it can support the basic operations described here (create pool, mint, burn, transfer). Other FireFly repos include a sample implementation of a token connector for ERC-20 and ERC-721 as well as ERC-1155.

      "},{"location":"tutorials/tokens/erc1155/","title":"Use ERC-1155 tokens","text":""},{"location":"tutorials/tokens/erc1155/#previous-steps-install-the-firefly-cli","title":"Previous steps: Install the FireFly CLI","text":"

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      \u2190 \u2460 Install the FireFly CLI

      "},{"location":"tutorials/tokens/erc1155/#create-a-stack-with-an-erc-1155-connector","title":"Create a stack with an ERC-1155 connector","text":"

      The default token connector that the FireFly CLI sets up is for ERC-20 and ERC-721. If you would like to work with ERC-1155 tokens, you need to create a stack that is configured to use that token connector. To do that, run:

      ff init ethereum -t erc-1155\n

      Then run:

      ff start <your_stack_name>\n
      "},{"location":"tutorials/tokens/erc1155/#about-the-sample-token-contract","title":"About the sample token contract","text":"

      When the FireFly CLI set up your FireFly stack, it also deployed a sample ERC-1155 contract that conforms to the expectations of the token connector. When you create a token pool through FireFly's token APIs, that contract will be used by default.

      \u26a0\ufe0f WARNING: The default token contract that was deployed by the FireFly CLI is only provided for the purpose of learning about FireFly. It is not a production grade contract. If you intend to deploy a production application using tokens on FireFly, you should research token contract best practices. For details, please see the source code for the contract that was deployed."},{"location":"tutorials/tokens/erc1155/#use-the-sandbox-optional","title":"Use the Sandbox (optional)","text":"

      At this point you could open the Sandbox at http://127.0.0.1:5109/home?action=tokens.pools and perform the functions outlined in the rest of this guide. Or you can keep reading to learn how to build HTTP requests to work with tokens in FireFly.

      "},{"location":"tutorials/tokens/erc1155/#create-a-pool-using-default-token-contract","title":"Create a pool (using default token contract)","text":"

      After your stack is up and running, the first thing you need to do is create a token pool. Every application will need at least one token pool. At a minimum, you must always specify a name and type (fungible or nonfungible) for the pool.

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      {\n  \"name\": \"testpool\",\n  \"type\": \"fungible\"\n}\n

      Other parameters:

      • You must specify a connector if you have configured multiple token connectors
      • You may pass through a config object of additional parameters, if supported by your token connector
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      "},{"location":"tutorials/tokens/erc1155/#create-a-pool-from-a-deployed-token-contract","title":"Create a pool (from a deployed token contract)","text":"

      If you wish to use a contract that is already on the chain, it is recommended that you first upload the ABI for your specific contract by creating a FireFly contract interface. This step is optional if you're certain that your ERC-1155 ABI conforms to the default expectations of the token connector, but is generally recommended.

      See the README of the token connector for details on what contract variants can currently be understood.

      You can pass a config object with an address when you make the request to create the token pool, and if you created a contract interface, you can include the interface ID as well.

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      {\n  \"name\": \"testpool\",\n  \"type\": \"fungible\",\n  \"interface\": {\n    \"id\": \"b9e5e1ce-97bb-4a35-a25c-52c7c3f523d8\"\n  },\n  \"config\": {\n    \"address\": \"0xb1C845D32966c79E23f733742Ed7fCe4B41901FC\"\n  }\n}\n
      "},{"location":"tutorials/tokens/erc1155/#mint-tokens","title":"Mint tokens","text":"

      Once you have a token pool, you can mint tokens within it. With the default sample contract, only the creator of a pool is allowed to mint - but each contract may define its own permission model.

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/mint

      {\n  \"amount\": 10\n}\n

      Other parameters:

      • You must specify a pool name if you've created more than one pool
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • You may specify to if you'd like to send the minted tokens to a specific identity (default is the same as key)
      "},{"location":"tutorials/tokens/erc1155/#transfer-tokens","title":"Transfer tokens","text":"

      You may transfer tokens within a pool by specifying an amount and a destination understood by the connector (i.e. an Ethereum address). With the default sample contract, only the owner of a token or another approved account may transfer it away - but each contract may define its own permission model.

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      {\n  \"amount\": 1,\n  \"to\": \"0x07eab7731db665caf02bc92c286f51dea81f923f\"\n}\n

      NOTE: When transferring a non-fungible token, the amount must always be 1. The tokenIndex field is also required when transferring a non-fungible token.

      Other parameters:

      • You must specify a pool name if you've created more than one pool
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • You may specify from if you'd like to send tokens from a specific identity (default is the same as key)
      "},{"location":"tutorials/tokens/erc1155/#sending-data-with-a-transfer","title":"Sending data with a transfer","text":"

      All transfers (as well as mint/burn operations) support an optional message parameter that contains a broadcast or private message to be sent along with the transfer. This message follows the same convention as other FireFly messages, and may be comprised of text or blob data, and can provide context, metadata, or other supporting information about the transfer. The message will be batched, hashed, and pinned to the primary blockchain.

      The message ID and hash will also be sent to the token connector as part of the transfer operation, to be written to the token blockchain when the transaction is submitted. All recipients of the message will then be able to correlate the message with the token transfer.

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      "},{"location":"tutorials/tokens/erc1155/#broadcast-message","title":"Broadcast message","text":"
      {\n  \"amount\": 1,\n  \"to\": \"0x07eab7731db665caf02bc92c286f51dea81f923f\",\n  \"message\": {\n    \"data\": [\n      {\n        \"value\": \"payment for goods\"\n      }\n    ]\n  }\n}\n
      "},{"location":"tutorials/tokens/erc1155/#private-message","title":"Private message","text":"
      {\n  \"amount\": 1,\n  \"to\": \"0x07eab7731db665caf02bc92c286f51dea81f923f\",\n  \"message\": {\n    \"header\": {\n      \"type\": \"transfer_private\"\n    },\n    \"group\": {\n      \"members\": [\n        {\n          \"identity\": \"org_1\"\n        }\n      ]\n    },\n    \"data\": [\n      {\n        \"value\": \"payment for goods\"\n      }\n    ]\n  }\n}\n

      Note that all parties in the network will be able to see the transfer (including the message ID and hash), but only the recipients of the message will be able to view the actual message data.

      "},{"location":"tutorials/tokens/erc1155/#burn-tokens","title":"Burn tokens","text":"

      You may burn tokens by simply specifying an amount. With the default sample contract, only the owner of a token or another approved account may burn it - but each connector may define its own permission model.

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/burn

      {\n  \"amount\": 1\n}\n

      NOTE: When burning a non-fungible token, the amount must always be 1. The tokenIndex field is also required when burning a non-fungible token.

      Other parameters:

      • You must specify a pool name if you've created more than one pool
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • You may specify from if you'd like to burn tokens from a specific identity (default is the same as key)
      "},{"location":"tutorials/tokens/erc1155/#token-approvals","title":"Token approvals","text":"

      You can also approve other wallets to transfer tokens on your behalf with the /approvals API. The important fields in a token approval API request are as follows:

      • approved: Sets whether another account is allowed to transfer tokens out of this wallet or not. If not specified, will default to true. Setting to false can revoke an existing approval.
      • operator: The other account that is allowed to transfer tokens out of the wallet specified in the key field
      • key: The wallet address for the approval. If not set, it defaults to the address of the FireFly node submitting the transaction

      Here is an example request that would let the signing account 0x634ee8c7d0894d086c7af1fc8514736aed251528 transfer any amount of tokens from my wallet

      "},{"location":"tutorials/tokens/erc1155/#request","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/approvals

      {\n  \"operator\": \"0x634ee8c7d0894d086c7af1fc8514736aed251528\"\n}\n
      "},{"location":"tutorials/tokens/erc1155/#response","title":"Response","text":"
      {\n  \"localId\": \"46fef50a-cf93-4f92-acf8-fae161b37362\",\n  \"pool\": \"e1477ed5-7282-48e5-ad9d-1612296bb29d\",\n  \"connector\": \"erc1155\",\n  \"key\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"operator\": \"0x634ee8c7d0894d086c7af1fc8514736aed251528\",\n  \"approved\": true,\n  \"tx\": {\n    \"type\": \"token_approval\",\n    \"id\": \"00faa011-f42c-403d-a047-2df7318967cd\"\n  }\n}\n
      "},{"location":"tutorials/tokens/erc20/","title":"Use ERC-20 tokens","text":""},{"location":"tutorials/tokens/erc20/#previous-steps-start-your-environment","title":"Previous steps: Start your environment","text":"

      If you haven't started a FireFly stack already, please go to the Getting Started guide on how to Start your environment. This will set up a token connector that works with both ERC-20 and ERC-721 by default.

      \u2190 \u2461 Start your environment

      "},{"location":"tutorials/tokens/erc20/#about-the-sample-token-contracts","title":"About the sample token contracts","text":"

      If you are using the default ERC-20 / ERC-721 token connector, when the FireFly CLI set up your FireFly stack, it also deployed a token factory contract. When you create a token pool through FireFly's token APIs, the token factory contract will automatically deploy an ERC-20 or ERC-721 contract, based on the pool type in the API request.

      \u26a0\ufe0f WARNING: The default token contract that was deployed by the FireFly CLI is only provided for the purpose of learning about FireFly. It is not a production grade contract. If you intend to deploy a production application using tokens on FireFly, you should research token contract best practices. For details, please see the source code for the contract that was deployed."},{"location":"tutorials/tokens/erc20/#use-the-sandbox-optional","title":"Use the Sandbox (optional)","text":"

      At this point you could open the Sandbox at http://127.0.0.1:5109/home?action=tokens.pools and perform the functions outlined in the rest of this guide. Or you can keep reading to learn how to build HTTP requests to work with tokens in FireFly.

      "},{"location":"tutorials/tokens/erc20/#create-a-pool-using-default-token-factory","title":"Create a pool (using default token factory)","text":"

      After your stack is up and running, the first thing you need to do is create a token pool. Every application will need at least one token pool. At a minimum, you must always specify a name and type for the pool.

      If you're using the default ERC-20 / ERC-721 token connector and its sample token factory, it will automatically deploy a new ERC-20 contract instance.

      "},{"location":"tutorials/tokens/erc20/#request","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      {\n  \"name\": \"testpool\",\n  \"type\": \"fungible\"\n}\n
      "},{"location":"tutorials/tokens/erc20/#response","title":"Response","text":"
      {\n  \"id\": \"e1477ed5-7282-48e5-ad9d-1612296bb29d\",\n  \"type\": \"fungible\",\n  \"namespace\": \"default\",\n  \"name\": \"testpool\",\n  \"key\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"connector\": \"erc20_erc721\",\n  \"tx\": {\n    \"type\": \"token_pool\",\n    \"id\": \"e901921e-ffc4-4776-b20a-9e9face70a47\"\n  }\n}\n

      Other parameters:

      • You must specify a connector if you have configured multiple token connectors
      • You may pass through a config object of additional parameters, if supported by your token connector
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      "},{"location":"tutorials/tokens/erc20/#get-the-address-of-the-deployed-contract","title":"Get the address of the deployed contract","text":"

      To lookup the address of the new contract, you can lookup the token pool by its ID on the API. Creating the token pool will also emit an event which will contain the address. To query the token pool you can make a GET request to the pool's ID:

      "},{"location":"tutorials/tokens/erc20/#request_1","title":"Request","text":"

      GET http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools/5811e8d5-52d0-44b1-8b75-73f5ff88f598

      "},{"location":"tutorials/tokens/erc20/#response_1","title":"Response","text":"
      {\n  \"id\": \"e1477ed5-7282-48e5-ad9d-1612296bb29d\",\n  \"type\": \"fungible\",\n  \"namespace\": \"default\",\n  \"name\": \"testpool\",\n  \"standard\": \"ERC20\",\n  \"locator\": \"address=0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c&schema=ERC20WithData&type=fungible\",\n  \"decimals\": 18,\n  \"connector\": \"erc20_erc721\",\n  \"message\": \"7e2f6004-31fd-4ba8-9845-15c5fe5fbcd7\",\n  \"state\": \"confirmed\",\n  \"created\": \"2022-04-28T14:03:16.732222381Z\",\n  \"info\": {\n    \"address\": \"0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c\",\n    \"name\": \"testpool\",\n    \"schema\": \"ERC20WithData\"\n  },\n  \"tx\": {\n    \"type\": \"token_pool\",\n    \"id\": \"e901921e-ffc4-4776-b20a-9e9face70a47\"\n  }\n}\n
      "},{"location":"tutorials/tokens/erc20/#create-a-pool-from-a-deployed-token-contract","title":"Create a pool (from a deployed token contract)","text":"

      If you wish to index and use a contract that is already on the chain, it is recommended that you first upload the ABI for your specific contract by creating a FireFly contract interface. This step is optional if you're certain that your ERC-20 ABI conforms to the default expectations of the token connector, but is generally recommended.

      See the README of the token connector for details on what contract variants can currently be understood.

      You can pass a config object with an address and blockNumber when you make the request to create the token pool, and if you created a contract interface, you can include the interface ID as well.

      "},{"location":"tutorials/tokens/erc20/#request_2","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      {\n  \"name\": \"testpool\",\n  \"type\": \"fungible\",\n  \"interface\": {\n    \"id\": \"b9e5e1ce-97bb-4a35-a25c-52c7c3f523d8\"\n  },\n  \"config\": {\n    \"address\": \"0xb1C845D32966c79E23f733742Ed7fCe4B41901FC\",\n    \"blockNumber\": \"0\"\n  }\n}\n
      "},{"location":"tutorials/tokens/erc20/#mint-tokens","title":"Mint tokens","text":"

      Once you have a token pool, you can mint tokens within it. When using the sample contract deployed by the CLI, only the creator of a pool is allowed to mint, but a different contract may define its own permission model.

      NOTE: The default sample contract uses 18 decimal places. This means that if you want to create 100 tokens, the number submitted to the API / blockchain should actually be 100\u00d71018 = 100000000000000000000. This allows users to work with \"fractional\" tokens even though Ethereum virtual machines only support integer arithmetic.

      "},{"location":"tutorials/tokens/erc20/#request_3","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/mint

      {\n  \"amount\": \"100000000000000000000\"\n}\n
      "},{"location":"tutorials/tokens/erc20/#response_2","title":"Response","text":"
      {\n  \"type\": \"mint\",\n  \"localId\": \"835fe2a1-594b-4336-bc1d-b2f59d51064b\",\n  \"pool\": \"e1477ed5-7282-48e5-ad9d-1612296bb29d\",\n  \"connector\": \"erc20_erc721\",\n  \"key\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"from\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"to\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"amount\": \"100000000000000000000\",\n  \"tx\": {\n    \"type\": \"token_transfer\",\n    \"id\": \"3fc97e24-fde1-4e80-bd82-660e479c0c43\"\n  }\n}\n

      Other parameters:

      • You must specify a pool name if you've created more than one pool
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • You may specify to if you'd like to send the minted tokens to a specific identity (default is the same as key)
      "},{"location":"tutorials/tokens/erc20/#transfer-tokens","title":"Transfer tokens","text":"

      You may transfer tokens within a pool by specifying an amount and a destination understood by the connector (i.e. an Ethereum address). With the default sample contract, only the owner of the tokens or another approved account may transfer their tokens, but a different contract may define its own permission model.

      "},{"location":"tutorials/tokens/erc20/#request_4","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      {\n  \"amount\": \"10000000000000000000\",\n  \"to\": \"0xa4222a4ae19448d43a338e6586edd5fb2ac398e1\"\n}\n
      "},{"location":"tutorials/tokens/erc20/#response_3","title":"Response","text":"
      {\n  \"type\": \"transfer\",\n  \"localId\": \"61f0a71f-712b-4778-8b37-784fbee52657\",\n  \"pool\": \"e1477ed5-7282-48e5-ad9d-1612296bb29d\",\n  \"connector\": \"erc20_erc721\",\n  \"key\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"from\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"to\": \"0xa4222a4ae19448d43a338e6586edd5fb2ac398e1\",\n  \"amount\": \"10000000000000000000\",\n  \"tx\": {\n    \"type\": \"token_transfer\",\n    \"id\": \"c0c316a3-23a9-42f3-89b3-1cfdba6c948d\"\n  }\n}\n

      Other parameters:

      • You must specify a pool name if you've created more than one pool
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • You may specify from if you'd like to send tokens from a specific identity (default is the same as key)
      "},{"location":"tutorials/tokens/erc20/#sending-data-with-a-transfer","title":"Sending data with a transfer","text":"

      All transfers (as well as mint/burn operations) support an optional message parameter that contains a broadcast or private message to be sent along with the transfer. This message follows the same convention as other FireFly messages, and may be comprised of text or blob data, and can provide context, metadata, or other supporting information about the transfer. The message will be batched, hashed, and pinned to the primary blockchain.

      The message ID and hash will also be sent to the token connector as part of the transfer operation, to be written to the token blockchain when the transaction is submitted. All recipients of the message will then be able to correlate the message with the token transfer.

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      "},{"location":"tutorials/tokens/erc20/#broadcast-message","title":"Broadcast message","text":"
      {\n  \"amount\": 1,\n  \"to\": \"0x07eab7731db665caf02bc92c286f51dea81f923f\",\n  \"message\": {\n    \"data\": [\n      {\n        \"value\": \"payment for goods\"\n      }\n    ]\n  }\n}\n
      "},{"location":"tutorials/tokens/erc20/#private-message","title":"Private message","text":"
      {\n  \"amount\": 1,\n  \"to\": \"0x07eab7731db665caf02bc92c286f51dea81f923f\",\n  \"message\": {\n    \"header\": {\n      \"type\": \"transfer_private\"\n    },\n    \"group\": {\n      \"members\": [\n        {\n          \"identity\": \"org_1\"\n        }\n      ]\n    },\n    \"data\": [\n      {\n        \"value\": \"payment for goods\"\n      }\n    ]\n  }\n}\n

      Note that all parties in the network will be able to see the transfer (including the message ID and hash), but only the recipients of the message will be able to view the actual message data.

      "},{"location":"tutorials/tokens/erc20/#burn-tokens","title":"Burn tokens","text":"

      You may burn tokens by simply specifying an amount. With the default sample contract, only the owner of a token or another approved account may burn it, but a different contract may define its own permission model.

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/burn

      {\n  \"amount\": 1\n}\n

      Other parameters:

      • You must specify a pool name if you've created more than one pool
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • You may specify from if you'd like to burn tokens from a specific identity (default is the same as key)
      "},{"location":"tutorials/tokens/erc20/#token-approvals","title":"Token approvals","text":"

      You can also approve other wallets to transfer tokens on your behalf with the /approvals API. The important fields in a token approval API request are as follows:

      • approved: Sets whether another account is allowed to transfer tokens out of this wallet or not. If not specified, will default to true. Setting to false can revoke an existing approval.
      • operator: The other account that is allowed to transfer tokens out of the wallet specified in the key field.
      • config.allowance: The number of tokens the other account is allowed to transfer. If 0 or not set, the approval is valid for any number.
      • key: The wallet address for the approval. If not set, it defaults to the address of the FireFly node submitting the transaction.

      Here is an example request that would let the signing account 0x634ee8c7d0894d086c7af1fc8514736aed251528 transfer up to 10\u00d71018 (10000000000000000000) tokens from my wallet

      "},{"location":"tutorials/tokens/erc20/#request_5","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/approvals

      {\n  \"operator\": \"0x634ee8c7d0894d086c7af1fc8514736aed251528\",\n  \"config\": {\n    \"allowance\": \"10000000000000000000\"\n  }\n}\n
      "},{"location":"tutorials/tokens/erc20/#response_4","title":"Response","text":"
      {\n  \"localId\": \"46fef50a-cf93-4f92-acf8-fae161b37362\",\n  \"pool\": \"e1477ed5-7282-48e5-ad9d-1612296bb29d\",\n  \"connector\": \"erc20_erc721\",\n  \"key\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"operator\": \"0x634ee8c7d0894d086c7af1fc8514736aed251528\",\n  \"approved\": true,\n  \"tx\": {\n    \"type\": \"token_approval\",\n    \"id\": \"00faa011-f42c-403d-a047-2df7318967cd\"\n  },\n  \"config\": {\n    \"allowance\": \"10000000000000000000\"\n  }\n}\n
      "},{"location":"tutorials/tokens/erc20/#use-metamask","title":"Use Metamask","text":"

      Now that you have an ERC-20 contract up and running, you may be wondering how to use Metamask (or some other wallet) with this contract. This section will walk you through how to connect Metamask to the blockchain and token contract that FireFly is using.

      "},{"location":"tutorials/tokens/erc20/#configure-a-new-network","title":"Configure a new network","text":"

      The first thing we need to do is tell Metamask how to connect to our local blockchain node. To do that:

      • Click your account icon
      • In the drop down menu, click Settings

      • On the left hand side of the page, click Networks

      • Click the Add a network button

      • Fill in the network details:

      • Network Name: FireFly (could be any name)
      • New RPC URL: http://127.0.0.1:5100
      • Chain ID: 2021
      • Currency Symbol: ETH
      • Click Save
      "},{"location":"tutorials/tokens/erc20/#import-tokens","title":"Import tokens","text":"

      Metamask won't know about our custom ERC-20 contract until we give it the Ethereum address for the contract, so that's what we'll do next.

      • Click on Import tokens

      • Enter the Ethereum address of the contract

      • Enter a Token Symbol (can be anything you want)
      • Click Add Custom Token

      NOTE: You can find the address of your contract from the response to the request to create the token pool above. You can also do a GET to http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools to lookup your configured token pools.

      "},{"location":"tutorials/tokens/erc20/#transfer-tokens_1","title":"Transfer tokens","text":"

      Now you can copy your account address from your Metamask wallet, and perform a transfer from FireFly's API (as described above) to your Metamask address.

      After a couple seconds, you should see your tokens show up in your Metamask wallet.

      You can also send tokens to a FireFly address or any other Ethereum address from your Metamask wallet.

      NOTE: You can find the Ethereum addresses for organizations in your FireFly network in the Network \u2192 Organizations page in the FireFly explorer. Click on an organization and look under the Verifiers header for the organization's Ethereum address.

      "},{"location":"tutorials/tokens/erc721/","title":"Use ERC-721 tokens","text":""},{"location":"tutorials/tokens/erc721/#previous-steps-start-your-environment","title":"Previous steps: Start your environment","text":"

      If you haven't started a FireFly stack already, please go to the Getting Started guide on how to Start your environment. This will set up a token connector that works with both ERC-20 and ERC-721 by default.

      \u2190 \u2461 Start your environment

      "},{"location":"tutorials/tokens/erc721/#about-the-sample-token-contracts","title":"About the sample token contracts","text":"

      If you are using the default ERC-20 / ERC-721 token connector, when the FireFly CLI set up your FireFly stack, it also deployed a token factory contract. When you create a token pool through FireFly's token APIs, the token factory contract will automatically deploy an ERC-20 or ERC-721 contract, based on the pool type in the API request.

      \u26a0\ufe0f WARNING: The default token contract that was deployed by the FireFly CLI is only provided for the purpose of learning about FireFly. It is not a production grade contract. If you intend to deploy a production application using tokens on FireFly, you should research token contract best practices. For details, please see the source code for the contract that was deployed."},{"location":"tutorials/tokens/erc721/#use-the-sandbox-optional","title":"Use the Sandbox (optional)","text":"

      At this point you could open the Sandbox at http://127.0.0.1:5109/home?action=tokens.pools and perform the functions outlined in the rest of this guide. Or you can keep reading to learn how to build HTTP requests to work with tokens in FireFly.

      "},{"location":"tutorials/tokens/erc721/#create-a-pool-using-default-token-factory","title":"Create a pool (using default token factory)","text":"

      After your stack is up and running, the first thing you need to do is create a token pool. Every application will need at least one token pool. At a minimum, you must always specify a name and type for the pool.

      If you're using the default ERC-20 / ERC-721 token connector and its sample token factory, it will automatically deploy a new ERC-721 contract instance.

      "},{"location":"tutorials/tokens/erc721/#request","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      {\n  \"type\": \"nonfungible\",\n  \"name\": \"nfts\"\n}\n
      "},{"location":"tutorials/tokens/erc721/#response","title":"Response","text":"
      {\n  \"id\": \"a92a0a25-b886-4b43-931f-4add2840258a\",\n  \"type\": \"nonfungible\",\n  \"namespace\": \"default\",\n  \"name\": \"nfts\",\n  \"key\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"connector\": \"erc20_erc721\",\n  \"tx\": {\n    \"type\": \"token_pool\",\n    \"id\": \"00678116-89d2-4295-990c-bd5ffa6e2434\"\n  }\n}\n

      Other parameters:

      • You must specify a connector if you have configured multiple token connectors
      • You may pass through a config object of additional parameters, if supported by your token connector
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      "},{"location":"tutorials/tokens/erc721/#get-the-address-of-the-deployed-contract","title":"Get the address of the deployed contract","text":"

      To lookup the address of the new contract, you can lookup the token pool by its ID on the API. Creating the token pool will also emit an event which will contain the address. To query the token pool you can make a GET request to the pool's ID:

      "},{"location":"tutorials/tokens/erc721/#request_1","title":"Request","text":"

      GET http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools/5811e8d5-52d0-44b1-8b75-73f5ff88f598

      "},{"location":"tutorials/tokens/erc721/#response_1","title":"Response","text":"
      {\n  \"id\": \"a92a0a25-b886-4b43-931f-4add2840258a\",\n  \"type\": \"nonfungible\",\n  \"namespace\": \"default\",\n  \"name\": \"nfts\",\n  \"standard\": \"ERC721\",\n  \"locator\": \"address=0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c&schema=ERC721WithData&type=nonfungible\",\n  \"connector\": \"erc20_erc721\",\n  \"message\": \"53d95dda-e8ca-4546-9226-a0fdc6ec03ec\",\n  \"state\": \"confirmed\",\n  \"created\": \"2022-04-29T12:03:51.971349509Z\",\n  \"info\": {\n    \"address\": \"0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c\",\n    \"name\": \"nfts\",\n    \"schema\": \"ERC721WithData\"\n  },\n  \"tx\": {\n    \"type\": \"token_pool\",\n    \"id\": \"00678116-89d2-4295-990c-bd5ffa6e2434\"\n  }\n}\n
      "},{"location":"tutorials/tokens/erc721/#create-a-pool-from-a-deployed-token-contract","title":"Create a pool (from a deployed token contract)","text":"

      If you wish to index and use a contract that is already on the chain, it is recommended that you first upload the ABI for your specific contract by creating a FireFly contract interface. This step is optional if you're certain that your ERC-721 ABI conforms to the default expectations of the token connector, but is generally recommended.

      See the README of the token connector for details on what contract variants can currently be understood.

      You can pass a config object with an address and blockNumber when you make the request to create the token pool, and if you created a contract interface, you can include the interface ID as well.

      "},{"location":"tutorials/tokens/erc721/#request_2","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      {\n  \"name\": \"testpool\",\n  \"type\": \"nonfungible\",\n  \"interface\": {\n    \"id\": \"b9e5e1ce-97bb-4a35-a25c-52c7c3f523d8\"\n  },\n  \"config\": {\n    \"address\": \"0xb1C845D32966c79E23f733742Ed7fCe4B41901FC\",\n    \"blockNumber\": \"0\"\n  }\n}\n
      "},{"location":"tutorials/tokens/erc721/#mint-a-token","title":"Mint a token","text":"

      Once you have a token pool, you can mint tokens within it. When using the sample contract deployed by the CLI, the following are true:

      • only the creator of a pool is allowed to mint within that pool
      • the tokenIndex must be set to a unique value
      • the amount must be 1

      A different ERC-721 contract may define its own requirements.

      "},{"location":"tutorials/tokens/erc721/#request_3","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/mint

      {\n  \"amount\": \"1\",\n  \"tokenIndex\": \"1\"\n}\n
      "},{"location":"tutorials/tokens/erc721/#response_2","title":"Response","text":"
      {\n  \"type\": \"mint\",\n  \"localId\": \"2de2e05e-9474-4a08-a64f-2cceb076bdaa\",\n  \"pool\": \"a92a0a25-b886-4b43-931f-4add2840258a\",\n  \"connector\": \"erc20_erc721\",\n  \"key\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"from\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"to\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"amount\": \"1\",\n  \"tx\": {\n    \"type\": \"token_transfer\",\n    \"id\": \"0fad4581-7cb2-42c7-8f78-62d32205c2c2\"\n  }\n}\n

      Other parameters:

      • You must specify a pool name if you've created more than one pool
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • You may specify to if you'd like to send the minted tokens to a specific identity (default is the same as key)
      "},{"location":"tutorials/tokens/erc721/#transfer-a-token","title":"Transfer a token","text":"

      You may transfer tokens within a pool by specifying an amount and a destination understood by the connector (i.e. an Ethereum address). With the default sample contract, only the owner of the tokens or another approved account may transfer their tokens, but a different contract may define its own permission model.

      When transferring an NFT, you must also specify the tokenIndex that you wish to transfer. The tokenIndex is simply the ID of the specific NFT within the pool that you wish to transfer.

      NOTE: When transferring NFTs the amount must be 1. If you wish to transfer more NFTs, simply call the endpoint multiple times, specifying the token index of each token to transfer.

      "},{"location":"tutorials/tokens/erc721/#request_4","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      {\n  \"amount\": \"1\",\n  \"tokenIndex\": \"1\",\n  \"to\": \"0xa4222a4ae19448d43a338e6586edd5fb2ac398e1\"\n}\n
      "},{"location":"tutorials/tokens/erc721/#response_3","title":"Response","text":"
      {\n  \"type\": \"transfer\",\n  \"localId\": \"f5fd0d13-db13-4d70-9a99-6bcd747f1e42\",\n  \"pool\": \"a92a0a25-b886-4b43-931f-4add2840258a\",\n  \"tokenIndex\": \"1\",\n  \"connector\": \"erc20_erc721\",\n  \"key\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"from\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"to\": \"0xa4222a4ae19448d43a338e6586edd5fb2ac398e1\",\n  \"amount\": \"1\",\n  \"tx\": {\n    \"type\": \"token_transfer\",\n    \"id\": \"63c1a89b-240c-41eb-84bb-323d56f4ba5a\"\n  }\n}\n

      Other parameters:

      • You must specify a pool name if you've created more than one pool
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • You may specify from if you'd like to send tokens from a specific identity (default is the same as key)
      "},{"location":"tutorials/tokens/erc721/#sending-data-with-a-transfer","title":"Sending data with a transfer","text":"

      All transfers (as well as mint/burn operations) support an optional message parameter that contains a broadcast or private message to be sent along with the transfer. This message follows the same convention as other FireFly messages, and may be comprised of text or blob data, and can provide context, metadata, or other supporting information about the transfer. The message will be batched, hashed, and pinned to the primary blockchain.

      The message ID and hash will also be sent to the token connector as part of the transfer operation, to be written to the token blockchain when the transaction is submitted. All recipients of the message will then be able to correlate the message with the token transfer.

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      "},{"location":"tutorials/tokens/erc721/#broadcast-message","title":"Broadcast message","text":"
      {\n  \"amount\": 1,\n  \"tokenIndex\": \"1\",\n  \"to\": \"0x07eab7731db665caf02bc92c286f51dea81f923f\",\n  \"message\": {\n    \"data\": [\n      {\n        \"value\": \"payment for goods\"\n      }\n    ]\n  }\n}\n
      "},{"location":"tutorials/tokens/erc721/#private-message","title":"Private message","text":"
      {\n  \"amount\": 1,\n  \"tokenIndex\": \"1\",\n  \"to\": \"0x07eab7731db665caf02bc92c286f51dea81f923f\",\n  \"message\": {\n    \"header\": {\n      \"type\": \"transfer_private\"\n    },\n    \"group\": {\n      \"members\": [\n        {\n          \"identity\": \"org_1\"\n        }\n      ]\n    },\n    \"data\": [\n      {\n        \"value\": \"payment for goods\"\n      }\n    ]\n  }\n}\n

      Note that all parties in the network will be able to see the transfer (including the message ID and hash), but only the recipients of the message will be able to view the actual message data.

      "},{"location":"tutorials/tokens/erc721/#burn-tokens","title":"Burn tokens","text":"

      You may burn a token by specifying the token's tokenIndex. With the default sample contract, only the owner of a token or another approved account may burn it, but a different contract may define its own permission model.

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/burn

      {\n  \"amount\": 1,\n  \"tokenIndex\": \"1\"\n}\n

      Other parameters:

      • You must specify a pool name if you've created more than one pool
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • You may specify from if you'd like to burn tokens from a specific identity (default is the same as key)
      "},{"location":"tutorials/tokens/erc721/#token-approvals","title":"Token approvals","text":"

      You can also approve other wallets to transfer tokens on your behalf with the /approvals API. The important fields in a token approval API request are as follows:

      • approved: Sets whether another account is allowed to transfer tokens out of this wallet or not. If not specified, will default to true. Setting to false can revoke an existing approval.
      • operator: The other account that is allowed to transfer tokens out of the wallet specified in the key field
      • config.tokenIndex: The specific token index within the pool that the operator is allowed to transfer. If 0 or not set, the approval is valid for all tokens.
      • key: The wallet address for the approval. If not set, it defaults to the address of the FireFly node submitting the transaction

      Here is an example request that would let the signing account 0x634ee8c7d0894d086c7af1fc8514736aed251528 transfer tokenIndex 2 from my wallet.

      "},{"location":"tutorials/tokens/erc721/#request_5","title":"Request","text":"

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/approvals

      {\n  \"operator\": \"0x634ee8c7d0894d086c7af1fc8514736aed251528\",\n  \"config\": {\n    \"tokenIndex\": \"2\"\n  }\n}\n
      "},{"location":"tutorials/tokens/erc721/#response_4","title":"Response","text":"
      {\n  \"localId\": \"46fef50a-cf93-4f92-acf8-fae161b37362\",\n  \"pool\": \"e1477ed5-7282-48e5-ad9d-1612296bb29d\",\n  \"connector\": \"erc20_erc721\",\n  \"key\": \"0x14ddd36a0c2f747130915bf5214061b1e4bec74c\",\n  \"operator\": \"0x634ee8c7d0894d086c7af1fc8514736aed251528\",\n  \"approved\": true,\n  \"tx\": {\n    \"type\": \"token_approval\",\n    \"id\": \"00faa011-f42c-403d-a047-2df7318967cd\"\n  },\n  \"config\": {\n    \"tokenIndex\": \"2\"\n  }\n}\n
      "},{"location":"tutorials/tokens/erc721/#use-metamask","title":"Use Metamask","text":"

      Now that you have an ERC-721 contract up and running, you may be wondering how to use Metamask (or some other wallet) with this contract. This section will walk you through how to connect Metamask to the blockchain and token contract that FireFly is using.

      "},{"location":"tutorials/tokens/erc721/#configure-a-new-network","title":"Configure a new network","text":"

      The first thing we need to do is tell Metamask how to connect to our local blockchain node. To do that:

      • Click your account icon
      • In the drop down menu, click Settings

      • On the left hand side of the page, click Networks

      • Click the Add a network button

      • Fill in the network details:

      • Network Name: FireFly (could be any name)
      • New RPC URL: http://127.0.0.1:5100
      • Chain ID: 2021
      • Currency Symbol: ETH
      • Click Save
      "},{"location":"tutorials/tokens/erc721/#import-tokens","title":"Import tokens","text":"

      Metamask won't know about our custom ERC-721 contract until we give it the Ethereum address for the contract, so that's what we'll do next.

      • Click on Import tokens

      • Enter the Ethereum address of the contract

      • Enter a Token Symbol (can be anything you want)
      • Click Add Custom Token

      NOTE: You can find the address of your contract from the response to the request to create the token pool above. You can also do a GET to http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools to lookup your configured token pools.

      "},{"location":"tutorials/tokens/erc721/#transfer-tokens","title":"Transfer tokens","text":"

      Now you can copy your account address from your Metamask wallet, and perform a transfer from FireFly's API (as described above) to your Metamask address.

      After a couple seconds, you should see your token show up in your Metamask wallet.

      NOTE: While the NFT token balance can be viewed in Metamask, it does not appear that Metamask supports sending these tokens to another address at this time.

      "}]} \ No newline at end of file diff --git a/head/sitemap.xml b/head/sitemap.xml new file mode 100644 index 000000000..0f8724efd --- /dev/null +++ b/head/sitemap.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/head/sitemap.xml.gz b/head/sitemap.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..8678bd742b6fa972cd30f6b2aab37185aacf404c GIT binary patch literal 127 zcmV-_0D%7=iwFn+ohfDl|8r?{Wo=<_E_iKh04<9_3V)_WXo8&M?ytk3HC}0~zlG)Vu + + + + + + + + + + + + + + + + + + + + + API Spec - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      API Spec

      + +

      This is the FireFly OpenAPI Specification document generated by FireFly

      +

      Note: The 'Try it out' buttons will not work on this page because it's not running against a live version of FireFly. To actually try it out, we recommend using the FireFly CLI to start an instance on your local machine (which will start the FireFly core on port 5000 by default) and then open the Swagger UI associated with your local node by opening a new tab and visiting http://localhost:5000/api

      +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/swagger/swagger.html b/head/swagger/swagger.html deleted file mode 100644 index c1845feb7..000000000 --- a/head/swagger/swagger.html +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - - - - API Spec - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.api_spec | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - -
      - -

      - - - API Spec - - -

      - - -

      This is the FireFly OpenAPI Specification document generated by FireFly

      - -

      Note: The ‘Try it out’ buttons will not work on this page because it’s not running against a live version of FireFly. To actually try it out, we recommend using the FireFly CLI to start an instance on your local machine (which will start the FireFly core on port 5000 by default) and then open the Swagger UI associated with your local node by opening a new tab and visiting http://localhost:5000/api

      - - - - - -
      - - - - - - - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/basic_auth.html b/head/tutorials/basic_auth.html deleted file mode 100644 index 809a10493..000000000 --- a/head/tutorials/basic_auth.html +++ /dev/null @@ -1,579 +0,0 @@ - - - - - - - - - Enable basic auth - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.basic_auth | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Enable basic auth - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Quick reference
      2. -
      3. Additional info
      4. -
      5. Create a password file
          -
        1. Create the test_users password hash file
        2. -
        3. Create a user named firefly
        4. -
        -
      6. -
      7. Enable basic auth at the Namespace level
          -
        1. Mount the password hash file in the Docker container
        2. -
        3. Restart your FireFly Core container
        4. -
        5. Test basic auth
        6. -
        -
      8. -
      9. Enable auth at the HTTP listener level
          -
        1. Restart FireFly to apply the changes
        2. -
        3. Test basic auth
        4. -
        -
      10. -

      -

      - - - Quick reference - - -

      - - -

      FireFly has a pluggable auth system which can be enabled at two different layers of the stack. At the top, auth can be enabled at the HTTP listener level. This will protect all requests to the given listener. FireFly has three different HTTP listeners, which could each use a different auth scheme:

      - -
        -
      1. The main API
      2. -
      3. The SPI (for internal or admin use)
      4. -
      5. The metrics API.
      6. -
      - -

      Auth can also be enabled at the namespace level within FireFly as well. This enables several different use cases. For example, you might have two different teams that want to use the same FireFly node, each with different sets of authorized users. You could configure them to use separate namespaces and create separate auth schemes on each.

      - -

      FireFly has a basic auth plugin built in, which we will be configuring in this tutorial.

      - -
      -

      NOTE: This guide assumes that you have already gone through the Getting Started Guide and have set up and run a stack at least once.

      -
      -

      - - - Additional info - - -

      - - - -

      - - - Create a password file - - -

      - - -

      FireFly’s built in basic auth plugin uses a password hash file to store the list of authorized users. FireFly uses the bcrypt algorithm to compare passwords against the stored hash. You can use htpasswd on a command line to generate a hash file.

      -

      - - - Create the test_users password hash file - - -

      - - -
      touch test_users
      -
      -

      - - - Create a user named firefly - - -

      - - -
      htpasswd -B test_users firefly
      -
      - -

      You will be prompted to type the password for the new user twice. Optional: You can continue to add new users by running this command with a different username.

      - -
      htpasswd -B test_users <username>
      -
      -

      - - - Enable basic auth at the Namespace level - - -

      - - -

      To enable auth at the HTTP listener level we will need to edit the FireFly core config file. You can find the config file for the first node in your stack at the following path:

      - -
      ~/.firefly/stacks/<stack_name>/runtime/config/firefly_core_0.yml
      -
      - -

      Open the config file in your favorite editor and add the auth section to the plugins list:

      - -
      plugins:
      -  auth:
      -  - name: test_user_auth
      -    type: basic
      -    basic:
      -      passwordfile: /etc/firefly/test_users
      -
      - -

      You will also need to add test_user_auth to the list of plugins used by the default namespace:

      - -
      namespaces:
      -  predefined:
      -  - plugins:
      -    - database0
      -    - blockchain0
      -    - dataexchange0
      -    - sharedstorage0
      -    - erc20_erc721
      -    - test_user_auth
      -
      -

      - - - Mount the password hash file in the Docker container - - -

      - - -

      If you set up your FireFly stack using the FireFly CLI we will need to mount the password hash file in the Docker container, so that FireFly can actually read the file. This can be done by editing the docker-compose.override.yml file at:

      - -
      ~/.firefly/stacks/<stack_name>/docker-compose.override.yml
      -
      - -

      Edit the file to look like this, replacing the path to your test_users file:

      - -
      # Add custom config overrides here
      -# See https://docs.docker.com/compose/extends
      -version: "2.1"
      -services:
      -  firefly_core_0:
      -      volumes:
      -        - PATH_TO_YOUR_TEST_USERS_FILE:/etc/firefly/test_users
      -
      -

      - - - Restart your FireFly Core container - - -

      - -

      To restart your FireFly stack and have Docker pick up the new volume, run:

      - -
      ff stop <stack_name>
      -ff start <stack_name>
      -
      - -
      -

      NOTE: The FireFly basic auth plugin reads this file at startup and will not read it again during runtime. If you add any users or change passwords, restarting the node will be necessary to use an updated file.

      -
      -

      - - - Test basic auth - - -

      - - -

      After FireFly starts back up, you should be able to test that auth is working correctly by making an unauthenticated request to the API:

      - -
      curl http://localhost:5000/api/v1/status
      -{"error":"FF00169: Unauthorized"}
      -
      - -

      However, if we add the username and password that we created above, the request should still work:

      - -
      curl -u "firefly:firefly" http://localhost:5000/api/v1/status
      -{"namespace":{"name":"default","networkName":"default","description":"Default predefined namespace","created":"2022-10-18T16:35:57.603205507Z"},"node":{"name":"node_0","registered":false},"org":{"name":"org_0","registered":false},"plugins":{"blockchain":[{"name":"blockchain0","pluginType":"ethereum"}],"database":[{"name":"database0","pluginType":"sqlite3"}],"dataExchange":[{"name":"dataexchange0","pluginType":"ffdx"}],"events":[{"pluginType":"websockets"},{"pluginType":"webhooks"},{"pluginType":"system"}],"identity":[],"sharedStorage":[{"name":"sharedstorage0","pluginType":"ipfs"}],"tokens":[{"name":"erc20_erc721","pluginType":"fftokens"}]},"multiparty":{"enabled":true,"contract":{"active":{"index":0,"location":{"address":"0xa750e2647e24828f4fec2e6e6d61fc08ccca5efa"},"info":{"subscription":"sb-d0642f14-f89a-41bb-6fd4-ae74b9501b6c","version":2}}}}}
      -
      -

      - - - Enable auth at the HTTP listener level - - -

      - - -

      You may also want to enable auth at the HTTP listener level, for instance on the SPI (Service Provider Interface) to limit administrative actions. To enable auth at the HTTP listener level we will need to edit the FireFly core config file. You can find the config file for the first node in your stack at the following path:

      - -
      ~/.firefly/stacks/<stack_name>/runtime/config/firefly_core_0.yml
      -
      - -

      Open the config file in your favorite editor and change the spi section to look like the following:

      - -
      spi:
      -  address: 0.0.0.0
      -  enabled: true
      -  port: 5101
      -  publicURL: http://127.0.0.1:5101
      -  auth:
      -    type: basic
      -    basic:
      -      passwordfile: /etc/firefly/test_users
      -
      -

      - - - Restart FireFly to apply the changes - - -

      - - -
      -

      NOTE You will need to mount the password hash file following the instructions above if you have not already.

      -
      - -

      You can run the following to restart your stack:

      - -
      ff stop <stack_name>
      -ff start <stack_name>
      -
      -

      - - - Test basic auth - - -

      - - -

      After FireFly starts back up, you should be able to query the SPI and the request should be unauthorized.

      - -
      curl http://127.0.0.1:5101/spi/v1/namespaces
      -{"error":"FF00169: Unauthorized"}
      -
      - -

      Adding the username and password that we set earlier, should make the request succeed.

      - -
      curl -u "firefly:firefly" http://127.0.0.1:5101/spi/v1/namespaces
      -[{"name":"default","networkName":"default","description":"Default predefined namespace","created":"2022-10-18T16:35:57.603205507Z"}]
      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/basic_auth/index.html b/head/tutorials/basic_auth/index.html new file mode 100644 index 000000000..d90d0a9b6 --- /dev/null +++ b/head/tutorials/basic_auth/index.html @@ -0,0 +1,3768 @@ + + + + + + + + + + + + + + + + + + + + + + + Basic Auth - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Basic Auth

      + +

      Quick reference

      +

      FireFly has a pluggable auth system which can be enabled at two different layers of the stack. At the top, auth can be enabled at the HTTP listener level. This will protect all requests to the given listener. FireFly has three different HTTP listeners, which could each use a different auth scheme:

      +
        +
      1. The main API
      2. +
      3. The SPI (for internal or admin use)
      4. +
      5. The metrics API.
      6. +
      +

      Auth can also be enabled at the namespace level within FireFly as well. This enables several different use cases. For example, you might have two different teams that want to use the same FireFly node, each with different sets of authorized users. You could configure them to use separate namespaces and create separate auth schemes on each.

      +

      FireFly has a basic auth plugin built in, which we will be configuring in this tutorial.

      +
      +

      NOTE: This guide assumes that you have already gone through the Getting Started Guide and have set up and run a stack at least once.

      +
      +

      Additional info

      + +

      Create a password file

      +

      FireFly's built in basic auth plugin uses a password hash file to store the list of authorized users. FireFly uses the bcrypt algorithm to compare passwords against the stored hash. You can use htpasswd on a command line to generate a hash file.

      +

      Create the test_users password hash file

      +
      touch test_users
      +
      +

      Create a user named firefly

      +
      htpasswd -B test_users firefly
      +
      +

      You will be prompted to type the password for the new user twice. Optional: You can continue to add new users by running this command with a different username.

      +
      htpasswd -B test_users <username>
      +
      +

      Enable basic auth at the Namespace level

      +

      To enable auth at the HTTP listener level we will need to edit the FireFly core config file. You can find the config file for the first node in your stack at the following path:

      +
      ~/.firefly/stacks/<stack_name>/runtime/config/firefly_core_0.yml
      +
      +

      Open the config file in your favorite editor and add the auth section to the plugins list:

      +
      plugins:
      +  auth:
      +  - name: test_user_auth
      +    type: basic
      +    basic:
      +      passwordfile: /etc/firefly/test_users
      +
      +

      You will also need to add test_user_auth to the list of plugins used by the default namespace:

      +
      namespaces:
      +  predefined:
      +  - plugins:
      +    - database0
      +    - blockchain0
      +    - dataexchange0
      +    - sharedstorage0
      +    - erc20_erc721
      +    - test_user_auth
      +
      +

      Mount the password hash file in the Docker container

      +

      If you set up your FireFly stack using the FireFly CLI we will need to mount the password hash file in the Docker container, so that FireFly can actually read the file. This can be done by editing the docker-compose.override.yml file at:

      +
      ~/.firefly/stacks/<stack_name>/docker-compose.override.yml
      +
      +

      Edit the file to look like this, replacing the path to your test_users file:

      +
      # Add custom config overrides here
      +# See https://docs.docker.com/compose/extends
      +version: "2.1"
      +services:
      +  firefly_core_0:
      +    volumes:
      +      - PATH_TO_YOUR_TEST_USERS_FILE:/etc/firefly/test_users
      +
      +

      Restart your FireFly Core container

      +

      To restart your FireFly stack and have Docker pick up the new volume, run:

      +
      ff stop <stack_name>
      +ff start <stack_name>
      +
      +
      +

      NOTE: The FireFly basic auth plugin reads this file at startup and will not read it again during runtime. If you add any users or change passwords, restarting the node will be necessary to use an updated file.

      +
      +

      Test basic auth

      +

      After FireFly starts back up, you should be able to test that auth is working correctly by making an unauthenticated request to the API:

      +
      curl http://localhost:5000/api/v1/status
      +{"error":"FF00169: Unauthorized"}
      +
      +

      However, if we add the username and password that we created above, the request should still work:

      +
      curl -u "firefly:firefly" http://localhost:5000/api/v1/status
      +{"namespace":{"name":"default","networkName":"default","description":"Default predefined namespace","created":"2022-10-18T16:35:57.603205507Z"},"node":{"name":"node_0","registered":false},"org":{"name":"org_0","registered":false},"plugins":{"blockchain":[{"name":"blockchain0","pluginType":"ethereum"}],"database":[{"name":"database0","pluginType":"sqlite3"}],"dataExchange":[{"name":"dataexchange0","pluginType":"ffdx"}],"events":[{"pluginType":"websockets"},{"pluginType":"webhooks"},{"pluginType":"system"}],"identity":[],"sharedStorage":[{"name":"sharedstorage0","pluginType":"ipfs"}],"tokens":[{"name":"erc20_erc721","pluginType":"fftokens"}]},"multiparty":{"enabled":true,"contract":{"active":{"index":0,"location":{"address":"0xa750e2647e24828f4fec2e6e6d61fc08ccca5efa"},"info":{"subscription":"sb-d0642f14-f89a-41bb-6fd4-ae74b9501b6c","version":2}}}}}
      +
      +

      Enable auth at the HTTP listener level

      +

      You may also want to enable auth at the HTTP listener level, for instance on the SPI (Service Provider Interface) to limit administrative actions. To enable auth at the HTTP listener level we will need to edit the FireFly core config file. You can find the config file for the first node in your stack at the following path:

      +
      ~/.firefly/stacks/<stack_name>/runtime/config/firefly_core_0.yml
      +
      +

      Open the config file in your favorite editor and change the spi section to look like the following:

      +
      spi:
      +  address: 0.0.0.0
      +  enabled: true
      +  port: 5101
      +  publicURL: http://127.0.0.1:5101
      +  auth:
      +    type: basic
      +    basic:
      +      passwordfile: /etc/firefly/test_users
      +
      +

      Restart FireFly to apply the changes

      +
      +

      NOTE You will need to mount the password hash file following the instructions above if you have not already.

      +
      +

      You can run the following to restart your stack:

      +
      ff stop <stack_name>
      +ff start <stack_name>
      +
      +

      Test basic auth

      +

      After FireFly starts back up, you should be able to query the SPI and the request should be unauthorized.

      +
      curl http://127.0.0.1:5101/spi/v1/namespaces
      +{"error":"FF00169: Unauthorized"}
      +
      +

      Adding the username and password that we set earlier, should make the request succeed.

      +
      curl -u "firefly:firefly" http://127.0.0.1:5101/spi/v1/namespaces
      +[{"name":"default","networkName":"default","description":"Default predefined namespace","created":"2022-10-18T16:35:57.603205507Z"}]
      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/broadcast_data.html b/head/tutorials/broadcast_data.html deleted file mode 100644 index bd1dd8481..000000000 --- a/head/tutorials/broadcast_data.html +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - - - Broadcast data - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.broadcast_data | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Broadcast data - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Quick reference
      2. -
      3. Additional info
      4. -
      5. Example 1: Inline string data
      6. -
      7. Example message response
      8. -
      9. Example 2: Inline object data to a topic (no datatype verification)
      10. -
      11. Notes on why setting a topic is important
      12. -
      13. Example 3: Upload a blob with metadata and broadcast
          -
        1. Multipart form post of a file
        2. -
        3. Example data response from Blob upload
        4. -
        5. Broadcast the uploaded data
        6. -
        -
      14. -
      15. Broadcasting Messages using the Sandbox
      16. -

      -

      - - - Quick reference - - -

      - - -
        -
      • Sends a message visible to all parties in the network -
          -
        • The message describes who sent it, and exactly what data was sent
        • -
        -
      • -
      • A message has one or more attached pieces of business data -
          -
        • Can be sent in-line, uploaded in advanced, or received from other parties
        • -
        • Can include smaller JSON payloads suitable for database storage -
            -
          • These can be verified against a datatype
          • -
          -
        • -
        • Can include references to large (multi megabyte/gigabyte) Blob data
        • -
        -
      • -
      • Sequenced via the blockchain -
          -
        • The blockchain does not contain any data, just a hash pin
        • -
        -
      • -
      • Batched for efficiency -
          -
        • One batch can pin hundreds of message broadcasts
        • -
        • The whole batch is written to the shared storage
        • -
        -
      • -
      -

      - - - Additional info - - -

      - - - -

      - - - Example 1: Inline string data - - -

      - - -

      POST /api/v1/namespaces/default/messages/broadcast

      - -
      {
      -  "data": [
      -    {
      -      "value": "a string"
      -    }
      -  ]
      -}
      -
      -

      - - - Example message response - - -

      - - -
      {
      -  "header": {
      -    "id": "607e22ad-04fa-434a-a073-54f528ca14fb", // uniquely identifies this broadcast message
      -    "type": "broadcast", // set automatically
      -    "txtype": "batch_pin", // message will be batched, and sequenced via the blockchain
      -    "author": "0x0a65365587a65ce44938eab5a765fe8bc6532bdf", // set automatically in this example to the node org
      -    "created": "2021-07-01T18:06:24.5817016Z", // set automatically
      -    "namespace": "default", // the 'default' namespace was set in the URL
      -    "topics": [
      -      "default" // the default topic that the message is published on, if no topic is set
      -    ],
      -    // datahash is calculated from the data array below
      -    "datahash": "5a7bbc074441fa3231d9c8fc942d68ef9b9b646dd234bb48c57826dc723b26fd"
      -  },
      -  "hash": "81acf8c8f7982dbc49258535561461601cbe769752fecec0f8ce0358664979e6", // hash of the header
      -  "state": "ready", // this message is stored locally but not yet confirmed
      -  "data": [
      -    // one item of data was stored
      -    {
      -      "id": "8d8635e2-7c90-4963-99cc-794c98a68b1d", // can be used to query the data in the future
      -      "hash": "c95d6352f524a770a787c16509237baf7eb59967699fb9a6d825270e7ec0eacf" // sha256 hash of `"a string"`
      -    }
      -  ]
      -}
      -
      -

      - - - Example 2: Inline object data to a topic (no datatype verification) - - -

      - - -

      It is very good practice to set a tag and topic in each of your messages:

      - -
        -
      • tag should tell the apps receiving the broadcast (including the local app), what -to do when it receives the message. Its the reason for the broadcast - an -application specific type for the message.
      • -
      • topic should be something like a well known identifier that relates to the -information you are publishing. It is used as an ordering context, so all -broadcasts on a given topic are assured to be processed in order.
      • -
      - -

      POST /api/v1/namespaces/default/messages/broadcast

      - -
      {
      -  "header": {
      -    "tag": "new_widget_created",
      -    "topics": ["widget_id_12345"]
      -  },
      -  "data": [
      -    {
      -      "value": {
      -        "id": "widget_id_12345",
      -        "name": "superwidget"
      -      }
      -    }
      -  ]
      -}
      -
      -

      - - - Notes on why setting a topic is important - - -

      - - -

      The FireFly aggregator uses the topic (obfuscated on chain) to determine if a -message is the next message in an in-flight sequence for any groups the node is -involved in. If it is, then that message must receive all off-chain private data -and be confirmed before any subsequent messages can be confirmed on the same sequence.

      - -

      So if you use the same topic in every message, then a single failed send on one -topic blocks delivery of all messages between those parties, until the missing -data arrives.

      - -

      Instead it is best practice to set the topic on your messages to a value -that identifies an ordered stream of business processing. Some examples:

      - -
        -
      • A long-running business process instance identifier assigned at initiation
      • -
      • A real-world business transaction identifier used off-chain
      • -
      • The agreed identifier of an asset you are attaching a stream of evidence to
      • -
      • An NFT identifier that is assigned to an asset (digital twin scenarios)
      • -
      • An agreed primary key for a data resource being reconciled between multiple parties
      • -
      - -

      The topic field is an array, because there are cases (such as merging two identifiers) -where you need a message to be deterministically ordered across multiple sequences. -However, this is an advanced use case and you are likely to set a single topic -on the vast majority of your messages.

      -

      - - - Example 3: Upload a blob with metadata and broadcast - - -

      - - -

      Here we make two API calls.

      - -

      1) Create the data object explicitly, using a multi-part form upload

      - -
        -
      • You can also just post JSON to this endpoint
      • -
      - -

      2) Broadcast a message referring to that data

      - -
        -
      • The Blob attachment gets published to shared storage -
          -
        • This happens the first time a broadcast happens on a data attachment
        • -
        -
      • -
      • A pin goes to the blockchain
      • -
      • The metadata goes into a batch with the message
      • -
      -

      - - - Multipart form post of a file - - -

      - - -

      Example curl command (Linux/Mac) to grab an image from the internet, -and pipe it into a multi-part form post to FireFly.

      - -
      -

      Note we use autometa to cause FireFly to automatically add -the filename, and size, to the JSON part of the data object for us.

      -
      - -
      curl -sLo - https://github.com/hyperledger/firefly/raw/main/docs/firefly_logo.png \
      - | curl --form autometa=true --form file=@- \
      -   http://localhost:5000/api/v1/namespaces/default/data
      -
      -

      - - - Example data response from Blob upload - - -

      - - -

      Status: 200 OK - your data is uploaded to your local FireFly node

      - -

      At this point the data has not be shared with anyone else in the network

      - -
      {
      -  // A uniquely generated ID, we can refer to when sending this data to other parties
      -  "id": "97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8",
      -  "validator": "json", // the "value" part is JSON
      -  "namespace": "default", // from the URL
      -  // The hash is a combination of the hash of the "value" metadata, and the
      -  // hash of the blob
      -  "hash": "997af6a9a19f06cc8a46872617b8bf974b106f744b2e407e94cc6959aa8cf0b8",
      -  "created": "2021-07-01T20:20:35.5462306Z",
      -  "value": {
      -    "filename": "-", // dash is how curl represents the filename for stdin
      -    "size": 31185 // the size of the blob data
      -  },
      -  "blob": {
      -    // A hash reference to the blob
      -    "hash": "86e6b39b04b605dd1b03f70932976775962509d29ae1ad2628e684faabe48136"
      -    // Note at this point there is no public reference. The only place
      -    // this data has been uploaded to is our own private data exchange.
      -    // It's ready to be published to everyone (broadcast), or privately
      -    // transferred (send) to other parties in the network. But that hasn't
      -    // happened yet.
      -  }
      -}
      -
      -

      - - - Broadcast the uploaded data - - -

      - - -

      Just include a reference to the id returned from the upload.

      - -

      POST /api/v1/namespaces/default/messages/broadcast

      - -
      {
      -  "data": [
      -    {
      -      "id": "97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8"
      -    }
      -  ]
      -}
      -
      -

      - - - Broadcasting Messages using the Sandbox - - -

      - -

      All of the functionality discussed above can be done through the FireFly Sandbox.

      - -

      To get started, open up the Web UI and Sanbox UI for at least one of your members. The URLs for these were printed in your terminal when you started your FireFly stack.

      - -

      In the sandbox, enter your message into the message field as seen in the screenshot below.

      - -

      Initial Broadcast Message

      - -

      Notice how the data field in the center panel updates in real time.

      - -

      Click the blue Run button. This should return a 202 response immediately in the Server Response section and will populate the right hand panel with transaction information after a few seconds.

      - -

      Broadcast Result

      - -

      Go back to the FireFly UI (the URL for this would have been shown in the terminal when you started the stack) and you’ll see your successful blockchain transaction

      - -

      Successful Broadcast Transaction

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/broadcast_data/index.html b/head/tutorials/broadcast_data/index.html new file mode 100644 index 000000000..3e42b8066 --- /dev/null +++ b/head/tutorials/broadcast_data/index.html @@ -0,0 +1,3795 @@ + + + + + + + + + + + + + + + + + + + + + + + Broadcast data - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Broadcast data

      + +

      Quick reference

      +
        +
      • Sends a message visible to all parties in the network
      • +
      • The message describes who sent it, and exactly what data was sent
      • +
      • A message has one or more attached pieces of business data
      • +
      • Can be sent in-line, uploaded in advanced, or received from other parties
      • +
      • Can include smaller JSON payloads suitable for database storage
          +
        • These can be verified against a datatype
        • +
        +
      • +
      • Can include references to large (multi megabyte/gigabyte) Blob data
      • +
      • Sequenced via the blockchain
      • +
      • The blockchain does not contain any data, just a hash pin
      • +
      • Batched for efficiency
      • +
      • One batch can pin hundreds of message broadcasts
      • +
      • The whole batch is written to the shared storage
      • +
      +

      Additional info

      + +

      Example 1: Inline string data

      +

      POST /api/v1/namespaces/default/messages/broadcast

      +
      {
      +  "data": [
      +    {
      +      "value": "a string"
      +    }
      +  ]
      +}
      +
      +

      Example message response

      +
      {
      +  "header": {
      +    "id": "607e22ad-04fa-434a-a073-54f528ca14fb", // uniquely identifies this broadcast message
      +    "type": "broadcast", // set automatically
      +    "txtype": "batch_pin", // message will be batched, and sequenced via the blockchain
      +    "author": "0x0a65365587a65ce44938eab5a765fe8bc6532bdf", // set automatically in this example to the node org
      +    "created": "2021-07-01T18:06:24.5817016Z", // set automatically
      +    "namespace": "default", // the 'default' namespace was set in the URL
      +    "topics": [
      +      "default" // the default topic that the message is published on, if no topic is set
      +    ],
      +    // datahash is calculated from the data array below
      +    "datahash": "5a7bbc074441fa3231d9c8fc942d68ef9b9b646dd234bb48c57826dc723b26fd"
      +  },
      +  "hash": "81acf8c8f7982dbc49258535561461601cbe769752fecec0f8ce0358664979e6", // hash of the header
      +  "state": "ready", // this message is stored locally but not yet confirmed
      +  "data": [
      +    // one item of data was stored
      +    {
      +      "id": "8d8635e2-7c90-4963-99cc-794c98a68b1d", // can be used to query the data in the future
      +      "hash": "c95d6352f524a770a787c16509237baf7eb59967699fb9a6d825270e7ec0eacf" // sha256 hash of `"a string"`
      +    }
      +  ]
      +}
      +
      +

      Example 2: Inline object data to a topic (no datatype verification)

      +

      It is very good practice to set a tag and topic in each of your messages:

      +
        +
      • tag should tell the apps receiving the broadcast (including the local app), what + to do when it receives the message. Its the reason for the broadcast - an + application specific type for the message.
      • +
      • topic should be something like a well known identifier that relates to the + information you are publishing. It is used as an ordering context, so all + broadcasts on a given topic are assured to be processed in order.
      • +
      +

      POST /api/v1/namespaces/default/messages/broadcast

      +
      {
      +  "header": {
      +    "tag": "new_widget_created",
      +    "topics": ["widget_id_12345"]
      +  },
      +  "data": [
      +    {
      +      "value": {
      +        "id": "widget_id_12345",
      +        "name": "superwidget"
      +      }
      +    }
      +  ]
      +}
      +
      +

      Notes on why setting a topic is important

      +

      The FireFly aggregator uses the topic (obfuscated on chain) to determine if a +message is the next message in an in-flight sequence for any groups the node is +involved in. If it is, then that message must receive all off-chain private data +and be confirmed before any subsequent messages can be confirmed on the same sequence.

      +

      So if you use the same topic in every message, then a single failed send on one +topic blocks delivery of all messages between those parties, until the missing +data arrives.

      +

      Instead it is best practice to set the topic on your messages to a value +that identifies an ordered stream of business processing. Some examples:

      +
        +
      • A long-running business process instance identifier assigned at initiation
      • +
      • A real-world business transaction identifier used off-chain
      • +
      • The agreed identifier of an asset you are attaching a stream of evidence to
      • +
      • An NFT identifier that is assigned to an asset (digital twin scenarios)
      • +
      • An agreed primary key for a data resource being reconciled between multiple parties
      • +
      +

      The topic field is an array, because there are cases (such as merging two identifiers) +where you need a message to be deterministically ordered across multiple sequences. +However, this is an advanced use case and you are likely to set a single topic +on the vast majority of your messages.

      +

      Example 3: Upload a blob with metadata and broadcast

      +

      Here we make two API calls.

      +
        +
      1. +

        Create the data object explicitly, using a multi-part form upload

        +
      2. +
      3. +

        You can also just post JSON to this endpoint

        +
      4. +
      5. +

        Broadcast a message referring to that data

        +
      6. +
      7. +

        The Blob attachment gets published to shared storage

        +
      8. +
      9. This happens the first time a broadcast happens on a data attachment
      10. +
      11. A pin goes to the blockchain
      12. +
      13. The metadata goes into a batch with the message
      14. +
      +

      Multipart form post of a file

      +

      Example curl command (Linux/Mac) to grab an image from the internet, +and pipe it into a multi-part form post to FireFly.

      +
      +

      Note we use autometa to cause FireFly to automatically add +the filename, and size, to the JSON part of the data object for us.

      +
      +
      curl -sLo - https://github.com/hyperledger/firefly/raw/main/docs/firefly_logo.png \
      + | curl --form autometa=true --form file=@- \
      +   http://localhost:5000/api/v1/namespaces/default/data
      +
      +

      Example data response from Blob upload

      +

      Status: 200 OK - your data is uploaded to your local FireFly node

      +

      At this point the data has not be shared with anyone else in the network

      +
      {
      +  // A uniquely generated ID, we can refer to when sending this data to other parties
      +  "id": "97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8",
      +  "validator": "json", // the "value" part is JSON
      +  "namespace": "default", // from the URL
      +  // The hash is a combination of the hash of the "value" metadata, and the
      +  // hash of the blob
      +  "hash": "997af6a9a19f06cc8a46872617b8bf974b106f744b2e407e94cc6959aa8cf0b8",
      +  "created": "2021-07-01T20:20:35.5462306Z",
      +  "value": {
      +    "filename": "-", // dash is how curl represents the filename for stdin
      +    "size": 31185 // the size of the blob data
      +  },
      +  "blob": {
      +    // A hash reference to the blob
      +    "hash": "86e6b39b04b605dd1b03f70932976775962509d29ae1ad2628e684faabe48136"
      +    // Note at this point there is no public reference. The only place
      +    // this data has been uploaded to is our own private data exchange.
      +    // It's ready to be published to everyone (broadcast), or privately
      +    // transferred (send) to other parties in the network. But that hasn't
      +    // happened yet.
      +  }
      +}
      +
      +

      Broadcast the uploaded data

      +

      Just include a reference to the id returned from the upload.

      +

      POST /api/v1/namespaces/default/messages/broadcast

      +
      {
      +  "data": [
      +    {
      +      "id": "97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8"
      +    }
      +  ]
      +}
      +
      +

      Broadcasting Messages using the Sandbox

      +

      All of the functionality discussed above can be done through the FireFly Sandbox.

      +

      To get started, open up the Web UI and Sanbox UI for at least one of your members. The URLs for these were printed in your terminal when you started your FireFly stack.

      +

      In the sandbox, enter your message into the message field as seen in the screenshot below.

      +

      Initial Broadcast Message

      +

      Notice how the data field in the center panel updates in real time.

      +

      Click the blue Run button. This should return a 202 response immediately in the Server Response section and will populate the right hand panel with transaction information after a few seconds.

      +

      Broadcast Result

      +

      Go back to the FireFly UI (the URL for this would have been shown in the terminal when you started the stack) and you'll see your successful blockchain transaction

      +

      Successful Broadcast Transaction

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/chains/arbitrum.html b/head/tutorials/chains/arbitrum.html deleted file mode 100644 index ccc398860..000000000 --- a/head/tutorials/chains/arbitrum.html +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - - - - Arbitrum Testnet - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.arbitrum | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Arbitrum Testnet - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Previous steps: Install the FireFly CLI
      2. -
      3. Create an evmconnect.yml config file
      4. -
      5. Creating a new stack
      6. -
      7. Start the stack
      8. -
      9. Get some Aribitrum
          -
        1. Confirm the transaction on Bscscan
        2. -
        -
      10. -
      11. Use the public testnet
      12. -

      - -

      Starting with FireFly v1.1, it’s easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the Arbitrum Nitro Goerli Rollup Testnet.

      -

      - - - Previous steps: Install the FireFly CLI - - -

      - - -

      If you haven’t set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      - -

      ← ① Install the FireFly CLI

      -

      - - - Create an evmconnect.yml config file - - -

      - - -

      In order to connect to the Binance Smart Chain testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      - -
      confirmations:
      -  required: 4 # choose the number of confirmations you require
      -policyengine.simple:
      -  fixedGasPrice: null
      -  gasOracle:
      -    mode: connector
      -
      - -

      For more info about confirmations, see Public vs. Permissioned

      - -

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      -

      - - - Creating a new stack - - -

      - - -

      To create a local FireFly development stack and connect it to the Arbitrum testnet, we will use command line flags to customize the following settings:

      - -
        -
      • Create a new Ethereum based stack named arbitrum with 1 member
      • -
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don’t need to communicate with a consortium here
      • -
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • -
      • See the Arbitrum docs and select an HTTPS RPC endpoint.
      • -
      • Set the chain ID to 421613 (the correct ID for the Binance Smart Chain testnet)
      • -
      • Merge the custom config created above with the generated evmconnect config file
      • -
      - -

      To do this, run the following command:

      - -
      ff init ethereum arbitrum 1 \
      -    --multiparty=false \
      -    -n remote-rpc \
      -    --remote-node-url <selected RPC endpoint> \
      -    --chain-id 421613 \
      -    --connector-config ~/Desktop/evmconnect.yml
      -
      -

      - - - Start the stack - - -

      - - -

      Now you should be able to start your stack by running:

      - -
      ff start arbitrum
      -
      - -

      After some time it should print out the following:

      - -
      Web UI for member '0': http://127.0.0.1:5000/ui
      -Sandbox UI for member '0': http://127.0.0.1:5109
      -
      -
      -To see logs for your stack run:
      -
      -ff logs arbitrum
      -
      -

      - - - Get some Aribitrum - - -

      - - -

      At this point you should have a working FireFly stack, talking to a public chain. However, you won’t be able to run any transactions just yet, because you don’t have any way to pay for gas.

      - -

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      - -
      ff accounts list arbitrum
      -[
      -  {
      -    "address": "0x225764d1be1f137be23ddfc426b819512b5d0f3e",
      -    "privateKey": "..."
      -  }
      -]
      -
      - -

      Copy the address listed in the output from this command. Next, check out this article https://medium.com/offchainlabs/new-g%C3%B6rli-testnet-and-getting-rinkeby-ready-for-nitro-3ff590448053 and follow the instructions to send a tweet to the developers. Make sure to change the address to the one in the CLI.

      - -

      Arbitrum Faucet

      -

      - - - Confirm the transaction on Bscscan - - -

      - - -

      You should be able to go lookup your account on https://goerli-rollup-explorer.arbitrum.io/ and see that you now have a balance of 0.001 ether. Simply paste in your account address to search for it.

      - -

      Blockscout Scan

      -

      - - - Use the public testnet - - -

      - - -

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Binance Smart Chain, please see the Arbitrum docs for instructions using various tools.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/chains/arbitrum/index.html b/head/tutorials/chains/arbitrum/index.html new file mode 100644 index 000000000..360379182 --- /dev/null +++ b/head/tutorials/chains/arbitrum/index.html @@ -0,0 +1,3606 @@ + + + + + + + + + + + + + + + + + + + + + + + Arbitrum - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Arbitrum

      + +

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the Arbitrum Nitro Goerli Rollup Testnet.

      +

      Previous steps: Install the FireFly CLI

      +

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      +

      ← ① Install the FireFly CLI

      +

      Create an evmconnect.yml config file

      +

      In order to connect to the Binance Smart Chain testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      +
      confirmations:
      +  required: 4 # choose the number of confirmations you require
      +policyengine.simple:
      +  fixedGasPrice: null
      +  gasOracle:
      +    mode: connector
      +
      +

      For more info about confirmations, see Public vs. Permissioned

      +

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      +

      Creating a new stack

      +

      To create a local FireFly development stack and connect it to the Arbitrum testnet, we will use command line flags to customize the following settings:

      +
        +
      • Create a new Ethereum based stack named arbitrum with 1 member
      • +
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • +
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • +
      • See the Arbitrum docs and select an HTTPS RPC endpoint.
      • +
      • Set the chain ID to 421613 (the correct ID for the Binance Smart Chain testnet)
      • +
      • Merge the custom config created above with the generated evmconnect config file
      • +
      +

      To do this, run the following command:

      +
      ff init ethereum arbitrum 1 \
      +    --multiparty=false \
      +    -n remote-rpc \
      +    --remote-node-url <selected RPC endpoint> \
      +    --chain-id 421613 \
      +    --connector-config ~/Desktop/evmconnect.yml
      +
      +

      Start the stack

      +

      Now you should be able to start your stack by running:

      +
      ff start arbitrum
      +
      +

      After some time it should print out the following:

      +
      Web UI for member '0': http://127.0.0.1:5000/ui
      +Sandbox UI for member '0': http://127.0.0.1:5109
      +
      +
      +To see logs for your stack run:
      +
      +ff logs arbitrum
      +
      +

      Get some Aribitrum

      +

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas.

      +

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      +
      ff accounts list arbitrum
      +[
      +  {
      +    "address": "0x225764d1be1f137be23ddfc426b819512b5d0f3e",
      +    "privateKey": "..."
      +  }
      +]
      +
      +

      Copy the address listed in the output from this command. Next, check out this article https://medium.com/offchainlabs/new-g%C3%B6rli-testnet-and-getting-rinkeby-ready-for-nitro-3ff590448053 and follow the instructions to send a tweet to the developers. Make sure to change the address to the one in the CLI.

      +

      Arbitrum Faucet

      +

      Confirm the transaction on Bscscan

      +

      You should be able to go lookup your account on https://goerli-rollup-explorer.arbitrum.io/ and see that you now have a balance of 0.001 ether. Simply paste in your account address to search for it.

      +

      Blockscout Scan

      +

      Use the public testnet

      +

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Binance Smart Chain, please see the Arbitrum docs for instructions using various tools.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/chains/avalanche.html b/head/tutorials/chains/avalanche.html deleted file mode 100644 index 04406ea2f..000000000 --- a/head/tutorials/chains/avalanche.html +++ /dev/null @@ -1,472 +0,0 @@ - - - - - - - - - Avalanche Testnet - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.avalanche | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Avalanche Testnet - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Table of contents
      2. -
      3. Previous steps: Install the FireFly CLI
      4. -
      5. Create an evmconnect.yml config file
      6. -
      7. Creating a new stack
      8. -
      9. Start the stack
      10. -
      11. Get some AVAX
          -
        1. Confirm the transaction on Snowtrace
        2. -
        -
      12. -
      13. Use the public testnet
      14. -

      - -

      Starting with FireFly v1.1, it’s easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the Avalanche C-Chain Fuji testnet.

      -

      - - - Previous steps: Install the FireFly CLI - - -

      - - -

      If you haven’t set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      - -

      ← ① Install the FireFly CLI

      -

      - - - Create an evmconnect.yml config file - - -

      - - -

      In order to connect to the Avalanche testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      - -
      confirmations:
      -  required: 4 # choose the number of confirmations you require
      -policyengine.simple:
      -  fixedGasPrice: null
      -  gasOracle:
      -    mode: connector
      -
      - -

      For more info about confirmations, see Public vs. Permissioned

      - -

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      -

      - - - Creating a new stack - - -

      - - -

      To create a local FireFly development stack and connect it to the Avalanche Fuji testnet, we will use command line flags to customize the following settings:

      - -
        -
      • Create a new Ethereum based stack named avalanche with 1 member
      • -
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don’t need to communicate with a consortium here
      • -
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • -
      • See the Avalanche docs and select and HTTPS RPC endpoint.
      • -
      • Set the chain ID to 43113 (the correct ID for the Avalanche Fuji testnet)
      • -
      • Merge the custom config created above with the generated evmconnect config file
      • -
      - -

      To do this, run the following command:

      - -
      ff init ethereum avalanche 1 \
      -    --multiparty=false \
      -    -n remote-rpc \
      -    --remote-node-url <selected RPC endpoint> \
      -    --chain-id 43113 \
      -    --connector-config ~/Desktop/evmconnect.yml
      -
      -

      - - - Start the stack - - -

      - - -

      Now you should be able to start your stack by running:

      - -
      ff start avalanche
      -
      - -

      After some time it should print out the following:

      - -
      Web UI for member '0': http://127.0.0.1:5000/ui
      -Sandbox UI for member '0': http://127.0.0.1:5109
      -
      -
      -To see logs for your stack run:
      -
      -ff logs avalanche
      -
      -

      - - - Get some AVAX - - -

      - - -

      At this point you should have a working FireFly stack, talking to a public chain. However, you won’t be able to run any transactions just yet, because you don’t have any way to pay for gas. A testnet faucet can give us some AVAX, the native token for Avalanche.

      - -

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      - -
      ff accounts list avalanche
      -[
      -  {
      -    "address": "0x6688e14f719766cc2a5856ccef63b069703d86f7",
      -    "privateKey": "..."
      -  }
      -]
      -
      - -

      Copy the address listed in the output from this command. Go to https://faucet.avax.network/ and paste the address in the form. Make sure that the network you select is Fuji (C-Chain). Click the Request 2 AVAX button.

      - -

      Avalanche Faucet

      -

      - - - Confirm the transaction on Snowtrace - - -

      - - -

      You should be able to go lookup your account on Snowtrace for the Fuji testnet and see that you now have a balance of 2 AVAX. Simply paste in your account address or transaction ID to search for it.

      - -

      Snowtrace Scan

      -

      - - - Use the public testnet - - -

      - - -

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Avalanche, please see the Avalanche docs for instructions using various tools.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/chains/avalanche/index.html b/head/tutorials/chains/avalanche/index.html new file mode 100644 index 000000000..b53ed05b5 --- /dev/null +++ b/head/tutorials/chains/avalanche/index.html @@ -0,0 +1,3606 @@ + + + + + + + + + + + + + + + + + + + + + + + Aavalanche - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Aavalanche

      + +

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the Avalanche C-Chain Fuji testnet.

      +

      Previous steps: Install the FireFly CLI

      +

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      +

      ← ① Install the FireFly CLI

      +

      Create an evmconnect.yml config file

      +

      In order to connect to the Avalanche testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      +
      confirmations:
      +  required: 4 # choose the number of confirmations you require
      +policyengine.simple:
      +  fixedGasPrice: null
      +  gasOracle:
      +    mode: connector
      +
      +

      For more info about confirmations, see Public vs. Permissioned

      +

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      +

      Creating a new stack

      +

      To create a local FireFly development stack and connect it to the Avalanche Fuji testnet, we will use command line flags to customize the following settings:

      +
        +
      • Create a new Ethereum based stack named avalanche with 1 member
      • +
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • +
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • +
      • See the Avalanche docs and select and HTTPS RPC endpoint.
      • +
      • Set the chain ID to 43113 (the correct ID for the Avalanche Fuji testnet)
      • +
      • Merge the custom config created above with the generated evmconnect config file
      • +
      +

      To do this, run the following command:

      +
      ff init ethereum avalanche 1 \
      +    --multiparty=false \
      +    -n remote-rpc \
      +    --remote-node-url <selected RPC endpoint> \
      +    --chain-id 43113 \
      +    --connector-config ~/Desktop/evmconnect.yml
      +
      +

      Start the stack

      +

      Now you should be able to start your stack by running:

      +
      ff start avalanche
      +
      +

      After some time it should print out the following:

      +
      Web UI for member '0': http://127.0.0.1:5000/ui
      +Sandbox UI for member '0': http://127.0.0.1:5109
      +
      +
      +To see logs for your stack run:
      +
      +ff logs avalanche
      +
      +

      Get some AVAX

      +

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. A testnet faucet can give us some AVAX, the native token for Avalanche.

      +

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      +
      ff accounts list avalanche
      +[
      +  {
      +    "address": "0x6688e14f719766cc2a5856ccef63b069703d86f7",
      +    "privateKey": "..."
      +  }
      +]
      +
      +

      Copy the address listed in the output from this command. Go to https://faucet.avax.network/ and paste the address in the form. Make sure that the network you select is Fuji (C-Chain). Click the Request 2 AVAX button.

      +

      Avalanche Faucet

      +

      Confirm the transaction on Snowtrace

      +

      You should be able to go lookup your account on Snowtrace for the Fuji testnet and see that you now have a balance of 2 AVAX. Simply paste in your account address or transaction ID to search for it.

      +

      Snowtrace Scan

      +

      Use the public testnet

      +

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Avalanche, please see the Avalanche docs for instructions using various tools.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/chains/binance_smart_chain.html b/head/tutorials/chains/binance_smart_chain.html deleted file mode 100644 index 009b32004..000000000 --- a/head/tutorials/chains/binance_smart_chain.html +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - - - - Binance Smartchain Testnet - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.binance_smart_chain | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Binance Smartchain Testnet - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Previous steps: Install the FireFly CLI
      2. -
      3. Create an evmconnect.yml config file
      4. -
      5. Creating a new stack
      6. -
      7. Start the stack
      8. -
      9. Get some BNB
          -
        1. Confirm the transaction on Bscscan
        2. -
        -
      10. -
      11. Use the public testnet
      12. -

      - -

      Starting with FireFly v1.1, it’s easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Binance Smart Chain testnet.

      -

      - - - Previous steps: Install the FireFly CLI - - -

      - - -

      If you haven’t set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      - -

      ← ① Install the FireFly CLI

      -

      - - - Create an evmconnect.yml config file - - -

      - - -

      In order to connect to the Binance Smart Chain testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      - -
      confirmations:
      -  required: 4 # choose the number of confirmations you require
      -policyengine.simple:
      -  fixedGasPrice: null
      -  gasOracle:
      -    mode: connector
      -
      - -

      For more info about confirmations, see Public vs. Permissioned

      - -

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      -

      - - - Creating a new stack - - -

      - - -

      To create a local FireFly development stack and connect it to the Binance Smart Chain testnet, we will use command line flags to customize the following settings:

      - -
        -
      • Create a new Ethereum based stack named bsc with 1 member
      • -
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don’t need to communicate with a consortium here
      • -
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • -
      • See the Binance BscScan docs and select an HTTPS RPC endpoint.
      • -
      • Set the chain ID to 97 (the correct ID for the Binance Smart Chain testnet)
      • -
      • Merge the custom config created above with the generated evmconnect config file
      • -
      - -

      To do this, run the following command:

      - -
      ff init ethereum bsc 1 \
      -    --multiparty=false \
      -    -n remote-rpc \
      -    --remote-node-url <selected RPC endpoint> \
      -    --chain-id 97 \
      -    --connector-config ~/Desktop/evmconnect.yml
      -
      -

      - - - Start the stack - - -

      - - -

      Now you should be able to start your stack by running:

      - -
      ff start bsc
      -
      - -

      After some time it should print out the following:

      - -
      Web UI for member '0': http://127.0.0.1:5000/ui
      -Sandbox UI for member '0': http://127.0.0.1:5109
      -
      -
      -To see logs for your stack run:
      -
      -ff logs bsc
      -
      -

      - - - Get some BNB - - -

      - - -

      At this point you should have a working FireFly stack, talking to a public chain. However, you won’t be able to run any transactions just yet, because you don’t have any way to pay for gas. A testnet faucet can give us some BNB, the native token for Binance Smart Chain.

      - -

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      - -
      ff accounts list bsc
      -[
      -  {
      -    "address": "0x235461d246ab95d367925b4e91bd2755a921fdd8",
      -    "privateKey": "..."
      -  }
      -]
      -
      - -

      Copy the address listed in the output from this command. Go to https://testnet.binance.org/faucet-smart and paste the address in the form. Go through the CAPTCH form and click the Give me BNB button.

      - -

      BSC Faucet

      -

      - - - Confirm the transaction on Bscscan - - -

      - - -

      You should be able to go lookup your account on Bscscan for the testnet https://testnet.bscscan.com/ and see that you now have a balance of 0.5 BNB. Simply paste in your account address to search for it.

      - -

      BSC Scan

      -

      - - - Use the public testnet - - -

      - - -

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Binance Smart Chain, please see the Binance docs for instructions using various tools.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/chains/binance_smart_chain/index.html b/head/tutorials/chains/binance_smart_chain/index.html new file mode 100644 index 000000000..81a3f3d8a --- /dev/null +++ b/head/tutorials/chains/binance_smart_chain/index.html @@ -0,0 +1,3606 @@ + + + + + + + + + + + + + + + + + + + + + + + Binance Smart Chain - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Binance Smart Chain

      + +

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Binance Smart Chain testnet.

      +

      Previous steps: Install the FireFly CLI

      +

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      +

      ← ① Install the FireFly CLI

      +

      Create an evmconnect.yml config file

      +

      In order to connect to the Binance Smart Chain testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      +
      confirmations:
      +  required: 4 # choose the number of confirmations you require
      +policyengine.simple:
      +  fixedGasPrice: null
      +  gasOracle:
      +    mode: connector
      +
      +

      For more info about confirmations, see Public vs. Permissioned

      +

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      +

      Creating a new stack

      +

      To create a local FireFly development stack and connect it to the Binance Smart Chain testnet, we will use command line flags to customize the following settings:

      +
        +
      • Create a new Ethereum based stack named bsc with 1 member
      • +
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • +
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • +
      • See the Binance BscScan docs and select an HTTPS RPC endpoint.
      • +
      • Set the chain ID to 97 (the correct ID for the Binance Smart Chain testnet)
      • +
      • Merge the custom config created above with the generated evmconnect config file
      • +
      +

      To do this, run the following command:

      +
      ff init ethereum bsc 1 \
      +    --multiparty=false \
      +    -n remote-rpc \
      +    --remote-node-url <selected RPC endpoint> \
      +    --chain-id 97 \
      +    --connector-config ~/Desktop/evmconnect.yml
      +
      +

      Start the stack

      +

      Now you should be able to start your stack by running:

      +
      ff start bsc
      +
      +

      After some time it should print out the following:

      +
      Web UI for member '0': http://127.0.0.1:5000/ui
      +Sandbox UI for member '0': http://127.0.0.1:5109
      +
      +
      +To see logs for your stack run:
      +
      +ff logs bsc
      +
      +

      Get some BNB

      +

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. A testnet faucet can give us some BNB, the native token for Binance Smart Chain.

      +

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      +
      ff accounts list bsc
      +[
      +  {
      +    "address": "0x235461d246ab95d367925b4e91bd2755a921fdd8",
      +    "privateKey": "..."
      +  }
      +]
      +
      +

      Copy the address listed in the output from this command. Go to https://testnet.binance.org/faucet-smart and paste the address in the form. Go through the CAPTCH form and click the Give me BNB button.

      +

      BSC Faucet

      +

      Confirm the transaction on Bscscan

      +

      You should be able to go lookup your account on Bscscan for the testnet https://testnet.bscscan.com/ and see that you now have a balance of 0.5 BNB. Simply paste in your account address to search for it.

      +

      BSC Scan

      +

      Use the public testnet

      +

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Binance Smart Chain, please see the Binance docs for instructions using various tools.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/chains/fabric_test_network.html b/head/tutorials/chains/fabric_test_network.html deleted file mode 100644 index a2eff5d87..000000000 --- a/head/tutorials/chains/fabric_test_network.html +++ /dev/null @@ -1,719 +0,0 @@ - - - - - - - - - Fabric-Samples Test Network - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.fabric_test_network | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Work with Fabric-Samples Test Network - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Previous steps: Install the FireFly CLI
      2. -
      3. Start Fabric Test Network with Fabric CA
      4. -
      5. Deploy FireFly Chaincode
      6. -
      7. Create ccp.yml documents
          -
        1. Organization 1 connection profile
        2. -
        3. Organization 2 connection profile
        4. -
        -
      8. -
      9. Create the FireFly stack
      10. -
      11. Edit docker-compose.override.yml
      12. -
      13. Start FireFly stack
      14. -
      15. Connecting to a remote Fabric Network
      16. -
      17. Troubleshooting
          -
        1. No such host
        2. -
        3. No such file or directory
        4. -
        -
      18. -

      - -

      This guide will walk you through the steps to create a local FireFly development environment and connect it to the Fabric Test Network from the Fabric Samples repo

      -

      - - - Previous steps: Install the FireFly CLI - - -

      - -

      If you haven’t set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      - -

      ← ① Install the FireFly CLI

      -

      - - - Start Fabric Test Network with Fabric CA - - -

      - - -

      For details about the Fabric Test Network and how to set it up, please see the Fabric Samples repo. The one important detail is that you need to start up the Test Network with a Fabric CA. This is because Fabconnect will use the Fabric CA to create an identity for its FireFly node to use. To start up the network with the CA, and create a new channel called mychannel run:

      - -
      ./network.sh up createChannel -ca
      -
      - -
      -

      NOTE: If you already have the Test Network running, you will need to bring it down first, by running: ./network.sh down

      -
      -

      - - - Deploy FireFly Chaincode - - -

      - - -

      Next we will need to package and deploy the FireFly chaincode to mychannel in our new network. For more details on packaging and deploying chaincode, please see the Fabric chaincode lifecycle documentation. If you already have the FireFly repo cloned in the same directory as your fabric-samples repo, you can run the following script from your test-network directory:

      - -
      -

      NOTE: This script is provided as a convenience only, and you are not required to use it. You are welcome to package and deploy the chaincode to your test-network any way you would like.

      -
      - -
      #!/bin/bash
      -
      -# This file should be run from the test-network directory in the fabric-samples repo
      -# It also assumes that you have the firefly repo checked out at the same level as the fabric-samples directory
      -# It also assumes that the test-network is up and running and a channel named 'mychannel' has already been created
      -
      -cd ../../firefly/smart_contracts/fabric/firefly-go
      -GO111MODULE=on go mod vendor
      -cd ../../../../fabric-samples/test-network
      -
      -export PATH=${PWD}/../bin:$PATH
      -export FABRIC_CFG_PATH=$PWD/../config/
      -
      -peer lifecycle chaincode package firefly.tar.gz --path ../../firefly/smart_contracts/fabric/firefly-go --lang golang --label firefly_1.0
      -
      -export CORE_PEER_TLS_ENABLED=true
      -export CORE_PEER_LOCALMSPID="Org1MSP"
      -export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
      -export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
      -export CORE_PEER_ADDRESS=localhost:7051
      -
      -peer lifecycle chaincode install firefly.tar.gz
      -
      -export CORE_PEER_LOCALMSPID="Org2MSP"
      -export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
      -export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
      -export CORE_PEER_ADDRESS=localhost:9051
      -
      -peer lifecycle chaincode install firefly.tar.gz
      -
      -export CC_PACKAGE_ID=$(peer lifecycle chaincode queryinstalled --output json | jq --raw-output ".installed_chaincodes[0].package_id")
      -
      -peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name firefly --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem"
      -
      -export CORE_PEER_LOCALMSPID="Org1MSP"
      -export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
      -export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
      -export CORE_PEER_ADDRESS=localhost:7051
      -
      -peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name firefly --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem"
      -
      -peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name firefly --version 1.0 --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt"
      -
      -

      - - - Create ccp.yml documents - - -

      - - -

      Each FireFly Supernode (specifically the Fabconnect instance in each) will need to know how to connect to the Fabric network. Fabconnect will use a Fabric Connection Profile which describes the network and tells it where the certs and keys are that it needs. Below is a ccp.yml for each organization. You will need to fill in one line by replacing the string FILL_IN_KEY_NAME_HERE, because the file name of the private key for each user is randomly generated.

      -

      - - - Organization 1 connection profile - - -

      - - -

      Create a new file at ~/org1_ccp.yml with the contents below. Replace the string FILL_IN_KEY_NAME_HERE with the filename in your fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore directory.

      - -
      certificateAuthorities:
      -    org1.example.com:
      -        tlsCACerts:
      -            path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp/tlscacerts/ca.crt
      -        url: https://ca_org1:7054
      -        grpcOptions:
      -            ssl-target-name-override: org1.example.com
      -        registrar:
      -            enrollId: admin
      -            enrollSecret: adminpw
      -channels:
      -    mychannel:
      -        orderers:
      -            - fabric_orderer
      -        peers:
      -            fabric_peer:
      -                chaincodeQuery: true
      -                endorsingPeer: true
      -                eventSource: true
      -                ledgerQuery: true
      -client:
      -    BCCSP:
      -        security:
      -            default:
      -                provider: SW
      -            enabled: true
      -            hashAlgorithm: SHA2
      -            level: 256
      -            softVerify: true
      -    credentialStore:
      -        cryptoStore:
      -            path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp
      -        path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp
      -    cryptoconfig:
      -        path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp
      -    logging:
      -        level: info
      -    organization: org1.example.com
      -    tlsCerts:
      -        client:
      -            cert:
      -                path: /etc/firefly/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/cert.pem
      -            key:
      -                path: /etc/firefly/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/FILL_IN_KEY_NAME_HERE
      -orderers:
      -    fabric_orderer:
      -        tlsCACerts:
      -            path: /etc/firefly/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/tlscacerts/tls-localhost-9054-ca-orderer.pem
      -        url: grpcs://orderer.example.com:7050
      -organizations:
      -    org1.example.com:
      -        certificateAuthorities:
      -            - org1.example.com
      -        cryptoPath: /tmp/msp
      -        mspid: Org1MSP
      -        peers:
      -            - fabric_peer
      -peers:
      -    fabric_peer:
      -        tlsCACerts:
      -            path: /etc/firefly/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/tlscacerts/tls-localhost-7054-ca-org1.pem
      -        url: grpcs://peer0.org1.example.com:7051
      -version: 1.1.0%
      -
      -

      - - - Organization 2 connection profile - - -

      - - -

      Create a new file at ~/org2_ccp.yml with the contents below. Replace the string FILL_IN_KEY_NAME_HERE with the filename in your fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore directory.

      - -
      certificateAuthorities:
      -    org2.example.com:
      -        tlsCACerts:
      -            path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp/tlscacerts/ca.crt
      -        url: https://ca_org2:8054
      -        grpcOptions:
      -            ssl-target-name-override: org2.example.com
      -        registrar:
      -            enrollId: admin
      -            enrollSecret: adminpw
      -channels:
      -    mychannel:
      -        orderers:
      -            - fabric_orderer
      -        peers:
      -            fabric_peer:
      -                chaincodeQuery: true
      -                endorsingPeer: true
      -                eventSource: true
      -                ledgerQuery: true
      -client:
      -    BCCSP:
      -        security:
      -            default:
      -                provider: SW
      -            enabled: true
      -            hashAlgorithm: SHA2
      -            level: 256
      -            softVerify: true
      -    credentialStore:
      -        cryptoStore:
      -            path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp
      -        path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp
      -    cryptoconfig:
      -        path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp
      -    logging:
      -        level: info
      -    organization: org2.example.com
      -    tlsCerts:
      -        client:
      -            cert:
      -                path: /etc/firefly/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/cert.pem
      -            key:
      -                path: /etc/firefly/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/FILL_IN_KEY_NAME_HERE
      -orderers:
      -    fabric_orderer:
      -        tlsCACerts:
      -            path: /etc/firefly/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/tlscacerts/tls-localhost-9054-ca-orderer.pem
      -        url: grpcs://orderer.example.com:7050
      -organizations:
      -    org2.example.com:
      -        certificateAuthorities:
      -            - org2.example.com
      -        cryptoPath: /tmp/msp
      -        mspid: Org2MSP
      -        peers:
      -            - fabric_peer
      -peers:
      -    fabric_peer:
      -        tlsCACerts:
      -            path: /etc/firefly/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/tlscacerts/tls-localhost-8054-ca-org2.pem
      -        url: grpcs://peer0.org2.example.com:9051
      -version: 1.1.0%
      -
      -

      - - - Create the FireFly stack - - -

      - - -

      Now we can create a FireFly stack and pass in these files as command line flags.

      - -
      -

      NOTE: The following command should be run in the test-network directory as it includes a relative path to the organizations directory containing each org’s MSP.

      -
      - -
      ff init fabric dev \
      -  --ccp "${HOME}/org1_ccp.yml" \
      -  --msp "organizations" \
      -  --ccp "${HOME}/org2_ccp.yml" \
      -  --msp "organizations" \
      -  --channel mychannel \
      -  --chaincode firefly
      -
      -

      - - - Edit docker-compose.override.yml - - -

      - - -

      The last step before starting up FireFly is to make sure that our FireFly containers have networking access to the Fabric containers. Because these are in two different Docker Compose networks by default, normally the containers would not be able to connect directly. We can fix this by instructing Docker to also attach our FireFly containers to the Fabric test network Docker Compose network. The easiest way to do that is to edit ~/.firefly/stacks/dev/docker-compose.override.yml and set its contents to the following:

      - -
      # Add custom config overrides here
      -# See https://docs.docker.com/compose/extends
      -version: "2.1"
      -networks:
      -  default:
      -    name: fabric_test
      -    external: true
      -
      -

      - - - Start FireFly stack - - -

      - - -

      Now we can start up FireFly!

      - -
      ff start dev
      -
      - -

      After everything starts up, you should have two FireFly nodes that are each mapped to an Organization in your Fabric network. You can that they each use separate signing keys for their Org on messages that each FireFly node sends.

      -

      - - - Connecting to a remote Fabric Network - - -

      - - -

      This same guide can be adapted to connect to a remote Fabric network running somewhere else. They key takeaways are:

      - -
        -
      • You need the FireFly chaincode deployed on channel in your Fabric network
      • -
      • You need to pass the channel and chaincode name when you run ff init
      • -
      • You need to provide a connection profile and the correct certs, keys, etc. for each node when you run ff init
      • -
      • Your FireFly containers will need to have network access to your Fabric network
      • -
      -

      - - - Troubleshooting - - -

      - - -

      There are quite a few moving parts in this guide and if steps are missed or done out of order it can cause problems. Below are some of the common situations that you might run into while following this guide, and solutions for each.

      - -

      You may see a message something along the lines of:

      - -
      ERROR: for firefly_core_0  Container "bc04521372aa" is unhealthy.
      -Encountered errors while bringing up the project.
      -
      - -

      In this case, we need to look at the container logs to get more detail about what happened. To do this, we can run ff start and tell it not to clean up the stack after the failure, to let you inspect what went wrong. To do that, you can run:

      - -
      ff start dev --verbose --no-rollback
      -
      - -

      Then we could run docker logs <container_name> to see the logs for that container.

      -

      - - - No such host - - -

      - - -
      Error: http://127.0.0.1:5102/identities [500] {"error":"enroll failed: enroll failed: POST failure of request: POST https://ca_org1:7054/enroll\n{\"hosts\":null,\"certificate_request\":\"-----BEGIN CERTIFICATE REQUEST-----\\nMIH0MIGcAgEAMBAxDjAMBgNVBAMTBWFkbWluMFkwEwYHKoZIzj0CAQYIKoZIzj0D\\nAQcDQgAE7qJZ5nGt/kxU9IvrEb7EmgNIgn9xXoQUJLl1+U9nXdWB9cnxcmoitnvy\\nYN63kbBuUh0z21vOmO8GLD3QxaRaD6AqMCgGCSqGSIb3DQEJDjEbMBkwFwYDVR0R\\nBBAwDoIMMGQ4NGJhZWIwZGY0MAoGCCqGSM49BAMCA0cAMEQCIBcWb127dVxm/80K\\nB2LtenAY/Jtb2FbZczolrXNCKq+LAiAcGEJ6Mx8LVaPzuSP4uGpEoty6+bEErc5r\\nHVER+0aXiQ==\\n-----END CERTIFICATE REQUEST-----\\n\",\"profile\":\"\",\"crl_override\":\"\",\"label\":\"\",\"NotBefore\":\"0001-01-01T00:00:00Z\",\"NotAfter\":\"0001-01-01T00:00:00Z\",\"ReturnPrecert\":false,\"CAName\":\"\"}: Post \"https://ca_org1:7054/enroll\": dial tcp: lookup ca_org1 on 127.0.0.11:53: no such host"}
      -
      - -

      If you see something in your logs that looks like the above, there could be a couple issues:

      - -
        -
      1. The hostname for one of your Fabric containers could be wrong in the ccp.yml. Check the ccp.yml for that member and make sure the hostnames are correct.
      2. -
      3. The FireFly container doesn’t have networking connectivity to the Fabric containers. Check the docker-compose.override.yml file to make sure you added the fabric_test network as instructed above.
      4. -
      -

      - - - No such file or directory - - -

      - - -
      User credentials store creation failed. Failed to load identity configurations: failed to create identity config from backends: failed to load client TLSConfig : failed to load client key: failed to load pem bytes from path /etc/firefly/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/cfc50311e2204f232cfdfaf4eba7731279f2366ec291ca1c1781e2bf7bc75529_sk: open /etc/firefly/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/cfc50311e2204f232cfdfaf4eba7731279f2366ec291ca1c1781e2bf7bc75529_sk: no such file or directory
      -
      - -

      If you see something in your logs that looks like the above, it’s likely that your private key file name is not correct in your ccp.yml file for that particular member. Check your ccp.yml and make sure all the files listed there exist in your organizations directory.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/chains/fabric_test_network/index.html b/head/tutorials/chains/fabric_test_network/index.html new file mode 100644 index 000000000..1645f4ecc --- /dev/null +++ b/head/tutorials/chains/fabric_test_network/index.html @@ -0,0 +1,3918 @@ + + + + + + + + + + + + + + + + + + + + + + + Fabric Test Network - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Work with Fabric-Samples Test Network

      +

      This guide will walk you through the steps to create a local FireFly development environment and connect it to the Fabric Test Network from the Fabric Samples repo

      +

      Previous steps: Install the FireFly CLI

      +

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      +

      ← ① Install the FireFly CLI

      +

      Start Fabric Test Network with Fabric CA

      +

      For details about the Fabric Test Network and how to set it up, please see the Fabric Samples repo. The one important detail is that you need to start up the Test Network with a Fabric CA. This is because Fabconnect will use the Fabric CA to create an identity for its FireFly node to use. To start up the network with the CA, and create a new channel called mychannel run:

      +
      ./network.sh up createChannel -ca
      +
      +
      +

      NOTE: If you already have the Test Network running, you will need to bring it down first, by running: ./network.sh down

      +
      +

      Deploy FireFly Chaincode

      +

      Next we will need to package and deploy the FireFly chaincode to mychannel in our new network. For more details on packaging and deploying chaincode, please see the Fabric chaincode lifecycle documentation. If you already have the FireFly repo cloned in the same directory as your fabric-samples repo, you can run the following script from your test-network directory:

      +
      +

      NOTE: This script is provided as a convenience only, and you are not required to use it. You are welcome to package and deploy the chaincode to your test-network any way you would like.

      +
      +
      #!/bin/bash
      +
      +# This file should be run from the test-network directory in the fabric-samples repo
      +# It also assumes that you have the firefly repo checked out at the same level as the fabric-samples directory
      +# It also assumes that the test-network is up and running and a channel named 'mychannel' has already been created
      +
      +cd ../../firefly/smart_contracts/fabric/firefly-go
      +GO111MODULE=on go mod vendor
      +cd ../../../../fabric-samples/test-network
      +
      +export PATH=${PWD}/../bin:$PATH
      +export FABRIC_CFG_PATH=$PWD/../config/
      +
      +peer lifecycle chaincode package firefly.tar.gz --path ../../firefly/smart_contracts/fabric/firefly-go --lang golang --label firefly_1.0
      +
      +export CORE_PEER_TLS_ENABLED=true
      +export CORE_PEER_LOCALMSPID="Org1MSP"
      +export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
      +export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
      +export CORE_PEER_ADDRESS=localhost:7051
      +
      +peer lifecycle chaincode install firefly.tar.gz
      +
      +export CORE_PEER_LOCALMSPID="Org2MSP"
      +export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
      +export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
      +export CORE_PEER_ADDRESS=localhost:9051
      +
      +peer lifecycle chaincode install firefly.tar.gz
      +
      +export CC_PACKAGE_ID=$(peer lifecycle chaincode queryinstalled --output json | jq --raw-output ".installed_chaincodes[0].package_id")
      +
      +peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name firefly --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem"
      +
      +export CORE_PEER_LOCALMSPID="Org1MSP"
      +export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
      +export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
      +export CORE_PEER_ADDRESS=localhost:7051
      +
      +peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name firefly --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem"
      +
      +peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name firefly --version 1.0 --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt"
      +
      +

      Create ccp.yml documents

      +

      Each FireFly Supernode (specifically the Fabconnect instance in each) will need to know how to connect to the Fabric network. Fabconnect will use a Fabric Connection Profile which describes the network and tells it where the certs and keys are that it needs. Below is a ccp.yml for each organization. You will need to fill in one line by replacing the string FILL_IN_KEY_NAME_HERE, because the file name of the private key for each user is randomly generated.

      +

      Organization 1 connection profile

      +

      Create a new file at ~/org1_ccp.yml with the contents below. Replace the string FILL_IN_KEY_NAME_HERE with the filename in your fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore directory.

      +
      certificateAuthorities:
      +  org1.example.com:
      +    tlsCACerts:
      +      path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp/tlscacerts/ca.crt
      +    url: https://ca_org1:7054
      +    grpcOptions:
      +      ssl-target-name-override: org1.example.com
      +    registrar:
      +      enrollId: admin
      +      enrollSecret: adminpw
      +channels:
      +  mychannel:
      +    orderers:
      +      - fabric_orderer
      +    peers:
      +      fabric_peer:
      +        chaincodeQuery: true
      +        endorsingPeer: true
      +        eventSource: true
      +        ledgerQuery: true
      +client:
      +  BCCSP:
      +    security:
      +      default:
      +        provider: SW
      +      enabled: true
      +      hashAlgorithm: SHA2
      +      level: 256
      +      softVerify: true
      +  credentialStore:
      +    cryptoStore:
      +      path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp
      +    path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp
      +  cryptoconfig:
      +    path: /etc/firefly/organizations/peerOrganizations/org1.example.com/msp
      +  logging:
      +    level: info
      +  organization: org1.example.com
      +  tlsCerts:
      +    client:
      +      cert:
      +        path: /etc/firefly/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/cert.pem
      +      key:
      +        path: /etc/firefly/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/FILL_IN_KEY_NAME_HERE
      +orderers:
      +  fabric_orderer:
      +    tlsCACerts:
      +      path: /etc/firefly/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/tlscacerts/tls-localhost-9054-ca-orderer.pem
      +    url: grpcs://orderer.example.com:7050
      +organizations:
      +  org1.example.com:
      +    certificateAuthorities:
      +      - org1.example.com
      +    cryptoPath: /tmp/msp
      +    mspid: Org1MSP
      +    peers:
      +      - fabric_peer
      +peers:
      +  fabric_peer:
      +    tlsCACerts:
      +      path: /etc/firefly/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/tlscacerts/tls-localhost-7054-ca-org1.pem
      +    url: grpcs://peer0.org1.example.com:7051
      +version: 1.1.0%
      +
      +

      Organization 2 connection profile

      +

      Create a new file at ~/org2_ccp.yml with the contents below. Replace the string FILL_IN_KEY_NAME_HERE with the filename in your fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore directory.

      +
      certificateAuthorities:
      +  org2.example.com:
      +    tlsCACerts:
      +      path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp/tlscacerts/ca.crt
      +    url: https://ca_org2:8054
      +    grpcOptions:
      +      ssl-target-name-override: org2.example.com
      +    registrar:
      +      enrollId: admin
      +      enrollSecret: adminpw
      +channels:
      +  mychannel:
      +    orderers:
      +      - fabric_orderer
      +    peers:
      +      fabric_peer:
      +        chaincodeQuery: true
      +        endorsingPeer: true
      +        eventSource: true
      +        ledgerQuery: true
      +client:
      +  BCCSP:
      +    security:
      +      default:
      +        provider: SW
      +      enabled: true
      +      hashAlgorithm: SHA2
      +      level: 256
      +      softVerify: true
      +  credentialStore:
      +    cryptoStore:
      +      path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp
      +    path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp
      +  cryptoconfig:
      +    path: /etc/firefly/organizations/peerOrganizations/org2.example.com/msp
      +  logging:
      +    level: info
      +  organization: org2.example.com
      +  tlsCerts:
      +    client:
      +      cert:
      +        path: /etc/firefly/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/cert.pem
      +      key:
      +        path: /etc/firefly/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/FILL_IN_KEY_NAME_HERE
      +orderers:
      +  fabric_orderer:
      +    tlsCACerts:
      +      path: /etc/firefly/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/tlscacerts/tls-localhost-9054-ca-orderer.pem
      +    url: grpcs://orderer.example.com:7050
      +organizations:
      +  org2.example.com:
      +    certificateAuthorities:
      +      - org2.example.com
      +    cryptoPath: /tmp/msp
      +    mspid: Org2MSP
      +    peers:
      +      - fabric_peer
      +peers:
      +  fabric_peer:
      +    tlsCACerts:
      +      path: /etc/firefly/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/tlscacerts/tls-localhost-8054-ca-org2.pem
      +    url: grpcs://peer0.org2.example.com:9051
      +version: 1.1.0%
      +
      +

      Create the FireFly stack

      +

      Now we can create a FireFly stack and pass in these files as command line flags.

      +
      +

      NOTE: The following command should be run in the test-network directory as it includes a relative path to the organizations directory containing each org's MSP.

      +
      +
      ff init fabric dev \
      +  --ccp "${HOME}/org1_ccp.yml" \
      +  --msp "organizations" \
      +  --ccp "${HOME}/org2_ccp.yml" \
      +  --msp "organizations" \
      +  --channel mychannel \
      +  --chaincode firefly
      +
      +

      Edit docker-compose.override.yml

      +

      The last step before starting up FireFly is to make sure that our FireFly containers have networking access to the Fabric containers. Because these are in two different Docker Compose networks by default, normally the containers would not be able to connect directly. We can fix this by instructing Docker to also attach our FireFly containers to the Fabric test network Docker Compose network. The easiest way to do that is to edit ~/.firefly/stacks/dev/docker-compose.override.yml and set its contents to the following:

      +
      # Add custom config overrides here
      +# See https://docs.docker.com/compose/extends
      +version: "2.1"
      +networks:
      +  default:
      +    name: fabric_test
      +    external: true
      +
      +

      Start FireFly stack

      +

      Now we can start up FireFly!

      +
      ff start dev
      +
      +

      After everything starts up, you should have two FireFly nodes that are each mapped to an Organization in your Fabric network. You can that they each use separate signing keys for their Org on messages that each FireFly node sends.

      +

      Connecting to a remote Fabric Network

      +

      This same guide can be adapted to connect to a remote Fabric network running somewhere else. They key takeaways are:

      +
        +
      • You need the FireFly chaincode deployed on channel in your Fabric network
      • +
      • You need to pass the channel and chaincode name when you run ff init
      • +
      • You need to provide a connection profile and the correct certs, keys, etc. for each node when you run ff init
      • +
      • Your FireFly containers will need to have network access to your Fabric network
      • +
      +

      Troubleshooting

      +

      There are quite a few moving parts in this guide and if steps are missed or done out of order it can cause problems. Below are some of the common situations that you might run into while following this guide, and solutions for each.

      +

      You may see a message something along the lines of:

      +
      ERROR: for firefly_core_0  Container "bc04521372aa" is unhealthy.
      +Encountered errors while bringing up the project.
      +
      +

      In this case, we need to look at the container logs to get more detail about what happened. To do this, we can run ff start and tell it not to clean up the stack after the failure, to let you inspect what went wrong. To do that, you can run:

      +
      ff start dev --verbose --no-rollback
      +
      +

      Then we could run docker logs <container_name> to see the logs for that container.

      +

      No such host

      +
      Error: http://127.0.0.1:5102/identities [500] {"error":"enroll failed: enroll failed: POST failure of request: POST https://ca_org1:7054/enroll\n{\"hosts\":null,\"certificate_request\":\"-----BEGIN CERTIFICATE REQUEST-----\\nMIH0MIGcAgEAMBAxDjAMBgNVBAMTBWFkbWluMFkwEwYHKoZIzj0CAQYIKoZIzj0D\\nAQcDQgAE7qJZ5nGt/kxU9IvrEb7EmgNIgn9xXoQUJLl1+U9nXdWB9cnxcmoitnvy\\nYN63kbBuUh0z21vOmO8GLD3QxaRaD6AqMCgGCSqGSIb3DQEJDjEbMBkwFwYDVR0R\\nBBAwDoIMMGQ4NGJhZWIwZGY0MAoGCCqGSM49BAMCA0cAMEQCIBcWb127dVxm/80K\\nB2LtenAY/Jtb2FbZczolrXNCKq+LAiAcGEJ6Mx8LVaPzuSP4uGpEoty6+bEErc5r\\nHVER+0aXiQ==\\n-----END CERTIFICATE REQUEST-----\\n\",\"profile\":\"\",\"crl_override\":\"\",\"label\":\"\",\"NotBefore\":\"0001-01-01T00:00:00Z\",\"NotAfter\":\"0001-01-01T00:00:00Z\",\"ReturnPrecert\":false,\"CAName\":\"\"}: Post \"https://ca_org1:7054/enroll\": dial tcp: lookup ca_org1 on 127.0.0.11:53: no such host"}
      +
      +

      If you see something in your logs that looks like the above, there could be a couple issues:

      +
        +
      1. The hostname for one of your Fabric containers could be wrong in the ccp.yml. Check the ccp.yml for that member and make sure the hostnames are correct.
      2. +
      3. The FireFly container doesn't have networking connectivity to the Fabric containers. Check the docker-compose.override.yml file to make sure you added the fabric_test network as instructed above.
      4. +
      +

      No such file or directory

      +
      User credentials store creation failed. Failed to load identity configurations: failed to create identity config from backends: failed to load client TLSConfig : failed to load client key: failed to load pem bytes from path /etc/firefly/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/cfc50311e2204f232cfdfaf4eba7731279f2366ec291ca1c1781e2bf7bc75529_sk: open /etc/firefly/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/cfc50311e2204f232cfdfaf4eba7731279f2366ec291ca1c1781e2bf7bc75529_sk: no such file or directory
      +
      +

      If you see something in your logs that looks like the above, it's likely that your private key file name is not correct in your ccp.yml file for that particular member. Check your ccp.yml and make sure all the files listed there exist in your organizations directory.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/chains/index.html b/head/tutorials/chains/index.html index 244d4aa40..890fd05ce 100644 --- a/head/tutorials/chains/index.html +++ b/head/tutorials/chains/index.html @@ -1,357 +1,3356 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + Connecting to other blockchains - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      -
    5. - Moonbeam Testnet -
    6. -
    7. - zkSync Testnet -
    8. + +
      +
      +
      + + + +
      +
      +
      - - + + +
      +
      + + - - + + + + +

      Connecting to other blockchains

      + +

      Write interesting stuff here

      + + + + + + + + + + + + + -
      -
      + + + + +
      + + + + + + + + + + + + +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/chains/moonbeam.html b/head/tutorials/chains/moonbeam.html deleted file mode 100644 index 35f2921a5..000000000 --- a/head/tutorials/chains/moonbeam.html +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - - - - Moonbeam Testnet - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.moonbeam_testnet | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Moonbeam Testnet - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Previous steps: Install the FireFly CLI
      2. -
      3. Create an evmconnect.yml config file
      4. -
      5. Creating a new stack
      6. -
      7. Start the stack
      8. -
      9. Get some DEV
          -
        1. Confirm the transaction on Moonscan
        2. -
        -
      10. -
      11. Use the public testnet
      12. -

      - -

      Starting with FireFly v1.1, it’s easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Moonbeam Alpha testnet.

      -

      - - - Previous steps: Install the FireFly CLI - - -

      - - -

      If you haven’t set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      - -

      ← ① Install the FireFly CLI

      -

      - - - Create an evmconnect.yml config file - - -

      - - -

      In order to connect to the Moonbeam testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      - -
      confirmations:
      -  required: 4 # choose the number of confirmations you require
      -policyengine.simple:
      -  fixedGasPrice: null
      -  gasOracle:
      -    mode: connector
      -
      - -

      For more info about confirmations, see Public vs. Permissioned

      - -

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      -

      - - - Creating a new stack - - -

      - - -

      To create a local FireFly development stack and connect it to the Moonbeam Alpha testnet, we will use command line flags to customize the following settings:

      - -
        -
      • Create a new Ethereum based stack named moonbeam with 1 member
      • -
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don’t need to communicate with a consortium here
      • -
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • -
      • See the moonbeam docs and select an HTTPS RPC endpoint
      • -
      • Set the chain ID to 1287 (the correct ID for the Moonbeam Alpha testnet)
      • -
      • Merge the custom config created above with the generated evmconnect config file
      • -
      - -

      To do this, run the following command:

      - -
      ff init ethereum moonbeam 1 \
      -    --multiparty=false \
      -    -n remote-rpc \
      -    --remote-node-url <selected RPC endpoint> \
      -    --chain-id 1287 \
      -    --connector-config ~/Desktop/evmconnect.yml
      -
      -

      - - - Start the stack - - -

      - - -

      Now you should be able to start your stack by running:

      - -
      ff start moonbeam
      -
      - -

      After some time it should print out the following:

      - -
      Web UI for member '0': http://127.0.0.1:5000/ui
      -Sandbox UI for member '0': http://127.0.0.1:5109
      -
      -
      -To see logs for your stack run:
      -
      -ff logs moonbeam
      -
      -

      - - - Get some DEV - - -

      - - -

      At this point you should have a working FireFly stack, talking to a public chain. However, you won’t be able to run any transactions just yet, because you don’t have any way to pay for gas. A testnet faucet can give us some DEV, the native token for Moonbeam.

      - -

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      - -
      ff accounts list moonbeam
      -[
      -  {
      -    "address": "0x02d42c32a97c894486afbc7b717edff50c70b292",
      -    "privateKey": "..."
      -  }
      -]
      -
      - -

      Copy the address listed in the output from this command. Go to https://apps.moonbeam.network/moonbase-alpha/faucet/ and paste the address in the form. Click the Submit button.

      - -

      Moonbase Alpha Faucet

      -

      - - - Confirm the transaction on Moonscan - - -

      - - -

      You should be able to go lookup your account on Moonscan for the Moonbase Alpha testnet and see that you now have a sufficient balance of DEV. Simply paste in your account address to search for it.

      - -

      Moonscan

      -

      - - - Use the public testnet - - -

      - - -

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on interacting with the Moonbeam Alpha testnet, please see the Moonbeam docs.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/chains/moonbeam/index.html b/head/tutorials/chains/moonbeam/index.html new file mode 100644 index 000000000..cd58373f9 --- /dev/null +++ b/head/tutorials/chains/moonbeam/index.html @@ -0,0 +1,3606 @@ + + + + + + + + + + + + + + + + + + + + + + + Moonbeam Testnet - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Moonbeam Testnet

      + +

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Moonbeam Alpha testnet.

      +

      Previous steps: Install the FireFly CLI

      +

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      +

      ← ① Install the FireFly CLI

      +

      Create an evmconnect.yml config file

      +

      In order to connect to the Moonbeam testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      +
      confirmations:
      +  required: 4 # choose the number of confirmations you require
      +policyengine.simple:
      +  fixedGasPrice: null
      +  gasOracle:
      +    mode: connector
      +
      +

      For more info about confirmations, see Public vs. Permissioned

      +

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      +

      Creating a new stack

      +

      To create a local FireFly development stack and connect it to the Moonbeam Alpha testnet, we will use command line flags to customize the following settings:

      +
        +
      • Create a new Ethereum based stack named moonbeam with 1 member
      • +
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • +
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • +
      • See the moonbeam docs and select an HTTPS RPC endpoint
      • +
      • Set the chain ID to 1287 (the correct ID for the Moonbeam Alpha testnet)
      • +
      • Merge the custom config created above with the generated evmconnect config file
      • +
      +

      To do this, run the following command:

      +
      ff init ethereum moonbeam 1 \
      +    --multiparty=false \
      +    -n remote-rpc \
      +    --remote-node-url <selected RPC endpoint> \
      +    --chain-id 1287 \
      +    --connector-config ~/Desktop/evmconnect.yml
      +
      +

      Start the stack

      +

      Now you should be able to start your stack by running:

      +
      ff start moonbeam
      +
      +

      After some time it should print out the following:

      +
      Web UI for member '0': http://127.0.0.1:5000/ui
      +Sandbox UI for member '0': http://127.0.0.1:5109
      +
      +
      +To see logs for your stack run:
      +
      +ff logs moonbeam
      +
      +

      Get some DEV

      +

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. A testnet faucet can give us some DEV, the native token for Moonbeam.

      +

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      +
      ff accounts list moonbeam
      +[
      +  {
      +    "address": "0x02d42c32a97c894486afbc7b717edff50c70b292",
      +    "privateKey": "..."
      +  }
      +]
      +
      +

      Copy the address listed in the output from this command. Go to https://apps.moonbeam.network/moonbase-alpha/faucet/ and paste the address in the form. Click the Submit button.

      +

      Moonbase Alpha Faucet

      +

      Confirm the transaction on Moonscan

      +

      You should be able to go lookup your account on Moonscan for the Moonbase Alpha testnet and see that you now have a sufficient balance of DEV. Simply paste in your account address to search for it.

      +

      Moonscan

      +

      Use the public testnet

      +

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on interacting with the Moonbeam Alpha testnet, please see the Moonbeam docs.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/chains/optimism.html b/head/tutorials/chains/optimism.html deleted file mode 100644 index f48b41a16..000000000 --- a/head/tutorials/chains/optimism.html +++ /dev/null @@ -1,460 +0,0 @@ - - - - - - - - - Optimism Testnet - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.optimism | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Optimism Testnet - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Previous steps: Install the FireFly CLI
      2. -
      3. Create an evmconnect.yml config file
      4. -
      5. Creating a new stack
      6. -
      7. Start the stack
      8. -
      9. Get some Optimism
          -
        1. Confirm the transaction on Blockcscout
        2. -
        -
      10. -
      11. Use the public testnet
      12. -

      - -

      Starting with FireFly v1.1, it’s easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the Optimism Goerli testnet.

      -

      - - - Previous steps: Install the FireFly CLI - - -

      - -

      If you haven’t set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      - -

      ← ① Install the FireFly CLI

      -

      - - - Create an evmconnect.yml config file - - -

      - -

      In order to connect to the Optimism testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      - -
      confirmations:
      -    required: 4 # choose the number of confirmations you require
      -policyengine.simple:
      -    fixedGasPrice: null
      -    gasOracle:
      -        mode: connector
      -
      -

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      -

      - - - Creating a new stack - - -

      - -

      To create a local FireFly development stack and connect it to the Optimism testnet, we will use command line flags to customize the following settings:

      - -
        -
      • Create a new Ethereum based stack named optimism with 1 member
      • -
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don’t need to communicate with a consortium here
      • -
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • -
      • See the optimism docs and select an HTTPS RPC endpoint.
      • -
      • Set the chain ID to 420 (the correct ID for the Optimism testnet)
      • -
      • Merge the custom config created above with the generated evmconnect config file
      • -
      - -

      To do this, run the following command:

      -
      ff init ethereum optimism 1 \
      -    --multiparty=false \
      -    -n remote-rpc \
      -    --remote-node-url <selected RPC endpoint> \
      -    --chain-id 420 \
      -    --connector-config ~/Desktop/evmconnect.yml
      -
      -

      - - - Start the stack - - -

      - -

      Now you should be able to start your stack by running:

      - -
      ff start optimism
      -
      - -

      After some time it should print out the following:

      - -
      Web UI for member '0': http://127.0.0.1:5000/ui
      -Sandbox UI for member '0': http://127.0.0.1:5109
      -
      -
      -To see logs for your stack run:
      -
      -ff logs optimism
      -
      -

      - - - Get some Optimism - - -

      - -

      At this point you should have a working FireFly stack, talking to a public chain. However, you won’t be able to run any transactions just yet, because you don’t have any way to pay for gas. A testnet faucet can give us some OP, the native token for Optimism.

      - -

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      - -
      ff accounts list optimism
      -[
      -  {
      -    "address": "0x235461d246ab95d367925b4e91bd2755a921fdd8",
      -    "privateKey": "..."
      -  }
      -]
      -
      - -

      Copy the address listed in the output from this command. Go to https://optimismfaucet.xyz/. You will need to login to your Github account and paste the address in the form.

      - -

      Optimism Faucet

      -

      - - - Confirm the transaction on Blockcscout - - -

      - -

      You should be able to go lookup your account on Blockscout for Optimism testnet https://blockscout.com/optimism/goerli and see that you now have a balance of 100 OP. Simply paste in your account address to search for it.

      - -

      Blockscout Scan

      -

      - - - Use the public testnet - - -

      - -

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Optimism, please see the Optimism docs for instructions using various tools.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/chains/optimism/index.html b/head/tutorials/chains/optimism/index.html new file mode 100644 index 000000000..526c7183b --- /dev/null +++ b/head/tutorials/chains/optimism/index.html @@ -0,0 +1,3605 @@ + + + + + + + + + + + + + + + + + + + + + + + Optimism - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Optimism

      + +

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the Optimism Goerli testnet.

      +

      Previous steps: Install the FireFly CLI

      +

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      +

      ← ① Install the FireFly CLI

      +

      Create an evmconnect.yml config file

      +

      In order to connect to the Optimism testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      +
      confirmations:
      +  required: 4 # choose the number of confirmations you require
      +policyengine.simple:
      +  fixedGasPrice: null
      +  gasOracle:
      +    mode: connector
      +
      +

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      +

      Creating a new stack

      +

      To create a local FireFly development stack and connect it to the Optimism testnet, we will use command line flags to customize the following settings:

      +
        +
      • Create a new Ethereum based stack named optimism with 1 member
      • +
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • +
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • +
      • See the optimism docs and select an HTTPS RPC endpoint.
      • +
      • Set the chain ID to 420 (the correct ID for the Optimism testnet)
      • +
      • Merge the custom config created above with the generated evmconnect config file
      • +
      +

      To do this, run the following command:

      +
      ff init ethereum optimism 1 \
      +    --multiparty=false \
      +    -n remote-rpc \
      +    --remote-node-url <selected RPC endpoint> \
      +    --chain-id 420 \
      +    --connector-config ~/Desktop/evmconnect.yml
      +
      +

      Start the stack

      +

      Now you should be able to start your stack by running:

      +
      ff start optimism
      +
      +

      After some time it should print out the following:

      +
      Web UI for member '0': http://127.0.0.1:5000/ui
      +Sandbox UI for member '0': http://127.0.0.1:5109
      +
      +
      +To see logs for your stack run:
      +
      +ff logs optimism
      +
      +

      Get some Optimism

      +

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. A testnet faucet can give us some OP, the native token for Optimism.

      +

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      +
      ff accounts list optimism
      +[
      +  {
      +    "address": "0x235461d246ab95d367925b4e91bd2755a921fdd8",
      +    "privateKey": "..."
      +  }
      +]
      +
      +

      Copy the address listed in the output from this command. Go to https://optimismfaucet.xyz/. You will need to login to your Github account and paste the address in the form.

      +

      Optimism Faucet

      +

      Confirm the transaction on Blockcscout

      +

      You should be able to go lookup your account on Blockscout for Optimism testnet https://blockscout.com/optimism/goerli and see that you now have a balance of 100 OP. Simply paste in your account address to search for it.

      +

      Blockscout Scan

      +

      Use the public testnet

      +

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Optimism, please see the Optimism docs for instructions using various tools.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/chains/polygon_testnet.html b/head/tutorials/chains/polygon_testnet.html deleted file mode 100644 index 5c341775b..000000000 --- a/head/tutorials/chains/polygon_testnet.html +++ /dev/null @@ -1,472 +0,0 @@ - - - - - - - - - Polygon Testnet - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.polygon_testnet | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Polygon Testnet - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Previous steps: Install the FireFly CLI
      2. -
      3. Create an evmconnect.yml config file
      4. -
      5. Creating a new stack
      6. -
      7. Start the stack
      8. -
      9. Get some MATIC
          -
        1. Confirm the transaction on Polygonscan
        2. -
        -
      10. -
      11. Use the public testnet
      12. -

      - -

      Starting with FireFly v1.1, it’s easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Polygon Mumbai testnet.

      -

      - - - Previous steps: Install the FireFly CLI - - -

      - - -

      If you haven’t set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      - -

      ← ① Install the FireFly CLI

      -

      - - - Create an evmconnect.yml config file - - -

      - - -

      In order to connect to the Polygon testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      - -
      confirmations:
      -  required: 4 # choose the number of confirmations you require
      -policyengine.simple:
      -  fixedGasPrice: null
      -  gasOracle:
      -    mode: connector
      -
      - -

      For more info about confirmations, see Public vs. Permissioned

      - -

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      -

      - - - Creating a new stack - - -

      - - -

      To create a local FireFly development stack and connect it to the Polygon Mumbai testnet, we will use command line flags to customize the following settings:

      - -
        -
      • Create a new Ethereum based stack named polygon with 1 member
      • -
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don’t need to communicate with a consortium here
      • -
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • -
      • See the list of Polygon RPC endpoints and select an HTTPS RPC endpoint.
      • -
      • Set the chain ID to 80001 (the correct ID for the Polygon Mumbai testnet)
      • -
      • Merge the custom config created above with the generated evmconnect config file
      • -
      - -

      To do this, run the following command:

      - -
      ff init ethereum polygon 1 \
      -    --multiparty=false \
      -    -n remote-rpc \
      -    --remote-node-url <selected RPC endpoint> \
      -    --chain-id 80001 \
      -    --connector-config ~/Desktop/evmconnect.yml
      -
      -

      - - - Start the stack - - -

      - - -

      Now you should be able to start your stack by running:

      - -
      ff start polygon
      -
      - -

      After some time it should print out the following:

      - -
      Web UI for member '0': http://127.0.0.1:5000/ui
      -Sandbox UI for member '0': http://127.0.0.1:5109
      -
      -
      -To see logs for your stack run:
      -
      -ff logs polygon
      -
      -

      - - - Get some MATIC - - -

      - - -

      At this point you should have a working FireFly stack, talking to a public chain. However, you won’t be able to run any transactions just yet, because you don’t have any way to pay for gas. A testnet faucet can give us some MATIC, the native token for Polygon.

      - -

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      - -
      ff accounts list polygon
      -[
      -  {
      -    "address": "0x02d42c32a97c894486afbc7b717edff50c70b292",
      -    "privateKey": "..."
      -  }
      -]
      -
      - -

      Copy the address listed in the output from this command. Go to https://faucet.polygon.technology/ and paste the address in the form. Click the Submit button, and then Confirm.

      - -

      Polygon Faucet

      -

      - - - Confirm the transaction on Polygonscan - - -

      - -

      You should be able to go lookup your account on Polygonscan for the Mumbai testnet and see that you now have a balance of 0.2 MATIC. Simply paste in your account address to search for it.

      - -

      You can also click on the Internal Txns tab from you account page to see the actual transfer of the MATIC from the faucet.

      - -

      Polygonscan

      -

      - - - Use the public testnet - - -

      - - -

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Polygon, please see the Polygon docs for instructions using various tools.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/chains/polygon_testnet/index.html b/head/tutorials/chains/polygon_testnet/index.html new file mode 100644 index 000000000..07cca2afa --- /dev/null +++ b/head/tutorials/chains/polygon_testnet/index.html @@ -0,0 +1,3607 @@ + + + + + + + + + + + + + + + + + + + + + + + Polygon Testnet - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Polygon Testnet

      + +

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Polygon Mumbai testnet.

      +

      Previous steps: Install the FireFly CLI

      +

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      +

      ← ① Install the FireFly CLI

      +

      Create an evmconnect.yml config file

      +

      In order to connect to the Polygon testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      +
      confirmations:
      +  required: 4 # choose the number of confirmations you require
      +policyengine.simple:
      +  fixedGasPrice: null
      +  gasOracle:
      +    mode: connector
      +
      +

      For more info about confirmations, see Public vs. Permissioned

      +

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      +

      Creating a new stack

      +

      To create a local FireFly development stack and connect it to the Polygon Mumbai testnet, we will use command line flags to customize the following settings:

      +
        +
      • Create a new Ethereum based stack named polygon with 1 member
      • +
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • +
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • +
      • See the list of Polygon RPC endpoints and select an HTTPS RPC endpoint.
      • +
      • Set the chain ID to 80001 (the correct ID for the Polygon Mumbai testnet)
      • +
      • Merge the custom config created above with the generated evmconnect config file
      • +
      +

      To do this, run the following command:

      +
      ff init ethereum polygon 1 \
      +    --multiparty=false \
      +    -n remote-rpc \
      +    --remote-node-url <selected RPC endpoint> \
      +    --chain-id 80001 \
      +    --connector-config ~/Desktop/evmconnect.yml
      +
      +

      Start the stack

      +

      Now you should be able to start your stack by running:

      +
      ff start polygon
      +
      +

      After some time it should print out the following:

      +
      Web UI for member '0': http://127.0.0.1:5000/ui
      +Sandbox UI for member '0': http://127.0.0.1:5109
      +
      +
      +To see logs for your stack run:
      +
      +ff logs polygon
      +
      +

      Get some MATIC

      +

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. A testnet faucet can give us some MATIC, the native token for Polygon.

      +

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      +
      ff accounts list polygon
      +[
      +  {
      +    "address": "0x02d42c32a97c894486afbc7b717edff50c70b292",
      +    "privateKey": "..."
      +  }
      +]
      +
      +

      Copy the address listed in the output from this command. Go to https://faucet.polygon.technology/ and paste the address in the form. Click the Submit button, and then Confirm.

      +

      Polygon Faucet

      +

      Confirm the transaction on Polygonscan

      +

      You should be able to go lookup your account on Polygonscan for the Mumbai testnet and see that you now have a balance of 0.2 MATIC. Simply paste in your account address to search for it.

      +

      You can also click on the Internal Txns tab from you account page to see the actual transfer of the MATIC from the faucet.

      +

      Polygonscan

      +

      Use the public testnet

      +

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Polygon, please see the Polygon docs for instructions using various tools.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/chains/tezos_testnet.html b/head/tutorials/chains/tezos_testnet.html deleted file mode 100644 index f9576de0f..000000000 --- a/head/tutorials/chains/tezos_testnet.html +++ /dev/null @@ -1,456 +0,0 @@ - - - - - - - - - Tezos Testnet - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.tezos_testnet | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Tezos Testnet - - -

      - - -
        -
      1. Previous steps: Install the FireFly CLI
      2. -
      3. Set up the transaction signing service
      4. -
      5. Creating a new stack
      6. -
      7. Start the stack
      8. -
      9. Get some XTZ
          -
        1. Confirm the transaction on TzStats
        2. -
        -
      10. -
      11. Use the public testnet
      12. -

      - -

      This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Tezos Ghostnet testnet.

      -

      - - - Previous steps: Install the FireFly CLI - - -

      - - -

      If you haven’t set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      - -

      ← ① Install the FireFly CLI

      -

      - - - Set up the transaction signing service - - -

      - - -

      Signatory service allows to work with many different key-management systems.
      -By default, FF uses local signing option.
      -However, it is also possible to configure the transaction signing service using key management systems such as: AWS/Google/Azure KMS, HCP Vault, etc.

      -
      -

      NOTE: The default option is not secure and is mainly used for development and demo purposes. Therefore, for the production, use the selected KMS.
      -The full list can be found here.

      -
      -

      - - - Creating a new stack - - -

      - - -

      To create a local FireFly development stack and connect it to the Tezos Ghostnet testnet, we will use command line flags to customize the following settings:

      - -
        -
      • Create a new Tezos based stack named tezos with 1 member
      • -
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don’t need to communicate with a consortium here
      • -
      • See the list of Tezos public RPC nodes and select an HTTPS RPC node.
      • -
      - -

      To do this, run the following command:

      - -
      ff init tezos dev 1 \
      -    --multiparty=false \
      -    --remote-node-url <selected RPC endpoint>
      -
      - -
      -

      NOTE: The public RPC nodes may have limitations or may not support all FF required RPC endpoints. Therefore it’s not recommended to use ones for production and you may need to run own node or use third-party vendors.

      -
      -

      - - - Start the stack - - -

      - - -

      Now you should be able to start your stack by running:

      - -
      ff start dev
      -
      - -

      After some time it should print out the following:

      - -
      Web UI for member '0': http://127.0.0.1:5000/ui
      -Sandbox UI for member '0': http://127.0.0.1:5109
      -
      -
      -To see logs for your stack run:
      -
      -ff logs dev
      -
      -

      - - - Get some XTZ - - -

      - - -

      At this point you should have a working FireFly stack, talking to a public chain. However, you won’t be able to run any transactions just yet, because you don’t have any way to pay transaction fee. A testnet faucet can give us some XTZ, the native token for Tezos.

      - -

      First, you need to get an account address, which was created during signer set up step.
      -To check that, you can run:

      -
      ff accounts list dev
      -[
      -  {
      -    "address": "tz1cuFw1E2Mn2bVS8q8d7QoCb6FXC18JivSp",
      -    "privateKey": "..."
      -  }
      -]
      -
      - -

      After that, go to Tezos Ghostnet Faucet and paste the address in the form and click the Request button.

      - -

      Tezos Faucet

      -

      - - - Confirm the transaction on TzStats - - -

      - -

      You should be able to go lookup your account on TzStats for the Ghostnet testnet and see that you now have a balance of 100 XTZ (or 2001 XTZ accordingly). Simply paste in your account address to search for it.

      - -

      On the Transfers tab from you account page you will see the actual transfer of the XTZ from the faucet.

      - -

      TzStats

      -

      - - - Use the public testnet - - -

      - - -

      Now that you have everything set up, you can follow one of the other FireFly guides such as Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Tezos, please see the Tezos docs for instructions using various tools.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/chains/tezos_testnet/index.html b/head/tutorials/chains/tezos_testnet/index.html new file mode 100644 index 000000000..8b50e6887 --- /dev/null +++ b/head/tutorials/chains/tezos_testnet/index.html @@ -0,0 +1,3602 @@ + + + + + + + + + + + + + + + + + + + + + + + Tezos Testnet - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Tezos Testnet

      + +

      This guide will walk you through the steps to create a local FireFly development environment and connect it to the public Tezos Ghostnet testnet.

      +

      Previous steps: Install the FireFly CLI

      +

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      +

      ← ① Install the FireFly CLI

      +

      Set up the transaction signing service

      +

      Signatory service allows to work with many different key-management systems.\ +By default, FF uses local signing option.\ +However, it is also possible to configure the transaction signing service using key management systems such as: AWS/Google/Azure KMS, HCP Vault, etc.

      +
      +

      NOTE: The default option is not secure and is mainly used for development and demo purposes. Therefore, for the production, use the selected KMS.\ +The full list can be found here.

      +
      +

      Creating a new stack

      +

      To create a local FireFly development stack and connect it to the Tezos Ghostnet testnet, we will use command line flags to customize the following settings:

      +
        +
      • Create a new Tezos based stack named tezos with 1 member
      • +
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • +
      • See the list of Tezos public RPC nodes and select an HTTPS RPC node.
      • +
      +

      To do this, run the following command:

      +
      ff init tezos dev 1 \
      +    --multiparty=false \
      +    --remote-node-url <selected RPC endpoint>
      +
      +
      +

      NOTE: The public RPC nodes may have limitations or may not support all FF required RPC endpoints. Therefore it's not recommended to use ones for production and you may need to run own node or use third-party vendors.

      +
      +

      Start the stack

      +

      Now you should be able to start your stack by running:

      +
      ff start dev
      +
      +

      After some time it should print out the following:

      +
      Web UI for member '0': http://127.0.0.1:5000/ui
      +Sandbox UI for member '0': http://127.0.0.1:5109
      +
      +
      +To see logs for your stack run:
      +
      +ff logs dev
      +
      +

      Get some XTZ

      +

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay transaction fee. A testnet faucet can give us some XTZ, the native token for Tezos.

      +

      First, you need to get an account address, which was created during signer set up step.\ +To check that, you can run:

      +
      ff accounts list dev
      +[
      +  {
      +    "address": "tz1cuFw1E2Mn2bVS8q8d7QoCb6FXC18JivSp",
      +    "privateKey": "..."
      +  }
      +]
      +
      +

      After that, go to Tezos Ghostnet Faucet and paste the address in the form and click the Request button.

      +

      Tezos Faucet

      +

      Confirm the transaction on TzStats

      +

      You should be able to go lookup your account on TzStats for the Ghostnet testnet and see that you now have a balance of 100 XTZ (or 2001 XTZ accordingly). Simply paste in your account address to search for it.

      +

      On the Transfers tab from you account page you will see the actual transfer of the XTZ from the faucet.

      +

      TzStats

      +

      Use the public testnet

      +

      Now that you have everything set up, you can follow one of the other FireFly guides such as Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to Tezos, please see the Tezos docs for instructions using various tools.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/chains/zksync_testnet.html b/head/tutorials/chains/zksync_testnet.html deleted file mode 100644 index 5da06a5d0..000000000 --- a/head/tutorials/chains/zksync_testnet.html +++ /dev/null @@ -1,464 +0,0 @@ - - - - - - - - - zkSync Testnet - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.zksync_testnet | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - zkSync Testnet - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Previous steps: Install the FireFly CLI
      2. -
      3. Create an evmconnect.yml config file
      4. -
      5. Creating a new stack
      6. -
      7. Start the stack
      8. -
      9. Get some ETH
          -
        1. Confirm the transaction on the Etherscan Explorer
        2. -
        -
      10. -
      11. Use the public testnet
      12. -

      - -

      Starting with FireFly v1.1, it’s easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the zkSync testnet.

      -

      - - - Previous steps: Install the FireFly CLI - - -

      - -

      If you haven’t set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      - -

      ← ① Install the FireFly CLI

      -

      - - - Create an evmconnect.yml config file - - -

      - -

      In order to connect to the zkSync testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      - -
      confirmations:
      -    required: 4 # choose the number of confirmations you require
      -policyengine.simple:
      -    fixedGasPrice: null
      -    gasOracle:
      -        mode: connector
      -
      -

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      -

      - - - Creating a new stack - - -

      - -

      To create a local FireFly development stack and connect it to the zkSync testnet, we will use command line flags to customize the following settings:

      - -
        -
      • Create a new stack named zkSync with 1 member
      • -
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don’t need to communicate with a consortium here
      • -
      • Connect to an ethereum network
      • -
      • Use the evmconnect blockchain connector
      • -
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • -
      • See the list of providers for zkSync docs. For this tutorial we will use https://zksync2-testnet.zksync.dev
      • -
      • Set the chain ID to 280 (the correct ID for the zkSync testnet)
      • -
      • Merge the custom config created above with the generated evmconnect config file
      • -
      - -

      To do this, run the following command:

      -
      ff init zksync 1\
      -    --multiparty=false \
      -    -b ethereum \
      -    -c evmconnect \
      -    -n remote-rpc \
      -    --remote-node-url https://zksync2-testnet.zksync.dev\
      -    --chain-id 280 \
      -    --connector-config ~/Desktop/evmconnect.yml
      -
      -

      - - - Start the stack - - -

      - -

      Now you should be able to start your stack by running:

      - -
      ff start zksync
      -
      - -

      After some time it should print out the following:

      - -
      Web UI for member '0': http://127.0.0.1:5000/ui
      -Sandbox UI for member '0': http://127.0.0.1:5109
      -
      -
      -To see logs for your stack run:
      -
      -ff logs zksync
      -
      -

      - - - Get some ETH - - -

      - -

      At this point you should have a working FireFly stack, talking to a public chain. However, you won’t be able to run any transactions just yet, because you don’t have any way to pay for gas. zkSync does not currently have its own native token and instead uses Ethereum for transaction. A testnet faucet can give us some ETH.

      - -

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      - -
      ff accounts list zkSync
      -[
      -  {
      -    "address": "0x8cf4fd38b2d56a905113d23b5a7131f0269d8611",
      -    "privateKey": "..."
      -  }
      -]
      -
      - -

      Copy your zkSync address and go to the Goerli Ethereum faucet and paste the address in the form. Click the Request Tokens button. Note that any Goerli Ethereum faucet will work.

      - -

      Goerli Faucet

      -

      - - - Confirm the transaction on the Etherscan Explorer - - -

      - -

      You should be able to go lookup your account at https://etherscan.io/ and see that you now have a balance of 0.025 ETH. Simply paste in your account address to search for it.

      - -

      Etherscan

      -

      - - - Use the public testnet - - -

      - -

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to zkSync, please see the zkSync docs for instructions using various tools.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/chains/zksync_testnet/index.html b/head/tutorials/chains/zksync_testnet/index.html new file mode 100644 index 000000000..ae3dd1581 --- /dev/null +++ b/head/tutorials/chains/zksync_testnet/index.html @@ -0,0 +1,3609 @@ + + + + + + + + + + + + + + + + + + + + + + + zkSync Testnet - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      zkSync Testnet

      + +

      Starting with FireFly v1.1, it's easy to connect to public Ethereum chains. This guide will walk you through the steps to create a local FireFly development environment and connect it to the zkSync testnet.

      +

      Previous steps: Install the FireFly CLI

      +

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      +

      ← ① Install the FireFly CLI

      +

      Create an evmconnect.yml config file

      +

      In order to connect to the zkSync testnet, you will need to set a few configuration options for the evmconnect blockchain connector. Create a text file called evmconnect.yml with the following contents:

      +
      confirmations:
      +  required: 4 # choose the number of confirmations you require
      +policyengine.simple:
      +  fixedGasPrice: null
      +  gasOracle:
      +    mode: connector
      +
      +

      For this tutorial, we will assume this file is saved at ~/Desktop/evmconnect.yml. If your path is different, you will need to adjust the path in the next command below.

      +

      Creating a new stack

      +

      To create a local FireFly development stack and connect it to the zkSync testnet, we will use command line flags to customize the following settings:

      +
        +
      • Create a new stack named zkSync with 1 member
      • +
      • Disable multiparty mode. We are going to be using this FireFly node as a Web3 gateway, and we don't need to communicate with a consortium here
      • +
      • Connect to an ethereum network
      • +
      • Use the evmconnect blockchain connector
      • +
      • Use an remote RPC node. This will create a signer locally, so that our signing key never leaves the development machine.
      • +
      • See the list of providers for zkSync docs. For this tutorial we will use https://zksync2-testnet.zksync.dev
      • +
      • Set the chain ID to 280 (the correct ID for the zkSync testnet)
      • +
      • Merge the custom config created above with the generated evmconnect config file
      • +
      +

      To do this, run the following command:

      +
      ff init zksync 1\
      +    --multiparty=false \
      +    -b ethereum \
      +    -c evmconnect \
      +    -n remote-rpc \
      +    --remote-node-url https://zksync2-testnet.zksync.dev\
      +    --chain-id 280 \
      +    --connector-config ~/Desktop/evmconnect.yml
      +
      +

      Start the stack

      +

      Now you should be able to start your stack by running:

      +
      ff start zksync
      +
      +

      After some time it should print out the following:

      +
      Web UI for member '0': http://127.0.0.1:5000/ui
      +Sandbox UI for member '0': http://127.0.0.1:5109
      +
      +
      +To see logs for your stack run:
      +
      +ff logs zksync
      +
      +

      Get some ETH

      +

      At this point you should have a working FireFly stack, talking to a public chain. However, you won't be able to run any transactions just yet, because you don't have any way to pay for gas. zkSync does not currently have its own native token and instead uses Ethereum for transaction. A testnet faucet can give us some ETH.

      +

      First, you will need to know what signing address your FireFly node is using. To check that, you can run:

      +
      ff accounts list zkSync
      +[
      +  {
      +    "address": "0x8cf4fd38b2d56a905113d23b5a7131f0269d8611",
      +    "privateKey": "..."
      +  }
      +]
      +
      +

      Copy your zkSync address and go to the Goerli Ethereum faucet and paste the address in the form. Click the Request Tokens button. Note that any Goerli Ethereum faucet will work.

      +

      Goerli Faucet

      +

      Confirm the transaction on the Etherscan Explorer

      +

      You should be able to go lookup your account at https://etherscan.io/ and see that you now have a balance of 0.025 ETH. Simply paste in your account address to search for it.

      +

      Etherscan

      +

      Use the public testnet

      +

      Now that you have everything set up, you can follow one of the other FireFly guides such as Using Tokens or Custom Smart Contracts. For detailed instructions on deploying a custom smart contract to zkSync, please see the zkSync docs for instructions using various tools.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/create_custom_identity.html b/head/tutorials/create_custom_identity.html deleted file mode 100644 index 963fcf439..000000000 --- a/head/tutorials/create_custom_identity.html +++ /dev/null @@ -1,563 +0,0 @@ - - - - - - - - - Create a custom identity - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Create a custom identity | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Create a Custom Identity - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Quick reference
      2. -
      3. Additional info
      4. -
      5. Previous steps: Start your environment
      6. -
      7. Step 1: Create a new account
      8. -
      9. Step 2: Query the parent org for its UUID
          -
        1. Request
        2. -
        3. Response
        4. -
        -
      10. -
      11. Step 3: Register the new custom identity with FireFly
          -
        1. Request
        2. -
        3. Response
        4. -
        -
      12. -
      13. Step 4: Query the New Custom Identity
          -
        1. Request
        2. -
        3. Response
        4. -
        -
      14. -

      -

      - - - Quick reference - - -

      - - -

      Out of the box, a FireFly Supernode contains both an org and a node identity. Your use case might demand more granular notions of identity (ex. customers, clients, etc.). Instead of creating a Supernode for each identity, you can create multiple custom identities within a FireFly Supernode.

      -

      - - - Additional info - - -

      - - - -

      - - - Previous steps: Start your environment - - -

      - - -

      If you haven’t started a FireFly stack already, please go to the Getting Started guide on how to Start your environment

      - -

      ← ② Start your environment

      -

      - - - Step 1: Create a new account - - -

      - - -

      The FireFly CLI has a helpful command to create an account in a local development environment for you.

      - -
      -

      NOTE: In a production environment, key management actions such as creation, encryption, unlocking, etc. may be very different, depending on what type of blockchain node and signer your specific deployment is using.

      -
      - -

      To create a new account on your local stack, run:

      - -
      ff accounts create <stack_name>
      -
      - -
      {
      -  "address": "0xc00109e112e21165c7065da776c75cfbc9cdc5e7",
      -  "privateKey": "..."
      -}
      -
      - -

      The FireFly CLI has created a new private key and address for us to be able to use, and it has loaded the encrypted private key into the signing container. However, we haven’t told FireFly itself about the new key, or who it belongs to. That’s what we’ll do in the next steps.

      -

      - - - Step 2: Query the parent org for its UUID - - -

      - - -

      If we want to create a new custom identity under the organizational identity that we’re using in a multiparty network, first we will need to look up the UUID for our org identity. We can look that up by making a GET request to the status endpoint on the default namespace.

      -

      - - - Request - - -

      - - -

      GET http://localhost:5000/api/v1/status

      -

      - - - Response - - -

      - - -
      {
      -    "namespace": {...},
      -    "node": {...},
      -    "org": {
      -        "name": "org_0",
      -        "registered": true,
      -        "did": "did:firefly:org/org_0",
      -        "id": "1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8", // We need this in Step 3
      -        "verifiers": [
      -            {
      -                "type": "ethereum_address",
      -                "value": "0xd7320c76a2efc1909196dea876c4c7dabe49c0f4"
      -            }
      -        ]
      -    },
      -    "plugins": {...},
      -    "multiparty": {...}
      -}
      -
      -

      - - - Step 3: Register the new custom identity with FireFly - - -

      - - -

      Now we can POST to the identities endpoint to create a new custom identity. We will include the UUID of the organizational identity from the previous step in the "parent" field in the request.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/identities

      - -
      {
      -    "name": "myCustomIdentity",
      -    "key": "0xc00109e112e21165c7065da776c75cfbc9cdc5e7", // Signing Key from Step 1
      -    "parent": "1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8" // Org UUID from Step 2
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -    "id": "5ea8f770-e004-48b5-af60-01994230ed05",
      -    "did": "did:firefly:myCustomIdentity",
      -    "type": "custom",
      -    "parent": "1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8",
      -    "namespace": "",
      -    "name": "myCustomIdentity",
      -    "messages": {
      -        "claim": "817b7c79-a934-4936-bbb1-7dcc7c76c1f4",
      -        "verification": "ae55f998-49b1-4391-bed2-fa5e86dc85a2",
      -        "update": null
      -    }
      -}
      -
      -

      - - - Step 4: Query the New Custom Identity - - -

      - - -

      Lastly, if we want to confirm that the new identity has been created, we can query the identities endpoint to see our new custom identity.

      -

      - - - Request - - -

      - - -

      GET http://localhost:5000/api/v1/identities?fetchverifiers=true

      - -
      -

      NOTE: Using fetchverifiers=true will return the cryptographic verification mechanism for the FireFly identity.

      -
      -

      - - - Response - - -

      - - -
      [
      -    {
      -        "id": "5ea8f770-e004-48b5-af60-01994230ed05",
      -        "did": "did:firefly:myCustomIdentity",
      -        "type": "custom",
      -        "parent": "1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8",
      -        "namespace": "default",
      -        "name": "myCustomIdentity",
      -        "messages": {
      -            "claim": "817b7c79-a934-4936-bbb1-7dcc7c76c1f4",
      -            "verification": "ae55f998-49b1-4391-bed2-fa5e86dc85a2",
      -            "update": null
      -        },
      -        "created": "2022-09-19T18:10:47.365068013Z",
      -        "updated": "2022-09-19T18:10:47.365068013Z",
      -        "verifiers": [
      -            {
      -                "type": "ethereum_address",
      -                "value": "0xfe1ea8c8a065a0cda424e2351707c7e8eb4d2b6f"
      -            }
      -        ]
      -    },
      -    { ... },
      -    { ... }
      -]
      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/create_custom_identity/index.html b/head/tutorials/create_custom_identity/index.html new file mode 100644 index 000000000..d74321d75 --- /dev/null +++ b/head/tutorials/create_custom_identity/index.html @@ -0,0 +1,3784 @@ + + + + + + + + + + + + + + + + + + + + + + + Create a custom identity - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Create a Custom Identity

      +

      Quick reference

      +

      Out of the box, a FireFly Supernode contains both an org and a node identity. Your use case might demand more granular notions of identity (ex. customers, clients, etc.). Instead of creating a Supernode for each identity, you can create multiple custom identities within a FireFly Supernode.

      +

      Additional info

      + +

      Previous steps: Start your environment

      +

      If you haven't started a FireFly stack already, please go to the Getting Started guide on how to Start your environment

      +

      ← ② Start your environment

      +

      Step 1: Create a new account

      +

      The FireFly CLI has a helpful command to create an account in a local development environment for you.

      +
      +

      NOTE: In a production environment, key management actions such as creation, encryption, unlocking, etc. may be very different, depending on what type of blockchain node and signer your specific deployment is using.

      +
      +

      To create a new account on your local stack, run:

      +
      ff accounts create <stack_name>
      +
      +
      {
      +  "address": "0xc00109e112e21165c7065da776c75cfbc9cdc5e7",
      +  "privateKey": "..."
      +}
      +
      +

      The FireFly CLI has created a new private key and address for us to be able to use, and it has loaded the encrypted private key into the signing container. However, we haven't told FireFly itself about the new key, or who it belongs to. That's what we'll do in the next steps.

      +

      Step 2: Query the parent org for its UUID

      +

      If we want to create a new custom identity under the organizational identity that we're using in a multiparty network, first we will need to look up the UUID for our org identity. We can look that up by making a GET request to the status endpoint on the default namespace.

      +

      Request

      +

      GET http://localhost:5000/api/v1/status

      +

      Response

      +
      {
      +    "namespace": {...},
      +    "node": {...},
      +    "org": {
      +        "name": "org_0",
      +        "registered": true,
      +        "did": "did:firefly:org/org_0",
      +        "id": "1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8", // We need this in Step 3
      +        "verifiers": [
      +            {
      +                "type": "ethereum_address",
      +                "value": "0xd7320c76a2efc1909196dea876c4c7dabe49c0f4"
      +            }
      +        ]
      +    },
      +    "plugins": {...},
      +    "multiparty": {...}
      +}
      +
      +

      Step 3: Register the new custom identity with FireFly

      +

      Now we can POST to the identities endpoint to create a new custom identity. We will include the UUID of the organizational identity from the previous step in the "parent" field in the request.

      +

      Request

      +

      POST http://localhost:5000/api/v1/identities

      +
      {
      +    "name": "myCustomIdentity",
      +    "key": "0xc00109e112e21165c7065da776c75cfbc9cdc5e7", // Signing Key from Step 1
      +    "parent": "1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8" // Org UUID from Step 2
      +}
      +
      +

      Response

      +
      {
      +    "id": "5ea8f770-e004-48b5-af60-01994230ed05",
      +    "did": "did:firefly:myCustomIdentity",
      +    "type": "custom",
      +    "parent": "1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8",
      +    "namespace": "",
      +    "name": "myCustomIdentity",
      +    "messages": {
      +        "claim": "817b7c79-a934-4936-bbb1-7dcc7c76c1f4",
      +        "verification": "ae55f998-49b1-4391-bed2-fa5e86dc85a2",
      +        "update": null
      +    }
      +}
      +
      +

      Step 4: Query the New Custom Identity

      +

      Lastly, if we want to confirm that the new identity has been created, we can query the identities endpoint to see our new custom identity.

      +

      Request

      +

      GET http://localhost:5000/api/v1/identities?fetchverifiers=true

      +
      +

      NOTE: Using fetchverifiers=true will return the cryptographic verification mechanism for the FireFly identity.

      +
      +

      Response

      +
      [
      +    {
      +        "id": "5ea8f770-e004-48b5-af60-01994230ed05",
      +        "did": "did:firefly:myCustomIdentity",
      +        "type": "custom",
      +        "parent": "1c0abf75-0f3a-40e4-a8cd-5ff926f80aa8",
      +        "namespace": "default",
      +        "name": "myCustomIdentity",
      +        "messages": {
      +            "claim": "817b7c79-a934-4936-bbb1-7dcc7c76c1f4",
      +            "verification": "ae55f998-49b1-4391-bed2-fa5e86dc85a2",
      +            "update": null
      +        },
      +        "created": "2022-09-19T18:10:47.365068013Z",
      +        "updated": "2022-09-19T18:10:47.365068013Z",
      +        "verifiers": [
      +            {
      +                "type": "ethereum_address",
      +                "value": "0xfe1ea8c8a065a0cda424e2351707c7e8eb4d2b6f"
      +            }
      +        ]
      +    },
      +    { ... },
      +    { ... }
      +]
      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/custom_contracts/ethereum.html b/head/tutorials/custom_contracts/ethereum.html deleted file mode 100644 index 3f3c97fd6..000000000 --- a/head/tutorials/custom_contracts/ethereum.html +++ /dev/null @@ -1,1651 +0,0 @@ - - - - - - - - - Ethereum - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Ethereum | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Work with Ethereum smart contracts - - -

      - - -

      This guide describes the steps to deploy a smart contract to an Ethereum blockchain and use FireFly to interact with it in order to submit transactions, query for states and listening for events.

      - -
      -

      NOTE: This guide assumes that you are running a local FireFly stack with at least 2 members and an Ethereum blockchain created by the FireFly CLI. If you need help getting that set up, please see the Getting Started guide to Start your environment.

      -
      -

      - - - Table of contents - - -

      - - -
        -
      1. Work with Ethereum smart contracts
          -
        1. Example smart contract
        2. -
        3. Contract deployment
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        4. -
        5. The FireFly Interface Format
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        6. -
        7. Broadcast the contract interface
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        8. -
        9. Create an HTTP API for the contract
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        10. -
        11. View OpenAPI spec for the contract
        12. -
        13. Invoke the smart contract
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        14. -
        15. Query the current value
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        16. -
        17. Passing additional options with a request
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        18. -
        19. Create a blockchain event listener
            -
          1. Request
          2. -
          3. Response
          4. -
          5. Querying listener status
              -
            1. Request / Response
            2. -
            -
          6. -
          -
        20. -
        21. Subscribe to events from our contract
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        22. -
        23. Receive custom smart contract events
            -
          1. WebSocket event
          2. -
          3. Subscription offset
          4. -
          -
        24. -
        25. Appendix I: Work with a custom contract without creating a named API
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        26. -
        27. Appendix II: Work directly with contracts with inline requests
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        28. -
        -
      2. -

      -

      - - - Example smart contract - - -

      - - -

      For this tutorial, we will be using a well known, but slightly modified smart contract called SimpleStorage, and will be using this contract on an Ethereum blockchain. As the name implies, it’s a very simple contract which stores an unsigned 256 bit integer, emits and event when the value is updated, and allows you to retrieve the current value.

      - -

      Here is the source for this contract:

      - -
      // SPDX-License-Identifier: Apache-2.0
      -pragma solidity ^0.8.10;
      -
      -// Declares a new contract
      -contract SimpleStorage {
      -    // Storage. Persists in between transactions
      -    uint256 x;
      -
      -    // Allows the unsigned integer stored to be changed
      -    function set(uint256 newValue) public {
      -        x = newValue;
      -        emit Changed(msg.sender, newValue);
      -    }
      -
      -    // Returns the currently stored unsigned integer
      -    function get() public view returns (uint256) {
      -        return x;
      -    }
      -
      -    event Changed(address indexed from, uint256 value);
      -}
      -
      -

      - - - Contract deployment - - -

      - - -

      If you need to deploy an Ethereum smart contract with a signing key that FireFly will use for submitting future transactions it is recommended to use FireFly’s built in contract deployment API. This is useful in many cases. For example, you may want to deploy a token contract and have FireFly mint some tokens. Many token contracts only allow the contract deployer to mint, so the contract would need to be deployed with a FireFly signing key.

      - -

      You will need compile the contract yourself using solc or some other tool. After you have compiled the contract, look in the JSON output file for the fields to build the request below.

      -

      - - - Request - - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      FieldDescription
      keyThe signing key to use to dpeloy the contract. If omitted, the namespaces’s default signing key will be used.
      contractThe compiled bytecode for your smart contract. It should be either a hex encded string or Base64.
      definitionThe full ABI JSON array from your compiled JSON file. Copy the entire value of the abi field from the [ to the ].
      inputAn ordered list of constructor arguments. Some contracts may not require any (such as this example).
      - -

      POST http://localhost:5000/api/v1/namespaces/default/contracts/deploy

      - -
      {
      -  "contract": "608060405234801561001057600080fd5b5061019e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806360fe47b11461003b5780636d4ce63c14610057575b600080fd5b61005560048036038101906100509190610111565b610075565b005b61005f6100cd565b60405161006c919061014d565b60405180910390f35b806000819055503373ffffffffffffffffffffffffffffffffffffffff167fb52dda022b6c1a1f40905a85f257f689aa5d69d850e49cf939d688fbe5af5946826040516100c2919061014d565b60405180910390a250565b60008054905090565b600080fd5b6000819050919050565b6100ee816100db565b81146100f957600080fd5b50565b60008135905061010b816100e5565b92915050565b600060208284031215610127576101266100d6565b5b6000610135848285016100fc565b91505092915050565b610147816100db565b82525050565b6000602082019050610162600083018461013e565b9291505056fea2646970667358221220e6cbd7725b98b234d07bc1823b60ac065b567c6645d15c8f8f6986e5fa5317c664736f6c634300080b0033",
      -  "definition": [
      -    {
      -      "anonymous": false,
      -      "inputs": [
      -        {
      -          "indexed": true,
      -          "internalType": "address",
      -          "name": "from",
      -          "type": "address"
      -        },
      -        {
      -          "indexed": false,
      -          "internalType": "uint256",
      -          "name": "value",
      -          "type": "uint256"
      -        }
      -      ],
      -      "name": "Changed",
      -      "type": "event"
      -    },
      -    {
      -      "inputs": [],
      -      "name": "get",
      -      "outputs": [
      -        {
      -          "internalType": "uint256",
      -          "name": "",
      -          "type": "uint256"
      -        }
      -      ],
      -      "stateMutability": "view",
      -      "type": "function"
      -    },
      -    {
      -      "inputs": [
      -        {
      -          "internalType": "uint256",
      -          "name": "newValue",
      -          "type": "uint256"
      -        }
      -      ],
      -      "name": "set",
      -      "outputs": [],
      -      "stateMutability": "nonpayable",
      -      "type": "function"
      -    }
      -  ],
      -  "input": []
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "aa155a3c-2591-410e-bc9d-68ae7de34689",
      -  "namespace": "default",
      -  "tx": "4712ffb3-cc1a-4a91-aef2-206ac068ba6f",
      -  "type": "blockchain_deploy",
      -  "status": "Succeeded",
      -  "plugin": "ethereum",
      -  "input": {
      -    "contract": "608060405234801561001057600080fd5b5061019e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806360fe47b11461003b5780636d4ce63c14610057575b600080fd5b61005560048036038101906100509190610111565b610075565b005b61005f6100cd565b60405161006c919061014d565b60405180910390f35b806000819055503373ffffffffffffffffffffffffffffffffffffffff167fb52dda022b6c1a1f40905a85f257f689aa5d69d850e49cf939d688fbe5af5946826040516100c2919061014d565b60405180910390a250565b60008054905090565b600080fd5b6000819050919050565b6100ee816100db565b81146100f957600080fd5b50565b60008135905061010b816100e5565b92915050565b600060208284031215610127576101266100d6565b5b6000610135848285016100fc565b91505092915050565b610147816100db565b82525050565b6000602082019050610162600083018461013e565b9291505056fea2646970667358221220e6cbd7725b98b234d07bc1823b60ac065b567c6645d15c8f8f6986e5fa5317c664736f6c634300080b0033",
      -    "definition": [
      -      {
      -        "anonymous": false,
      -        "inputs": [
      -          {
      -            "indexed": true,
      -            "internalType": "address",
      -            "name": "from",
      -            "type": "address"
      -          },
      -          {
      -            "indexed": false,
      -            "internalType": "uint256",
      -            "name": "value",
      -            "type": "uint256"
      -          }
      -        ],
      -        "name": "Changed",
      -        "type": "event"
      -      },
      -      {
      -        "inputs": [],
      -        "name": "get",
      -        "outputs": [
      -          {
      -            "internalType": "uint256",
      -            "name": "",
      -            "type": "uint256"
      -          }
      -        ],
      -        "stateMutability": "view",
      -        "type": "function"
      -      },
      -      {
      -        "inputs": [
      -          {
      -            "internalType": "uint256",
      -            "name": "newValue",
      -            "type": "uint256"
      -          }
      -        ],
      -        "name": "set",
      -        "outputs": [],
      -        "stateMutability": "nonpayable",
      -        "type": "function"
      -      }
      -    ],
      -    "input": [],
      -    "key": "0xddd93a452bfc8d3e62bbc60c243046e4d0cb971b",
      -    "options": null
      -  },
      -  "output": {
      -    "headers": {
      -      "requestId": "default:aa155a3c-2591-410e-bc9d-68ae7de34689",
      -      "type": "TransactionSuccess"
      -    },
      -    "contractLocation": {
      -      "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      -    },
      -    "protocolId": "000000000024/000000",
      -    "transactionHash": "0x32d1144091877266d7f0426e48db157e7d1a857c62e6f488319bb09243f0f851"
      -  },
      -  "created": "2023-02-03T15:42:52.750277Z",
      -  "updated": "2023-02-03T15:42:52.750277Z"
      -}
      -
      - -

      Here we can see in the response above under the output section that our new contract address is 0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1. This is the address that we will reference in the rest of this guide.

      -

      - - - The FireFly Interface Format - - -

      - - -

      If you have an Ethereum ABI for an existing smart contract, there is an HTTP endpoint on the FireFly API that will take the ABI as input and automatically generate the FireFly Interface for you. Rather than handcrafting our FFI, we’ll let FireFly generate it for us using that endpoint now.

      -

      - - - Request - - -

      - - -

      Here we will take the JSON ABI generated by truffle or solc and POST that to FireFly to have it automatically generate the FireFly Interface for us. Copy the abi from the compiled JSON file, and put that inside an input object like the example below:

      - -

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces/generate

      - -
      {
      -  "input": {
      -    "abi": [
      -      {
      -        "anonymous": false,
      -        "inputs": [
      -          {
      -            "indexed": true,
      -            "internalType": "address",
      -            "name": "from",
      -            "type": "address"
      -          },
      -          {
      -            "indexed": false,
      -            "internalType": "uint256",
      -            "name": "value",
      -            "type": "uint256"
      -          }
      -        ],
      -        "name": "Changed",
      -        "type": "event"
      -      },
      -      {
      -        "inputs": [],
      -        "name": "get",
      -        "outputs": [
      -          {
      -            "internalType": "uint256",
      -            "name": "",
      -            "type": "uint256"
      -          }
      -        ],
      -        "stateMutability": "view",
      -        "type": "function"
      -      },
      -      {
      -        "inputs": [
      -          {
      -            "internalType": "uint256",
      -            "name": "newValue",
      -            "type": "uint256"
      -          }
      -        ],
      -        "name": "set",
      -        "outputs": [],
      -        "stateMutability": "nonpayable",
      -        "type": "function"
      -      }
      -    ]
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -

      FireFly generates and returns the the full FireFly Interface for the SimpleStorage contract in the response body:

      - -
      {
      -  "namespace": "default",
      -  "name": "",
      -  "description": "",
      -  "version": "",
      -  "methods": [
      -    {
      -      "name": "get",
      -      "pathname": "",
      -      "description": "",
      -      "params": [],
      -      "returns": [
      -        {
      -          "name": "",
      -          "schema": {
      -            "type": "integer",
      -            "details": {
      -              "type": "uint256",
      -              "internalType": "uint256"
      -            }
      -          }
      -        }
      -      ]
      -    },
      -    {
      -      "name": "set",
      -      "pathname": "",
      -      "description": "",
      -      "params": [
      -        {
      -          "name": "newValue",
      -          "schema": {
      -            "type": "integer",
      -            "details": {
      -              "type": "uint256",
      -              "internalType": "uint256"
      -            }
      -          }
      -        }
      -      ],
      -      "returns": []
      -    }
      -  ],
      -  "events": [
      -    {
      -      "name": "Changed",
      -      "description": "",
      -      "params": [
      -        {
      -          "name": "from",
      -          "schema": {
      -            "type": "string",
      -            "details": {
      -              "type": "address",
      -              "internalType": "address",
      -              "indexed": true
      -            }
      -          }
      -        },
      -        {
      -          "name": "value",
      -          "schema": {
      -            "type": "integer",
      -            "details": {
      -              "type": "uint256",
      -              "internalType": "uint256"
      -            }
      -          }
      -        }
      -      ]
      -    }
      -  ]
      -}
      -
      -

      - - - Broadcast the contract interface - - -

      - - -

      Now that we have a FireFly Interface representation of our smart contract, we want to broadcast that to the entire network. This broadcast will be pinned to the blockchain, so we can always refer to this specific name and version, and everyone in the network will know exactly which contract interface we are talking about.

      - -

      We will take the output from the previous HTTP response above, fill in the name and version and then POST that to the /contracts/interfaces API endpoint.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces

      - -
      {
      -  "namespace": "default",
      -  "name": "SimpleStorage",
      -  "version": "v1.0.0",
      -  "description": "",
      -  "methods": [
      -    {
      -      "name": "get",
      -      "pathname": "",
      -      "description": "",
      -      "params": [],
      -      "returns": [
      -        {
      -          "name": "",
      -          "schema": {
      -            "type": "integer",
      -            "details": {
      -              "type": "uint256",
      -              "internalType": "uint256"
      -            }
      -          }
      -        }
      -      ]
      -    },
      -    {
      -      "name": "set",
      -      "pathname": "",
      -      "description": "",
      -      "params": [
      -        {
      -          "name": "newValue",
      -          "schema": {
      -            "type": "integer",
      -            "details": {
      -              "type": "uint256",
      -              "internalType": "uint256"
      -            }
      -          }
      -        }
      -      ],
      -      "returns": []
      -    }
      -  ],
      -  "events": [
      -    {
      -      "name": "Changed",
      -      "description": "",
      -      "params": [
      -        {
      -          "name": "from",
      -          "schema": {
      -            "type": "string",
      -            "details": {
      -              "type": "address",
      -              "internalType": "address",
      -              "indexed": true
      -            }
      -          }
      -        },
      -        {
      -          "name": "value",
      -          "schema": {
      -            "type": "integer",
      -            "details": {
      -              "type": "uint256",
      -              "internalType": "uint256"
      -            }
      -          }
      -        }
      -      ]
      -    }
      -  ]
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3",
      -  "message": "3cd0dde2-1e39-4c9e-a4a1-569e87cca93a",
      -  "namespace": "default",
      -  "name": "SimpleStorage",
      -  "description": "",
      -  "version": "v1.0.0",
      -  "methods": [
      -    {
      -      "id": "56467890-5713-4463-84b8-4537fcb63d8b",
      -      "contract": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3",
      -      "name": "get",
      -      "namespace": "default",
      -      "pathname": "get",
      -      "description": "",
      -      "params": [],
      -      "returns": [
      -        {
      -          "name": "",
      -          "schema": {
      -            "type": "integer",
      -            "details": {
      -              "type": "uint256",
      -              "internalType": "uint256"
      -            }
      -          }
      -        }
      -      ]
      -    },
      -    {
      -      "id": "6b254d1d-5f5f-491e-bbd2-201e96892e1a",
      -      "contract": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3",
      -      "name": "set",
      -      "namespace": "default",
      -      "pathname": "set",
      -      "description": "",
      -      "params": [
      -        {
      -          "name": "newValue",
      -          "schema": {
      -            "type": "integer",
      -            "details": {
      -              "type": "uint256",
      -              "internalType": "uint256"
      -            }
      -          }
      -        }
      -      ],
      -      "returns": []
      -    }
      -  ],
      -  "events": [
      -    {
      -      "id": "aa1fe67b-b2ac-41af-a7e7-7ad54a30a78d",
      -      "contract": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3",
      -      "namespace": "default",
      -      "pathname": "Changed",
      -      "name": "Changed",
      -      "description": "",
      -      "params": [
      -        {
      -          "name": "from",
      -          "schema": {
      -            "type": "string",
      -            "details": {
      -              "type": "address",
      -              "internalType": "address",
      -              "indexed": true
      -            }
      -          }
      -        },
      -        {
      -          "name": "value",
      -          "schema": {
      -            "type": "integer",
      -            "details": {
      -              "type": "uint256",
      -              "internalType": "uint256"
      -            }
      -          }
      -        }
      -      ]
      -    }
      -  ]
      -}
      -
      -

      - - - Create an HTTP API for the contract - - -

      - - -

      Now comes the fun part where we see some of the powerful, developer-friendly features of FireFly. The next thing we’re going to do is tell FireFly to build an HTTP API for this smart contract, complete with an OpenAPI Specification and Swagger UI. As part of this, we’ll also tell FireFly where the contract is on the blockchain. Like the interface broadcast above, this will also generate a broadcast which will be pinned to the blockchain so all the members of the network will be aware of and able to interact with this API.

      - -

      We need to copy the id field we got in the response from the previous step to the interface.id field in the request body below. We will also pick a name that will be part of the URL for our HTTP API, so be sure to pick a name that is URL friendly. In this case we’ll call it simple-storage. Lastly, in the location.address field, we’re telling FireFly where an instance of the contract is deployed on-chain.

      - -
      -

      NOTE: The location field is optional here, but if it is omitted, it will be required in every request to invoke or query the contract. This can be useful if you have multiple instances of the same contract deployed to different addresses.

      -
      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/apis

      - -
      {
      -  "name": "simple-storage",
      -  "interface": {
      -    "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3"
      -  },
      -  "location": {
      -    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "9a681ec6-1dee-42a0-b91b-61d23a814b0f",
      -  "namespace": "default",
      -  "interface": {
      -    "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3"
      -  },
      -  "location": {
      -    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      -  },
      -  "name": "simple-storage",
      -  "message": "d90d0386-8874-43fb-b7d3-485c22f35f47",
      -  "urls": {
      -    "openapi": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api/swagger.json",
      -    "ui": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api"
      -  }
      -}
      -
      -

      - - - View OpenAPI spec for the contract - - -

      - - -

      You’ll notice in the response body that there are a couple of URLs near the bottom. If you navigate to the one labeled ui in your browser, you should see the Swagger UI for your smart contract.

      - -

      Swagger UI

      -

      - - - Invoke the smart contract - - -

      - - -

      Now that we’ve got everything set up, it’s time to use our smart contract! We’re going to make a POST request to the invoke/set endpoint to set the integer value on-chain. Let’s set it to the value of 3 right now.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/invoke/set

      - -
      {
      -  "input": {
      -    "newValue": 3
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "41c67c63-52cf-47ce-8a59-895fe2ffdc86"
      -}
      -
      - -

      You’ll notice that we just get an ID back here, and that’s expected due to the asynchronous programming model of working with smart contracts in FireFly. To see what the value is now, we can query the smart contract. In a little bit, we’ll also subscribe to the events emitted by this contract so we can know when the value is updated in realtime.

      -

      - - - Query the current value - - -

      - - -

      To make a read-only request to the blockchain to check the current value of the stored integer, we can make a POST to the query/get endpoint.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/query/get

      - -
      {}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "output": "3"
      -}
      -
      - -
      -

      NOTE: Some contracts may have queries that require input parameters. That’s why the query endpoint is a POST, rather than a GET so that parameters can be passed as JSON in the request body. This particular function does not have any parameters, so we just pass an empty JSON object.

      -
      -

      - - - Passing additional options with a request - - -

      - - -

      Some smart contract functions may accept or require additional options to be passed with the request. For example, a Solidity function might be payable, meaning that a value field must be specified, indicating an amount of ETH to be transferred with the request. Each of your smart contract API’s /invoke or /query endpoints support an options object in addition to the input arguments for the function itself.

      - -

      Here is an example of sending 100 wei with a transaction:

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/invoke/set

      - -
      {
      -  "input": {
      -    "newValue": 3
      -  },
      -  "options": {
      -    "value": 100
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "41c67c63-52cf-47ce-8a59-895fe2ffdc86"
      -}
      -
      -

      - - - Create a blockchain event listener - - -

      - - -

      Now that we’ve seen how to submit transactions and preform read-only queries to the blockchain, let’s look at how to receive blockchain events so we know when things are happening in realtime.

      - -

      If you look at the source code for the smart contract we’re working with above, you’ll notice that it emits an event when the stored value of the integer is set. In order to receive these events, we first need to instruct FireFly to listen for this specific type of blockchain event. To do this, we create an Event Listener. The /contracts/listeners endpoint is RESTful so there are POST, GET, and DELETE methods available on it. To create a new listener, we will make a POST request. We are going to tell FireFly to listen to events with name "Changed" from the FireFly Interface we defined earlier, referenced by its ID. We will also tell FireFly which contract address we expect to emit these events, and the topic to assign these events to. Topics are a way for applications to subscribe to events they are interested in.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/contracts/listeners

      - -
      {
      -  "interface": {
      -    "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3"
      -  },
      -  "location": {
      -    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      -  },
      -  "eventPath": "Changed",
      -  "options": {
      -    "firstEvent": "newest"
      -  },
      -  "topic": "simple-storage"
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14",
      -  "interface": {
      -    "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3"
      -  },
      -  "namespace": "default",
      -  "name": "sb-66209ffc-d355-4ac0-7151-bc82490ca9df",
      -  "protocolId": "sb-66209ffc-d355-4ac0-7151-bc82490ca9df",
      -  "location": {
      -    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      -  },
      -  "created": "2022-02-17T22:02:36.34549538Z",
      -  "event": {
      -    "name": "Changed",
      -    "description": "",
      -    "params": [
      -      {
      -        "name": "from",
      -        "schema": {
      -          "type": "string",
      -          "details": {
      -            "type": "address",
      -            "internalType": "address",
      -            "indexed": true
      -          }
      -        }
      -      },
      -      {
      -        "name": "value",
      -        "schema": {
      -          "type": "integer",
      -          "details": {
      -            "type": "uint256",
      -            "internalType": "uint256"
      -          }
      -        }
      -      }
      -    ]
      -  },
      -  "options": {
      -    "firstEvent": "oldest"
      -  }
      -}
      -
      - -

      We can see in the response, that FireFly pulls all the schema information from the FireFly Interface that we broadcasted earlier and creates the listener with that schema. This is useful so that we don’t have to enter all of that data again.

      -

      - - - Querying listener status - - -

      - - -

      If you are interested in learning about the current state of a listener you have created, you can query with the fetchstatus parameter. For FireFly stacks with an EVM compatible blockchain connector, the response will include checkpoint information and if the listener is currently in catchup mode.

      -

      - - - Request / Response - - -

      - - -

      GET http://localhost:5000/api/v1/namespaces/default/contracts/listeners/1bfa3b0f-3d90-403e-94a4-af978d8c5b14?fetchstatus

      - -
      {
      -  "id": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14",
      -  "interface": {
      -    "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3"
      -  },
      -  "namespace": "default",
      -  "name": "sb-66209ffc-d355-4ac0-7151-bc82490ca9df",
      -  "protocolId": "sb-66209ffc-d355-4ac0-7151-bc82490ca9df",
      -  "location": {
      -    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      -  },
      -  "created": "2022-02-17T22:02:36.34549538Z",
      -  "event": {
      -    "name": "Changed",
      -    "description": "",
      -    "params": [
      -      {
      -        "name": "from",
      -        "schema": {
      -          "type": "string",
      -          "details": {
      -            "type": "address",
      -            "internalType": "address",
      -            "indexed": true
      -          }
      -        }
      -      },
      -      {
      -        "name": "value",
      -        "schema": {
      -          "type": "integer",
      -          "details": {
      -            "type": "uint256",
      -            "internalType": "uint256"
      -          }
      -        }
      -      }
      -    ]
      -  },
      -  "status": {
      -    "checkpoint": {
      -      "block": 0,
      -      "transactionIndex": -1,
      -      "logIndex": -1
      -    },
      -    "catchup": true
      -  },
      -  "options": {
      -    "firstEvent": "oldest"
      -  }
      -}
      -
      -

      - - - Subscribe to events from our contract - - -

      - - -

      Now that we’ve told FireFly that it should listen for specific events on the blockchain, we can set up a Subscription for FireFly to send events to our app. To set up our subscription, we will make a POST to the /subscriptions endpoint.

      - -

      We will set a friendly name simple-storage to identify the Subscription when we are connecting to it in the next step.

      - -

      We’re also going to set up a filter to only send events blockchain events from our listener that we created in the previous step. To do that, we’ll copy the listener ID from the step above (1bfa3b0f-3d90-403e-94a4-af978d8c5b14) and set that as the value of the listener field in the example below:

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/subscriptions

      - -
      {
      -  "namespace": "default",
      -  "name": "simple-storage",
      -  "transport": "websockets",
      -  "filter": {
      -    "events": "blockchain_event_received",
      -    "blockchainevent": {
      -      "listener": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14"
      -    }
      -  },
      -  "options": {
      -    "firstEvent": "oldest"
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "f826269c-65ed-4634-b24c-4f399ec53a32",
      -  "namespace": "default",
      -  "name": "simple-storage",
      -  "transport": "websockets",
      -  "filter": {
      -    "events": "blockchain_event_received",
      -    "message": {},
      -    "transaction": {},
      -    "blockchainevent": {
      -      "listener": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14"
      -    }
      -  },
      -  "options": {
      -    "firstEvent": "-1",
      -    "withData": false
      -  },
      -  "created": "2022-03-15T17:35:30.131698921Z",
      -  "updated": null
      -}
      -
      -

      - - - Receive custom smart contract events - - -

      - - -

      The last step is to connect a WebSocket client to FireFly to receive the event. You can use any WebSocket client you like, such as Postman or a command line app like websocat.

      - -

      Connect your WebSocket client to ws://localhost:5000/ws.

      - -

      After connecting the WebSocket client, send a message to tell FireFly to:

      - -
        -
      • Start sending events
      • -
      • For the Subscription named simple-storage
      • -
      • On the default namespace
      • -
      • Automatically “ack” each event which will let FireFly immediately send the next event when available
      • -
      - -
      {
      -  "type": "start",
      -  "name": "simple-storage",
      -  "namespace": "default",
      -  "autoack": true
      -}
      -
      -

      - - - WebSocket event - - -

      - - -

      After creating the subscription, you should see an event arrive on the connected WebSocket client that looks something like this:

      - -
      {
      -  "id": "0f4a31d6-9743-4537-82df-5a9c76ccbd1e",
      -  "sequence": 24,
      -  "type": "blockchain_event_received",
      -  "namespace": "default",
      -  "reference": "dd3e1554-c832-47a8-898e-f1ee406bea41",
      -  "created": "2022-03-15T17:32:27.824417878Z",
      -  "blockchainevent": {
      -    "id": "dd3e1554-c832-47a8-898e-f1ee406bea41",
      -    "sequence": 7,
      -    "source": "ethereum",
      -    "namespace": "default",
      -    "name": "Changed",
      -    "listener": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14",
      -    "protocolId": "000000000010/000000/000000",
      -    "output": {
      -      "from": "0xb7e6a5eb07a75a2c81801a157192a82bcbce0f21",
      -      "value": "3"
      -    },
      -    "info": {
      -      "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1",
      -      "blockNumber": "10",
      -      "logIndex": "0",
      -      "signature": "Changed(address,uint256)",
      -      "subId": "sb-724b8416-786d-4e67-4cd3-5bae4a26eb0e",
      -      "timestamp": "1647365460",
      -      "transactionHash": "0xd5b5c716554097b2868d8705241bb2189bb76d16300f702ad05b0b02fccc4afb",
      -      "transactionIndex": "0x0"
      -    },
      -    "timestamp": "2022-03-15T17:31:00Z",
      -    "tx": {
      -      "type": ""
      -    }
      -  },
      -  "subscription": {
      -    "id": "f826269c-65ed-4634-b24c-4f399ec53a32",
      -    "namespace": "default",
      -    "name": "simple-storage"
      -  }
      -}
      -
      - -

      You can see in the event received over the WebSocket connection, the blockchain event that was emitted from our first transaction, which happened in the past. We received this event, because when we set up both the Listener, and the Subscription, we specified the "firstEvent" as "oldest". This tells FireFly to look for this event from the beginning of the blockchain, and that your app is interested in FireFly events since the beginning of FireFly’s event history.

      - -

      In the event, we can also see the blockchainevent itself, which has an output object. These are the params in our FireFly Interface, and the actual output of the event. Here we can see the value is 3 which is what we set the integer to in our original transaction.

      -

      - - - Subscription offset - - -

      - - -

      If you query by the ID of your subscription with the fetchstatus parameter, you can see its current offset.

      - -

      GET http://localhost:5000/api/v1/namespaces/default/subscriptions/f826269c-65ed-4634-b24c-4f399ec53a32

      - -
      {
      -  "id": "f826269c-65ed-4634-b24c-4f399ec53a32",
      -  "namespace": "default",
      -  "name": "simple-storage",
      -  "transport": "websockets",
      -  "filter": {
      -    "events": "blockchain_event_received",
      -    "message": {},
      -    "transaction": {},
      -    "blockchainevent": {
      -      "listener": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14"
      -    }
      -  },
      -  "options": {
      -    "firstEvent": "-1",
      -    "withData": false
      -  },
      -  "status": {
      -    "offset": 20
      -  }
      -  "created": "2022-03-15T17:35:30.131698921Z",
      -  "updated": null
      -}
      -
      - -

      You’ve reached the end of the main guide to working with custom smart contracts in FireFly. Hopefully this was helpful and gives you what you need to get up and running with your own contracts. There are several additional ways to invoke or query smart contracts detailed below, so feel free to keep reading if you’re curious.

      -

      - - - Appendix I: Work with a custom contract without creating a named API - - -

      - - -

      FireFly aims to offer a developer-friendly and flexible approach to using custom smart contracts. The guide above has detailed the most robust and feature-rich way to use custom contracts with FireFly, but there are several alternative API usage patterns available as well.

      - -

      It is possible to broadcast a contract interface and use a smart contract that implements that interface without also broadcasting a named API as above. There are several key differences (which may or may not be desirable) compared to the method outlined in the full guide above:

      - -
        -
      • OpenAPI Spec and Swagger UI are not available
      • -
      • Each HTTP request to invoke/query the contract will need to include the contract location
      • -
      • The contract location will not have been broadcasted to all other members of the network
      • -
      • The URL to invoke/query the contract will be different (described below)
      • -
      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces/8bdd27a5-67c1-4960-8d1e-7aa31b9084d3/invoke/set

      - -
      {
      -  "location": {
      -    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      -  },
      -  "input": {
      -    "newValue": 7
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "f310fa4a-73d8-4777-9f9d-dfa5012a052f"
      -}
      -
      - -

      All of the same invoke, query, and subscribe endpoints are available on the contract interface itself.

      -

      - - - Appendix II: Work directly with contracts with inline requests - - -

      - - -

      The final way of working with custom smart contracts with FireFly is to just put everything FireFly needs all in one request, each time a contract is invoked or queried. This is the most lightweight, but least feature-rich way of using a custom contract.

      - -

      To do this, we will need to put both the contract location, and a subset of the FireFly Interface that describes the method we want to invoke in the request body, in addition to the function input.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/contracts/invoke

      - -
      {
      -  "location": {
      -    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      -  },
      -  "method": {
      -    "name": "set",
      -    "params": [
      -      {
      -        "name": "x",
      -        "schema": {
      -          "type": "integer",
      -          "details": {
      -            "type": "uint256"
      -          }
      -        }
      -      }
      -    ],
      -    "returns": []
      -  },
      -  "input": {
      -    "x": 42
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "386d3e23-e4bc-4a9b-bc1f-452f0a8c9ae5"
      -}
      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/custom_contracts/ethereum/index.html b/head/tutorials/custom_contracts/ethereum/index.html new file mode 100644 index 000000000..f836e757b --- /dev/null +++ b/head/tutorials/custom_contracts/ethereum/index.html @@ -0,0 +1,5145 @@ + + + + + + + + + + + + + + + + + + + + + + + Ethereum - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Work with Ethereum smart contracts

      +

      This guide describes the steps to deploy a smart contract to an Ethereum blockchain and use FireFly to interact with it in order to submit transactions, query for states and listening for events.

      +
      +

      NOTE: This guide assumes that you are running a local FireFly stack with at least 2 members and an Ethereum blockchain created by the FireFly CLI. If you need help getting that set up, please see the Getting Started guide to Start your environment.

      +
      +

      Example smart contract

      +

      For this tutorial, we will be using a well known, but slightly modified smart contract called SimpleStorage, and will be using this contract on an Ethereum blockchain. As the name implies, it's a very simple contract which stores an unsigned 256 bit integer, emits and event when the value is updated, and allows you to retrieve the current value.

      +

      Here is the source for this contract:

      +
      // SPDX-License-Identifier: Apache-2.0
      +pragma solidity ^0.8.10;
      +
      +// Declares a new contract
      +contract SimpleStorage {
      +    // Storage. Persists in between transactions
      +    uint256 x;
      +
      +    // Allows the unsigned integer stored to be changed
      +    function set(uint256 newValue) public {
      +        x = newValue;
      +        emit Changed(msg.sender, newValue);
      +    }
      +
      +    // Returns the currently stored unsigned integer
      +    function get() public view returns (uint256) {
      +        return x;
      +    }
      +
      +    event Changed(address indexed from, uint256 value);
      +}
      +
      +

      Contract deployment

      +

      If you need to deploy an Ethereum smart contract with a signing key that FireFly will use for submitting future transactions it is recommended to use FireFly's built in contract deployment API. This is useful in many cases. For example, you may want to deploy a token contract and have FireFly mint some tokens. Many token contracts only allow the contract deployer to mint, so the contract would need to be deployed with a FireFly signing key.

      +

      You will need compile the contract yourself using solc or some other tool. After you have compiled the contract, look in the JSON output file for the fields to build the request below.

      +

      Request

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescription
      keyThe signing key to use to dpeloy the contract. If omitted, the namespaces's default signing key will be used.
      contractThe compiled bytecode for your smart contract. It should be either a hex encded string or Base64.
      definitionThe full ABI JSON array from your compiled JSON file. Copy the entire value of the abi field from the [ to the ].
      inputAn ordered list of constructor arguments. Some contracts may not require any (such as this example).
      +

      POST http://localhost:5000/api/v1/namespaces/default/contracts/deploy

      +
      {
      +  "contract": "608060405234801561001057600080fd5b5061019e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806360fe47b11461003b5780636d4ce63c14610057575b600080fd5b61005560048036038101906100509190610111565b610075565b005b61005f6100cd565b60405161006c919061014d565b60405180910390f35b806000819055503373ffffffffffffffffffffffffffffffffffffffff167fb52dda022b6c1a1f40905a85f257f689aa5d69d850e49cf939d688fbe5af5946826040516100c2919061014d565b60405180910390a250565b60008054905090565b600080fd5b6000819050919050565b6100ee816100db565b81146100f957600080fd5b50565b60008135905061010b816100e5565b92915050565b600060208284031215610127576101266100d6565b5b6000610135848285016100fc565b91505092915050565b610147816100db565b82525050565b6000602082019050610162600083018461013e565b9291505056fea2646970667358221220e6cbd7725b98b234d07bc1823b60ac065b567c6645d15c8f8f6986e5fa5317c664736f6c634300080b0033",
      +  "definition": [
      +    {
      +      "anonymous": false,
      +      "inputs": [
      +        {
      +          "indexed": true,
      +          "internalType": "address",
      +          "name": "from",
      +          "type": "address"
      +        },
      +        {
      +          "indexed": false,
      +          "internalType": "uint256",
      +          "name": "value",
      +          "type": "uint256"
      +        }
      +      ],
      +      "name": "Changed",
      +      "type": "event"
      +    },
      +    {
      +      "inputs": [],
      +      "name": "get",
      +      "outputs": [
      +        {
      +          "internalType": "uint256",
      +          "name": "",
      +          "type": "uint256"
      +        }
      +      ],
      +      "stateMutability": "view",
      +      "type": "function"
      +    },
      +    {
      +      "inputs": [
      +        {
      +          "internalType": "uint256",
      +          "name": "newValue",
      +          "type": "uint256"
      +        }
      +      ],
      +      "name": "set",
      +      "outputs": [],
      +      "stateMutability": "nonpayable",
      +      "type": "function"
      +    }
      +  ],
      +  "input": []
      +}
      +
      +

      Response

      +
      {
      +  "id": "aa155a3c-2591-410e-bc9d-68ae7de34689",
      +  "namespace": "default",
      +  "tx": "4712ffb3-cc1a-4a91-aef2-206ac068ba6f",
      +  "type": "blockchain_deploy",
      +  "status": "Succeeded",
      +  "plugin": "ethereum",
      +  "input": {
      +    "contract": "608060405234801561001057600080fd5b5061019e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806360fe47b11461003b5780636d4ce63c14610057575b600080fd5b61005560048036038101906100509190610111565b610075565b005b61005f6100cd565b60405161006c919061014d565b60405180910390f35b806000819055503373ffffffffffffffffffffffffffffffffffffffff167fb52dda022b6c1a1f40905a85f257f689aa5d69d850e49cf939d688fbe5af5946826040516100c2919061014d565b60405180910390a250565b60008054905090565b600080fd5b6000819050919050565b6100ee816100db565b81146100f957600080fd5b50565b60008135905061010b816100e5565b92915050565b600060208284031215610127576101266100d6565b5b6000610135848285016100fc565b91505092915050565b610147816100db565b82525050565b6000602082019050610162600083018461013e565b9291505056fea2646970667358221220e6cbd7725b98b234d07bc1823b60ac065b567c6645d15c8f8f6986e5fa5317c664736f6c634300080b0033",
      +    "definition": [
      +      {
      +        "anonymous": false,
      +        "inputs": [
      +          {
      +            "indexed": true,
      +            "internalType": "address",
      +            "name": "from",
      +            "type": "address"
      +          },
      +          {
      +            "indexed": false,
      +            "internalType": "uint256",
      +            "name": "value",
      +            "type": "uint256"
      +          }
      +        ],
      +        "name": "Changed",
      +        "type": "event"
      +      },
      +      {
      +        "inputs": [],
      +        "name": "get",
      +        "outputs": [
      +          {
      +            "internalType": "uint256",
      +            "name": "",
      +            "type": "uint256"
      +          }
      +        ],
      +        "stateMutability": "view",
      +        "type": "function"
      +      },
      +      {
      +        "inputs": [
      +          {
      +            "internalType": "uint256",
      +            "name": "newValue",
      +            "type": "uint256"
      +          }
      +        ],
      +        "name": "set",
      +        "outputs": [],
      +        "stateMutability": "nonpayable",
      +        "type": "function"
      +      }
      +    ],
      +    "input": [],
      +    "key": "0xddd93a452bfc8d3e62bbc60c243046e4d0cb971b",
      +    "options": null
      +  },
      +  "output": {
      +    "headers": {
      +      "requestId": "default:aa155a3c-2591-410e-bc9d-68ae7de34689",
      +      "type": "TransactionSuccess"
      +    },
      +    "contractLocation": {
      +      "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      +    },
      +    "protocolId": "000000000024/000000",
      +    "transactionHash": "0x32d1144091877266d7f0426e48db157e7d1a857c62e6f488319bb09243f0f851"
      +  },
      +  "created": "2023-02-03T15:42:52.750277Z",
      +  "updated": "2023-02-03T15:42:52.750277Z"
      +}
      +
      +

      Here we can see in the response above under the output section that our new contract address is 0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1. This is the address that we will reference in the rest of this guide.

      +

      The FireFly Interface Format

      +

      If you have an Ethereum ABI for an existing smart contract, there is an HTTP endpoint on the FireFly API that will take the ABI as input and automatically generate the FireFly Interface for you. Rather than handcrafting our FFI, we'll let FireFly generate it for us using that endpoint now.

      +

      Request

      +

      Here we will take the JSON ABI generated by truffle or solc and POST that to FireFly to have it automatically generate the FireFly Interface for us. Copy the abi from the compiled JSON file, and put that inside an input object like the example below:

      +

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces/generate

      +
      {
      +  "input": {
      +    "abi": [
      +      {
      +        "anonymous": false,
      +        "inputs": [
      +          {
      +            "indexed": true,
      +            "internalType": "address",
      +            "name": "from",
      +            "type": "address"
      +          },
      +          {
      +            "indexed": false,
      +            "internalType": "uint256",
      +            "name": "value",
      +            "type": "uint256"
      +          }
      +        ],
      +        "name": "Changed",
      +        "type": "event"
      +      },
      +      {
      +        "inputs": [],
      +        "name": "get",
      +        "outputs": [
      +          {
      +            "internalType": "uint256",
      +            "name": "",
      +            "type": "uint256"
      +          }
      +        ],
      +        "stateMutability": "view",
      +        "type": "function"
      +      },
      +      {
      +        "inputs": [
      +          {
      +            "internalType": "uint256",
      +            "name": "newValue",
      +            "type": "uint256"
      +          }
      +        ],
      +        "name": "set",
      +        "outputs": [],
      +        "stateMutability": "nonpayable",
      +        "type": "function"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Response

      +

      FireFly generates and returns the the full FireFly Interface for the SimpleStorage contract in the response body:

      +
      {
      +  "namespace": "default",
      +  "name": "",
      +  "description": "",
      +  "version": "",
      +  "methods": [
      +    {
      +      "name": "get",
      +      "pathname": "",
      +      "description": "",
      +      "params": [],
      +      "returns": [
      +        {
      +          "name": "",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ]
      +    },
      +    {
      +      "name": "set",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "newValue",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    }
      +  ],
      +  "events": [
      +    {
      +      "name": "Changed",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "from",
      +          "schema": {
      +            "type": "string",
      +            "details": {
      +              "type": "address",
      +              "internalType": "address",
      +              "indexed": true
      +            }
      +          }
      +        },
      +        {
      +          "name": "value",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ]
      +    }
      +  ]
      +}
      +
      +

      Broadcast the contract interface

      +

      Now that we have a FireFly Interface representation of our smart contract, we want to broadcast that to the entire network. This broadcast will be pinned to the blockchain, so we can always refer to this specific name and version, and everyone in the network will know exactly which contract interface we are talking about.

      +

      We will take the output from the previous HTTP response above, fill in the name and version and then POST that to the /contracts/interfaces API endpoint.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces

      +
      {
      +  "namespace": "default",
      +  "name": "SimpleStorage",
      +  "version": "v1.0.0",
      +  "description": "",
      +  "methods": [
      +    {
      +      "name": "get",
      +      "pathname": "",
      +      "description": "",
      +      "params": [],
      +      "returns": [
      +        {
      +          "name": "",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ]
      +    },
      +    {
      +      "name": "set",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "newValue",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    }
      +  ],
      +  "events": [
      +    {
      +      "name": "Changed",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "from",
      +          "schema": {
      +            "type": "string",
      +            "details": {
      +              "type": "address",
      +              "internalType": "address",
      +              "indexed": true
      +            }
      +          }
      +        },
      +        {
      +          "name": "value",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ]
      +    }
      +  ]
      +}
      +
      +

      Response

      +
      {
      +  "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3",
      +  "message": "3cd0dde2-1e39-4c9e-a4a1-569e87cca93a",
      +  "namespace": "default",
      +  "name": "SimpleStorage",
      +  "description": "",
      +  "version": "v1.0.0",
      +  "methods": [
      +    {
      +      "id": "56467890-5713-4463-84b8-4537fcb63d8b",
      +      "contract": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3",
      +      "name": "get",
      +      "namespace": "default",
      +      "pathname": "get",
      +      "description": "",
      +      "params": [],
      +      "returns": [
      +        {
      +          "name": "",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ]
      +    },
      +    {
      +      "id": "6b254d1d-5f5f-491e-bbd2-201e96892e1a",
      +      "contract": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3",
      +      "name": "set",
      +      "namespace": "default",
      +      "pathname": "set",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "newValue",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    }
      +  ],
      +  "events": [
      +    {
      +      "id": "aa1fe67b-b2ac-41af-a7e7-7ad54a30a78d",
      +      "contract": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3",
      +      "namespace": "default",
      +      "pathname": "Changed",
      +      "name": "Changed",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "from",
      +          "schema": {
      +            "type": "string",
      +            "details": {
      +              "type": "address",
      +              "internalType": "address",
      +              "indexed": true
      +            }
      +          }
      +        },
      +        {
      +          "name": "value",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "uint256",
      +              "internalType": "uint256"
      +            }
      +          }
      +        }
      +      ]
      +    }
      +  ]
      +}
      +
      +

      Create an HTTP API for the contract

      +

      Now comes the fun part where we see some of the powerful, developer-friendly features of FireFly. The next thing we're going to do is tell FireFly to build an HTTP API for this smart contract, complete with an OpenAPI Specification and Swagger UI. As part of this, we'll also tell FireFly where the contract is on the blockchain. Like the interface broadcast above, this will also generate a broadcast which will be pinned to the blockchain so all the members of the network will be aware of and able to interact with this API.

      +

      We need to copy the id field we got in the response from the previous step to the interface.id field in the request body below. We will also pick a name that will be part of the URL for our HTTP API, so be sure to pick a name that is URL friendly. In this case we'll call it simple-storage. Lastly, in the location.address field, we're telling FireFly where an instance of the contract is deployed on-chain.

      +
      +

      NOTE: The location field is optional here, but if it is omitted, it will be required in every request to invoke or query the contract. This can be useful if you have multiple instances of the same contract deployed to different addresses.

      +
      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis

      +
      {
      +  "name": "simple-storage",
      +  "interface": {
      +    "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3"
      +  },
      +  "location": {
      +    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "9a681ec6-1dee-42a0-b91b-61d23a814b0f",
      +  "namespace": "default",
      +  "interface": {
      +    "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3"
      +  },
      +  "location": {
      +    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      +  },
      +  "name": "simple-storage",
      +  "message": "d90d0386-8874-43fb-b7d3-485c22f35f47",
      +  "urls": {
      +    "openapi": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api/swagger.json",
      +    "ui": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api"
      +  }
      +}
      +
      +

      View OpenAPI spec for the contract

      +

      You'll notice in the response body that there are a couple of URLs near the bottom. If you navigate to the one labeled ui in your browser, you should see the Swagger UI for your smart contract.

      +

      Swagger UI

      +

      Invoke the smart contract

      +

      Now that we've got everything set up, it's time to use our smart contract! We're going to make a POST request to the invoke/set endpoint to set the integer value on-chain. Let's set it to the value of 3 right now.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/invoke/set

      +
      {
      +  "input": {
      +    "newValue": 3
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "41c67c63-52cf-47ce-8a59-895fe2ffdc86"
      +}
      +
      +

      You'll notice that we just get an ID back here, and that's expected due to the asynchronous programming model of working with smart contracts in FireFly. To see what the value is now, we can query the smart contract. In a little bit, we'll also subscribe to the events emitted by this contract so we can know when the value is updated in realtime.

      +

      Query the current value

      +

      To make a read-only request to the blockchain to check the current value of the stored integer, we can make a POST to the query/get endpoint.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/query/get

      +
      {}
      +
      +

      Response

      +
      {
      +  "output": "3"
      +}
      +
      +
      +

      NOTE: Some contracts may have queries that require input parameters. That's why the query endpoint is a POST, rather than a GET so that parameters can be passed as JSON in the request body. This particular function does not have any parameters, so we just pass an empty JSON object.

      +
      +

      Passing additional options with a request

      +

      Some smart contract functions may accept or require additional options to be passed with the request. For example, a Solidity function might be payable, meaning that a value field must be specified, indicating an amount of ETH to be transferred with the request. Each of your smart contract API's /invoke or /query endpoints support an options object in addition to the input arguments for the function itself.

      +

      Here is an example of sending 100 wei with a transaction:

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/invoke/set

      +
      {
      +  "input": {
      +    "newValue": 3
      +  },
      +  "options": {
      +    "value": 100
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "41c67c63-52cf-47ce-8a59-895fe2ffdc86"
      +}
      +
      +

      Create a blockchain event listener

      +

      Now that we've seen how to submit transactions and preform read-only queries to the blockchain, let's look at how to receive blockchain events so we know when things are happening in realtime.

      +

      If you look at the source code for the smart contract we're working with above, you'll notice that it emits an event when the stored value of the integer is set. In order to receive these events, we first need to instruct FireFly to listen for this specific type of blockchain event. To do this, we create an Event Listener. The /contracts/listeners endpoint is RESTful so there are POST, GET, and DELETE methods available on it. To create a new listener, we will make a POST request. We are going to tell FireFly to listen to events with name "Changed" from the FireFly Interface we defined earlier, referenced by its ID. We will also tell FireFly which contract address we expect to emit these events, and the topic to assign these events to. Topics are a way for applications to subscribe to events they are interested in.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/contracts/listeners

      +
      {
      +  "interface": {
      +    "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3"
      +  },
      +  "location": {
      +    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      +  },
      +  "eventPath": "Changed",
      +  "options": {
      +    "firstEvent": "newest"
      +  },
      +  "topic": "simple-storage"
      +}
      +
      +

      Response

      +
      {
      +  "id": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14",
      +  "interface": {
      +    "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3"
      +  },
      +  "namespace": "default",
      +  "name": "sb-66209ffc-d355-4ac0-7151-bc82490ca9df",
      +  "protocolId": "sb-66209ffc-d355-4ac0-7151-bc82490ca9df",
      +  "location": {
      +    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      +  },
      +  "created": "2022-02-17T22:02:36.34549538Z",
      +  "event": {
      +    "name": "Changed",
      +    "description": "",
      +    "params": [
      +      {
      +        "name": "from",
      +        "schema": {
      +          "type": "string",
      +          "details": {
      +            "type": "address",
      +            "internalType": "address",
      +            "indexed": true
      +          }
      +        }
      +      },
      +      {
      +        "name": "value",
      +        "schema": {
      +          "type": "integer",
      +          "details": {
      +            "type": "uint256",
      +            "internalType": "uint256"
      +          }
      +        }
      +      }
      +    ]
      +  },
      +  "options": {
      +    "firstEvent": "oldest"
      +  }
      +}
      +
      +

      We can see in the response, that FireFly pulls all the schema information from the FireFly Interface that we broadcasted earlier and creates the listener with that schema. This is useful so that we don't have to enter all of that data again.

      +

      Querying listener status

      +

      If you are interested in learning about the current state of a listener you have created, you can query with the fetchstatus parameter. For FireFly stacks with an EVM compatible blockchain connector, the response will include checkpoint information and if the listener is currently in catchup mode.

      +

      Request / Response

      +

      GET http://localhost:5000/api/v1/namespaces/default/contracts/listeners/1bfa3b0f-3d90-403e-94a4-af978d8c5b14?fetchstatus

      +
      {
      +  "id": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14",
      +  "interface": {
      +    "id": "8bdd27a5-67c1-4960-8d1e-7aa31b9084d3"
      +  },
      +  "namespace": "default",
      +  "name": "sb-66209ffc-d355-4ac0-7151-bc82490ca9df",
      +  "protocolId": "sb-66209ffc-d355-4ac0-7151-bc82490ca9df",
      +  "location": {
      +    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      +  },
      +  "created": "2022-02-17T22:02:36.34549538Z",
      +  "event": {
      +    "name": "Changed",
      +    "description": "",
      +    "params": [
      +      {
      +        "name": "from",
      +        "schema": {
      +          "type": "string",
      +          "details": {
      +            "type": "address",
      +            "internalType": "address",
      +            "indexed": true
      +          }
      +        }
      +      },
      +      {
      +        "name": "value",
      +        "schema": {
      +          "type": "integer",
      +          "details": {
      +            "type": "uint256",
      +            "internalType": "uint256"
      +          }
      +        }
      +      }
      +    ]
      +  },
      +  "status": {
      +    "checkpoint": {
      +      "block": 0,
      +      "transactionIndex": -1,
      +      "logIndex": -1
      +    },
      +    "catchup": true
      +  },
      +  "options": {
      +    "firstEvent": "oldest"
      +  }
      +}
      +
      +

      Subscribe to events from our contract

      +

      Now that we've told FireFly that it should listen for specific events on the blockchain, we can set up a Subscription for FireFly to send events to our app. To set up our subscription, we will make a POST to the /subscriptions endpoint.

      +

      We will set a friendly name simple-storage to identify the Subscription when we are connecting to it in the next step.

      +

      We're also going to set up a filter to only send events blockchain events from our listener that we created in the previous step. To do that, we'll copy the listener ID from the step above (1bfa3b0f-3d90-403e-94a4-af978d8c5b14) and set that as the value of the listener field in the example below:

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/subscriptions

      +
      {
      +  "namespace": "default",
      +  "name": "simple-storage",
      +  "transport": "websockets",
      +  "filter": {
      +    "events": "blockchain_event_received",
      +    "blockchainevent": {
      +      "listener": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14"
      +    }
      +  },
      +  "options": {
      +    "firstEvent": "oldest"
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "f826269c-65ed-4634-b24c-4f399ec53a32",
      +  "namespace": "default",
      +  "name": "simple-storage",
      +  "transport": "websockets",
      +  "filter": {
      +    "events": "blockchain_event_received",
      +    "message": {},
      +    "transaction": {},
      +    "blockchainevent": {
      +      "listener": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14"
      +    }
      +  },
      +  "options": {
      +    "firstEvent": "-1",
      +    "withData": false
      +  },
      +  "created": "2022-03-15T17:35:30.131698921Z",
      +  "updated": null
      +}
      +
      +

      Receive custom smart contract events

      +

      The last step is to connect a WebSocket client to FireFly to receive the event. You can use any WebSocket client you like, such as Postman or a command line app like websocat.

      +

      Connect your WebSocket client to ws://localhost:5000/ws.

      +

      After connecting the WebSocket client, send a message to tell FireFly to:

      +
        +
      • Start sending events
      • +
      • For the Subscription named simple-storage
      • +
      • On the default namespace
      • +
      • Automatically "ack" each event which will let FireFly immediately send the next event when available
      • +
      +
      {
      +  "type": "start",
      +  "name": "simple-storage",
      +  "namespace": "default",
      +  "autoack": true
      +}
      +
      +

      WebSocket event

      +

      After creating the subscription, you should see an event arrive on the connected WebSocket client that looks something like this:

      +
      {
      +  "id": "0f4a31d6-9743-4537-82df-5a9c76ccbd1e",
      +  "sequence": 24,
      +  "type": "blockchain_event_received",
      +  "namespace": "default",
      +  "reference": "dd3e1554-c832-47a8-898e-f1ee406bea41",
      +  "created": "2022-03-15T17:32:27.824417878Z",
      +  "blockchainevent": {
      +    "id": "dd3e1554-c832-47a8-898e-f1ee406bea41",
      +    "sequence": 7,
      +    "source": "ethereum",
      +    "namespace": "default",
      +    "name": "Changed",
      +    "listener": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14",
      +    "protocolId": "000000000010/000000/000000",
      +    "output": {
      +      "from": "0xb7e6a5eb07a75a2c81801a157192a82bcbce0f21",
      +      "value": "3"
      +    },
      +    "info": {
      +      "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1",
      +      "blockNumber": "10",
      +      "logIndex": "0",
      +      "signature": "Changed(address,uint256)",
      +      "subId": "sb-724b8416-786d-4e67-4cd3-5bae4a26eb0e",
      +      "timestamp": "1647365460",
      +      "transactionHash": "0xd5b5c716554097b2868d8705241bb2189bb76d16300f702ad05b0b02fccc4afb",
      +      "transactionIndex": "0x0"
      +    },
      +    "timestamp": "2022-03-15T17:31:00Z",
      +    "tx": {
      +      "type": ""
      +    }
      +  },
      +  "subscription": {
      +    "id": "f826269c-65ed-4634-b24c-4f399ec53a32",
      +    "namespace": "default",
      +    "name": "simple-storage"
      +  }
      +}
      +
      +

      You can see in the event received over the WebSocket connection, the blockchain event that was emitted from our first transaction, which happened in the past. We received this event, because when we set up both the Listener, and the Subscription, we specified the "firstEvent" as "oldest". This tells FireFly to look for this event from the beginning of the blockchain, and that your app is interested in FireFly events since the beginning of FireFly's event history.

      +

      In the event, we can also see the blockchainevent itself, which has an output object. These are the params in our FireFly Interface, and the actual output of the event. Here we can see the value is 3 which is what we set the integer to in our original transaction.

      +

      Subscription offset

      +

      If you query by the ID of your subscription with the fetchstatus parameter, you can see its current offset.

      +

      GET http://localhost:5000/api/v1/namespaces/default/subscriptions/f826269c-65ed-4634-b24c-4f399ec53a32

      +
      {
      +  "id": "f826269c-65ed-4634-b24c-4f399ec53a32",
      +  "namespace": "default",
      +  "name": "simple-storage",
      +  "transport": "websockets",
      +  "filter": {
      +    "events": "blockchain_event_received",
      +    "message": {},
      +    "transaction": {},
      +    "blockchainevent": {
      +      "listener": "1bfa3b0f-3d90-403e-94a4-af978d8c5b14"
      +    }
      +  },
      +  "options": {
      +    "firstEvent": "-1",
      +    "withData": false
      +  },
      +  "status": {
      +    "offset": 20
      +  }
      +  "created": "2022-03-15T17:35:30.131698921Z",
      +  "updated": null
      +}
      +
      +

      You've reached the end of the main guide to working with custom smart contracts in FireFly. Hopefully this was helpful and gives you what you need to get up and running with your own contracts. There are several additional ways to invoke or query smart contracts detailed below, so feel free to keep reading if you're curious.

      +

      Appendix I: Work with a custom contract without creating a named API

      +

      FireFly aims to offer a developer-friendly and flexible approach to using custom smart contracts. The guide above has detailed the most robust and feature-rich way to use custom contracts with FireFly, but there are several alternative API usage patterns available as well.

      +

      It is possible to broadcast a contract interface and use a smart contract that implements that interface without also broadcasting a named API as above. There are several key differences (which may or may not be desirable) compared to the method outlined in the full guide above:

      +
        +
      • OpenAPI Spec and Swagger UI are not available
      • +
      • Each HTTP request to invoke/query the contract will need to include the contract location
      • +
      • The contract location will not have been broadcasted to all other members of the network
      • +
      • The URL to invoke/query the contract will be different (described below)
      • +
      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces/8bdd27a5-67c1-4960-8d1e-7aa31b9084d3/invoke/set

      +
      {
      +  "location": {
      +    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      +  },
      +  "input": {
      +    "newValue": 7
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "f310fa4a-73d8-4777-9f9d-dfa5012a052f"
      +}
      +
      +

      All of the same invoke, query, and subscribe endpoints are available on the contract interface itself.

      +

      Appendix II: Work directly with contracts with inline requests

      +

      The final way of working with custom smart contracts with FireFly is to just put everything FireFly needs all in one request, each time a contract is invoked or queried. This is the most lightweight, but least feature-rich way of using a custom contract.

      +

      To do this, we will need to put both the contract location, and a subset of the FireFly Interface that describes the method we want to invoke in the request body, in addition to the function input.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/contracts/invoke

      +
      {
      +  "location": {
      +    "address": "0xa5ea5d0a6b2eaf194716f0cc73981939dca26da1"
      +  },
      +  "method": {
      +    "name": "set",
      +    "params": [
      +      {
      +        "name": "x",
      +        "schema": {
      +          "type": "integer",
      +          "details": {
      +            "type": "uint256"
      +          }
      +        }
      +      }
      +    ],
      +    "returns": []
      +  },
      +  "input": {
      +    "x": 42
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "386d3e23-e4bc-4a9b-bc1f-452f0a8c9ae5"
      +}
      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/custom_contracts/fabric.html b/head/tutorials/custom_contracts/fabric.html deleted file mode 100644 index c3ce317a7..000000000 --- a/head/tutorials/custom_contracts/fabric.html +++ /dev/null @@ -1,1286 +0,0 @@ - - - - - - - - - Fabric - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Fabric | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Work with Hyperledger Fabric chaincodes - - -

      - - -

      This guide describes the steps to deploy a chaincode to a Hyperledger Fabric blockchain and use FireFly to interact with it in order to submit transactions, query for states and listening for events.

      - -
      -

      NOTE: This guide assumes that you are running a local FireFly stack with at least 2 members and a Fabric blockchain created by the FireFly CLI. If you need help getting that set up, please see the Getting Started guide to Start your environment.

      -
      -

      - - - Table of contents - - -

      - - -
        -
      1. Work with Hyperledger Fabric chaincodes
          -
        1. Example smart contract
        2. -
        3. Create the chaincode package
        4. -
        5. Contract deployment
        6. -
        7. The FireFly Interface Format
            -
          1. Input parameters
          2. -
          3. Return values
          4. -
          5. Event payloads
          6. -
          -
        8. -
        9. Broadcast the contract interface
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        10. -
        11. Create an HTTP API for the contract
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        12. -
        13. View OpenAPI spec for the contract
            -
          1. /invoke/* endpoints
          2. -
          3. /query/* endpoints
          4. -
          -
        14. -
        15. Invoke the chaincode
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        16. -
        17. Query the current state
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        18. -
        19. Create a blockchain event listener
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        20. -
        21. Subscribe to events from our contract
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        22. -
        23. Receive custom smart contract events
            -
          1. WebSocket event
          2. -
          -
        24. -
        -
      2. -

      -

      - - - Example smart contract - - -

      - - -

      For this tutorial, we will be using a well known, but slightly modified smart contract called asset_transfer. It’s based on the asset-transfer-basic chaincode in the fabric-samples project. Check out the code repository and use the source code provided below to replace part of the content of the file fabric-samples/asset-transfer-basic/chaincode-go/chaincode/smartcontract.go.

      - -

      Find the following return statement in the function CreateAsset:

      - -
      	return ctx.GetStub().PutState(id, assetJSON)
      -
      - -

      and replace it with the following, so that an event will be emitted when the transaction is committed to the channel ledger:

      - -
        err = ctx.GetStub().PutState(id, assetJSON)
      -  if err != nil {
      -    return err
      -  }
      -  return ctx.GetStub().SetEvent("AssetCreated", assetJSON)
      -
      -

      - - - Create the chaincode package - - -

      - - -

      Use the peer command to create the chaincode package for deployment. You can download the peer binary from the releases page of the Fabric project or build it from source.

      - -
        ~ johndoe$ cd fabric-samples/asset-transfer-basic/chaincode-go
      -  chaincode-go johndoe$ touch core.yaml
      -  chaincode-go johndoe$ peer lifecycle chaincode package -p . --label asset_transfer ./asset_transfer.zip
      -
      - -
      -

      The peer command requires an empty core.yaml file to be present in the working directory to perform the packaging. That’s what touch core.yaml did above

      -
      - -

      The resulting asset_transfer.zip archive file will be used in the next step to deploy to the Fabric network used in FireFly.

      -

      - - - Contract deployment - - -

      - - -

      Deployment of smart contracts is not currently within the scope of responsibility for FireFly. You can use your standard blockchain specific tools to deploy your contract to the blockchain you are using.

      - -

      The FireFly CLI provides a convenient function to deploy a chaincode package to a local FireFly stack.

      - -
      -

      NOTE: The contract deployment function of the FireFly CLI is a convenience function to speed up local development, and not intended for production applications

      -
      - -
      ~ johndoe$ ff help deploy fabric
      -Deploy a packaged chaincode to the Fabric network used by a FireFly stack
      -
      -Usage:
      -  ff deploy fabric <stack_name> <chaincode_package> <channel> <chaincodeName> <version> [flags]
      -
      - -

      Notice the various parameters used by the command ff deploy fabric. We’ll tell the FireFly to deploy using the following parameter values, if your stack setup is different, update the command accordingly:

      - -
        -
      • stack name: dev
      • -
      • channel: firefly (this is the channel that is created by the FireFly CLI when bootstrapping the stack, replace if you use a different channel in your setup)
      • -
      • chaincode name: asset_transfer (must match the value of the --label parameter when creating the chaincode package)
      • -
      • version: 1.0
      • -
      - -
      $ ff deploy fabric dev asset_transfer.zip firefly asset_transfer 1.0
      -installing chaincode
      -querying installed chaincode
      -approving chaincode
      -committing chaincode
      -{
      -  "chaincode": "asset_transfer",
      -  "channel": "firefly"
      -}
      -
      -

      - - - The FireFly Interface Format - - -

      - - -

      In order to teach FireFly how to interact with the chaincode, a FireFly Interface (FFI) document is needed. While Ethereum (or other EVM based blockchains) requires an Application Binary Interface (ABI) to govern the interaction between the client and the smart contract, which is specific to each smart contract interface design, Fabric defines a generic chaincode interface and leaves the encoding and decoding of the parameter values to the discretion of the chaincode developer.

      - -

      As a result, the FFI document for a Fabric chaincode must be hand-crafted. The following FFI sample demonstrates the specification for the following common cases:

      - -
        -
      • structured JSON, used here for the list of chaincode function CreateAsset input parameters
      • -
      • array of JSON, used here for the chaincode function GetAllAssets output
      • -
      • structured JSON, used here for the list of chaincode event AssetCreated properties
      • -
      - -
      {
      -  "namespace": "default",
      -  "name": "asset_transfer",
      -  "description": "Spec interface for the asset-transfer-basic golang chaincode",
      -  "version": "1.0",
      -  "methods": [
      -    {
      -      "name": "GetAllAssets",
      -      "pathname": "",
      -      "description": "",
      -      "params": [],
      -      "returns": [
      -        {
      -          "name": "",
      -          "schema": {
      -            "type": "array",
      -            "details": {
      -              "type": "object",
      -              "properties": {
      -                "type": "string"
      -              }
      -            }
      -          }
      -        }
      -      ]
      -    },
      -    {
      -      "name": "CreateAsset",
      -      "pathname": "",
      -      "description": "",
      -      "params": [
      -        {
      -          "name": "id",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "color",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "size",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "owner",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "value",
      -          "schema": {
      -            "type": "string"
      -          }
      -        }
      -      ],
      -      "returns": []
      -    }
      -  ],
      -  "events": [
      -    {
      -      "name": "AssetCreated"
      -    }
      -  ]
      -}
      -
      -

      - - - Input parameters - - -

      - - -

      For the params section of the CreateAsset function, it is critical that the sequence of the properties (id, color, size, owner, value) matches the order of the input parameters in the chaincode’s function signature:

      - -
      func CreateAsset(ctx contractapi.TransactionContextInterface, id string, color string, size int, owner string, appraisedValue int) error
      -
      -

      - - - Return values - - -

      - - -

      FireFly can automatically decode JSON payloads in the return values. That’s why the returns section of the GetAllAssets function only needs to specify the type as array of objects, without having to specify the detailed structure of the JSON payload.

      - -

      On the other hand, if certain properties of the returned value are to be hidden, then you can provide a detailed structure of the JSON object with the desired properties. This is demonstrated in the JSON structure for the event payload, see below, where the property AppraisedValue is omitted from the output.

      -

      - - - Event payloads - - -

      - - -

      For events, FireFly automatically decodes JSON payloads. If the event payload is not JSON, base64 encoded bytes will be returned instead. For the events section of the FFI, only the name property needs to be specified.

      -

      - - - Broadcast the contract interface - - -

      - - -

      Now that we have a FireFly Interface representation of our chaincode, we want to broadcast that to the entire network. This broadcast will be pinned to the blockchain, so we can always refer to this specific name and version, and everyone in the network will know exactly which contract interface we are talking about.

      - -

      We will use the FFI JSON constructed above and POST that to the /contracts/interfaces API endpoint.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces

      - -
      {
      -  "namespace": "default",
      -  "name": "asset_transfer",
      -  "description": "Spec interface for the asset-transfer-basic golang chaincode",
      -  "version": "1.0",
      -  "methods": [
      -    {
      -      "name": "GetAllAssets",
      -      "pathname": "",
      -      "description": "",
      -      "params": [],
      -      "returns": [
      -        {
      -          "name": "",
      -          "schema": {
      -            "type": "array",
      -            "details": {
      -              "type": "object",
      -              "properties": {
      -                "type": "string"
      -              }
      -            }
      -          }
      -        }
      -      ]
      -    },
      -    {
      -      "name": "CreateAsset",
      -      "pathname": "",
      -      "description": "",
      -      "params": [
      -        {
      -          "name": "id",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "color",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "size",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "owner",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "value",
      -          "schema": {
      -            "type": "string"
      -          }
      -        }
      -      ],
      -      "returns": []
      -    }
      -  ],
      -  "events": [
      -    {
      -      "name": "AssetCreated"
      -    }
      -  ]
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      -  "message": "8a01fc83-5729-418b-9706-6fc17c8d2aac",
      -  "namespace": "default",
      -  "name": "asset_transfer",
      -  "description": "Spec interface for the asset-transfer-basic golang chaincode",
      -  "version": "1.1",
      -  "methods": [
      -    {
      -      "id": "b31e3623-35e8-4918-bf8c-1b0d6c01de25",
      -      "interface": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      -      "name": "GetAllAssets",
      -      "namespace": "default",
      -      "pathname": "GetAllAssets",
      -      "description": "",
      -      "params": [],
      -      "returns": [
      -        {
      -          "name": "",
      -          "schema": {
      -            "type": "array",
      -            "details": {
      -              "type": "object",
      -              "properties": {
      -                "type": "string"
      -              }
      -            }
      -          }
      -        }
      -      ]
      -    },
      -    {
      -      "id": "e5a170d1-0be1-4697-800b-f4bcfaf71cf6",
      -      "interface": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      -      "name": "CreateAsset",
      -      "namespace": "default",
      -      "pathname": "CreateAsset",
      -      "description": "",
      -      "params": [
      -        {
      -          "name": "id",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "color",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "size",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "owner",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "value",
      -          "schema": {
      -            "type": "string"
      -          }
      -        }
      -      ],
      -      "returns": []
      -    }
      -  ],
      -  "events": [
      -    {
      -      "id": "27564533-30bd-4536-884e-02e5d79ec238",
      -      "interface": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      -      "namespace": "default",
      -      "pathname": "AssetCreated",
      -      "signature": "",
      -      "name": "AssetCreated",
      -      "description": "",
      -      "params": null
      -    }
      -  ]
      -}
      -
      - -
      -

      NOTE: We can broadcast this contract interface conveniently with the help of FireFly Sandbox running at http://127.0.0.1:5108

      -
        -
      • Go to the Contracts Section
      • -
      • Click on Define a Contract Interface
      • -
      • Select FFI - FireFly Interface in the Interface Fromat dropdown
      • -
      • Copy the FFI JSON crafted by you into the Schema Field
      • -
      • Click on Run
      • -
      -
      -

      - - - Create an HTTP API for the contract - - -

      - - -

      Now comes the fun part where we see some of the powerful, developer-friendly features of FireFly. The next thing we’re going to do is tell FireFly to build an HTTP API for this chaincode, complete with an OpenAPI Specification and Swagger UI. As part of this, we’ll also tell FireFly where the chaincode is on the blockchain.

      - -

      Like the interface broadcast above, this will also generate a broadcast which will be pinned to the blockchain so all the members of the network will be aware of and able to interact with this API.

      - -

      We need to copy the id field we got in the response from the previous step to the interface.id field in the request body below. We will also pick a name that will be part of the URL for our HTTP API, so be sure to pick a name that is URL friendly. In this case we’ll call it asset_transfer. Lastly, in the location field, we’re telling FireFly where an instance of the chaincode is deployed on-chain, which is a chaincode named asset_transfer in the channel firefly.

      - -
      -

      NOTE: The location field is optional here, but if it is omitted, it will be required in every request to invoke or query the chaincode. This can be useful if you have multiple instances of the same chaincode deployed to different channels.

      -
      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/apis

      - -
      {
      -  "name": "asset_transfer",
      -  "interface": {
      -    "id": "f1e5522c-59a5-4787-bbfd-89975e5b0954"
      -  },
      -  "location": {
      -    "channel": "firefly",
      -    "chaincode": "asset_transfer"
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "a9a9ab4e-2544-45d5-8824-3c05074fbf75",
      -  "namespace": "default",
      -  "interface": {
      -    "id": "f1e5522c-59a5-4787-bbfd-89975e5b0954"
      -  },
      -  "location": {
      -    "channel": "firefly",
      -    "chaincode": "asset_transfer"
      -  },
      -  "name": "asset_transfer",
      -  "message": "5f1556a1-5cb1-4bc6-8611-d8f88ccf9c30",
      -  "urls": {
      -    "openapi": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/asset_transfer/api/swagger.json",
      -    "ui": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/asset_transfer/api"
      -  }
      -}
      -
      -
      -

      NOTE: We can create this Http API conveniently with the help of FireFly Sandbox running at http://127.0.0.1:5108

      -
        -
      • Go to the Contracts Section
      • -
      • Click on Register a Contract API
      • -
      • Select the name of your broadcasted FFI in the Contract Interface dropdown
      • -
      • In the Name Field, give a name that will be part of the URL for your Http API
      • -
      • In the Chaincode Field, give your chaincode name for which you wrote the FFI
      • -
      • In the Channel Field, give the channel name where your chaincode is deployed
      • -
      • Click on Run
      • -
      -
      -

      - - - View OpenAPI spec for the contract - - -

      - - -

      You’ll notice in the response body that there are a couple of URLs near the bottom. If you navigate to the one labeled ui in your browser, you should see the Swagger UI for your chaincode.

      - -

      Swagger UI

      -

      - - - /invoke/* endpoints - - -

      - - -

      The /invoke endpoints in the generated API are for submitting transactions. These endpoints will be mapped to the POST /transactions endpoint of the FabConnect API.

      -

      - - - /query/* endpoints - - -

      - - -

      The /query endpoints in the generated API, on the other hand, are for sending query requests. These endpoints will be mapped to the POST /query endpoint of the Fabconnect API, which under the cover only sends chaincode endorsement requests to the target peer node without sending a trasaction payload to the orderer node.

      -

      - - - Invoke the chaincode - - -

      - - -

      Now that we’ve got everything set up, it’s time to use our chaincode! We’re going to make a POST request to the invoke/CreateAsset endpoint to create a new asset.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/apis/asset_transfer/invoke/CreateAsset

      - -
      {
      -  "input": {
      -    "color": "blue",
      -    "id": "asset-01",
      -    "owner": "Harry",
      -    "size": "30",
      -    "value": "23400"
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "b8e905cc-bc23-434a-af7d-13c6d85ae545",
      -  "namespace": "default",
      -  "tx": "79d2668e-4626-4634-9448-1b40fa0d9dfd",
      -  "type": "blockchain_invoke",
      -  "status": "Pending",
      -  "plugin": "fabric",
      -  "input": {
      -    "input": {
      -      "color": "blue",
      -      "id": "asset-02",
      -      "owner": "Harry",
      -      "size": "30",
      -      "value": "23400"
      -    },
      -    "interface": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      -    "key": "Org1MSP::x509::CN=org_0,OU=client::CN=fabric_ca.org1.example.com,OU=Hyperledger FireFly,O=org1.example.com,L=Raleigh,ST=North Carolina,C=US",
      -    "location": {
      -      "chaincode": "asset_transfer",
      -      "channel": "firefly"
      -    },
      -    "method": {
      -      "description": "",
      -      "id": "e5a170d1-0be1-4697-800b-f4bcfaf71cf6",
      -      "interface": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      -      "name": "CreateAsset",
      -      "namespace": "default",
      -      "params": [
      -        {
      -          "name": "id",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "color",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "size",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "owner",
      -          "schema": {
      -            "type": "string"
      -          }
      -        },
      -        {
      -          "name": "value",
      -          "schema": {
      -            "type": "string"
      -          }
      -        }
      -      ],
      -      "pathname": "CreateAsset",
      -      "returns": []
      -    },
      -    "methodPath": "CreateAsset",
      -    "type": "invoke"
      -  },
      -  "created": "2022-05-02T17:08:40.811630044Z",
      -  "updated": "2022-05-02T17:08:40.811630044Z"
      -}
      -
      - -

      You’ll notice that we got an ID back with status Pending, and that’s expected due to the asynchronous programming model of working with custom onchain logic in FireFly. To see what the latest state is now, we can query the chaincode. In a little bit, we’ll also subscribe to the events emitted by this chaincode so we can know when the state is updated in realtime.

      -

      - - - Query the current state - - -

      - - -

      To make a read-only request to the blockchain to check the current list of assets, we can make a POST to the query/GetAllAssets endpoint.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/apis/asset_transfer/query/GetAllAssets

      - -
      {}
      -
      -

      - - - Response - - -

      - - -
      [
      -  {
      -    "AppraisedValue": 23400,
      -    "Color": "blue",
      -    "ID": "asset-01",
      -    "Owner": "Harry",
      -    "Size": 30
      -  }
      -]
      -
      - -
      -

      NOTE: Some chaincodes may have queries that require input parameters. That’s why the query endpoint is a POST, rather than a GET so that parameters can be passed as JSON in the request body. This particular function does not have any parameters, so we just pass an empty JSON object.

      -
      -

      - - - Create a blockchain event listener - - -

      - - -

      Now that we’ve seen how to submit transactions and preform read-only queries to the blockchain, let’s look at how to receive blockchain events so we know when things are happening in realtime.

      - -

      If you look at the source code for the smart contract we’re working with above, you’ll notice that it emits an event when a new asset is created. In order to receive these events, we first need to instruct FireFly to listen for this specific type of blockchain event. To do this, we create an Event Listener.

      - -

      The /contracts/listeners endpoint is RESTful so there are POST, GET, and DELETE methods available on it. To create a new listener, we will make a POST request. We are going to tell FireFly to listen to events with name "AssetCreated" from the FireFly Interface we defined earlier, referenced by its ID. We will also tell FireFly which channel and chaincode we expect to emit these events.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/contracts/listeners

      - -
      {
      -  "interface": {
      -    "id": "f1e5522c-59a5-4787-bbfd-89975e5b0954"
      -  },
      -  "location": {
      -    "channel": "firefly",
      -    "chaincode": "asset_transfer"
      -  },
      -  "event": {
      -    "name": "AssetCreated"
      -  },
      -  "options": {
      -    "firstEvent": "oldest"
      -  },
      -  "topic": "assets"
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "6e7f5dd8-5a57-4163-a1d2-5654e784dc31",
      -  "namespace": "default",
      -  "name": "sb-2cac2bfa-38af-4408-4ff3-973421410e5d",
      -  "backendId": "sb-2cac2bfa-38af-4408-4ff3-973421410e5d",
      -  "location": {
      -    "channel": "firefly",
      -    "chaincode": "asset_transfer"
      -  },
      -  "created": "2022-05-02T17:19:13.144561086Z",
      -  "event": {
      -    "name": "AssetCreated",
      -    "description": "",
      -    "params": null
      -  },
      -  "signature": "AssetCreated",
      -  "topic": "assets",
      -  "options": {
      -    "firstEvent": "oldest"
      -  }
      -}
      -
      -

      - - - Subscribe to events from our contract - - -

      - - -

      Now that we’ve told FireFly that it should listen for specific events on the blockchain, we can set up a Subscription for FireFly to send events to our client app. To set up our subscription, we will make a POST to the /subscriptions endpoint.

      - -

      We will set a friendly name asset_transfer to identify the Subscription when we are connecting to it in the next step.

      - -

      We’re also going to set up a filter to only send events blockchain events from our listener that we created in the previous step. To do that, we’ll copy the listener ID from the step above (6e7f5dd8-5a57-4163-a1d2-5654e784dc31) and set that as the value of the listener field in the example below:

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/subscriptions

      - -
      {
      -  "namespace": "default",
      -  "name": "asset_transfer",
      -  "transport": "websockets",
      -  "filter": {
      -    "events": "blockchain_event_received",
      -    "blockchainevent": {
      -      "listener": "6e7f5dd8-5a57-4163-a1d2-5654e784dc31"
      -    }
      -  },
      -  "options": {
      -    "firstEvent": "oldest"
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "06d18b49-e763-4f5c-9e97-c25024fe57c8",
      -  "namespace": "default",
      -  "name": "asset_transfer",
      -  "transport": "websockets",
      -  "filter": {
      -    "events": "blockchain_event_received",
      -    "message": {},
      -    "transaction": {},
      -    "blockchainevent": {
      -      "listener": "6e7f5dd8-5a57-4163-a1d2-5654e784dc31"
      -    }
      -  },
      -  "options": {
      -    "firstEvent": "-1",
      -    "withData": false
      -  },
      -  "created": "2022-05-02T17:22:06.480181291Z",
      -  "updated": null
      -}
      -
      -

      - - - Receive custom smart contract events - - -

      - - -

      The last step is to connect a WebSocket client to FireFly to receive the event. You can use any WebSocket client you like, such as Postman or a command line app like websocat.

      - -

      Connect your WebSocket client to ws://localhost:5000/ws.

      - -

      After connecting the WebSocket client, send a message to tell FireFly to:

      - -
        -
      • Start sending events
      • -
      • For the Subscription named asset_transfer
      • -
      • On the default namespace
      • -
      • Automatically “ack” each event which will let FireFly immediately send the next event when available
      • -
      - -
      {
      -  "type": "start",
      -  "name": "asset_transfer",
      -  "namespace": "default",
      -  "autoack": true
      -}
      -
      -

      - - - WebSocket event - - -

      - - -

      After creating the subscription, you should see an event arrive on the connected WebSocket client that looks something like this:

      - -
      {
      -  "id": "d9fb86b2-b25b-43b8-80d3-936c5daa5a66",
      -  "sequence": 29,
      -  "type": "blockchain_event_received",
      -  "namespace": "default",
      -  "reference": "e0d670b4-a1b6-4efd-a985-06dfaaa58fe3",
      -  "topic": "assets",
      -  "created": "2022-05-02T17:26:57.57612001Z",
      -  "blockchainEvent": {
      -    "id": "e0d670b4-a1b6-4efd-a985-06dfaaa58fe3",
      -    "source": "fabric",
      -    "namespace": "default",
      -    "name": "AssetCreated",
      -    "listener": "6e7f5dd8-5a57-4163-a1d2-5654e784dc31",
      -    "protocolId": "000000000015/000000/000000",
      -    "output": { "AppraisedValue": 12300, "Color": "red", "ID": "asset-01", "Owner": "Jerry", "Size": 10 },
      -    "info": {
      -      "blockNumber": 15,
      -      "chaincodeId": "asset_transfer",
      -      "eventIndex": 0,
      -      "eventName": "AssetCreated",
      -      "subId": "sb-2cac2bfa-38af-4408-4ff3-973421410e5d",
      -      "timestamp": 1651512414920972300,
      -      "transactionId": "172637bf59a3520ca6dd02f716e1043ba080e10e1cd2f98b4e6b85abcc6a6d69",
      -      "transactionIndex": 0
      -    },
      -    "timestamp": "2022-05-02T17:26:54.9209723Z",
      -    "tx": { "type": "", "blockchainId": "172637bf59a3520ca6dd02f716e1043ba080e10e1cd2f98b4e6b85abcc6a6d69" }
      -  },
      -  "subscription": { "id": "06d18b49-e763-4f5c-9e97-c25024fe57c8", "namespace": "default", "name": "asset_transfer" }
      -}
      -
      - -

      You can see in the event received over the WebSocket connection, the blockchain event that was emitted from our first transaction, which happened in the past. We received this event, because when we set up both the Listener, and the Subscription, we specified the "firstEvent" as "oldest". This tells FireFly to look for this event from the beginning of the blockchain, and that your app is interested in FireFly events since the beginning of FireFly’s event history.

      - -

      In the event, we can also see the blockchainEvent itself, which has an output object. This contains the event payload that was set by the chaincode.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/custom_contracts/fabric/index.html b/head/tutorials/custom_contracts/fabric/index.html new file mode 100644 index 000000000..ff8c1bdca --- /dev/null +++ b/head/tutorials/custom_contracts/fabric/index.html @@ -0,0 +1,4694 @@ + + + + + + + + + + + + + + + + + + + + + + + Fabric - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Work with Hyperledger Fabric chaincodes

      +

      This guide describes the steps to deploy a chaincode to a Hyperledger Fabric blockchain and use FireFly to interact with it in order to submit transactions, query for states and listening for events.

      +
      +

      NOTE: This guide assumes that you are running a local FireFly stack with at least 2 members and a Fabric blockchain created by the FireFly CLI. If you need help getting that set up, please see the Getting Started guide to Start your environment.

      +
      +

      Example smart contract

      +

      For this tutorial, we will be using a well known, but slightly modified smart contract called asset_transfer. It's based on the asset-transfer-basic chaincode in the fabric-samples project. Check out the code repository and use the source code provided below to replace part of the content of the file fabric-samples/asset-transfer-basic/chaincode-go/chaincode/smartcontract.go.

      +

      Find the following return statement in the function CreateAsset:

      +
          return ctx.GetStub().PutState(id, assetJSON)
      +
      +

      and replace it with the following, so that an event will be emitted when the transaction is committed to the channel ledger:

      +
        err = ctx.GetStub().PutState(id, assetJSON)
      +  if err != nil {
      +    return err
      +  }
      +  return ctx.GetStub().SetEvent("AssetCreated", assetJSON)
      +
      +

      Create the chaincode package

      +

      Use the peer command to create the chaincode package for deployment. You can download the peer binary from the releases page of the Fabric project or build it from source.

      +
        ~ johndoe$ cd fabric-samples/asset-transfer-basic/chaincode-go
      +  chaincode-go johndoe$ touch core.yaml
      +  chaincode-go johndoe$ peer lifecycle chaincode package -p . --label asset_transfer ./asset_transfer.zip
      +
      +
      +

      The peer command requires an empty core.yaml file to be present in the working directory to perform the packaging. That's what touch core.yaml did above

      +
      +

      The resulting asset_transfer.zip archive file will be used in the next step to deploy to the Fabric network used in FireFly.

      +

      Contract deployment

      +

      Deployment of smart contracts is not currently within the scope of responsibility for FireFly. You can use your standard blockchain specific tools to deploy your contract to the blockchain you are using.

      +

      The FireFly CLI provides a convenient function to deploy a chaincode package to a local FireFly stack.

      +
      +

      NOTE: The contract deployment function of the FireFly CLI is a convenience function to speed up local development, and not intended for production applications

      +
      +
      ~ johndoe$ ff help deploy fabric
      +Deploy a packaged chaincode to the Fabric network used by a FireFly stack
      +
      +Usage:
      +  ff deploy fabric <stack_name> <chaincode_package> <channel> <chaincodeName> <version> [flags]
      +
      +

      Notice the various parameters used by the command ff deploy fabric. We'll tell the FireFly to deploy using the following parameter values, if your stack setup is different, update the command accordingly:

      +
        +
      • stack name: dev
      • +
      • channel: firefly (this is the channel that is created by the FireFly CLI when bootstrapping the stack, replace if you use a different channel in your setup)
      • +
      • chaincode name: asset_transfer (must match the value of the --label parameter when creating the chaincode package)
      • +
      • version: 1.0
      • +
      +
      $ ff deploy fabric dev asset_transfer.zip firefly asset_transfer 1.0
      +installing chaincode
      +querying installed chaincode
      +approving chaincode
      +committing chaincode
      +{
      +  "chaincode": "asset_transfer",
      +  "channel": "firefly"
      +}
      +
      +

      The FireFly Interface Format

      +

      In order to teach FireFly how to interact with the chaincode, a FireFly Interface (FFI) document is needed. While Ethereum (or other EVM based blockchains) requires an Application Binary Interface (ABI) to govern the interaction between the client and the smart contract, which is specific to each smart contract interface design, Fabric defines a generic chaincode interface and leaves the encoding and decoding of the parameter values to the discretion of the chaincode developer.

      +

      As a result, the FFI document for a Fabric chaincode must be hand-crafted. The following FFI sample demonstrates the specification for the following common cases:

      +
        +
      • structured JSON, used here for the list of chaincode function CreateAsset input parameters
      • +
      • array of JSON, used here for the chaincode function GetAllAssets output
      • +
      • structured JSON, used here for the list of chaincode event AssetCreated properties
      • +
      +
      {
      +  "namespace": "default",
      +  "name": "asset_transfer",
      +  "description": "Spec interface for the asset-transfer-basic golang chaincode",
      +  "version": "1.0",
      +  "methods": [
      +    {
      +      "name": "GetAllAssets",
      +      "pathname": "",
      +      "description": "",
      +      "params": [],
      +      "returns": [
      +        {
      +          "name": "",
      +          "schema": {
      +            "type": "array",
      +            "details": {
      +              "type": "object",
      +              "properties": {
      +                "type": "string"
      +              }
      +            }
      +          }
      +        }
      +      ]
      +    },
      +    {
      +      "name": "CreateAsset",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "id",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "color",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "size",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "owner",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "value",
      +          "schema": {
      +            "type": "string"
      +          }
      +        }
      +      ],
      +      "returns": []
      +    }
      +  ],
      +  "events": [
      +    {
      +      "name": "AssetCreated"
      +    }
      +  ]
      +}
      +
      +

      Input parameters

      +

      For the params section of the CreateAsset function, it is critical that the sequence of the properties (id, color, size, owner, value) matches the order of the input parameters in the chaincode's function signature:

      +
      func CreateAsset(ctx contractapi.TransactionContextInterface, id string, color string, size int, owner string, appraisedValue int) error
      +
      +

      Return values

      +

      FireFly can automatically decode JSON payloads in the return values. That's why the returns section of the GetAllAssets function only needs to specify the type as array of objects, without having to specify the detailed structure of the JSON payload.

      +

      On the other hand, if certain properties of the returned value are to be hidden, then you can provide a detailed structure of the JSON object with the desired properties. This is demonstrated in the JSON structure for the event payload, see below, where the property AppraisedValue is omitted from the output.

      +

      Event payloads

      +

      For events, FireFly automatically decodes JSON payloads. If the event payload is not JSON, base64 encoded bytes will be returned instead. For the events section of the FFI, only the name property needs to be specified.

      +

      Broadcast the contract interface

      +

      Now that we have a FireFly Interface representation of our chaincode, we want to broadcast that to the entire network. This broadcast will be pinned to the blockchain, so we can always refer to this specific name and version, and everyone in the network will know exactly which contract interface we are talking about.

      +

      We will use the FFI JSON constructed above and POST that to the /contracts/interfaces API endpoint.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces

      +
      {
      +  "namespace": "default",
      +  "name": "asset_transfer",
      +  "description": "Spec interface for the asset-transfer-basic golang chaincode",
      +  "version": "1.0",
      +  "methods": [
      +    {
      +      "name": "GetAllAssets",
      +      "pathname": "",
      +      "description": "",
      +      "params": [],
      +      "returns": [
      +        {
      +          "name": "",
      +          "schema": {
      +            "type": "array",
      +            "details": {
      +              "type": "object",
      +              "properties": {
      +                "type": "string"
      +              }
      +            }
      +          }
      +        }
      +      ]
      +    },
      +    {
      +      "name": "CreateAsset",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "id",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "color",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "size",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "owner",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "value",
      +          "schema": {
      +            "type": "string"
      +          }
      +        }
      +      ],
      +      "returns": []
      +    }
      +  ],
      +  "events": [
      +    {
      +      "name": "AssetCreated"
      +    }
      +  ]
      +}
      +
      +

      Response

      +
      {
      +  "id": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      +  "message": "8a01fc83-5729-418b-9706-6fc17c8d2aac",
      +  "namespace": "default",
      +  "name": "asset_transfer",
      +  "description": "Spec interface for the asset-transfer-basic golang chaincode",
      +  "version": "1.1",
      +  "methods": [
      +    {
      +      "id": "b31e3623-35e8-4918-bf8c-1b0d6c01de25",
      +      "interface": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      +      "name": "GetAllAssets",
      +      "namespace": "default",
      +      "pathname": "GetAllAssets",
      +      "description": "",
      +      "params": [],
      +      "returns": [
      +        {
      +          "name": "",
      +          "schema": {
      +            "type": "array",
      +            "details": {
      +              "type": "object",
      +              "properties": {
      +                "type": "string"
      +              }
      +            }
      +          }
      +        }
      +      ]
      +    },
      +    {
      +      "id": "e5a170d1-0be1-4697-800b-f4bcfaf71cf6",
      +      "interface": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      +      "name": "CreateAsset",
      +      "namespace": "default",
      +      "pathname": "CreateAsset",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "id",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "color",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "size",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "owner",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "value",
      +          "schema": {
      +            "type": "string"
      +          }
      +        }
      +      ],
      +      "returns": []
      +    }
      +  ],
      +  "events": [
      +    {
      +      "id": "27564533-30bd-4536-884e-02e5d79ec238",
      +      "interface": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      +      "namespace": "default",
      +      "pathname": "AssetCreated",
      +      "signature": "",
      +      "name": "AssetCreated",
      +      "description": "",
      +      "params": null
      +    }
      +  ]
      +}
      +
      +
      +

      NOTE: We can broadcast this contract interface conveniently with the help of FireFly Sandbox running at http://127.0.0.1:5108

      +
      +
        +
      • Go to the Contracts Section
      • +
      • Click on Define a Contract Interface
      • +
      • Select FFI - FireFly Interface in the Interface Fromat dropdown
      • +
      • Copy the FFI JSON crafted by you into the Schema Field
      • +
      • Click on Run
      • +
      +

      Create an HTTP API for the contract

      +

      Now comes the fun part where we see some of the powerful, developer-friendly features of FireFly. The next thing we're going to do is tell FireFly to build an HTTP API for this chaincode, complete with an OpenAPI Specification and Swagger UI. As part of this, we'll also tell FireFly where the chaincode is on the blockchain.

      +

      Like the interface broadcast above, this will also generate a broadcast which will be pinned to the blockchain so all the members of the network will be aware of and able to interact with this API.

      +

      We need to copy the id field we got in the response from the previous step to the interface.id field in the request body below. We will also pick a name that will be part of the URL for our HTTP API, so be sure to pick a name that is URL friendly. In this case we'll call it asset_transfer. Lastly, in the location field, we're telling FireFly where an instance of the chaincode is deployed on-chain, which is a chaincode named asset_transfer in the channel firefly.

      +
      +

      NOTE: The location field is optional here, but if it is omitted, it will be required in every request to invoke or query the chaincode. This can be useful if you have multiple instances of the same chaincode deployed to different channels.

      +
      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis

      +
      {
      +  "name": "asset_transfer",
      +  "interface": {
      +    "id": "f1e5522c-59a5-4787-bbfd-89975e5b0954"
      +  },
      +  "location": {
      +    "channel": "firefly",
      +    "chaincode": "asset_transfer"
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "a9a9ab4e-2544-45d5-8824-3c05074fbf75",
      +  "namespace": "default",
      +  "interface": {
      +    "id": "f1e5522c-59a5-4787-bbfd-89975e5b0954"
      +  },
      +  "location": {
      +    "channel": "firefly",
      +    "chaincode": "asset_transfer"
      +  },
      +  "name": "asset_transfer",
      +  "message": "5f1556a1-5cb1-4bc6-8611-d8f88ccf9c30",
      +  "urls": {
      +    "openapi": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/asset_transfer/api/swagger.json",
      +    "ui": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/asset_transfer/api"
      +  }
      +}
      +
      +
      +

      NOTE: We can create this Http API conveniently with the help of FireFly Sandbox running at http://127.0.0.1:5108

      +
      +
        +
      • Go to the Contracts Section
      • +
      • Click on Register a Contract API
      • +
      • Select the name of your broadcasted FFI in the Contract Interface dropdown
      • +
      • In the Name Field, give a name that will be part of the URL for your Http API
      • +
      • In the Chaincode Field, give your chaincode name for which you wrote the FFI
      • +
      • In the Channel Field, give the channel name where your chaincode is deployed
      • +
      • Click on Run
      • +
      +

      View OpenAPI spec for the contract

      +

      You'll notice in the response body that there are a couple of URLs near the bottom. If you navigate to the one labeled ui in your browser, you should see the Swagger UI for your chaincode.

      +

      Swagger UI

      +

      /invoke/* endpoints

      +

      The /invoke endpoints in the generated API are for submitting transactions. These endpoints will be mapped to the POST /transactions endpoint of the FabConnect API.

      +

      /query/* endpoints

      +

      The /query endpoints in the generated API, on the other hand, are for sending query requests. These endpoints will be mapped to the POST /query endpoint of the Fabconnect API, which under the cover only sends chaincode endorsement requests to the target peer node without sending a trasaction payload to the orderer node.

      +

      Invoke the chaincode

      +

      Now that we've got everything set up, it's time to use our chaincode! We're going to make a POST request to the invoke/CreateAsset endpoint to create a new asset.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis/asset_transfer/invoke/CreateAsset

      +
      {
      +  "input": {
      +    "color": "blue",
      +    "id": "asset-01",
      +    "owner": "Harry",
      +    "size": "30",
      +    "value": "23400"
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "b8e905cc-bc23-434a-af7d-13c6d85ae545",
      +  "namespace": "default",
      +  "tx": "79d2668e-4626-4634-9448-1b40fa0d9dfd",
      +  "type": "blockchain_invoke",
      +  "status": "Pending",
      +  "plugin": "fabric",
      +  "input": {
      +    "input": {
      +      "color": "blue",
      +      "id": "asset-02",
      +      "owner": "Harry",
      +      "size": "30",
      +      "value": "23400"
      +    },
      +    "interface": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      +    "key": "Org1MSP::x509::CN=org_0,OU=client::CN=fabric_ca.org1.example.com,OU=Hyperledger FireFly,O=org1.example.com,L=Raleigh,ST=North Carolina,C=US",
      +    "location": {
      +      "chaincode": "asset_transfer",
      +      "channel": "firefly"
      +    },
      +    "method": {
      +      "description": "",
      +      "id": "e5a170d1-0be1-4697-800b-f4bcfaf71cf6",
      +      "interface": "f1e5522c-59a5-4787-bbfd-89975e5b0954",
      +      "name": "CreateAsset",
      +      "namespace": "default",
      +      "params": [
      +        {
      +          "name": "id",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "color",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "size",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "owner",
      +          "schema": {
      +            "type": "string"
      +          }
      +        },
      +        {
      +          "name": "value",
      +          "schema": {
      +            "type": "string"
      +          }
      +        }
      +      ],
      +      "pathname": "CreateAsset",
      +      "returns": []
      +    },
      +    "methodPath": "CreateAsset",
      +    "type": "invoke"
      +  },
      +  "created": "2022-05-02T17:08:40.811630044Z",
      +  "updated": "2022-05-02T17:08:40.811630044Z"
      +}
      +
      +

      You'll notice that we got an ID back with status Pending, and that's expected due to the asynchronous programming model of working with custom onchain logic in FireFly. To see what the latest state is now, we can query the chaincode. In a little bit, we'll also subscribe to the events emitted by this chaincode so we can know when the state is updated in realtime.

      +

      Query the current state

      +

      To make a read-only request to the blockchain to check the current list of assets, we can make a POST to the query/GetAllAssets endpoint.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis/asset_transfer/query/GetAllAssets

      +
      {}
      +
      +

      Response

      +
      [
      +  {
      +    "AppraisedValue": 23400,
      +    "Color": "blue",
      +    "ID": "asset-01",
      +    "Owner": "Harry",
      +    "Size": 30
      +  }
      +]
      +
      +
      +

      NOTE: Some chaincodes may have queries that require input parameters. That's why the query endpoint is a POST, rather than a GET so that parameters can be passed as JSON in the request body. This particular function does not have any parameters, so we just pass an empty JSON object.

      +
      +

      Create a blockchain event listener

      +

      Now that we've seen how to submit transactions and preform read-only queries to the blockchain, let's look at how to receive blockchain events so we know when things are happening in realtime.

      +

      If you look at the source code for the smart contract we're working with above, you'll notice that it emits an event when a new asset is created. In order to receive these events, we first need to instruct FireFly to listen for this specific type of blockchain event. To do this, we create an Event Listener.

      +

      The /contracts/listeners endpoint is RESTful so there are POST, GET, and DELETE methods available on it. To create a new listener, we will make a POST request. We are going to tell FireFly to listen to events with name "AssetCreated" from the FireFly Interface we defined earlier, referenced by its ID. We will also tell FireFly which channel and chaincode we expect to emit these events.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/contracts/listeners

      +
      {
      +  "interface": {
      +    "id": "f1e5522c-59a5-4787-bbfd-89975e5b0954"
      +  },
      +  "location": {
      +    "channel": "firefly",
      +    "chaincode": "asset_transfer"
      +  },
      +  "event": {
      +    "name": "AssetCreated"
      +  },
      +  "options": {
      +    "firstEvent": "oldest"
      +  },
      +  "topic": "assets"
      +}
      +
      +

      Response

      +
      {
      +  "id": "6e7f5dd8-5a57-4163-a1d2-5654e784dc31",
      +  "namespace": "default",
      +  "name": "sb-2cac2bfa-38af-4408-4ff3-973421410e5d",
      +  "backendId": "sb-2cac2bfa-38af-4408-4ff3-973421410e5d",
      +  "location": {
      +    "channel": "firefly",
      +    "chaincode": "asset_transfer"
      +  },
      +  "created": "2022-05-02T17:19:13.144561086Z",
      +  "event": {
      +    "name": "AssetCreated",
      +    "description": "",
      +    "params": null
      +  },
      +  "signature": "AssetCreated",
      +  "topic": "assets",
      +  "options": {
      +    "firstEvent": "oldest"
      +  }
      +}
      +
      +

      Subscribe to events from our contract

      +

      Now that we've told FireFly that it should listen for specific events on the blockchain, we can set up a Subscription for FireFly to send events to our client app. To set up our subscription, we will make a POST to the /subscriptions endpoint.

      +

      We will set a friendly name asset_transfer to identify the Subscription when we are connecting to it in the next step.

      +

      We're also going to set up a filter to only send events blockchain events from our listener that we created in the previous step. To do that, we'll copy the listener ID from the step above (6e7f5dd8-5a57-4163-a1d2-5654e784dc31) and set that as the value of the listener field in the example below:

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/subscriptions

      +
      {
      +  "namespace": "default",
      +  "name": "asset_transfer",
      +  "transport": "websockets",
      +  "filter": {
      +    "events": "blockchain_event_received",
      +    "blockchainevent": {
      +      "listener": "6e7f5dd8-5a57-4163-a1d2-5654e784dc31"
      +    }
      +  },
      +  "options": {
      +    "firstEvent": "oldest"
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "06d18b49-e763-4f5c-9e97-c25024fe57c8",
      +  "namespace": "default",
      +  "name": "asset_transfer",
      +  "transport": "websockets",
      +  "filter": {
      +    "events": "blockchain_event_received",
      +    "message": {},
      +    "transaction": {},
      +    "blockchainevent": {
      +      "listener": "6e7f5dd8-5a57-4163-a1d2-5654e784dc31"
      +    }
      +  },
      +  "options": {
      +    "firstEvent": "-1",
      +    "withData": false
      +  },
      +  "created": "2022-05-02T17:22:06.480181291Z",
      +  "updated": null
      +}
      +
      +

      Receive custom smart contract events

      +

      The last step is to connect a WebSocket client to FireFly to receive the event. You can use any WebSocket client you like, such as Postman or a command line app like websocat.

      +

      Connect your WebSocket client to ws://localhost:5000/ws.

      +

      After connecting the WebSocket client, send a message to tell FireFly to:

      +
        +
      • Start sending events
      • +
      • For the Subscription named asset_transfer
      • +
      • On the default namespace
      • +
      • Automatically "ack" each event which will let FireFly immediately send the next event when available
      • +
      +
      {
      +  "type": "start",
      +  "name": "asset_transfer",
      +  "namespace": "default",
      +  "autoack": true
      +}
      +
      +

      WebSocket event

      +

      After creating the subscription, you should see an event arrive on the connected WebSocket client that looks something like this:

      +
      {
      +  "id": "d9fb86b2-b25b-43b8-80d3-936c5daa5a66",
      +  "sequence": 29,
      +  "type": "blockchain_event_received",
      +  "namespace": "default",
      +  "reference": "e0d670b4-a1b6-4efd-a985-06dfaaa58fe3",
      +  "topic": "assets",
      +  "created": "2022-05-02T17:26:57.57612001Z",
      +  "blockchainEvent": {
      +    "id": "e0d670b4-a1b6-4efd-a985-06dfaaa58fe3",
      +    "source": "fabric",
      +    "namespace": "default",
      +    "name": "AssetCreated",
      +    "listener": "6e7f5dd8-5a57-4163-a1d2-5654e784dc31",
      +    "protocolId": "000000000015/000000/000000",
      +    "output": {
      +      "AppraisedValue": 12300,
      +      "Color": "red",
      +      "ID": "asset-01",
      +      "Owner": "Jerry",
      +      "Size": 10
      +    },
      +    "info": {
      +      "blockNumber": 15,
      +      "chaincodeId": "asset_transfer",
      +      "eventIndex": 0,
      +      "eventName": "AssetCreated",
      +      "subId": "sb-2cac2bfa-38af-4408-4ff3-973421410e5d",
      +      "timestamp": 1651512414920972300,
      +      "transactionId": "172637bf59a3520ca6dd02f716e1043ba080e10e1cd2f98b4e6b85abcc6a6d69",
      +      "transactionIndex": 0
      +    },
      +    "timestamp": "2022-05-02T17:26:54.9209723Z",
      +    "tx": {
      +      "type": "",
      +      "blockchainId": "172637bf59a3520ca6dd02f716e1043ba080e10e1cd2f98b4e6b85abcc6a6d69"
      +    }
      +  },
      +  "subscription": {
      +    "id": "06d18b49-e763-4f5c-9e97-c25024fe57c8",
      +    "namespace": "default",
      +    "name": "asset_transfer"
      +  }
      +}
      +
      +

      You can see in the event received over the WebSocket connection, the blockchain event that was emitted from our first transaction, which happened in the past. We received this event, because when we set up both the Listener, and the Subscription, we specified the "firstEvent" as "oldest". This tells FireFly to look for this event from the beginning of the blockchain, and that your app is interested in FireFly events since the beginning of FireFly's event history.

      +

      In the event, we can also see the blockchainEvent itself, which has an output object. This contains the event payload that was set by the chaincode.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/custom_contracts/index.html b/head/tutorials/custom_contracts/index.html index a5c2d16c8..4a0a662a0 100644 --- a/head/tutorials/custom_contracts/index.html +++ b/head/tutorials/custom_contracts/index.html @@ -1,399 +1,3431 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + Work with custom smart contracts - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + + + + + + + +
      +
      +
      + + + +
      +
      +
      + -

      FireFly defines the following constructs to support custom smart contracts:

      + +
      +
      +
      + + + +
      +
      + + -
        -
      • Contract Interface: FireFly defines a common, blockchain agnostic way to describe smart contracts. This is referred to as a Contract Interface. A contract interface is written in the FireFly Interface (FFI) format. It is a simple JSON document that has a name, a namespace, a version, a list of methods, and a list of events.
      • -
      + + -

      For more details, you can also have a look at the Reference page for the FireFly Interface Format.

      -

      For blockchains that offer a DSL describing the smart contract interface, such as Ethereum’s ABI (Application Binary Interface), FireFly offers a convenience tool to convert the DSL into the FFI format.

      +

      Work with custom smart contracts

      +

      Quick reference

      +

      Almost all blockchain platforms offer the ability to execute smart contracts on-chain in order to manage states on the shared ledger. FireFly provides support to use RESTful APIs to interact with the smart contracts deployed in the target blockchains, and listening to events via websocket.

      +

      FireFly's unified API creates a consistent application experience regardless of the specific underlying blockchain implementation. It also provides developer-friendly features like automatic OpenAPI Specification generation for smart contracts, plus a built-in Swagger UI.

      +

      Key concepts

      +

      FireFly defines the following constructs to support custom smart contracts:

      +
        +
      • Contract Interface: FireFly defines a common, blockchain agnostic way to describe smart contracts. This is referred to as a Contract Interface. A contract interface is written in the FireFly Interface (FFI) format. It is a simple JSON document that has a name, a namespace, a version, a list of methods, and a list of events.
      • +
      +

      For more details, you can also have a look at the Reference page for the FireFly Interface Format.

      +

      For blockchains that offer a DSL describing the smart contract interface, such as Ethereum's ABI (Application Binary Interface), FireFly offers a convenience tool to convert the DSL into the FFI format.

      -

      NOTE: Contract interfaces are scoped to a namespace. Within a namespace each contract interface must have a unique name and version combination. The same name and version combination can exist in different namespaces simultaneously.

      +

      NOTE: Contract interfaces are scoped to a namespace. Within a namespace each contract interface must have a unique name and version combination. The same name and version combination can exist in different namespaces simultaneously.

      -
        -
      • HTTP API: Based on a Contract Interface, FireFly further defines an HTTP API for the smart contract, which is complete with an OpenAPI Specification and the Swagger UI. An HTTP API defines an /invoke root path to submit transactions, and a /query root path to send query requests to read the state back out.
      • +
      • HTTP API: Based on a Contract Interface, FireFly further defines an HTTP API for the smart contract, which is complete with an OpenAPI Specification and the Swagger UI. An HTTP API defines an /invoke root path to submit transactions, and a /query root path to send query requests to read the state back out.
      - -

      How the invoke vs. query requests get interpreted into the native blockchain requests are specific to the blockchain’s connector. For instance, the Ethereum connector translates /invoke calls to eth_sendTransaction JSON-RPC requests, while /query calls are translated into eth_call JSON-RPC requests. One the other hand, the Fabric connector translates /invoke calls to the multiple requests required to submit a transaction to a Fabric channel (which first collects endorsements from peer nodes, and then sends the assembled transaction payload to an orderer, for details please refer to the Fabric documentation).

      - +

      How the invoke vs. query requests get interpreted into the native blockchain requests are specific to the blockchain's connector. For instance, the Ethereum connector translates /invoke calls to eth_sendTransaction JSON-RPC requests, while /query calls are translated into eth_call JSON-RPC requests. One the other hand, the Fabric connector translates /invoke calls to the multiple requests required to submit a transaction to a Fabric channel (which first collects endorsements from peer nodes, and then sends the assembled transaction payload to an orderer, for details please refer to the Fabric documentation).

        -
      • Blockchain Event Listener: Regardless of a blockchain’s specific design, transaction processing are always asynchronous. This means a transaction is submitted to the network, at which point the submitting client gets an acknowledgement that it has been accepted for further processing. The client then listens for notifications by the blockchain when the transaction gets committed to the blockchain’s ledger.
      • +
      • Blockchain Event Listener: Regardless of a blockchain's specific design, transaction processing are always asynchronous. This means a transaction is submitted to the network, at which point the submitting client gets an acknowledgement that it has been accepted for further processing. The client then listens for notifications by the blockchain when the transaction gets committed to the blockchain's ledger.
      -

      FireFly defines event listeners to allow the client application to specify the relevant blockchain events to keep track of. A client application can then receive the notifications from FireFly via an event subscription.

      -
        -
      • Event Subscription: While an event listener tells FireFly to keep track of certain events emitted by the blockchain, an event subscription tells FireFly to relay those events to the client application. Each subscriptions represents a stream of events that can be delivered to a listening client with various modes of delivery with at-least-once delivery guarantee.
      • +
      • Event Subscription: While an event listener tells FireFly to keep track of certain events emitted by the blockchain, an event subscription tells FireFly to relay those events to the client application. Each subscriptions represents a stream of events that can be delivered to a listening client with various modes of delivery with at-least-once delivery guarantee.
      - -

      This is exactly the same as listening for any other events from FireFly. For more details on how Subscriptions work in FireFly you can read the Getting Started guide to Listen for events.

      -

      - - - Custom onchain logic async programming in FireFly - - -

      - - +

      This is exactly the same as listening for any other events from FireFly. For more details on how Subscriptions work in FireFly you can read the Getting Started guide to Listen for events.

      +

      Custom onchain logic async programming in FireFly

      Like the rest of FireFly, custom onchain logic support are implemented with an asynchronous programming model. The key concepts here are:

      -
        -
      • Transactions are submitted to FireFly and an ID is returned. This is the Operation ID.
      • -
      • The transaction itself happens asynchronously from the HTTP request that initiated it
      • -
      • Blockchain events emitted by the custom onchain logic (Ethereum smart contracts, Fabric chaincodes, Corda flows, etc.) will be stored in FireFly’s database if FireFly has a Event Listener set up for that specific type of event. FireFly will also emit an event of type blockchain_event_received when this happens.
      • +
      • Transactions are submitted to FireFly and an ID is returned. This is the Operation ID.
      • +
      • The transaction itself happens asynchronously from the HTTP request that initiated it
      • +
      • Blockchain events emitted by the custom onchain logic (Ethereum smart contracts, Fabric chaincodes, Corda flows, etc.) will be stored in FireFly's database if FireFly has a Event Listener set up for that specific type of event. FireFly will also emit an event of type blockchain_event_received when this happens.
      - -

      Smart Contracts Async Flow

      +

      Smart Contracts Async Flow

      + + + + - + + + + + + + + + + + + + +
      +
      + + + +
      -
      -

      Table of contents

      - + - +
      + +
      + + + + + + + + + + + + + + +
      +
      +
      + + + + + - -
      - - - - + + \ No newline at end of file diff --git a/head/tutorials/custom_contracts/pinning.html b/head/tutorials/custom_contracts/pinning.html deleted file mode 100644 index 9f127c7ae..000000000 --- a/head/tutorials/custom_contracts/pinning.html +++ /dev/null @@ -1,510 +0,0 @@ - - - - - - - - - Pinning Data - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Pinning Data | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Pin off-chain data to a custom blockchain transaction - - -

      - - -

      This guide describes how to associate an arbitrary off-chain payload with a blockchain transaction on a contract of your own design. A hash of the payload will be recorded as part of the blockchain transaction, and on the receiving side, FireFly will ensure that both the on-chain and off-chain pieces are received and aggregated together.

      - -
      -

      NOTE: This is an advanced FireFly feature. Before following any of the steps in this guide, you should be very familiar -and comfortable with the basic features of how broadcast messages and private messages -work, be proficient at custom contract development on your blockchain of choice, and understand the -fundamentals of how FireFly interacts with custom contracts.

      -
      -

      - - - Table of contents - - -

      - - -
        -
      1. Pin off-chain data to a custom blockchain transaction
          -
        1. Designing a compatible contract
            -
          1. Ethereum
          2. -
          3. Fabric
          4. -
          -
        2. -
        3. Initializing FireFly
        4. -
        5. Invoking the contract
        6. -
        7. Listening for events
        8. -
        -
      2. -

      -

      - - - Designing a compatible contract - - -

      - - -

      In order to allow pinning a FireFly message batch with a custom contract transaction, your contract must -meet certain criteria.

      - -

      First, any external method of the contract that will be used for associating with off-chain payloads -must provide an extra parameter for passing the encoded batch data. This must be the last parameter -in the method signature. This convention is chosen partly to align with the Ethereum -ERC5750 standard, but should serve as a straightforward -guideline for nearly any blockchain.

      - -

      Second, this method must emit a BatchPin event that can be received and parsed by FireFly. Exactly how -the data is unpacked and used to emit this event will differ for each blockchain.

      -

      - - - Ethereum - - -

      - - -
      import "@hyperledger/firefly-contracts/contracts/IBatchPin.sol";
      -
      -contract CustomPin {
      -    IBatchPin firefly;
      -
      -    function setFireFlyAddress(address addr) external {
      -        firefly = IBatchPin(addr);
      -    }
      -
      -    function sayHello(bytes calldata data) external {
      -        require(
      -            address(firefly) != address(0),
      -            "CustomPin: FireFly address has not been set"
      -        );
      -
      -        /* do custom things */
      -
      -        firefly.pinBatchData(data);
      -    }
      -}
      -
      - -
        -
      • The method in question will receive packed “batch pin” data in its last method parameter (in the -form of ABI-encoded bytes). The method must invoke the pinBatchData method of the -FireFly Multiparty Contract and pass along this data payload. It is generally good practice to -trigger this as a final step before returning, after the method has performed its own logic.
      • -
      • This also implies that the contract must know the on-chain location of the -FireFly Multiparty Contract. How this is achieved is up to your individual implementation - -the example above shows exposing a method to set the address. An application may leverage the fact that -this location is available by querying the FireFly -/status API (under multiparty.contract.location as of FireFly v1.1.0). However, the application must -also consider how appropriately secure this functionality, and how to update this location if a multiparty -“network action” is used to migrate the network onto a new FireFly multiparty contract.
      • -
      -

      - - - Fabric - - -

      - - -
      package chaincode
      -
      -import (
      -	"encoding/json"
      -	"fmt"
      -
      -	"github.com/hyperledger/fabric-contract-api-go/contractapi"
      -	"github.com/hyperledger/firefly/custompin_sample/batchpin"
      -)
      -
      -type SmartContract struct {
      -	contractapi.Contract
      -}
      -
      -func (s *SmartContract) MyCustomPin(ctx contractapi.TransactionContextInterface, data string) error {
      -	event, err := batchpin.BuildEventFromString(ctx, data)
      -	if err != nil {
      -		return err
      -	}
      -	bytes, err := json.Marshal(event)
      -	if err != nil {
      -		return fmt.Errorf("failed to marshal event: %s", err)
      -	}
      -	return ctx.GetStub().SetEvent("BatchPin", bytes)
      -}
      -
      - -
        -
      • The method in question will received packed “batch pin” data in its last method parameter (in the -form of a JSON-encoded string). The method must unpack this argument into a JSON object.
      • -
      • The contract must directly set a BatchPin event in the same format that is used by the -FireFly Multiparty Contract.
      • -
      -

      - - - Initializing FireFly - - -

      - - -

      Once you have a contract designed, you can initialize your environment -using the blockchain of your choice.

      - -

      No special initialization arguments are needed for Ethereum.

      - -

      If you are using Fabric, you must pass the --custom-pin-support argument when initializing your -FireFly stack. This will ensure that the BatchPin event listener listens to events from all chaincode -deployed on the default channel, instead of only listening to events from the pre-deployed FireFly chaincode.

      -

      - - - Invoking the contract - - -

      - - -

      You can follow the normal steps for Ethereum or Fabric to define your contract -interface and API in FireFly. When invoking the contract, you can include a message payload -alongside the other parameters.

      - -

      POST http://localhost:5000/api/v1/namespaces/default/apis/custom-pin/invoke/sayHello

      - -
      {
      -  "input": {},
      -  "message": {
      -    "data": [
      -      {
      -        "value": "payload here"
      -      }
      -    ]
      -  }
      -}
      -
      -

      - - - Listening for events - - -

      - - -

      All parties that receive the message will receive a message_confirmed on their event listeners. -This event confirms that the off-chain payload has been received (via data exchange or shared storage) and -that the blockchain transaction has been received and sequenced. It is guaranteed that these message_confirmed -events will be ordered based on the sequence of the on-chain transactions, regardless of when the off-chain -payload becomes available. This means that all parties will order messages on a given topic in exactly the -same order, allowing for deterministic but decentralized event-driven architecture.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/custom_contracts/pinning/index.html b/head/tutorials/custom_contracts/pinning/index.html new file mode 100644 index 000000000..3ff3a6e22 --- /dev/null +++ b/head/tutorials/custom_contracts/pinning/index.html @@ -0,0 +1,3644 @@ + + + + + + + + + + + + + + + + + + + + + + + Pinning Data - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Pin off-chain data to a custom blockchain transaction

      +

      This guide describes how to associate an arbitrary off-chain payload with a blockchain transaction on a contract of your own design. A hash of the payload will be recorded as part of the blockchain transaction, and on the receiving side, FireFly will ensure that both the on-chain and off-chain pieces are received and aggregated together.

      +
      +

      NOTE: This is an advanced FireFly feature. Before following any of the steps in this guide, you should be very familiar +and comfortable with the basic features of how broadcast messages and private messages +work, be proficient at custom contract development on your blockchain of choice, and understand the +fundamentals of how FireFly interacts with custom contracts.

      +
      +

      Designing a compatible contract

      +

      In order to allow pinning a FireFly message batch with a custom contract transaction, your contract must +meet certain criteria.

      +

      First, any external method of the contract that will be used for associating with off-chain payloads +must provide an extra parameter for passing the encoded batch data. This must be the last parameter +in the method signature. This convention is chosen partly to align with the Ethereum +ERC5750 standard, but should serve as a straightforward +guideline for nearly any blockchain.

      +

      Second, this method must emit a BatchPin event that can be received and parsed by FireFly. Exactly how +the data is unpacked and used to emit this event will differ for each blockchain.

      +

      Ethereum

      +
      import "@hyperledger/firefly-contracts/contracts/IBatchPin.sol";
      +
      +contract CustomPin {
      +    IBatchPin firefly;
      +
      +    function setFireFlyAddress(address addr) external {
      +        firefly = IBatchPin(addr);
      +    }
      +
      +    function sayHello(bytes calldata data) external {
      +        require(
      +            address(firefly) != address(0),
      +            "CustomPin: FireFly address has not been set"
      +        );
      +
      +        /* do custom things */
      +
      +        firefly.pinBatchData(data);
      +    }
      +}
      +
      +
        +
      • The method in question will receive packed "batch pin" data in its last method parameter (in the + form of ABI-encoded bytes). The method must invoke the pinBatchData method of the + FireFly Multiparty Contract and pass along this data payload. It is generally good practice to + trigger this as a final step before returning, after the method has performed its own logic.
      • +
      • This also implies that the contract must know the on-chain location of the + FireFly Multiparty Contract. How this is achieved is up to your individual implementation - + the example above shows exposing a method to set the address. An application may leverage the fact that + this location is available by querying the FireFly + /status API (under multiparty.contract.location as of FireFly v1.1.0). However, the application must + also consider how appropriately secure this functionality, and how to update this location if a multiparty + "network action" is used to migrate the network onto a new FireFly multiparty contract.
      • +
      +

      Fabric

      +
      package chaincode
      +
      +import (
      +    "encoding/json"
      +    "fmt"
      +
      +    "github.com/hyperledger/fabric-contract-api-go/contractapi"
      +    "github.com/hyperledger/firefly/custompin_sample/batchpin"
      +)
      +
      +type SmartContract struct {
      +    contractapi.Contract
      +}
      +
      +func (s *SmartContract) MyCustomPin(ctx contractapi.TransactionContextInterface, data string) error {
      +    event, err := batchpin.BuildEventFromString(ctx, data)
      +    if err != nil {
      +        return err
      +    }
      +    bytes, err := json.Marshal(event)
      +    if err != nil {
      +        return fmt.Errorf("failed to marshal event: %s", err)
      +    }
      +    return ctx.GetStub().SetEvent("BatchPin", bytes)
      +}
      +
      +
        +
      • The method in question will received packed "batch pin" data in its last method parameter (in the + form of a JSON-encoded string). The method must unpack this argument into a JSON object.
      • +
      • The contract must directly set a BatchPin event in the same format that is used by the + FireFly Multiparty Contract.
      • +
      +

      Initializing FireFly

      +

      Once you have a contract designed, you can initialize your environment +using the blockchain of your choice.

      +

      No special initialization arguments are needed for Ethereum.

      +

      If you are using Fabric, you must pass the --custom-pin-support argument when initializing your +FireFly stack. This will ensure that the BatchPin event listener listens to events from all chaincode +deployed on the default channel, instead of only listening to events from the pre-deployed FireFly chaincode.

      +

      Invoking the contract

      +

      You can follow the normal steps for Ethereum or Fabric to define your contract +interface and API in FireFly. When invoking the contract, you can include a message payload +alongside the other parameters.

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis/custom-pin/invoke/sayHello

      +
      {
      +  "input": {},
      +  "message": {
      +    "data": [
      +      {
      +        "value": "payload here"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Listening for events

      +

      All parties that receive the message will receive a message_confirmed on their event listeners. +This event confirms that the off-chain payload has been received (via data exchange or shared storage) and +that the blockchain transaction has been received and sequenced. It is guaranteed that these message_confirmed +events will be ordered based on the sequence of the on-chain transactions, regardless of when the off-chain +payload becomes available. This means that all parties will order messages on a given topic in exactly the +same order, allowing for deterministic but decentralized event-driven architecture.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/custom_contracts/tezos.html b/head/tutorials/custom_contracts/tezos.html deleted file mode 100644 index dcb7498de..000000000 --- a/head/tutorials/custom_contracts/tezos.html +++ /dev/null @@ -1,1524 +0,0 @@ - - - - - - - - - Tezos - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Tezos | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Work with Tezos smart contracts - - -

      - - -

      This guide describes the steps to deploy a smart contract to a Tezos blockchain and use FireFly to interact with it in order to submit transactions, query for states and listening for events.

      -

      - - - Table of contents - - -

      - - -
        -
      1. Work with Tezos smart contracts
          -
        1. Smart Contract Languages
        2. -
        3. Example smart contract
        4. -
        5. Contract deployment via SmartPy IDE
        6. -
        7. Contract deployment via HTTP API
        8. -
        9. The FireFly Interface Format
            -
          1. Schema details
              -
            1. Supported Tezos types
            2. -
            3. Internal type vs Internal schema
            4. -
            5. Options
            6. -
            -
          2. -
          3. FA2 example
          4. -
          -
        10. -
        11. Broadcast the contract interface
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        12. -
        13. Create an HTTP API for the contract
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        14. -
        15. View OpenAPI spec for the contract
        16. -
        17. Invoke the smart contract
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        18. -
        19. Query the current value
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        20. -
        -
      2. -

      -

      - - - Smart Contract Languages - - -

      - - -

      Smart contracts on Tezos can be programmed using familiar, developer-friendly languages. All features available on Tezos can be written in any of the high-level languages used to write smart contracts, such as Archetype, LIGO, and SmartPy. These languages all compile down to Michelson and you can switch between languages based on your preferences and projects.

      - -
      -

      NOTE: For this tutorial we are going to use SmartPy for building Tezos smart contracts utilizing the broadly adopted Python language.

      -
      -

      - - - Example smart contract - - -

      - - -

      First let’s look at a simple contract smart contract called SimpleStorage, which we will be using on a Tezos blockchain. Here we have one state variable called ‘storedValue’ and initialized with the value 12. During initialization the type of the variable was defined as ‘int’. You can see more at SmartPy types. And then we added a simple test, which set the storage value to 15 and checks that the value was changed as expected.

      - -
      -

      NOTE: Smart contract’s tests (marked with @sp.add_test annotation) are used to verify the validity of contract entrypoints and do not affect the state of the contract during deployment.

      -
      - -

      Here is the source for this contract:

      - -
      import smartpy as sp
      -
      -@sp.module
      -def main():
      -    # Declares a new contract
      -    class SimpleStorage(sp.Contract):
      -        # Storage. Persists in between transactions
      -        def __init__(self, value):
      -            self.data.x = value
      -
      -        # Allows the stored integer to be changed
      -        @sp.entrypoint
      -        def set(self, params):
      -            self.data.x = params.value
      -
      -        # Returns the currently stored integer
      -        @sp.onchain_view()
      -        def get(self):
      -            return self.data.x
      -
      -@sp.add_test()
      -def test():
      -    # Create a test scenario
      -    scenario = sp.test_scenario("Test simple storage", main)
      -    scenario.h1("SimpleStorage")
      -
      -    # Initialize the contract
      -    c = main.SimpleStorage(12)
      -
      -    # Run some test cases
      -    scenario += c
      -    c.set(value=15)
      -    scenario.verify(c.data.x == 15)
      -    scenario.verify(scenario.compute(c.get()) == 15)
      -
      -

      - - - Contract deployment via SmartPy IDE - - -

      - - -

      To deploy the contract, we will use SmartPy IDE.

      -
        -
      1. Open an IDE;
      2. -
      3. Paste the contract code;
      4. -
      5. Click “Run code” button;
      6. -
      7. Then you will see “Show Michelson” button, click on that;
      8. -
      9. On the opened pop-up click button “Deploy Contract”;
      10. -
      11. Choose the Ghostnet network;
      12. -
      13. Select an account, which you’re going to use to deploy the contract;
      14. -
      15. Click “Estimate Cost From RPC” button;
      16. -
      17. Click “Deploy Contract” button;
      18. -
      - -

      ContractDeployment -ContractDeployment2 -ContractDeployment3

      - -

      Here we can see that our new contract address is KT1ED4gj2xZnp8318yxa5NpvyvW15pqe4yFg. This is the address that we will reference in the rest of this guide.

      -

      - - - Contract deployment via HTTP API - - -

      - - -

      To deploy the contract we can use HTTP API: -POST http://localhost:5000/api/v1/namespaces/default/contracts/deploy

      - -
      {
      -    "contract": {
      -        "code": [
      -            {
      -                "prim": "storage",
      -                "args": [
      -                    {
      -                        "prim": "int"
      -                    }
      -                ]
      -            },
      -            {
      -                "prim": "parameter",
      -                "args": [
      -                    {
      -                        "prim": "int",
      -                        "annots": [
      -                            "%set"
      -                        ]
      -                    }
      -                ]
      -            },
      -            {
      -                "prim": "code",
      -                "args": [
      -                    [
      -                        {
      -                            "prim": "CAR"
      -                        },
      -                        {
      -                            "prim": "NIL",
      -                            "args": [
      -                                {
      -                                    "prim": "operation"
      -                                }
      -                            ]
      -                        },
      -                        {
      -                            "prim": "PAIR"
      -                        }
      -                    ]
      -                ]
      -            },
      -            {
      -                "prim": "view",
      -                "args": [
      -                    {
      -                        "string": "get"
      -                    },
      -                    {
      -                        "prim": "unit"
      -                    },
      -                    {
      -                        "prim": "int"
      -                    },
      -                    [
      -                        {
      -                            "prim": "CDR"
      -                        }
      -                    ]
      -                ]
      -            }
      -        ],
      -        "storage": {
      -            "int": "12"
      -        }
      -    }
      -}
      -
      - -

      The contract field has two fields - code with Michelson code of contract and storage with initial Storage values.

      - -

      The response of request above:

      - -
      {
      -    "id": "0c3810c7-baed-4077-9d2c-af316a4a567f",
      -    "namespace": "default",
      -    "tx": "21d03e6d-d106-48f4-aacd-688bf17b71fd",
      -    "type": "blockchain_deploy",
      -    "status": "Pending",
      -    "plugin": "tezos",
      -    "input": {
      -        "contract": {
      -            "code": [
      -                {
      -                    "args": [
      -                        {
      -                            "prim": "int"
      -                        }
      -                    ],
      -                    "prim": "storage"
      -                },
      -                {
      -                    "args": [
      -                        {
      -                            "annots": [
      -                                "%set"
      -                            ],
      -                            "prim": "int"
      -                        }
      -                    ],
      -                    "prim": "parameter"
      -                },
      -                {
      -                    "args": [
      -                        [
      -                            {
      -                                "prim": "CAR"
      -                            },
      -                            {
      -                                "args": [
      -                                    {
      -                                        "prim": "operation"
      -                                    }
      -                                ],
      -                                "prim": "NIL"
      -                            },
      -                            {
      -                                "prim": "PAIR"
      -                            }
      -                        ]
      -                    ],
      -                    "prim": "code"
      -                },
      -                {
      -                    "args": [
      -                        {
      -                            "string": "get"
      -                        },
      -                        {
      -                            "prim": "unit"
      -                        },
      -                        {
      -                            "prim": "int"
      -                        },
      -                        [
      -                            {
      -                                "prim": "CDR"
      -                            }
      -                        ]
      -                    ],
      -                    "prim": "view"
      -                }
      -            ],
      -            "storage": {
      -                "int": "12"
      -            }
      -        },
      -        "definition": null,
      -        "input": null,
      -        "key": "tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31",
      -        "options": null
      -    },
      -    "created": "2024-04-01T14:20:20.665039Z",
      -    "updated": "2024-04-01T14:20:20.665039Z"
      -}
      -
      - -

      The success result of deploy can be checked by -GET http://localhost:5000/api/v1/namespaces/default/operations/0c3810c7-baed-4077-9d2c-af316a4a567f -where 0c3810c7-baed-4077-9d2c-af316a4a567f is operation id from response above.

      - -

      The success response:

      - -
      {
      -    "id": "0c3810c7-baed-4077-9d2c-af316a4a567f",
      -    "namespace": "default",
      -    "tx": "21d03e6d-d106-48f4-aacd-688bf17b71fd",
      -    "type": "blockchain_deploy",
      -    "status": "Succeeded",
      -    "plugin": "tezos",
      -    "input": {
      -        "contract": {
      -            "code": [
      -                {
      -                    "args": [
      -                        {
      -                            "prim": "int"
      -                        }
      -                    ],
      -                    "prim": "storage"
      -                },
      -                {
      -                    "args": [
      -                        {
      -                            "annots": [
      -                                "%set"
      -                            ],
      -                            "prim": "int"
      -                        }
      -                    ],
      -                    "prim": "parameter"
      -                },
      -                {
      -                    "args": [
      -                        [
      -                            {
      -                                "prim": "CAR"
      -                            },
      -                            {
      -                                "args": [
      -                                    {
      -                                        "prim": "operation"
      -                                    }
      -                                ],
      -                                "prim": "NIL"
      -                            },
      -                            {
      -                                "prim": "PAIR"
      -                            }
      -                        ]
      -                    ],
      -                    "prim": "code"
      -                },
      -                {
      -                    "args": [
      -                        {
      -                            "string": "get"
      -                        },
      -                        {
      -                            "prim": "unit"
      -                        },
      -                        {
      -                            "prim": "int"
      -                        },
      -                        [
      -                            {
      -                                "prim": "CDR"
      -                            }
      -                        ]
      -                    ],
      -                    "prim": "view"
      -                }
      -            ],
      -            "storage": {
      -                "int": "12"
      -            }
      -        },
      -        "definition": null,
      -        "input": null,
      -        "key": "tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31",
      -        "options": null
      -    },
      -    "output": {
      -        "headers": {
      -            "requestId": "default:0c3810c7-baed-4077-9d2c-af316a4a567f",
      -            "type": "TransactionSuccess"
      -        },
      -        "protocolId": "ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH",
      -        "transactionHash": "ootDut4xxR2yeYz6JuySuyTVZnXgda2t8SYrk3iuJpm531TZuCj"
      -    },
      -    "created": "2024-04-01T14:20:20.665039Z",
      -    "updated": "2024-04-01T14:20:20.665039Z",
      -    "detail": {
      -        "created": "2024-04-01T14:20:21.928976Z",
      -        "firstSubmit": "2024-04-01T14:20:22.714493Z",
      -        "from": "tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31",
      -        "gasPrice": "0",
      -        "historySummary": [
      -            {
      -                "count": 1,
      -                "firstOccurrence": "2024-04-01T14:20:21.930764Z",
      -                "lastOccurrence": "2024-04-01T14:20:21.930765Z",
      -                "subStatus": "Received"
      -            },
      -            {
      -                "action": "AssignNonce",
      -                "count": 2,
      -                "firstOccurrence": "2024-04-01T14:20:21.930767Z",
      -                "lastOccurrence": "2024-04-01T14:20:22.714772Z"
      -            },
      -            {
      -                "action": "RetrieveGasPrice",
      -                "count": 1,
      -                "firstOccurrence": "2024-04-01T14:20:22.714774Z",
      -                "lastOccurrence": "2024-04-01T14:20:22.714774Z"
      -            },
      -            {
      -                "action": "SubmitTransaction",
      -                "count": 1,
      -                "firstOccurrence": "2024-04-01T14:20:22.715269Z",
      -                "lastOccurrence": "2024-04-01T14:20:22.715269Z"
      -            },
      -            {
      -                "action": "ReceiveReceipt",
      -                "count": 1,
      -                "firstOccurrence": "2024-04-01T14:20:29.244396Z",
      -                "lastOccurrence": "2024-04-01T14:20:29.244396Z"
      -            },
      -            {
      -                "action": "Confirm",
      -                "count": 1,
      -                "firstOccurrence": "2024-04-01T14:20:29.244762Z",
      -                "lastOccurrence": "2024-04-01T14:20:29.244762Z"
      -            }
      -        ],
      -        "id": "default:0c3810c7-baed-4077-9d2c-af316a4a567f",
      -        "lastSubmit": "2024-04-01T14:20:22.714493Z",
      -        "nonce": "23094946",
      -        "policyInfo": {},
      -        "receipt": {
      -            "blockHash": "BLvWL4t8GbaufGcQwiv3hHCsvgD6qwXfAXofyvojSMoFeGMXMR1",
      -            "blockNumber": "5868268",
      -            "contractLocation": {
      -                "address": "KT1CkTPsgTUQxR3CCpvtrcuQFV5Jf7cJgHFg"
      -            },
      -            "extraInfo": [
      -                {
      -                    "consumedGas": "584",
      -                    "contractAddress": "KT1CkTPsgTUQxR3CCpvtrcuQFV5Jf7cJgHFg",
      -                    "counter": null,
      -                    "errorMessage": null,
      -                    "fee": null,
      -                    "from": null,
      -                    "gasLimit": null,
      -                    "paidStorageSizeDiff": "75",
      -                    "status": "applied",
      -                    "storage": null,
      -                    "storageLimit": null,
      -                    "storageSize": "75",
      -                    "to": null
      -                }
      -            ],
      -            "protocolId": "ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH",
      -            "success": true,
      -            "transactionIndex": "0"
      -        },
      -        "sequenceId": "018e9a08-582a-01ec-9209-9d79ef742c9b",
      -        "status": "Succeeded",
      -        "transactionData": "c37274b662d68da8fdae2a02ad6c460a79933c70c6fa7500dc98a9ade6822f026d00673bb6e6298063f97940953de23d441ab20bf757f602a3cd810bad05b003000000000041020000003c0500045b00000004257365740501035b050202000000080316053d036d03420991000000130100000003676574036c035b020000000203170000000000000002000c",
      -        "transactionHash": "ootDut4xxR2yeYz6JuySuyTVZnXgda2t8SYrk3iuJpm531TZuCj",
      -        "transactionHeaders": {
      -            "from": "tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31",
      -            "nonce": "23094946"
      -        },
      -        "updated": "2024-04-01T14:20:29.245172Z"
      -    }
      -}
      -
      -

      - - - The FireFly Interface Format - - -

      - - -

      As we know from the previous section - smart contracts on the Tezos blockchain are using the domain-specific, stack-based programming language called Michelson. It is a key component of the Tezos platform and plays a fundamental role in defining the behavior of smart contracts and facilitating their execution. -This language is very efficient but also a bit tricky and challenging for learning, so in order to teach FireFly how to interact with the smart contract, we will be using FireFly Interface (FFI) to define the contract inteface which later will be encoded to Michelson.

      -

      - - - Schema details - - -

      - - -

      The details field is used to encapsulate blockchain specific type information about a specific field. (More details at schema details)

      -

      - - - Supported Tezos types - - -

      - - -
        -
      • nat
      • -
      • integer
      • -
      • string
      • -
      • address
      • -
      • bytes
      • -
      • boolean
      • -
      • variant
      • -
      • list
      • -
      • struct
      • -
      • map
      • -
      -

      - - - Internal type vs Internal schema - - -

      - - -

      internalType is a field which is used to describe tezos primitive types

      - -
      {
      -    "details": {
      -        "type": "address",
      -        "internalType": "address"
      -    }
      -}
      -
      - -

      internalSchema in turn is used to describe more complex tezos types as list, struct or variant

      - -

      Struct example:

      - -
      {
      -    "details": {
      -        "type": "schema",
      -        "internalSchema": {
      -            "type": "struct",
      -            "args": [
      -                {
      -                    "name": "metadata",
      -                    "type": "bytes"
      -                },
      -                {
      -                    "name": "token_id",
      -                    "type": "nat"
      -                }
      -            ]
      -        }
      -    }
      -}
      -
      - -

      List example:

      - -
      {
      -    "details": {
      -        "type": "schema",
      -        "internalSchema": {
      -            "type": "struct",
      -            "args": [
      -                {
      -                    "name": "metadata",
      -                    "type": "bytes"
      -                },
      -                {
      -                    "name": "token_id",
      -                    "type": "nat"
      -                }
      -            ]
      -        }
      -    }
      -}
      -
      - -

      Variant example:

      - -
      {
      -    "details": {
      -        "type": "schema",
      -        "internalSchema": {
      -            "type": "variant",
      -            "variants": [
      -                "add_operator",
      -                "remove_operator"
      -            ],
      -            "args": [
      -                {
      -                    "type": "struct",
      -                    "args": [
      -                        {
      -                            "name": "owner",
      -                            "type": "address"
      -                        },
      -                        {
      -                            "name": "operator",
      -                            "type": "address"
      -                        },
      -                        {
      -                            "name": "token_id",
      -                            "type": "nat"
      -                        }
      -                    ]
      -                }
      -            ]
      -        }
      -    }
      -}
      -
      - -

      Map example:

      - -
      {
      -    "details": {
      -        "type": "schema",
      -        "internalSchema": {
      -            "type": "map",
      -            "args": [
      -                {
      -                    "name": "key",
      -                    "type": "integer"
      -                },
      -                {
      -                    "name": "value",
      -                    "type": "string"
      -                }
      -            ]
      -        }
      -    }
      -}
      -
      -

      - - - Options - - -

      - - -

      Option type is used to indicate a value as optional (see more at smartpy options)

      - -
      {
      -    "details": {
      -        "type": "string",
      -        "internalType": "string",
      -        "kind": "option"
      -    }
      -}
      -
      -

      - - - FA2 example - - -

      - - -

      The following FFI sample demonstrates the specification for the widely used FA2 (analogue of ERC721 for EVM) smart contract:

      - -
      {
      -    "namespace": "default",
      -    "name": "fa2",
      -    "version": "v1.0.0",
      -    "description": "",
      -    "methods": [
      -        {
      -            "name": "burn",
      -            "pathname": "",
      -            "description": "",
      -            "params": [
      -                {
      -                    "name": "token_ids",
      -                    "schema": {
      -                        "type": "array",
      -                        "details": {
      -                            "type": "nat",
      -                            "internalType": "nat"
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": []
      -        },
      -        {
      -            "name": "destroy",
      -            "pathname": "",
      -            "description": "",
      -            "params": [],
      -            "returns": []
      -        },
      -        {
      -            "name": "mint",
      -            "pathname": "",
      -            "description": "",
      -            "params": [
      -                {
      -                    "name": "owner",
      -                    "schema": {
      -                        "type": "string",
      -                        "details": {
      -                            "type": "address",
      -                            "internalType": "address"
      -                        }
      -                    }
      -                },
      -                {
      -                    "name": "requests",
      -                    "schema": {
      -                        "type": "array",
      -                        "details": {
      -                            "type": "schema",
      -                            "internalSchema": {
      -                                "type": "struct",
      -                                "args": [
      -                                    {
      -                                        "name": "metadata",
      -                                        "type": "bytes"
      -                                    },
      -                                    {
      -                                        "name": "token_id",
      -                                        "type": "nat"
      -                                    }
      -                                ]
      -                            }
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": []
      -        },
      -        {
      -            "name": "pause",
      -            "pathname": "",
      -            "description": "",
      -            "params": [
      -                {
      -                    "name": "pause",
      -                    "schema": {
      -                        "type": "boolean",
      -                        "details": {
      -                            "type": "boolean",
      -                            "internalType": "boolean"
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": []
      -        },
      -        {
      -            "name": "select",
      -            "pathname": "",
      -            "description": "",
      -            "params": [
      -                {
      -                    "name": "batch",
      -                    "schema": {
      -                        "type": "array",
      -                        "details": {
      -                            "type": "schema",
      -                            "internalSchema": {
      -                                "type": "struct",
      -                                "args": [
      -                                    {
      -                                        "name": "token_id",
      -                                        "type": "nat"
      -                                    },
      -                                    {
      -                                        "name": "recipient",
      -                                        "type": "address"
      -                                    },
      -                                    {
      -                                        "name": "token_id_start",
      -                                        "type": "nat"
      -                                    },
      -                                    {
      -                                        "name": "token_id_end",
      -                                        "type": "nat"
      -                                    }
      -                                ]
      -                            }
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": []
      -        },
      -        {
      -            "name": "transfer",
      -            "pathname": "",
      -            "description": "",
      -            "params": [
      -                {
      -                    "name": "batch",
      -                    "schema": {
      -                        "type": "array",
      -                        "details": {
      -                            "type": "schema",
      -                            "internalSchema": {
      -                                "type": "struct",
      -                                "args": [
      -                                    {
      -                                        "name": "from_",
      -                                        "type": "address"
      -                                    },
      -                                    {
      -                                        "name": "txs",
      -                                        "type": "list",
      -                                        "args": [
      -                                            {
      -                                                "type": "struct",
      -                                                "args": [
      -                                                    {
      -                                                        "name": "to_",
      -                                                        "type": "address"
      -                                                    },
      -                                                    {
      -                                                        "name": "token_id",
      -                                                        "type": "nat"
      -                                                    },
      -                                                    {
      -                                                        "name": "amount",
      -                                                        "type": "nat"
      -                                                    }
      -                                                ]
      -                                            }
      -                                        ]
      -                                    }
      -                                ]
      -                            }
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": []
      -        },
      -        {
      -            "name": "update_admin",
      -            "pathname": "",
      -            "description": "",
      -            "params": [
      -                {
      -                    "name": "admin",
      -                    "schema": {
      -                        "type": "string",
      -                        "details": {
      -                            "type": "address",
      -                            "internalType": "address"
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": []
      -        },
      -        {
      -            "name": "update_operators",
      -            "pathname": "",
      -            "description": "",
      -            "params": [
      -                {
      -                    "name": "requests",
      -                    "schema": {
      -                        "type": "array",
      -                        "details": {
      -                            "type": "schema",
      -                            "internalSchema": {
      -                                "type": "variant",
      -                                "variants": [
      -                                    "add_operator",
      -                                    "remove_operator"
      -                                ],
      -                                "args": [
      -                                    {
      -                                        "type": "struct",
      -                                        "args": [
      -                                            {
      -                                                "name": "owner",
      -                                                "type": "address"
      -                                            },
      -                                            {
      -                                                "name": "operator",
      -                                                "type": "address"
      -                                            },
      -                                            {
      -                                                "name": "token_id",
      -                                                "type": "nat"
      -                                            }
      -                                        ]
      -                                    }
      -                                ]
      -                            }
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": []
      -        }
      -    ],
      -    "events": []
      -}
      -
      -

      - - - Broadcast the contract interface - - -

      - - -

      Now that we have a FireFly Interface representation of our smart contract, we want to broadcast that to the entire network. This broadcast will be pinned to the blockchain, so we can always refer to this specific name and version, and everyone in the network will know exactly which contract interface we are talking about.

      - -

      We will use the FFI JSON constructed above and POST that to the /contracts/interfaces API endpoint.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces

      - -
      {
      -    "namespace": "default",
      -    "name": "simplestorage",
      -    "version": "v1.0.0",
      -    "description": "",
      -    "methods": [
      -        {
      -            "name": "set",
      -            "pathname": "",
      -            "description": "",
      -            "params": [
      -                {
      -                    "name": "newValue",
      -                    "schema": {
      -                        "type": "integer",
      -                        "details": {
      -                            "type": "integer",
      -                            "internalType": "integer"
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": []
      -        },
      -        {
      -            "name": "get",
      -            "pathname": "",
      -            "description": "",
      -            "params": [],
      -            "returns": []
      -        }
      -    ],
      -    "events": []
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -    "id": "f9e34787-e634-46cd-af47-b52c537404ff",
      -    "namespace": "default",
      -    "name": "simplestorage",
      -    "description": "",
      -    "version": "v1.0.0",
      -    "methods": [
      -        {
      -            "id": "78f13a7f-7b85-47c3-bf51-346a9858c027",
      -            "interface": "f9e34787-e634-46cd-af47-b52c537404ff",
      -            "name": "set",
      -            "namespace": "default",
      -            "pathname": "set",
      -            "description": "",
      -            "params": [
      -                {
      -                    "name": "newValue",
      -                    "schema": {
      -                        "type": "integer",
      -                        "details": {
      -                            "type": "integer",
      -                            "internalType": "integer"
      -                        }
      -                    }
      -                }
      -            ],
      -            "returns": []
      -        },
      -        {
      -            "id": "ee864e25-c3f7-42d3-aefd-a82f753e9002",
      -            "interface": "f9e34787-e634-46cd-af47-b52c537404ff",
      -            "name": "get",
      -            "namespace": "tezos",
      -            "pathname": "get",
      -            "description": "",
      -            "params": [],
      -            "returns": []
      -        }
      -    ]
      -}
      -
      - -
      -

      NOTE: We can broadcast this contract interface conveniently with the help of FireFly Sandbox running at http://127.0.0.1:5108

      -
        -
      • Go to the Contracts Section
      • -
      • Click on Define a Contract Interface
      • -
      • Select FFI - FireFly Interface in the Interface Fromat dropdown
      • -
      • Copy the FFI JSON crafted by you into the Schema Field
      • -
      • Click on Run
      • -
      -
      -

      - - - Create an HTTP API for the contract - - -

      - - -

      Now comes the fun part where we see some of the powerful, developer-friendly features of FireFly. The next thing we’re going to do is tell FireFly to build an HTTP API for this smart contract, complete with an OpenAPI Specification and Swagger UI. As part of this, we’ll also tell FireFly where the contract is on the blockchain.

      - -

      Like the interface broadcast above, this will also generate a broadcast which will be pinned to the blockchain so all the members of the network will be aware of and able to interact with this API.

      - -

      We need to copy the id field we got in the response from the previous step to the interface.id field in the request body below. We will also pick a name that will be part of the URL for our HTTP API, so be sure to pick a name that is URL friendly. In this case we’ll call it simple-storage. Lastly, in the location.address field, we’re telling FireFly where an instance of the contract is deployed on-chain.

      - -
      -

      NOTE: The location field is optional here, but if it is omitted, it will be required in every request to invoke or query the contract. This can be useful if you have multiple instances of the same contract deployed to different addresses.

      -
      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/apis

      - -
      {
      -  "name": "simple-storage",
      -  "interface": {
      -    "id": "f9e34787-e634-46cd-af47-b52c537404ff"
      -  },
      -  "location": {
      -    "address": "KT1ED4gj2xZnp8318yxa5NpvyvW15pqe4yFg"
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "af09de97-741d-4f61-8d30-4db5e7460f76",
      -  "namespace": "default",
      -  "interface": {
      -    "id": "f9e34787-e634-46cd-af47-b52c537404ff"
      -  },
      -  "location": {
      -    "address": "KT1ED4gj2xZnp8318yxa5NpvyvW15pqe4yFg"
      -  },
      -  "name": "simple-storage",
      -  "urls": {
      -    "openapi": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api/swagger.json",
      -    "ui": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api"
      -  }
      -}
      -
      -

      - - - View OpenAPI spec for the contract - - -

      - - -

      You’ll notice in the response body that there are a couple of URLs near the bottom. If you navigate to the one labeled ui in your browser, you should see the Swagger UI for your smart contract.

      - -

      Swagger UI

      -

      - - - Invoke the smart contract - - -

      - - -

      Now that we’ve got everything set up, it’s time to use our smart contract! We’re going to make a POST request to the invoke/set endpoint to set the integer value on-chain. Let’s set it to the value of 3 right now.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/invoke/set

      - -
      {
      -  "input": {
      -    "newValue": 3
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "87c7ee1b-33d1-46e2-b3f5-8566c14367cf",
      -  "type": "blockchain_invoke",
      -  "status": "Pending",
      -  "..."
      -}
      -
      - -

      You’ll notice that we got an ID back with status Pending, and that’s expected due to the asynchronous programming model of working with smart contracts in FireFly. To see what the value is now, we can query the smart contract.

      -

      - - - Query the current value - - -

      - - -

      To make a read-only request to the blockchain to check the current value of the stored integer, we can make a POST to the query/get endpoint.

      -

      - - - Request - - -

      - - -

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/query/get

      - -
      {}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "3"
      -}
      -
      - -
      -

      NOTE: Some contracts may have queries that require input parameters. That’s why the query endpoint is a POST, rather than a GET so that parameters can be passed as JSON in the request body. This particular function does not have any parameters, so we just pass an empty JSON object.

      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/custom_contracts/tezos/index.html b/head/tutorials/custom_contracts/tezos/index.html new file mode 100644 index 000000000..6a2a0e6e8 --- /dev/null +++ b/head/tutorials/custom_contracts/tezos/index.html @@ -0,0 +1,4755 @@ + + + + + + + + + + + + + + + + + + + + + + + Tezos - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Work with Tezos smart contracts

      +

      This guide describes the steps to deploy a smart contract to a Tezos blockchain and use FireFly to interact with it in order to submit transactions, query for states and listening for events.

      +

      Smart Contract Languages

      +

      Smart contracts on Tezos can be programmed using familiar, developer-friendly languages. All features available on Tezos can be written in any of the high-level languages used to write smart contracts, such as Archetype, LIGO, and SmartPy. These languages all compile down to Michelson and you can switch between languages based on your preferences and projects.

      +
      +

      NOTE: For this tutorial we are going to use SmartPy for building Tezos smart contracts utilizing the broadly adopted Python language.

      +
      +

      Example smart contract

      +

      First let's look at a simple contract smart contract called SimpleStorage, which we will be using on a Tezos blockchain. Here we have one state variable called 'storedValue' and initialized with the value 12. During initialization the type of the variable was defined as 'int'. You can see more at SmartPy types. And then we added a simple test, which set the storage value to 15 and checks that the value was changed as expected.

      +
      +

      NOTE: Smart contract's tests (marked with @sp.add_test annotation) are used to verify the validity of contract entrypoints and do not affect the state of the contract during deployment.

      +
      +

      Here is the source for this contract:

      +
      import smartpy as sp
      +
      +@sp.module
      +def main():
      +    # Declares a new contract
      +    class SimpleStorage(sp.Contract):
      +        # Storage. Persists in between transactions
      +        def __init__(self, value):
      +            self.data.x = value
      +
      +        # Allows the stored integer to be changed
      +        @sp.entrypoint
      +        def set(self, params):
      +            self.data.x = params.value
      +
      +        # Returns the currently stored integer
      +        @sp.onchain_view()
      +        def get(self):
      +            return self.data.x
      +
      +@sp.add_test()
      +def test():
      +    # Create a test scenario
      +    scenario = sp.test_scenario("Test simple storage", main)
      +    scenario.h1("SimpleStorage")
      +
      +    # Initialize the contract
      +    c = main.SimpleStorage(12)
      +
      +    # Run some test cases
      +    scenario += c
      +    c.set(value=15)
      +    scenario.verify(c.data.x == 15)
      +    scenario.verify(scenario.compute(c.get()) == 15)
      +
      +

      Contract deployment via SmartPy IDE

      +

      To deploy the contract, we will use SmartPy IDE.

      +
        +
      1. Open an IDE;
      2. +
      3. Paste the contract code;
      4. +
      5. Click "Run code" button;
      6. +
      7. Then you will see "Show Michelson" button, click on that;
      8. +
      9. On the opened pop-up click button "Deploy Contract";
      10. +
      11. Choose the Ghostnet network;
      12. +
      13. Select an account, which you're going to use to deploy the contract;
      14. +
      15. Click "Estimate Cost From RPC" button;
      16. +
      17. Click "Deploy Contract" button;
      18. +
      +

      ContractDeployment +ContractDeployment2 +ContractDeployment3

      +

      Here we can see that our new contract address is KT1ED4gj2xZnp8318yxa5NpvyvW15pqe4yFg. This is the address that we will reference in the rest of this guide.

      +

      Contract deployment via HTTP API

      +

      To deploy the contract we can use HTTP API: +POST http://localhost:5000/api/v1/namespaces/default/contracts/deploy

      +
      {
      +  "contract": {
      +    "code": [
      +      {
      +        "prim": "storage",
      +        "args": [
      +          {
      +            "prim": "int"
      +          }
      +        ]
      +      },
      +      {
      +        "prim": "parameter",
      +        "args": [
      +          {
      +            "prim": "int",
      +            "annots": ["%set"]
      +          }
      +        ]
      +      },
      +      {
      +        "prim": "code",
      +        "args": [
      +          [
      +            {
      +              "prim": "CAR"
      +            },
      +            {
      +              "prim": "NIL",
      +              "args": [
      +                {
      +                  "prim": "operation"
      +                }
      +              ]
      +            },
      +            {
      +              "prim": "PAIR"
      +            }
      +          ]
      +        ]
      +      },
      +      {
      +        "prim": "view",
      +        "args": [
      +          {
      +            "string": "get"
      +          },
      +          {
      +            "prim": "unit"
      +          },
      +          {
      +            "prim": "int"
      +          },
      +          [
      +            {
      +              "prim": "CDR"
      +            }
      +          ]
      +        ]
      +      }
      +    ],
      +    "storage": {
      +      "int": "12"
      +    }
      +  }
      +}
      +
      +

      The contract field has two fields - code with Michelson code of contract and storage with initial Storage values.

      +

      The response of request above:

      +
      {
      +  "id": "0c3810c7-baed-4077-9d2c-af316a4a567f",
      +  "namespace": "default",
      +  "tx": "21d03e6d-d106-48f4-aacd-688bf17b71fd",
      +  "type": "blockchain_deploy",
      +  "status": "Pending",
      +  "plugin": "tezos",
      +  "input": {
      +    "contract": {
      +      "code": [
      +        {
      +          "args": [
      +            {
      +              "prim": "int"
      +            }
      +          ],
      +          "prim": "storage"
      +        },
      +        {
      +          "args": [
      +            {
      +              "annots": ["%set"],
      +              "prim": "int"
      +            }
      +          ],
      +          "prim": "parameter"
      +        },
      +        {
      +          "args": [
      +            [
      +              {
      +                "prim": "CAR"
      +              },
      +              {
      +                "args": [
      +                  {
      +                    "prim": "operation"
      +                  }
      +                ],
      +                "prim": "NIL"
      +              },
      +              {
      +                "prim": "PAIR"
      +              }
      +            ]
      +          ],
      +          "prim": "code"
      +        },
      +        {
      +          "args": [
      +            {
      +              "string": "get"
      +            },
      +            {
      +              "prim": "unit"
      +            },
      +            {
      +              "prim": "int"
      +            },
      +            [
      +              {
      +                "prim": "CDR"
      +              }
      +            ]
      +          ],
      +          "prim": "view"
      +        }
      +      ],
      +      "storage": {
      +        "int": "12"
      +      }
      +    },
      +    "definition": null,
      +    "input": null,
      +    "key": "tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31",
      +    "options": null
      +  },
      +  "created": "2024-04-01T14:20:20.665039Z",
      +  "updated": "2024-04-01T14:20:20.665039Z"
      +}
      +
      +

      The success result of deploy can be checked by +GET http://localhost:5000/api/v1/namespaces/default/operations/0c3810c7-baed-4077-9d2c-af316a4a567f +where 0c3810c7-baed-4077-9d2c-af316a4a567f is operation id from response above.

      +

      The success response:

      +
      {
      +  "id": "0c3810c7-baed-4077-9d2c-af316a4a567f",
      +  "namespace": "default",
      +  "tx": "21d03e6d-d106-48f4-aacd-688bf17b71fd",
      +  "type": "blockchain_deploy",
      +  "status": "Succeeded",
      +  "plugin": "tezos",
      +  "input": {
      +    "contract": {
      +      "code": [
      +        {
      +          "args": [
      +            {
      +              "prim": "int"
      +            }
      +          ],
      +          "prim": "storage"
      +        },
      +        {
      +          "args": [
      +            {
      +              "annots": ["%set"],
      +              "prim": "int"
      +            }
      +          ],
      +          "prim": "parameter"
      +        },
      +        {
      +          "args": [
      +            [
      +              {
      +                "prim": "CAR"
      +              },
      +              {
      +                "args": [
      +                  {
      +                    "prim": "operation"
      +                  }
      +                ],
      +                "prim": "NIL"
      +              },
      +              {
      +                "prim": "PAIR"
      +              }
      +            ]
      +          ],
      +          "prim": "code"
      +        },
      +        {
      +          "args": [
      +            {
      +              "string": "get"
      +            },
      +            {
      +              "prim": "unit"
      +            },
      +            {
      +              "prim": "int"
      +            },
      +            [
      +              {
      +                "prim": "CDR"
      +              }
      +            ]
      +          ],
      +          "prim": "view"
      +        }
      +      ],
      +      "storage": {
      +        "int": "12"
      +      }
      +    },
      +    "definition": null,
      +    "input": null,
      +    "key": "tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31",
      +    "options": null
      +  },
      +  "output": {
      +    "headers": {
      +      "requestId": "default:0c3810c7-baed-4077-9d2c-af316a4a567f",
      +      "type": "TransactionSuccess"
      +    },
      +    "protocolId": "ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH",
      +    "transactionHash": "ootDut4xxR2yeYz6JuySuyTVZnXgda2t8SYrk3iuJpm531TZuCj"
      +  },
      +  "created": "2024-04-01T14:20:20.665039Z",
      +  "updated": "2024-04-01T14:20:20.665039Z",
      +  "detail": {
      +    "created": "2024-04-01T14:20:21.928976Z",
      +    "firstSubmit": "2024-04-01T14:20:22.714493Z",
      +    "from": "tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31",
      +    "gasPrice": "0",
      +    "historySummary": [
      +      {
      +        "count": 1,
      +        "firstOccurrence": "2024-04-01T14:20:21.930764Z",
      +        "lastOccurrence": "2024-04-01T14:20:21.930765Z",
      +        "subStatus": "Received"
      +      },
      +      {
      +        "action": "AssignNonce",
      +        "count": 2,
      +        "firstOccurrence": "2024-04-01T14:20:21.930767Z",
      +        "lastOccurrence": "2024-04-01T14:20:22.714772Z"
      +      },
      +      {
      +        "action": "RetrieveGasPrice",
      +        "count": 1,
      +        "firstOccurrence": "2024-04-01T14:20:22.714774Z",
      +        "lastOccurrence": "2024-04-01T14:20:22.714774Z"
      +      },
      +      {
      +        "action": "SubmitTransaction",
      +        "count": 1,
      +        "firstOccurrence": "2024-04-01T14:20:22.715269Z",
      +        "lastOccurrence": "2024-04-01T14:20:22.715269Z"
      +      },
      +      {
      +        "action": "ReceiveReceipt",
      +        "count": 1,
      +        "firstOccurrence": "2024-04-01T14:20:29.244396Z",
      +        "lastOccurrence": "2024-04-01T14:20:29.244396Z"
      +      },
      +      {
      +        "action": "Confirm",
      +        "count": 1,
      +        "firstOccurrence": "2024-04-01T14:20:29.244762Z",
      +        "lastOccurrence": "2024-04-01T14:20:29.244762Z"
      +      }
      +    ],
      +    "id": "default:0c3810c7-baed-4077-9d2c-af316a4a567f",
      +    "lastSubmit": "2024-04-01T14:20:22.714493Z",
      +    "nonce": "23094946",
      +    "policyInfo": {},
      +    "receipt": {
      +      "blockHash": "BLvWL4t8GbaufGcQwiv3hHCsvgD6qwXfAXofyvojSMoFeGMXMR1",
      +      "blockNumber": "5868268",
      +      "contractLocation": {
      +        "address": "KT1CkTPsgTUQxR3CCpvtrcuQFV5Jf7cJgHFg"
      +      },
      +      "extraInfo": [
      +        {
      +          "consumedGas": "584",
      +          "contractAddress": "KT1CkTPsgTUQxR3CCpvtrcuQFV5Jf7cJgHFg",
      +          "counter": null,
      +          "errorMessage": null,
      +          "fee": null,
      +          "from": null,
      +          "gasLimit": null,
      +          "paidStorageSizeDiff": "75",
      +          "status": "applied",
      +          "storage": null,
      +          "storageLimit": null,
      +          "storageSize": "75",
      +          "to": null
      +        }
      +      ],
      +      "protocolId": "ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH",
      +      "success": true,
      +      "transactionIndex": "0"
      +    },
      +    "sequenceId": "018e9a08-582a-01ec-9209-9d79ef742c9b",
      +    "status": "Succeeded",
      +    "transactionData": "c37274b662d68da8fdae2a02ad6c460a79933c70c6fa7500dc98a9ade6822f026d00673bb6e6298063f97940953de23d441ab20bf757f602a3cd810bad05b003000000000041020000003c0500045b00000004257365740501035b050202000000080316053d036d03420991000000130100000003676574036c035b020000000203170000000000000002000c",
      +    "transactionHash": "ootDut4xxR2yeYz6JuySuyTVZnXgda2t8SYrk3iuJpm531TZuCj",
      +    "transactionHeaders": {
      +      "from": "tz1V3spuktTP2wuEZP7D2hJruLZ5uJTuJk31",
      +      "nonce": "23094946"
      +    },
      +    "updated": "2024-04-01T14:20:29.245172Z"
      +  }
      +}
      +
      +

      The FireFly Interface Format

      +

      As we know from the previous section - smart contracts on the Tezos blockchain are using the domain-specific, stack-based programming language called Michelson. It is a key component of the Tezos platform and plays a fundamental role in defining the behavior of smart contracts and facilitating their execution. +This language is very efficient but also a bit tricky and challenging for learning, so in order to teach FireFly how to interact with the smart contract, we will be using FireFly Interface (FFI) to define the contract inteface which later will be encoded to Michelson.

      +

      Schema details

      +

      The details field is used to encapsulate blockchain specific type information about a specific field. (More details at schema details)

      +

      Supported Tezos types

      +
        +
      • nat
      • +
      • integer
      • +
      • string
      • +
      • address
      • +
      • bytes
      • +
      • boolean
      • +
      • variant
      • +
      • list
      • +
      • struct
      • +
      • map
      • +
      +

      Internal type vs Internal schema

      +

      internalType is a field which is used to describe tezos primitive types

      +
      {
      +  "details": {
      +    "type": "address",
      +    "internalType": "address"
      +  }
      +}
      +
      +

      internalSchema in turn is used to describe more complex tezos types as list, struct or variant

      +

      Struct example:

      +
      {
      +  "details": {
      +    "type": "schema",
      +    "internalSchema": {
      +      "type": "struct",
      +      "args": [
      +        {
      +          "name": "metadata",
      +          "type": "bytes"
      +        },
      +        {
      +          "name": "token_id",
      +          "type": "nat"
      +        }
      +      ]
      +    }
      +  }
      +}
      +
      +

      List example:

      +
      {
      +  "details": {
      +    "type": "schema",
      +    "internalSchema": {
      +      "type": "struct",
      +      "args": [
      +        {
      +          "name": "metadata",
      +          "type": "bytes"
      +        },
      +        {
      +          "name": "token_id",
      +          "type": "nat"
      +        }
      +      ]
      +    }
      +  }
      +}
      +
      +

      Variant example:

      +
      {
      +  "details": {
      +    "type": "schema",
      +    "internalSchema": {
      +      "type": "variant",
      +      "variants": ["add_operator", "remove_operator"],
      +      "args": [
      +        {
      +          "type": "struct",
      +          "args": [
      +            {
      +              "name": "owner",
      +              "type": "address"
      +            },
      +            {
      +              "name": "operator",
      +              "type": "address"
      +            },
      +            {
      +              "name": "token_id",
      +              "type": "nat"
      +            }
      +          ]
      +        }
      +      ]
      +    }
      +  }
      +}
      +
      +

      Map example:

      +
      {
      +  "details": {
      +    "type": "schema",
      +    "internalSchema": {
      +      "type": "map",
      +      "args": [
      +        {
      +          "name": "key",
      +          "type": "integer"
      +        },
      +        {
      +          "name": "value",
      +          "type": "string"
      +        }
      +      ]
      +    }
      +  }
      +}
      +
      +

      Options

      +

      Option type is used to indicate a value as optional (see more at smartpy options)

      +
      {
      +  "details": {
      +    "type": "string",
      +    "internalType": "string",
      +    "kind": "option"
      +  }
      +}
      +
      +

      FA2 example

      +

      The following FFI sample demonstrates the specification for the widely used FA2 (analogue of ERC721 for EVM) smart contract:

      +
      {
      +  "namespace": "default",
      +  "name": "fa2",
      +  "version": "v1.0.0",
      +  "description": "",
      +  "methods": [
      +    {
      +      "name": "burn",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "token_ids",
      +          "schema": {
      +            "type": "array",
      +            "details": {
      +              "type": "nat",
      +              "internalType": "nat"
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    },
      +    {
      +      "name": "destroy",
      +      "pathname": "",
      +      "description": "",
      +      "params": [],
      +      "returns": []
      +    },
      +    {
      +      "name": "mint",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "owner",
      +          "schema": {
      +            "type": "string",
      +            "details": {
      +              "type": "address",
      +              "internalType": "address"
      +            }
      +          }
      +        },
      +        {
      +          "name": "requests",
      +          "schema": {
      +            "type": "array",
      +            "details": {
      +              "type": "schema",
      +              "internalSchema": {
      +                "type": "struct",
      +                "args": [
      +                  {
      +                    "name": "metadata",
      +                    "type": "bytes"
      +                  },
      +                  {
      +                    "name": "token_id",
      +                    "type": "nat"
      +                  }
      +                ]
      +              }
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    },
      +    {
      +      "name": "pause",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "pause",
      +          "schema": {
      +            "type": "boolean",
      +            "details": {
      +              "type": "boolean",
      +              "internalType": "boolean"
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    },
      +    {
      +      "name": "select",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "batch",
      +          "schema": {
      +            "type": "array",
      +            "details": {
      +              "type": "schema",
      +              "internalSchema": {
      +                "type": "struct",
      +                "args": [
      +                  {
      +                    "name": "token_id",
      +                    "type": "nat"
      +                  },
      +                  {
      +                    "name": "recipient",
      +                    "type": "address"
      +                  },
      +                  {
      +                    "name": "token_id_start",
      +                    "type": "nat"
      +                  },
      +                  {
      +                    "name": "token_id_end",
      +                    "type": "nat"
      +                  }
      +                ]
      +              }
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    },
      +    {
      +      "name": "transfer",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "batch",
      +          "schema": {
      +            "type": "array",
      +            "details": {
      +              "type": "schema",
      +              "internalSchema": {
      +                "type": "struct",
      +                "args": [
      +                  {
      +                    "name": "from_",
      +                    "type": "address"
      +                  },
      +                  {
      +                    "name": "txs",
      +                    "type": "list",
      +                    "args": [
      +                      {
      +                        "type": "struct",
      +                        "args": [
      +                          {
      +                            "name": "to_",
      +                            "type": "address"
      +                          },
      +                          {
      +                            "name": "token_id",
      +                            "type": "nat"
      +                          },
      +                          {
      +                            "name": "amount",
      +                            "type": "nat"
      +                          }
      +                        ]
      +                      }
      +                    ]
      +                  }
      +                ]
      +              }
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    },
      +    {
      +      "name": "update_admin",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "admin",
      +          "schema": {
      +            "type": "string",
      +            "details": {
      +              "type": "address",
      +              "internalType": "address"
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    },
      +    {
      +      "name": "update_operators",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "requests",
      +          "schema": {
      +            "type": "array",
      +            "details": {
      +              "type": "schema",
      +              "internalSchema": {
      +                "type": "variant",
      +                "variants": ["add_operator", "remove_operator"],
      +                "args": [
      +                  {
      +                    "type": "struct",
      +                    "args": [
      +                      {
      +                        "name": "owner",
      +                        "type": "address"
      +                      },
      +                      {
      +                        "name": "operator",
      +                        "type": "address"
      +                      },
      +                      {
      +                        "name": "token_id",
      +                        "type": "nat"
      +                      }
      +                    ]
      +                  }
      +                ]
      +              }
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    }
      +  ],
      +  "events": []
      +}
      +
      +

      Broadcast the contract interface

      +

      Now that we have a FireFly Interface representation of our smart contract, we want to broadcast that to the entire network. This broadcast will be pinned to the blockchain, so we can always refer to this specific name and version, and everyone in the network will know exactly which contract interface we are talking about.

      +

      We will use the FFI JSON constructed above and POST that to the /contracts/interfaces API endpoint.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/contracts/interfaces

      +
      {
      +  "namespace": "default",
      +  "name": "simplestorage",
      +  "version": "v1.0.0",
      +  "description": "",
      +  "methods": [
      +    {
      +      "name": "set",
      +      "pathname": "",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "newValue",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "integer",
      +              "internalType": "integer"
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    },
      +    {
      +      "name": "get",
      +      "pathname": "",
      +      "description": "",
      +      "params": [],
      +      "returns": []
      +    }
      +  ],
      +  "events": []
      +}
      +
      +

      Response

      +
      {
      +  "id": "f9e34787-e634-46cd-af47-b52c537404ff",
      +  "namespace": "default",
      +  "name": "simplestorage",
      +  "description": "",
      +  "version": "v1.0.0",
      +  "methods": [
      +    {
      +      "id": "78f13a7f-7b85-47c3-bf51-346a9858c027",
      +      "interface": "f9e34787-e634-46cd-af47-b52c537404ff",
      +      "name": "set",
      +      "namespace": "default",
      +      "pathname": "set",
      +      "description": "",
      +      "params": [
      +        {
      +          "name": "newValue",
      +          "schema": {
      +            "type": "integer",
      +            "details": {
      +              "type": "integer",
      +              "internalType": "integer"
      +            }
      +          }
      +        }
      +      ],
      +      "returns": []
      +    },
      +    {
      +      "id": "ee864e25-c3f7-42d3-aefd-a82f753e9002",
      +      "interface": "f9e34787-e634-46cd-af47-b52c537404ff",
      +      "name": "get",
      +      "namespace": "tezos",
      +      "pathname": "get",
      +      "description": "",
      +      "params": [],
      +      "returns": []
      +    }
      +  ]
      +}
      +
      +
      +

      NOTE: We can broadcast this contract interface conveniently with the help of FireFly Sandbox running at http://127.0.0.1:5108

      +
      +
        +
      • Go to the Contracts Section
      • +
      • Click on Define a Contract Interface
      • +
      • Select FFI - FireFly Interface in the Interface Fromat dropdown
      • +
      • Copy the FFI JSON crafted by you into the Schema Field
      • +
      • Click on Run
      • +
      +

      Create an HTTP API for the contract

      +

      Now comes the fun part where we see some of the powerful, developer-friendly features of FireFly. The next thing we're going to do is tell FireFly to build an HTTP API for this smart contract, complete with an OpenAPI Specification and Swagger UI. As part of this, we'll also tell FireFly where the contract is on the blockchain.

      +

      Like the interface broadcast above, this will also generate a broadcast which will be pinned to the blockchain so all the members of the network will be aware of and able to interact with this API.

      +

      We need to copy the id field we got in the response from the previous step to the interface.id field in the request body below. We will also pick a name that will be part of the URL for our HTTP API, so be sure to pick a name that is URL friendly. In this case we'll call it simple-storage. Lastly, in the location.address field, we're telling FireFly where an instance of the contract is deployed on-chain.

      +
      +

      NOTE: The location field is optional here, but if it is omitted, it will be required in every request to invoke or query the contract. This can be useful if you have multiple instances of the same contract deployed to different addresses.

      +
      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis

      +
      {
      +  "name": "simple-storage",
      +  "interface": {
      +    "id": "f9e34787-e634-46cd-af47-b52c537404ff"
      +  },
      +  "location": {
      +    "address": "KT1ED4gj2xZnp8318yxa5NpvyvW15pqe4yFg"
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "af09de97-741d-4f61-8d30-4db5e7460f76",
      +  "namespace": "default",
      +  "interface": {
      +    "id": "f9e34787-e634-46cd-af47-b52c537404ff"
      +  },
      +  "location": {
      +    "address": "KT1ED4gj2xZnp8318yxa5NpvyvW15pqe4yFg"
      +  },
      +  "name": "simple-storage",
      +  "urls": {
      +    "openapi": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api/swagger.json",
      +    "ui": "http://127.0.0.1:5000/api/v1/namespaces/default/apis/simple-storage/api"
      +  }
      +}
      +
      +

      View OpenAPI spec for the contract

      +

      You'll notice in the response body that there are a couple of URLs near the bottom. If you navigate to the one labeled ui in your browser, you should see the Swagger UI for your smart contract.

      +

      Swagger UI

      +

      Invoke the smart contract

      +

      Now that we've got everything set up, it's time to use our smart contract! We're going to make a POST request to the invoke/set endpoint to set the integer value on-chain. Let's set it to the value of 3 right now.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/invoke/set

      +
      {
      +  "input": {
      +    "newValue": 3
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "87c7ee1b-33d1-46e2-b3f5-8566c14367cf",
      +  "type": "blockchain_invoke",
      +  "status": "Pending",
      +  "..."
      +}
      +
      +

      You'll notice that we got an ID back with status Pending, and that's expected due to the asynchronous programming model of working with smart contracts in FireFly. To see what the value is now, we can query the smart contract.

      +

      Query the current value

      +

      To make a read-only request to the blockchain to check the current value of the stored integer, we can make a POST to the query/get endpoint.

      +

      Request

      +

      POST http://localhost:5000/api/v1/namespaces/default/apis/simple-storage/query/get

      +
      {}
      +
      +

      Response

      +
      {
      +  "3"
      +}
      +
      +
      +

      NOTE: Some contracts may have queries that require input parameters. That's why the query endpoint is a POST, rather than a GET so that parameters can be passed as JSON in the request body. This particular function does not have any parameters, so we just pass an empty JSON object.

      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/define_datatype.html b/head/tutorials/define_datatype.html deleted file mode 100644 index 0542130cb..000000000 --- a/head/tutorials/define_datatype.html +++ /dev/null @@ -1,565 +0,0 @@ - - - - - - - - - Define a datatype - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Define a datatype | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Define a datatype - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Quick reference
      2. -
      3. Additional info
          -
        1. Example 1: Broadcast new datatype
        2. -
        -
      4. -
      5. Example message response
      6. -
      7. Lookup the confirmed data type
      8. -
      9. Example private send referring to the datatype
      10. -
      11. Defining Datatypes using the Sandbox
      12. -

      -

      - - - Quick reference - - -

      - - -

      As your use case matures, it is important to agree formal datatypes between -the parties. These canonical datatypes need to be defined and versioned, so that -each member can extract and transform data from their internal systems into -this datatype.

      - -

      Datatypes are broadcast to the network so everybody refers to the same -JSON schema when validating their data. The broadcast must complete -before a datatype can be used by an application to upload/broadcast/send data. -The same system of broadcast within FireFly is used to broadcast definitions -of datatypes, as is used to broadcast the data itself.

      -

      - - - Additional info - - -

      - - - -

      - - - Example 1: Broadcast new datatype - - -

      - - -

      POST /api/v1/namespaces/{ns}/datatypes

      - -
      {
      -  "name": "widget",
      -  "version": "0.0.2",
      -  "value": {
      -    "$id": "https://example.com/widget.schema.json",
      -    "$schema": "https://json-schema.org/draft/2020-12/schema",
      -    "title": "Widget",
      -    "type": "object",
      -    "properties": {
      -      "id": {
      -        "type": "string",
      -        "description": "The unique identifier for the widget."
      -      },
      -      "name": {
      -        "type": "string",
      -        "description": "The person's last name."
      -      }
      -    }
      -  }
      -}
      -
      -

      - - - Example message response - - -

      - - -

      Status: 202 Accepted - a broadcast message has been sent, and on confirmation the new -datatype will be created (unless it conflicts with another definition with the same -name and version that was ordered onto the blockchain before this definition).

      - -
      {
      -  "header": {
      -    "id": "727f7d3a-d07e-4e80-95af-59f8d2ac7531", // this is the ID of the message, not the data type
      -    "type": "definition", // a special type for system broadcasts
      -    "txtype": "batch_pin", // the broadcast is pinned to the chain
      -    "author": "0x0a65365587a65ce44938eab5a765fe8bc6532bdf", // the local identity
      -    "created": "2021-07-01T21:06:26.9997478Z", // the time the broadcast was sent
      -    "namespace": "ff_system", // the data/message broadcast happens on the system namespace
      -    "topic": [
      -      "ff_ns_default" // the namespace itself is used in the topic
      -    ],
      -    "tag": "ff_define_datatype", // a tag instructing FireFly to process this as a datatype definition
      -    "datahash": "56bd677e3e070ba62f547237edd7a90df5deaaf1a42e7d6435ec66a587c14370"
      -  },
      -  "hash": "5b6593720243831ba9e4ad002c550e95c63704b2c9dbdf31135d7d9207f8cae8",
      -  "state": "ready", // this message is stored locally but not yet confirmed
      -  "data": [
      -    {
      -      "id": "7539a0ab-78d8-4d42-b283-7e316b3afed3", // this data object in the ff_system namespace, contains the schema
      -      "hash": "22ba1cdf84f2a4aaffac665c83ff27c5431c0004dc72a9bf031ae35a75ac5aef"
      -    }
      -  ]
      -}
      -
      -

      - - - Lookup the confirmed data type - - -

      - - -

      GET /api/v1/namespaces/default/datatypes?name=widget&version=0.0.2

      - -
      [
      -  {
      -    "id": "421c94b1-66ce-4ba0-9794-7e03c63df29d", // an ID allocated to the datatype
      -    "message": "727f7d3a-d07e-4e80-95af-59f8d2ac7531", // the message that broadcast this data type
      -    "validator": "json", // the type of validator that this datatype can be used for (this one is JSON Schema)
      -    "namespace": "default", // the namespace of the datatype
      -    "name": "widget", // the name of the datatype
      -    "version": "0.0.2", // the version of the data type
      -    "hash": "a4dceb79a21937ca5ea9fa22419011ca937b4b8bc563d690cea3114af9abce2c", // hash of the schema itself
      -    "created": "2021-07-01T21:06:26.983986Z", // time it was confirmed
      -    "value": {
      -      // the JSON schema itself
      -      "$id": "https://example.com/widget.schema.json",
      -      "$schema": "https://json-schema.org/draft/2020-12/schema",
      -      "title": "Widget",
      -      "type": "object",
      -      "properties": {
      -        "id": {
      -          "type": "string",
      -          "description": "The unique identifier for the widget."
      -        },
      -        "name": {
      -          "type": "string",
      -          "description": "The person's last name."
      -        }
      -      }
      -    }
      -  }
      -]
      -
      -

      - - - Example private send referring to the datatype - - -

      - - -

      Once confirmed, a piece of data can be assigned that datatype and all FireFly nodes -will verify it against the schema. On a sending node, the data will be rejected at upload/send -time if it does not conform. On other nodes, bad data results in a message_rejected event -(rather than message_confirmed) for any message that arrives referring to that data.

      - -

      POST /api/v1/namespaces/default/send/message

      - -
      {
      -  "header": {
      -    "tag": "new_widget_created",
      -    "topic": ["widget_id_12345"]
      -  },
      -  "group": {
      -    "members": [
      -      {
      -        "identity": "org_1"
      -      }
      -    ]
      -  },
      -  "data": [
      -    {
      -      "datatype": {
      -        "name": "widget",
      -        "version": "0.0.2"
      -      },
      -      "value": {
      -        "id": "widget_id_12345",
      -        "name": "superwidget"
      -      }
      -    }
      -  ]
      -}
      -
      -

      - - - Defining Datatypes using the Sandbox - - -

      - -

      You can also define a datatype through the FireFly Sandbox.

      - -

      To get started, open up the Web UI and Sanbox UI for at least one of your members. The URLs for these were printed in your terminal when you started your FireFly stack.

      - -

      In the sandbox, enter the datatype’s name, version, and JSON Schema as seen in the screenshot below.

      - -
      {
      -  "name": "widget",
      -  "version": "0.0.2",
      -  "value": {
      -    "$id": "https://example.com/widget.schema.json",
      -    "$schema": "https://json-schema.org/draft/2020-12/schema",
      -    "title": "Widget",
      -    "type": "object",
      -    "properties": {
      -      "id": {
      -        "type": "string",
      -        "description": "The unique identifier for the widget."
      -      },
      -      "name": {
      -        "type": "string",
      -        "description": "The person's last name."
      -      }
      -    }
      -  }
      -}
      -
      - -

      Defining a Datatype

      - -

      Notice how the data field in the center panel updates in real time.

      - -

      Click the blue Run button. This should return a 202 response immediately in the Server Response section and will populate the right hand panel with transaction information after a few seconds.

      - -

      Message Broadcast

      - -

      Go back to the FireFly UI (the URL for this would have been shown in the terminal when you started the stack) and you’ll see that you’ve successfully defined your datatype

      - -

      Successful Transaction

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/define_datatype/index.html b/head/tutorials/define_datatype/index.html new file mode 100644 index 000000000..4c0c254a7 --- /dev/null +++ b/head/tutorials/define_datatype/index.html @@ -0,0 +1,3706 @@ + + + + + + + + + + + + + + + + + + + + + + + Define a datatype - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Define a datatype

      +

      Quick reference

      +

      As your use case matures, it is important to agree formal datatypes between +the parties. These canonical datatypes need to be defined and versioned, so that +each member can extract and transform data from their internal systems into +this datatype.

      +

      Datatypes are broadcast to the network so everybody refers to the same +JSON schema when validating their data. The broadcast must complete +before a datatype can be used by an application to upload/broadcast/send data. +The same system of broadcast within FireFly is used to broadcast definitions +of datatypes, as is used to broadcast the data itself.

      +

      Additional info

      + +

      Example 1: Broadcast new datatype

      +

      POST /api/v1/namespaces/{ns}/datatypes

      +
      {
      +  "name": "widget",
      +  "version": "0.0.2",
      +  "value": {
      +    "$id": "https://example.com/widget.schema.json",
      +    "$schema": "https://json-schema.org/draft/2020-12/schema",
      +    "title": "Widget",
      +    "type": "object",
      +    "properties": {
      +      "id": {
      +        "type": "string",
      +        "description": "The unique identifier for the widget."
      +      },
      +      "name": {
      +        "type": "string",
      +        "description": "The person's last name."
      +      }
      +    }
      +  }
      +}
      +
      +

      Example message response

      +

      Status: 202 Accepted - a broadcast message has been sent, and on confirmation the new +datatype will be created (unless it conflicts with another definition with the same +name and version that was ordered onto the blockchain before this definition).

      +
      {
      +  "header": {
      +    "id": "727f7d3a-d07e-4e80-95af-59f8d2ac7531", // this is the ID of the message, not the data type
      +    "type": "definition", // a special type for system broadcasts
      +    "txtype": "batch_pin", // the broadcast is pinned to the chain
      +    "author": "0x0a65365587a65ce44938eab5a765fe8bc6532bdf", // the local identity
      +    "created": "2021-07-01T21:06:26.9997478Z", // the time the broadcast was sent
      +    "namespace": "ff_system", // the data/message broadcast happens on the system namespace
      +    "topic": [
      +      "ff_ns_default" // the namespace itself is used in the topic
      +    ],
      +    "tag": "ff_define_datatype", // a tag instructing FireFly to process this as a datatype definition
      +    "datahash": "56bd677e3e070ba62f547237edd7a90df5deaaf1a42e7d6435ec66a587c14370"
      +  },
      +  "hash": "5b6593720243831ba9e4ad002c550e95c63704b2c9dbdf31135d7d9207f8cae8",
      +  "state": "ready", // this message is stored locally but not yet confirmed
      +  "data": [
      +    {
      +      "id": "7539a0ab-78d8-4d42-b283-7e316b3afed3", // this data object in the ff_system namespace, contains the schema
      +      "hash": "22ba1cdf84f2a4aaffac665c83ff27c5431c0004dc72a9bf031ae35a75ac5aef"
      +    }
      +  ]
      +}
      +
      +

      Lookup the confirmed data type

      +

      GET /api/v1/namespaces/default/datatypes?name=widget&version=0.0.2

      +
      [
      +  {
      +    "id": "421c94b1-66ce-4ba0-9794-7e03c63df29d", // an ID allocated to the datatype
      +    "message": "727f7d3a-d07e-4e80-95af-59f8d2ac7531", // the message that broadcast this data type
      +    "validator": "json", // the type of validator that this datatype can be used for (this one is JSON Schema)
      +    "namespace": "default", // the namespace of the datatype
      +    "name": "widget", // the name of the datatype
      +    "version": "0.0.2", // the version of the data type
      +    "hash": "a4dceb79a21937ca5ea9fa22419011ca937b4b8bc563d690cea3114af9abce2c", // hash of the schema itself
      +    "created": "2021-07-01T21:06:26.983986Z", // time it was confirmed
      +    "value": {
      +      // the JSON schema itself
      +      "$id": "https://example.com/widget.schema.json",
      +      "$schema": "https://json-schema.org/draft/2020-12/schema",
      +      "title": "Widget",
      +      "type": "object",
      +      "properties": {
      +        "id": {
      +          "type": "string",
      +          "description": "The unique identifier for the widget."
      +        },
      +        "name": {
      +          "type": "string",
      +          "description": "The person's last name."
      +        }
      +      }
      +    }
      +  }
      +]
      +
      +

      Example private send referring to the datatype

      +

      Once confirmed, a piece of data can be assigned that datatype and all FireFly nodes +will verify it against the schema. On a sending node, the data will be rejected at upload/send +time if it does not conform. On other nodes, bad data results in a message_rejected event +(rather than message_confirmed) for any message that arrives referring to that data.

      +

      POST /api/v1/namespaces/default/send/message

      +
      {
      +  "header": {
      +    "tag": "new_widget_created",
      +    "topic": ["widget_id_12345"]
      +  },
      +  "group": {
      +    "members": [
      +      {
      +        "identity": "org_1"
      +      }
      +    ]
      +  },
      +  "data": [
      +    {
      +      "datatype": {
      +        "name": "widget",
      +        "version": "0.0.2"
      +      },
      +      "value": {
      +        "id": "widget_id_12345",
      +        "name": "superwidget"
      +      }
      +    }
      +  ]
      +}
      +
      +

      Defining Datatypes using the Sandbox

      +

      You can also define a datatype through the FireFly Sandbox.

      +

      To get started, open up the Web UI and Sanbox UI for at least one of your members. The URLs for these were printed in your terminal when you started your FireFly stack.

      +

      In the sandbox, enter the datatype's name, version, and JSON Schema as seen in the screenshot below.

      +
      {
      +  "name": "widget",
      +  "version": "0.0.2",
      +  "value": {
      +    "$id": "https://example.com/widget.schema.json",
      +    "$schema": "https://json-schema.org/draft/2020-12/schema",
      +    "title": "Widget",
      +    "type": "object",
      +    "properties": {
      +      "id": {
      +        "type": "string",
      +        "description": "The unique identifier for the widget."
      +      },
      +      "name": {
      +        "type": "string",
      +        "description": "The person's last name."
      +      }
      +    }
      +  }
      +}
      +
      +

      Defining a Datatype

      +

      Notice how the data field in the center panel updates in real time.

      +

      Click the blue Run button. This should return a 202 response immediately in the Server Response section and will populate the right hand panel with transaction information after a few seconds.

      +

      Message Broadcast

      +

      Go back to the FireFly UI (the URL for this would have been shown in the terminal when you started the stack) and you'll see that you've successfully defined your datatype

      +

      Successful Transaction

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/events.html b/head/tutorials/events.html deleted file mode 100644 index d9378ce26..000000000 --- a/head/tutorials/events.html +++ /dev/null @@ -1,576 +0,0 @@ - - - - - - - - - Listen for events - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Listen for events | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Listen for events - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Quick reference
      2. -
      3. Additional info
      4. -
      5. WebSockets Example 1: Ephemeral subscription with auto-commit
      6. -
      7. Example event payload
      8. -
      9. Download the message and data
      10. -
      11. Download just the data array associated with a message
      12. -
      13. WebSockets Example 2: Durable subscription for your application, with manual-commit
          -
        1. Set up the WebSocket subscription
        2. -
        3. Connect to consume messages
        4. -
        -
      14. -
      15. Custom Contract Events
      16. -

      -

      - - - Quick reference - - -

      - - -

      Probably the most important aspect of FireFly is that it is an event-driven programming model.

      - -

      Parties interact by sending messages and transactions to each other, on and off chain. -Once aggregated and confirmed those events drive processing in the other party.

      - -

      This allows orchestration of complex multi-party system applications and business processes.

      - -

      FireFly provides each party with their own private history, that includes all exchanges -outbound and inbound performed through the node into the multi-party system. That includes -blockchain backed transactions, as well as completely off-chain message exchanges.

      - -

      The event transports are pluggable. The core transports are WebSockets and Webhooks. -We focus on WebSockets in this getting started guide.

      - -
      -

      Check out the Request/Reply section for more information on Webhooks

      -
      -

      - - - Additional info - - -

      - - - -

      - - - WebSockets Example 1: Ephemeral subscription with auto-commit - - -

      - - -

      The simplest way to get started consuming events, is with an ephemeral WebSocket listener.

      - -

      Example connection URL:

      - -

      ws://localhost:5000/ws?namespace=default&ephemeral&autoack&filter.events=message_confirmed

      - -
        -
      • namespace=default - event listeners are scoped to a namespace
      • -
      • ephemeral - listen for events that occur while this connection is active, but do not remember the app instance (great for UIs)
      • -
      • autoack- automatically acknowledge each event, so the next event is sent (great for UIs)
      • -
      • filter.events=message_confirmed - only listen for events resulting from a message confirmation
      • -
      - -

      There are a number of browser extensions that let you experiment with WebSockets:

      - -

      Browser Extension

      -

      - - - Example event payload - - -

      - - -

      The events (by default) do not contain the payload data, just the event and referred message. -This means the WebSocket payloads are a predictably small size, and the application can -use the information in the message to post-filter the event to decide if it needs to download -the full data.

      - -
      -

      There are server-side filters provided on events as well

      -
      - -
      {
      -  "id": "8f0da4d7-8af7-48da-912d-187979bf60ed",
      -  "sequence": 61,
      -  "type": "message_confirmed",
      -  "namespace": "default",
      -  "reference": "9710a350-0ba1-43c6-90fc-352131ce818a",
      -  "created": "2021-07-02T04:37:47.6556589Z",
      -  "subscription": {
      -    "id": "2426c5b1-ffa9-4f7d-affb-e4e541945808",
      -    "namespace": "default",
      -    "name": "2426c5b1-ffa9-4f7d-affb-e4e541945808"
      -  },
      -  "message": {
      -    "header": {
      -      "id": "9710a350-0ba1-43c6-90fc-352131ce818a",
      -      "type": "broadcast",
      -      "txtype": "batch_pin",
      -      "author": "0x1d14b65d2dd5c13f6cb6d3dc4aa13c795a8f3b28",
      -      "created": "2021-07-02T04:37:40.1257944Z",
      -      "namespace": "default",
      -      "topic": [
      -        "default"
      -      ],
      -      "datahash": "cd6a09a15ccd3e6ed1d67d69fa4773b563f27f17f3eaad611a2792ba945ca34f"
      -    },
      -    "hash": "1b6808d2b95b418e54e7bd34593bfa36a002b841ac42f89d00586dac61e8df43",
      -    "batchID": "16ffc02c-8cb0-4e2f-8b58-a707ad1d1eae",
      -    "state": "confirmed",
      -    "confirmed": "2021-07-02T04:37:47.6548399Z",
      -    "data": [
      -      {
      -        "id": "b3a814cc-17d1-45d5-975e-90279ed2c3fc",
      -        "hash": "9ddefe4435b21d901439e546d54a14a175a3493b9fd8fbf38d9ea6d3cbf70826"
      -      }
      -    ]
      -  }
      -}
      -
      -

      - - - Download the message and data - - -

      - - -

      A simple REST API is provided to allow you to download the data associated with the message:

      - -

      GET /api/v1/namespaces/default/messages/{id}?data=true

      -

      - - - Download just the data array associated with a message - - -

      - - -

      As you already have the message object in the event delivery, you can query just the array -of data objects as follows:

      - -

      GET /api/v1/namespaces/default/messages/{id}/data

      -

      - - - WebSockets Example 2: Durable subscription for your application, with manual-commit - - -

      - - -

      To reliably process messages within your application, you should first set up a subscription.

      - -

      A subscription requests that:

      -
        -
      • FireFly keeps a record of the latest event consumed by that application
      • -
      • FireFly only delivers one copy of the event to the application, even when there are multiple active connections
      • -
      - -

      This should be combined with manual acknowledgment of the events, where the application sends a -payload such as the following in response to each event it receives (where the id comes from the event -it received):

      - -
      { "type": "ack", "id": "617db63-2cf5-4fa3-8320-46150cbb5372" }
      -
      - -
      -

      You must send an acknowledgement for every message, or you will stop receiving messages.

      -
      -

      - - - Set up the WebSocket subscription - - -

      - - -

      Each subscription is scoped to a namespace, and must have a name. You can then choose to perform -server-side filtering on the events using regular expressions matched against the information -in the event.

      - -

      POST /namespaces/default/subscriptions

      - -
      {
      -  "transport": "websockets",
      -  "name": "app1",
      -  "filter": {
      -    "blockchainevent": {
      -      "listener": ".*",
      -      "name": ".*"
      -    },
      -    "events": ".*",
      -    "message": {
      -      "author": ".*",
      -      "group": ".*",
      -      "tag": ".*",
      -      "topics": ".*"
      -    },
      -    "transaction": {
      -      "type": ".*"
      -    }
      -  },
      -  "options": {
      -    "firstEvent": "newest",
      -    "readAhead": 50
      -  }
      -}
      -
      -

      - - - Connect to consume messages - - -

      - - -

      Example connection URL:

      - -

      ws://localhost:5000/ws?namespace=default&name=app1

      - -
        -
      • namespace=default - event listeners are scoped to a namespace
      • -
      • name=app1 - the subscription name
      • -
      -

      - - - Custom Contract Events - - -

      - - -

      If you are interested in learning more about events for custom smart contracts, please see the Working with custom smart contracts section.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/events/index.html b/head/tutorials/events/index.html new file mode 100644 index 000000000..995b0b183 --- /dev/null +++ b/head/tutorials/events/index.html @@ -0,0 +1,3734 @@ + + + + + + + + + + + + + + + + + + + + + + + Listen for events - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Listen for events

      +

      Quick reference

      +

      Probably the most important aspect of FireFly is that it is an event-driven programming model.

      +

      Parties interact by sending messages and transactions to each other, on and off chain. +Once aggregated and confirmed those events drive processing in the other party.

      +

      This allows orchestration of complex multi-party system applications and business processes.

      +

      FireFly provides each party with their own private history, that includes all exchanges +outbound and inbound performed through the node into the multi-party system. That includes +blockchain backed transactions, as well as completely off-chain message exchanges.

      +

      The event transports are pluggable. The core transports are WebSockets and Webhooks. +We focus on WebSockets in this getting started guide.

      +
      +

      Check out the Request/Reply section for more information on Webhooks

      +
      +

      Additional info

      + +

      WebSockets Example 1: Ephemeral subscription with auto-commit

      +

      The simplest way to get started consuming events, is with an ephemeral WebSocket listener.

      +

      Example connection URL:

      +

      ws://localhost:5000/ws?namespace=default&ephemeral&autoack&filter.events=message_confirmed

      +
        +
      • namespace=default - event listeners are scoped to a namespace
      • +
      • ephemeral - listen for events that occur while this connection is active, but do not remember the app instance (great for UIs)
      • +
      • autoack- automatically acknowledge each event, so the next event is sent (great for UIs)
      • +
      • filter.events=message_confirmed - only listen for events resulting from a message confirmation
      • +
      +

      There are a number of browser extensions that let you experiment with WebSockets:

      +

      Browser Extension

      +

      Example event payload

      +

      The events (by default) do not contain the payload data, just the event and referred message. +This means the WebSocket payloads are a predictably small size, and the application can +use the information in the message to post-filter the event to decide if it needs to download +the full data.

      +
      +

      There are server-side filters provided on events as well

      +
      +
      {
      +  "id": "8f0da4d7-8af7-48da-912d-187979bf60ed",
      +  "sequence": 61,
      +  "type": "message_confirmed",
      +  "namespace": "default",
      +  "reference": "9710a350-0ba1-43c6-90fc-352131ce818a",
      +  "created": "2021-07-02T04:37:47.6556589Z",
      +  "subscription": {
      +    "id": "2426c5b1-ffa9-4f7d-affb-e4e541945808",
      +    "namespace": "default",
      +    "name": "2426c5b1-ffa9-4f7d-affb-e4e541945808"
      +  },
      +  "message": {
      +    "header": {
      +      "id": "9710a350-0ba1-43c6-90fc-352131ce818a",
      +      "type": "broadcast",
      +      "txtype": "batch_pin",
      +      "author": "0x1d14b65d2dd5c13f6cb6d3dc4aa13c795a8f3b28",
      +      "created": "2021-07-02T04:37:40.1257944Z",
      +      "namespace": "default",
      +      "topic": ["default"],
      +      "datahash": "cd6a09a15ccd3e6ed1d67d69fa4773b563f27f17f3eaad611a2792ba945ca34f"
      +    },
      +    "hash": "1b6808d2b95b418e54e7bd34593bfa36a002b841ac42f89d00586dac61e8df43",
      +    "batchID": "16ffc02c-8cb0-4e2f-8b58-a707ad1d1eae",
      +    "state": "confirmed",
      +    "confirmed": "2021-07-02T04:37:47.6548399Z",
      +    "data": [
      +      {
      +        "id": "b3a814cc-17d1-45d5-975e-90279ed2c3fc",
      +        "hash": "9ddefe4435b21d901439e546d54a14a175a3493b9fd8fbf38d9ea6d3cbf70826"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Download the message and data

      +

      A simple REST API is provided to allow you to download the data associated with the message:

      +

      GET /api/v1/namespaces/default/messages/{id}?data=true

      +

      Download just the data array associated with a message

      +

      As you already have the message object in the event delivery, you can query just the array +of data objects as follows:

      +

      GET /api/v1/namespaces/default/messages/{id}/data

      +

      WebSockets Example 2: Durable subscription for your application, with manual-commit

      +

      To reliably process messages within your application, you should first set up a subscription.

      +

      A subscription requests that:

      +
        +
      • FireFly keeps a record of the latest event consumed by that application
      • +
      • FireFly only delivers one copy of the event to the application, even when there are multiple active connections
      • +
      +

      This should be combined with manual acknowledgment of the events, where the application sends a +payload such as the following in response to each event it receives (where the id comes from the event +it received):

      +
      { "type": "ack", "id": "617db63-2cf5-4fa3-8320-46150cbb5372" }
      +
      +
      +

      You must send an acknowledgement for every message, or you will stop receiving messages.

      +
      +

      Set up the WebSocket subscription

      +

      Each subscription is scoped to a namespace, and must have a name. You can then choose to perform +server-side filtering on the events using regular expressions matched against the information +in the event.

      +

      POST /namespaces/default/subscriptions

      +
      {
      +  "transport": "websockets",
      +  "name": "app1",
      +  "filter": {
      +    "blockchainevent": {
      +      "listener": ".*",
      +      "name": ".*"
      +    },
      +    "events": ".*",
      +    "message": {
      +      "author": ".*",
      +      "group": ".*",
      +      "tag": ".*",
      +      "topics": ".*"
      +    },
      +    "transaction": {
      +      "type": ".*"
      +    }
      +  },
      +  "options": {
      +    "firstEvent": "newest",
      +    "readAhead": 50
      +  }
      +}
      +
      +

      Connect to consume messages

      +

      Example connection URL:

      +

      ws://localhost:5000/ws?namespace=default&name=app1

      +
        +
      • namespace=default - event listeners are scoped to a namespace
      • +
      • name=app1 - the subscription name
      • +
      +

      Custom Contract Events

      +

      If you are interested in learning more about events for custom smart contracts, please see the Working with custom smart contracts section.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/index.html b/head/tutorials/index.html deleted file mode 100644 index ee2ada558..000000000 --- a/head/tutorials/index.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - - - Tutorials - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.tutorials | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - -
      - -

      - - - Tutorials - - -

      - - - - -
      -

      Table of contents

      - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/private_send.html b/head/tutorials/private_send.html deleted file mode 100644 index f5fb43243..000000000 --- a/head/tutorials/private_send.html +++ /dev/null @@ -1,723 +0,0 @@ - - - - - - - - - Privately send data - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Privately send data | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Privately send data - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Quick reference
      2. -
      3. Additional info
      4. -
      5. Example 1: Pinned private send of in-line string data
      6. -
      7. Example message response
      8. -
      9. Example 2: Unpinned private send of in-line string data
      10. -
      11. Example 3: Inline object data to a topic (no datatype verification)
      12. -
      13. Notes on why setting a topic is important
      14. -
      15. Example 3: Upload a blob with metadata and send privately
          -
        1. Multipart form post of a file
        2. -
        3. Example data response from Blob upload
        4. -
        5. Send the uploaded data privately
        6. -
        -
      16. -
      17. Sending Private Messages using the Sandbox
      18. -

      -

      - - - Quick reference - - -

      - - -
        -
      • Sends a message to a restricted set of parties -
          -
        • The message describes who sent it, to whom, and exactly what data was sent
        • -
        -
      • -
      • A message has one or more attached pieces of business data -
          -
        • Can be sent in-line, uploaded in advanced, or received from other parties
        • -
        • Can include smaller JSON payloads suitable for database storage -
            -
          • These can be verified against a datatype
          • -
          -
        • -
        • Can include references to large (multi megabyte/gigabyte) Blob data
        • -
        -
      • -
      • A group specifies who has visibility to the data -
          -
        • The author must be included in the group - auto-added if omitted
        • -
        • Can be specified in-line in the message by listing recipients directly
        • -
        • Can be referred to by hash
        • -
        -
      • -
      • Private sends are optionally sequenced via pinning to the blockchain -
          -
        • If the send is pinned: -
            -
          • The blockchain does not contain any data, just a hash pin -
              -
            • Even the ordering context (topic) is obscured in the on-chain data
            • -
            • This is true regardless of whether a restricted set of participants -are maintaining the ledger, such as in the case of a Fabric Channel.
            • -
            -
          • -
          • The message should not be considered confirmed (even by the sender) until it -has been sequenced via the blockchain and a message_confirmed event occurs
          • -
          • Batched for efficiency -
              -
            • One batch can pin hundreds of private message sends
            • -
            • The batch flows privately off-chain from the sender to each recipient
            • -
            -
          • -
          -
        • -
        • If the send is unpinned: -
            -
          • No data is written to the blockchain at all
          • -
          • The message is marked confirmed immediately -
              -
            • The sender receives a message_confirmed event immediately
            • -
            -
          • -
          • The other parties in the group get message_confirmed events as soon as the data arrives
          • -
          -
        • -
        -
      • -
      -

      - - - Additional info - - -

      - - - -

      - - - Example 1: Pinned private send of in-line string data - - -

      - - -

      POST /api/v1/namespaces/default/messages/private

      - -
      {
      -  "data": [
      -    {
      -      "value": "a string"
      -    }
      -  ],
      -  "group": {
      -    "members": [
      -      {
      -        "identity": "org_1"
      -      }
      -    ]
      -  }
      -}
      -
      -

      - - - Example message response - - -

      - - -

      Status: 202 Accepted - the message is on it’s way, but has not yet been confirmed.

      - -
      {
      -  "header": {
      -    "id": "c387e9d2-bdac-44cc-9dd5-5e7f0b6b0e58", // uniquely identifies this private message
      -    "type": "private", // set automatically
      -    "txtype": "batch_pin", // message will be batched, and sequenced via the blockchain
      -    "author": "0x0a65365587a65ce44938eab5a765fe8bc6532bdf", // set automatically in this example to the node org
      -    "created": "2021-07-02T02:37:13.4642085Z", // set automatically
      -    "namespace": "default", // the 'default' namespace was set in the URL
      -    // The group hash is calculated from the resolved list of group participants.
      -    // The first time a group is used, the participant list is sent privately along with the
      -    // batch of messages in a `groupinit` message.
      -    "group": "2aa5297b5eed0c3a612a667c727ca38b54fb3b5cc245ebac4c2c7abe490bdf6c",
      -    "topics": [
      -      "default" // the default topic that the message is published on, if no topic is set
      -    ],
      -    // datahash is calculated from the data array below
      -    "datahash": "24b2d583b87eda952fa00e02c6de4f78110df63218eddf568f0240be3d02c866"
      -  },
      -  "hash": "423ad7d99fd30ff679270ad2b6b35cdd85d48db30bafb71464ca1527ce114a60", // hash of the header
      -  "state": "ready", // this message is stored locally but not yet confirmed
      -  "data": [
      -    // one item of data was stored
      -    {
      -      "id": "8d8635e2-7c90-4963-99cc-794c98a68b1d", // can be used to query the data in the future
      -      "hash": "c95d6352f524a770a787c16509237baf7eb59967699fb9a6d825270e7ec0eacf" // sha256 hash of `"a string"`
      -    }
      -  ]
      -}
      -
      -

      - - - Example 2: Unpinned private send of in-line string data - - -

      - - -

      Set header.txtype: "none" to disable pinning of the private message send to the blockchain. -The message is sent immediately (no batching) over the private data exchange.

      - -

      POST /api/v1/namespaces/default/messages/private

      - -
      {
      -  "header": {
      -    "txtype": "none"
      -  },
      -  "data": [
      -    {
      -      "value": "a string"
      -    }
      -  ],
      -  "group": {
      -    "members": [
      -      {
      -        "identity": "org_1"
      -      }
      -    ]
      -  }
      -}
      -
      -

      - - - Example 3: Inline object data to a topic (no datatype verification) - - -

      - - -

      It is very good practice to set a tag and topic in each of your messages:

      - -
        -
      • tag should tell the apps receiving the private send (including the local app), what -to do when it receives the message. Its the reason for the send - an -application specific type for the message.
      • -
      • topic should be something like a well known identifier that relates to the -information you are publishing. It is used as an ordering context, so all -sends on a given topic are assured to be processed in order.
      • -
      - -

      POST /api/v1/namespaces/default/messages/private

      - -
      {
      -  "header": {
      -    "tag": "new_widget_created",
      -    "topics": ["widget_id_12345"]
      -  },
      -  "group": {
      -    "members": [
      -      {
      -        "identity": "org_1"
      -      }
      -    ]
      -  },
      -  "data": [
      -    {
      -      "value": {
      -        "id": "widget_id_12345",
      -        "name": "superwidget"
      -      }
      -    }
      -  ]
      -}
      -
      -

      - - - Notes on why setting a topic is important - - -

      - - -

      The FireFly aggregator uses the topic (obfuscated on chain) to determine if a -message is the next message in an in-flight sequence for any groups the node is -involved in. If it is, then that message must receive all off-chain private data -and be confirmed before any subsequent messages can be confirmed on the same sequence.

      - -

      So if you use the same topic in every message, then a single failed send on one -topic blocks delivery of all messages between those parties, until the missing -data arrives.

      - -

      Instead it is best practice to set the topic on your messages to value -that identifies an ordered stream of business processing. Some examples:

      - -
        -
      • A long-running business process instance identifier assigned at initiation
      • -
      • A real-world business transaction identifier used off-chain
      • -
      • The agreed identifier of an asset you are attaching a stream of evidence to
      • -
      • An NFT identifier that is assigned to an asset (digital twin scenarios)
      • -
      • An agreed primary key for a data resource being reconciled between multiple parties
      • -
      - -

      The topic field is an array, because there are cases (such as merging two identifiers) -where you need a message to be deterministically ordered across multiple sequences. -However, this is an advanced use case and you are likely to set a single topic -on the vast majority of your messages.

      -

      - - - Example 3: Upload a blob with metadata and send privately - - -

      - - -

      Here we make two API calls.

      - -

      1) Create the data object explicitly, using a multi-part form upload

      -
        -
      • You can also just post JSON to this endpoint
      • -
      - -

      2) Privately send a message referring to that data

      -
        -
      • The Blob is sent privately to each party
      • -
      • A pin goes to the blockchain
      • -
      • The metadata goes into a batch with the message
      • -
      -

      - - - Multipart form post of a file - - -

      - - -

      Example curl command (Linux/Mac) to grab an image from the internet, -and pipe it into a multi-part form post to FireFly.

      - -
      -

      Note we use autometa to cause FireFly to automatically add -the filename, and size, to the JSON part of the data object for us.

      -
      - -
      curl -sLo - https://github.com/hyperledger/firefly/raw/main/docs/firefly_logo.png \
      - | curl --form autometa=true --form file=@- \
      -   http://localhost:5000/api/v1/namespaces/default/data
      -
      -

      - - - Example data response from Blob upload - - -

      - - -

      Status: 200 OK - your data is uploaded to your local FireFly node

      - -

      At this point the data has not be shared with anyone else in the network

      - -
      {
      -  // A uniquely generated ID, we can refer to when sending this data to other parties
      -  "id": "97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8",
      -  "validator": "json", // the "value" part is JSON
      -  "namespace": "default", // from the URL
      -  // The hash is a combination of the hash of the "value" metadata, and the
      -  // hash of the blob
      -  "hash": "997af6a9a19f06cc8a46872617b8bf974b106f744b2e407e94cc6959aa8cf0b8",
      -  "created": "2021-07-01T20:20:35.5462306Z",
      -  "value": {
      -    "filename": "-", // dash is how curl represents the filename for stdin
      -    "size": 31185 // the size of the blob data
      -  },
      -  "blob": {
      -    // A hash reference to the blob
      -    "hash": "86e6b39b04b605dd1b03f70932976775962509d29ae1ad2628e684faabe48136"
      -  }
      -}
      -
      -

      - - - Send the uploaded data privately - - -

      - - -

      Just include a reference to the id returned from the upload.

      - -

      POST /api/v1/namespaces/default/messages/private

      - -
      {
      -  "data": [
      -    {
      -      "id": "97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8"
      -    }
      -  ],
      -  "group":{
      -      "members": [
      -        {
      -          "identity":"org_1"
      -        }
      -      ]
      -    }
      -}
      -
      -

      - - - Sending Private Messages using the Sandbox - - -

      - -

      All of the functionality discussed above can be done through the FireFly Sandbox.

      - -

      To get started, open up the Web UI and Sanbox UI for at least one of your members. The URLs for these were printed in your terminal when you started your FireFly stack.

      - -

      Make sure to expand the “Send a Private Message” section. Enter your message into the message field as seen in the screenshot below. Because we are sending a private message, make sure you’re in the “Send a Private Message” section and that you choose a message recipient

      - -

      Private Message Broadcast

      - -

      Notice how the data field in the center panel updates in real time as you update the message you wish to send.

      - -

      Click the blue Run button. This should return a 202 response immediately in the Server Response section and will populate the right hand panel with transaction information after a few seconds.

      - -

      Private Message result

      - -

      Go back to the FireFly UI (the URL for this would have been shown in the terminal when you started the stack) and you’ll see your successful blockchain transaction. Compare the “Recent Network Changes” widget With private messages, your

      - -

      Successful Transaction

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/private_send/index.html b/head/tutorials/private_send/index.html new file mode 100644 index 000000000..80cb67693 --- /dev/null +++ b/head/tutorials/private_send/index.html @@ -0,0 +1,3879 @@ + + + + + + + + + + + + + + + + + + + + + + + Privately send data - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Privately send data

      +

      Quick reference

      +
        +
      • Sends a message to a restricted set of parties
      • +
      • The message describes who sent it, to whom, and exactly what data was sent
      • +
      • A message has one or more attached pieces of business data
      • +
      • Can be sent in-line, uploaded in advanced, or received from other parties
      • +
      • Can include smaller JSON payloads suitable for database storage
          +
        • These can be verified against a datatype
        • +
        +
      • +
      • Can include references to large (multi megabyte/gigabyte) Blob data
      • +
      • A group specifies who has visibility to the data
      • +
      • The author must be included in the group - auto-added if omitted
      • +
      • Can be specified in-line in the message by listing recipients directly
      • +
      • Can be referred to by hash
      • +
      • Private sends are optionally sequenced via pinning to the blockchain
      • +
      • If the send is pinned:
          +
        • The blockchain does not contain any data, just a hash pin
        • +
        • Even the ordering context (topic) is obscured in the on-chain data
        • +
        • This is true regardless of whether a restricted set of participants + are maintaining the ledger, such as in the case of a Fabric Channel.
        • +
        • The message should not be considered confirmed (even by the sender) until it + has been sequenced via the blockchain and a message_confirmed event occurs
        • +
        • Batched for efficiency
        • +
        • One batch can pin hundreds of private message sends
        • +
        • The batch flows privately off-chain from the sender to each recipient
        • +
        +
      • +
      • If the send is unpinned:
          +
        • No data is written to the blockchain at all
        • +
        • The message is marked confirmed immediately
        • +
        • The sender receives a message_confirmed event immediately
        • +
        • The other parties in the group get message_confirmed events as soon as the data arrives
        • +
        +
      • +
      +

      Additional info

      + +

      Example 1: Pinned private send of in-line string data

      +

      POST /api/v1/namespaces/default/messages/private

      +
      {
      +  "data": [
      +    {
      +      "value": "a string"
      +    }
      +  ],
      +  "group": {
      +    "members": [
      +      {
      +        "identity": "org_1"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Example message response

      +

      Status: 202 Accepted - the message is on it's way, but has not yet been confirmed.

      +
      {
      +  "header": {
      +    "id": "c387e9d2-bdac-44cc-9dd5-5e7f0b6b0e58", // uniquely identifies this private message
      +    "type": "private", // set automatically
      +    "txtype": "batch_pin", // message will be batched, and sequenced via the blockchain
      +    "author": "0x0a65365587a65ce44938eab5a765fe8bc6532bdf", // set automatically in this example to the node org
      +    "created": "2021-07-02T02:37:13.4642085Z", // set automatically
      +    "namespace": "default", // the 'default' namespace was set in the URL
      +    // The group hash is calculated from the resolved list of group participants.
      +    // The first time a group is used, the participant list is sent privately along with the
      +    // batch of messages in a `groupinit` message.
      +    "group": "2aa5297b5eed0c3a612a667c727ca38b54fb3b5cc245ebac4c2c7abe490bdf6c",
      +    "topics": [
      +      "default" // the default topic that the message is published on, if no topic is set
      +    ],
      +    // datahash is calculated from the data array below
      +    "datahash": "24b2d583b87eda952fa00e02c6de4f78110df63218eddf568f0240be3d02c866"
      +  },
      +  "hash": "423ad7d99fd30ff679270ad2b6b35cdd85d48db30bafb71464ca1527ce114a60", // hash of the header
      +  "state": "ready", // this message is stored locally but not yet confirmed
      +  "data": [
      +    // one item of data was stored
      +    {
      +      "id": "8d8635e2-7c90-4963-99cc-794c98a68b1d", // can be used to query the data in the future
      +      "hash": "c95d6352f524a770a787c16509237baf7eb59967699fb9a6d825270e7ec0eacf" // sha256 hash of `"a string"`
      +    }
      +  ]
      +}
      +
      +

      Example 2: Unpinned private send of in-line string data

      +

      Set header.txtype: "none" to disable pinning of the private message send to the blockchain. +The message is sent immediately (no batching) over the private data exchange.

      +

      POST /api/v1/namespaces/default/messages/private

      +
      {
      +  "header": {
      +    "txtype": "none"
      +  },
      +  "data": [
      +    {
      +      "value": "a string"
      +    }
      +  ],
      +  "group": {
      +    "members": [
      +      {
      +        "identity": "org_1"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Example 3: Inline object data to a topic (no datatype verification)

      +

      It is very good practice to set a tag and topic in each of your messages:

      +
        +
      • tag should tell the apps receiving the private send (including the local app), what + to do when it receives the message. Its the reason for the send - an + application specific type for the message.
      • +
      • topic should be something like a well known identifier that relates to the + information you are publishing. It is used as an ordering context, so all + sends on a given topic are assured to be processed in order.
      • +
      +

      POST /api/v1/namespaces/default/messages/private

      +
      {
      +  "header": {
      +    "tag": "new_widget_created",
      +    "topics": ["widget_id_12345"]
      +  },
      +  "group": {
      +    "members": [
      +      {
      +        "identity": "org_1"
      +      }
      +    ]
      +  },
      +  "data": [
      +    {
      +      "value": {
      +        "id": "widget_id_12345",
      +        "name": "superwidget"
      +      }
      +    }
      +  ]
      +}
      +
      +

      Notes on why setting a topic is important

      +

      The FireFly aggregator uses the topic (obfuscated on chain) to determine if a +message is the next message in an in-flight sequence for any groups the node is +involved in. If it is, then that message must receive all off-chain private data +and be confirmed before any subsequent messages can be confirmed on the same sequence.

      +

      So if you use the same topic in every message, then a single failed send on one +topic blocks delivery of all messages between those parties, until the missing +data arrives.

      +

      Instead it is best practice to set the topic on your messages to value +that identifies an ordered stream of business processing. Some examples:

      +
        +
      • A long-running business process instance identifier assigned at initiation
      • +
      • A real-world business transaction identifier used off-chain
      • +
      • The agreed identifier of an asset you are attaching a stream of evidence to
      • +
      • An NFT identifier that is assigned to an asset (digital twin scenarios)
      • +
      • An agreed primary key for a data resource being reconciled between multiple parties
      • +
      +

      The topic field is an array, because there are cases (such as merging two identifiers) +where you need a message to be deterministically ordered across multiple sequences. +However, this is an advanced use case and you are likely to set a single topic +on the vast majority of your messages.

      +

      Example 3: Upload a blob with metadata and send privately

      +

      Here we make two API calls.

      +
        +
      1. +

        Create the data object explicitly, using a multi-part form upload

        +
      2. +
      3. +

        You can also just post JSON to this endpoint

        +
      4. +
      5. +

        Privately send a message referring to that data

        +
      6. +
      7. +

        The Blob is sent privately to each party

        +
      8. +
      9. A pin goes to the blockchain
      10. +
      11. The metadata goes into a batch with the message
      12. +
      +

      Multipart form post of a file

      +

      Example curl command (Linux/Mac) to grab an image from the internet, +and pipe it into a multi-part form post to FireFly.

      +
      +

      Note we use autometa to cause FireFly to automatically add +the filename, and size, to the JSON part of the data object for us.

      +
      +
      curl -sLo - https://github.com/hyperledger/firefly/raw/main/docs/firefly_logo.png \
      + | curl --form autometa=true --form file=@- \
      +   http://localhost:5000/api/v1/namespaces/default/data
      +
      +

      Example data response from Blob upload

      +

      Status: 200 OK - your data is uploaded to your local FireFly node

      +

      At this point the data has not be shared with anyone else in the network

      +
      {
      +  // A uniquely generated ID, we can refer to when sending this data to other parties
      +  "id": "97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8",
      +  "validator": "json", // the "value" part is JSON
      +  "namespace": "default", // from the URL
      +  // The hash is a combination of the hash of the "value" metadata, and the
      +  // hash of the blob
      +  "hash": "997af6a9a19f06cc8a46872617b8bf974b106f744b2e407e94cc6959aa8cf0b8",
      +  "created": "2021-07-01T20:20:35.5462306Z",
      +  "value": {
      +    "filename": "-", // dash is how curl represents the filename for stdin
      +    "size": 31185 // the size of the blob data
      +  },
      +  "blob": {
      +    // A hash reference to the blob
      +    "hash": "86e6b39b04b605dd1b03f70932976775962509d29ae1ad2628e684faabe48136"
      +  }
      +}
      +
      +

      Send the uploaded data privately

      +

      Just include a reference to the id returned from the upload.

      +

      POST /api/v1/namespaces/default/messages/private

      +
      {
      +  "data": [
      +    {
      +      "id": "97eb750f-0d0b-4c1d-9e37-1e92d1a22bb8"
      +    }
      +  ],
      +  "group": {
      +    "members": [
      +      {
      +        "identity": "org_1"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Sending Private Messages using the Sandbox

      +

      All of the functionality discussed above can be done through the FireFly Sandbox.

      +

      To get started, open up the Web UI and Sanbox UI for at least one of your members. The URLs for these were printed in your terminal when you started your FireFly stack.

      +

      Make sure to expand the "Send a Private Message" section. Enter your message into the message field as seen in the screenshot below. Because we are sending a private message, make sure you're in the "Send a Private Message" section and that you choose a message recipient

      +

      Private Message Broadcast

      +

      Notice how the data field in the center panel updates in real time as you update the message you wish to send.

      +

      Click the blue Run button. This should return a 202 response immediately in the Server Response section and will populate the right hand panel with transaction information after a few seconds.

      +

      Private Message result

      +

      Go back to the FireFly UI (the URL for this would have been shown in the terminal when you started the stack) and you'll see your successful blockchain transaction. Compare the "Recent Network Changes" widget With private messages, your

      +

      Successful Transaction

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/query_messages.html b/head/tutorials/query_messages.html deleted file mode 100644 index e9cc2c35e..000000000 --- a/head/tutorials/query_messages.html +++ /dev/null @@ -1,464 +0,0 @@ - - - - - - - - - Explore messages - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -Explore messages | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Explore messages - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Quick reference
      2. -
      3. Additional info
          -
        1. Example 1: Query confirmed messages
        2. -
        -
      4. -
      5. Example response
          -
        1. Example 2: Query all messages
        2. -
        -
      6. -

      -

      - - - Quick reference - - -

      - - -

      The FireFly Explorer is a great way to view the messages sent and received by your node.

      - -

      Just open /ui on your FireFly node to access it.

      - -

      Explore Messages

      - -

      This builds on the APIs to query and filter messages, described below

      -

      - - - Additional info - - -

      - - - -

      - - - Example 1: Query confirmed messages - - -

      - - -

      These are the messages ready to be processed in your application. -All data associated with the message (including Blob attachments) is available, -and if they are sequenced by the blockchain, then those blockchain transactions -are complete.

      - -
      -

      The order in which you process messages should be determined by absolute -order of message_confirmed events - queryable via the events collection, or -through event listeners (discussed next in the getting started guide).

      - -

      That is because messages are ordered by timestamp, -which is potentially subject to adjustments of the clock. -Whereas events are ordered by the insertion order into the database, and as such -changes in the clock do not affect the order.

      -
      - -

      GET /api/v1/namespaces/{ns}/messages?pending=false&limit=100

      -

      - - - Example response - - -

      - - -
      [
      -  {
      -    "header": {
      -      "id": "423302bb-abfc-4d64-892d-38b2fdfe1549",
      -      "type": "private", // this was a private send
      -      "txtype": "batch_pin", // pinned in a batch to the blockchain
      -      "author": "0x1d14b65d2dd5c13f6cb6d3dc4aa13c795a8f3b28",
      -      "created": "2021-07-02T03:09:40.2606238Z",
      -      "namespace": "default",
      -      "group": "2aa5297b5eed0c3a612a667c727ca38b54fb3b5cc245ebac4c2c7abe490bdf6c", // sent to this group
      -      "topic": [
      -        "widget_id_12345"
      -      ],
      -      "tag": "new_widget_created",
      -      "datahash": "551dd261e80ce76b1908c031cff8a707bd76376d6eddfdc1040c2ed6481ec8dd"
      -    },
      -    "hash": "bf2ca94db8c31bae3cae974bb626fa822c6eee5f572d274d72281e72537b30b3",
      -    "batch": "f7ac773d-885a-4d73-ac6b-c09f5346a051", // the batch ID that pinned this message to the chain
      -    "state": "confirmed", // message is now confirmed
      -    "confirmed": "2021-07-02T03:09:49.9207211Z", // timestamp when this node confirmed the message
      -    "data": [
      -      {
      -        "id": "914eed77-8789-451c-b55f-ba9570a71eba",
      -        "hash": "9541cabc750c692e553a421a6c5c07ebcae820774d2d8d0b88fac2a231c10bf2"
      -      }
      -    ],
      -    "pins": [
      -      // A "pin" is an identifier that is used by FireFly for sequencing messages.
      -      //
      -      // For private messages, it is an obfuscated representation of the sequence of this message,
      -      // on a topic, within this group, from this sender. There will be one pin per topic. You will find these
      -      // pins in the blockchain transaction, as well as the off-chain data.
      -      // Each one is unqiue, and without the group hash, very difficult to correlate - meaning
      -      // the data on-chain provides a high level of privacy.
      -      //
      -      // Note for broadcast (which does not require obfuscation), it is simply a hash of the topic.
      -      // So you will see the same pin for all messages on the same topic.
      -      "ee56de6241522ab0ad8266faebf2c0f1dc11be7bd0c41d847998135b45685b77"
      -    ]
      -  }
      -]
      -
      -

      - - - Example 2: Query all messages - - -

      - - -

      The natural sort order the API will return for messages is:

      -
        -
      • Pending messages first -
          -
        • In descending created timestamp order
        • -
        -
      • -
      • Confirmed messages -
          -
        • In descending confirmed timestamp order
        • -
        -
      • -
      - -

      GET /api/v1/namespaces/{ns}/messages

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/query_messages/index.html b/head/tutorials/query_messages/index.html new file mode 100644 index 000000000..dbf2e9323 --- /dev/null +++ b/head/tutorials/query_messages/index.html @@ -0,0 +1,3596 @@ + + + + + + + + + + + + + + + + + + + + + + + Explore messages - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Explore messages

      +

      Quick reference

      +

      The FireFly Explorer is a great way to view the messages sent and received by your node.

      +

      Just open /ui on your FireFly node to access it.

      +

      Explore Messages

      +

      This builds on the APIs to query and filter messages, described below

      +

      Additional info

      + +

      Example 1: Query confirmed messages

      +

      These are the messages ready to be processed in your application. +All data associated with the message (including Blob attachments) is available, +and if they are sequenced by the blockchain, then those blockchain transactions +are complete.

      +
      +

      The order in which you process messages should be determined by absolute +order of message_confirmed events - queryable via the events collection, or +through event listeners (discussed next in the getting started guide).

      +

      That is because messages are ordered by timestamp, +which is potentially subject to adjustments of the clock. +Whereas events are ordered by the insertion order into the database, and as such +changes in the clock do not affect the order.

      +
      +

      GET /api/v1/namespaces/{ns}/messages?pending=false&limit=100

      +

      Example response

      +
      [
      +  {
      +    "header": {
      +      "id": "423302bb-abfc-4d64-892d-38b2fdfe1549",
      +      "type": "private", // this was a private send
      +      "txtype": "batch_pin", // pinned in a batch to the blockchain
      +      "author": "0x1d14b65d2dd5c13f6cb6d3dc4aa13c795a8f3b28",
      +      "created": "2021-07-02T03:09:40.2606238Z",
      +      "namespace": "default",
      +      "group": "2aa5297b5eed0c3a612a667c727ca38b54fb3b5cc245ebac4c2c7abe490bdf6c", // sent to this group
      +      "topic": ["widget_id_12345"],
      +      "tag": "new_widget_created",
      +      "datahash": "551dd261e80ce76b1908c031cff8a707bd76376d6eddfdc1040c2ed6481ec8dd"
      +    },
      +    "hash": "bf2ca94db8c31bae3cae974bb626fa822c6eee5f572d274d72281e72537b30b3",
      +    "batch": "f7ac773d-885a-4d73-ac6b-c09f5346a051", // the batch ID that pinned this message to the chain
      +    "state": "confirmed", // message is now confirmed
      +    "confirmed": "2021-07-02T03:09:49.9207211Z", // timestamp when this node confirmed the message
      +    "data": [
      +      {
      +        "id": "914eed77-8789-451c-b55f-ba9570a71eba",
      +        "hash": "9541cabc750c692e553a421a6c5c07ebcae820774d2d8d0b88fac2a231c10bf2"
      +      }
      +    ],
      +    "pins": [
      +      // A "pin" is an identifier that is used by FireFly for sequencing messages.
      +      //
      +      // For private messages, it is an obfuscated representation of the sequence of this message,
      +      // on a topic, within this group, from this sender. There will be one pin per topic. You will find these
      +      // pins in the blockchain transaction, as well as the off-chain data.
      +      // Each one is unqiue, and without the group hash, very difficult to correlate - meaning
      +      // the data on-chain provides a high level of privacy.
      +      //
      +      // Note for broadcast (which does not require obfuscation), it is simply a hash of the topic.
      +      // So you will see the same pin for all messages on the same topic.
      +      "ee56de6241522ab0ad8266faebf2c0f1dc11be7bd0c41d847998135b45685b77"
      +    ]
      +  }
      +]
      +
      +

      Example 2: Query all messages

      +

      The natural sort order the API will return for messages is:

      +
        +
      • Pending messages first
      • +
      • In descending created timestamp order
      • +
      • Confirmed messages
      • +
      • In descending confirmed timestamp order
      • +
      +

      GET /api/v1/namespaces/{ns}/messages

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/rotate_dx_certs.html b/head/tutorials/rotate_dx_certs.html deleted file mode 100644 index 35be440bd..000000000 --- a/head/tutorials/rotate_dx_certs.html +++ /dev/null @@ -1,550 +0,0 @@ - - - - - - - - - Rotate Data Exchange Certificates - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -pages.rotate_dx_certs | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Rotate Data Exchange Certificates - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Quick reference
      2. -
      3. Generate new certs and keys
      4. -
      5. Install the new certs on each Data Exchange File System
      6. -
      7. Remove old certs from the peer-certs directory
      8. -
      9. Restart each Data Exchange process
      10. -
      11. PATCH the node identity using the FireFly API
          -
        1. Request
        2. -
        3. Response
        4. -
        5. Request
        6. -
        7. Response
        8. -
        -
      12. -

      -

      - - - Quick reference - - -

      - - -

      At some point you may need to rotate certificates on your Data Exchange nodes. FireFly provides an API to update a node identity, but there are a few prerequisite steps to load a new certificate on the Data Exchange node itself. This guide will walk you through that process. For more information on different types of identities in FireFly, please see the Reference page on Identities.

      - -
      -

      NOTE: This guide assumes that you are working in a local development environment that was set up with the Getting Started Guide. For a production deployment, the exact process to accomplish each step may be different. For example, you may generate your certs with a CA, or in some other manner. But the high level steps remain the same.

      -
      - -

      The high level steps to the process (described in detail below) are:

      - -
        -
      • Generate new certs and keys
      • -
      • Install new certs and keys on each Data Exchange filesystem
      • -
      • Remove old certs from the peer-certs directory
      • -
      • Restart each Data Exchange process
      • -
      • PATCH the node identity using the FireFly API
      • -
      -

      - - - Generate new certs and keys - - -

      - - -

      To generate a new cert, we’re going to use a self signed certificate generated by openssl. This is how the FireFly CLI generated the original cert that was used when it created your stack.

      - -

      For the first member of a FireFly stack you run:

      - -
      openssl req -new -x509 -nodes -days 365 -subj /CN=dataexchange_0/O=member_0 -keyout key.pem -out cert.pem
      -
      - -

      For the second member:

      - -
      openssl req -new -x509 -nodes -days 365 -subj /CN=dataexchange_1/O=member_1 -keyout key.pem -out cert.pem
      -
      - -
      -

      NOTE: If you perform these two commands in the same directory, the second one will overwrite the output of the first. It is advisable to run them in separate directories, or copy the cert and key to the Data Exchange file system (the next step below) before generating the next cert / key pair.

      -
      -

      - - - Install the new certs on each Data Exchange File System - - -

      - - -

      For a dev environment created with the FireFly CLI, the certificate and key will be located in the /data directory on the Data Exchange node’s file system. You can use the docker cp command to copy the file to the correct location, then set the file ownership correctly.

      - -
      docker cp cert.pem dev_dataexchange_0:/data/cert.pem
      -docker exec dev_dataexchange_0 chown root:root /data/cert.pem
      -
      - -
      -

      NOTE: If your environment is not called dev you may need to change the beginning of the container name in the Docker commands listed in this guide.

      -
      -

      - - - Remove old certs from the peer-certs directory - - -

      - - -

      To clear out the old certs from the first Data Exchange node run:

      - -
      docker exec dev_dataexchange_0 sh -c "rm /data/peer-certs/*.pem"
      -
      - -

      To clear out the old certs from the second Data Exchange node run:

      - -
      docker exec dev_dataexchange_1 sh -c "rm /data/peer-certs/*.pem"
      -
      -

      - - - Restart each Data Exchange process - - -

      - - -

      To restart your Data Exchange processes, run:

      - -
      docker restart dev_dataexchange_0
      -
      - -
      docker restart dev_dataexchange_1
      -
      -

      - - - PATCH the node identity using the FireFly API - - -

      - - -

      The final step is to broadcast the new cert for each node, from the FireFly node that will be using that cert. You will need to lookup the UUID for the node identity in order to update it.

      -

      - - - Request - - -

      - - -

      GET http://localhost:5000/api/v1/namespaces/default/identities

      -

      - - - Response - - -

      - - -

      In the JSON response body, look for the node identity that belongs on this FireFly instance. Here is the node identity from an example stack:

      - -
      ...
      -    {
      -        "id": "20da74a2-d4e6-4eaf-8506-e7cd205d8254",
      -        "did": "did:firefly:node/node_2b9630",
      -        "type": "node",
      -        "parent": "41e93d92-d0da-4e5a-9cee-adf33f017a60",
      -        "namespace": "default",
      -        "name": "node_2b9630",
      -        "profile": {
      -            "cert": "-----BEGIN CERTIFICATE-----\nMIIC1DCCAbwCCQDa9x3wC7wepDANBgkqhkiG9w0BAQsFADAsMRcwFQYDVQQDDA5k\nYXRhZXhjaGFuZ2VfMDERMA8GA1UECgwIbWVtYmVyXzAwHhcNMjMwMjA2MTQwMTEy\nWhcNMjQwMjA2MTQwMTEyWjAsMRcwFQYDVQQDDA5kYXRhZXhjaGFuZ2VfMDERMA8G\nA1UECgwIbWVtYmVyXzAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJ\nSgtJw99V7EynvqxWdJkeiUlOg3y+JtJlhxGC//JLp+4sYCtOMriULNf5ouImxniR\nO2vEd+LNdMuREN4oZdUHtJD4MM7lOFw/0ICNEPJ+oEoUTzOC0OK68sA+OCybeS2L\nmLBu4yvWDkpufR8bxBJfBGarTAFl36ao1Eoogn4m9gmVrX+V5SOKUhyhlHZFkZNb\ne0flwQmDMKg6qAbHf3j8cnrrZp26n68IGjwqySPFIRLFSz28zzMYtyzo4b9cF9NW\nGxusMHsExX5gzlTjNacGx8Tlzwjfolt23D+WHhZX/gekOsFiV78mVjgJanE2ls6D\n5ZlXi5iQSwm8dlmo9RxFAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAAwr4aAvQnXG\nkO3xNO+7NGzbb/Nyck5udiQ3RmlZBEJSUsPCsWd4SBhH7LvgbT9ECuAEjgH+2Ip7\nusd8CROr3sTb9t+7Krk+ljgZirkjq4j/mIRlqHcBJeBtylOz2p0oPsitlI8Yea2D\nQ4/Xru6txUKNK+Yut3G9qvg/vm9TAwkNHSthzb26bI7s6lx9ZSuFbbG6mR+RQ+8A\nU4AX1DVo5QyTwSi1lp0+pKFEgtutmWGYn8oT/ya+OLzj+l7Ul4HE/mEAnvECtA7r\nOC8AEjC5T4gUsLt2IXW9a7lCgovjHjHIySQyqsdYBjkKSn5iw2LRovUWxT1GBvwH\nFkTvCpHhgko=\n-----END CERTIFICATE-----\n",
      -            "endpoint": "https://dataexchange_0:3001",
      -            "id": "member_0/node_2b9630"
      -        },
      -        "messages": {
      -            "claim": "95da690b-bb05-4873-9478-942f607f363a",
      -            "verification": null,
      -            "update": null
      -        },
      -        "created": "2023-02-06T14:02:50.874319382Z",
      -        "updated": "2023-02-06T14:02:50.874319382Z"
      -    },
      -...
      -
      - -

      Copy the UUID from the id field, and add that to the PATCH request. In this case it is 20da74a2-d4e6-4eaf-8506-e7cd205d8254.

      -

      - - - Request - - -

      - - -

      Now we will send the new certificate to FireFly. Put the contents of your cert.pem file in the cert field.

      - -
      -

      NOTE: Usually the cert.pem file will contain line breaks which will not be handled correctly by JSON parsers. Be sure to replace those line breaks with \n so that the cert field is all on one line as shown below.

      -
      - -

      PATCH http://localhost:5000/api/v1/namespaces/default/identities/20da74a2-d4e6-4eaf-8506-e7cd205d8254

      - -
      {
      -  "profile": {
      -    "cert": "-----BEGIN CERTIFICATE-----\nMIIC1DCCAbwCCQDeKjPt3siRHzANBgkqhkiG9w0BAQsFADAsMRcwFQYDVQQDDA5k\nYXRhZXhjaGFuZ2VfMDERMA8GA1UECgwIbWVtYmVyXzAwHhcNMjMwMjA2MTYxNTU3\nWhcNMjQwMjA2MTYxNTU3WjAsMRcwFQYDVQQDDA5kYXRhZXhjaGFuZ2VfMDERMA8G\nA1UECgwIbWVtYmVyXzAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCy\nEJaqDskxhkPHmCqj5Mxq+9QX1ec19fulh9Zvp8dLA6bfeg4fdQ9Ha7APG6w/0K8S\nEaXOflSpXb0oKMe42amIqwvQaqTOA97HIe5R2HZxA1RWqXf+AueowWgI4crxr2M0\nZCiXHyiZKpB8nzO+bdO9AKeYnzbhCsO0gq4LPOgpPjYkHPKhabeMVZilZypDVOGk\nLU+ReQoVEZ+P+t0B/9v+5IQ2yyH41n5dh6lKv4mIaC1OBtLc+Pd6DtbRb7pijkgo\n+LyqSdl24RHhSgZcTtMQfoRIVzvMkhF5SiJczOC4R8hmt62jtWadO4D5ZtJ7N37/\noAG/7KJO4HbByVf4xOcDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKWbQftV05Fc\niwVtZpyvP2l4BvKXvMOyg4GKcnBSZol7UwCNrjwYSjqgqyuedTSZXHNhGFxQbfAC\n94H25bDhWOfd7JH2D7E6RRe3eD9ouDnrt+de7JulsNsFK23IM4Nz5mRhRMVy/5p5\n9yrsdW+5MXKWgz9569TIjiciCf0JqB7iVPwRrQyz5gqOiPf81PlyaMDeaH9wXtra\n/1ZRipXiGiNroSPFrQjIVLKWdmnhWKWjFXsiijdSV/5E+8dBb3t//kEZ8UWfBrc4\nfYVuZ8SJtm2ZzBmit3HFatDlFTE8PanRf/UDALUp4p6YKJ8NE2T8g/uDE0ee1pnF\nIDsrC1GX7rs=\n-----END CERTIFICATE-----\n",
      -    "endpoint": "https://dataexchange_0:3001",
      -    "id": "member_0"
      -  }
      -}
      -
      -

      - - - Response - - -

      - - -
      {
      -  "id": "20da74a2-d4e6-4eaf-8506-e7cd205d8254",
      -  "did": "did:firefly:node/node_2b9630",
      -  "type": "node",
      -  "parent": "41e93d92-d0da-4e5a-9cee-adf33f017a60",
      -  "namespace": "default",
      -  "name": "node_2b9630",
      -  "profile": {
      -    "cert": "-----BEGIN CERTIFICATE-----\nMIIC1DCCAbwCCQDeKjPt3siRHzANBgkqhkiG9w0BAQsFADAsMRcwFQYDVQQDDA5k\nYXRhZXhjaGFuZ2VfMDERMA8GA1UECgwIbWVtYmVyXzAwHhcNMjMwMjA2MTYxNTU3\nWhcNMjQwMjA2MTYxNTU3WjAsMRcwFQYDVQQDDA5kYXRhZXhjaGFuZ2VfMDERMA8G\nA1UECgwIbWVtYmVyXzAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCy\nEJaqDskxhkPHmCqj5Mxq+9QX1ec19fulh9Zvp8dLA6bfeg4fdQ9Ha7APG6w/0K8S\nEaXOflSpXb0oKMe42amIqwvQaqTOA97HIe5R2HZxA1RWqXf+AueowWgI4crxr2M0\nZCiXHyiZKpB8nzO+bdO9AKeYnzbhCsO0gq4LPOgpPjYkHPKhabeMVZilZypDVOGk\nLU+ReQoVEZ+P+t0B/9v+5IQ2yyH41n5dh6lKv4mIaC1OBtLc+Pd6DtbRb7pijkgo\n+LyqSdl24RHhSgZcTtMQfoRIVzvMkhF5SiJczOC4R8hmt62jtWadO4D5ZtJ7N37/\noAG/7KJO4HbByVf4xOcDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKWbQftV05Fc\niwVtZpyvP2l4BvKXvMOyg4GKcnBSZol7UwCNrjwYSjqgqyuedTSZXHNhGFxQbfAC\n94H25bDhWOfd7JH2D7E6RRe3eD9ouDnrt+de7JulsNsFK23IM4Nz5mRhRMVy/5p5\n9yrsdW+5MXKWgz9569TIjiciCf0JqB7iVPwRrQyz5gqOiPf81PlyaMDeaH9wXtra\n/1ZRipXiGiNroSPFrQjIVLKWdmnhWKWjFXsiijdSV/5E+8dBb3t//kEZ8UWfBrc4\nfYVuZ8SJtm2ZzBmit3HFatDlFTE8PanRf/UDALUp4p6YKJ8NE2T8g/uDE0ee1pnF\nIDsrC1GX7rs=\n-----END CERTIFICATE-----\n",
      -    "endpoint": "https://dataexchange_0:3001",
      -    "id": "member_0"
      -  },
      -  "messages": {
      -    "claim": "95da690b-bb05-4873-9478-942f607f363a",
      -    "verification": null,
      -    "update": "5782cd7c-7643-4d7f-811b-02765a7aaec5"
      -  },
      -  "created": "2023-02-06T14:02:50.874319382Z",
      -  "updated": "2023-02-06T14:02:50.874319382Z"
      -}
      -
      - -

      Repeat these requests for the second member/node running on port 5001. After that you should be back up and running with your new certs, and you should be able to send private messages again.

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/rotate_dx_certs/index.html b/head/tutorials/rotate_dx_certs/index.html new file mode 100644 index 000000000..bfaf781ea --- /dev/null +++ b/head/tutorials/rotate_dx_certs/index.html @@ -0,0 +1,3706 @@ + + + + + + + + + + + + + + + + + + + + + + + Rotate DX Certs - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Rotate DX Certs

      + +

      Quick reference

      +

      At some point you may need to rotate certificates on your Data Exchange nodes. FireFly provides an API to update a node identity, but there are a few prerequisite steps to load a new certificate on the Data Exchange node itself. This guide will walk you through that process. For more information on different types of identities in FireFly, please see the Reference page on Identities.

      +
      +

      NOTE: This guide assumes that you are working in a local development environment that was set up with the Getting Started Guide. For a production deployment, the exact process to accomplish each step may be different. For example, you may generate your certs with a CA, or in some other manner. But the high level steps remain the same.

      +
      +

      The high level steps to the process (described in detail below) are:

      +
        +
      • Generate new certs and keys
      • +
      • Install new certs and keys on each Data Exchange filesystem
      • +
      • Remove old certs from the peer-certs directory
      • +
      • Restart each Data Exchange process
      • +
      • PATCH the node identity using the FireFly API
      • +
      +

      Generate new certs and keys

      +

      To generate a new cert, we're going to use a self signed certificate generated by openssl. This is how the FireFly CLI generated the original cert that was used when it created your stack.

      +

      For the first member of a FireFly stack you run:

      +
      openssl req -new -x509 -nodes -days 365 -subj /CN=dataexchange_0/O=member_0 -keyout key.pem -out cert.pem
      +
      +

      For the second member:

      +
      openssl req -new -x509 -nodes -days 365 -subj /CN=dataexchange_1/O=member_1 -keyout key.pem -out cert.pem
      +
      +
      +

      NOTE: If you perform these two commands in the same directory, the second one will overwrite the output of the first. It is advisable to run them in separate directories, or copy the cert and key to the Data Exchange file system (the next step below) before generating the next cert / key pair.

      +
      +

      Install the new certs on each Data Exchange File System

      +

      For a dev environment created with the FireFly CLI, the certificate and key will be located in the /data directory on the Data Exchange node's file system. You can use the docker cp command to copy the file to the correct location, then set the file ownership correctly.

      +
      docker cp cert.pem dev_dataexchange_0:/data/cert.pem
      +docker exec dev_dataexchange_0 chown root:root /data/cert.pem
      +
      +
      +

      NOTE: If your environment is not called dev you may need to change the beginning of the container name in the Docker commands listed in this guide.

      +
      +

      Remove old certs from the peer-certs directory

      +

      To clear out the old certs from the first Data Exchange node run:

      +
      docker exec dev_dataexchange_0 sh -c "rm /data/peer-certs/*.pem"
      +
      +

      To clear out the old certs from the second Data Exchange node run:

      +
      docker exec dev_dataexchange_1 sh -c "rm /data/peer-certs/*.pem"
      +
      +

      Restart each Data Exchange process

      +

      To restart your Data Exchange processes, run:

      +
      docker restart dev_dataexchange_0
      +
      +
      docker restart dev_dataexchange_1
      +
      +

      PATCH the node identity using the FireFly API

      +

      The final step is to broadcast the new cert for each node, from the FireFly node that will be using that cert. You will need to lookup the UUID for the node identity in order to update it.

      +

      Request

      +

      GET http://localhost:5000/api/v1/namespaces/default/identities

      +

      Response

      +

      In the JSON response body, look for the node identity that belongs on this FireFly instance. Here is the node identity from an example stack:

      +
      ...
      +    {
      +        "id": "20da74a2-d4e6-4eaf-8506-e7cd205d8254",
      +        "did": "did:firefly:node/node_2b9630",
      +        "type": "node",
      +        "parent": "41e93d92-d0da-4e5a-9cee-adf33f017a60",
      +        "namespace": "default",
      +        "name": "node_2b9630",
      +        "profile": {
      +            "cert": "-----BEGIN CERTIFICATE-----\nMIIC1DCCAbwCCQDa9x3wC7wepDANBgkqhkiG9w0BAQsFADAsMRcwFQYDVQQDDA5k\nYXRhZXhjaGFuZ2VfMDERMA8GA1UECgwIbWVtYmVyXzAwHhcNMjMwMjA2MTQwMTEy\nWhcNMjQwMjA2MTQwMTEyWjAsMRcwFQYDVQQDDA5kYXRhZXhjaGFuZ2VfMDERMA8G\nA1UECgwIbWVtYmVyXzAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJ\nSgtJw99V7EynvqxWdJkeiUlOg3y+JtJlhxGC//JLp+4sYCtOMriULNf5ouImxniR\nO2vEd+LNdMuREN4oZdUHtJD4MM7lOFw/0ICNEPJ+oEoUTzOC0OK68sA+OCybeS2L\nmLBu4yvWDkpufR8bxBJfBGarTAFl36ao1Eoogn4m9gmVrX+V5SOKUhyhlHZFkZNb\ne0flwQmDMKg6qAbHf3j8cnrrZp26n68IGjwqySPFIRLFSz28zzMYtyzo4b9cF9NW\nGxusMHsExX5gzlTjNacGx8Tlzwjfolt23D+WHhZX/gekOsFiV78mVjgJanE2ls6D\n5ZlXi5iQSwm8dlmo9RxFAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAAwr4aAvQnXG\nkO3xNO+7NGzbb/Nyck5udiQ3RmlZBEJSUsPCsWd4SBhH7LvgbT9ECuAEjgH+2Ip7\nusd8CROr3sTb9t+7Krk+ljgZirkjq4j/mIRlqHcBJeBtylOz2p0oPsitlI8Yea2D\nQ4/Xru6txUKNK+Yut3G9qvg/vm9TAwkNHSthzb26bI7s6lx9ZSuFbbG6mR+RQ+8A\nU4AX1DVo5QyTwSi1lp0+pKFEgtutmWGYn8oT/ya+OLzj+l7Ul4HE/mEAnvECtA7r\nOC8AEjC5T4gUsLt2IXW9a7lCgovjHjHIySQyqsdYBjkKSn5iw2LRovUWxT1GBvwH\nFkTvCpHhgko=\n-----END CERTIFICATE-----\n",
      +            "endpoint": "https://dataexchange_0:3001",
      +            "id": "member_0/node_2b9630"
      +        },
      +        "messages": {
      +            "claim": "95da690b-bb05-4873-9478-942f607f363a",
      +            "verification": null,
      +            "update": null
      +        },
      +        "created": "2023-02-06T14:02:50.874319382Z",
      +        "updated": "2023-02-06T14:02:50.874319382Z"
      +    },
      +...
      +
      +

      Copy the UUID from the id field, and add that to the PATCH request. In this case it is 20da74a2-d4e6-4eaf-8506-e7cd205d8254.

      +

      Request

      +

      Now we will send the new certificate to FireFly. Put the contents of your cert.pem file in the cert field.

      +
      +

      NOTE: Usually the cert.pem file will contain line breaks which will not be handled correctly by JSON parsers. Be sure to replace those line breaks with \n so that the cert field is all on one line as shown below.

      +
      +

      PATCH http://localhost:5000/api/v1/namespaces/default/identities/20da74a2-d4e6-4eaf-8506-e7cd205d8254

      +
      {
      +  "profile": {
      +    "cert": "-----BEGIN CERTIFICATE-----\nMIIC1DCCAbwCCQDeKjPt3siRHzANBgkqhkiG9w0BAQsFADAsMRcwFQYDVQQDDA5k\nYXRhZXhjaGFuZ2VfMDERMA8GA1UECgwIbWVtYmVyXzAwHhcNMjMwMjA2MTYxNTU3\nWhcNMjQwMjA2MTYxNTU3WjAsMRcwFQYDVQQDDA5kYXRhZXhjaGFuZ2VfMDERMA8G\nA1UECgwIbWVtYmVyXzAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCy\nEJaqDskxhkPHmCqj5Mxq+9QX1ec19fulh9Zvp8dLA6bfeg4fdQ9Ha7APG6w/0K8S\nEaXOflSpXb0oKMe42amIqwvQaqTOA97HIe5R2HZxA1RWqXf+AueowWgI4crxr2M0\nZCiXHyiZKpB8nzO+bdO9AKeYnzbhCsO0gq4LPOgpPjYkHPKhabeMVZilZypDVOGk\nLU+ReQoVEZ+P+t0B/9v+5IQ2yyH41n5dh6lKv4mIaC1OBtLc+Pd6DtbRb7pijkgo\n+LyqSdl24RHhSgZcTtMQfoRIVzvMkhF5SiJczOC4R8hmt62jtWadO4D5ZtJ7N37/\noAG/7KJO4HbByVf4xOcDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKWbQftV05Fc\niwVtZpyvP2l4BvKXvMOyg4GKcnBSZol7UwCNrjwYSjqgqyuedTSZXHNhGFxQbfAC\n94H25bDhWOfd7JH2D7E6RRe3eD9ouDnrt+de7JulsNsFK23IM4Nz5mRhRMVy/5p5\n9yrsdW+5MXKWgz9569TIjiciCf0JqB7iVPwRrQyz5gqOiPf81PlyaMDeaH9wXtra\n/1ZRipXiGiNroSPFrQjIVLKWdmnhWKWjFXsiijdSV/5E+8dBb3t//kEZ8UWfBrc4\nfYVuZ8SJtm2ZzBmit3HFatDlFTE8PanRf/UDALUp4p6YKJ8NE2T8g/uDE0ee1pnF\nIDsrC1GX7rs=\n-----END CERTIFICATE-----\n",
      +    "endpoint": "https://dataexchange_0:3001",
      +    "id": "member_0"
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "id": "20da74a2-d4e6-4eaf-8506-e7cd205d8254",
      +  "did": "did:firefly:node/node_2b9630",
      +  "type": "node",
      +  "parent": "41e93d92-d0da-4e5a-9cee-adf33f017a60",
      +  "namespace": "default",
      +  "name": "node_2b9630",
      +  "profile": {
      +    "cert": "-----BEGIN CERTIFICATE-----\nMIIC1DCCAbwCCQDeKjPt3siRHzANBgkqhkiG9w0BAQsFADAsMRcwFQYDVQQDDA5k\nYXRhZXhjaGFuZ2VfMDERMA8GA1UECgwIbWVtYmVyXzAwHhcNMjMwMjA2MTYxNTU3\nWhcNMjQwMjA2MTYxNTU3WjAsMRcwFQYDVQQDDA5kYXRhZXhjaGFuZ2VfMDERMA8G\nA1UECgwIbWVtYmVyXzAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCy\nEJaqDskxhkPHmCqj5Mxq+9QX1ec19fulh9Zvp8dLA6bfeg4fdQ9Ha7APG6w/0K8S\nEaXOflSpXb0oKMe42amIqwvQaqTOA97HIe5R2HZxA1RWqXf+AueowWgI4crxr2M0\nZCiXHyiZKpB8nzO+bdO9AKeYnzbhCsO0gq4LPOgpPjYkHPKhabeMVZilZypDVOGk\nLU+ReQoVEZ+P+t0B/9v+5IQ2yyH41n5dh6lKv4mIaC1OBtLc+Pd6DtbRb7pijkgo\n+LyqSdl24RHhSgZcTtMQfoRIVzvMkhF5SiJczOC4R8hmt62jtWadO4D5ZtJ7N37/\noAG/7KJO4HbByVf4xOcDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKWbQftV05Fc\niwVtZpyvP2l4BvKXvMOyg4GKcnBSZol7UwCNrjwYSjqgqyuedTSZXHNhGFxQbfAC\n94H25bDhWOfd7JH2D7E6RRe3eD9ouDnrt+de7JulsNsFK23IM4Nz5mRhRMVy/5p5\n9yrsdW+5MXKWgz9569TIjiciCf0JqB7iVPwRrQyz5gqOiPf81PlyaMDeaH9wXtra\n/1ZRipXiGiNroSPFrQjIVLKWdmnhWKWjFXsiijdSV/5E+8dBb3t//kEZ8UWfBrc4\nfYVuZ8SJtm2ZzBmit3HFatDlFTE8PanRf/UDALUp4p6YKJ8NE2T8g/uDE0ee1pnF\nIDsrC1GX7rs=\n-----END CERTIFICATE-----\n",
      +    "endpoint": "https://dataexchange_0:3001",
      +    "id": "member_0"
      +  },
      +  "messages": {
      +    "claim": "95da690b-bb05-4873-9478-942f607f363a",
      +    "verification": null,
      +    "update": "5782cd7c-7643-4d7f-811b-02765a7aaec5"
      +  },
      +  "created": "2023-02-06T14:02:50.874319382Z",
      +  "updated": "2023-02-06T14:02:50.874319382Z"
      +}
      +
      +

      Repeat these requests for the second member/node running on port 5001. After that you should be back up and running with your new certs, and you should be able to send private messages again.

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/tokens/erc1155.html b/head/tutorials/tokens/erc1155.html deleted file mode 100644 index a658d2c8f..000000000 --- a/head/tutorials/tokens/erc1155.html +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - - - ERC-1155 - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -ERC-1155 | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Use ERC-1155 tokens - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Previous steps: Install the FireFly CLI
      2. -
      3. Create a stack with an ERC-1155 connector
      4. -
      5. About the sample token contract
      6. -
      7. Use the Sandbox (optional)
      8. -
      9. Create a pool (using default token contract)
      10. -
      11. Create a pool (from a deployed token contract)
      12. -
      13. Mint tokens
      14. -
      15. Transfer tokens
      16. -
      17. Sending data with a transfer
          -
        1. Broadcast message
        2. -
        3. Private message
        4. -
        -
      18. -
      19. Burn tokens
      20. -
      21. Token approvals
          -
        1. Request
        2. -
        3. Response
        4. -
        -
      22. -

      -

      - - - Previous steps: Install the FireFly CLI - - -

      - -

      If you haven’t set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      - -

      ← ① Install the FireFly CLI

      -

      - - - Create a stack with an ERC-1155 connector - - -

      - -

      The default token connector that the FireFly CLI sets up is for ERC-20 and ERC-721. If you would like to work with ERC-1155 tokens, you need to create a stack that is configured to use that token connector. To do that, run:

      -
      ff init ethereum -t erc-1155
      -
      - -

      Then run:

      -
      ff start <your_stack_name>
      -
      -

      - - - About the sample token contract - - -

      - -

      When the FireFly CLI set up your FireFly stack, it also deployed a sample ERC-1155 contract that conforms to the expectations of the token connector. When you create a token pool through FireFly’s token APIs, that contract will be used by default.

      - -
      ⚠️ WARNING: The default token contract that was deployed by the FireFly CLI is only provided for the purpose of learning about FireFly. It is not a production grade contract. If you intend to deploy a production application using tokens on FireFly, you should research token contract best practices. For details, please see the source code for the contract that was deployed.
      -

      - - - Use the Sandbox (optional) - - -

      - -

      At this point you could open the Sandbox at http://127.0.0.1:5109/home?action=tokens.pools and perform the functions outlined in the rest of this guide. Or you can keep reading to learn how to build HTTP requests to work with tokens in FireFly. -Tokens Sandbox

      -

      - - - Create a pool (using default token contract) - - -

      - -

      After your stack is up and running, the first thing you need to do is create a token pool. Every application will need at least one token pool. At a minimum, you must always specify a name and type (fungible or nonfungible) for the pool.

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      - -
      {
      -  "name": "testpool",
      -  "type": "fungible"
      -}
      -
      - -

      Other parameters:

      -
        -
      • You must specify a connector if you have configured multiple token connectors
      • -
      • You may pass through a config object of additional parameters, if supported by your token connector
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      -

      - - - Create a pool (from a deployed token contract) - - -

      - -

      If you wish to use a contract that is already on the chain, it is recommended that you first upload the ABI for your specific contract by creating a FireFly contract interface. This step is optional if you’re certain that your ERC-1155 ABI conforms to the default expectations of the token connector, but is generally recommended.

      - -

      See the README of the token connector for details on what contract variants can currently be understood.

      - -

      You can pass a config object with an address when you make the request to create the token pool, and if you created a contract interface, you can include the interface ID as well.

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      - -
      {
      -  "name": "testpool",
      -  "type": "fungible",
      -  "interface": {
      -    "id": "b9e5e1ce-97bb-4a35-a25c-52c7c3f523d8"
      -  },
      -  "config": {
      -    "address": "0xb1C845D32966c79E23f733742Ed7fCe4B41901FC"
      -  }
      -}
      -
      -

      - - - Mint tokens - - -

      - - -

      Once you have a token pool, you can mint tokens within it. With the default sample contract, -only the creator of a pool is allowed to mint - but each contract may define its own permission model.

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/mint

      - -
      {
      -  "amount": 10
      -}
      -
      - -

      Other parameters:

      -
        -
      • You must specify a pool name if you’ve created more than one pool
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      • You may specify to if you’d like to send the minted tokens to a specific identity (default is the same as key)
      • -
      -

      - - - Transfer tokens - - -

      - - -

      You may transfer tokens within a pool by specifying an amount and a destination understood by the connector (i.e. an Ethereum address). -With the default sample contract, only the owner of a token or another approved account may transfer it away - but each contract may define its -own permission model.

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      - -
      {
      -  "amount": 1,
      -  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f"
      -}
      -
      - -
      -

      NOTE: When transferring a non-fungible token, the amount must always be 1. The tokenIndex field is also required when transferring a non-fungible token.

      -
      - -

      Other parameters:

      -
        -
      • You must specify a pool name if you’ve created more than one pool
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      • You may specify from if you’d like to send tokens from a specific identity (default is the same as key)
      • -
      -

      - - - Sending data with a transfer - - -

      - - -

      All transfers (as well as mint/burn operations) support an optional message parameter that contains a broadcast or private -message to be sent along with the transfer. This message follows the same convention as other FireFly messages, and may be comprised -of text or blob data, and can provide context, metadata, or other supporting information about the transfer. The message will be -batched, hashed, and pinned to the primary blockchain.

      - -

      The message ID and hash will also be sent to the token connector as part of the transfer operation, to be written to the token blockchain -when the transaction is submitted. All recipients of the message will then be able to correlate the message with the token transfer.

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      -

      - - - Broadcast message - - -

      - -
      {
      -  "amount": 1,
      -  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      -  "message": {
      -    "data": [{
      -      "value": "payment for goods"
      -    }]
      -  }
      -}
      -
      -

      - - - Private message - - -

      - -
      {
      -  "amount": 1,
      -  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      -  "message": {
      -    "header": {
      -      "type": "transfer_private",
      -    },
      -    "group": {
      -      "members": [{
      -          "identity": "org_1"
      -      }]
      -    },
      -    "data": [{
      -      "value": "payment for goods"
      -    }]
      -  }
      -}
      -
      - -

      Note that all parties in the network will be able to see the transfer (including the message ID and hash), but only -the recipients of the message will be able to view the actual message data.

      -

      - - - Burn tokens - - -

      - - -

      You may burn tokens by simply specifying an amount. With the default sample contract, only the owner of a token or another approved account may -burn it - but each connector may define its own permission model.

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/burn

      - -
      {
      -  "amount": 1,
      -}
      -
      - -
      -

      NOTE: When burning a non-fungible token, the amount must always be 1. The tokenIndex field is also required when burning a non-fungible token.

      -
      - -

      Other parameters:

      -
        -
      • You must specify a pool name if you’ve created more than one pool
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      • You may specify from if you’d like to burn tokens from a specific identity (default is the same as key)
      • -
      -

      - - - Token approvals - - -

      - -

      You can also approve other wallets to transfer tokens on your behalf with the /approvals API. The important fields in a token approval API request are as follows:

      - -
        -
      • approved: Sets whether another account is allowed to transfer tokens out of this wallet or not. If not specified, will default to true. Setting to false can revoke an existing approval.
      • -
      • operator: The other account that is allowed to transfer tokens out of the wallet specified in the key field
      • -
      • key: The wallet address for the approval. If not set, it defaults to the address of the FireFly node submitting the transaction
      • -
      - -

      Here is an example request that would let the signing account 0x634ee8c7d0894d086c7af1fc8514736aed251528 transfer any amount of tokens from my wallet

      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/approvals

      -
      {
      -  "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528"
      -}
      -
      -

      - - - Response - - -

      - -
      {
      -    "localId": "46fef50a-cf93-4f92-acf8-fae161b37362",
      -    "pool": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      -    "connector": "erc1155",
      -    "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528",
      -    "approved": true,
      -    "tx": {
      -        "type": "token_approval",
      -        "id": "00faa011-f42c-403d-a047-2df7318967cd"
      -    }
      -}
      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/tokens/erc1155/index.html b/head/tutorials/tokens/erc1155/index.html new file mode 100644 index 000000000..3043d120a --- /dev/null +++ b/head/tutorials/tokens/erc1155/index.html @@ -0,0 +1,3826 @@ + + + + + + + + + + + + + + + + + + + + + + + ERC-1155 - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Use ERC-1155 tokens

      +

      Previous steps: Install the FireFly CLI

      +

      If you haven't set up the FireFly CLI already, please go back to the Getting Started guide and read the section on how to Install the FireFly CLI.

      +

      ← ① Install the FireFly CLI

      +

      Create a stack with an ERC-1155 connector

      +

      The default token connector that the FireFly CLI sets up is for ERC-20 and ERC-721. If you would like to work with ERC-1155 tokens, you need to create a stack that is configured to use that token connector. To do that, run:

      +
      ff init ethereum -t erc-1155
      +
      +

      Then run:

      +
      ff start <your_stack_name>
      +
      +

      About the sample token contract

      +

      When the FireFly CLI set up your FireFly stack, it also deployed a sample ERC-1155 contract that conforms to the expectations of the token connector. When you create a token pool through FireFly's token APIs, that contract will be used by default.

      +
      ⚠️ WARNING: The default token contract that was deployed by the FireFly CLI is only provided for the purpose of learning about FireFly. It is not a production grade contract. If you intend to deploy a production application using tokens on FireFly, you should research token contract best practices. For details, please see the source code for the contract that was deployed.
      + +

      Use the Sandbox (optional)

      +

      At this point you could open the Sandbox at http://127.0.0.1:5109/home?action=tokens.pools and perform the functions outlined in the rest of this guide. Or you can keep reading to learn how to build HTTP requests to work with tokens in FireFly. +Tokens Sandbox

      +

      Create a pool (using default token contract)

      +

      After your stack is up and running, the first thing you need to do is create a token pool. Every application will need at least one token pool. At a minimum, you must always specify a name and type (fungible or nonfungible) for the pool.

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      +
      {
      +  "name": "testpool",
      +  "type": "fungible"
      +}
      +
      +

      Other parameters:

      +
        +
      • You must specify a connector if you have configured multiple token connectors
      • +
      • You may pass through a config object of additional parameters, if supported by your token connector
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      +

      Create a pool (from a deployed token contract)

      +

      If you wish to use a contract that is already on the chain, it is recommended that you first upload the ABI for your specific contract by creating a FireFly contract interface. This step is optional if you're certain that your ERC-1155 ABI conforms to the default expectations of the token connector, but is generally recommended.

      +

      See the README of the token connector for details on what contract variants can currently be understood.

      +

      You can pass a config object with an address when you make the request to create the token pool, and if you created a contract interface, you can include the interface ID as well.

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      +
      {
      +  "name": "testpool",
      +  "type": "fungible",
      +  "interface": {
      +    "id": "b9e5e1ce-97bb-4a35-a25c-52c7c3f523d8"
      +  },
      +  "config": {
      +    "address": "0xb1C845D32966c79E23f733742Ed7fCe4B41901FC"
      +  }
      +}
      +
      +

      Mint tokens

      +

      Once you have a token pool, you can mint tokens within it. With the default sample contract, +only the creator of a pool is allowed to mint - but each contract may define its own permission model.

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/mint

      +
      {
      +  "amount": 10
      +}
      +
      +

      Other parameters:

      +
        +
      • You must specify a pool name if you've created more than one pool
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      • You may specify to if you'd like to send the minted tokens to a specific identity (default is the same as key)
      • +
      +

      Transfer tokens

      +

      You may transfer tokens within a pool by specifying an amount and a destination understood by the connector (i.e. an Ethereum address). +With the default sample contract, only the owner of a token or another approved account may transfer it away - but each contract may define its +own permission model.

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      +
      {
      +  "amount": 1,
      +  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f"
      +}
      +
      +
      +

      NOTE: When transferring a non-fungible token, the amount must always be 1. The tokenIndex field is also required when transferring a non-fungible token.

      +
      +

      Other parameters:

      +
        +
      • You must specify a pool name if you've created more than one pool
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      • You may specify from if you'd like to send tokens from a specific identity (default is the same as key)
      • +
      +

      Sending data with a transfer

      +

      All transfers (as well as mint/burn operations) support an optional message parameter that contains a broadcast or private +message to be sent along with the transfer. This message follows the same convention as other FireFly messages, and may be comprised +of text or blob data, and can provide context, metadata, or other supporting information about the transfer. The message will be +batched, hashed, and pinned to the primary blockchain.

      +

      The message ID and hash will also be sent to the token connector as part of the transfer operation, to be written to the token blockchain +when the transaction is submitted. All recipients of the message will then be able to correlate the message with the token transfer.

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      +

      Broadcast message

      +
      {
      +  "amount": 1,
      +  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      +  "message": {
      +    "data": [
      +      {
      +        "value": "payment for goods"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Private message

      +
      {
      +  "amount": 1,
      +  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      +  "message": {
      +    "header": {
      +      "type": "transfer_private"
      +    },
      +    "group": {
      +      "members": [
      +        {
      +          "identity": "org_1"
      +        }
      +      ]
      +    },
      +    "data": [
      +      {
      +        "value": "payment for goods"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Note that all parties in the network will be able to see the transfer (including the message ID and hash), but only +the recipients of the message will be able to view the actual message data.

      +

      Burn tokens

      +

      You may burn tokens by simply specifying an amount. With the default sample contract, only the owner of a token or another approved account may +burn it - but each connector may define its own permission model.

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/burn

      +
      {
      +  "amount": 1
      +}
      +
      +
      +

      NOTE: When burning a non-fungible token, the amount must always be 1. The tokenIndex field is also required when burning a non-fungible token.

      +
      +

      Other parameters:

      +
        +
      • You must specify a pool name if you've created more than one pool
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      • You may specify from if you'd like to burn tokens from a specific identity (default is the same as key)
      • +
      +

      Token approvals

      +

      You can also approve other wallets to transfer tokens on your behalf with the /approvals API. The important fields in a token approval API request are as follows:

      +
        +
      • approved: Sets whether another account is allowed to transfer tokens out of this wallet or not. If not specified, will default to true. Setting to false can revoke an existing approval.
      • +
      • operator: The other account that is allowed to transfer tokens out of the wallet specified in the key field
      • +
      • key: The wallet address for the approval. If not set, it defaults to the address of the FireFly node submitting the transaction
      • +
      +

      Here is an example request that would let the signing account 0x634ee8c7d0894d086c7af1fc8514736aed251528 transfer any amount of tokens from my wallet

      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/approvals

      +
      {
      +  "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528"
      +}
      +
      +

      Response

      +
      {
      +  "localId": "46fef50a-cf93-4f92-acf8-fae161b37362",
      +  "pool": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      +  "connector": "erc1155",
      +  "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528",
      +  "approved": true,
      +  "tx": {
      +    "type": "token_approval",
      +    "id": "00faa011-f42c-403d-a047-2df7318967cd"
      +  }
      +}
      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/tokens/erc20.html b/head/tutorials/tokens/erc20.html deleted file mode 100644 index 6791a7131..000000000 --- a/head/tutorials/tokens/erc20.html +++ /dev/null @@ -1,890 +0,0 @@ - - - - - - - - - ERC-20 - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -ERC-20 | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Use ERC-20 tokens - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Previous steps: Start your environment
      2. -
      3. About the sample token contracts
      4. -
      5. Use the Sandbox (optional)
      6. -
      7. Create a pool (using default token factory)
          -
        1. Request
        2. -
        3. Response
        4. -
        5. Get the address of the deployed contract
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        6. -
        -
      8. -
      9. Create a pool (from a deployed token contract)
          -
        1. Request
        2. -
        -
      10. -
      11. Mint tokens
          -
        1. Request
        2. -
        3. Response
        4. -
        -
      12. -
      13. Transfer tokens
          -
        1. Request
        2. -
        3. Response
        4. -
        -
      14. -
      15. Sending data with a transfer
          -
        1. Broadcast message
        2. -
        3. Private message
        4. -
        -
      16. -
      17. Burn tokens
      18. -
      19. Token approvals
          -
        1. Request
        2. -
        3. Response
        4. -
        -
      20. -
      21. Use Metamask
          -
        1. Configure a new network
        2. -
        3. Import tokens
        4. -
        5. Transfer tokens
        6. -
        -
      22. -

      -

      - - - Previous steps: Start your environment - - -

      - -

      If you haven’t started a FireFly stack already, please go to the Getting Started guide on how to Start your environment. This will set up a token connector that works with both ERC-20 and ERC-721 by default.

      - -

      ← ② Start your environment

      -

      - - - About the sample token contracts - - -

      - -

      If you are using the default ERC-20 / ERC-721 token connector, when the FireFly CLI set up your FireFly stack, it also deployed a token factory contract. When you create a token pool through FireFly’s token APIs, the token factory contract will automatically deploy an ERC-20 or ERC-721 contract, based on the pool type in the API request.

      - -
      ⚠️ WARNING: The default token contract that was deployed by the FireFly CLI is only provided for the purpose of learning about FireFly. It is not a production grade contract. If you intend to deploy a production application using tokens on FireFly, you should research token contract best practices. For details, please see the source code for the contract that was deployed.
      -

      - - - Use the Sandbox (optional) - - -

      - -

      At this point you could open the Sandbox at http://127.0.0.1:5109/home?action=tokens.pools and perform the functions outlined in the rest of this guide. Or you can keep reading to learn how to build HTTP requests to work with tokens in FireFly. -Tokens Sandbox

      -

      - - - Create a pool (using default token factory) - - -

      - -

      After your stack is up and running, the first thing you need to do is create a token pool. Every application will need at least one token pool. At a minimum, you must always specify a name and type for the pool.

      - -

      If you’re using the default ERC-20 / ERC-721 token connector and its sample token factory, it will automatically deploy a new ERC-20 contract instance.

      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      - -
      {
      -  "name": "testpool",
      -  "type": "fungible"
      -}
      -
      -

      - - - Response - - -

      - -
      {
      -    "id": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      -    "type": "fungible",
      -    "namespace": "default",
      -    "name": "testpool",
      -    "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "connector": "erc20_erc721",
      -    "tx": {
      -        "type": "token_pool",
      -        "id": "e901921e-ffc4-4776-b20a-9e9face70a47"
      -    }
      -}
      -
      - -

      Other parameters:

      -
        -
      • You must specify a connector if you have configured multiple token connectors
      • -
      • You may pass through a config object of additional parameters, if supported by your token connector
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      -

      - - - Get the address of the deployed contract - - -

      - - -

      To lookup the address of the new contract, you can lookup the token pool by its ID on the API. Creating the token pool will also emit an event which will contain the address. To query the token pool you can make a GET request to the pool’s ID:

      -

      - - - Request - - -

      - -

      GET http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools/5811e8d5-52d0-44b1-8b75-73f5ff88f598

      -

      - - - Response - - -

      - -
      {
      -    "id": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      -    "type": "fungible",
      -    "namespace": "default",
      -    "name": "testpool",
      -    "standard": "ERC20",
      -    "locator": "address=0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c&schema=ERC20WithData&type=fungible",
      -    "decimals": 18,
      -    "connector": "erc20_erc721",
      -    "message": "7e2f6004-31fd-4ba8-9845-15c5fe5fbcd7",
      -    "state": "confirmed",
      -    "created": "2022-04-28T14:03:16.732222381Z",
      -    "info": {
      -        "address": "0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c",
      -        "name": "testpool",
      -        "schema": "ERC20WithData"
      -    },
      -    "tx": {
      -        "type": "token_pool",
      -        "id": "e901921e-ffc4-4776-b20a-9e9face70a47"
      -    }
      -}
      -
      -

      - - - Create a pool (from a deployed token contract) - - -

      - -

      If you wish to index and use a contract that is already on the chain, it is recommended that you first upload the ABI for your specific contract by creating a FireFly contract interface. This step is optional if you’re certain that your ERC-20 ABI conforms to the default expectations of the token connector, but is generally recommended.

      - -

      See the README of the token connector for details on what contract variants can currently be understood.

      - -

      You can pass a config object with an address and blockNumber when you make the request to create the token pool, and if you created a contract interface, you can include the interface ID as well.

      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      - -
      {
      -  "name": "testpool",
      -  "type": "fungible",
      -  "interface": {
      -    "id": "b9e5e1ce-97bb-4a35-a25c-52c7c3f523d8"
      -  },
      -  "config": {
      -    "address": "0xb1C845D32966c79E23f733742Ed7fCe4B41901FC",
      -    "blockNumber": "0"
      -  }
      -}
      -
      -

      - - - Mint tokens - - -

      - - -

      Once you have a token pool, you can mint tokens within it. When using the sample contract deployed by the CLI, only the creator of a pool is allowed to mint, but a different contract may define its own permission model.

      - -
      -

      NOTE: The default sample contract uses 18 decimal places. This means that if you want to create 100 tokens, the number submitted to the API / blockchain should actually be 100×1018 = 100000000000000000000. This allows users to work with “fractional” tokens even though Ethereum virtual machines only support integer arithmetic.

      -
      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/mint

      -
      {
      -  "amount": "100000000000000000000"
      -}
      -
      -

      - - - Response - - -

      - -
      {
      -    "type": "mint",
      -    "localId": "835fe2a1-594b-4336-bc1d-b2f59d51064b",
      -    "pool": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      -    "connector": "erc20_erc721",
      -    "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "from": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "to": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "amount": "100000000000000000000",
      -    "tx": {
      -        "type": "token_transfer",
      -        "id": "3fc97e24-fde1-4e80-bd82-660e479c0c43"
      -    }
      -}
      -
      - -

      Other parameters:

      -
        -
      • You must specify a pool name if you’ve created more than one pool
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      • You may specify to if you’d like to send the minted tokens to a specific identity (default is the same as key)
      • -
      -

      - - - Transfer tokens - - -

      - - -

      You may transfer tokens within a pool by specifying an amount and a destination understood by the connector (i.e. an Ethereum address). With the default sample contract, only the owner of the tokens or another approved account may transfer their tokens, but a different contract may define its own permission model.

      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      -
      {
      -  "amount": "10000000000000000000",
      -  "to": "0xa4222a4ae19448d43a338e6586edd5fb2ac398e1"
      -}
      -
      -

      - - - Response - - -

      - -
      {
      -    "type": "transfer",
      -    "localId": "61f0a71f-712b-4778-8b37-784fbee52657",
      -    "pool": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      -    "connector": "erc20_erc721",
      -    "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "from": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "to": "0xa4222a4ae19448d43a338e6586edd5fb2ac398e1",
      -    "amount": "10000000000000000000",
      -    "tx": {
      -        "type": "token_transfer",
      -        "id": "c0c316a3-23a9-42f3-89b3-1cfdba6c948d"
      -    }
      -}
      -
      - -

      Other parameters:

      -
        -
      • You must specify a pool name if you’ve created more than one pool
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      • You may specify from if you’d like to send tokens from a specific identity (default is the same as key)
      • -
      -

      - - - Sending data with a transfer - - -

      - - -

      All transfers (as well as mint/burn operations) support an optional message parameter that contains a broadcast or private -message to be sent along with the transfer. This message follows the same convention as other FireFly messages, and may be comprised -of text or blob data, and can provide context, metadata, or other supporting information about the transfer. The message will be -batched, hashed, and pinned to the primary blockchain.

      - -

      The message ID and hash will also be sent to the token connector as part of the transfer operation, to be written to the token blockchain -when the transaction is submitted. All recipients of the message will then be able to correlate the message with the token transfer.

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      -

      - - - Broadcast message - - -

      - -
      {
      -  "amount": 1,
      -  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      -  "message": {
      -    "data": [{
      -      "value": "payment for goods"
      -    }]
      -  }
      -}
      -
      -

      - - - Private message - - -

      - -
      {
      -  "amount": 1,
      -  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      -  "message": {
      -    "header": {
      -      "type": "transfer_private",
      -    },
      -    "group": {
      -      "members": [{
      -          "identity": "org_1"
      -      }]
      -    },
      -    "data": [{
      -      "value": "payment for goods"
      -    }]
      -  }
      -}
      -
      - -

      Note that all parties in the network will be able to see the transfer (including the message ID and hash), but only -the recipients of the message will be able to view the actual message data.

      -

      - - - Burn tokens - - -

      - - -

      You may burn tokens by simply specifying an amount. With the default sample contract, only the owner of a token or -another approved account may burn it, but a different contract may define its own permission model.

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/burn

      - -
      {
      -  "amount": 1,
      -}
      -
      - -

      Other parameters:

      -
        -
      • You must specify a pool name if you’ve created more than one pool
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      • You may specify from if you’d like to burn tokens from a specific identity (default is the same as key)
      • -
      -

      - - - Token approvals - - -

      - - -

      You can also approve other wallets to transfer tokens on your behalf with the /approvals API. The important fields in a token approval API request are as follows:

      - -
        -
      • approved: Sets whether another account is allowed to transfer tokens out of this wallet or not. If not specified, will default to true. Setting to false can revoke an existing approval.
      • -
      • operator: The other account that is allowed to transfer tokens out of the wallet specified in the key field.
      • -
      • config.allowance: The number of tokens the other account is allowed to transfer. If 0 or not set, the approval is valid for any number.
      • -
      • key: The wallet address for the approval. If not set, it defaults to the address of the FireFly node submitting the transaction.
      • -
      - -

      Here is an example request that would let the signing account 0x634ee8c7d0894d086c7af1fc8514736aed251528 transfer up to 10×1018 (10000000000000000000) tokens from my wallet

      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/approvals

      -
      {
      -  "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528",
      -  "config": {
      -      "allowance": "10000000000000000000"
      -  }
      -}
      -
      -

      - - - Response - - -

      - -
      {
      -    "localId": "46fef50a-cf93-4f92-acf8-fae161b37362",
      -    "pool": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      -    "connector": "erc20_erc721",
      -    "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528",
      -    "approved": true,
      -    "tx": {
      -        "type": "token_approval",
      -        "id": "00faa011-f42c-403d-a047-2df7318967cd"
      -    },
      -    "config": {
      -        "allowance": "10000000000000000000"
      -    }
      -}
      -
      -

      - - - Use Metamask - - -

      - -

      Now that you have an ERC-20 contract up and running, you may be wondering how to use Metamask (or some other wallet) with this contract. This section will walk you through how to connect Metamask to the blockchain and token contract that FireFly is using.

      -

      - - - Configure a new network - - -

      - -

      The first thing we need to do is tell Metamask how to connect to our local blockchain node. To do that:

      - -
        -
      • Click your account icon
      • -
      • -

        In the drop down menu, click Settings -Metamask Settings

        -
      • -
      • On the left hand side of the page, click Networks
      • -
      • -

        Click the Add a network button -Metamask Add Network

        -
      • -
      • Fill in the network details: -
          -
        • Network Name: FireFly (could be any name)
        • -
        • New RPC URL: http://127.0.0.1:5100
        • -
        • Chain ID: 2021
        • -
        • Currency Symbol: ETH
        • -
        -
      • -
      • Click Save -Metamask Network Details
      • -
      -

      - - - Import tokens - - -

      - -

      Metamask won’t know about our custom ERC-20 contract until we give it the Ethereum address for the contract, so that’s what we’ll do next.

      - -
        -
      • -

        Click on Import tokens -Metamask Import Tokens

        -
      • -
      • Enter the Ethereum address of the contract
      • -
      • Enter a Token Symbol (can be anything you want)
      • -
      • Click Add Custom Token
      • -
      - -
      -

      NOTE: You can find the address of your contract from the response to the request to create the token pool above. You can also do a GET to http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools to lookup your configured token pools.

      -
      - -

      Metamask Import Tokens

      -

      - - - Transfer tokens - - -

      - -

      Now you can copy your account address from your Metamask wallet, and perform a transfer from FireFly’s API (as described above) to your Metamask address.

      - -

      Metamask Account Address

      - -

      After a couple seconds, you should see your tokens show up in your Metamask wallet.

      - -

      Metamask Tokens Received

      - -

      You can also send tokens to a FireFly address or any other Ethereum address from your Metamask wallet.

      - -
      -

      NOTE: You can find the Ethereum addresses for organizations in your FireFly network in the Network → Organizations page in the FireFly explorer. Click on an organization and look under the Verifiers header for the organization’s Ethereum address.

      -
      - -

      Metamask Send Tokens

      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/tokens/erc20/index.html b/head/tutorials/tokens/erc20/index.html new file mode 100644 index 000000000..7fba2570a --- /dev/null +++ b/head/tutorials/tokens/erc20/index.html @@ -0,0 +1,4050 @@ + + + + + + + + + + + + + + + + + + + + + + + ERC-20 - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Use ERC-20 tokens

      +

      Previous steps: Start your environment

      +

      If you haven't started a FireFly stack already, please go to the Getting Started guide on how to Start your environment. This will set up a token connector that works with both ERC-20 and ERC-721 by default.

      +

      ← ② Start your environment

      +

      About the sample token contracts

      +

      If you are using the default ERC-20 / ERC-721 token connector, when the FireFly CLI set up your FireFly stack, it also deployed a token factory contract. When you create a token pool through FireFly's token APIs, the token factory contract will automatically deploy an ERC-20 or ERC-721 contract, based on the pool type in the API request.

      +
      ⚠️ WARNING: The default token contract that was deployed by the FireFly CLI is only provided for the purpose of learning about FireFly. It is not a production grade contract. If you intend to deploy a production application using tokens on FireFly, you should research token contract best practices. For details, please see the source code for the contract that was deployed.
      + +

      Use the Sandbox (optional)

      +

      At this point you could open the Sandbox at http://127.0.0.1:5109/home?action=tokens.pools and perform the functions outlined in the rest of this guide. Or you can keep reading to learn how to build HTTP requests to work with tokens in FireFly. +Tokens Sandbox

      +

      Create a pool (using default token factory)

      +

      After your stack is up and running, the first thing you need to do is create a token pool. Every application will need at least one token pool. At a minimum, you must always specify a name and type for the pool.

      +

      If you're using the default ERC-20 / ERC-721 token connector and its sample token factory, it will automatically deploy a new ERC-20 contract instance.

      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      +
      {
      +  "name": "testpool",
      +  "type": "fungible"
      +}
      +
      +

      Response

      +
      {
      +  "id": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      +  "type": "fungible",
      +  "namespace": "default",
      +  "name": "testpool",
      +  "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "connector": "erc20_erc721",
      +  "tx": {
      +    "type": "token_pool",
      +    "id": "e901921e-ffc4-4776-b20a-9e9face70a47"
      +  }
      +}
      +
      +

      Other parameters:

      +
        +
      • You must specify a connector if you have configured multiple token connectors
      • +
      • You may pass through a config object of additional parameters, if supported by your token connector
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      +

      Get the address of the deployed contract

      +

      To lookup the address of the new contract, you can lookup the token pool by its ID on the API. Creating the token pool will also emit an event which will contain the address. To query the token pool you can make a GET request to the pool's ID:

      +

      Request

      +

      GET http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools/5811e8d5-52d0-44b1-8b75-73f5ff88f598

      +

      Response

      +
      {
      +  "id": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      +  "type": "fungible",
      +  "namespace": "default",
      +  "name": "testpool",
      +  "standard": "ERC20",
      +  "locator": "address=0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c&schema=ERC20WithData&type=fungible",
      +  "decimals": 18,
      +  "connector": "erc20_erc721",
      +  "message": "7e2f6004-31fd-4ba8-9845-15c5fe5fbcd7",
      +  "state": "confirmed",
      +  "created": "2022-04-28T14:03:16.732222381Z",
      +  "info": {
      +    "address": "0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c",
      +    "name": "testpool",
      +    "schema": "ERC20WithData"
      +  },
      +  "tx": {
      +    "type": "token_pool",
      +    "id": "e901921e-ffc4-4776-b20a-9e9face70a47"
      +  }
      +}
      +
      +

      Create a pool (from a deployed token contract)

      +

      If you wish to index and use a contract that is already on the chain, it is recommended that you first upload the ABI for your specific contract by creating a FireFly contract interface. This step is optional if you're certain that your ERC-20 ABI conforms to the default expectations of the token connector, but is generally recommended.

      +

      See the README of the token connector for details on what contract variants can currently be understood.

      +

      You can pass a config object with an address and blockNumber when you make the request to create the token pool, and if you created a contract interface, you can include the interface ID as well.

      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      +
      {
      +  "name": "testpool",
      +  "type": "fungible",
      +  "interface": {
      +    "id": "b9e5e1ce-97bb-4a35-a25c-52c7c3f523d8"
      +  },
      +  "config": {
      +    "address": "0xb1C845D32966c79E23f733742Ed7fCe4B41901FC",
      +    "blockNumber": "0"
      +  }
      +}
      +
      +

      Mint tokens

      +

      Once you have a token pool, you can mint tokens within it. When using the sample contract deployed by the CLI, only the creator of a pool is allowed to mint, but a different contract may define its own permission model.

      +
      +

      NOTE: The default sample contract uses 18 decimal places. This means that if you want to create 100 tokens, the number submitted to the API / blockchain should actually be 100×1018 = 100000000000000000000. This allows users to work with "fractional" tokens even though Ethereum virtual machines only support integer arithmetic.

      +
      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/mint

      +
      {
      +  "amount": "100000000000000000000"
      +}
      +
      +

      Response

      +
      {
      +  "type": "mint",
      +  "localId": "835fe2a1-594b-4336-bc1d-b2f59d51064b",
      +  "pool": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      +  "connector": "erc20_erc721",
      +  "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "from": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "to": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "amount": "100000000000000000000",
      +  "tx": {
      +    "type": "token_transfer",
      +    "id": "3fc97e24-fde1-4e80-bd82-660e479c0c43"
      +  }
      +}
      +
      +

      Other parameters:

      +
        +
      • You must specify a pool name if you've created more than one pool
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      • You may specify to if you'd like to send the minted tokens to a specific identity (default is the same as key)
      • +
      +

      Transfer tokens

      +

      You may transfer tokens within a pool by specifying an amount and a destination understood by the connector (i.e. an Ethereum address). With the default sample contract, only the owner of the tokens or another approved account may transfer their tokens, but a different contract may define its own permission model.

      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      +
      {
      +  "amount": "10000000000000000000",
      +  "to": "0xa4222a4ae19448d43a338e6586edd5fb2ac398e1"
      +}
      +
      +

      Response

      +
      {
      +  "type": "transfer",
      +  "localId": "61f0a71f-712b-4778-8b37-784fbee52657",
      +  "pool": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      +  "connector": "erc20_erc721",
      +  "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "from": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "to": "0xa4222a4ae19448d43a338e6586edd5fb2ac398e1",
      +  "amount": "10000000000000000000",
      +  "tx": {
      +    "type": "token_transfer",
      +    "id": "c0c316a3-23a9-42f3-89b3-1cfdba6c948d"
      +  }
      +}
      +
      +

      Other parameters:

      +
        +
      • You must specify a pool name if you've created more than one pool
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      • You may specify from if you'd like to send tokens from a specific identity (default is the same as key)
      • +
      +

      Sending data with a transfer

      +

      All transfers (as well as mint/burn operations) support an optional message parameter that contains a broadcast or private +message to be sent along with the transfer. This message follows the same convention as other FireFly messages, and may be comprised +of text or blob data, and can provide context, metadata, or other supporting information about the transfer. The message will be +batched, hashed, and pinned to the primary blockchain.

      +

      The message ID and hash will also be sent to the token connector as part of the transfer operation, to be written to the token blockchain +when the transaction is submitted. All recipients of the message will then be able to correlate the message with the token transfer.

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      +

      Broadcast message

      +
      {
      +  "amount": 1,
      +  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      +  "message": {
      +    "data": [
      +      {
      +        "value": "payment for goods"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Private message

      +
      {
      +  "amount": 1,
      +  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      +  "message": {
      +    "header": {
      +      "type": "transfer_private"
      +    },
      +    "group": {
      +      "members": [
      +        {
      +          "identity": "org_1"
      +        }
      +      ]
      +    },
      +    "data": [
      +      {
      +        "value": "payment for goods"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Note that all parties in the network will be able to see the transfer (including the message ID and hash), but only +the recipients of the message will be able to view the actual message data.

      +

      Burn tokens

      +

      You may burn tokens by simply specifying an amount. With the default sample contract, only the owner of a token or +another approved account may burn it, but a different contract may define its own permission model.

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/burn

      +
      {
      +  "amount": 1
      +}
      +
      +

      Other parameters:

      +
        +
      • You must specify a pool name if you've created more than one pool
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      • You may specify from if you'd like to burn tokens from a specific identity (default is the same as key)
      • +
      +

      Token approvals

      +

      You can also approve other wallets to transfer tokens on your behalf with the /approvals API. The important fields in a token approval API request are as follows:

      +
        +
      • approved: Sets whether another account is allowed to transfer tokens out of this wallet or not. If not specified, will default to true. Setting to false can revoke an existing approval.
      • +
      • operator: The other account that is allowed to transfer tokens out of the wallet specified in the key field.
      • +
      • config.allowance: The number of tokens the other account is allowed to transfer. If 0 or not set, the approval is valid for any number.
      • +
      • key: The wallet address for the approval. If not set, it defaults to the address of the FireFly node submitting the transaction.
      • +
      +

      Here is an example request that would let the signing account 0x634ee8c7d0894d086c7af1fc8514736aed251528 transfer up to 10×1018 (10000000000000000000) tokens from my wallet

      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/approvals

      +
      {
      +  "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528",
      +  "config": {
      +    "allowance": "10000000000000000000"
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "localId": "46fef50a-cf93-4f92-acf8-fae161b37362",
      +  "pool": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      +  "connector": "erc20_erc721",
      +  "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528",
      +  "approved": true,
      +  "tx": {
      +    "type": "token_approval",
      +    "id": "00faa011-f42c-403d-a047-2df7318967cd"
      +  },
      +  "config": {
      +    "allowance": "10000000000000000000"
      +  }
      +}
      +
      +

      Use Metamask

      +

      Now that you have an ERC-20 contract up and running, you may be wondering how to use Metamask (or some other wallet) with this contract. This section will walk you through how to connect Metamask to the blockchain and token contract that FireFly is using.

      +

      Configure a new network

      +

      The first thing we need to do is tell Metamask how to connect to our local blockchain node. To do that:

      +
        +
      • Click your account icon
      • +
      • +

        In the drop down menu, click Settings + Metamask Settings

        +
      • +
      • +

        On the left hand side of the page, click Networks

        +
      • +
      • +

        Click the Add a network button + Metamask Add Network

        +
      • +
      • +

        Fill in the network details:

        +
      • +
      • Network Name: FireFly (could be any name)
      • +
      • New RPC URL: http://127.0.0.1:5100
      • +
      • Chain ID: 2021
      • +
      • Currency Symbol: ETH
      • +
      • Click Save + Metamask Network Details
      • +
      +

      Import tokens

      +

      Metamask won't know about our custom ERC-20 contract until we give it the Ethereum address for the contract, so that's what we'll do next.

      +
        +
      • +

        Click on Import tokens + Metamask Import Tokens

        +
      • +
      • +

        Enter the Ethereum address of the contract

        +
      • +
      • Enter a Token Symbol (can be anything you want)
      • +
      • Click Add Custom Token
      • +
      +
      +

      NOTE: You can find the address of your contract from the response to the request to create the token pool above. You can also do a GET to http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools to lookup your configured token pools.

      +
      +

      Metamask Import Tokens

      +

      Transfer tokens

      +

      Now you can copy your account address from your Metamask wallet, and perform a transfer from FireFly's API (as described above) to your Metamask address.

      +

      Metamask Account Address

      +

      After a couple seconds, you should see your tokens show up in your Metamask wallet.

      +

      Metamask Tokens Received

      +

      You can also send tokens to a FireFly address or any other Ethereum address from your Metamask wallet.

      +
      +

      NOTE: You can find the Ethereum addresses for organizations in your FireFly network in the Network → Organizations page in the FireFly explorer. Click on an organization and look under the Verifiers header for the organization's Ethereum address.

      +
      +

      Metamask Send Tokens

      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/tokens/erc721.html b/head/tutorials/tokens/erc721.html deleted file mode 100644 index 6f1084d6d..000000000 --- a/head/tutorials/tokens/erc721.html +++ /dev/null @@ -1,897 +0,0 @@ - - - - - - - - - ERC-721 - Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - -ERC-721 | Hyperledger FireFly Docs - - - - - - - - - - - - - - - - - - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
      -
      - - - - - - - -
      -
      - - - - -
      - -

      - - - Use ERC-721 tokens - - -

      - -

      - - - Table of contents - - -

      - - -
        -
      1. Previous steps: Start your environment
      2. -
      3. About the sample token contracts
      4. -
      5. Use the Sandbox (optional)
      6. -
      7. Create a pool (using default token factory)
          -
        1. Request
        2. -
        3. Response
        4. -
        5. Get the address of the deployed contract
            -
          1. Request
          2. -
          3. Response
          4. -
          -
        6. -
        -
      8. -
      9. Create a pool (from a deployed token contract)
          -
        1. Request
        2. -
        -
      10. -
      11. Mint a token
          -
        1. Request
        2. -
        3. Response
        4. -
        -
      12. -
      13. Transfer a token
          -
        1. Request
        2. -
        3. Response
        4. -
        -
      14. -
      15. Sending data with a transfer
          -
        1. Broadcast message
        2. -
        3. Private message
        4. -
        -
      16. -
      17. Burn tokens
      18. -
      19. Token approvals
          -
        1. Request
        2. -
        3. Response
        4. -
        -
      20. -
      21. Use Metamask
          -
        1. Configure a new network
        2. -
        3. Import tokens
        4. -
        5. Transfer tokens
        6. -
        -
      22. -

      -

      - - - Previous steps: Start your environment - - -

      - -

      If you haven’t started a FireFly stack already, please go to the Getting Started guide on how to Start your environment. This will set up a token connector that works with both ERC-20 and ERC-721 by default.

      - -

      ← ② Start your environment

      -

      - - - About the sample token contracts - - -

      - -

      If you are using the default ERC-20 / ERC-721 token connector, when the FireFly CLI set up your FireFly stack, it also deployed a token factory contract. When you create a token pool through FireFly’s token APIs, the token factory contract will automatically deploy an ERC-20 or ERC-721 contract, based on the pool type in the API request.

      - -
      ⚠️ WARNING: The default token contract that was deployed by the FireFly CLI is only provided for the purpose of learning about FireFly. It is not a production grade contract. If you intend to deploy a production application using tokens on FireFly, you should research token contract best practices. For details, please see the source code for the contract that was deployed.
      -

      - - - Use the Sandbox (optional) - - -

      - -

      At this point you could open the Sandbox at http://127.0.0.1:5109/home?action=tokens.pools and perform the functions outlined in the rest of this guide. Or you can keep reading to learn how to build HTTP requests to work with tokens in FireFly. -Tokens Sandbox

      -

      - - - Create a pool (using default token factory) - - -

      - -

      After your stack is up and running, the first thing you need to do is create a token pool. Every application will need at least one token pool. At a minimum, you must always specify a name and type for the pool.

      - -

      If you’re using the default ERC-20 / ERC-721 token connector and its sample token factory, it will automatically deploy a new ERC-721 contract instance.

      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      - -
      {
      -    "type": "nonfungible",
      -    "name": "nfts"
      -}
      -
      -

      - - - Response - - -

      - -
      {
      -    "id": "a92a0a25-b886-4b43-931f-4add2840258a",
      -    "type": "nonfungible",
      -    "namespace": "default",
      -    "name": "nfts",
      -    "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "connector": "erc20_erc721",
      -    "tx": {
      -        "type": "token_pool",
      -        "id": "00678116-89d2-4295-990c-bd5ffa6e2434"
      -    }
      -}
      -
      - -

      Other parameters:

      -
        -
      • You must specify a connector if you have configured multiple token connectors
      • -
      • You may pass through a config object of additional parameters, if supported by your token connector
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      -

      - - - Get the address of the deployed contract - - -

      - - -

      To lookup the address of the new contract, you can lookup the token pool by its ID on the API. Creating the token pool will also emit an event which will contain the address. To query the token pool you can make a GET request to the pool’s ID:

      -

      - - - Request - - -

      - -

      GET http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools/5811e8d5-52d0-44b1-8b75-73f5ff88f598

      -

      - - - Response - - -

      - -
      {
      -    "id": "a92a0a25-b886-4b43-931f-4add2840258a",
      -    "type": "nonfungible",
      -    "namespace": "default",
      -    "name": "nfts",
      -    "standard": "ERC721",
      -    "locator": "address=0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c&schema=ERC721WithData&type=nonfungible",
      -    "connector": "erc20_erc721",
      -    "message": "53d95dda-e8ca-4546-9226-a0fdc6ec03ec",
      -    "state": "confirmed",
      -    "created": "2022-04-29T12:03:51.971349509Z",
      -    "info": {
      -        "address": "0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c",
      -        "name": "nfts",
      -        "schema": "ERC721WithData"
      -    },
      -    "tx": {
      -        "type": "token_pool",
      -        "id": "00678116-89d2-4295-990c-bd5ffa6e2434"
      -    }
      -}
      -
      -

      - - - Create a pool (from a deployed token contract) - - -

      - -

      If you wish to index and use a contract that is already on the chain, it is recommended that you first upload the ABI for your specific contract by creating a FireFly contract interface. This step is optional if you’re certain that your ERC-721 ABI conforms to the default expectations of the token connector, but is generally recommended.

      - -

      See the README of the token connector for details on what contract variants can currently be understood.

      - -

      You can pass a config object with an address and blockNumber when you make the request to create the token pool, and if you created a contract interface, you can include the interface ID as well.

      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      - -
      {
      -  "name": "testpool",
      -  "type": "nonfungible",
      -  "interface": {
      -    "id": "b9e5e1ce-97bb-4a35-a25c-52c7c3f523d8"
      -  },
      -  "config": {
      -    "address": "0xb1C845D32966c79E23f733742Ed7fCe4B41901FC",
      -    "blockNumber": "0"
      -  }
      -}
      -
      -

      - - - Mint a token - - -

      - - -

      Once you have a token pool, you can mint tokens within it. When using the sample contract deployed by the CLI, the following are true:

      -
        -
      • only the creator of a pool is allowed to mint within that pool
      • -
      • the tokenIndex must be set to a unique value
      • -
      • the amount must be 1
      • -
      - -

      A different ERC-721 contract may define its own requirements.

      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/mint

      -
      {
      -  "amount": "1",
      -  "tokenIndex": "1"
      -}
      -
      -

      - - - Response - - -

      - -
      {
      -    "type": "mint",
      -    "localId": "2de2e05e-9474-4a08-a64f-2cceb076bdaa",
      -    "pool": "a92a0a25-b886-4b43-931f-4add2840258a",
      -    "connector": "erc20_erc721",
      -    "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "from": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "to": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "amount": "1",
      -    "tx": {
      -        "type": "token_transfer",
      -        "id": "0fad4581-7cb2-42c7-8f78-62d32205c2c2"
      -    }
      -}
      -
      - -

      Other parameters:

      -
        -
      • You must specify a pool name if you’ve created more than one pool
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      • You may specify to if you’d like to send the minted tokens to a specific identity (default is the same as key)
      • -
      -

      - - - Transfer a token - - -

      - - -

      You may transfer tokens within a pool by specifying an amount and a destination understood by the connector (i.e. an Ethereum address). With the default sample contract, only the owner of the tokens or another approved account may transfer their tokens, but a different contract may define its own permission model.

      - -

      When transferring an NFT, you must also specify the tokenIndex that you wish to transfer. The tokenIndex is simply the ID of the specific NFT within the pool that you wish to transfer.

      - -
      -

      NOTE: When transferring NFTs the amount must be 1. If you wish to transfer more NFTs, simply call the endpoint multiple times, specifying the token index of each token to transfer.

      -
      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      -
      {
      -  "amount": "1",
      -  "tokenIndex": "1",
      -  "to": "0xa4222a4ae19448d43a338e6586edd5fb2ac398e1"
      -}
      -
      -

      - - - Response - - -

      - -
      {
      -    "type": "transfer",
      -    "localId": "f5fd0d13-db13-4d70-9a99-6bcd747f1e42",
      -    "pool": "a92a0a25-b886-4b43-931f-4add2840258a",
      -    "tokenIndex": "1",
      -    "connector": "erc20_erc721",
      -    "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "from": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "to": "0xa4222a4ae19448d43a338e6586edd5fb2ac398e1",
      -    "amount": "1",
      -    "tx": {
      -        "type": "token_transfer",
      -        "id": "63c1a89b-240c-41eb-84bb-323d56f4ba5a"
      -    }
      -}
      -
      - -

      Other parameters:

      -
        -
      • You must specify a pool name if you’ve created more than one pool
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      • You may specify from if you’d like to send tokens from a specific identity (default is the same as key)
      • -
      -

      - - - Sending data with a transfer - - -

      - - -

      All transfers (as well as mint/burn operations) support an optional message parameter that contains a broadcast or private -message to be sent along with the transfer. This message follows the same convention as other FireFly messages, and may be comprised -of text or blob data, and can provide context, metadata, or other supporting information about the transfer. The message will be -batched, hashed, and pinned to the primary blockchain.

      - -

      The message ID and hash will also be sent to the token connector as part of the transfer operation, to be written to the token blockchain -when the transaction is submitted. All recipients of the message will then be able to correlate the message with the token transfer.

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      -

      - - - Broadcast message - - -

      - -
      {
      -  "amount": 1,
      -  "tokenIndex": "1",
      -  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      -  "message": {
      -    "data": [{
      -      "value": "payment for goods"
      -    }]
      -  }
      -}
      -
      -

      - - - Private message - - -

      - -
      {
      -  "amount": 1,
      -  "tokenIndex": "1",
      -  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      -  "message": {
      -    "header": {
      -      "type": "transfer_private",
      -    },
      -    "group": {
      -      "members": [{
      -          "identity": "org_1"
      -      }]
      -    },
      -    "data": [{
      -      "value": "payment for goods"
      -    }]
      -  }
      -}
      -
      - -

      Note that all parties in the network will be able to see the transfer (including the message ID and hash), but only -the recipients of the message will be able to view the actual message data.

      -

      - - - Burn tokens - - -

      - -

      You may burn a token by specifying the token’s tokenIndex. With the default sample contract, only the owner of a token or another approved account may burn it, but a different contract may define its own permission model.

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/burn

      - -
      {
      -  "amount": 1,
      -  "tokenIndex": "1"
      -}
      -
      - -

      Other parameters:

      -
        -
      • You must specify a pool name if you’ve created more than one pool
      • -
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you’d like to use a non-default signing identity
      • -
      • You may specify from if you’d like to burn tokens from a specific identity (default is the same as key)
      • -
      -

      - - - Token approvals - - -

      - -

      You can also approve other wallets to transfer tokens on your behalf with the /approvals API. The important fields in a token approval API request are as follows:

      - -
        -
      • approved: Sets whether another account is allowed to transfer tokens out of this wallet or not. If not specified, will default to true. Setting to false can revoke an existing approval.
      • -
      • operator: The other account that is allowed to transfer tokens out of the wallet specified in the key field
      • -
      • config.tokenIndex: The specific token index within the pool that the operator is allowed to transfer. If 0 or not set, the approval is valid for all tokens.
      • -
      • key: The wallet address for the approval. If not set, it defaults to the address of the FireFly node submitting the transaction
      • -
      - -

      Here is an example request that would let the signing account 0x634ee8c7d0894d086c7af1fc8514736aed251528 transfer tokenIndex 2 from my wallet.

      -

      - - - Request - - -

      - -

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/approvals

      -
      {
      -  "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528",
      -  "config": {
      -      "tokenIndex": "2"
      -  }
      -}
      -
      -

      - - - Response - - -

      - -
      {
      -    "localId": "46fef50a-cf93-4f92-acf8-fae161b37362",
      -    "pool": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      -    "connector": "erc20_erc721",
      -    "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      -    "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528",
      -    "approved": true,
      -    "tx": {
      -        "type": "token_approval",
      -        "id": "00faa011-f42c-403d-a047-2df7318967cd"
      -    },
      -    "config": {
      -       "tokenIndex": "2"
      -    }
      -}
      -
      -

      - - - Use Metamask - - -

      - -

      Now that you have an ERC-721 contract up and running, you may be wondering how to use Metamask (or some other wallet) with this contract. This section will walk you through how to connect Metamask to the blockchain and token contract that FireFly is using.

      -

      - - - Configure a new network - - -

      - -

      The first thing we need to do is tell Metamask how to connect to our local blockchain node. To do that:

      - -
        -
      • Click your account icon
      • -
      • -

        In the drop down menu, click Settings -Metamask Settings

        -
      • -
      • On the left hand side of the page, click Networks
      • -
      • -

        Click the Add a network button -Metamask Add Network

        -
      • -
      • Fill in the network details: -
          -
        • Network Name: FireFly (could be any name)
        • -
        • New RPC URL: http://127.0.0.1:5100
        • -
        • Chain ID: 2021
        • -
        • Currency Symbol: ETH
        • -
        -
      • -
      • Click Save -Metamask Network Details
      • -
      -

      - - - Import tokens - - -

      - -

      Metamask won’t know about our custom ERC-721 contract until we give it the Ethereum address for the contract, so that’s what we’ll do next.

      - -
        -
      • -

        Click on Import tokens -Metamask Import Tokens

        -
      • -
      • Enter the Ethereum address of the contract
      • -
      • Enter a Token Symbol (can be anything you want)
      • -
      • Click Add Custom Token
      • -
      - -
      -

      NOTE: You can find the address of your contract from the response to the request to create the token pool above. You can also do a GET to http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools to lookup your configured token pools.

      -
      - -

      Metamask Import Tokens

      -

      - - - Transfer tokens - - -

      - -

      Now you can copy your account address from your Metamask wallet, and perform a transfer from FireFly’s API (as described above) to your Metamask address.

      - -

      Metamask Account Address

      - -

      After a couple seconds, you should see your token show up in your Metamask wallet.

      - -

      Metamask Tokens Received

      - -
      -

      NOTE: While the NFT token balance can be viewed in Metamask, it does not appear that Metamask supports sending these tokens to another address at this time.

      -
      - - - - - - - - -
      -
      - - - - -
      - -
      - - - diff --git a/head/tutorials/tokens/erc721/index.html b/head/tutorials/tokens/erc721/index.html new file mode 100644 index 000000000..2997ff07d --- /dev/null +++ b/head/tutorials/tokens/erc721/index.html @@ -0,0 +1,4059 @@ + + + + + + + + + + + + + + + + + + + + + + + ERC-721 - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + +
      +
      +
      + + + + + + + +
      +
      + + + + + + + +

      Use ERC-721 tokens

      +

      Previous steps: Start your environment

      +

      If you haven't started a FireFly stack already, please go to the Getting Started guide on how to Start your environment. This will set up a token connector that works with both ERC-20 and ERC-721 by default.

      +

      ← ② Start your environment

      +

      About the sample token contracts

      +

      If you are using the default ERC-20 / ERC-721 token connector, when the FireFly CLI set up your FireFly stack, it also deployed a token factory contract. When you create a token pool through FireFly's token APIs, the token factory contract will automatically deploy an ERC-20 or ERC-721 contract, based on the pool type in the API request.

      +
      ⚠️ WARNING: The default token contract that was deployed by the FireFly CLI is only provided for the purpose of learning about FireFly. It is not a production grade contract. If you intend to deploy a production application using tokens on FireFly, you should research token contract best practices. For details, please see the source code for the contract that was deployed.
      + +

      Use the Sandbox (optional)

      +

      At this point you could open the Sandbox at http://127.0.0.1:5109/home?action=tokens.pools and perform the functions outlined in the rest of this guide. Or you can keep reading to learn how to build HTTP requests to work with tokens in FireFly. +Tokens Sandbox

      +

      Create a pool (using default token factory)

      +

      After your stack is up and running, the first thing you need to do is create a token pool. Every application will need at least one token pool. At a minimum, you must always specify a name and type for the pool.

      +

      If you're using the default ERC-20 / ERC-721 token connector and its sample token factory, it will automatically deploy a new ERC-721 contract instance.

      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      +
      {
      +  "type": "nonfungible",
      +  "name": "nfts"
      +}
      +
      +

      Response

      +
      {
      +  "id": "a92a0a25-b886-4b43-931f-4add2840258a",
      +  "type": "nonfungible",
      +  "namespace": "default",
      +  "name": "nfts",
      +  "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "connector": "erc20_erc721",
      +  "tx": {
      +    "type": "token_pool",
      +    "id": "00678116-89d2-4295-990c-bd5ffa6e2434"
      +  }
      +}
      +
      +

      Other parameters:

      +
        +
      • You must specify a connector if you have configured multiple token connectors
      • +
      • You may pass through a config object of additional parameters, if supported by your token connector
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      +

      Get the address of the deployed contract

      +

      To lookup the address of the new contract, you can lookup the token pool by its ID on the API. Creating the token pool will also emit an event which will contain the address. To query the token pool you can make a GET request to the pool's ID:

      +

      Request

      +

      GET http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools/5811e8d5-52d0-44b1-8b75-73f5ff88f598

      +

      Response

      +
      {
      +  "id": "a92a0a25-b886-4b43-931f-4add2840258a",
      +  "type": "nonfungible",
      +  "namespace": "default",
      +  "name": "nfts",
      +  "standard": "ERC721",
      +  "locator": "address=0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c&schema=ERC721WithData&type=nonfungible",
      +  "connector": "erc20_erc721",
      +  "message": "53d95dda-e8ca-4546-9226-a0fdc6ec03ec",
      +  "state": "confirmed",
      +  "created": "2022-04-29T12:03:51.971349509Z",
      +  "info": {
      +    "address": "0xc4d02efcfab06f18ec0a68e00b98ffecf6bf7e3c",
      +    "name": "nfts",
      +    "schema": "ERC721WithData"
      +  },
      +  "tx": {
      +    "type": "token_pool",
      +    "id": "00678116-89d2-4295-990c-bd5ffa6e2434"
      +  }
      +}
      +
      +

      Create a pool (from a deployed token contract)

      +

      If you wish to index and use a contract that is already on the chain, it is recommended that you first upload the ABI for your specific contract by creating a FireFly contract interface. This step is optional if you're certain that your ERC-721 ABI conforms to the default expectations of the token connector, but is generally recommended.

      +

      See the README of the token connector for details on what contract variants can currently be understood.

      +

      You can pass a config object with an address and blockNumber when you make the request to create the token pool, and if you created a contract interface, you can include the interface ID as well.

      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools

      +
      {
      +  "name": "testpool",
      +  "type": "nonfungible",
      +  "interface": {
      +    "id": "b9e5e1ce-97bb-4a35-a25c-52c7c3f523d8"
      +  },
      +  "config": {
      +    "address": "0xb1C845D32966c79E23f733742Ed7fCe4B41901FC",
      +    "blockNumber": "0"
      +  }
      +}
      +
      +

      Mint a token

      +

      Once you have a token pool, you can mint tokens within it. When using the sample contract deployed by the CLI, the following are true:

      +
        +
      • only the creator of a pool is allowed to mint within that pool
      • +
      • the tokenIndex must be set to a unique value
      • +
      • the amount must be 1
      • +
      +

      A different ERC-721 contract may define its own requirements.

      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/mint

      +
      {
      +  "amount": "1",
      +  "tokenIndex": "1"
      +}
      +
      +

      Response

      +
      {
      +  "type": "mint",
      +  "localId": "2de2e05e-9474-4a08-a64f-2cceb076bdaa",
      +  "pool": "a92a0a25-b886-4b43-931f-4add2840258a",
      +  "connector": "erc20_erc721",
      +  "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "from": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "to": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "amount": "1",
      +  "tx": {
      +    "type": "token_transfer",
      +    "id": "0fad4581-7cb2-42c7-8f78-62d32205c2c2"
      +  }
      +}
      +
      +

      Other parameters:

      +
        +
      • You must specify a pool name if you've created more than one pool
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      • You may specify to if you'd like to send the minted tokens to a specific identity (default is the same as key)
      • +
      +

      Transfer a token

      +

      You may transfer tokens within a pool by specifying an amount and a destination understood by the connector (i.e. an Ethereum address). With the default sample contract, only the owner of the tokens or another approved account may transfer their tokens, but a different contract may define its own permission model.

      +

      When transferring an NFT, you must also specify the tokenIndex that you wish to transfer. The tokenIndex is simply the ID of the specific NFT within the pool that you wish to transfer.

      +
      +

      NOTE: When transferring NFTs the amount must be 1. If you wish to transfer more NFTs, simply call the endpoint multiple times, specifying the token index of each token to transfer.

      +
      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      +
      {
      +  "amount": "1",
      +  "tokenIndex": "1",
      +  "to": "0xa4222a4ae19448d43a338e6586edd5fb2ac398e1"
      +}
      +
      +

      Response

      +
      {
      +  "type": "transfer",
      +  "localId": "f5fd0d13-db13-4d70-9a99-6bcd747f1e42",
      +  "pool": "a92a0a25-b886-4b43-931f-4add2840258a",
      +  "tokenIndex": "1",
      +  "connector": "erc20_erc721",
      +  "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "from": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "to": "0xa4222a4ae19448d43a338e6586edd5fb2ac398e1",
      +  "amount": "1",
      +  "tx": {
      +    "type": "token_transfer",
      +    "id": "63c1a89b-240c-41eb-84bb-323d56f4ba5a"
      +  }
      +}
      +
      +

      Other parameters:

      +
        +
      • You must specify a pool name if you've created more than one pool
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      • You may specify from if you'd like to send tokens from a specific identity (default is the same as key)
      • +
      +

      Sending data with a transfer

      +

      All transfers (as well as mint/burn operations) support an optional message parameter that contains a broadcast or private +message to be sent along with the transfer. This message follows the same convention as other FireFly messages, and may be comprised +of text or blob data, and can provide context, metadata, or other supporting information about the transfer. The message will be +batched, hashed, and pinned to the primary blockchain.

      +

      The message ID and hash will also be sent to the token connector as part of the transfer operation, to be written to the token blockchain +when the transaction is submitted. All recipients of the message will then be able to correlate the message with the token transfer.

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/transfers

      +

      Broadcast message

      +
      {
      +  "amount": 1,
      +  "tokenIndex": "1",
      +  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      +  "message": {
      +    "data": [
      +      {
      +        "value": "payment for goods"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Private message

      +
      {
      +  "amount": 1,
      +  "tokenIndex": "1",
      +  "to": "0x07eab7731db665caf02bc92c286f51dea81f923f",
      +  "message": {
      +    "header": {
      +      "type": "transfer_private"
      +    },
      +    "group": {
      +      "members": [
      +        {
      +          "identity": "org_1"
      +        }
      +      ]
      +    },
      +    "data": [
      +      {
      +        "value": "payment for goods"
      +      }
      +    ]
      +  }
      +}
      +
      +

      Note that all parties in the network will be able to see the transfer (including the message ID and hash), but only +the recipients of the message will be able to view the actual message data.

      +

      Burn tokens

      +

      You may burn a token by specifying the token's tokenIndex. With the default sample contract, only the owner of a token or another approved account may burn it, but a different contract may define its own permission model.

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/burn

      +
      {
      +  "amount": 1,
      +  "tokenIndex": "1"
      +}
      +
      +

      Other parameters:

      +
        +
      • You must specify a pool name if you've created more than one pool
      • +
      • You may specify a key understood by the connector (i.e. an Ethereum address) if you'd like to use a non-default signing identity
      • +
      • You may specify from if you'd like to burn tokens from a specific identity (default is the same as key)
      • +
      +

      Token approvals

      +

      You can also approve other wallets to transfer tokens on your behalf with the /approvals API. The important fields in a token approval API request are as follows:

      +
        +
      • approved: Sets whether another account is allowed to transfer tokens out of this wallet or not. If not specified, will default to true. Setting to false can revoke an existing approval.
      • +
      • operator: The other account that is allowed to transfer tokens out of the wallet specified in the key field
      • +
      • config.tokenIndex: The specific token index within the pool that the operator is allowed to transfer. If 0 or not set, the approval is valid for all tokens.
      • +
      • key: The wallet address for the approval. If not set, it defaults to the address of the FireFly node submitting the transaction
      • +
      +

      Here is an example request that would let the signing account 0x634ee8c7d0894d086c7af1fc8514736aed251528 transfer tokenIndex 2 from my wallet.

      +

      Request

      +

      POST http://127.0.0.1:5000/api/v1/namespaces/default/tokens/approvals

      +
      {
      +  "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528",
      +  "config": {
      +    "tokenIndex": "2"
      +  }
      +}
      +
      +

      Response

      +
      {
      +  "localId": "46fef50a-cf93-4f92-acf8-fae161b37362",
      +  "pool": "e1477ed5-7282-48e5-ad9d-1612296bb29d",
      +  "connector": "erc20_erc721",
      +  "key": "0x14ddd36a0c2f747130915bf5214061b1e4bec74c",
      +  "operator": "0x634ee8c7d0894d086c7af1fc8514736aed251528",
      +  "approved": true,
      +  "tx": {
      +    "type": "token_approval",
      +    "id": "00faa011-f42c-403d-a047-2df7318967cd"
      +  },
      +  "config": {
      +    "tokenIndex": "2"
      +  }
      +}
      +
      +

      Use Metamask

      +

      Now that you have an ERC-721 contract up and running, you may be wondering how to use Metamask (or some other wallet) with this contract. This section will walk you through how to connect Metamask to the blockchain and token contract that FireFly is using.

      +

      Configure a new network

      +

      The first thing we need to do is tell Metamask how to connect to our local blockchain node. To do that:

      +
        +
      • Click your account icon
      • +
      • +

        In the drop down menu, click Settings + Metamask Settings

        +
      • +
      • +

        On the left hand side of the page, click Networks

        +
      • +
      • +

        Click the Add a network button + Metamask Add Network

        +
      • +
      • +

        Fill in the network details:

        +
      • +
      • Network Name: FireFly (could be any name)
      • +
      • New RPC URL: http://127.0.0.1:5100
      • +
      • Chain ID: 2021
      • +
      • Currency Symbol: ETH
      • +
      • Click Save + Metamask Network Details
      • +
      +

      Import tokens

      +

      Metamask won't know about our custom ERC-721 contract until we give it the Ethereum address for the contract, so that's what we'll do next.

      +
        +
      • +

        Click on Import tokens + Metamask Import Tokens

        +
      • +
      • +

        Enter the Ethereum address of the contract

        +
      • +
      • Enter a Token Symbol (can be anything you want)
      • +
      • Click Add Custom Token
      • +
      +
      +

      NOTE: You can find the address of your contract from the response to the request to create the token pool above. You can also do a GET to http://127.0.0.1:5000/api/v1/namespaces/default/tokens/pools to lookup your configured token pools.

      +
      +

      Metamask Import Tokens

      +

      Transfer tokens

      +

      Now you can copy your account address from your Metamask wallet, and perform a transfer from FireFly's API (as described above) to your Metamask address.

      +

      Metamask Account Address

      +

      After a couple seconds, you should see your token show up in your Metamask wallet.

      +

      Metamask Tokens Received

      +
      +

      NOTE: While the NFT token balance can be viewed in Metamask, it does not appear that Metamask supports sending these tokens to another address at this time.

      +
      + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + \ No newline at end of file diff --git a/head/tutorials/tokens/index.html b/head/tutorials/tokens/index.html index 70a3d21e2..a5c701d64 100644 --- a/head/tutorials/tokens/index.html +++ b/head/tutorials/tokens/index.html @@ -1,373 +1,3418 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + Use tokens - Hyperledger FireFly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + + -
      - -

      - - - Quick reference - - -

      + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + +

      Use tokens

      +

      Quick reference

      Tokens are a critical building block in many blockchain-backed applications. Fungible tokens can represent a store of value or a means of rewarding participation in a multi-party system, while non-fungible tokens provide a clear way to identify and track unique entities across the network. FireFly provides flexible mechanisms to operate on any type of token and to tie those operations to on- and off-chain data.

      -
        -
      • FireFly provides an abstraction layer for multiple types of tokens
      • -
      • Tokens are grouped into pools, which each represent a particular type or class of token
      • -
      • Each pool is classified as fungible or non-fungible
      • -
      • In the case of non-fungible tokens, the pool is subdivided into individual tokens with a unique token index
      • -
      • Within a pool, you may mint (issue), transfer, and burn (redeem) tokens
      • -
      • Each operation can be optionally accompanied by a broadcast or private message, which will be recorded alongside the transfer on-chain
      • -
      • FireFly tracks a history of all token operations along with all current token balances
      • -
      • The blockchain backing each token connector may be the same or different from the one backing FireFly message pinning
      • +
      • FireFly provides an abstraction layer for multiple types of tokens
      • +
      • Tokens are grouped into pools, which each represent a particular type or class of token
      • +
      • Each pool is classified as fungible or non-fungible
      • +
      • In the case of non-fungible tokens, the pool is subdivided into individual tokens with a unique token index
      • +
      • Within a pool, you may mint (issue), transfer, and burn (redeem) tokens
      • +
      • Each operation can be optionally accompanied by a broadcast or private message, which will be recorded alongside the transfer on-chain
      • +
      • FireFly tracks a history of all token operations along with all current token balances
      • +
      • The blockchain backing each token connector may be the same or different from the one backing FireFly message pinning
      -

      - - - What is a pool? - - -

      - - +

      What is a pool?

      Token pools are a FireFly construct for describing a set of tokens. The exact definition of a token pool is dependent on the token connector implementation. Some examples of how pools might map to various well-defined Ethereum standards:

      -
        -
      • ERC-1155: a single contract instance can efficiently allocate -many isolated pools of fungible or non-fungible tokens
      • -
      • ERC-20 / ERC-777: -each contract instance represents a single fungible pool of value, e.g. “a coin”
      • -
      • ERC-721: each contract instance represents a single pool of NFTs, -each with unique identities within the pool
      • -
      • ERC-1400 / ERC-1410: -partially supported in the same manner as ERC-20/ERC-777, but would require new features for working with partitions
      • +
      • ERC-1155: a single contract instance can efficiently allocate + many isolated pools of fungible or non-fungible tokens
      • +
      • ERC-20 / ERC-777: + each contract instance represents a single fungible pool of value, e.g. "a coin"
      • +
      • ERC-721: each contract instance represents a single pool of NFTs, + each with unique identities within the pool
      • +
      • ERC-1400 / ERC-1410: + partially supported in the same manner as ERC-20/ERC-777, but would require new features for working with partitions
      -

      These are provided as examples only - a custom token connector could be backed by any token technology (Ethereum or otherwise) as long as it can support the basic operations described here (create pool, mint, burn, transfer). Other FireFly repos include a sample implementation of a token connector for ERC-20 and ERC-721 as well as ERC-1155.

      + + + - + + + + + + + + + + + + + + +
      +
      + + + +
      -
      -

      Table of contents

      - + - +
      + +
      + + + + + + + + + + + + + + +
      +
      +
      + + + + + - -
      - - - - + + \ No newline at end of file diff --git a/head/versions.json b/head/versions.json new file mode 100644 index 000000000..e69de29bb diff --git a/versions.json b/versions.json index 2c2626e04..763843e29 100644 --- a/versions.json +++ b/versions.json @@ -1,4 +1,9 @@ [ + { + "version": "head", + "title": "head", + "aliases": [] + }, { "version": "v1.3.0", "title": "v1.3.0",

      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¬W%lJ^ z!i9anz!q5kVgF_wjNQqI~Y81WkcErv?!Mtq~;*c*-Q&Gy$$fy}(%_-2O9|Ih>W zQG(X420sQzPNe$&)*S?&VODvJ(TAmITwavvo`cDbVg_gj@=P~Ber8K(JN){yUk`Hw zND#i7Pah=h{)r15RY6S0VqeodN}}^1Wgu*GT%2^T{nRR4Qm+4#{Elbe{J9#UHVuw_ zvkuM%2Urnhq>WB`3V**&hW}2GfMdfh9drQSQdckJ%>4nUf+h|Z_0Avgk+^1Hl|>gr z9Bz}?M_h6``bi0`6)FUiN#0a*qz-+a#Yv0otKEA%@Hb*en5Sxg+BW52uf)oa5%BOK z7V$X6h0z-bVRYheRpU1tju!Ok$z^A2h5Qd)HgLtphj7S6nXewIA*HsJHR zX-kY0di0Lu#kYOq&!FUO+Zo=MqZ`JK8_W;qNZnLy@T-!J$3K(Xh00oW=9AJ#&{+kB zZ{O~qbk1G+d|D>c=_RWjYxtf+dr~A~Jr>?)=qsIjuO;-14W+M}diDi$N|&|nI?EQ8 zmIy!DlrSdFsm9KB)Gd6x-mvG^RK#w?_8HDfW7p_*f zpRulb*Vf{6-hCuYw6#u?w>DHzIQuB#v+`{wcTCIRo%)Gs;Fv0&M*KLpgvw3)mZW2s z@z{Dj(T;U+oK&AI6xCrO_4!XziS_qDW0bmF{nxEOV)b*m%26L#tt%cI@6XniN`_AN zRrhg|^aS2`J6kH0NzdwcR9s@7f)WOAiBs<#G_F#E+?2Xm7LBkIHZ$L2Zy12$4R>A` z#;;9tb~BxZdj!(LxT823?+*~IqOmMX(mJC2P0Hr%;?fWj?1MO5K1kj-^FCAQ!jq6IbQN zB)Y!g{|Ai4>F^OJx0^cY9|LmQzHnWBERqV;%>U=7PX$&U9 zL^7C&%lm{=;<1h^tsuDM{!^UzE@$6!h75t>2hF5hq&n)a_&Y>5rvdtjHn;V)^J<=1 zmofYnjm|Bg+Eg@q0HBzz+NO1A(I(Z@?2#Ek3utW)h-Lwlq7mUe(8l%~)sfbj=1Z{^ z2Jv=Eua@6>Y^2Lm0$aB5^X^x@A@CUiq6|qk;}rKM)K36T+#yw8O48NR6{mf?>K>2s z05;C3j1AY7y4xm@B<=(a0!;|wpE5diV@=>bhtHZeq`X;twDiE`I&?`^XHDQyGiF6& zl3@%GY{3r|Nf|EHlk?;r?k1=Tk|Tl2Q1tant$u0bVFS$}wzGM+m>6Hv&43P8b7xT%t*pm!xtn*}zP@-mV`d3R*d-Dsr31 zIn3B0q~tjKty8`D)qU{nUh2WaRR^P|NrS@85^a!?r+UhKsDgL2C}wMD-w^CqzCGb` zbENC~=a~rI$2ofMS7U^R^Q2INM6J-?aE2BRNP5W>cZaod83cC+SzIhwdj5BJNLWNzAP~;t@>fxCtqf?_DAiaP@FPSF=9`Lrh7l z=&Cz&qV&u9QFdxsgZVmj)zzThsr;$eY`r5+`lUEAScdu?6Y;t!>`!p%mn*KcRo~Ye z(Yo*~atAh@Bkr{cJ)M3xt&+GAe&02^vw>u{<~5r{IsC)YSkT0^ zNZb==bbb|lJ2x&L-)(c22%e=)UiF+kg0Ow+MV{m<)vue%@beFxs6#O5s8Pgc7v4i#)>LbMIjmhQG|g>MyXv+j!n3%9y& z^!;XOa9>5SR#;|zpHArl=}QTW|LBF($gn#KQcV1qEpdj|tFnM_J4&!WIU4i$3;ouG z(okb(wq?}fPy$jVu6+QRg|9WQeBe+17<-a_PLWeb3qE23>{{jI(fbIx3Z*iDZ(EuKtLc&=pU|h&_Y-veB&AM_a5JkxeHUTh1U(u=F&C;K?}0b;pk89m}Rn- zg^R503VnAZ@SBh<$U(pawC_K43L^h2!EUYuz zsjN>L6h87k`mbSGrKuZ(BxWBFYBmWzo0yZ4wzW8euy+)%4qFZbcha)TWE?wxu^f{p z@Odu!6h40yiNXQ;^abu*urQ=d6OeSwi4C3~&|V5)rULJ|tnSuROSye=noYkmnE`ql zNpwNvE}0V`52mA6=szbFtgH01O9lOj2caMk^Ni(vSJl|c)s6oOnEF@7+zs>jkwt6$1EQT zsA*N^cWVZxFkr(x+F*;_`re;c2=d3xEphV*$c5bpgVj9nO9hJ*gM~(8QWM7#1OZdVc>q z^(?utg5)>-y4QvJ2E=T|)PB=_3D148mghatf$?8$sZ4u?PEd6>7Fq9=s$!RZs6%EQ zyV!QsHRR(H&PaJ#Hcpq|lV7>^r8zY9a+i=;GOU5}6}s?JT6Y@|K}@Lx?kk7uVSt8$ zF&>eR1OBx_yF^c)5IruTidHwBv_}>%Mv?c*vof5&%EGIEC)_Q5&(H7fTHf6wBI(-0 z)*vvIswp`m?JU?!|4W%JkFzDybN1dctH^6%onO#qg9>+(11Z(+x~$!0px&W3bUCvs95HFdKIT(#fZFam>Ei% zXJ@H{+pB@#p*6_J^kVMfKhi$vwO4F{RyvxvhPSnfj8p{$jGIzZ*Xo-G@AN*CBcorA z*_GzyDBo>9@4?@sW?e!S-V6~`^KA3YVwSqP+L+CXVw2JHZ#a_j!k>4ZgT%^tLYy`1c?}e z5=Br*_oeaMw}Oev<5ZG%8MSA-1~`+0xdsGLB*ia9+NQrk9kFArC10nSE9tq{*y^5j z61zE1j>?-d^E1t5u??ka0dd_@7+l9iAL?^Oz7)I)_-9Ya-+=QRV~{Ua9A**H0Kq$W!j@vOqwOdn4Uyfdlq5laOe`a5=L>**_0{| zyjzKWP;7TclYYk4>9h(I4Zua#+>GsjC=hEN@Kw2ROi@nH?IxgVXSB(eoFnoVKN_GP zdq+ewgK8$=ne^Q5FQOAO1F-f70HsZ#9PX0|Ca0SWe-VDP@~a?qBauf@QJ&b)bI@|N zX%KZ&4A+L=srV+=mV|_wLJ=ncD~GFIsJ0-rzBj&AALHsOloF4jI>&e|cgHp?aK1++@lap+8Q2aI7RieEg*%$1EYcSGOS-?k|m?IXvB< zu>sxJJFrjku-ui~Ah^Db=mhGy(kC8W_G|qdGi$%Nr4*CYZLu^`%}JM>6N@`gEt-5|EMfG{cDDruC$=qq z^54wz+8wIDCrNsrn*=8hBU~yq^a~0Z2=yyCZRRx09O)zAopo&HR$EfbiMI|Oa`=46 zK<{6~%GWz^URUUiXNBsehTxR&MF|a9vVqc~COa9(NhDeI11A829{^(jXv)IR4fo~# zLv<#GGab{YU{BjQN8ZQ9y11>pBltLf6=z({NaHsV$Ivq8G&L%M z#Gwxwtss#ZfIJkUJb3N;m5n9Ezm4(H=3C}}7Cz!N6_ETyr+Xq={zt!5^*sR_iuoPx zDfX7b9cFy?!&zGhQZqZ`gaoZ^^VseqykS_z!KUO#yRXI+F$i=JLhr|$-?XugvG#mW z5j|1`NWETt12z9sO;^&y80e0UiH!9FWDJnMWN>TTjYELPN(anE0cKHt=2B z8JZ(}Kn38g&*uhjQ_(#en~N=obM@r{+2(a6QeIF;WpDT1$fV~{U0i!}GACz!Yai$_ zJ`<^pS~y=M)N49qV?l{*Oz#=w)uAt+QLAzco%vZn^rVd^xrT-wUYIua3zlL&k2rLs zJob6n{&RX78z$mBmXOZ*N}*Q4%xB$(B>OK44tk;ann zrlsLR%0@s}^9YvGn>Fza;Yo>1p7TFv$O56>8x(ynE7*BuQ$ zO#nOje5r6!0c}^12OHJ1`|b6G{CDG8&0~uMgAR$%T{7Ob9r7v9@<5}hSLIvW4T4d{rNv!QI~)Oq;-SK_lp=ZxYUVC&k`a;Rcy(pL z#4|R7Id}0`8TUCSMmqP#^0GG1gZ6utl%%Wu_?tBL^i=NJ41YOAS+K^Ow_SkZ-@X?lA&Y4>VW7_`Z(O0+ zBKB26JwV9$; z`H%a%P!3hjuoZ?T8l!M4fburoXi}{OfsD9w^=wdiM);k)*fP*A+Q;Fmv~qf#Jo#&W zVCLgSV0yr3!U$4>BrrlqGU}A}t3Nc}=c{x>t$=EsS!R5fq^qYAvo zYI__l)vEV*zeV+eeP$=kn+5a2DujvcGRF{*?%h{5U$V(#?~*=zA^Sp*c2XJaAQi!%mlbKyQa62o~EkR8B?uv9>=y z{c_HNPEokf-BHi&dAMM5crr|b2RzRU?Vz3LwUwv}a^71^4B^w`T}V$7g_mxtF+82d zKc3*lDsCbCOFpRb=9+DupVEZ7N!@MbyDW)2R}2BEi93|18!vr0I{05? zGcG>`C_tUL2j_DxEZmW`$HtV^`dmFcBJmN^p;Ud!hrSbF!*XfJ7`AO#{>d|yC-{nE zFF99Cn-}=VI-gJOR-qFo`BOy0XMv!s!`MAH$242bkt&`R_OI~>&ePV@mC}Pwba%sk z!(o~d-$wWy+-Q3EmHIRU5a1q>||HV^nbKN8R693qOQ+lnB!Y=ce_I5ZqIz*{4##bSg-uYmPv5k_?-O zkLkSBn8=P2ZSF;0Bj{GQF&PIOpUd#}2nW{Ad{YcVe}4?W{oA%!zce=N5Sa4gHtOBf z+(|X_?E^kFDe`X9`*4%)j-M}u%2=70mG4;oDpQRc$FTxS+9atczX~tiW|0)e?2i>_ zRQIY+WF%_su05?>M znQuC+MW_QiZ>mLSIi+?{q=;lBu8ZWJ5?Q%`aI|R6pqqt>(_B5(dRn+=FBcgfU|Wux zb7oSZ0DTkEE*r^jU+&_)9uvHio(8uTb@%p8lXXLOvB+Z(es3Zou1r4{TKyINi5~PS}RvvXhEz=xJ{)3o&6a7Q}6uk7x~Y1+96^{Ts828 zx7T8%%xHL7W67pi%Vz-7KyLO!TF*wUO(q|Wd4Lq#=Bdm~FbTsfuH1c*lT`U1xD6A++ZMPILPbku=)3WxW;!o{3Ff zdm)%`XPnopPLVfMI6Bks;8|cAse170CjdD8;(BTP07I0Hv*da^1;~!<2Kwn!FpkLh zz{W)?)@iVR;r3yWFHlRXVg5`8(mbMUQ+OkYXQWU${Q!Y-Uk=fWq?hu29A*G~2KuSs)q;nW4=}t-Ml9rB9q(P99 zW~94gh#BS{?^^fmzWRWy#mqV9+uz>5{dT#=>?ayMQ@@;}5|T#*ot(j;_ZRlQ`WqaX z=3(A+9;&^^JmSX3kzw$faQ&JkVmBfmC>P1UyHOh<-Tb04R4>P~eFtr071hoedC@8y z!4lG%q&IJ}i#|zN$bOW+9?;Hg-ez1-k6>p{X}O<~5*n^P#P?!?ce|<4ez|&HvL?xb zx}8CiS5Hr%kLrlko#I%o%yTHU8ID2^5W#$zCX?ADJr0P}zuB$i0#grp@L`GHU7e9R zqjSu=)`{t!Gi2J5gp|qctt^ zjW3j53hvpW?BdWvxq2#RYiT${7UAkSNF2QkPbse`+ie~$o^TbM0g(+iRR3F*ET|UccWMqL`#{&~bQ&{%RF& z#u(U7wd)%cbu?O+pxb0aj<-?3wG>o>F@>pl5J4_W=POQg?!;j(OO5o5d^`fT)!Ggz z=4`!DwIy6oi}=d3m8P4pOUI=ZM+!!5W4Ha^QYLRfGWu>{B_=eu>q>LcE!s_GUcA=W z3?6WA@wqxAGum(MS5vF~tzW2p!+WQ^D52Ct%*KyGiIGVhY_Wsi0xm8fC%>?sW}K3& zfba}6Z5HnJSlWc-IZ3GJL>(_5YMyKr#I@n07FZl&`di@pjkI0I{{@%hYQ!Hi5HNux zUKoOJiw9Z7Zt*BdU1Hf*LVZ|<;$}MENk*UtThnxdQhOB7(A`E@&QkdDudI$cF(vL; zb?D1RNx!W;95T{}mI>aBSHPF1*#Cs*F5QRkfs9>I59>bOfCvay9sWF;m{-;rwHk~o zY|v${*#3){=n|~_#(1XerfUD@$?JqG-yHZ!EtyLc#(_IwA(veh^|H=!#@8G;I(`U7 z2{XTnR&2}$RyV)!Pv1Q_O}<-1i8|_bBcIVzM9Y1=zTT~V*7V`y94Y3v6ADO@>qoDDkTauE+KKTb-G#vf_kReuu2+%73`*8g7a9} zN$Lk1l&tjqEG}P;_M1#^4#OA8WC#K0U}vI4Xtw5PK!hxbk0HcH09VUpfkN~O;KptphV0OFezE&ic(mdpF2hH&Y;=?19~OL5#l6t~qT+l< zNuulS4p?#0=R@AGYiU>M^E#L%QTH29USx8BSNMJ z>DsexUWohz9#7uM%75{(J_{B6~66Va{O%+t@4P- zrnpr_ip)o{yu_Y8=Gd)7h2QF6(`?Nm)TpX*};6htF5Oyp9>$H!}m$obV2>-sy5+dR*^Lw+p3 z?U$fq(d*ZlA)oztORRdS7CBH+XE@=$(#@a5S7})NsGs-xK$*%PJ5jI4;tl3^Lzc#; zSPI1STl-%j|Mdtq86YO=efeBf6Q%s;9O{4R468&uR47!*?*hRuA7u}naQIDM^phli zal~YuE=;=;Jc`h6EVIb`_F{Vr z1fZ0A=ksK5@*f|z?p8f}G%g(U)l4A=Hc&Yal{>g+i4lNDt`|&`ASA{wuZY-&-o$7Ip*6W9zH%^dS z?L@ZDU?(`baSb^kD#_Ipf>8EHwFbDxl2+;pjTz7Dj?=lM4Ga>Mu1>b@E9Vcvx1k(sA^COgZVgxG z$1`I;)#hLzJ=M=9S;J_`byNP7eUOUU<9_}RiWkXx@BSl^axIh|Y~FeD*pZ5Z^B$IX z$TLw~!R-<}jbdY{O#$H#Hj9+pZOJ%V$?~Mioy)#3)R0puZ1z2>D^e6J++!B4lUkN@ zU6$`jE1dpDnPW~bJst830_qGu!+L{FLQ6E#pJNE%x2-H|&zWbu5F^Xl^aVbD1H%@! zOR_cTi+6v$pC_3A^n3Vx204tGYN`-zfX5@8?k@MW|3fQIO58m* z6hoC(#?cQ_dF-ipxN+?-?N5f-6bSIt57*_Oz7@q~)N6#hzSwR%l*oJc2a%kH&L|Wo z-~Z;fZU_TrbQ~Wn4!{K)=XP3{xk>6|M+ytbvAzYSLL6kflE_wm}CG#w`Tc{-AtFV`9_8Y)j&>D_#bMuvL7pKbOV7DncFAaPIUox&WS z<7u?*wabp5ANcjQ@;1)A;4FD=UpXaO2AtV0K5KMT!XwZdqbp`MzV2GnfXjo4Zu?w)?CWR6_ryM6I7|F1_P60!_=EntZf8L3K&I|>3r!uCS3wt z_F`+~d$d$|A5rj6j4`@WaNV*i$5IeSOiorK?mvoY=x+e&o9(IkO#|@5sb-dd+1mr9 zA4llBHgu()_fR05LwGpXM(!T=8Bx?^dwh^Ma-rTSgk5Rs)m-Bu!*;J=u)v)NY>MJp zQGzbwy4bh}`mgnqmHAPw55azNiT}en!QvT|nOcQMvsNQB_H`&>6fw^`X4^#h(&0;I zupfGDM-M$qxO+kt!=Cj)Mn7aYfk#>VxGIVLE;(ONzTfq>1b#T=ululoLK^?L*mT|c zj*qCEmdLeDqbKh%zJix|vD8ZF8Hn6Be94v9{ndR`T zkOlrHqo%tFcOcuBCn*d7N&T9q6^%QEG(!2)QhTz(kh;dE0>`thF~(N2YLiWkhoodr zb-cFn6fARaj`Qn3gnl~)QM1tS_wiygP8z3XV_Ez7jDK|WM7@^g!AGw)LKIyeP8|_6 zTBD(O7RD1;lX~knG_EpTtHH&@?g(6NN)?mk!=CYpXB4l?^#<`@gHibt(u+Glr;o1!l-qukn?mYU*+Wi$gnqD4DTK4z& zOotYlQ9M8Hpq{Qg^VFe%D25*A`=t)iqo8;Q;CNmjYkV(*Q^%RB&v3`o+YHlO{>O)@ zM*6`g)Sa@3&~q?r^B+1#$lEo(RaVKc$#5Fw8r^AmY>{V=zcviMRT6S8MjlhT=rCautl> z)9=F&zUB7k|G*RebfRb|;WL5=SSBLi>~FbRQe9N1y^^BcpqsvLXOYS770U7lvg(#H zCuHmabe#&}mct!URno%=r?`ptHr;jaZX4VUt_t3oMD|KDWo^~PfGA?bbJC)85ynOcWjeBf=Pu} z|82tF#7Y>B6=6f7f3?u77~iHcbb%Q5BgCD{<@6jkwNWX-g5lI2x#`IJ<7v1W0ErQu z+0{}NX#m9eZ1e4=oFj0&6$-g;=?*{@Q0Rh-jN7Q~-)yD^{+ztvsISP$s>H24f&XS#uz=#p?F@Y&IM;%>BMxMI3u zV6*husSN05upiF=%*N^<;!p*6j7@C$l9T*Hian{3?5H$W} zM4eZq(UP4Om~YI{_r*?hQ((U$k^{Dw>tblH(u`x|p+`?{;`*MfmI)--fkpAY>Z-%86Q2>Dob|>2H*sl>nZ$dzH};7jAf*Cg zbrk_n_8RICmJ45vh<$)n?8vO^z4e$Wa-%b_u)IPJt?wx@$C9& z8#67iN`nHebcWaT^ge;Cgq2fpqa%v?m^} z&yMROKCh9_E%~1Ahy2$7s1G+yA-Q>?>XNtKGA0K1arq}ujn;C?E4=24dhzD*Nc10k zQo2iHkMs3|gSOsFN68#@_kind*vN5NaW_j!Nv^M8ZPEeZ_A9JX7^Y3PRfH41UZ7z$ z&^-!QET@d2OJ+~ewOqkLISA>~27Woc-d#oi{C$r8c@?^#ma}*E_Z|_uF|f)WQt-kq zZ-E^vjCYKSS*qcrTW|oMzrE1GWbjQxmUR}pgNiP-Sz9B|veCO`-vpaG4Lb=!}VJ^+0;Lb5*5Xt&rJl+Lj#*U^GpaxpUlM4hHL9y4~|44V#= zT8f`gNU_S14ksGv;0C0ohE(3KcQ3WL^Fn21>y__MeP3c7!NnI|2eNxigLB5WVhl^E z`K{gTv(d-Y64!*fn?*c(64zS=jL+^7IB0)nmCNP4U^@dDb!~y? ziyXe;=^p4QbFu6wGwz>FOTHC#KAbQM2a<1KLmPGtT;NUPr>5Dn0k6Adp9-%hYvWV! z7G?v8Zzc2eF+IU}CL84y^fGTj%7v7Y@BqxPGy_9(5teLcC zWr=kCA>$)mwIfZ0w4#^1UX4T1RAlo^M0bvX27cDEfF_+6Cw%-t^KIpq;q%ILspJ{J zC`Fn7Ii7m^t#4$2-AkQ9iPO|?|D{htLaD5sTlV02);R_V{D;Jg4^^~_U%P-?-y|m5 zHKr;&QFlYhocY;}Y&m!?cG+7MyZTr`SG|Dsmff(R_P&-Qu2V{ksbh;G@9mF#%z^d` zmIh9%u@3dzCA@9*a~Eaz#=v_xEMu0djl!@=O@&aKJeQDHbBtUh+4)>8x7WK#Zdvw+ zfD^ib_qHU=X~r7}Aa?~eF|%Ss!WEIbaYQQGwdl&3J1+%!1Uz|4BY5o`#`J4I2}vzC zmwrBZt;O`rORm&#rM>)Kitygp@X}I!X${dmSm)`5mlv3~I-qUsp^NKTqf6PI8(E(b z9fzII;C}D_MO$9CzHJUz+0w16J|yItP8r#5=!f#~E@)4L@G`N=d^h9k2f3}af|-Sc zh3C{k+H=)|a)HUjSG;V9QpqSI*%wL&__b2SL6=wqQKQ-&ez~g%ZqFFqyLYbg!suRC z?Y8%p{^xU_Ucz5z^hFD^7B_chXYNFV-=gVlB1Q^7p%f&Wn%^b4eOQTLzr0aJBuX}K z0<_TqI>*M^0IN>sp8u_Fa}CtAJ;hQ$g_y*1&Q<{um*d0b@3a=s=SR`yHv5lU^lAMZ;K#ma=4X20%#2rtJ>u&94L zfh@}gWo!><#Ft+-Hfzk!R?T7D``K|l>rA@qaRv8&=|*W<4GgkeO{U%>aI*(aw(qNVT8thU~!DC*`vA6P- z_0pE>Q#w>q8f-R!0JTc}13vc>=bTxW)|14Y^)f+Yl;p+^(>}-T4TDBEs;YVHGGmQR1fcF8OeONK>+Wsw)r1aOx~|HE@#o(mXBnMwITLvI$#-o67WZTk+JMa@|{sPQjO&*ToHFV!~K5< zhEt<_q41gd4AXCi@kr4L?{N!@`8M!wf6kcgxQS;&>tqu zQ?R=8no3=6`;nelKHT5*Rd;Z^nkFL~td2myd(+3Kw((>XXUm7V)g93jw&EIr-g}Ih-^RHsAg*kiIY6_pFnA!Jx<4ZU4 zbH7?p@gV34r92?c=XKv}_U9m@jpO}TN3o;X3^)iU{pvhBWIciV$-t0yMQprYn52el zXzYT{_F58g8ctW2Ah`*BmkZm*O|;JT@Vs+{*MUYtzB`Aa-0O_T05b9o`yKGc2P7oP zh{)69K4!8N8bK92!+{SBf9p0f>_d6Ik-%d3&RH8C{?hx%BTz$gkkHXV!F^mwg6t(z zS|Q#YyRV1P$bj~ZGts~3*2x>?)k+ zW-fsjiB0nEFFG^*c(7KBGFL4qR7qo*LCZwL_Gk|JI|{m-rd8G=Es zD5TV{3$G97?xVt&;mXm^@x}a8nL#efEoUy6=$7}?WV#yhAAQT$f_d=Q4!VsMJJ4aj zQ?6G%H>%N-4>5CC>7Kipdk}CluEn%MExM|W0F`GO>Fv|Qz}mD9B3ge!CSRXDZERob z_-|PvVsr?7LxgLEW^SeEw(JmcBN~b1dklXcDY3wqx!C4h;t)PAw^n2kC&A`0)wjvf zSPb&OqmhZ7yD z=epa6%n$F@DM1UtJ+^x?w3*5CIceH0wWIet=a719mHl*8UZjopv9*>-7-;~)!LI9O zQ$dpJ?58Z<1LP{*ZBFe8S49XC@fCNnsCV>+m*l~0KGm}Cf?qXsp;X-tM#(*en0pwQ z8Y0zqzhd##(C~+P)S$oai`pL1VNdw$%>97$nK@M?_j&Fwn^m^qudZ+thYZuHFzoo7 zj=Gf5o4AsL{oJ`W`T1ebp~mb-;aVzu&xXuogB<-G>V|omx`OH#`ksHelm5a5OW4s7 zedj8?J)rQyS{&Cybl`UHQ+qSZx4aV1OZo|P;1^kmiyBbO_`4)F_*S%(J?>rDF~j6Q zCrTwQS(H#toZ{p}-4vBH2*}8Jkg)3>&nHCJlXzq(n+3a{eCNqlVd6NBThHmQruCt^ zHN0YV34E)$ou7l2U9na(aDy#1j=#Sw^Nzn8+<9sCZfjeL(lFd%;uUQx4VCb_2Uu#@ zz9-e4g_8;S{Qm;<*_S0IqJ>nHJ`UZhJvn@LwXo2S)4svXqGC5au>B;JHp)B8lOQPj zhu@ajFXDLd1T#WVtMr(MtHgMAQM`g~LPoG)1h>C?(qlwB9o86^On2l1q7V+OimEx* z+6Py*U*oXH7S@d6XmZUjJ2#W>p&Kpxp7WphaRARG>G@q9X#DfV)S&M`>nFw42sz(~ za)QEXD1Y8DeDEkXZiCI`MOur*1>S03SmgxO4rSf%F#71%{W3F8o~<2!%D_j9dVWPO zR~yM1ETgx@k`xT77y#fbRSaxB(OrFS7-h)W7<%0e8r*~lh2NPXTTM|Cr^8ED28VxP zHEA`!WCfO?ZxdpE2Vy0iTL{R7^OU_$LO#HaLYya<@ptY~QgjkUy^a49-rqyi#a&(J zIx~LPP%b$rOIta;T2a5~Y}|1hmv8&x>k0UFZ>R|$&#Y|^^3YCMCFD;Qf75#W&Uw+J ztyK~_s!9>C&djYE7qg|-m-`_SF6eh(%r0!QTf3O1kH)VV#B$(Qj^A%Htm?iv!Qho= z_@i(g*W;Ei6aME2XjfF^z)2_cy@eg2G(m z$uUsSO+<-L8{NCJL+%`1oxmqI8pJcMVE~ZwXo+`uzFz!|UrhE)40bw}BiKm@?_mEQ z3m^ygc2s!v1-*fNiY3oNZmZWJU92SZI%GeqFq6Z|GF`h;XOs8Co5P2a|yfJJ0_Q>ibw z%|lC-3|f134q7%3YFHWedD3O$IbNYwJpj^hp1qi_`HQ;ABu&loW6?7__@$rTcdV}7 z<39RKg^%X*zxCxrBX^Tw0F_R9SI1bBK+Nl4uRwK?LQ-LZK8sP)Dw}_nKXrT)62Q$u z*m%@(GRPgwH9uQRoU*jR+xSz)3(-k=S-xP8c?91F)CV{I(yZ4fA#X{(kehJ~i6V>B zE&FBi3%w5KkXm%H%qQwl`D*-Y=#8Vxi6wMzgaE~Wzl9=BAQ-o^z{PSMXm)8hbS#h3 z&VNin7Eahc%@BS5C75uKx$=XAYx@Dc+~XHEU#9IIDN+%eD9dX;#2&ir^DIkZLz6Z> zP=%Mg&Ot@N{#tzSuB2WCVs)ud0)&8TRE0F}f z=Ui_8qp*U^RQ69RjXQL8=SGWk@Z~x}2r!TP>M4gV@kQ@g42kM0N>(bYLlmSu8T)o}yt!khGe?ANjRt^v-dLZr z=BxeCBz&4Cn#ZWWhohE%ZI4*9xI>eDPmV-5nC(h(Byl+*7X?JlA<4n?>6XC(Tffyz zX(g%M*Gz3wVLO&MZEFcL5DR&mKKd@*LAA2P>urjwzCoOFT~faoT@YM_+LZy-eOU0F zDCeD*L?^%3e!eeQD9jA%X5q*Yg`ZZzTZ8>*>{v=)iHh*dod#>qdy1%;xUoX+ zjIv-tIJ@4c#jwt0qR<>h&K6hC+CE8X%l%DY+#|{L<3a*d>sNj9()tlm?$3OZ8Nu!c z3!HKR=3hr4kmy2#!D^^`M#HoLxAPu|jBTk&mR;E1wD&%HfRKw~j}NSBJLt{tNIij2 zKRQ8MmMKC3u{`&hG(c zFHbE!p3^8(%VeJUT0!N&o#YeQ7F_O0tAyOb`Nw6Ax8?#uOB6LUrhrGCBzd>zhx9p7 zj?s%R7zTQucgVus-+3bWzW)Z1&Ue+7Y`4BQ#s}8)Wy~rwPF~}Mx#%R7`UNrhMy%l- zg~hj$<E>=N^GV3rQdUt;T#*NesnedKmrq zxH0bfBor3u*M2iQ`gyvCv*U!4XT_zC*KCwb-DBvgB)kdXWY|;%_nbENGKNdFztdPn z(M_)Y7kB=Gp5Sk1vwdP*g!ev$%^_dMo{ZNPqXHY`J6mMgFcbcC;>VpEIhR45dhXs+ zW3$k8>J8PNyE@Bnnt zn|P3)i>4Ne<&`b5CgpKW(6xi(%Dl70f1J+0&UgwAwJCr8tIp^Rs4!xiP*J&D7o^^842Va;oOqLfRgxmwOCl)soH^m+HR za!o#{?!IYlUr#k;V_Us%r7II3g!PHIr--jhm8L;fFu4~$-qc^<&D4F{YLgNclHWG% zyH#T7yDqVX+Fy(cR{+rIWbKAPh8sDdtuE2PQd?r!|m-w9oG2>LzN1m{5!ybRg;Ak9J6~c4xbZ=EABh;R+B$J2WShHci{F}` z`~T4b=}qlbzEknhdzB>@qQ4}xWq01XCoCXCt{?Io1Xn6cuo&hFq*pQiCMUKz98g(I z&0a3|&xrl6=K=bzV}&t}dhA@)1bI_8=9lMBnErRw6a15S3zR7_#R>bH2G@BW$gJbH zHS(t0{E2KLu1D8@N?Gva0=eKROQ`|W?d))y-Qtnt6uF*fs{h>?v5olP2T>pnt({neVoLHnQ>G|dMOJFd zQj7n4vR28D3JFlhIwMd2_whX+!W|MoLb=R`kWR1L0j$9U+A7NTiaoCT)+|n=`gU*? zU*cEj^$gqr*XSH+cmLwM>h(Bt_Hvx(%j=mj@qy=jS0yH(LzyjLLetbv#+;?J#qHT! z(kr}flk@ra4hOkw2EY#EKeJ=S-5E-O&nlOmSRG#r`}E!a(|_uC1i&*dXD@ouY_V7n zCn4BZ{nDg*j+<^?l~?EF*$~fqz)c%sBYQhG=f8=Ln?C`J0t)0nq3-HQZzoj!_B}4o zIveUsXBL*{RP*E735cQYMLDs&FIgM66OZog$Py81x>S|KyX1JU41D2+U=$VZr;eY%#B@fk$k{Z}t;)ZckJ$@?rVEai8D{Mt=X6j#x^) zO5={Z>^B9*UMU7#2RPKrYnQjlZ$;{0F6{N`Ou@Q5_6-2Oclikf%*t%TG0?UJ#^lOA z^UonR_YJyp2x%$Qa5bXgG-X)W@ee!*kNmoq`zYm1n7UF6Cucfu?TqMtY$MwaXsS$k zv)mD$744q0EQ@~CkWk!Q^tI^Yg5^Zx6bcvFYtIeN*KoDKFs4i>Xx zPHywWxmCA+?)3^$C4df_vkW{1jzG5#6j4{t8Vut%?~=?NZ^(crwZRzLJx0t(^&2P= zy1&m$3t~^^B_O)h0zI$5j;X-%#|7vv;#ckpzj^T{M_!HBy)NA6av4U*LXtCs4M$)C z(kz!dCLc2xaOF>k=DeT*v3c|#qk2y>fHZhe9i`tieib9M#369iOWlCqTpk@E{WFY6 z&tojv#;s?grI)JVG{h*LRW2)>SsT1+(E$}L_;or_f26rT`s4wwD}TngNi_jv~TCYoUUwq(673od<|4Lza4zOFQkoPRilFbGU%O6kd4yMF7x zbNd73(6zozGQX65os%{>*4`wm0#2yfD3z&pm4!+-Af$0TbO97hMLM3pZoNP^pxK#k zu+OEu(z$-2%+4X00JHyEW(w%Rr@y)mi986NgX6pS!q3TgwaHWVixw`==71_SkHo~U zBkq%{+?5U-j7M>$>8$B*XZxmfcA5RLWy+?$6L>Ry$tCZx_`PzEUxz7cu==wX$hH*r zFf-NcsX^6D&2?tkb&B)V+Le2z)R(--H+#RAVy^LaJ}QyD`mYL`6eCahLhqKBMMrrW|4ZvOl*B^5ng(+wZQjxpCOhpMacY!6Kd9E?K7lwr;Ma;!355 zbx(-$ixP5$AMtlSYa z=0?W(^^0t3Up*VmpBlx) z2D@1xfJ>^qy}G$g_&i~~%+u-I4MB|umI^Jlc@aSk{6$em4r0=Iffz{u75_~}s!lV; zB-j^pMvrM$7Y@J7NCiz{Y$ORF)kZ-dvuqmitD=f3`3*k@f1AUFU$@`kR3|$)0hjKh zb)w2$TqrOnKwF=GvSc!ZE9t4?XAQ&f4 z_C&cWSuwv~x!>{ierh_yeSu0ok-Zw(XS$+5dRej2#@rw<56<)-OCGknCHXe$ik}YG zC%KAz4nXsHh#h7z-x9Ac1NIs+N{wiG_8c6dD((U3T_do^WJ;N}O3Q+l8*EWrMVvq| zS42V}lUHZfRt`lj3a!=OqA!}}*{6E)2c`boT@dja-RLM*hzlN?8+RCB#f&N(%)Foh zK6UREc5X6-zgO40&JT3L>0H59%qP+5pd;IH@b;_({d2`D(DgpoCjvi_+PZ_*T~@=V zY$-24|I?bvl=-{rpN_V0daz{MKiiU_(ICH@KhUiyG9rE&?VhHwWEO_F+J`|-NX8{c z7K&Y*R{H!%+&Er3&yCA0t_}Fot29yYPn$GViVFzdxOIVj+~x|0Tl$fDWHYX!Q6JXEN-;;d6UMnZnCm+1(Ic03N!c#|rN1 z`TJIQ=f^iQTVuIaWiLyeKtqLRWEQs1<{-B{{2s;gOVsHot11tQlI(!fajxc7LQ?wV z<)T-^rf-xD^|S5X?Kg%VDv<_qr-ilA4=qhhrW3*PNOm?Td7qc{xUsQZ+jk|RAtbjo zA2Nn>l3>E@KgvZ>w14yy!$WxxOeERg1_AAddP>xVi(f}Qwcd&8C*+n!ZH`w=4-D9E z03}X0E$9q&%CFduh?eN^pgk06hx{vsV(iih49tkUd@lQXlDF8jT#_=6yD8{SLiCMm z>XCtbZs35*cX<{ArnkqfRfRe`;85>NZaiNSzs<^_Q#W4!inzP8GoiolUk%y+Hu3X# z#-gE`wsWHN7MKQsl^IY`l_d6ia8s1ReBx(q`)GspB-vkvw9C;$dzs!AMKC^vGu6zQ z*Do+hUQeiNmoHeVzgbe}dwXk~m z3U}N(tRJh}j13H}~&HpAwZ6YTee}cUG`K&gP>sTQ?9Iw?v&UbAhO{Diz`< z`m3S%_MVY3DYcAgwPPT)`WtqpKaACQ_D2nfQrCNb{@QN7%csG$3L!V#F&u<_oghc| zH3uWIh9TQ~`!Ajdkm{^vMW!kS+$~d=e6pXbb<6be&rQ2qVo5PqAn0HF#!D=DWMz&! zT#eg)eqk7ZpVapAY<3rIL(iF?Cu6!#8K>$X^is1h<*a$;;sCrxUBJ4^zO~FCSqO<0 z4KR!7nI9LjV8?S}XfM7jcV;&9b*ZDClDkCh7ccI!F;$@ore^%5sOq z9Ph5$&sh0#d2;X71Rhg6;&=VQwNULX!UhZQ^nM{ex=JBfYmiMTK^g zrLEPAeg`cG$RbK>+!}mo3A^jTDFwKAZ^dCW5XPywlPJ)~^ZMBUnVRqq1(F*_Ew-O= zM*x>0FGE8mb`jOiYxEm(+)XA!Pm!-Kd6g`#C7)9(!a;1T>be{XO+;!qa#;xerFBQTOL zG%bD{0~U$$;NV}qZtZYefTN;bWjcpSj+VW;0BNr&UA<9e28gcgksQ&<6P6BrhF?aWvsQt7*gh73o8fY5)EBoK zEHe2LNhDd?;RMFirZ4c>_YK_%?MlfU#I?GvVEanBAU19248`R9R^a+<`}*3Fx()P0 z+(-b1zXc`Z)V7-wvv1@2*gLBt*7>rGDw&|v0r_9e|wTP zlvve%ySgh);BcoMWL-+P1gfEj>ReE4nXkB&#QoS0A3qkN`~^Aseotv09Qd2w#yxk< z6uM1!4x0-umR>y(mw)la|JO@B>%=eNIwicDzgMpZNWwTo`mCuss-J#Z@a%69M29JM z0w#9()G^PyhFp@VCP~haB2ecR!sp-D3OslZ6yw?h z0H}Rr?fDT%@253u=*Vz26TSE}yzLdy`&iq-O$|~a%K<`o@X(u?k9SgT9@59ToUCyw z3GBAL8W$#d4i?>NNB{K9HRwU?z?O5z)L8)HwQOSpMwRl(#Y&C4_N>+UBG+7O+ulgA z4emE$tlrlS`<+>ne^hhk=Foc)O7SVeY-$(hkZ&%zG4{K?0f;%(%c6$NXC1of9){{4 z?GVLt4V5P(`KTX)zLV0wq;MAbq4d`Q>yD^3#{oXcqw{t3{e{gW*NY6Yr3&@$MqqS9#?6Q?eb`KmLYiWC)n(?{!z83L*uDJ zs^u?w!^@JGdx%=tRH(@HUz~w~BVScz2eJ0SoY++508-^NBmc6t<=!7=(i^1(gh)t$ zab>ZHGV*4E{(q~i9gLt;4Q`f0qSSYJ@7$rlouRSt^eryxVYQBDXeFfP&D*#OMMNf_mK8x4Y1y zZL^B_&3^lNEv0Oi$`5@mv~U2sglez{O+t}~C;7C;fu0@bZK8@!1Sujte;f2nktEdb z!yGpmG;a5Qv@OE?S=cr@f$=%a&suaxTl^2Dznn?}8PSf*M?=5t1~k#|VeKZ^WvJYgBCNTPMzY>`;;y77~dq*uiNC4BjN>V)T@U$xzX1w$>(v?J0KH96*(a> zCa}oYk(zaJusCm8V2tiMwKEfA=%-^=h;@%Y(AQsAaFiGPYkLV=lLP{TLl=km>C=fJ z%}ow%`-01g$@!pOPF(Nk1$5Hr*?g0;sk+9Ms{Tj&`9??mEg(20n2pgTl4_Q(*q8vM zxq^9IV=$p82dBN^GhBLLoms}C*bEh9qD2EY!r(jwtHR?Id#eNc9UyLPf`&^E^$qVn zV_#b*63hO0#sjZ_U47n_^F5zL#2XK1dgwCQKTmDwmVcypATtxYjxxYdCN~1TBlNUy zU+Zsod~Sj4;}^8)>vNETDBpWrApV9+P7MW=BM~dEuH) z8^Z<%Lhvh9Qr0_S&}$=o_nT&|0Of{kz)f&U(G|V_h{ATY=NBNNif&)$V#xWnq~qV3 zN3aGF;)iAJx~>777oKLNtL2a#>>wb?;aCZlFWcQE!c3Rj6GI#Q z#WvC{2H5IGCH;KrMog4Mvdt1M!Ql2_D&7ffKw3h+VjXX7m*k${_c5caHqmX_8Jr!~w;}^o`YyMc>rrr~jeE$@3TkAR2ER{F>pfR*{JvB2}aQg5cb`+ww zv|F9P1u1dzVHtGIFHPQVl-fU=7=1YA{^zaz{%=8>-|GRIx85-0_I0HM?(4%B)FE!K znY%y!2(DIl7*;_gO22U30RHNSBu34#4E!fc|7iVJ_IuPAle!T0qspZArbpC+z!~;r z#QNr9|EI(kz<86;w4{gec2Y``k$BuU?*%1ysp)^usgmv|e)4?}!Y_iDzr8Ja({BtN z_Z=nI;hDG0?TtQ%OKzhbiGGx8ptuFt24$_L_}hT?@e0cv6GI7)O^tMo_$xgV69AH|dC z=-1UDwAniU!`XKLHMy;8DViDkZSwLPC z9HcWNxnd=A=&gKtRN35*Sf>-L#Bea9pJD(#;~qZ2L5jpLBtpB`)9lA}oJqpTC_n7& z(b$o+`~K?3*%&pwN+@31$YWc^E`F05Wgmna~ge9EZP-TV0N*Z#v- z{^DixINuL0re2FfS{}lSdFyX4G!U0$xC?uIstf@zt0ahjxTx>qetPd6WZ;D2Ez-g? znh)4&z7bU=Zy&W}gA;kC^CEKG>L*N(`!QtH>Uks*ABReU50S#Q`jaa(&UHd2*GzpA z#}UqnhX~{2F-3_z(@U8Cy=0GaXVwf^DrcUGd;FVuOUzVkX&(tyKD%9o^2GV;e`OPM zJ~`4-m+=f$ni&hK3^cq2FeXTDI+&E~8)uoM|QCW=_UA5n@%&z3a-lsOO8rIO{0sD^w3EX9q6Hv3n z*-|yd*)sy4&AO$rlL;MKpxRfsx@G1tQv5kMy5pP?PmAPgZGvRYwC%n*juU7ps%R2| z+_;lWa1E^v^9ZMUHdm0tH}pv=@||jT&2+i(prH7=Rq_*QcBu^a(=B;Dl~?S?noyIb zldm#yuP`3xZI={H_~e6vUM!~@to!-NxQt`f1NBz6mhPwaw_&}mvPZi|zA|m|@tc%9 z!(bc-uH)^ZLIDT$WH8gKm}A|S>w}E@^R7UXRHK1J;g&wmt9$PU!=l8TM~7L-KuHD* zrJ0Vze9Orv*5R)~L-O=v(g4P`~lFm7ADwHZgDgYn?*-=+g zR%t1(RzgA=X}rG*$@j!U`)l5gy-U7!cuhrwfJ5hzs93E{({@QaXmY2q8;EucB`i9h z^@-KYyRgVHvO_}0Z%VZaoU2~RYs>__*&x7I69$5*EFOw=6J?A|QwHLkb^u5%o%514 z*x!?@1)6_)ggf833w-z(V0zbPjUmC8CAuDro|fY)lkfcEIxMv){G5#ZHkk<``T2Mc zi&t-~CqY|{oo{a!_BB)^1@!J(H(-)yAkLn7!FNXcg&&ktMc<_Gos?e+%2cN%nv-_l zevb)#=$ZXaI!H};HKI=wAPxIa{6cO;_J>~}MjwL+DRR3bUs*;3dHSk;>HIc787cbm z!Zhv9gM*f#oUB!#d~g);q$#8jRVnq_4BkrFRFkIMe=65{@tvG~#G5iAj8ay`FJ}n= z-yqeMKb}0jF7RQqVrza!#O(tbl8^?dG@kOb71<$1KyJ$PScW0??uOxrzw&L zotam6021I>O7`oWc{H;iS&!Eyt87yvwvBCgq}<#9Z8j6fmW`sUZvZv*=SeeKU6N@%%g6~_s3vNkki9haoZ^K zBR{&;woExF@nSqmerU!%81$s#6ge$)f?RwRy}f?NdpWF!i;xwFo2&X{+yZF(@$a4A zxN_AEcS)hP%hz#s-a&rhdUbeSpPl-sL51M@0_5$SEsy(mrjTWG6idM#j&B82R zHcKZFpd77e5LjO2#Y&Av!rfkLX4|Dt{I{#0IeixUPD?zf(mA>DVBx3Kc)ODrfaGDr z>aQW~vmgn~-pLXsH>uJ;xlIZ3tQhiY<TP~XP!@kaAI29vy?!eB7~f@31n z@4~P?+0uW+S+=vyy7Jh1B-k_MlZou(wzC@qE|2aQH?0$&=01oDFHL_TzYs0{IbTM` zoY{L<1beYh(l^5%MQwhQ<0a<8ah@Ulfu9E3r$L{fwuEi|vwaHeRYbn^wJHVKlXvt* zZ}bb4!b?sg4zNc@AM7MxOI-6SD;Rw73ZEt4)cqYyiEqfM;eJZlBNrK=``;UozQ>J* z!>;e2C-TS(ZaShI*qF`IeGE(O&RUT^w|Rdy)xP^$Anep~P_SaN)earQS{tiiDBv!a zVP$JMqw6))^2DCxUR|cOPcIG!)5KArn9xyW1LRS{Cuq9R4G(S?Cw6aSh{*aA*^&q%-rA2<=nOb)QNKbG2DdRMh@*2ZZM&o{e4W?7aYHkoKYjvgZ|5nCoebMiKu2}Y5!bYycXVR3GVf2syiOv3kfB$wSZZXx zzkXi=)tEk?YJI9b9Pj3~;8s?gN!tXVquU;O0qC4haJNwU9{`?c3C;eBX3Wz#Cyi9w z3A>6qlx(-9!Do{ZXC}0%Z!yf#%Hrf?+T8mC8~|lr+WPJWr{50Kp`i&G?Q^8)F={@% z%?k09JFE%4(b3LHfL|WvQ+%q6SU4mNfvm%PzXLSPab0lw8X-6#b z?WZbt?mRXHQjC28)TDk}7kAEq8h26C*@Cy->o7q{+}zEb(71$}*H4F~GViS=|C+r0 zXvOg!uk!Ysc}T`({IW0uYTd_P@dSv;AIL#HqBy$BGdK~l_Z&FIoh|m89?YW$gnNSD zbpzc}om1=}gv3soen`FGTe;#cbXPD_hc`#Xk@wHf5>6ubOi(_+^r*ee)ar65k;*PV zcVo!IG||3zNs2?2av9~$yvN9fPaZ4~M?D$cv26jb&n2dfAI|l*5+>zXzb||qIa5j3 z$M1_muWGu7j&{|w2Rx-mtDiTwu(3MJS&?i+60>d<8IE&Z*MM>DEVS9DIwr~g>J+7S zw=};opUfto-v`}vHVO062ZdF1ogWX3b9reYDnF0`tF69@n5Xvt(ip3GyDH&}M}n9iM)ci=7_R6ebhU@NMrFYMR8hJVtIpk5xkx@YUb0 z_99&9igC@;z`zYi^Fi$Dtp^)GyS*D_#CZD|(XK+~5C=GW#JV@*&D<;`_59fvZ;fFS zchvg`q~5byB?ER2?lFo#N|eVsn78YdORkKqS8aEC@bV41CewZDT ztzG3CC|}cE6D}Ez30KF>jpJ`lIQ!7e>%;RS=sR?p7)EJU>krB%D|%_KevYl^z+v)_ zj}{)Wluw{89?VyWybk~AYlXT32^pR_9E?8Nc8_<<>`4{GbgU4!3U{{l zy#hR|C033@nngw_%I*5rEY9qTIV*j~q+57Lquep%O2OON z_8Jou&Iid~7x}X(tIl6gaA{?Q2Um&x4hrQq#5(C54WMl_jy`y@8oeh&F)hCqrN;#g zmUyxr>=`H1Z|m~&0DtqN?8X4{%3^N zGqz8Y)Ox-y-)mY82gRe4H=q5WVqaHlHRc(IrL!o_&12Ux zsYjyHK*$IZFM$vB0J2T`7Q;Rp`;Zpkw0=t8?~?_iK+>8~pX4n$swi&975iQ_PeWeJ zXX;m0o^HGARmsf*jK524jzjk5_BG;Ib?fp#;Y;h7^Y?)+7aRh39ql--LuYRHa}$rAG+3Jbg~xua!g48=PfTz7=ebb^>%X+tZbn<|YS4 zyI_Iv;O7GbYa&F}Rs(-p9}^k&ZlQr)B|#}%u*K$vLsXR?LbiKi+?7eW7P8dmtnw|~ z_PJ}^y+U#p7u|x#27q=V*AEKBxAk7Q(hf8Hq;sh3fCC)X<=@jT=w>sg}{I> zZ2K!vl>%A4Qv7+b5f?FWQYj_j7RIVjEh|r?Pyn<=NvzM>L(blWvJIUyzWU%=n}C}K zympr*u@RV+cDZw{c8<%>cp216-z}^ac65E^vmn$@}C6itCi+9Z2&+(Z6zBId^Wy64=Bc&+xN9y58{@lJ(b zf%W(5f{6VA;w#1o?_ceUH!7j#1OIMYtEb>)=J= ziSL9#tLEUq$kr2&{GI;Gme_skwQ*wE)0tfP!*AyRn74VfV@25bY%3i1QLe~q{0)HF z9klFs_0qU`PdsQCU_j!e6#3bF6g^64?giw24bH;zN#FjuK}n;W6~_57($xIt(GK6M zj(l0$iHg;_L#nibL5DSNZKpN)w7cIfXWrOOpVWCba6K{}8A_9%Fos=Z?7y3a)Ym$? z44mDUt#nJ*^4;?~Hzt~^wqNN+cnw_sEM|XIJPU4|!c`bIDSx##cW!t| z1+I31J-G9uB?CaCQP)>7%P6-eqVA4?u>Rmn=)kbAgJmhnQMZ?2qYqe=KF{SV%QX@g zZ#P`w)dXuNPOIkd6mK$tT2fRJm6FBJ+d;8pNHR~oIVwznyG7G@Jp9-Si6xev@q_0! zk8oqHpqI-A*fj{>B~@Z26pSt;ixr%+9iUCnAW>mV1*r#xvSq@ zj;T8WW)6e6cJ-4oM}mE1SuweRLMNz*{LjKRtf(Y8w@q(=s%L+ioZG^cO+myaHY>Du z!ZD((=w31YRjRCYqQm$sKLYm+%T4n-FGIHw09jxH0l2u8fW7aPJbB-Kw&(!PU`KZJ!h&9dt*}_myCf@tb zaN}eK=zX~rapeRUr#}Y`3YmM+#gm>NzX52#-9Ju0C()t9@3>)j!yf>7QmC81C+UDZ zMQf#jjTinBOzM zn_83Alk*iYaX06}I!DXWVesRc-?wY4Ui^orgf7r1XVoeF2z>DVzQ7 z261S$sCj!3<x zlG$gH7=vUxeoy1_YV`x#*CJ4pU&=P?h`Y6>RY27RtiRfsm;b|sW!Jsbbbl3dLCa@ddj**p{D)*E{gxP z_>X+HRl^GLevWIgAxlax!| zB1PlfNhjCTj(OG%0MeEzlhVpN6RjHhwR$@9qCP@+e@Fbx+;~>n`Nvv=;4VOU`T3W@ zLNvQUV}`5;fRQ5iR&PW4ID;HAFZajbRgF!7lk6(P{z7|rd$W@nV4fol{DkgMAe-^9}* z@&`J%B^d{qoG?6n0-pdF0KT0%)UDW6K}+Cc0593>kH;U)p+IspL11NklwlRPYtZv5ty?fYb1=$7#3>js);j zU|tpu_GgE04PVW#etp#*`AA;cQZOnjaU-<(Y>8*T@n_51CWlY4JE!S2K6it!J$H}N z7HI9tNH^SL^ z`fRSX8+i(4gv}c9GtKC-@F}IOA;kgmr)07k{b;msrQ_`MOGTR+IGd7tI9^BCA5y3f=Z53GTL~%oKMD`qpo|>Q=m= z1KzSiLm-XS_meziC)LNXE8<%=tku_WSH918)^e0CGFm$Aqr)(_-2gyprndlLE~<>J zvBA|F$)cuRt?0HqW0jndmzGR@h~6$OcaPb72&j`RSptvGmrE4h^|=V?{tVdgY_|SG zpJkGqFVkdiBo^HCJqgo8zh0int$Jn5-H#-sP6*XWWL_BM*)`EummNxS1-ix}c3Sq5 zumi{K0JCkhI9`G=Ef>{{W1TUEp3OL57(jZMT&<+VC2myJ`;2wEtu<1rI9z7}QC;+Y;nDf`vD*xHk3-*}L z+vJs7SRPXsuy)F7(=8?s-Z2b}?r9OsKhTHioh@3m`XB$dW<Er3r>n2HxA<5GkJSc%$i zCiE1X_qWdRFPU0K!|oCKj3%v_=5b?oy4Yc+iF|4JQHSa*p5~dX_>I>BCK?HpLkWdD z@Js@;Gx|c`=h7&#NHaf-@p4PeYn#r38O9u|6y-(7JP*ahATBLIEHwiNOwUPLh)=vm z|3O8iS$azv=wy)8VGSuY5e=WSGUa({`AbW2Qd@B)M_U}Im1;zUv5zWInO!tyyqy!f zv+pO62Cq1yOGmPfD z*!27lfXK;dx`lhe|Scts&YeX0rb|l>_`?p0;U9Znph6I zTu_dI7b@9UZ#D*3AJrUcHKWLoZQ?kSFI>E?!ry8av3I_1X5@AJ*}FpS%pTIw^s@zO zVexm>I~wpu%oQeRBkm5(pWrW@E_-q79~#+}#a{#olbwd8DgVuv_-DcUhl630NqlEM z{?@yXe_{cckF86+W~u=WX>gj@ZLhHwU=V=;Jnl7VN#s9BU>cOrh>Bs++a2cy+vN&lskTOg%iXFDC)p#(G9xe(MA~;N<`xf;R*HZSjy-SEv+UAIlw*?ph!;k*nKA3#A`A) zm&A^3yT{M1mz&Q$Z`&vu?vo2?P1;<93Zy1~q>jG2`VqwS^bh3zzgeQ+eUK?;(c)A( znLL<6J(!kTLVt3Yg!C`B@~R;`1jpl99Fh)&WynqznNbphWjAqZs6hRK(aHp~D<7|U zJSSwn@+f_T+jINl5IajE<40{?_k?^XD@>0Z(^uHP>GIk+RB_{z;v~2C&=~kg&>PDO zn7O~U&`HqMfZ^)?Sm7V`YTL`mHt+1@15=mKsSunpg|mNK12dNDanA-3lV|%CjWA|& z0%Nii19wS9itK3rEhPoSy_18bh%fYBlbqLk-pOB15{{9uY)k%vXc&LkiOAOeAa$NQ zopX7=&yTqH4`}1RvPuOsu?M}z(D1X@5An!43SaB33t+>LKbzl!TXvQ~+4=?=;^!vS zG_fSqRP7{R*#oE@8?THSne1(kD7ZVL96mt#Im=$mA zub-yx{9gX!&j0q}bif2Zo=>Xy*%9LiUR{@^Uum60;y4!&C^`27L?>6j?3ed`dK|B! z-e;5Qk`z{N5u7_H`Lwg2jAxT&XYxWTq1zvOy8I}jJ(N&7a?)zg;8}qH_GV^<2C@Dc zs^_%%crgY|ic3T9(2BUz{BN@MUq1c6kwf4!e-|p^JX-9Uhv3N?GPGKx0?l(Y2Zy1A zH#wGD{jyQu$&KL$g4z5-IK@JRyE+=HwARu^G>jyL36+7$1abi8S=3eiXjmV;d$n$o zmflnkwpdws&-5HXds#zGKi&w2M~y()zvx+(Apm%n47Hl@iL-hW3-pcm1 z8^eUJfWsGLxY{I9H}7hH|Nft`$p5l#;;WCDq!zBrk{`%)ZrRvjXu7$~SEbjva1S1f z(En2E+%SJGf`hDR9l?2fP`NzOHyovf<)872@V+aPiYe-exzXcwyfK>fdXPPv!m-5q z?y6zWi!nt}o&3qtvIO{XrLr3z`e2q#s}Jm2gu*-#C@1N9bl*zz&(-*^hqVC&c4-@J zj+1|rt7F@9CsQet`R@_91uq3%kEq8K?JW;ozN*zrG9lj^--_CV;7)+hoSNbl#0K3_Z9aCNw$qC#; zcY|rfMgH8YG#R{B%)R0U=$CG%KSW6(Lb+{!NN_)4F6dv^@IT(MMfvdv`pghI8&$gaXXTh;!ly;u3bVBUp!}3{Gcbc&4tneyCYpY@?0t81Ziw1%@sh zi!g~{H61Rhst13QzIAfE7-T)qe_!tZp>TDC@QzlT=GH7My@1a~kEx32IXNXJMR5d~ z59o0!G^G@{T&@Gtpr^2PiY>lKbiDD=BN2|Cdk+}(sQK{Op-egP+L>Pc zn<7`;CWW50@J~(*Ukl1oe$uF63C1JfpmmLbJB$YR1|O202y@V#u0rI02~*QMKEbB8 zb{92d3p^Vn_1ejWSwQjp?A z^+Uq(@Bb@J0B_7C0maO*ewPb%>$OBDNH|<_S=@z4u;+*n_%&jQq4O9uIA7@8bZEq@PXiJ|&GPSAkO_U$R zOxGuzm#_ho>xJyYK!NvA5QkDot^|DJfndzVdKQE~tcPaDk~BROGofvAYEu}E-`XHQ zeoFVJCm=}bUs57o?wJ1Oh=nBlQ*V2dU`ySHo!OWF9Jl^EZvoJLz60z3wLP48{%@|* zaQ5_2k}6}!4<1?!6E*_W!&HbsUuV-l{Gc&KQ}N=E*SE_<^EO<3IfOoOM?pkSXDU4I-umRWa_^jaj*kK8o`Owai&sWxtU?T6qHnhJgyjxX1C;o_ z+zdFFX;3IM?#|atJ@v>*pwgp)iArv7a>~dvaSzDkIk=4Va$j1mC!ed=Nu8hR+x^09 z+5aiwN>nzBzE`cy1D|d7)z~ur|9p*6Jjx#u4!#3_S6x{R9BkuZpw_CPRCqhHD1|nO ztE~oxsUEyc@`Z_GB6c1uszkH1oY3%vMEVQ z@`nc2|9?mGhqyLVu^rO1n*UwCM|Y_xS8n$h>J}FtLDM*KgjjM^d%FKLjpbg1|4MFS zeTMjfUoV52lryn&xN~LsT@E~oZdDDAihI%kj)HWMSFE3n^71`j%9_~z*2BExC7T_J z{ux!3Bo1hX8=oZvs~VnT;#DaGP_$!LXcU>S-_ZCOGp+qq5v)00hmrcVV-p@PLc~?1 z+mV$;j&EwJ14}Odp-*j!iGLm6xF{S+5t$fD6Pp++|N2Z*Goy0opE7*^!vOq|_5=Qy z#mAvDRl>jfyv^xr?Vho|tg<*aAml|7c$sf?X*>uQ2%nRq7(a^ie&U5>(v}BH3QlhM z^(dNdg-@^>_iyrZ^&*0#&z(c#sV@*0>PEhadQel9^Hob+0${M%l&csol8x69MR&eG zcl7;?u_Tf^a2QQotj~O-B7WdchSpSih$0DZC&y1(uZ8*|qGohf) zn5E5XrS%Yhl7M%jTz)3+Z9MwkZrZfcjW-4!yeMh!Ik#tXF4@yCCS+JFF<(< zfzb)+g_kE>R7ekL6=N&`^6aSs5#5n5DED$8bL>@P6B6*xTc=tD^Zv|IJ^5s=`G4D` ze{9x2Kl~d){jBXK36NBfKw5d?=VVhNYzN@pj-Qm)1llA-?&AnFXvUvLiOF+TSE@E2 zJJZb#gyF}zVCu6k;*Hg%t(XCF>CoflgRIN^+iL;j~wMrgXbA$)`T0X=aASjzh9?BTRvol?wTBL-?_c z^3y6@o6@9;>qHIif7qk{(4{?5xiZ|>`~!J+5d999qtAh*c+a*ztV@nlyCl`Skw_i6 zvzo)xwq_9Mhq--7<({DWG#r+te9Upq$swVO=q2~miWXNj%^_FP-vu#M=R#VFFQ!qK zI!Egj@d9^5;p8K|Gm-p|M{?loTD?C_&5v&c)R;_krpK}w@;{jVbBc4xt9qv=&ss!^7ePTFDX=tX_UDVBnuft;d zoae5a;$5>?*rf2jW~RJG;+bJ~w3k*&;|zl%^9;k?V;*5|V5p`PsfWJ3))ulos(#T! zo`Xd}LV%iWDFS1ue^R9$J_>=2>C2t3s&iHEG}q)<3)pIQ=>6S{|2t>(|NN=`(o}vQ zbvZu@tJM2wrV0C1XEdc%g{M{&GAdrKr$M z=fO$6ZNObdfy?(ifVw=VTQ5V$A>+}daC%%}HipyT<#lZhlK21%PC1bVl_qnATM63) zL3(XjQ3h`;y3@{M`!gLZ0_B~-BC|g3InbuvQ3#Q=)>!L0C8Ejv=ovQv&qkTU|VCxwMX<4??EBoc5Fl-Sr|<#iIm`bHH(wXuyLPRciu4U?LX zzYqTISd7xYYT-Mk^9*}K&fV{?^FXaKza<~j1FQ`mDKj(Fhlw9vi2loAIE=ElQoIT! z?0x{{@59-I!Vg?i_TC>tZ!MdmCVRlXx7xwsmEES9o%ntBMSP=-%drX^P!=nd+qbDa zIvtdS%i}>O`urDpn-j?R4#g+pqY%jH6!J~4p>(!GafmQRb5lPVj*b_yiXxGDf-Tm( zn0`EdvUo|LWB~qIJFKIV#H?meQ3^ z)ul$ef&rg36W*VXxzCL@C_`kG)ILsQSY{Gkm>1qy2R5VY$l^cNfqWL#e)zgKlBSyc&!A1*{)>W`2}F2OL&bNv0y7J zCanX>TijjLwghmufUfH#__0MScv}+pW!ggZy8Rh0GpY^vMmj=tDDU6Jb z_g)TJH2y`|5H%&>*23`J@GZ_yx^8QjSi}%@zYqz>O5HSZ>El{*2;I4At=vrGEHkPv z!%XX}J<4Sfr}CWIjp_iLz@tiZk;nW{&sWqOZ6wNFL5;~pz-#nDJEP?dqrsuV@d9hW zJUP)R<>5>WY$(3g1G`!oL3@N?QSnKA&S!0k>IGXJyZ=CnPhB`TD^@Zuy!M`S6MWu%>f;Xhe0GCJ?cl)TAox&W%aQOeu=lA$kNICcNFdR~ z_IN7hgGEcY2TNW)N_f0f7#HZ9_yZYwcbxgM5UtYni$QyQME1)S9gWR9A1!j?wApx` zL<;X_<%)0f#rIPPLA|C|Ij0BW?lT z?B#LX)FdeBcLxCJ4=XC^j)d>1iLoATy2kW?i}Pw2BwP#B{7Pyk|C%9BLbO%eP5@j$ zEAv4lH1m1t@$EqjPhL>fby92ATO~c|u5nsy(WbO}^F6$eK|}(7frtZ3^q&0iwbT#i zQRs6@4)!r}BmvW=ZZMbw8!{5?y9|_Q;c4K`ifrL?VsYMqXovpRT{F(ppAlj3xmD1! z$Y+;6;wa?)gdX-lv+2AG=g2}tu^$9U=OxC{inF*0wlT;Hr0=8^I#~-n?Xk)vb0}=KYTCHTc8JhY!ScH5 z5OSUvHC0>(aFp+#LYo|lG8!eJj5y}a@nE^`!R&k3K2AFx=;fVOT!#JHGuWSL_W#g7 z`%|RbeEhHEhbXcdKC2^RH3X9RqXH?*J3!Is8IT)HeEGs4uuz*w9Ke^jf~Osrlj-wN zh(kEmF)^`3{uIi3H6|EEk#X7jatr>(On!^jh978|`|~IK-x}**_ha-P72Ea%(1Llt z54yz&$6cPi>I|iN)qNv?lTKsk^sVS1A5LX8<7FQ>b>L_^EEEmqXbru{Jz`&u|7Ez? zY|!tSSR8QU2XP!#G4aFIO7;v*dt$Ei@O@zD7MKK=g8_0_(37Fbo@98u=d zFAgD6bnq|eCJ*^_PXh9Y?M}_?a;`&Q@Mv9wl}{X(G7(4)iEQ;yoXIr-@SC3LlxV&n zsG<&uj4uRh7t^GMxybSoMvX=b1~qRR7W!7(Kdf7(rQ|7zP{Ci!aVrd{m~BrM14t1qrDv;uRD~gn)gLd7$*z`&pn2-Wu$qFc z#0%O$w**(82p7}m`&3~TRWaJcJVbvKqPEZuH+f&&4iZ<%yUm>gP;E@c8nwCr+!k`@ zLvOLxBbjS2(H(y=BuI*G17IPhe(=%nFsb_4-NBN4Tju*gvBCg-AbV>Y$Z~3uad)90 zzrr-GvuKhKUU}x%W2G%U$W()Nh$|%j#yqYo#m%n^d2+rwHXYWD^wBGnJ%7$@v50n{ z+;;CZjW{(m%%3(P!%OD6Gtez+D=o+qb z#P!t>DAE!OmBMg32XChHz0cEY59_3gc2^S7FafB#l#7&28SuQeq3PsEGV#$|a{s}g zETFZ-A4q|;w=*lm`GCu0(Ci4J^dq0EwO z77c>qNpzuv$yRWoXPkdqoO9s45tw9Ps$heLi2Z8h(@+h`d@TZQq*f?YGS5W1nthUH zjqg;Q<+T3huP;bNs4#82kou-80@Pe0d#F~1?MbIO-jQ}OBX4w1X zheYlioL9|uDW7fXBFG(Yq`2&A))wVPRXN1{p-x%6Y;oh(?V;yME2fqiOjt4b?ocp! zRE<3Lo#2}ibM~*zlze|tNtqERgk2#hdQ_I>Nbs+f7Ajnjo5`V5kf9WYAxdfpm(9FV zAw>euU>K4Uj#B)?yEnV>CG18>cpChVBFmL{WhKy@!H8LJX|!U02w_QrR}C-|D*q-_ zhzl&wl*fm*CZ|KTP^VPs(0ZN<>V`hrD}coSOp_p4tRfCxECchYhYywX5sH-7ImN><2f;zMT53w64D+ zCjX1x=uJE;jw>5E?)JJ5*PVcpio>e|CrKF*Tp>{E@yW{Ju+SB`_TITOT5@OZtM;Xe z1vNU@ph5*e%;4;wyq$X6d1$e$e(gY-Y$zHvJ?02_ua;nk8EVR4!f7T44-9N^|#j zUYk7rRcWMC6-8Vc&=VeI6I`qdU&Y+Qp+4w--U-hITPwNr_?HLx#o+cr2*520B^=zr z6T*`f41K4@8>c7hP{}Ek++Cc0VtYcCGm&|7=i2S0^Ugu1n=*7NQ~51NQO|p7=PnW*x6e11CYu&2s9o$!z{6%q1a%$!lzQxF}7Bm0;ROa-%ihrY)8{ctziCS2|ZNo=nIU|Up(_=oR{*4%zJo%gO z#KtG=2EMEyA&YElWz?ufGC~pLJ%`T)_BJ01J#9CsNzOboHKY^r>#s*g{La$+NN$8G zxVyVo*H~?g12ZL$+zCOlYWi==(pEl5<-*|lII{RDsa)(q-`Zf1(_55Uu<&noRYdqiZMc{MV zVRV1(b!HoTJ0!A-|B7N^sf0;j@6 zlP9b8u?Uy?S4!hN?UFPJmQ79T^*FENruhHEWc-&^c^SWz>XM9a((oqM@XwCD_)YO;PQm&oC3H z-vzqq$@q%dcnoV59e#BX79A#1xO(Y|g=8#e*>4?kCOOz39nkhA6C^r@TUEayfPWL! z8-Wo_Otk6?7Pn#zZSlo=iX7kMg*+8qvcg0o=kC?kg2Hasd*bRcr2EN zYegm5SEdZFh|QnyeEtg06Qg*Gjn#qY_H66Yba)+}fJ@F4p{6Su zClK34-nJb?5idkl`fy-pjIWqp+2MRpcRr6)23_z<99oL1QVuC<4~fFhEyN6R&fw!Q z+M>IPeQ+P@#<623RXEW-$d3c*XTK+QW^Dv^cD(w1LAS`ZrGs;@LFY+6mztmxkaDJJ zgJ!xWqgOF_wh(RprO~SdXU>{k```rZrBxMnC|vS^e|n>bK=1A`!HcWoW9#ncFGnQ^ zNFP-qFo!M22fC%cdREfMb9Wnkgx2drh3}#!jGBFXx7G?DN!d2^va^VfLkyC;ZqsU>U~~Ky?)YYsQd1*zJBS3Zhv>#@9E?e1rR}_HoQIj{07~; zPDi#h#rkBSU#NV*XFFvB%N%;9^XDb0x|c-K1Wazvsaa6Dx2U&OKN|U3*hXFULFauk z56|N@(3O1~MmLUExml0U7~7PnCjwp$hp;u>c~Rrgj>o>?QLX3w>d$oV?rIThD;PTv zvM|MIe__4g^wiS_S# z6TCcaoWJVhie9~Iq#}`yvL({PxhPB_^FEWEV9jUrFNYSsf~Y>_92?4YM0_c|BV*`d zRpB%KiA_+W5krbB_%w94P%C@D=tCdk(E+XgqHI3`$v+#)33O`{fsAKj-sY`MvmWj& zlwQ`=)m$9&m{|R$o!PzSUn|}(S#>MHhb6=gY7?sg_&kqrvCI1Su32k~-_AkxVbWD9<1G%J5AdO*L8&mxi%^~y6ogAlh9@|nB(J!Y0ml3zzX^iSq7$|mZrw; z;=bd~I439ckvOLaJoDnmX=@=h)q~$x8`M9jJdB}>B?h>0qszY0DL5^~h3=)6DcTU( z@ruX@UiB7T)8fBsov{nG|5=9Raf-LrY6&=&PQ7!@Acj|aoK!oas3^?Wb1cry;jyar zCT$=J#W^^DB)eNk>U};qV1zb&o>&k7*=7${2O(jJ$Qm}-TF(RTxIKk4Bzo%Wq{_Z$ zLTAnI>fYl(h3S=_ALrB0X)uJ(a3a(@roo@E141a{ylZeQz zbjcd&ne<8pIryS@L7t(-2Ra)gU%$_N-G=;7ocm3!hktu?VS&|HRcGylXELj(<%Q%9 z*nm_&)AWRUchhX3RpJEldRx~kms)z}cfX(NDtFZ7DzWeh$IX1?$M)AY7=;eyaZN$eNed1A&?p-?U4`q(Hop;mi zDY+vOSKHeuXD50nvf0#0jiP;;2YF#*%w=Cccz9kke}BDdEvFo7y2HGQZCcw1`M5(A z``b%X0FxLP83EqfXF&IUJ4aj^htevJ8QthcxsFZWWD?5L^VN=xi>$_cD6P2sREY5Y?=GN;3< z`#rD54DXU_^y>p#$SLjphJmV~F2AD7ekmLQYSci}>7#2{*SO0MOQqG&RuN=5 zm`;@hgb0J>%|6p3^~5bkftT{&qws7`H?+Lvp{w}-^TFf$$=%Xi{KXna$76M>5QrDO z)zhp;y^&r2X}m*jfhSN`+m&Jerf0dPX=UuBtkOkO(_vCoW0 zw43@ybTki)x~iSUMBZ8$GfRCIk48%IXG+-{3}$52B~VyAUPvQJQK%r`_1%{Cc_7A8 z(x#)SMbw^hi(h!0!p}70R|+te%x#t|TM0keH|VmSte~2)xzLv9h$(>`$xd)1exs zs&a>2(DbYd23hw{*X|n$b$&4wNhw5_RmfX9gbf(-fooBBLlQPddbX=Kt5rw1z_W(^ zh$x3J)0RvO>%h^*Mw~tOT!_U3??-5r$1n=FCyoE9CGrmpYTK`kMx7`(SuAnNtkhaH zEgxtJUd}PT)6v>WRZ4%Oy6y@QrNgX4izD>OnOKA+?H)F7r;Le|1fQ7*0(TC|jVFs& zp*fjtqFf_PyImwtka7KO{ga|Mf%0OYMv=9PL#>Hxx^g5U29XIP!j`+VftYQh{)&b} zOyVntnK-Do+V>C80qk1*NFTHBpkcqT`0Dh;{0pQ39T(D6YHV!UUZ*8E++S@jnUZ*H znJy(Ll)ghY{VD;I&Q%I&hx(Z;1@n$~He(sN`%H>ZOrsF~nt93y)W<;-K_Qg@u9%ij zNPiSy+R!4~`ZWiG;s;BamtuAqWe!&gQ8UG+eDJj4ul{7o7D>x))pZaM$P81RQ~#sk*}W->=Ht&=X|-kU*_y9Ex3IR%1Be;JvSri{Us&);mTuRvp7=} zdNLuebf>fD$hN@-6gkp2r;s{%WABBYI($q-&gJzJFkue8+$N*5dXhzyH06i`OgwF= z)(WAObPY8RmNzOy2ZK_^-xgQNqA}qWnCkutX(peocwsPd1fiAxe0+=pwbCQm%F{J2 zT@61bu9ee(U(X_bNJ%{bNl17RQ1Q;LqpIgYL=yO*T4#%Z?3rVNl+Z3+a^>M+z!jEQ zNBL+6fi>%&PdTxNxxyad#h5`p?o+unBZu850!lZ0sLoNRNv5u-Q63QNYr&<_^kjj- zR!F5FY3j>6|Ec94-XV^P{~Yt==If(uE;?{Az0TR#jv%M|}o zs6=+{dCy&cs)v3(|Btcvj%vF7_5~FSC{mQFl!zz@2#5$sOH@ikN~nUg2odQZ(pwM_ zL0VLLkx+!tLy+E4Akst#y-EqaC4`ayVZwXn&fGb_`>r!<-+)p@d{Q-++t zX&&PnbT^)=1Ne;LGfP*yswN&JEEfk4a)xRaFi}I8;0R|9^NrybwV7 z&_ifQt;zupE%QdD%Mk}gvuF1`#FH!m;GB0kzHAQG?fWT71G;=n7Kk#(r)`GO+Upn> zGqXF>W1NU@xO9HYY2HZV&6tD!!PwWL1GXij++5S;x2R1xEH>0uYolYpkL_-7$lHg; zlc6hyhSHCj=pXByuMOxquQ2F4Z#Mc@699T&%i`ixAZEp^$4r?A8%k&K2-L7c;PFH@ zv+WT!2st?$QfOT~P@IGu*-uzB4p^vREsjj^)yO$4qm|pdhbD@NM91|`Vc>`t+o?UF zo5t7IxW$tHW^g?e*NV&>WXz7XE(AuxinJHjbBuMO2`xI)ykwsxPy0FYVK;s~9-!=) zHON>Jpb<~DE2>sF`iR-ho+ytf_KBD_fUm_P8$_Thul%CzKi>)R^wbWty>+AHfBYW@ z2eaC_x+2yUy>cAEYg+5Sb0_;I$`nmg%y1f~)|XjG_1ab^88rAtZ~^Jr3vF%Bfx%(* zz{xyr+@}&uHf&-9vwV$jaL`W^v$Uw!d$!SkZ+D-#6ODPpNS|St;2XO#M`l#VG9q}{ zZ23lYMc))SP3GsYIt-1ZtSMM=*7n_UkH{_wEEg&9^{_SH+bS`c8c~)DHG!H}%S$x5 zgVTZ*zU|k=w#Oe%(!R!n2MpzvmFnVKJ3JIH~avrv-hbxEbv z*&m!i3nqfJK6`;(vo-*}#$mACDXDnaL96HH0^sYBH588-h&lfEA_`)@Tng*XX}Haz zfM12c*E$d^m@NTBfa8PH1qB!5|HnH%Ly|6_HptuE-D#{`Ue2YeA~p}a4FrHP^dOu+lIQk z8e&`$IjvMG4cz%6LWs++7k4^26K)3G^06HTrNM|&@s<1gj}|en8Qce)?>-BBvhwN& zujj1+pX;Il`aKut0+eV;121OQ_DQ+1?B@q1hHX(!y-OZXeBl8^LaA`>>^-p481b+( zjD^f?Jl3?El>7Z~gv|ihi2%7@Y3oFPlrI)RA}ccgfrg%BWGJ7TJ;$Zg_A{)Jvp`#l z^HT6jtxIHw?|5p*xAMyi^Sv5R0zxp)Bo^YJZ{v`dS(MB9R4J)A=z-ClQ4wKSPoI8< zDtz~P!;reAs(ZI%j8C_;P?OWu$S{v?&3UlD{aiwE_Uej5c1~zw^Z(c;=ze_YsIY85 z*WQD1Icm3?D7z&+b2hPHrGQ)7&oD~6?IH|}i0NBqPyC>_qi1H!c>s23ztt!;TLg0_k+5S#NH7q>g3@JyiVgVz@CR5&uktoImr>5d$x8W3neAO? zy=(nVEP%j{d7t6$LhQmy_fE5MU!fbX^rDu?I**m#u_WjF4MT&DGKguu3(4n>EtaW0 zfq}&NjsbXmzT+1F++}`=wY?xZv$rj6O~1;p?groXfR_g~q!f#EYkU!&dfjUvZXS^( z$m~_#jYGxU1V}P{_Zzsf4R_ACC3GusKRgTQocoQ{EKN7$Bt&A!Dp`Rw0x6)OygWRd)&o z+)6)9JnY6;jy@ay2L00CoB2OKessY@m6axSE`dd+b-dZKr>Xi|J5@HJiA-WV z*1x-#rQF*|dDQ^AN|CStSY`GyIvB*S1g11PTN(Kv{K1!HqL3FUV)t;c)AUgYY@tR#zf(C6vP&K zK_XnvkVM*qu)`t^0(DU(O{dYU z*xStF!0e9W%DqSu;}ohB&U z0u-fT^FQ_ifBOtq<(#583Wr~YLTK%`l-F9)8he8M@@GSKag!7L@kRB8`zTbk(-XwR zJgJ7%Xz2$*i(gZhYZdrz+eWfCFc65F66M{9k4oD=>Bh#Ev!(d}rmBD!egc@ zQNLu^gz<;Y$8815P3t}e*(eTU@!E9Gj)g5-{?7;sT~R$<1Ye-)>-$5sMEPY+1cLYp zx~d`xSg5%VcA}6IfU>69#6`1NfhG1-3`x|b|G4~R7*pVzd%`r-!N#o08NFCtHT3ML z{-!1k3VHakIbo-8wnP(jSvZ}tmgI8?RU52c)-#eTxF3|^t>EPn6XWbSw+jfAUr;)j zNb>HCWG0FG9{p=oe)l$Az`LOFT|Po9aS-FH3De!b51$xGl6F+r(nKKtArqRZH%bMR zKe!L3c#bMZJkIN26K>1ger3CNTPM!%9z&?A>%sDvPXL?e88z~fW^UVoPT}E`n)dcV zHv%4sK#KcW|51aq6@AVAAR;{{hoXITJ}-R_rS-|n*+NG5BGD5+1P^3AQd2=W5)$&R zuh5}plW9dXI(F%EGxhe{S?^!@2B;04NI&;l!!s)43^F`Xg9X4)slbKmC4=G2Stjx? z3GH}(6d0g5nEE0_QtHoK7q9p`OPEs)>%z9|KlcNM3vqJOUjT|utkLm_oO&+p z5z+imV&oZjq8_{_C%+qr41ojFXBW*5N4NBoa$?hJ-`Y%jN zuz*l=KE!dTB-#d2)Jff+{&QE9S^1?)cN)+$Tv|TuBxherJEfLn?ufJ3g%p`wjW(-l zPdKP-w+j3H@wv1uKMD0{veCi2eh2IboAhd^n(BDn5=GhX9L3Ge*Gz(%b!KpjO?yZ} zNLw^U(Er=yU!8!JWurpHbx%SS7^n=~X*Qdi7)M0!qMBsJkmMPcP+fLAW&f!>pXvD3 zxf#!%oY(9gM?J?yA2p}%O6#QK0s*&FylLr1{pM*035Q*!6vLgX1F!O^A+<~{mIcEZ zgG#$)**047C{pb*q5ZyF>1WA6)g3^2XK&i<3@VM3FR6D4-(tKwZ^%pOcAJU3Ei3*b zEnq&(l0Yke#YYS~dns{+N}!r8@IcnjFcZ@D5AKHDRHPWm=(VBl!uh8ko_-woV*Vrd z-1ErKlDk)SlDozkuX%On=h1}D`F|Kd&OlFTJ@^_?{%lrP(Ood}8isb`uKwgw)N!~W z>t`BplPKAX_&O9K9!Rvp!u`4s;@jbCeV>tqamO7BE;d>JYZie1<@8-Aso>L>?M5fr z#rPZLymF5pzP7;Fm?^ogbGUU!gJSx?K(Q5s->U)IV5kADq{~Jy^ z&V;2h8w`+xb6{Ygz33{=dTL@6J}`NDSHZ7FXzS(mhk6V18f-9f=OD&w@`FjOlbX|X zjaZD*T4`S4oO5#s(F45sSh=clY|my_Q%9EvoY~iMqvoeo&kBi zroRJ4rZXzoqX*AGe(?Ie-)Qj8EI@5sWHT~`?YO4&?!^jD>d}Ocqe92ZSlF)86~qsT z-TgVa9-@ZsIcxr;=3m0P&)hR9EFAN9pRJ#l;VBr@Maok~3i;nl{ot(-+1F)gO-e|; zCReKizdMAZVvL#B zSXJ@3!=RUXKKGv&BvapkCGz22)`{Sb17C=ztb9mGVXcB*6%}xuMVG>|#|Hjs@a`zZmD)y`!$WA> z4b!XoOUeTgVW;=I9*agn#+C6_`R<7g*t>r0iYZzC@ ziWfRqA0&8w^^Pq66J2QBUJ%CF_E{K-X-Zr_{MSpNw3lJ)<56yIuFrm-4aRxAGOw^W zQji&R|CLs1S?|za)suJL)ur3#H_@c!PjMlcS?XFTZc= zGH~iKe^*>@X)iTa!()koUgc6KH!j-9&&|=a*f79L|s1DrzG`<)Qe^@=!0VO93gJ6f@**mPMz$rfnEadKi@ie04%;&bV5ocvf{FJEsA!u-y3;$p(cu2+t!NC`6y|NU;JzXg{_6)>Z z$8{__-(iwBBSqH|!zFpv8s;gfsjSL<94+}7$BX6=0EckQOj zWWA~?u@$TB?ZpU}sD(-L;}^waPBo; z=#5c>F-LN_)B@F=EmCwsYVRwwe+x2um9AeJsHV{3uv4;I?Tt_0%esc!k0DhzH7VN% zv<#i0b(~Z-yA8h}@9w1E{trhlXk+etrO0z9gM#2K4LLct{LfC=f)1WLJcN(RXaF*Q zhxjqAJfbaa=3cx7HOrD8{B)bMcx}sw>4Gy*)}1URZ=+ItA&ZwJ11TJ1Cq+n_;jucv z2;+1XfD`Me186DyD-w)N^5g93yY~!UpfAE83C=N{9u<83EN+o6w5St|E$3l*PL_6lFli_0O39a^ z=T%a0OpZXh`}}*Kv87_YRJelK@SUELYBEaCdmop*yJY|~RNyOc__5}pKR|kF^+9L2 zUV5ym7%^nD2j0$>18@JVQl&>J;$NpJy?!xM;K z5-fY1N0d8axi7TY_(o-dplV<>ns!LaNz@i!;vRr6q~%e%euR@avD-q<;f{+=;h^%~ z@MH6e>zwPn=>|vYNXnSY>ZjS-tFGbhJj{qqN$PmgRGEN7N!|6pPjHQLB*7;6rMSPn z%lhrKvu)|42gAJ^mh(ohcTc(=Ro1+cl9);o_05$*`#%MZA8ylN*1x*Tj)_ zIaoRlr))jK=2VC=7YBrkDYkw3O1u@DrTYYzdixV+vDyWNZE|bt4|N63w=Y=kn7--1 z2aXJ+&0lBw9{mJcA49$&L5(78ih$fMFI;XXAGUV<{A|%^1V8M+@;d6lO_%NPkxXQ6 z$LOevP0D~|Z!a%A;*lmiy5jhoD4%}xPK(zamncVEY?!P|ogF*C z2@;r7uiENNTwzo9JW{Qw$Yo31=q{O*JG$S-B?$)k^mpdp1!-woqq6ztr;?l$~O>dlLGU({YguBbGIHi6+&y#n;EvA)WZOWh4SJ)W6iPONiL@;` zgnqZx*~IU!+EA|md@MuS{AGMYz48hUEQ*c8KAJ*loQr9sx@ywY_H16Rjb32yt;>o- zY6qG@CR;EFk5_qn1jg?pO0}DqTh=u^nBkow} zW8fjB6VX7#=^wwdLzK4;QtY?A?2|NTyeToUxP1g8WGX?^xP%kEV?+bu4MOv^+Umb_ zesHtAFLX6ff_yr3{?GRmpqNqgDnruOpqAyGc5op+bPlAH<)aUf4k7$w|VtjWWn zBRG2Pk0!WFjrn3K>+Gk*1T4z=qpYX6Qf6r4tk*q$9+4071yd?ooW zJq-A;6?aqIjhL_4Rk0rKtoxfpqc zl@*fg9MGhhHOGgB0M~D&ie=}=S4Ak=&{`Rj{XO^W%-nrAHjj&s&1kRq^K*o_YdY1Z zJ#Bxj4~)&8qlX&aC&&O+zMpy;nf#|-wvp02-F`K?%C=zlCzN*`eVCm4y)wU8&~j^9 zjMmZk^Y0Donz0QZ{+#gXG@RNvk%f>Fn=6aW?&0il3J|@y_qp}vw5?F&nYRbF>AtU8 zY)>EzADRQ9PJdB+`G$bp-3UKcj^(Y~5*OywZokkE z_GfxQ=jV-;HQ?#o^Irh&41PC3s2wr1Q>lU0VEr#dLcIef9z+-r1_eqi+jG!2IO)rM z&yK%~_$34Y`>&SgZB>B0P2br)Di5cN)q1_`7!}=KrWTe#f6Y(gCg{~%_<~(LG|)7l z`u06*Epyej$E3cF1Sz*Tq^ES)FA3K|c~d+#ta0HNWQL6f`Jc!w4{5RW-BVQ7%M>wt zJIv{C7I%s!gzOOMReq9d=z_5uwfWO+kOwXk6Wqow=xAGjl!(r?D&-ZDK|30@o}TS8r#ze{gFGpVXO3eJ2(Lh8y_kj zJ&JL2)((}EpfFcW-vPcE%zaE?Vg)4f^I)AVjRC^hz2 zlU7}=XiQ%^;Sp4?ye1-6Bft61)5@i@W-T^hOzuz9Ye(tqFRx)T+x{PQDaxVpe*CDx zU^_47Wi}yJB!~$GB7?k^>u7v{&Dr#&IfA#%!f0u6jtrIbhqB+3g6SJ+70)RvUw8R9 zgu&r%Ruu+AeeOG>e3C4^H2|#P<8pGXkd5)L5lC4Nxh0kFZi5ADQa*u6zGMGhCp@4_ ziz<7yK4#JchYbu3wS5i)TvL+m{D+aCXFI*&I5Az_>((^ah&|eT_<3`xLAeB~AMh9p zhTap`Nmnc=4W(42P3?@-y{qkgJ z`(mN#sS>bM4ZsdBG|J$NB+1%_)34$7>CFBw(Z0dwv`#XgVB&wtWiQB?Ssav6Lnk1) zCo0uuKi5@6*(tK*#gt+E0s9TS^Am}$Q#-~pSNteT7@Xok0k29JD z5dQ^D?6L%w#UIDs3epWVv0xH9LHN>}OG;oDw`-{+0}U&s$~Q1`s*m%X(ch=tCqsF( zwq0Bd{Dq5|*sS+rJl+|e8y)TEZ!(hux|o#7o2H0?IMMIS9vKC;(&;8)*MAHKqL=?t+XG_``1X`Hg6Jax$dvXU`n@NL zkInK~!BqzkwMs9r=jdErFtdY!zyPSklrz$`Rsx9eanrJ2o<0!GW(Em3yy^zn)#@A= z-Xxr~b6ou7K2p1nk>RwvhM{}!NlU)j49f81q;w?>u) z*lHiX99=RgyQ55WVbwRDX2r39{8%rqIsB`hTo7>z(dchYURguKrERq$ui|o}>ec+z z{^^e1pZzC-Bj9L#bo=L514yf89Gbe$Gdx1dN2GdK2~Q97EZB2Ey_Q&w_DkJfkm8`nD=-#@m*4PQDB{ugsiz0v;Vvr9 zgJM-qi$3-Xyk&pw{WqSp<--vV7Pfw4dFB?yz-{dowGAG%2F(MexC6;Q@mC0l#oz6- zQYh#APlT9a*qpIu3JjM!i@G7&wxlU{5T2cFZdaOcdunaeER+rSQ(s2n^~gn^E?)+GM5`5~|E@xW`8&?SO=Aqtxc>c^=U-eqT#& zSUe|t_XH-VWpEjpxcrwtSVTSf{6c*0(lnA)^Q%xw-Z3|g*0mTj@BE{A)B)^aVH_GX zI6}B24GiVoR!3`8{-Mzbh9$j-3vpF~*J}@RZZ45}t^+u`-@W~nHk)aDY1#f`TMnIo z6H!u~rlz>>0)Prr`fD9 zVzBinT2y`g(r~$rf9*%NuBE2?!!hEM6I)}W`W#JAkO-C3{DEZBFe`k60;sT)x7iiY z1J(MJJM{e!{P*gsl%YHqr~ItQl8r_axh)B}XE&DYSJj?zl(YOt(M>|0+Ed){pE#~& zc?06jCsvqMw&z;-L6xlo0*wOpecNti)H32OXlsTo-u#A_W?of|O^@q)J?04OoDP&~ z2X5Oe`$Yc^Ti^OsoB7~Kq&KMJJ#IEF7S4rmHsvwe3y=cEuk)S1GSd9(B(8}J^ZdbB zmSUH36}_N)85Bg^IC+mfz2%+UoG+hY&^OuqT1|9phxzFXojF;zEMG7Cw6L~c@wkTj zLJuW>a~WE6^Xbfd(A|d(lW+Txc-)u4^ZRgq6iGIqP#4i98>_c&rnQ|-4>+riK=R@i zy7|hYHz#VusC#{UZaZTiXu?9-%Y73Q{KcMUbt&_KE~PlSSst@)ZTdbq<=c8WyBs-9wBT^YP3G-Sl0 z{;+(bo;x^`Oa10poG&tX@CVRM#Y6L{wzR7*{J9>55`I?lJo;Xwl|g}r3YM4gaZ)TT z1t-W8|6HM0&S_dI*YMaEOK&H39M~(5Foe^HPZ3w(2O^9%1U`;J(@h1umqh~j;AGD$ z2yU91nwiJ+Y>YB~IOW$*)2r_Glcb&6!E%)C(X&j81v0W;|G|vRJ{K zkXe4WHMnLiXD6#|uWi@4E!&A>g@l6`RGA$tf~Je0*Dtz3C$=pL*_|u{`*x>m^~AOq9QgF@!F1)iV%fn= zcd~Sr*L%J%ukk+>=Lp(qffz8AP)_hapKt8lk}8+PYJ1MLD-OWYY2bsF)`uS}?F zq4)8W!v}!yPzLqJwhvO&V} zW$9SF-eh?nuaa103}1U0q9a*t{a5faA8g^)QU!}gx8D6w=4JEo^rx*l#Z5HR;>)uI zjt;PeOfdFL)nrmT8Bo)5#`L?J$Ux!A2cuYI|z$S<1Cf8yj^SYgI?O^9E&e2oSI_Xf)>+yN>IjzXGeR14YLyugd4Ja*NV>*VyKA6!lBJVWS0JMS)WIc#DhF+S>myt#V3=jvO^D0x`*qZjwE5d1?Wc93+aInZG*j@13~3t zfA5`YpTM8fSU&A&se;VyzM#8r+t8frw!T}ESZ{9T+BFrVdGwr2kgAPQ9FSt7m_)G$`I%G_)>vG&OmlMMot10W z`=<|IQ);)=z*kiNmY-f8DRuhO0cBLf)*lA9r%9|WOG`pcRbMX`7Wo9>ZN*Q3zrOUB zihqu5;T1A6%WkHRADNuE85p{ici#{6O#9uJ-mk2wkuM2+2|n~vQ(1FBZ-Sd+d^})g z<~0r;qVTLw);>crv>UnalTOa)^qWBdRoCr8)g;_Zts(x5pl<&DM~15DzGLf>V4De; zwg4+i#psLTMs?vAzh9m~HG7gAFlJ9G3w1T@`@4qp2xNJT4CmA%nj`};>B;R9PF3N#2`nDn3O5I14&$&d-W3tx>}R$+5u)k`VFwg!P-`wKjl zXEbT)KDoKyFnB0aW6rH>A6|`S1#~2k{iG1*MDp4yZ2jCiHR}ti*jYbjZYxSlG$0~bT-9^LPK7) z!hrnLVig*aB?oZ7z5NqR{-79CxiM5ZWCy_>pZHj7*^=Bz7xc_}TkL<{To$HM2ghNa zFuxKDK>v^)2V`<9?Q7YJU=EJ??swQ`hsvkG-%lQ_y9`=XG zAU`Msr&5A8JRG>|r{zVAjYNLntvd6c7V0%&x;h;FWggr#-@YnsFSSY#1t+LjiIq!` z_~0ZC}0o2+te5g>jlnrC%`NuI6b(U^|z6S6HI!}F|KR?W}9+CU30m3KcsvlUt z75?D|u>dW>d5%LU>_w^dY`0zE)%Lyj=S$n66}+aUAI@prEPa=Xj~>n&tN?P%o&giRM#MJf0c=U~>6GxzKVg&(%~$FsB--yWOPJ(UC!u-%x6$ z0$f~yjUucU(`W>}dj!fg{VAF78M&4t2qFyTx`;G2UbXMYKO~#9!io+@@M>hDV=gou z>b8{w(UF)H1&}XCV_@kt(l#-W!iU;En^&@^CnWdJ6Ldc+l@+J|=ue7p!c&=V>v?*f zZbO+BQm{*5z02ULHxV%;%{}?;@wwrhSnK7K_D=PXA+Od+7_9eBq{#>4*%&;Hv zOsm5zYWw`KG{2Q)LL7{f^Z+z+fgd*v?=DTV}(yZ}^yrG{@!AGuVG zC?#wdq5W)l@9ljWNr_2r^qTqMf+lCFMZUu>G>~pdZY+S}B4|%2^Zm6$Z}?F?o(YUa0-D6qm5;CHY~3YOo&6(*UhLM+?H<#QX)=0X&uTrS z@74XDY05Hn>e=K+2gU0-zHoV?o(q+J)>mZ*0&a7{7V^0sEeVdWA`>DNSn-*N+aOGi zpv3O{aKOqdvdzx`8n8VN7H&}|(^PCxe}9fo3bR zjcSk>`biUcjDIKX1u^=awyUUq%400l;Dg`2bE)G@%lQVUWN7;;%_-di^N`T+ zb-|VJE+-qRHJ#x5W+Kg8EZoM9lvg&?OnqRbRsYhGFIR- zIFVaj>7qYT72p$*!Fja2C$%}k2K!CNe_VC^{&5=d#;3-M#viOJTz$7w&s!Y!k1Nnt zpCkR!a<_61^=J^&PGMMpviG!6fVzS(bsnPnZu>RYL%04uB1ac&N?`k`(r(+_-V?8* zo#Dhc{UX!Hv?Y8%y9LnEC`ZfQYs>#tBy<&)-9V|i!rc##>ZqAp*A9t^#>|eV4PDzH zKaa+^PWk+weD4Qun{#{2aDcysu$6fYm4tPySYjI&e{~f%x*xg!M&V*kHSqP?1%jMA zix?&5Z{IGT;#^GK#_wnQX*iw8T7?GBd+)f`bC|9Md*(k`Xiuf`+5-3Fr94;S1R_@- z9weUH`x(t6OTUNxtbfXLylmE9T~evcgl29nL|#%X7tZbF+vPo@@p_P=oqx&!L9f*q zG@kG!EA6@c4?bFfOQV@_JGH7i*9t(7iYY9E;ThSIG}kg!MK;Cw#l`Ub^(&v1#kb4x zyVp?p`tUV&72hODbW_WDzN|yvgUn9!NIcQ8c%(Evow&G{z0;X4_4tn4mq1xPsv4u{ zuw#^T%h`vKIHe{LM&8RXGwz ztxX=!4AQ(>zvUH9yHD6lmYhi{h-j}Ugv~`@>HkUx>{4FRfkx;E8v?h>dgqT zZ**T9Hh#zqU`G=3JPEN+s%8Fz!S}hx`u9vTO-hfT>9ms`SWSF#N(PU4iotKZ$!Q`O z{h85>%1p4ROPMVw5=Crk}&4r5|qo% zv!EZ=G-u+2q*dtty3dJG(X|A(QnmJU2Sg4Up}Fsu;z6EbjG-D07b1o8Ih#!)XG398 zcIgR>JcsjzhR&AK2)CXsMF9-K9Q!K9oTk zhOQ{%6Zp0xKKCYX!hTX~N^N5Hi;^{AL>%}&ZRM94C0a%~@}BrzWb*S9^tPS=YT`2v z+%_Pf#3XobT;p@wpRgzN+mFMv8eAmbmvq9P_#a6X&0qr%O12ILS^#C)64U<6Jw0v5 z+-sO?CayzP;8tkRT9b8qefIf<2dYE3T!^I7?8XP4UG~;Eu8p{H=DsV;l)HFD^4#Yj z6w=GVY8rp;acIY*OSkDdxuBD7SPMc-Rg-w+uVrJhLEeYe9lRl?KJV_bG?MJ3(X(tA z(4?LA0P~Ha`wZEu?{GN=hqXXJZ=QykM zqP>f~PEeRjj9#|-x~Gz23@_aT3pR?MqrQDYSU3t$2j%i!OqmQlgnU&Nz2-m~dgVut zZ{!I(B6#0<(Z(S5c2>%#OAaM0qLrRV2)^L7Vb&1FwYHEe9CIRP-UXe8FRm#BeBj}B zJyTVHHLo&E>cId3uDLPG;M%j%T>YmE^x%Yyv z+U37{({jpeuen)m~uB#z(*-z_@ z+?dK-B%m5vi^<6?geJPNQ4)Bl$@aWz?9wbI}b~<&N`KiGqmnU)pnQC6|1$o4>`T)p5p3hkr zLoS5<9D>R_QcK&W#+$v1eCz+3{?1LaXc;*X2L(ROSi9^qPn&iWU3V;cInPqMb)sLwCFkRnL-bhMdpzJdBfr_mazRY)g9Y5k<_8=Bx$@t~&*d`^2` zOr1vRe~V2w@w9M{pqb=*wQst>iyQEgy|LyjX@`8vc3q;kPvWrla+2==M#{In$b}Lt znzyUGUHzPpm2W1vR~4$yy~27xk#fRKmdp>1CYv=W{+2J7U*Nm9?>QuQzco%iEWu`^ z>Zfu2EI#yo)zsMY@Uqu4JLirZfBR}%tvxzspe@fbIFsb(^9a$8iQazxz+zFQFd866Pk{EFO2g*7o0Zxdt5{=wpnn ztN~27;ho4gYNlMEb-{fd*ndA_p;G9DH7()P>omg;KS@EtlCqTni=*d`Nt*W=)wJZD z-tXiRwd4v~?~)SnChmN>g=qVUP`a|03r0Uz=M0V^h0P&?DBBIdtSGvC*Py*JE3^I8 zehqynISBc2IL+d)ZoTvt?}z5S33u0B<;JDPgD?TVUIFrJH1O~EccWhEkeyBWH;Yjl zk+qOr8&KLdqNEojE^6IEqCBo$@sA7|7N^~yFM85`hTR?e^WN_T*g!y6KJ|^)IT*`H zMi4noom_aDWy(qMHwb!%bkJQAtdGBAk?>8^`|eOvDRey^*pH)b%P5b$#*+&r!hM!F zglQLzdf>-*Tf54M?{HY;wf@sg(G*TbaY+9U(`0zr_gv1~DwxnVZj zmS0iT_dX(~kwou7O&J?A{3KxR)I;ltuhX&R_I{K*JQ&6a&M?P2JapFf1Z(jsiduU8 zi1Ha4Y3C2bh1}MZOG}R`@Xt3)Gau$er`OzyNs<%02pL)xF=3&6pV}|+nHdKT{9J3) zYns0$DSDGKxd~5ugpdd+k-BW@wqG$W(mAzSdgKqcwwJ^rr za1^<3+Gy=-Ws#;XGk^koj#46nw=l;vQ5?yMPxNfp`DIPt%p}s0v;1>0$+TCyGmOA8 zXheo62MAM%I644pqJ!YY8>#;ZCN#IGzOXe|%)gP%6M_18$peu#;4zsJf5vkam!9;~ z?czXEACnYqjd27QiekddOP7{GjVJlkJ^eAaOcDK5FmF4##rD?~E`tlQ8K2==oNShEXHIXqZ}m=vr+cL%uis-*u=vMnQFM68Pur7`2lleWj~ zocShC+SK+laFMF_)>xh9%{IdLzb+Wav9(7$G81Wfd@T=E!1V-~!{x}cl zaa0z~veuF9wnCZbr(Rf%``;YFAA@6dzCaJKUiw&JP0C($;CV{A_wo9sx&ANO1RPzf{t*5POZUaED(%(u>Qxys+&niyp6k@*y3uey zkh1lTQ9?JRdO0_BHt8JWQtmOORbe_@!KG@C!bpVwP7ogQgE=>$fedQKH?`8^?!f8 zE@iWGS-$huf!jz)`(?&Kqu=C8a4l&(eFV%0_h?!V>)gssb&XCK8ZxOo{CMZ3nIHNs zc1AM@Maw_xlMW|&<)V0>UzHD%t6!uPdEYi)|zEK~gto(8IGi_Y|85Up~ zb)oFWLU%eF7HIQ`*I#QdaC4$U%%yIw4am6N>D7eXIgYW)_l z*$?nuGq4_u>u@_h!-6gLp14Z$(IJ`?wriw3JLB|=78Vwqj?(gEyf@Mw;Gfe@?E9;@ zg@f@KDFvqNYu2_D|3PPwVJ5jrUR$L_(z^p=11t8RpDMX1mgth+zHnqBIk>uRz9TIKOsNPhf20f^=%`u;k)t z?&Ze3gZWeDVG|xdy{3jH1h<8@yzF&kow}Glpz2Pbsky+E%R+^P5qmRlWbte2Bg6(? zHlO~>zrLPoi;hY)%b~DP2{W^N<`R^F6R-LcG|w$hKz(LW^@zZTMjqRvtxU9BMn{eh zu`mufl7da=?nF*=xt*x#J`&mL^x5P4~cFBo`oszVnacwOK88@1hrzF4>P&s+F zx#2v=^PUXO>Srr}KmMgXvOP}3~1Nh@@T{{zNlPzJUH@lz~76#J^z*~Rp zzbqfo5VwrThZYo;h3}RWIk)3z#%#Bvu?TaYZ<9;4F-eM^PD*oI8Z->gQ_Fswcd$4$ z%XcEpZlb0l3tCfFTp&BiK-z?mooX>2{K+GMH&8PmN2cPsxqT_c+2!rjEb_>6Os=n? zQf;QVOHGjPvr9C%!tCL1OrihUcPOhgi(>9UD{v^yt=)Z&3pBm0v>Pc=n^*ddXz>1G zYzXfm(b%}%xoUa}eH)b)@TTfVCR~0)I9sun`uZD57zJva#}61l5QiFO#$7=Jn!>~Wjd z|CoF{u#RzG+ruHrT8Dd8O>BVu#XT0s%l+91?5pEhz?9Img0(0Zq1a{ktG z%n!?weSAEjn|&3k-(ARM37BqJqYq{Idc2P^Zsq9@oB0jLYibfGxcvN*kBrAVX9#_W zpnH*fJ)|+-?|+wC{Y)2h1bWxKy*MMHUAXx+{d+;JO-EQ^ze`7n{#;nDCd$qg%}eNp zjoPA9OY5$I?*H^@L(XP%?+u@Lv^1qbBesi4J`FOC!|gL+e4I#XFXGt%L^D*!l<~YA zmAtTz1RUL@QasVo#!W<xr5MOLXPV1T#4>hLw>;qQm!_Zj`x?&BphPiA_>B)b1VDr*9=1fw z6))i~(7mb+(J2$#sNwP4uVVS4{+A|R7rBm>kN&*u^+!r>ki7}qH5&Jw$Kx?Qjf@&` zq$|!Zt(R2}6uYn^a>eC!ZAX5(iYtTk!sBYf3`z><>koHVJ(-*E2+^YqIamZ@x8~#px?)c&C9czSmmM>9&W*Tx| z)EXUL~GAuAvt5Zq^#-MaJ=t@c7JkKFb*(o&&OZwucqlnjd=$pq7i!et^E zW31I9*0i=I4DvFkePD&;!hX_eYOB!(4fbq}XI5-CAB!Yr7&KDnvFS8slMz7tRrP@_ zV^=NIztdhS_{^8)Zo%{`i}lBB1Q6gD^;h-wx5iw-_Lzd0*qAhaNb+-lG*||#f@{D3 zT_S5+#ikGV>Z#N7?~87*WEcx{|B?3bjg9=K^;cLGB1PDFIaaF<)g2+Fm;gR1iFUJl zqv-JlthCup=rfU)f0oNqH$i;@D>A7P_sYR#mQ8dluB&6)Y zJNMe(`qrH5IL5E=0~mS6xZ8D~7sN0%Hehmk`!`>TiTE2yFxEZI%8NV*7dIFtsxqt*@9pDHxTF8N9OjOAUhT75<$BzvYwLl!{%`6mC!C+TS>kuPbN4LTbYX5T*YmRQ zzh|9-YsbdM_WJ#)3hu>>fkry-fOVGrSj) zig?#a&VRD-ZMrrq3$F!9>8o&^3>_J)kdi8*^nMVDDTOaY$-`(PpHfwmtf;|0?0?6| z0&_@^_lv}D5r*VUTT|6n4y(YLe2s^fLUv;uqfs_kQIqzTh+h^H1aAs;y?J-({jM=U zLHMlyc^^tnL2$LgLy&ZXm6#{J?Ce` z(5vA6h4CAM9^w1ZE@a|4EN@Ary-;FAaTnYK|Y zn=$_H1^XNLH&xCwiNU6iNbvmtq6wBde*z=>B06BdnwT^=@bI^wvic-*eAWDa+{7XdX+7DbzLV)MR$aF@a< z1JdAM5w7$*x5@h02D)e+L7!>l=echBfRAf zfNwfYNeH2Jc}akX;X7JLiZ84zzpzjb6rFdF6(_I?25*1e+V+E8+9d5p1)q>W`NNg7P+D3 zSiMp+VqzGtADTQ?do3qNhm^Ycxne#S8(z8WoyRg%(bAWiId@uwZZVJz;*LI+o+r*! zDW@f?XtdpMKLXcB*7o5iH`74OO;?0p=0$P%g?^1)ZuXoLX_e&|T^rh5pBS=3T7~YU z@)9?<&$eG`Y;R(7#&;v5c>{T*03WNNgxczMYn?-<>bMeitLtf!tKzKr8>* zM&BU4?W&N!jhouC7ZTr9HJ5ZU{%1u1)Ch7Z$5d+>Et(^ohut0?SNwDJ&)NOq#{KCT zNxsy%qlgW#r-u@~SQjP2UfQV16ETQ>HBGr+qg%ZdvApFW0%bDW*`E0Rb&Q15moPtd zO1JFm!jja_vBzpk5=XykrjS!NV4zj5Z}Dlda7XH&mq|3LpBb7{mg!*nhKOd?ifj7L zhAEiX6MDXKiTFT!L zgZDiHIq$h4U&@3~Z`kdu?agB}&t>W;x8!ukc)%n(92{IEQXi4#_)r%a>)olj#*=|S z%CJxxtkJpqrxR|f@+`kGN`U+JP`WRRZ!rB_nTb=F4 zC+F$1o2XqnvpvTjvg6_w;FUr)v-|uQz7r)CVpMcObaZw9Er}{TOrdVK-A>IRH*^BS zOF8|T6LWsgR8Kxe8>IXq!x>wt@&$zt-0-b>Kz0OEQkh*&{s4cx9|SZdl290ll#B-} zZK51l8?}XLzGAj7#; z8XR?gozF0m)?0ZEi%tj$ka^E5vZ#u{ULR@{58H+qzyOj$d#S0DU6H`evV~Ir4y+1N z1TI6eVy&{G(78AbZO~%8us%pUw$yy->WGuUo)n1KHJe%aef63O>DrO>=Odp!evr8I z@XS?U=K$vW!uN zQ@O~!ssot(QcP1mRzqXT=dNXnLSXP?C!24P$i2)kSC0T}tbLlhy@K1^y*$Q4s{5l_ z0gujQ?Sk!Ul+9XgPF1l1@=>7_!*=2pI=Me{+t)4jkLpm1uAOVRABy(NK5xPIhUa@s zoXI(T&hk?!O)k|uBCCFVH)}<;4oiB|?cFZa_t@vcKl_4&;3*$-Q>ay;Y>dN3G;P z3CNq;F3G_r_V$L2mwpRCS+#GM29u?9+3PpnhUwBpY#78MIaYL|^``8HIWcc_+x1(y z$VbXNB=r=Y>#ss4_=Nwq=0E+}zpOtmcr(y@qHYOgUgK!;np|MK_gNNpH(;U+(-Oqo zvL02>eLSi7USvD-`8)`a=Q>Yc`En!Rsi0RE?wJg#D@8ujnAWm45RZ&YJ)sRBEa*7? zsEd4+54uTPD}#+peq!|G#%GH!1y~P@P6tMA;gPiZmK~9)EkEGTf^LEcCZ$X54Pa`c zu9!^z-bof4GnCoKN~eA!uE38Bs^QvBm=o`7Lk=}>o1I^GctGj%^1eWnhfDF0Xgj+{ zRTdh>tfOj^%cSI~LZ?zHa@veMp}ITN zQ0ZghXF>>=?Yu?M*zoMx7^2s%z&7Y8BWt*40ns3rq0Luq!aSli$lPQr=R2lG8YF|d zVz}PvU3v8AMuYv53V;0PkoOk~O`6Z$st{l1)~%}ODzmR_=_Vp*_cb#*iTzmRs8ndg zHv$%)ogb+vB`d8Nc}dOI<4njc&%O?XdJ%B4+RKG!6X}ifvAeRoOJALX;Yc`=^iS?123I5-D)FG0uiN6*+RB4O@=B8eAq9{sSSEs zWSw3dvJTcgD09+!1kE!d0WIIweQ(5HmDTf0 z{u-sGSjKCMt+H}wc+K_c%3R<}tdmF$pV;e5iuQuz*lo^;Fn%I<{nY&f`HU+x*h(!6`)`h~wBik%qo#v4_B$ay-hSe( zh%7ZR!*B(G?G$gn!WA8|HLM*Cw4bIWe@}lIvXr*V#*75-&+5!A;cysnQ-Q}XCdS4t zxG^^x&umb;rzHT;Un5wrw*6k|QSc+^R+QtkHFL0(%Gh(Rg_tw)ezngzrq!tg6a1_S zU(_^gM|R?)swahm>9vQo0}7TNV>TjO3|3+xb61gE_io{Nx*m2TY8LZJ5S61D1Dxcws&n_@9H zn;Cy7&^t0;rAtaosS6?&yrOT;{0)G(3KRKTt_o++Ml$*>5?F$q`K216qm4t^K9H!k zFw_0-3omsF`MWw`}hhpfDJm-A?x?xXnjKx$s4fr81v|FwEq*8VTX&H(^G#ubLG!6 zT&q1*9xEk#_bR=2Nw(>aPGCl+VroXHccj!rD?N8>reD5db&B8S7US6(KHA_@#t@{h z%K1EVq-xZL10nUT_+8Sd&G=)ykS0{6$|We{H~o(Y!yP)uh0N=fAE^v7_^@75hdQg? z>Qa?W^$2Py^&2i7ZL_BD)fm9G-R6EG>A4>1g}cmbS-8a1P8Cwf&hIiC&s}=6NWCoM z8jscj;@XwI!5Y^>i*i#f_^jvfe7wN;M0n^DQKczgU=5% z;-NzS@^FnlpR6U1+Go|dPL7qkt|o3lO^YpfmPg+#97!wRQcxqLdimCl4|U>=kPOUk zViJ7W1uax|jXiVtMSm+5?PgVEUE}#`ZPb$Ksz=^_Vs4@fys#kBKF^ee8dI1{{UNe(pu2r0|{XiO;nd`zG-8@W6;92l*7b7F|2>l@#@~ z5k9vn2${OM`giQdtJkq!YlHIcDzEsZ-n`S3`SBAF)pv;;$wX(TG^sc&pH@pL{-`V+ zxa?`^y|>)bWo0A!sc{yEU?@GSa4=^@?Rl7XyF|8=km?}H=cAVIY1HgzUKJyAg^J=; zV+tnWLnS{|Ar#w>z$W5Ihru_(@P)EeM;Mfw6KO$-Ff;mGzc`=wNl!wqK>e%D?M1H_ z(IQoX&Vq5Jx6>ib(L}zZ-}lbwxUBG2MK%lit{sL)91_|}CV zw&FY`zINoN%1_?4g5CEeLyY*^AKehC(CzBH4gtu)1m*M*9Y38vJNu50qs^o*tjF@` zCbg7ce6#1SOugnh>9*^A!=67@kx*suTt%>U-i#>H*gFnhWb0cIrl8Pihm)JDc`kioA* zkt%~C1%QF{Y~-R&1*7yoy;o}lg<@S#waK~T%Q&CGa!<-0bmH{G-=dq>;(uaQol+uD zx04Nw;qo#_Be;WISgqoCPi)!c56LIQ@@TUn&{t66)P6tym~1$Exz2_jw`r-CL7;8Z zy}n`PpX007zs{!R;)l~~cdD$FJ(XZp{1fI^(=JIUq$7X%rrBO}l5) z6U9nsHwI;epM$A^Qh@%w*lsh8MINTN$FB;!flpHbyHO|BHC` zwSzL37y|5AWT-kNfnOeEB&>aP_z8{{ug1H0|Me&z$6CT+gWPE8uow!rK++Hw!{W5_ik=>8(vrw z3F;rXabZxAV+Y;0^Oj$Aw`+vhw(~IZyT2MSXYsE}pDgzv)4@6RDV5jcShZ@Z6|XE< zP?v8Poza{>%2npEKMcu}3J$+%!1mp|pS&CrS5i`DspU0%v6FOif{K>apOzqge`7DR z9!VB0h55`Qa_}W!uS?a?tsyQp-NU01Q!)8dN5qS$Gf0|YJtY^Glfml9L^a4;POJv! zWpF-I0K3Hu{d+&{OVizJy?yoKwRJ%mxz(~`~7Fejft z|A|ep3}8C{^XDFZ%P_u2Y7tsc?md>ckpFc0t-UJMxJY9^+WxVhU%}Ns+1?h8{I?b= zD=J%`fa$i`>7k2roJQ;1A5QVWKMur>*VsPvt~z}WQ@&#__+`&hgJ*S&`BGsm_{UwJ z0v6h(Jw6epIc28gPU14xFG5-z=lh(ETXP;6$M2E1x9uBfv8+*ZYd*-Mqk44 zipz^3(uO}q77;}*X0h9#w*^ITJ}vmb`HZ2Y5sC%w@V^awbEV$y48^hUPsUHsUzgL7 zKYxkZl)K_zzV1&GyH;k9tq?Os&xU^oaR?UG_rfl(*3QpGvF+j~G5C1+ZhmrlZzH3T z=1s$xi6*#y@CafCCTkGE3X8l>~Soh1(d!v>UQNwocRdcoBoS(a<`Z7KPy-@ zSQ%_=d!b4e$u*)!$pjkMF}ckaU`IgP2nH+8kug%p(CNZd2E6fze|YE2Ra3cED{}6u zOC*!9Og@c#HVw$y$RR*7TLe581;UW%(~!}EZXzq|hudp+C~untGx%4q3XN>};koJ^ zcVG;YVVL8B9n&In=i0u4iThe+fe-eW#1{wpz_!% zkMFXHMHYN4$SGl`9?hFOnmyG{{^J~&C*z-f!Tt4UgIXF}?0m}Tu|MMwTwkp5p-M5^ zwe@bExTtD-N!Xme;h%i_6?)Jxreh~(FU`cdY|fmT=|a-zN=1%Y?)RO%D5S_>En>BR z^!||2IN`SH*Wy0DXQ?|ZSM7NC%*fV2Y@5i<;jtlMKiYnhnAI&m;lNHT?eXYh8qRGX zfrmZs4}SF^TeU^|!SSm+_?5%choFg%r=4n+aW|H<#JY5Df|;H@@mWbNzCXV1ut=?ZfF zFPGgONAk&-h+BM~Zd545{Ylb^R=Yh$65Qarg~C(8Dj(w4S0NzaUEEp-CLhHaJ4P!y z4c#Mr`pRcVZ<0cZq1;#bLa=t4^ieE2HrKb66ZjN@5B1q<3gJX2G5&()q`(4{Qwvzo zj+saIpjjgO=MMG)+-UuB^sjA75+)VQysy4BAHU_*NZQ$p7-pKQi)ox&&;N{f@(UJa zY6bFMmYa(iQxSunE`!n}!X*=OzZEtp$N50pTGJwSuBtbMgK1lPBVgF&v&a8lLV z@kcF(?t-wTfPf)~UCrVlDs3Xo9B@`a22dk0>Z%;uv3ptL*xEyqxF26`YaBt)ojy}* z`vtt70E3~JZjgM6ZXbGyjD=_}fmwKM&P3B$a<+z*#&ujnK$P?eVBqVh{|Tpvtv$RWBC%rJlMn}mw~z=^pJv?pM61P z=xARsgB_g5>O&qJHjZ{Wy*KmrZdn@X@4fdJoZ*A}aec<~PRk*6h-|f_hht;oV$yGZ z@0bs-@v2L}rwZC0Y8xc)hk&49V7t-_Zwz0`ApZxQyWHE+%e?@Z;%vd{NCb1TJ2e@$ z^)3nz*HCGY)g2mVFI!w$H$bRU&D{s$1;EtQg(G=|rT#D)()i827bnr88;s&zZdVXB z*$mU!xc`cL_i+KiRhRjf&@U7KTZQwMHF{u`LozK?RaNJ9Vf&N)lJ^2Szriju#?^dV zP{v(acd#2YMo{4&UcUi22F^r#ZgHIe(c|5s{TQuod{sy~0m~AWrO5N1Owz~4Qaw`$ zf7@0!he)-t^&Gnzo44KP`-~;g&jZz`peR%C$x7Mix{VrTR3O0`H$E(I&>3nC!)H>I zA{m^_8BSwvP&#e>o9lHpz@MyiUxdCf9g`qMAV9F@t5#7xQK|+#KB$N}@UNy<{cP8ll? z#+?vOND@X5r%0wSU^-ewRto%7u~2xnRA2XeVC+3Fs?u#Qvs$OY zQ&}Dx5Zn(Y?!5olE7ZAPQo;KYNmBhR7DjOZyz$5HqS}vnww}VA>-B}(t_EgS9+c0f zLG5VK>Jv#@LVi%~$%o^y1#b6!ML?R%ki}oC#;{zOPtGI1V0~6M<-fBQP(A#Mw)B8y zo*x{*fA?>q$`t)$s(nJ=ALakT`}?^`Cg;^>wmsgVB*%Qi$Jil3T*GW4wr8A_vOmkz z>X~?sSCPKr)utJ`WuDrvE#Nj2_Ok+l2b8XP>e$M%`Dztg?$tuFZrX(kYS8v*4g#@>Tnb?$t&?6cP-!hof~ zr)qeRTEwrURzQU2XLNY1ucvJIA{L9Duy|?!?o=A?9zXyh{jbWo_*}?C%qR7ihHJj9 zt*5uZ)0@=2W;2)@S}=sYZ?gGIA>-Ls_96TytkH3TR!@}NjCw%90%cWl8pD}&Brolb zHA;`~Hqy`KRO!6HjF+g|P}e%ezsj^GpAa`v0X4cM`1pCeu3{au=b-HtulwA-=!?0S zoHgxLkp)k;{C#^e0>oTe^ieEF$C_gg$UmAm#%$}`(-TX7!nI&rTL!NykGF9}M1CO& zd^#t2p2#Y#G#0+5fQjl+59Bofqo{A2ly{BdxB}^N&jFiN!&A!Ju(w8^bY3KLBb;9>MHlX5y#C z8`}$BiwP+SO>$*dRq?N^KXltf{qkPg`sMA@0)J*1IVrt5hY~Hu1@GCP+KrhwTVT^P zi<`?!uUhoq8k+TAHIeo({gY;{zDWx2Y;q@6l*&GWswHNF82U2;E~nKtVn?8Qr>bQN zs|8p2&b)P-vZNH(I+X-8e>R0r`V6D#yVKyR?2ixpI3=a{ZWGdiB;BH*vcDW^KhV% zvGV@NaIXg;cT@&;S?KshIK2!ZPOPwC3t=oZGztXgivwM5NHbqOZ??u|Zp35WT`Y*i zsHKSipe}%ct_0)jQ5M_bk_L~VXWue4f?X|i#VwMrBWX6oKOlZVOur~cwad70p=s%( z(yd2&!_Klbd%vGIpe=kiVt^;<gwehaYXlB7mKlh3GcAnt z&}fKutKFi`8DZbnE2cP2FgY;ImTQ5GbcRfFFw)_G*R(=-@_?@V*$?p}*xseyM6Qq5_ zSyi1)WHWfx=)U=Z=SH8hyyIla__8NiIw#j^fVUtkkJ#H3ukpu=v=eXk5S?O{Dl|uD z!hVRL6H15f3;*S_90g1w7ah)`pXfUm;^j)D#>}ll6q;XGxL+MQK}1W`C>54DCme0y z?GpTi7*)vt&~s);UJ;H*+vmCXUKm)2sgB+Vv!Of_^9o<{v;=&DL7F5*9T+3>c?x0J z+@tJ|0mZ1=Jl7VIOBRpyY&#(nnO<|r^^el~p@Z^1_BI|5j(o}_iNMV`6x8{3O}$%Y zbL%qG<<+b?PPf*krIyJw>K&S8gZmOtwxKVH%5UnOZ}=H-ZyByyTMpBxqUXtS8c>Zm4AB zf%Ah8`=L+E20NsbIY87aA$AjNAfI%)oct8DUv$O zbnw!Rnqr;7uhF%)B7!pRxLH^~t6-0}dj9(0^ns7vXaAlzKJ#0Se4eKC02#@ci`s4?;^(B7iYr0L*rHHBjMe%LK}KNLb#*D3t9Yg~yDq zT`^G__MpTJHusz*-r~P=@-AJ2K<)o;LuMiG_>INh%RE+rfL%84qs}AbIr-KTxFeN^ zTe~{LzAT-wEjL|AfB!{A5ReD5TQ2hys)7P-y#_jwIUP<{a@K<%32*-tUbqt`&TO-v zZ>-VZ?<8{ZF)j9Wu+3Dmg}f=_sipQWX+LvYkb@y!|&aZJQ7c|El*TvozuPBih_TZhjNATM+&x%tuyXrwOUWdriYC8 z{e6jju~!uT&5iM!w42gXKrB17GGysmJkl8jhPt5rGY)I317yU7BL(#RofCeNW8SSf z5fh7p6K0Ln!AP=I;Bqz(KH|h${5uJa#Ms{#*$Q$jZj%KXx7PRCl^bfh5LUqWJy+92 zkZU1yzm&c*E_UN_-gq72bCTEipXIpE%ue4F@LRx-3 zd*2syS5Td@b7~DyFkpMHj?V@fpiO%BFz4+*xC6$S8C*GFg&pCjU|)0ladD`3zNI18 z?+^Ba(NBziztsl@a{}k&bRG}J*{6)RBS%{9^}YxZVLVvZa(4cj1R|EdC>eR~_$sM1 z3=nP75|I2x?FQ-#xd;$y%qb0o&DM~_8WVGS6Ylm#y#Fw-bmdd*yx_ZcX((Rps6$}Y z)|UQD8t}4SJ4nSIt7_G}_Gj?Uc3d&748n0MmB?3J<(%^SW~I)Py~b;s*Dt$!n<==K zLZL&^zDTzGu|#QoJ86B7%IvaB33swD=LQ1({^b72)C>EPh5J%#EJ2x+dmD_bHwLh) z7XmpP=6&Cu+oLM?P1fJ2S?MS&$IVYVl?EGrz!5-jFSI|3bG>#|fJe7}JCa})Ehb>h z7j44#S#RDTeIN`(YR(9EzFfC*3xHu-0w@deKuV0nySZ4SnkD@w+`$KXy8rWfp3XI6 z=-SygJ!bWB3_decB9m9idY|MKAZ z@q=BOCfX%A^%Ph0xY#QLDJhXuE>Do<3V1{+gDN6Z@zXChe?a8w&#|Y>NP4(NGkGrK ztozl$%X@r!Xq_c~fDfAA?e+Z6WYmAh3VQEe_2yOp?5&&CeMy8MSTRVt()Pcs#C>)_ zpQql39DRR)y)!=JKfkl&wjPd(CF837t$~CpX1z)g*I%VdwJ^I6SEce6hoce~aQzhu zwHH(~3Iklc6HK!hI{AXLajLT!{RL<;J?+a#sIGeW#fES5CTGfrUw9VvLVj zmoy4WgMMVU1=OeCj8&FF;JXXw%ylh{`aAAU_tz@~_60ukD`O0q;LO$>Tu47L-X!VK zGa+j0x`_F4vmp5)8P+3V{VtOmjZ8*lr48|2p;T-9=>qo90`|yjM9?4+OkWY=(anPu zS)*UZ-0^8P_qp@zbP^kn_7moI4K`Lvra-Ra1ox#EpuxJwuS&!we9jJ>6!kvz{|hPy z0p@MM<2P>j(q|1ftUq3eY}ilxijgAs9UPA5>nGiX=b>!@aYQ^cPCGmF7lYQJc7aaT z(2+`1-rNBR*UdeXze#L1(j9Jn{xHeVPS{RK!!ooM??W(yrPm}MFZx$J03B1wjpe=F z?L%*WPZo)2vmzil$;!3aQet<9;)j{vjV8|o$2bj&WG_E5oO$$jFD^35I7_SZa&P=c zdD&yCt>p%j8Kr7UFLIAs^2W|cX{fp!6L=34O>&E1dFN#*z^o+~oyH4*Db7nFNJ|C8 zn~QD4cwn)*`i$+5DGN%avh(I(U`wHDBWW+<&I)fCkzRd8sOmvv+*2ZZ&jZD|@F6C! zdmldg6MQaAliAF_exYt*<(@g!XqG-Zo5-KH#abImO0=wd;Zd9FtfS!bSA;KTd2cpi z<4}Tnq?*_6YVo%Z5Bw5WT&?-kc9rk%rfE35>wgU2YLzYOv#j?r(Wzjmo)WI1`vPiD zkhGaKmr!9(YLl&RjtygbBZ>gl^fgO6Eih~#wYdu3rLyf8mLyMAgOpMO?i*wBSXI!? z-oznxODBz`*Ozr-h4V)QoO6TBF0qArY6|IIllfg}V@F<9v(^uAwKWJkj#%xaKil^f znbv7G7tRcX8=e1?GMDjZInEcp3ugj5FnhBj4NhjGK9f}Po%B&X*`U!1Fw*lQPG50j z8HF?_==7+`0=`{PVL}Ke00!cIWwL>V{M)es_|9jKNSVnXhEj`hgFfmzATK%7>@uL+ z+;l9><(LZ7L)cl*AZ4arWqLkL#zGKT2QOM$?%x%PnXYxvF0xejZ1?sjf0g&fXXEy2 zp7{r2mKKp#iVdsh#6m`$SQw&-Rg>oWm32;X&*RvO{uwwTZs%v6LwM3zly_&3$dUoe zh!0N)cmC?YX3Z+4`s5KpI|Bv1H^fqHXL42f(GLndVS^3gAg{f-kTdZ|!LjNf$hM;q z33sVQ3+tajv#=|s&0o%$JEyBCUy&?|a3<2qU)adEiCHd|*Mw;k+>QI0)72t>8s-A04ywz-?*^OJ=NzNTi zagJzyD`$YDao@Vs_W~h@MP=C){VGpSNTohBSyE^XQ=uJNVWDOMU#N?8_PE;4E^+E$ z+W+}vmYSpxC91l$Dbp{}gv%%I(%M76V89}lmYU{|FSe2A?#`YyuX>?ZAvpO}q5kUC zKRD}^=&C!B#h&ywT2sa=T<^rWY+!HuNrhIi?%c@C+)}`6xVQ8ezmD&E$rrmH_M?5~ zL;e>v);%YTtMZ@)3 z_=59~rt{txlV*Fn)Sscl@71QSw6r;_9(>Pt$>h1V4DAdFfMqNBNO^u26INo?WOZ53 zOzBF;*i&i0oTsaPmCLS+!PRAIVC9r2Dl7h01PQH@`+TgTM zXQp>+Hl%&>fU)`?uebegn#L3hqw3NGHHLVCXyWz#GdyHo;4#k8dP5W@fYuo;6n9jI zlk7&3`554#Bga9Gwmz~b^CYCSCjIx~y%TCfsR5VQf3EN6wAM*QB1hCtdFH?V{0}qO zeT8+CwH~JvwUU(p{-vEO|JQp3`~w5OGk}aPQB+)@_krT*osB~bI}7-|uH?I)BHr_b zyb~QY^lw@0y>$IS)F&DEY*}1`jj?yZmHunE*;2siSVVXMgHRMtS|h6LEj^eF_zDhc z8`j9AbDriv_nxsoaJn8mmW=eGkBnvnmba>C#K??MceK3-=C3qgXAkXcKMeC2o(lGG z_J4S)5;198m9C;FuVxcTK<~t=Cq~{aL@ik2XZo=%&%uG~Q+W!fye#rQU+q-O$bR97 zXo$D#Z)MMT;jutfBme-2f6t@-`Gi;UZ4T+dr<;932BD!RAp1sYnWf0iT0?Yqn^ zm>F&UY69AN?f>Jdf=-^|;2n0l)xPK>SfGLXR%1%bwtPtvMa+Vjd;3pXAnJ7G;+f62l9!&cqLJ z2ims#WzcH6pA-b4%ar6l0q{wQ~P_rC@3U6MQ@CJ zvB9Q`dbl&U=JfSbT3x5)1)09yub?$f-M{cv)_PmL>7o3Njt~71WBg%hP{{z}6W342 z@MxWF^r4j73yc`}S@c1B260auza}DL{)1}lU$^`Dr8DLYj<2qRYp(|e?L#m<*6c6Z zZ88rknH0IhJ$@;>2k|EbTb?&?1_bN=6nPakAFJiDvEJcyk={s7D=W<88R{2Uv#Nd- z$l>*J@?!~=hUgaJ!HwPw!v0@Ya2M#vM6WGr*|Ks4e60}lwSkHlBP+)*m<4k@Hz;Df zd`+oDEzjGf-pmJeJc}>AyZyoVaWsc}&biwk0mNIhd+7b#o0XE|1wI|3pvp)C-BYvx z4;6kXnVk`F6zyy7uSc@thyhVP%GJHciD1ghPIITr`o%OLdvTH;+;}Blr!-EwrIE~Ew7V!TY*|RsZDifs`v@VMrk^Fr+dg4++ zZ??{~w5z(QvdssuroD4yBC)hn@jnp){?*=Ya?tvoKfrJ2Y9SIPqH->1XB}}>C<@YD zz?0j}s6Tt~uF1Rh!;krP4vJY|>4B%P5b9_vQAwC-XoHlmu&`8M;BYa^oCu@8cDpak zW;>aGuN`~8Ka5dU^zEVDZfNmMk8eK6YUK%Dz7n{Dw$)BbXKS|f;RA496YWY9ej_rM z8a+7?rdvONbZ09ufqz;Z`Ru5gcmB?1f6Ti)=0^>&?Fmze_jX(?jkNHsR=fKYS$3f6 z!KSvSCHk^**j&HobKO%5k0v8&(P9VfT(jcs_&OWdoGn&ezJLfY`d$Q=OK~rQZm}@rIdSmQ zR1$6T)-wvb>(P*-uw%ld73gCtXY5sXwUHnA#lE&DCX z-d_0Dao-XPrN27UXNxKrDfVmTMrVfsO3HtH*#lWyD(e$c1*Pk>{1;6DI4$C@$D04{ za)rjf7{(pPR2n_f@K8(uf;fFQuG+e~$TlAgBl**2&0>w0PE3)L+)r9jd z@+eN7o)Ifr*(FT^I`bv;9M>|j7&~BUoe#3r^Lh2VeI5;kEr8jd-z0q{pyzwdKRlpB z6$QY|H;=RJaH{~Rl6-!kA#XU7FhY>5B6wAv3{rm%NsSML#j_IzD~TQORV^W_7j zlok)NMw4U7%3$H_*ld%r_OR}lqqwgHTXC%?rgoNNriadJ*;xzGr?(bWV9N;Y-MQ1a z;chHXW}g z_l0Y-6F9#+xb(ChBt-x5`pCL@YrMA72|`{;keBNfL1fRpLBWD?Q{e|8WQGK2qGN~x zgj)wMulurHvf-yuv*oeB)+ai2e$y8TyO>n9AgQ70-7PiSrShAS-bO;eOicZRuKIhz zK>O)QaI7CVKns0jL^P=TIIr9RjJeD02=|?JYsI6~N=7cYQ596s#Hnd}czVX%)1t@^@0Sdy=?!a5=b&vr?x0* zl+Ra;O`=~^N2PuA6`8T=J}0*2B+b4SgoBDjzK<#8Tg`YFbf1IX&vbj#@E2>Cx{;k_Qo2@ong$Htshdfxf8s z_b(1rbTc*$ZX|eXwROqiLY-y&Z}QF#rr%(r&;9pKnTr}GSRm%^9KN$BN_3h+JWH@X z8A1gg z8b6nE{kR{D+QwcYloZ=ghOv5ni2a|pxR{*E0|%Wg?wit8wTxr*mw;Z%i_Y$&c5@Ph z+Ds{8gw>vZ*dx-g?F6$@8y!tV8-3Th_`Zx6&5q&6)$>N3hHVc*U3I}x!@qe%K;D(x zQaRgB8XbC83&U>5I%F-K&n$>t%Ya7T;{Wr2kqkJkVa?@pY<;@zz|~ zYmS(90}-5hFezl>Lueg3dMf%v!+~Nd@;0$%IjL6`D&8=@9oQ}@8oJzVY!Uogp#-jf zU3GuO{t=?i$^LKn&ia)9N^@Q2)!?5+@)}Nc>2Iso!b!Pms@CpPLrZIGp9@}hp3Lxi zXh|ZGb%HD{M_;R$aP4w%Xj>AJRq&OKyxEL(e&}mU639P@wDC*!gs&zyZrr4*bXdYA z&{d&oU*H&d&m0iK{KuDyJN2x+i;EumuqA#Rp)QOSRN>~-+%`}7>7!erVBouqCqZU~ zfHkM<&?D+Qv1%Yg+Q7twRm!vqR{CW?KTqmbcP>CP-OzkG)mqFcgs7(B8GB8gW(hvt zzqpJ$S4$#VEm0-_n_~pE6CG&eRRGu9;KNUvP0Pu!1lhXP)KklQ-n<2F*K-DNDjZ0Q zHwRwNSBezy;Evn24){MXC=BEnM9M9GM}-7Hbyn2wQ zm)a^gS~o7AzphP~i<`?$4}I#rD~P}^s}Oz{LeM!sbp$QPG99)$>;eBc+>oDoXdTD> z=_)nICa&}zv&0QElP1 zFl;+LQ7W+|f=)+T}C_JZ!)K4ncMprN zaMW2cBI1x7S2jBRUcO#yT-qXBy!MG8f{UIvJ+)m3mTFuqAP!Smu3}{y)f=JPDMcqO z7abS)1h!Y#uap}UB;VCvFw^%YkuMmRroX=UN&nihyA}S&hgvK77e`MWSG}%(Tz%=s z?DLSNGW7j#y&3TZA6H_&-y62-id}f|g&+pld53L_!%K!WKYug5kwCME+Qt{s*4V2$ zuxVwYAXp?Km0G!-yF7Os9jYbY=@Hsb{CVNR*MFqpqD|H*j|61-CEh&xpcAv&SKZY2 zOJeeTfkS^b4hVr4EUqzlwITTuJq;_=5&B-WZBVU%u@Q9#{i!EAe^8>>W=Ec$41_cJ zg$#;QMUOf-BpBS{_M0MsEEW(jLpPn5^HbFtC z4)nPouWRnfXGZFnx77it@rgbzvBc}oZczQPL!?wfKY==pY;bg`2bOg)RYwch!}p>} zgXj}+8BeykVLfK@La!t0>9Pk28xb7bNykhCxV>YbqE z*X}uVMlL?b9z0ziwBG1^jAio?y6}XV9(YEEt+4gDkeEYSz{5^{OG>_8!QCIt%EOtN zzQ;6B(Pu4I?wlcY=tey^(0m^+8O(te3yU3)e*dM?8_@5W!GPIv>gndCcv&Qt2r-gM z@~&WI?8*1+W|>=r?I47kt4bbcABt>xr!8Xm^wUWcZ^7xCt-=D*7L1nuyV+a{&XtCX zDnHDuT01(~k9gm!3J@F}>cCD_-lr|-fH%2~C|`{pudObaIj=pFx_b(GmbwS9>Am)P z#YBRKa_G6q(Vrz7&a*^)bU1MBc@lqnm8UfFspJ($O(xae0(SqNWMp!QLKbGQ7)1DO zUi%uNzSXTZ*M!o*RoKt{&R555m1KI%&)md)jLcU8?NZ8iibx~1_fs!>cB;~=jNQ>? zv%mS*H)3YjMdddKCgm&kOnnU~qxXdUPT3yUp~mU;l$)AE*I z|1VcLfDPUTgV;$hXko*xP7FuCHH{qIIzw)bzZ)0A5!p3EpJXy~*z;ur^hk_-rwoc2 zT>KHT{%S^;ZgxVs)1SmgXu)XJ6P&HzE^Ndiq0Oi98M~)AFsn>g>@Unz@v^<-PDk27 zpN2i`5TX$;@BdKcp&>Rs@bqBZcP-;WLu=++;puu*$QTFBVWBi2raeR!{dnN(6XOph zs*Nk!KVG>OP|5~X+q&NZwtmBDZCKUM0^?97P|1}l&XxWj%DywIscl_b5fvM~Nee}K zSGtkVJA@9>0z{=FReA!V(m{F=2)!3kP(XUG(u*jaP%RJwk{IAy>~rrqo_qJ+=YC_X zABzzfWX`qbTc7uNf@TJ*nfhyoRCnZh!3n)=$d7MC`c6aJl@y31gjj1y`lZC6Og#;j zu8Bog*=S{(b}@y+%GZj9e-V{ibPYs>V-9#E-2LKjyuDpPClwHSFQcuhEt{WepZDSyTOGo+c8qMNUu86geMo*p>JhB_z8Et1Xc} z8#t@be*TX-QkpRFVS&Q%H|V$Mg@u!qyv6l9l3hTGkzZOc_X zBiVUwXTC4uJlUlwUmb{v>fv;reSa@w@dTB>w;rG(G#FOuzyzu{SL_09dU7n;W)oxx;y? zEM8UpQCtZ>_WdH_mtn_bUBg*ncD?b#hl#ACOYG=XzpTeQh1g^$1>wSC?w7YR>?arDv8cl8v-07uB1bWqSwU7b(AI+}rjzb4ecsR0vx)tI`v|RJ+Z1cexCeASt@}T&8 zK{U4=9%pbsAoQDcmk47N=9TN>#`1=@Z*EjKfax0JyqJHu7E`+O+`D=Nyz0`giDOpRbXjVPrI@UcoI> zCdTQ?2qXUE?yklqFi@Zu*#Jm!Jw>t?n%_&Q-Y66{5eBMYAHUSfN~vb)#5KJlS!@3A zYb9puqdIPN_rdAMSH|5V%{d00ktqr#MT@vC`zG8+slX<2AzTTC85 zS`cbRy?vMGdwfnlD@iV`QV^Efxy1g$z5O@EP=WP*=}!}UEJ51}yUGvZAeZ6mfTBzo zpu>~zZ43(XeVO^U|)%tTmw=-Ufc{lnC3e)$mJcC7M-3*=Ds`V?T7eU z6VLq4`(l2-QbaB9Cn{5Q4@=kT=V(SlCNr#As6@A^JK*^hFwps{0o@A1?N;Qb*VvIB zONxQ(4~hdf(@ZSZaVA%hD~>LXH2m7hL58DUnSr%r7){lv?9512*yVR5xNa3Eg9QM_ zELTXma%n!c(rp*{@6}yfj{C3vn+xE7dETW@I>8_0zkNQ{0@peDV7-1)Ki7?-d*7Sk zC0Sy`pYm(WcjOR6{$r6?hw?m&_xsbf_Ssk8@smL3Y<|*O#O$-#YV^U5?Lk>`@v$Y! z(PqK#fe2#d$ImXy&kbW5g-u79hrT~GO|(qaCXXA)dIOA6G^esnyiaPg&2L&~a71QX zO}^%EHEU+Ksz+lQ7pPsEccw4wp;b#`N|N|LI>$f)rsj6xKlmDa9}saXEIpu;^Y-?> zsEp+|saos8u5RU|C>{t*DeFd;?&VmM=($|>$2U~3zvg7AW5M*s`jMjZjIOWOj9g1h z+mKre4f3`KGzw!k_nOQnCksFuM>S6;HFkra3~+tY?1lTvfq zz%_nOnQ8t2G`Eg6Tbq)?xy&mXyJjJ#ITCrkvkn}X8Pg~Zmc5(hJUre}?xYGQL%fih zwUMlsN9WsB5rAlr?yilNteMj5@OE%sVB~XBK-IcJ+U#ml-v~>=%-pV`SZ~vMICs@r zs^I<#8}mLTZVd5tbeY3tcvyQ3h44Fz-2VPDq@-7a>dn6Ofq|RtV0t7|qoZk&xeRa| zrm)5X_r`SY6GfC+U~jC3BMXpDWs-y}w6p*XFH^ARt}YYUx865laCcW%@2J-1+qUV4 zN8Wsa;}6@Y`fFbYA@O&9t)8V=o>ZskjE8&ti!}l%bsm0oEnlVTIlj*|3$lFOj_AES zXKT{=MoQO=qBkQ&1qpXro&`@*F<%IScQ1vQLIQa{I&Q~aqkZ24V7|MG(66>HL+^z7 zzgW2klc5GRtm1oBZ16$; zm_+7TjU#;1Q-u4&q~J`IS}(Ycxy(Br0>_V+$G%9kI@x4fu~yY&!V@mALwZQ|)vU-u zV^#)W`_WtcvFj1qCryVJ?<)OjQ#s5S>>YxaGnFOwANQAk0iLtt!&$0#OyOUtJ(bK? zTRlodjY>?@&hhYExz7W~ImJGoD4yclr8`H!AQ))jpG3GGv2Y;Ir{~kF;riKrO$xS- z^06wY3ZNfo!ScKZE;UcbFb56CC%RijC;gh}JsbCbD?u=gQ#u)PfMD8Hb~-_jVF%{O zm~XwYEcf1(upQ_2?DL#C-@m`=u3W!nn#!(-R~`Z9o}|5)T@IdWTNNzrFdts!(Q(bRY_A?1bdywTul zvDNEa(}L5SlaA#LH-CI*h=$+>#sJb5(w;F{p`XSYPWYe8S(1Wrl9qbE;)9Z>&t5&P z)IW?cBJ(cxhWq7`h1%(vLiif7tp2Ey<>ihDjf>h?>9o$279H9*@^Lzzv-%cFnjx1x z%S83Y;%vtTVv$m>(X0}(v+&MLjK~N*<5q+`;ub1V2bUa24{%?BWzIXr)*RkKu1nDm zhKb@LV%7lFm9hiXF1Bo2ipQC2&!tzn5*0oYugZVE$MOGzX*?u@d7wR%+`q` zC1BwFBaSHm!&jX)+fSDj89oY7Go;X(&w-Jo(%Llpvu@-UK$UukXbQ9{6!nzzYeWR8 zp1>#LjZ|ohm2(Y8iU;YwU~)TFF6c&UU) zn%Kf#efKloZY^sGlBDtZtP~+jO8yj|o=9w;_V?Q}qiqjmHO0?g4X^q<$MWNd5K?~} z52u-+W(itaB&F`<7dE4;ZuV0D;x^r9nZ(FU&tmzIjBO?xC zF>yD%*1;sPRv`R4uf>|KO#}uW6)WvEkWYwChP8Z!?Tk0>DN~20NTUl=iey>?!@JpF z=t)yR`O4Virf_0b^1d}T*)+aPl0U#qNmd|1QCSg7u~KtsIM;xUq9rnvxuLdnQjnOL z{dI#dJ_2(mZ1Dl^KBHgV;iTX-91Ztk==CI&JIe+0!2arbvkzv0(g5)(zClc%phQ7E z75+!B@-M3nXUL(5D{k)P-eY;QuMw8+yEuGJ)pswi?!8GCsE_;B&X1UrmJoU-CJoTg zul=795&qM}*;&N(p%y^jXjo8t3>Z+Jo0wmnqkFI1yVAX7&tJ88?{2>qa)z4n_&BaA z;?&b8fYAOe%ywg$um$DV<563gt*zj+@~|@h;`St<3Hx>0UeI0Idwu+l6w`azX{z_& zCt%lr`nyk<7*OV8l0q&KK>tEu!R>ySp)1fz)ZsX*hv!;x2v7Gri5Z@_p-y{2Pk-5@6t4jU7+7GTu6t6aVON8Kmg z>2=m7&BXwQNo5ZF&Xxx`xXCD*{%7bt;8p+a0$TUNH+_WeTQE)Rz5NFXYui`KoY z?^^>!Wc_=`q(&>9cHw?Jy7;JS_h|3{)^CTd`}vmCV{gsOw|UYM-YK@j3Hky~E&_C_ zdTU-Kc07kH%+buMmsZCv9PjP6wA3R_9)n-T_CHWIHy|8|Yp$5UngVYdi~!^40=h(# z7H&UV^z?!*)!i&RwN6M(*cP`Jk8A#Fh|KF96`k(aI^f=1(*)@qU#`U5>1|IV45*{< z4BaKksLV)3RQ&*|QQ4x~u7YsXM;6pfFuNvEhj}Y|zVahfh(J-dS)`Bb^52fU>bZTB z=jOgZMuDTc5L*N*JhV?TEML~Mp*g1?s;oT_(tI^$cVfLpH3{?q95!uEZ!{c#Apqzb z&EUtqY-SS7Z1an|RoPFs3A2FsB|wIEct;NbD6Bk)izP6j2`vvF<=LD;9sduP=`Jyk z82&k(P!w4p+Kq4^8Qb&D@UFL4ocHH3bm>^pJ5Eyx%zFuBO|Rm>P< zj-h-EP~hAV4wza4@J*D?)KDDecu>c4AWpmacr~AC4)m@oXUbxm*2xf23B}!9g&E9F zD&<{-=d%(QL9J;h3SDbhzot*L=e-Qn0*w(J4lL7e(#!kAU#L1zeo zzcSoy1dgSo)4sI!csGwzk0qqws*dpOmS8xk-t_~!3{;v~{&WS?nn^s3XC0;!>hwVP z$hO?{>$NN?cs`x6Xkyt@Pvw(sq?_owzuY$<;$$GgH|c!S_0Lqe|Ki0Uh&aXjOp*Sd z*CgleJv+gxu?s)UX-~0gK7^h8dH0RO@4lGeZQ|`l9S7U}$fA18(7U6Lo^vY!BQ84t}63Z-p zg^>B1ZOf8Rh4av!;4e_z#ZMx0icg5MNYNT)9>>>YzV_!cy%{k_>ms`IlpmB6YS(7) zHSuIY9+aAg1JzP~gP9n^4ZCPT1x@f*2ktUR2kqjOLc-PQnt|VkZq@$B(CwD8>PX{x zmA{_3ZLSAug1QJo%^)WX>I${^1Yl~gG;w}jOl!=0>Zg6%p-Ba2;JUxMGTDjnnXxH( z#Ws;yFTx^6eqb65YQe?-5@ZUws2v{R$x2 z(h~HljbZr#)>89=j%)Y;Cj;KO42Hb7m2AdOl5F92p3as=ksDR_sZ%R0sTpOw(=UwWko z9gE$TGF)VXIm%%0WM66iYo2qEeJxZlAudADh9zL@wIbJG+>Mrsdn1Do;cxe;!f+;Pb;opLxIR1&7dyA3D{epDtj9eO&b8{%T@pyyXHP#J#VVsU{g^EMo?s zncyCyfNp}T`tdelXt|gkcm+&gTbab>& zUeu7m3E}J=$YlS!6;9&~NseN7m3k}6>~iNuJOQ8oK9%8_+3hEsDMZ|{J^H0QfqABR zQYyW^A4tk*6?e3(ZOE5?ydM*;+$0m%Ifs=toXHy&d1U3yQwCdpkSE>Ue%XBLnMle# zZ;r|5_7$16+fM^CSkMDeO<$(4TdDc{k76d7uzI-W8* zy(ngP`toe0cV!^Gu`pZP@}|g6dI*5_UbN2lt9t|2Lfje|ks7HM&zrzM2nBT@s7+eT z82xHt&JV+^B!F$BR+O%(jP0zivWI)$7$<%;){$(=I7C;xHdoQ}#)uSaCgQ0k`)DWELouG0~n@PZBULGX~&s0ZJ;Fbj1g$pB-b3aeKMd(inrIF5th_tk{O3FvYGl zI^8`wJ9J z+CL_ya@L>WuRBU^8vKw)rARh7nvHJdI9`B#+J3-l-ZNWP*r)!K6hb;xu!i%5eB!G% z!yd7}DMkSXl{xRJ06sE(!^C2W+Cjja@Y151(A7@LRfo~6)}ZUYMJq~euv)<9*?l=k zd(75JhpUjOPL6Z@e-2EsaUtf;!Pn89Oft{XDvbQtW6r2c#cjWd-JRx+!hiYQ^6(0OQLR)U54@J{#Tp%kzGl zWV7Z8HN@Sfq7}e{KyD}@VX&s1nMInP3jsg+O<#EaZm%aJ=(_C1_|5 z7(r!dNV2f_pzXA0nWM9EZN-pF2!_7tR@qoiA}@_~N}F z!ARQkEnd+P#ftus0h@0{%>p<1>HH|rsm*~8_>o`J6m>QT93v^(?~VR0r_BTt@gW%e zzRv6F5tINS$j6V*hH%~XCi(+-GyDG)-RsDlzdDc0id#HBVtyIAas?qd`6GfmNKeNe zs13u3KK)9`NHowxcFds!4}|@*3{Mr0$pbdhG>+p50O^eTM1B9*lD~U8-PtHjNt@mt zg-j2h*}(t*AWb&^-Lw{?vw6S2ijSolh>x6I?ZfXv_GUkXY-$21km>gsax)n~=55sng19X3ohSprz2>8cP(9l%0Rf^f=OfumZh2ZFZ`&OAs`o)a+mEr> zJC3%dP^;5?e-IWcJ{^%fQ(UDbmF`!{qpB=}89dlbGK^v)4qE4N9S_M0G5D~r?tFrFjWs6f@_fa}-@g1Psya=pAD_yQsDP4nY(q4B)l<|Oj z^8MO@aN;C#$RB|gdMxxXE$3vdU_I>OPMOJRCs@HHCejw0K}|Jvs`t>SP8LL^);>!0 z@}ipRs~v1-4v2)d!WM)>w_x}5$`SfBGT1qhMlhWxQx_dQVT<1?8|IHIHPSI7^-v1~ zXiipGG29RdrXx{d5SqIP8>t?(!~y$S(3>q=`OL4`^#)<}KA-rOU(y?Qr@ua|B4NZT z-%rF0Ep}HFX3nWLUYmT+;%iO%R;Kp1sH!cHz3m5rKsq}+OJ6v)czJ98gKfWLO&U}< zdB&EAijuzh7nQ`MUCGi52GS`%kz(14N?3}oMvQq3RCTkX8@j{M+mKPV*__pvn=c?` zY`Ip%K*=~|S}K_U@Y)*Apa4vVb~a3OH1U=1&<1YeHT_#-?Ce?)TJMXPB}G^bftnF{ zkev9g$XY6%JTq8k_PUJ3t*obaQtUaR#}Y5Ya0RYo8}7aXxl%)8Ba&>8tH^a3NQ2J9 zlO)784tII-?`)L^$>wK5ry}^owd5!TLf6a_Y}@4Xqb2bz`5FH0pGQCnO?)&Tw|L&@ zI_%4Nz8IXP9v~coQT9I%SiwX}Ko*@z-SEA_d^mAdPwhl0^1ki?x5MMN%}Dy`^44^R zV+v8Hfd^A}n&_Jb-WYJ2>j-QS(f z{`0oJtZWqow*W#?tCb^f)ko>i*S)NvC_mgdJ6~1a2*&|=cLDPD{#)7yZwRyY&^KA%Pp-8V>6ac|P740JbtNiV zuPK<|pFrXymqodO&hlD;&+oq<;-?h6crj}6%JJq0KWv#VFPDfnQGQ%&rw!Ku_feMp zao9;-raB^!&J3{)FYz0j18iHFp#DGP*_8!JSFh%l*t6@k$2+UtaywcN;w7sR4?>Opfk@;!JqVpt5U=q)G z2(yG5#M@IA6{`kCDEbw0nkQB_ozu*<~L!x!!Z+IXXkn zNLpZw_|DFm{upbv}abo;*|dzaMZ;6C1#M85s(~@ z-~qu&dqfgi*AvS|?-&n(A^VZJeqMekQJgfOF6>*8t_U}}!e!)_EsK|zwQ*2OfrDyA z9{%nL{^=6_<|ZxrTsJgd5~Zgd=BPBOKM^8Q)T8Kc7D)aFYVzcNqb4i2p#`0)$3QJV zbtZpwMuvN^+MDlE%eZz5s*VEIQX9QbpTV7S2vko=>xP!grK0N)&V0|7?!+@)jUe}u zp$9nQFOp=^KF>y2St!BuAGeQh;I=rsbP*_TP{4HK9`tXUh-xC{7i6-rJrie<9lgSklkwY>|tKxRONnNI__or`%+-^(2R`U$u^j`tD_$R7Bd9G zL1pv*_JQZ51Yh_RZ)#2S&h% zwGNX*!f38ZAa)2I#uK+bHkOKz-w+lTSB8hW)rkL1N%T)^Qf-DLyGI|!h)NnNAU3>J z$eZQDd9HSi2dY%Gy+D+kQ2LTbn0EYHM^vZ?7ir~J{r9Fk-D)JB;gJcm;iT(cfbM#0 z=^D4>lcRe(7_u8TdaPy60PFu>*97;=`SXrd+fZMDY}cbsA|vj683wNrzy|Aa9c;&y zaA)YcWvY>!b3Q-P+q7x8U@zo7806Kp{xYV=FP9P+*)EQ2wz9|Ya?2dlY=kLJ`IMTI z_%jdqm~A|Eo(y=L6wLUqnCWj0$iF@c;iaIbrw=c}Vk>V=7N`LM$gheLi25(^{a<13 zR;PE8@f=gvmw%nU^6w+=$N;RAPhOkA>zB4Ie&XngU5D7W@{| ze|$>0H}bL6af{TL*z z6^DoxMVo+H(g-vLs{_K2^+XUvXwDDuEvjaD&sKIv_d6Kky;4R7nLCpZ8!ZkzSnEX* zhS+F5`|=wUrOrE!vNoQTW|%4LjlMluTX+BSZL?23*9tSOE0bHlwq7C+hg_(Ngg(aItU=o;UOkTPgU{3M-?5B$b0BJtYg=j$RWzV_^Rl3Ov~_#b zA?MVzT~16kcg$rpMfR3)qNvKbVP)jgI5B>iFRFXk?(@ju|9}pIn%N87Of^*! z-RvB|r6=}wqS7J<>1%igfv&RjTE3;r=^UI%2e-#vw9W(BznREu+``pUTLgwU<+qlh z<;$f-bVNe9UJ6}&q;;+~XEqtXI~7PP=uW;mM=d)97g+RlE^5kvn(x(K(wHaiNk$#m z2W2b@?@Nk{hqZ@($^cfG!w`}J62Y+3QJ8b*Fw_Fvnv#<*bAeQ%Jtsziu5XYjd5 zelrs+H#q#=NuhG}#Qo#ATFCfMuL4L%tEHls;b1|9-t9n6TXvCEjo`Sszz1s4)aCuV zo!l^ypsqwUUgIb-9$R-&Rh$Fa;N04%%x-%)rznlf!D_EE;wF3w;}m)^@63;{SY+R)w@QT#g*(J8U#L>oBTKbdLE8)T2I_%2;j^nQv@LwP0 zyr<|xJ;XgIS$N{plpUfLJkr1ZXpQmt$t`i)yEAWeQ$>Zc!U78+V^{QQ$9(Orsz7=m ze~R^0{vb807492XWN)v#slQb~W}{9HF%z(l&kEO%ZW{>T^si=W zxZEZ!v>56gz&Tvd7Tue$z+(tUwwS`MRDC~Q&%T=Up1o!EOP*exVsR2h1gycv1zM!- zco=U=;2=(%8z$UxM4>5dQkXw$CQAW-KTLc{B7_ju{qg1IcGJhT*MCOEo+fw7I+|%^ zM~RePFzfLwHix+@Xt&A$RNer?hL95e9{j`&%>o*mNT22rR6FtxrE0A612_shG+nS+2ncSbPN%wFH#RvBXrR7^- ztA_~{`OCOhc}JxOJn!fi9uZwg4Ms>+D6<|fmBMr$J*<>w`O9JN--1Dr5dSN?U=3Tp zGRd%GV0###IS2c-)tk_1;1qno%;ZBHf3D|$-0o9*85Kv4vBs*`Dc_TvGfR60 ziFOi#Q}XGJbEQn@bJT=)UQSzCEvLsW_cE;y?&=|MR2L>J>b9JOA?}|Cp{*ECGb&u& z3o!Dlj&z+cX4PbYDro8u^da#vi@9hL()Zq?$dw0oLQd3j^5afpdu%$$P!fM`={CdV z@HZ4ZcOsyCaPC&5yd$Z>_sbw( z@_gL)QbC11=+fNvlbbyABzWpAaUSv5RsxU1J_GpR4w(T{pjfI5*YV{-%$*`%0Uhbm zd||!oXqzfRf2q{u&DC)(npc!?El;sHL^uD&jM;8!3hIE@L>khN7FSvjC*75o&FF%! zTMVqo%NB03&8f>(P9)(FiBcNnAg?iV&X5&Uxi;*nJJT^4*P7GqXePGj864O!#NADAD-AwMn)Hpi^ z$tL%f9x|1Kv)@|+$-t%+5$Eu8EI*(6LiS0)GCnR%)6ZynAntoXErbZ9<}HS+C>v z;D#t2L-3DpDHa5}2+i zQ2CsI!|$$Y;N0J&x5?eorIn13ZveF$Fs_Dul*s!2uK?iRUfnrjGsN&{=EO zx58BHlHPCcOUQ{zj>0ZA(%P9qvW`$ezcLc-|11mgmH}LX=B>_lO75b&LIIz`|6+vv z=q2{Q7Lv?gIH=B_@aS2B>fpHNZa@F9iqK3BnE^R2|7Q*vY}>TzZF?LOJ)UaV1kuwE zedX6R<{w_%yTFX@H93i-_%Lpj6a~zY-~soSPZ+NmP2DgFL>mgs-Ny0DdU^hD9ZltF1DJ8xM^2>^f~OdGMbWISO2*O4<)Y}Y#Oab|H0~2!OQZVHW)I(^uVqUWOuVfv zqAS2j3ejRcwdg~JKkF~!@h^Kscr*U!&jY{%^3fkGJPk+3irbnG%UR2^8~SydSy(>pSh@`z3dDAb2u#kztjowrp1(84|;zDy!=KN5i$DZOJB5JPHPZOJ#=9xo3hG~Dt*6a< zkkm-h@7ogY!3fh5EuBy`4;spaN@gLZZ-{8jMLXS_tP@JE;lG~^+q>DfGXQP%;D<=> zJ`|kXCq(8F+@)}O1DJ!glP-3yB0{u*2{>qU47!jat;d{+=%>8v%q5~rV)!d<pVq%ok6VL*ERWCu46<_+GCr^V4N;SWrjVZJ@j%|QBlFCc%4vvJn5E} z$MB`{LeLm#O9ppy*m_B&Z=^cpDTjly;Tw|ScDljOUGbu^t@z!}q^Puva@p>J2jBdx zwye_>TLbqcj&JukyiY})IO4We$LDCm^gYA*A>A)g80AzAMKyy#YPBdXa`}r{dtlL; zT|H0>{YhKiE$+gVr4f1+aI}6C50{<|TZ{;T`Z8!%*5nq%w5?y{{mU=`z0jTnP!M;uqVG&vZ? z8ewl>8x2po1=m_lqKCJ^GyR-jG_K!%k-Tw*^0*?g;b?rihx!8Sn=($U=-v8DnB*N} zgRI*lP|H6W!aN&xOt5F#^tjz#G6Qp*gF$gu**6$2+2rA8!rm)1`DFMW6>!ck#0Mkx z`W845g5Z&mJ@wAt*&F5b=k7z7D`%1I*0KTN;suv&9Iq}~+V$UD>SLlU zyN)CKdfuz6uU?Vs)wVF)%q3XsxS1Vi^3f?g_hmOE$ls=Aj>^GH%K!LC?0@;ZPKcwp zgR(t)mmF0>>bS4&03GvHF2TrbweqewsoFyB_-ZT%We^Wn%RsqQZF=z&@#7n^3?{sg zxwT#lp?05O#t~$O3QP;D0d-GVRK|ekgj+EAFj>>av9$N?DQLJ+y~riA}d zHq5<{SKqv4s1t)gbCV)ON>gCR`i(qXHQ~8wj=fb+`8_wQ9nGAl+Gk56%yK9l;;&XA zXnWFVHTsFX_w83hDH8qW&bjo6hl%1v&e$}UH-%Q*N})BoMyM(VKTWG)h8ww#bT^*oojteVTC67q?!sEgv;zpv@R{)dE zOXxic@o4VfA!Q<8DE(6l5J$1}lL8o5(3*MkaIj;%P_q+*9_$3jo`|Zo>17OCdvAkPuNV9iFLXrMbiQ~_!J+bOEMGM&oY>Sk`0xrU}>6 zH%ktJ3%bQDFNu%9=ta*l-=&Ic_ejic)WPc%sGjO8W>9#sTVVT9{@)dedct{`Bjy@V z>s01=D*UdE)&0{B`kK9m7W?~z=)xP15IFz7!e;vx3{`P9q00cVJv5Ush}*ZA%g0Q< zg1o2}dpdoaHucv_wV?DH&HryL0 zS^?RBE^1vSyOapzy1~%EF6duG$NwW-+Pp?QuC5nklM8U;VBtjJq~>Ica-MG_u-v1} zJb1dGTk5Bwi1235seH&dLE@n*GB)XQYDxGj!3hN(PFY*MTFw`FA1$tfT-bk3SR{eV zHeO9^X=2q!smrgN+e=32yVDe#Ar343Dhyfxbk`hGx^+E)f27#2%SK2A6%C$)$VQJ9 zomoIi6VU;jxDPq^Vnt+i``dImB=;!(M)7RXoXjyVGyj}SSxv_$n%^S0-=n?X?l;-b z>-@Ya?e9!~*HwXD{D}pu3oXgL< zqdHcUN5URz((QO9BN~2GxklQV$*@J*S%x}h5+(n7B97Vs+>Rml%dE457W864gDdE= z3{ABA6)~Q|gHd|KxL?i=D=Cl?z`KeIpzi&O&RZ%;kSCnXS6mzncDwtunbz&2CFr=0 zuN-(FY}asm{re`LQ$5yjb*?e-uNrETQ8IM!qx_j%9Z<`gKu}}|*|DR+%!ybv&s|En z{&;I*TTy|8+pv0xWMN8VbiPT1u=D5M;Gea^Q8}XU?4IaX^jzB6ls(W4%8O7AW7Un|r_(9Q zywWMOq9d=DIXZTIW0)bL&v*q_g?mgc30sJ83#3VM3*5(McI%ec6f%s|kC*Ri9J>My z04!4oo8qlKHQ36SkDAvrD@A`&FP3Qaw-n{ipC|`KulByb>LrvET?!Q)%~!k3ajf~3 z52N`rj}R@IDoroikT#gSQLJs{5-AfzzqeUz$=^DCUl7s|URvLk!1Y2OKHkzNOiJU= zf~N=UI&~_2S3%{8so2Y`NZ$^h$%<+crq+L8E(G(+QW}xr4y8pF>nO?O&whQ7jy(L^oa*WjiE8Ll{^;|CG?qnIRwD zu(cpJyU`+|KEalC*~y4mp4?jtF$#s0cc9X@g4k?ui%*oc^K0g2rWSYYmIop;B!3N5>*tE|)$r1yd z={ytO8*VsW-0cL0kq6C*Nydtcq(&j4ab}D_#*7XUyeHT)Ik+z#hCmm`@Fkx^bG9{z;ib4SDos9u^0?_cOm{#;|;7(t*8bT z6upe<%@t}^TZlV(CV?mG?(c>B+&&o71zblWZ>udI%j!_->u1sx%!!YsN#ST5@EX<* z?j)RqonQ#yR#Pt(WC704V*0)fCDzdE(G9M*Zcl5}Try>QOv!uF@JYIyaH8TE`_)?U zIQ_k()P|$A{aph_Bv8jIzt{(Ufw{(tJ1}eXK+L7B@Iiux@?kp#51N4Bb~)eA%~=?- z*Vo?7l7y1MIRJ0EgKK0j+c+Fpjv548c|vK;`X7u4U`+!HQ|nH- z;-)Z`S(0irPUau{lq5POvA}u6crtj zh+joq%I-Gd>v6FoiVg{DyDJf5CC3_c!*R?jr)`vuLu2ZGp_qWZ>~8*=!lL{u%E8a$ z2z#N`A^B5z=V5thUL&R~TCqQz?f4qbo=S6$X1MqPlK~1dQIx&GO(x1C8kl4rgawkr zh!J{sQ-iwW-tX*1nAP4uA+3gj;&y1zfThqx7v}U<0q@U^Z{U}-70>wgY|ckJjcvo@ zozwK;epa~dWw9##;|xXh>u6R~&)OipH+nonCK1L8Ppjod=S*rF$l^Va=w7HScIyTI zCC>+#{NZ|m#mhm_Y#FwX=|z2SRoq*WaRiZw+M~D;4IO-{1^>9qrV7L*fdf^BX@?pKTQz zufX}G3f1q|qUeOLm#^^ZU+6Z=cGzo@{46@sa%qG4Q(8IjZ08k%N4lrqKi=EDPnJ`t zEq@wf8V1$EGGtN z5a%lWo+y5cqj~@^$85;%(U#pAhSCk(o=wp0;lfH^J|NrYok~rOY?lH`tQ@VTE>2R@ zw>b@oo*K+_Tj156Udfcmk(Cet;l*Ir3gg^|FEhX!cZ)yPuj|`B)yyIjb9O=737V?n z_QtZ;K7Tqc_EXGfpSLA*o4dq!K8TIJ0yrf-Ws7*Uq&@rk1aZtS66C!hg}+%QwteRzC@fqF}G^pzUfI2Aszt`fQRonSczswsL> zxo(}=T|a3=JVsQXK6!KFk!NX)y~c4(hSqA}>&;LiB(aXZ%b2l1(Cgjy#A-cRz<=~A z19g^e$2TfyZu**OG04u>fs@Z`Ah2&Z@?3DFiyRfu%KF5edt)>1+~bAcQl~%bg=}-Q zIsM@3F?b;{Z~JSs*5je?`krcsLEJsV#Rmc2jOYJrQOhju)t3_Xra{?$XBC-g((_8X zV@IG=EcfKyag>+QY0bL>;bykhTKS5Lu`AW@u&PJi_6LX=U6CtD60JN!kCRQb-bUy- zxJ??N^bXlX`JQQ*hwjMdBZp{xC*!6ske@rTgo;86T;0cy-&?g2vRBL@6gS_dw*|9} zG9gKvohpNjdguH<^!|tCXjz}5pcmtbX1*(X)%nr0qN9{#yKLWE;Nwa71roU*3w(b( zqO;Yk#0xYBj5#$nuB01(-mscNJ+E|77y(MWB`U!N8)ne#oyZd}ZVNnwqUU2&r-;lJdv?x|KaO>^_1su^GC-<-^e4Piy>wZVvS!($OIZH z%ipV?|0A9H$B*={iKRaM`Z=uk-&_FjdIf5vz+eE8_I#U&5 zCSZXML)$}oh`=(2_7Ap0i5QKjiD6@{oe=LWB9*BW}u(2oC0Uar_vllk`?M*7>(jVXc%iULJ`Lq{z zh?YHXv%1Lv_XW$-@$}=Jlyy8P0=7Bv9OPaI$+MjD7=s#x&6Zx&XewxH+%vnr%2RtJ z$12LHf}-u&+1~6mAu2T0mQD(jSgrLgeN3NhKcIMT1R5A9Rs|kF{d58i$n%zSw@&8~ zhKvx0m(0;K+?R3b#Yab_R)R<-o$I^H`a|p=%huOL>_rs+_H`@Ku^tqBe|@4zTQl^n z-3aN=FP>2EUKxLGtu*o{fC^H_J`{;J(EFjCeD83UBbq^+PjKtw-5=NYH%5MF5AK`& z!yWj)1e)QB9eBpav>B_Ob)TSM$`nD%FQK2Z%J_-vRlk(SNPL!=|DZfF9QQL$wcw9$ zWDgGcS|E-Ejl1TYzGP97p%-JpvW@%J)D^^3ua`z!_U}HlT7ZJ)DDdh0W0wnCX2+_V zlF~2+FbZK0rRBxnt%LVZ3IqS3H_|}c-D4=OI(7n&Knacwld2IED8JhMd%P*r zxyKW6%b%;JID*+ls zrl6XgVuohG+fR$r21e3sR~D@h-94x}+b(M%m8=F}1~poGvR^f;&fzpP?0QV;N_x09 z?*pcqKd;FCqed$i(MAVoM!nwuc(-@~J(wEC5eL2v#*Qj-R^u}kkH7mwnGX4WbAo-| z=~5GHbeDSZ2I#yI=_5^UauJbxjgSt zJ$?UisMnABuzghee3;K_AyAaWJ|b#5iJe(eRzyC{R`kCiGiEm$re3Z$jT{9eCl^EB zh2oMjs@?1QJ1x4jHnqqBfrXDyruCIU(`MY>luX)4x5coXMF2ZwN7prQ|JWx9=JcTD zaNY`m4zIchstlFwsR5JXJX8AFPC=n{TDv@=L>|29`0)JU@v!AiTag}-VJcmDBa1rm z>TJSV&ttiD)vYfN>h6Hd|K`mMc|vlXv1bwfZZ@2PqvL(cfuQ(Zqina1D>N&`I@;gm zH}d0T8`(btWae~I4Fl7^u0%6Q-*)?>b&#V+>{~guR{E-70<{i4FwO5cESCb|`cymm zxlv4{_pqZ@?}fkL)CscZa>6r#Y)Ks1hsHR~p|A~-cUferE=_<5e8BryF7f1bQZ5}(E_gTD!kRj}L2FzpX?Y`XA*^0e#Ict)@}#_wXDJFT9X*NhHr4Z}zJ_BjKeJ(K7+5?{;o>!lJsM`!^?O z%6VB3Sex*45rCpuRCWO9?LvOW2=znDq}PA`B4nNuw5E1^7LYtRfDWq@zi9 zqq79m>ET_2Vx1e8ncUfXF)$rhXc;7c~q{B`Hm9v+Bf{W;I;q&Wp$%&z6D zpvoEu9!GT@R}CL0e&9H!ko{&h+%6U6uJb^_{+W845^o44d{UHPG*iF+RyW9PNfUBH zDJlAb>=5iQSf6+4SCB&cPj2Wv0|Op00U-QSGH2g;Pl6tn52z@INv~#m!bTN^A>WW{1f}T3A1;6U{yGrltHfNj%l3OT?AHrI2G06zWI5rnDe^kgX<`og zHJPa6uXcFN?~^{*F;zNv)jyh5SR@gLYTS)Z)o7AIE7LP?F@7rf1?tn+yvpJs+)(@v z7a#hR>< z#MrWA7e)!$W=PgBmdci$>@$h%OO_BaBKtCwCBhVg>^r5!zLR|!X851!S>EUUzrW{s z-|On?8lr3Fd(OGfeSenwJ`U&QMQ*3;K%=X~pABE<<$dMM7HC#U_C@tpm4RmYZJKME zfswoj%~s<|%_-0wJP1JVJu*?~IR=?tG?-w`^2HXkkj z>>43lgDcN?Gq+SWDJ>Dhj38`g6zg(JR|Q;Y<^FTc{{`*#C&&-+t?y6AuV5_^C z(|?8Dxpp?W36paMbDS>c@#w4b$JM6l@6PPfKU|yFSKjxA=4bi|{&@1;Y4TmC$l1>1 zYs>uFcK0|KR>9O9tJY{%tHaeA+H|LC6NTXiH^CHiP~GhPVs~!D&wWyK?)|lyT=TX; z3^^Sm6Uy%V;f>r} zDj^7ncU#4q39IcG>ueYYw=OhO+LTSbNHH6`SHhP=%lI`wgjlsH(OMt7`CfX{VYR}P zvT3~v z6L^iVpbkBw5?V=+-z;yYIZKsZ*04L)#PzwyKL2$dC0XGy1d7*4m2x!vNY0N_{r>p9 z&Zd)t!x`)`ajltv--=2d7F-LMztQ|AjMMZS_tat}cgL7RacN{B7T@iXAhwvGB_cqf zdoBTEL3Y9V4VZc?9?hv(7q0bOA2iOlj#^(b!pa9MsBoQ`N28F+Cx$Ym1baFycHgbf zilXEmzia1XDx~wR*gHw9AXZ{raV6mRaGaLe%=PB;I5v#maB)Iblr(v+DS1KQ-cOmw z^&74Bf>XRWgW5}8LwZ&-U*ZeTz8UO#CDAPMaV6m+#ciD*>?{FW>Eq`>LM0lxky1ay z%e2?X68`eilds(7zT@C3y&vAaJLZU4-@%|1T_a7LsSbawhsuO7BLc*K-neZ6qD)Yb zmgUe_H~TFuX3?cYx_t{mo=k&4gay7am?dc~@%UgAOWrhOx|=py&$j|jlD)`y&0N>3 zM2f-`1k#uNrbFqU+#(^I84Z#(2?F@}ve{owHg#cj`9G7t1c9sPwD6zOnUX=C#$Mk& zCUl!?sWWg9H2S8At}x?iGGiqUJewhQJ>;}5`~i_poF#QqF%`n+k`1u%Hg*|^v>396 zCD^adwAnd|tO6zjG*anMz>b8wGyw68PZv;A`55T17s!7di-7-5ftefp)-nKfC%f%BrH<&Wt`*~go$0~*g#rAaae~#?pK`5|5lQ+iku;cey!X?ab}%1q^!_IUeLpFmm7dDq458ofQs5#ks1Mrf&x()5L~c#eqGZhi zHd>r;@Y#&!(DPalnT@CSr{2DUdsjm7?eJ=P=&UcD;OE4!4M&G`=Q?|X4Si1U{q@Pk z%=+J6n9h$R)fS5-g<3QRBU-jB5(B?KHvc5HV5g|K>o9T&V82VM(=sP5$FEr?bWLa|n^&?{B>y z5B-e=?KSuRBRP^KLLP3v$ruO%xPHBLv=MrPP2yVuuNFC`X8DWkhW+l!x999rd8St~ zNae;ln}mrXrYq6K;!61B10EB+lq(cmG*U?&X2J&IePjC*lu%>(IA_@R35slZ;FA92 z_8=UdZ#m;(+mrDPAf;35eFtA{;!0&>qDDWu)eVzUo9)XPMwD|X;ZC7LpDHW(cfd6d zE?T4UUA9d|jhipm7johZg@blFd<@2)Gg}y&)mQ6=vWRfylo_3G1oaI@7Ec{?0^;^L zJdWFKg8L#yu@asUeQWA_X?Jv<<_=Hwz-_i% zm#p!J?7;yIGaaa&=h220ej@~@xa+*E$$ z??6HVgVY%L?M2=q^fc;rw;|_8Q8+U&IM5KeEq;C&y{(MASg_9E!-TdI3dnAVjX0r}3E zphTFw0AVu)drm)3TVs&Eo3LAhJx>+su5u?4>e=1a;bl=8wts5+^D4+IGAYC#LdP@jOyLT$fGh+(i~M7sG5Db7 z>#DxPnl@@!MiFHCr3V=DXLOdHAF{}8nI`Y$AkXw-O{JdU!u0K1)X@3v^pucth8v72 zqu(~hOenIuUV#*eA0;|tdjf_WvkX3eSG%#t{mcc-E%Wp|{{sIy>Cvelq=TLKspI9q z>|3IS#H|R!+kP}x*#;iZxSu}|I~5NFvs%}4V`t^r315QVK>Gt`Z8Hd!uhcn8!+eG+ zVmGIS0C=x3dj)_sjqb=feypc(q)K7KR89tP<>c)MDmix4+R?aq+AFOV@r4xyS0qMU zz2}}_od((8_GpJIRhqEaboGBA4AZhKu_#pvwD%GMEFR~%X%Z{5efB#p*X)$K(GAF9q1I3Y;@TT4vd(oLf6xy7ZQ|XA6^22JCXO%t@m)`D+yFIH)%Fq-#Vr@V!Spk|VO+=$OVmtMi4W?le>=JOr>8N^ z`i~#}BJ410=-#^swI{zNguBB6K?EKQqD4ZiVrjmllae)wyo zW|aqOsjJ=N3p6gLc2obp+v5CPq;v>v?tvsFbV=|~6S>=zCcc{6NTg-Ew-NU(nGX0D z{#`WzzCWZsvHRVH7Cha(BKdJ}n=TGT6a`Dki((0z))zKQ0dplA} zo23Tskr$rvnc%k}J3LQ25EV~w^y+p6*%{(CYW;In-r@ER-vFjkx*kLua2ZquNk;R_1N^HP!Tx~0Es4~x7E zFzb+Q3DM88@K*1?9uhnYb)Q2uwRr=7+1w zhr{0=^&1FSMwl%3>yWRRA56rZ8+JxMwTC{8zbBXZom6f1aZz0^n;E~_|8_7d>G$o2 zh<>!)>Po)HL1N}O>XrAeN2_LXsIk?w+cK+icGt--{jOHl7;cpfObxJ?=;4UTjY}Fq zD)EcC&%4b6UyWw~vlA@suJ+vE2%i*2bUyC8fUzFN|5(;xTAOsu{M$#bY)idfluk;I znFeJa&QEh4`=}xsV$et1`Aqo+>nEgYE_weDU#Z{fQ5{_a$U*p`;aqGKKb3Vzy{?%LPy{~nQWWb~qQ>htMs&s%)~ar6JL1aU z4$cl(RH%tIQH&&=XnNzjHOFM-qXRQS_%_?qQ|Ubj_p#WBG%9!nOX6p%aPL=Tp6#w% zu0J4ctKxMoML$pFANN*^T%%)1sA0AvsUr9L)bYtCPSH@@!X-x!v}00n`Ud{7$f0`^ ztRtdje|vFIXlzG%GqFlOZIE7w^Q}yW&*fgB)3)7d!+cl$6*q8g0P~Ivm090*R{G6Rl}jpG!FolaT(;WsmzSKhZ)HoLG@(?Y zfJ8jA=X8pQDwub=mYh(V78iH1B&I(MJ=N-9#P5UIhtKAvVihL#nOlf|yf8wP;zx zVis=XH~j=)NXsSpg{wfp2+L)tGtdJ2%{^ZA;cqb10u6a7c|l_ybg}q=-BSW+N?_sA z1bhA7?*V7C%(uA2!k;^^l8GhEYtZpnX=cv=yV~0%Vcj#A#!Ty_ak5+X5@m8rQRV`V zMBGj355p5N)F|tC1ToT}2M)!580+K;8<2I25U`hZ+SIaBO+TxDlx)~}yrr}%+6ym3=;rP#|M$Y7~FS~*h5W3f}7C1?|Eg_E#yaPcV-OP2g9#+2Ac*sWyOGs4;^pgc( zu@KB;X=xD-U|Gj62--c6K?6b9&hRjE;tuT9b>4vO9Ik7AvZo?zS(Z1u+Z{H(K|yn-(9eQ&+q$V^6z{9^b#U$p2l=9pBC^h=G1)l9p4yl-igvRHnh2=&W9t)4B)30le?bXjK+DC95 z^o2EV zBRZW1+9jRi(k7{0hr#5$p+vM#2mG~e}6iv zIqAi1({gG4JKOW^Cg;>P18y$aHa>kvv(yENy;!m{i(h0sH+5Z2IOKL3rmCeZ5~QA; z3g@6@z$9C0Qrm&g(Ta?p=b}H{B#c2SDlO&&u&Mk|n=V_fvEy~)Hf#pE)}B`5ISZ6E zJV3Sf)=VNTWG z_|C6Zv~g;r=8m?yZHA8ctbe8q(-NtDJ6C)H?1r{=kQz!50JwAp0Fut}WqNL32a7?b ze<6jjcy}CioOTNXRLX|+)-OhJi(YCJ?OYaca1k22)NYQ{G*&RMl;-Z$_)Y_-1% zz-qzW=0;hsm3%1C{=-zH(17AYX$;Tb%S}8AG{k1$?z0DfFPNj|u{ z0%|B2IWI*+K*Rhp$9NbL;IDZYZ(zB!UYb87YmI>CXSiz?Z9$RFsuwzhwDA^g3f69E z*C103gjrGe6eNJ&a27Rj6CIt%idXXge2O_FM&_3+NW!lXW*|_FrV@ajn>j0*y3)Ova=hh@S5`5lYh6e@ItiT;gL_$bKnxQ_ z1NUbd_xpN3%laODE&0-G?2q3He1T2{b1=e;OTWOeBas+Sp>2C%L&v$cxF`i2T^q?> zXp^-64&FUz!J326X0biTWBBoOv}v;F8R)Zw5G3y#QFxj3v~gx|?T@Q-Hg&AqHjyf? zWjipa#Xg8^2mD-X#Lb49`O$;vyF$CY$f8xQ)2qL+a!3Ygsr8?W!X1A}{OD>-q&b#R zQd%iyiNv~P!voX~ZT8^bYXGdPI8I~ygK*F|1o7Q7k zt$cuKTFMXO+wB-xm|>`g*^kgrz`fiU{gpw^3qsWLJssK?*xf2j)!`CaN9LzwhDVRw z;)PgR&>3u!L}d3BYJ!;5HG)-xFCT2@L(R7)@kZE#;VB9sKEg&EN_baA^_J*ThNss= z5ar#{azM@H>)#ZV_s^>ETpYL(#rd20lF6x&43XU}^s&Nv#S3<8(bfmyCrFO-lPRC3 zM)c9Gv50&lWo7M3uve@7R{@u0|2jO)bBQsGd%Y@c(3XC0d3lyhVFN#8gr>V=e0q_ zA;s0*5Ew|8#j>c@U7i_|-Sb|CJ1jx3Z2#_wE6Xz{YS7NAUw-~()k;wes95~C4hoCS zbx;?=gwFfyuzVJe@RSr?%ZF=#F;Kd;=iK5%2$C{}gR;3(opDOqf+Es1(Yu=xv6Hk^ zB{j3m`I|>3E>*-qBb#G4S>*LU%;7)Nw|~5-i&OT$mA{O^DiIFHkAFAfVjq)ADdJOQ z|10@zoc_Ypp>^+CY+~i|rlkC8vkEhP>PMV^|EPVw%s#%~dTVAo3PHF+SVkNRwm$jg zJMUS?2yt^=da*)62jp2*Fr7K5U-iC=Qhr11OqBGj7^{~$X_5kFNc`-i`I?^*_tE4K z1orL#z`d79K<^i+^~?1H#T9^0!Np;-ZxdlfvboD%7=LrWPe1#qwV7_R4Nc52eggsKC%4pv^Ju_;^WSLZSq&IOLx6IV$RuyyMTCu2CI z_@X%!AC=NgZ0Gu|ezQgEl!eRD&$~BWMs(ii>c|(LB7%3KbISncFUSrqI&E(Ej_0}i z88ie z(1mCu`MVQ4dUJsXmVJ~IXOq9GZ*A5Ny~??}0~!Y`jD{|DdWg5G1_W6td9`$I6(hFp z2|{?8<%YuGa!@z1ZU_|kQfmKBj#^Z3GYH(4X2{Rkg7w@}y zQd}G9K#x%pLc0&$43~@!4^Na7gW+VS!g-o#k?X-jM?dD3Qf|X%nq-F~60^#AwUV!H zoQJs2RNM7uyAn3q=FQ*ex$RrL2Nf$5#*1Akz^5ZOfRLGrHSLYj&uIi?!JK(vkA_JA zVp>Z3>q37{^C*y5cv^qyd!sVFmcE5hhoo>Ga$!_506f&uCjS+^`^6DWQp0QuLSRqF z9>4ES;Nl$*qo=scqI@~|J`Z9swax1%fF)e$CLAZ5PI)xV6tcHrXqTUV(@NRiZ^DnY zF5mrV9e|mcI_#HUE@9l4H}4f%kZsVo0-?TR6^}hFg@7X&tbf7HtxMcd@akIc;ORZN z-w%<3*6^~=wSc5QkO7jS4%%UcAL}Qvo}4FiFOkuEokJ0umDw0y?(5DcJUWd+PUO)x zhbf7?q9JgLAOSyZZ6C8U198rT90vj0E-epK$rpLBMHpi3-I`WOm(rg~99>LAHKJM~ znp+fhCiCmu?;1)`+ZWNa!mepflNYC}U@zt+C^1}T77`6tYF(h@aLnq-mFpTE`_d9x zUXRJm=Vjj64CsD?P%g0P=w06Lz;8?rR3M(+K>+vYsg#WX;?PS<1RyY=_^_JY`L0S7 zAqi@zk37IVFu-$tll^a2&%a5Dz~5}@m!WdOVU%qg9@>5{Fh?YIfCNiW)iY#UOfx%% zlQ{!`aC>x!RA;1N@pI|NP{-4u5FjRDLDHsACOSJfe5ybtJU{Y z0r=5PIi+Csh$i%y=Elm4rQxHtWeVHg%-5kuymbo}A#t*P6XdJw&_mr-JtP;qvPht{J4ecnYP>=?{Qea%S?nT$#J-TBJ+*BCmMy8-C1~#CO+P%s#PHS%y?*uBJM<0ZlDi_@&}43^R-{yEs2PWAWT0a zgRxF;UjQWbr%!z4mKGP3OR*ZMvJacZ{6}&E8BQY(JH~C6e%>*fA7;lw2p_!b>BIc( z|G?$HFTWrvyk3ST368pF;gt`AoKH5Kb&6&HPM`gGw*oEEguNW-o0uaNx6O^OueAdu zlhA%9H9W+#N0DJ%PMbDeR;$LD*j(G4da!TwkYlr68pnfr$clyNqdUvJqq$PdxfF`3 z>V-`YF2ckv3OwBwZ+#}#I+PzG$jT_|belcD)Hf+IzrL#lf(}EE?GG9PyNdGzP8IyA z7X+$|qFD%M-Uk3WY%Pq+3$U(%j(_`hoE+afF;ekiiu_Qo&B2jC_JJQm9H;w9g8cs} zSG1EQ!%34$bo!LA@AV7|He83sEke(GW!p z4ya0T9k4NlF>1jSHgM~plqzqyx5zDb3qxR1sg*#zq&d0rVLJBg_|b07)?_58w$PkM z0J(qL2pR?##GF_PVT4hU2n{y%ke1>!pT5`Ww;3@3vqC4A$NZK{qpaqdYSP@^MZvtS zevlV9B>j+~qv}FKQ8Cr8uzZyL+>k3?4>C;Szk?)au>M=&0q9k1vA?CfZwoy%0j2o! z+WPCiOI-pT(^>`KR4%gI)G9;U)in**8bV`6%ee1e!(OBb;+rZnJ+!~aG19rbL?VvY zd%PPZUKc!PiSmEyLp=$pJtE9Q!$<_NJ?$znj#1g?ITz&iDoEnV+~T9-Xf4ulELX&- zvo;S!5HRxr0h1+1Oo=o$O%&1W+j8lOu|-vgajcZEae0=j`t5*)H({Z10W&-r=WZZD zkCW&Q;7m;T^c$oNNCs_#b9JQ2T@zHm6lG@oZUHam(DeaGeunt7eII=iU+83?%Zy=> z6a1<2JNHk`QWvGHubpwt!C%u< zoQHw`mqSzS+#=$Odb+V`&7A)A*g`mP2ls9zhOs2ED0P%79e}wCINNC1lESeg8*h4j z{DzGZbDr5u+qyp5J*9KT_=qdf;nlN*JM39;A=j&_Sg)m>;#cxGbr$+6U^p3jz{GAG z`5ABlW=@(Sn+Za3Z)z((KJ76Jc$HJ1v;+w~*dcqHp4_Wn77$%G@@A($tndQu*i64X zzqn?A*wIcqC!J1V+=kXg5mSW({Vc<>85@vF6BCu6%vf$@F3;_c4ty<|GpNAG?M&x8 z2Jb8%cP<}kbbtKkkbu8!Y&(h|eVANscLcA($%Zgp+{GZ+9;gsg}e51gjnsI$?|!wFY*+CCBJgT3U7B^CA)B|d^f~8 zEhIdGv2y!qW@3TGWb#T?K6ivV=HYU0NMZc?s4XQ-e3~z$jkE4X7bbGCjGeTt_uB_Kzd?PuY z;@cn$66@HwH@Y2#o)3}un?0hIgY(^47?(0*@_doh#q!y>0H zTn!kLxD9={!H98HnR&lj{XK8A(cE|TB}jVrRp_5FDoKyo<*e6@Hk2)Zn{I@VTvN~6 za2NI&07Ijm3{>P-EcEx{Pz0U^7;G9SmK@~Co_ppTjakTMSk*&Q{3fGwm|;W7oPyiS!ES!*Sm3?W^}3g zKj`9iRQ*AX$M$YTt)+joM#}tN&dB?`W&Yljg~FUTW(xR4#g~h&hb8c(}8 zbPDJ$JC$ps-Z+d1__|}E`P9Fq-8^HWIh29j90al4b&h zwbE$jYz7i^vyWdu{o;NYIUPu<2hQY|)mEfQO4wN&heg*K|1LJ3nY$aHDH0Iz#tf`I z`bjCFM8nrW5Lydb0htk4A!>5az-X%yII@uENYwUCV|J2Q;R3$_g$_0Usgp+6!jX7# z(c`SX?x7z6oL({dqZ;aCuqxSA&_Wk2>mIt z_LGQZm3S0F5=vVgY%i(`TEyXmijh0Th+HL$+`XS`NEu@84ycoxS#2})_BRFjsVV66 zF1g|8TT+EUA*!fy8Fh^p^YX(?f|eg&#XovcD+>k9&E>6cC&qbAwSpTdXMkQ|KtL35XN_R+4?Ba!qqtUQ_8qWwijwdXlq>A7dq3z|9UXP?$Z4 z&XKU4N8jhQdFErT@z?G)J#BQb54*jHJ!kzBd1cN+$$U()L5H*!(pCaGIVZ zOpUxlk`pS2>r2Ce5=dzJB!Fu4-e=#=;31g#)uu-^L9aia`Y zfW;EH>leu7<~uxYtF-m12y5drD}-PzYdmoHk>JKgiD_CE_&D+GtRN0PGds)xR`f{= z!*3wbimYY_3)2vM0`gS{5Yon7fY%zH9c^X0Y4&$#NstJg@%E2;v9(1=^NTmlO={`R z-=0%t4kVJS1wy}B_j>;9(4RUd=B>YMAUNmBI-ov7?iVLe2qwt zyu?PfBz`LAD!tl&8I*($2ip|R-AuYz#&Mv0mmNARP&HQ-kFJuug54ebMyzS?g;*{B z`^QH20pLzeKwNEpTM&Kpmdt{?2B4xvCR8bru_GO%d@nnS@%5vg3=^P~qBHynR1uRT z2L)h3T_y(#WNUu7Ytegbb<5B~UVGl{FEjl1DBWqmaZWNBqZ0U2?}|bv!X#z>EBG~` z+x8?_d&`Q1i~CUrkpS=(O`lu}NcBGoDN8513E#1jHqLXRxI}cTjw$4^Z1q9%i(92Cg}M~m-_-ZarVzJl#pf~JmA5j7CQyhtx$ObHK;YhB3KDO8AdtB{?#UdFP$92_cM)rp_hjX#Nk z#j~l|N=~(Z(aKbS+W4BaM#RrItIM%ABlrp&ypzy@z=b|yfvm_H@++9`ReeoJddJ=0 z)bUbYK>Mc%_-Owu1poPBB;+Z~@@_N`Cdf3rgRRzg9h-|xUVzBVJ^^*!h3;S)`GSJc zq7|^4oI=@|<^fqQYRywVK&`K8`|=ECd9ZkvE)2|H6$U1OcagT!b$}J9N&8Ia;w+UDaX*;o&3&~72a zkbJaXmyaKP(2h(-^6&F-^;)AJ5`V)cpmPHObLTL*sHH6ATK3o%rpg|_)t4_rUC~YkiCnLmPB9`@>r}(j-_^|;Sp8>9uy4gRMeV(U#)Mo|A zN|+>idp}s)Wi-~q(g|k!*VPn8x^kuQg*I&YFqD2cN=k}9wiTGj!KwZK|MZ<82Q(jI zAM8>DeT0$puw!`sCL`>kh#3nh?pq&#l|c;M&<90^`&|BgAi#LybVafV5F4z3Y zx7=(@rkV)L@)s0fsLB?vTjRphra6JG!1yD@{&Y7078{Lm07^m({lj(^RCVjJlJ5O_ zA1fciq<{0H`)hQ0&hLCpLsfMhXPqlGBKITwuRr+Gx4v-FJKujcEXzr(wi!S*>{OSL zQ{$rjeUE0wXa&UkJS{=5#{%?SKbiyaF|&mmEVj;3jXAk6F6L<#uY|#}mr%q>53vqY zFsLzeM8$l0g&$hMg!VOC%E3v(%-yOuSMxIv;*zlYhY%R&{f#Qxv5sJu=VY})$twL* zRdx)?iSJHC_(`Vtj!}61TsPJ^`>5nG&Z^N`40fp*;Wf6;kWy@l40zSdV%URjbJ(!k z$VF>y%@|#SDsA#2eHHPXpdU(wtkkRBH>q#r1khAx-TzX9{wa-t6vjvRaV^XUjz$25 zKNrx?dn*fQkD~Cf7llF~y`JH`@#Jwuh-%bDrXAClr_NrycMhH*Taj(CT*|Y1uDk`mMbA zRoO*WbJ4=Tt z7vaVhqd$`4hmZ5oKyQHCB!CVFwM;ytQ};SWv7os@XY%}Ly#jV_MlK>q6!Zp-I*<2C zOD5PD8Svz93PA#gyl6Wd3)sTnUSbUryJito<#sL9O`1n9o3=eLFMXB;#0LCeUzm&u4hR zWOs)2_5Fu&tj<= z`6w))5O&`e&8SG+vM>Ah=BwS{wdM~R%Ww0uGYBEdG5(c#tq~$xDI(`dT$bPJ z9zaCBnmW@$cLM;Jg;cW~UNUliv;5-8Ng}0F<7Ev>mDfs0`ljV6e*5WSUqKtA>j9}L zdxK$5LXdLSan@P?hezpB*c967x{>uZCtPvRRcqFC$cUQ=;vG3K0}AEtPz zR*t2aoSw1DS{{b;4`+n{60LpGbC7-@jErkHp~ktoe`M=T3IG$3bE8j#Ox7 z09u;q8DGroL*(@l*p1Z-?)~~b3xHAV$u}6n)Ngh~K7q>^mh^F1?|MF(|5s#c!HI(I zt8np^y$Lw~wyS4%J9k{C22a;-Ixm#3-@1_5?Kji7 zJ@!!z2oV93whq|;P{Q~L0(&&-;|yeKSF8M25~zmqsn-u~+)nHVjKcg2i(uF`>$cT^ zL(&e{wuH>6ch;(hf>rtD0w311iib#CPP=Nuf>m)r+SJh9SRT%oj4 zpIMqE;mW5B+=fT${WcTXv1G5XwY370EuDXPvy?xg*l*bYuCBzgd1Y zUBVW&4|uzhN3tvB&5;KrvkFWJKa*`X9tsz?sxR^-vK6qX*J!YQLeo0-RHd|eVBl^x4%D-7^=ns zD-eOArQYUxgws=sZ_S`Ew;o*vSnusmyH+|052 z20Xs39p=*A9&D!Q+0Xkgsa_NXxndvot(u)_h@ z_HC({h^pulKc1R>cq{Fy`^!$)FiJiUH^mL?Me$|(g$bX>f)HPQ$oSP~k74tI~ zf+NmR%I`4`?7_bz7k!EpK7$<{FDKiNe{yj)?v<@KC8+*!zm6H+2w@fd$@93p|B=v$hVqt4QpMY%rqnrUHJuCKf)zNQW=5Oa@ zi5d?E^baYqmCCMV>Zq&TbRNZ~oi4paG`T$r^ww8ikq_pl_pqGpV&)4e{6{#wm-ItoEb@B0AZe4%5=lf2Pwa@|$wX2AyCbHd2>|1X3BVg}6Eu2U(dIQ`0#P6-w{DeYn#BL3 zy#AxG+*TtGpGKpez>K#?5!b5z(F@=Q;g6Mhb4VxQj_pw8wdNt6nm?Ani=qM2!shk- zBPp#$^Vg!XUo(BqKIr(^j%D)6{aH@W)BHs*r;@Y~?prWOSBVKH5FbquL2aT6efE|Ml6|OkQ`u;7Pxi`O z+KAx?(Hp09Jo?cS!BDjuaruan2~6##!8yEy5psXwEM$7-(}iFq(5ywySAh^w_#v7; z{apqEpQ@rXHoS{bY@JNvLRmY+Zc3oVUs=yOT5CIYY`vF0C}xu>PL6+SDO_ZF`5>Iz z$5eMkkWj^cF$QC4r=PSf5nG6^cIM>GixJ~nXtsV$E9NeQZC%e7DTr(f*euYARzN+@ zGX{Melh6vA>RI=$L49X2MEbBJ1*p=D5zR=8YzkoM?V&@gF3t`PG{7+vgO2w6M@9JG z%c;6s6Rqqn=YXh2U3>@d5kgC^3ps!@Z&Dw9aF5$v9#r*b$%cRg?_^WfUgKWF-|)I* z{rIBS(Krn)l7`IE!Wk6%T=&d9x}_#1(0J_^t`Q2Pl%z$&xFd!?di1~vux(34{NQ^- z>uu1Z3LoMn@}dB=?3O$h#2bYl?w!||JU+hv?0Aw^cH-&!$8loWog772s@R(alEd#` z-tpz9mu*2*&5@md#s4&o1@T;lHySO;8_g*pVjgiW0{J|1tEan2cpsZ*+nfi&ON?u^1pi{2O zkzj5fZzEC4gaQothWKpmgA8NbJyb~^GKNvTmbH0(G&2=LU~A?=KZ&8P(!NZUJ#%&F z*((f^H(LiAU@gT;{M73)0O9YNXDBhgmeof~rESd(in0lD5lcYY{vPWZe@To&jUB(( zj`&jj*MdKDURR)XWzv_s6h7ML)e=ez4yd0jg)(U5Aacv?E<^sU4MAxN)#2#Tc5~Oy zr^xh1PP0GO?dFvf>?zR80X^nqPb~p~LSO+O)fDcnM2{?wtNbv~z7>^)!RCGeZ~fxc zf_H%R zgEh7>>UrmX;n#uyUYhv&qT=ymP^KL=Db|d0{QkH+vOdGJ_Z;u>=y}TqMGljw2%NU_ z8qzfIq*c(<6VhVOn7S+}Rg9Y|Kf=4&B=UBJ&fZ`{H1LdqEpqw{S>ux`q|>eDeiNcb zS+PkvXxQ==6(qq&JbNzp_zk+ja=#xjax6B|>d7;9uJXx3D}(mgEV#@i8HPmNMpG)A z)VV1hHwNOq0Mttaf7c~WfOo{of(+=h{Gz!1FM?B<)UzzAM_q~@GuHRtt>sT*@U5{I0NTISj7-}x*$HoWV7f=f~32#)w@`{u1IPVVjzGcL%n*^Sx2|it;5DLSb zk3QRNGqa<%`q@nz3|TO)T*p^leI03jWOMb%?y=5epuH_hEiZ*jyM3ThNJf%)SM6;_^V_~nTtp4 z!Iu}njeFy*qfYX#0@)I>ih;B<$@}J~@>PfB#T|5ZKk|7%U>PhQ{#45U0;&)bPfXVdVmQ5#0}bk(&ZxBbrG2r;=(Bq8=}`DhyiRJTSe17q`DBDN2HT zKxgJmgd?uz7okf}Va{$f@{RbIlXm;}a}O>()(l!SR6g)LSvaqj?z`_^;im0zDpKj9 z_6;oS3F7fe17%XKk#F9|k3}Dc?-uJhJmmHg$_jr$HG1(DmCbEBIrZRXv1Xr1F@Xcebt4j}&Zd{2z;5;ZdeYd=PTN%BGxGSDE$UTf=%N9tl#tm3-~i3)_m z(Q&9P_aj|YPl^SRxTva>OwT1ZWc`cHkx=XMQO2Irs^_Zh`#Tb5_DS(`;v$#6$Z5Mr z#69e>VCS;KRWR%6`%Ogkh1Z)k!ft4xrp7qQ#ObB&<2Z4Q5(TIpbrH9K^OveNBoY|4 zkSNrYJE!%l!8qC95+%@z6`P1QbyTJW3gKaFZ}-1EkH0-IKB~))fIs880_n+h-N}M` z&=b`uMRhwH8hbZ~cjj;IJ>3_LNg-a8!W1JGF(688zyG)Jx4s~0EBbLrD z!)XqO9!2v(h#M{88V$RgE4Dv-+Icf2VBV;yL7qLHWWVTd#e=`27tvd@Mp18NZON|=KZJ48x`l_|jmxO!a@;-n z^g{*)2HAmNu+WOt#6Um&^pE<`k#V%_((WEy;n4WV{XJhYhr{eq#v4U0HwAOlGs*wM z#sClEtET1FTz4axgAk1^!;4SnD5RZk)%8nAvfD|q^he(A4Z6*f7GqczM5`5#(?5yW z=E7CVvrjDmqo4-z;5{5QGNT8Xe&?%3kGyoIGC0jqSaMp0wEuJ{{&8x8?s9^v&K*FwNipm-jrSh5C-Bau+QbS3C}#fc zfP9*2QN(L+bI|k9N0yybytB6;e%=%^&3g{4qkVOoqx zUok@?b>{qgjs!4prkpBL`>p+6j@d@ezoH&Czvh`;!)O)h) z>yO`9J3YMnwr`fmzd&e z$O1h3^`w%=AbMs0aBs_bG@}7=-0Wu>weYC!=~bS-$w8U|{)Vq@VZ6ywhcgc_hw0ZR z)ssT{KbEE&?-snQ;j2(ve3>>=(}9^;?IG6M{Qev;vIh}khUg{!#}M`Rw^&}oVEq13 zcctiyi57+xN76YqCAYD$!H>r*NMC8Tyi}^WJA{pH4sH(EhR$q!V*E+BbqCSp!*a}~ z^z{*gvMTO2$9Wd})JH2e(Hjq;ls2L+*48uYLmJLcuV%(m#xsg{@q}JU_Ud`fhRcI0 z&Ec#{ymOB-Y$tys#!pDevxS%${omfFH-pbgMO&yvKpyc;yR)V;xxX;kFLEiXkBLVQ zyobgwyWSi;>FTLiI+8C!xfHi<(@z$IIXGGgjIcsu%?FY~^~@`n$!J@6G_5nG#7!U< zxk8~=F7K8<(cu#I2eCqqM@~U&sX49A7@b%XX!TW3DyZJPZspposP)Q<%8nnM(SeO_Y#RX!J;+1ZUYF7)oy z%9^0`^|}v7GMEE&>~hVKumfjL8ym`&b@|!xnUU3)wf%gGtK}ys_H9Ay^Ws*hweP-Y zzn#>(vO$eBx+AifM-;EAXd7`7E;e?bIHhuUz**N)s>*?WRzK%UJYe1}&=EdtcR75| ztfw(Gw$&%(4Pvdntu(PP<*2K@_toKHO~cpb0o!U~+xs-AfP9y%8M{i(KDm(YxI?$L=%vOrtANVCVj?m!-cH z7?xuM6Qa8{^QrMqNaX#bC0EDn5xsoxN$63?^vbn^l&rWTN*y}y`ByPV{CIt}Gv_5D z=bL#&J`GBSDHASi&?}A5U#n6KpIlX)v7wilY`YugE7E51t1*Q3rv7&{+X`b_fYBOy zYcvN|hf?}c{)Je(T)D^f{koyFOZMCUTb8rNR}QL#cMiiv?;dCzF)qu}j{Gye(W%3z zvZ`y29uyqqWZL`hjWcb_;CCe?#WV7Uk0+v>!+l4Bx7EG;-{r19SQ|3HsnRcsxl<7& zA9Pa&#d%FFSEkR$=-_6#lY?z$TH{2SxlgN1s+=DoAOx*n<<gpzJiqz+N!9m5(NZPriteAz*V_V*1paN} z_AiTLiQz3jJ~~VR4HF7W%s*Bi%Gc*=r6dz~zhj~gy5;>>$Eig{f?iQc9v{*XDMj~g z#spdL6rJ;7LzCWHfY1^W2&uo9 zx%bX*<{RgJ^Zl2Hhv&(g_nfoO+Iz3H_N@mGR25Qvbx`ZyPjjb9@Rh4Np?WFdk6%F4 z!+dDQd_;^J?*dH5K0~@BHN>LTtXL)_%cR`CI#?3WG-o^}DZA7+o%9}RCsN>#@U3O$NVyeRCW7(8o zbPSu_^YtwZWjV-h(m~k+Kp-wmxcaTGDHGyM=Wju(mtFmMKwAjiyOK7&lJJjq0$^c( zOpjT=62-32owR#~MN1-zKTxt6GySD_M$-sQp{LLqvjqE4t&zgvvVPD?wXCiADQaoR}N zE)0TGp2~^MgxaRGn^LqPDBs-smW5Y42~E3;qv2J(hja6kJeUg_5CJ=3n)$wA5h!6pm1GnGfP9Xa%Mc6_Pq|{cD@h~38I1{ zVy3^k0Lf6=VLrlj)GWm|5%1*g=$QRW24bZ1e}4f0u34<#`3G><$rUyPSjsfZHHsS2 zd{p&;$ae|4{YvDI)a@FW06Cj><)eq6bv~9QA0G_vO)~)Jq_M6^Gp3U{$sRjFly+5r z`QDuNkNm8?EF(inf`Pg?!^m$QALl)UQSULw1?#NPR-rN4EXMJY5~ z%bCs?O=df_=Jwalv~Lmsf#ASLeupz#kNm&Fs4t^B<}5mOrq{$d@f7mePRn1J|3OlI zyGC(k&TZPL!Y6dJ3rnw-Z6m?br9ey{4N<^rM9dn1uL%ig_D5^|S{+6ABCSI7Meyqb zC*<&kST*XQwO@-*-hYMOt34ekv)Ka!?kED6r3@dbbpR$Ue%R&E+BGjjK@ddc6V&#r z4RCIj-}RS|*0z|aR(!rNrmgefpFO^rj(J<0LN|NEkX?C}v2`;CL|t0zirt)p{aTVk zM?bj9DO95>Z5eGpSy4qOr?G#fAGO2^r>0sQ{(95$;uZCau0!5OPndl}%N0K6i+~oi z3c?m|iT-$thvzDm)`DGv<4;Cd>eVWbOt2=3(&(PUicW*KX-9wC5&z)z8jJ%{Pmx#V zzeB%M+b;+KMrTOCF#8?P`E^BB%X;rvt2PQ3n^BSyuMp}V*WkKM-Dq}k&0_6gxZPQ{ z@{$yTY25_hGs%CEA6;N@&QhQ+Nlq@1F4(A9efRn8=;}2m2TspmFFV0aeFM{ldgy*C z&(aF^kFe>#^MDwxfDj@4l_CMwZelF3x<62hj;xm44(Q?J;101a5R#v0~@J5QBrquPrOu-w|q zM^V>N>=TszH_ZRZQ4FX~`~oNjgHFagLfI9@1Bs@Xj`_n68&-TkftdJ2~`>b-m1kFF?RMjK}}vwLMp^+-NlnRM=E)Es}W2 zEz*N2yH@W}!cK6=V7Ot|YuqY0bHCat{ImSmsNB`MrrCbazM9Eb{{IRI0d4VbJlw}D zqjG>1WyexLzJ=^vBkg`GFlklWE>3b{NC}gKMXh7QQo0I1k+V`sS0)AFlYn z{n%f*Tgs#~JNtggCn@8?hXOo*z%|hDh?CCqIH69@hd9tuqaGctX3Qx(N5{;Cjtd3o zQZ$~lt7oTWKH7|oWaIV~Z`P;>YhLw!UpJEsxw8JKHKFc6{IIAjYWqpAPbaFqW^--^ zF?-C>kY1Fr<@{Iqk5KRF{2=NEY=ksIf)WOyq_Cb9C?Cs;#Tu%{-2iVqG;1jB3HY=r z`PA?qZO;5?fqoQ+)uIDVyxp7oz(fqiBozX6-9kW>bagyG`W9&r*c|S^-B&F;A7~ZJ z*xgt5Z+I?qROsDNTv4NFTVn&=d`Y!@O2veOgQ@c=6qIs4+g2g%pJcRhQ}JdflqDl) z2~$;yavev@3DaR?IBD;_AyLf z*7Ar-?-29Dtv=CU;shdfr#pW9Fy>r+G8w9;!X(SL|IL`{*&iHJ++TLLBGnWW)5T(S!V-fm7CWORIDaSj% zCX>DdU7I3>yiq7c(jT^NX^qz@si#~D+x7#2r@ zeXdY<;`G2!4HR_yOVinM)cO#xJr)ju#I^j%MrEGYa}vZi8qxeJIc-|ou3Eh6h=D|9 zT-eJLy&z!gEdd^v@0}efO~ESR9!JnD}fk zX-Q<-%l+0f&F`(LE?Lch_^20DkxU#~`J85oVujBn`Pz?#qoY~TGBVu9{BC&9!Z_|5 z@r`ay9(Xj$6nSH%V627_Wt-&I{(*w3CN~$(vKhWLQ}=SD8$q=dWusz(K7iX-+ns(& zmC^Z_)1`FY;$zeD5`Y}4JLum&*AqaU?U-wb zwR0&eqz&?&a6)Nwkzha}h|cRf`f_6Fz&a2{yQwhr(ZQ)mw{a_w1F@sldSF*E>Pdiw z7MFCA)503_n_sVgD1X@*MCEXU@1% zfAl>Z2nWRD=7%IkZq#_!ADThr`RhYgpK?hoITI&UILr}po3npb7?oAn1voYs9k}`c z@nfUq1UJakY;ED*`X86Tg`yg#+_Uyo3B|{rYb+%tol<~*#W_t!pSti8>xI_lp*oH z(zz|p;Gjoqr?#hR{Jmb-E0JO^4mUej(7C`9HxcCIsWF@^KlhV(XWn;QHl;Gy;B*}S z1yLgkILC$y?k=_zBkUS$xL0%IE1yTIqy?WY-z=pu^~e#9Mu!)tM;8EkJ?-kG9$nPB zYhG~4CkJzsedN#>lsZ88>ME_ZZWTxeXDnfqr(HafDENVH8Nc8}%WYyd7hoqQjj+b! z<9uI4rGhM4xg$db;vqp+iMpjE64thN`apE8sFNDg+m%!b^>y;2PZ9LOHotV|Ra7Ko z8!9=YEE5?Yl&tKrW(%-B42?o~Jbw?H2zAiPCPL3E7Zw|ye4F``$kidf8UiyjMY<0; zRVz%!yrGNu$1lXAWOu5f*2-37R%m6;GFz^^^=+Pok4Na_g0o$Z#&GZMQy%ZSxdC0h zANy~=L@<3h-0EI8Va%Ri)Na2pfY&lbavUo0P-Z9EKmd9!)7fCq zXxDXNN106~p`|uYFIs9sTWGHpidxIb@D05EDLf*Ab4~JDzRGe{5tBN`blOy^rS08) zL>W1q1|o)FUjD+{PuXw4l|1+MFW_#m0jPHm-aag|jO=}?e)=$rn>YtK$z$0Tn6m4H z3~}zNut^G^9E%>kus}I}0bE*Z@b0)1hhoFWx<)xmGcIFwW?iv*%MP&$=f|*{!Z8TH zu+Fg?TmU4guz2fb*x6=^?N#T$<+S?fu( z-K0){3OEeRL&SPM?9GFZRqNZe#W7TFc7fG5GXekOYK!Vn@Wc&+POQ*J2Z1I_?u__MN3wgftqh?ge6(+hm z2TG6JaO_jMItCxJq;_cXd9tFGieTPL4rULw9PQ5<+=r{PLtqC-zdz?$7~;@iGgY>U zLn?ixdNr=|>1w3z8bBmy#%jJ71#}{dB>|6a&uAE&92>#6Sc|AHBldBzDIFdtPQA=~ z72?pRpO!wiZAW@sARY4Rd^N6x4PaX_mF61|fVr}fHs}^M@l8101=sj5f*w#M=WqqF*&E_6~dS(wjKuu=G zCQ!hbY9sp+TT2;Rdxo1LlWYIyy0BjkPTdIHGm)k>K6B~Ek5GKd#R~-iZ*=7*Z9$?toeA_Fj|=g z+}0gXwTnUw)p-m&w$*>(ZW){ki*I>bue)H~_3GSTQ>}bYLE2!SG;zBZDO6etP-9<6ThK~wDNgk;})vKE`0Ajn4DGJr| zZQsO89X@*M_n~zV!`Q1b>t;Yg8|&oC+f5R_FFn z0EfN>9PA?C;BQ>MS}zn;o8#Q`ZMlZA{Ma-Ynj1T}yB5xTfstWcz;pwF+8D{sf%f@F zKZ0sof5_7H`2ZzR zuwpMU>?3X-y*>4*Pz$|kitWfc7{d+a(~^P#Q~vy={ErM^4||jP=0C7AUqH3|mahPv zFuWK9vbW}p);HO`!3V{oUP5FyFMRC^R$$}ugC@9B?-+5ZMDU94;u@3q{+@>kT9te)oD*%<|3awd$tzlBnK3wFo-npv zy6mvQ`_cJ{4=|;p`|-vsoKC*i4A=m6=G@CRx_LM6{*R#{<4Eh4_4yKYW`3Qon*{fd z%COq>3UbTTa&t%;27O)VjB!rTb6%*7+O!mzWnwZo4mty8XZ$KrcD6 zn%bA4Lae<7Mid#@Fg7>piY#torH^w!zW!Im)~4f8Mh6Wv7?2MH2&Mu%d;zhq6 zcIm+drQfwQ#`0RZ4z3C4nhv??Zk#QpAO7`c>yfkbz*!4!)rs9EiT*``X!wJg^Al5& zYX)jF@5q5!dCUGIN1cOwwjg9P;4IDeo*U%zaV_UQ!W2S01IxVpF^g>SYz8nCJ_}BK z^6f){M(9k-hGZ=>0;Ob^wdPO2aLQHo?j7}_lwy2!H|Pz;zWD80)w1xBye%lKG8CTLT> zzGcHc4$jEwo7&V_mSBy*igwvZZ~00MA<1=`Ut4d_7X0yH9(YtuJ|si*Z;#wTD2Q1R zNjSW)|JK^Y!ZUw4YTI{T*hwpIz{wy^)C4PvySa;aclb}&L;3Bma5Sz?rgFYtQ*-U` zF{hEzZ5FQVeal{yN7otzEx`N1ivIGq0>ygjx-dq5ixavSpt{Fynqfokwd+eq9SvJd zm$@IuW;dlAhPigj6M>f4eFf`Joljy)^bJ3U1J(&PqA_)=xbGG+NZvYNpl=t@Ar@yZ z^5d&=9z;J_F_lGG3<|q;?d7yD;vt8tpzweop6fqDY?1*XeNoY@g`ubn`BBk>nzHqL z6=oY1eY4zVGniUNwd>IHk1sEdem_VObawIiA!*i`J_gW}&KS1)&&vC*Z5lkT*qkMY zhbSE)tuUQ^rbNo-iJP;&5gOip`r`|CvMO>A#NPL{w3gbloGCopb~6&{?_6Gne1E*u z63ByNZIe3N7@YAoQ-0`I5tlw3pKzs;nm=7W`kiE6#i!`?@8VO=(~yv zm{0JbylM1tlW^$EJqKdN|_2rs?I z8JI(7uvC;qX7tTUFArqdsI9hLPdc6v+tK|n40f>m)>3}fY;HSTnw%IUecS_o~jQs(*ta2Sy2QRqGkr!d{$E7?vmzpxa z!>*xQang`ba@T1hI7WC)5Gz`|#D8P49_B{|>haqC^bZ^@#ZPbK4LLm{cNlJCyQ)!0 zLxD>_>m?3pjV~6ppY^LgR{97?4g=0617Nlc$r|1({W%#JB#_$oP&53imX;6nSK?Be z^>4sA1^w9HuoJIJfXo0q*F@crB{AQ&lD;V5>nF`H)-6%*HF?!PGmchWtOat*+qLb> zT~gREPNRI1+)UOk`1)I+jTnHWp6OSDJT`h+7<0_|>9+`YbwvVa(N^Y)vBS^eFE{^O zx9OGIw{PN8NncX6oBX~~K_yS9 zi1eSJ*?jYzG@r`fVGK}H!B7^GT$`I_0PC^&oLDKqa+v(&kj9DOfhun|z-K*j^5r?2 ze%%IVWQ;m`+x_k#i$v->`JnX0chxO`nfvn6?F&%O0O37W4M7}AUjDq+el~)ByKw?g zRBEt3m1E}ps~_-Ien8HQl;c&wEjm*zaC#RxX@iZm+VscVkhnMC;jZjp(`c%h~94V3U~*zgNe zOT$p#iI$)%dg}c>*||CiU@9T#!_N+Z;qI_I8eM)%;d!VBn^_!|lG<1NmhrQ+-^5<* zJC*6znm#8pL1rj_$Wo6X7S}pWYbB`nh2#i$Zdn>7^$zC6GNv||kIL%%sK9bzi!Fwn zY6@OedFdYV7%pf8lEsNBA}0y444Em+gOAEp&JGfRN|C-z0f#*EocDs6LT&M$4~mZc zH-M(l8|e(Bi5Z@bJTR~(eA23xF2J_K0|+#of3&Llhx{bw#*f(b*kh$`b(hK z>>PA84XWeZK>5_2#NGuWQFPFX;5EuMPLCyS@blcAIn0`1r06W}h9p6s)ALAsy$f3l zb+DAvTHwcD)I(j7D%Z@}*li&AL$UpY+qPGP+Nc*>eXoTPNcuP5?(Nrnp0cFe4jF1nOWYKUIkDf~-VPMTl-VE*-u<){*BCKyjPt zIGAdeTr{Sb0l1Rzhw}4DY5APb;3X|u^wbGYSwZbDF1#H(TiYdBjxz*>Zk^h53Ahp~ zx?vD<@umvv$dr}dV|q~rx0UZoI$~rDbALMh7jafmJ1Z+|W3VWf)0_82{J~FP&9)s3 zX_LERCY2r^w|zQ95k)Z^R-Z@b#rV2kPIhZ< z0(*`MMnGNc+AlvA^ZK&A+LezpJuzC9s7hPC%c-GeZD)k9!8Q~EHh?h{E0Wu~_ZAGK z(vSYyFD@M4zFfh`eH;ohl7`p7{Uf_wW@;k)^n^w?`OzbYjgb-N$FztA8pxk=Q`2qu zXQvM@{zb-sR1{>-Zf&^la`n`X)8$+8G2rS4zg(0WgdVnIBts@oM6UHk+uyveTC@d<4GR~#Vy$qh1 z(2MPRlm}g-*s6C7>hc1{LcW)d7TDnW8-*V=n5_f!*Qbr@-li|TT?gvuYde5Z4X2`w zddrRM55!k~fUg%C@Uqq{dLJp-Ix^$|hpP;z0>Bc1Nqv(DL*fL3tP|PUvGSII%NX{2 zyo)_&(BJ)G@wC#ZMqN5UB>Hzl?>`{Md`04k-Jy0>4RrlV67*oU#zUF(KHqpvo999F6MP8x!NV(2bejoh!RtUS6#Gznqz9n$!gVR_aiL`_H!VL12r`dPV0?J& z>ZVAauE9z0qAUyX!RcB)0z>d1YH>q~?Rn|QK&*>&znF9zL@Ekl*;qZr7L8HMe&FWv zJA;qee41!_!7^oG!7s#G|JdaBsf0xfT1;8NfR!G~HO3aL%!4s1V-*=ZnEbBGQC?!- z!YaBzU<)6#Eyv$(arnw48Y_r5ZvFIt%apHvBinL__{uzWz&I8Z#aK2m94mD9@mJ{} zlhZ&WcWX~B4UYDus!1PwS36Ay6S2}7^FM_06Ucg88$gjc{@;ESG%olxa*dT zZ&RqRH^75++@LxJ+spb?ZJ^kBu0X;2eHwA-1+VgIvg?ZfMwH0os?1`zNtq+Yzd3%C z_R=hINlwEZHjp4m?LGwgLL3T)6@b@z>(W+whH?o$-W={iY>Lgf5 zS9Prv>M)tlQy7D_8G<6x&NM3*Ok3nYS(%!q%NnNiQsjC;&xgYbx8xlxKQ_gQHUt1w zN`Mh`YW8Wi_l`65Qv~zHndC50S&$gfREoRxH-@AAWZlOmpqX>e^JWlOUF&~P9L28K z&yK89QlJE&uxms|=QVH~{mbD)n2Kq>3Mf*n9fN;`pra$CCV74|z#A3SH(>u0O}_qO zW?&B3md!A2G52ab2KrPc@T`rou{K6Qw(9h2^5R<34>vd^1^o`lQ4vI-&+@ry?uE%% zF(pc=x}a($kL}6YQ>H&6l0th`WqW)3jeVrHW=+1O8eYE6&IWqvN5Bs~%~zm1g8P{J z4eu!;{GOKfX6M)SBE||T+3Gbf|CzQQFt!6RKAt`4j~dvWyoJ4L0B3as%wC?Xl?^Cv zt#h)J@W3#eh74Wxje#U+WIYwgT{@#HeW;&YCw0J4B3U=~R03R>m9jqq}A3)+%-IQ$oJ%YDU1Nk8UK>GM>e?X)`Ht&Z#ZQBH)UZ1?R6i#SCr zy-RLNlX!_1CVy`n6tx#@L6V2qiwGgd-{_VEy}!^cT^lK}PMrJ5!kg|fE}s=&YLRx` zO&+&R(v-9Of<`M)$vE`qAc&CFsUUBk&cCuP9SNX!5muC+tkCk+-!emI@9y~PHHUN5 zSaWle233?^pzwodg`b_>BvnI~dl|R4|G-yo>Q}2tY*p600Zcl`7%X${DLYKkO7BH3 z9D&I=bJF2wgYKL-XqlwZ;N1?4gdy*B_I23E_@E&d=ohLr1nS)Ps((S`*o5}kDUZ1n z$;!MMt9m|4(s~a`$!u$--uhrYnUyG$v0-;dG#6VqH5Z-@=kubx(Qfz=PO10e>e~xn zWqym#yKe=uS@B}j0&<*!F|)h1mammGNaYj}=XjraUHGje)Ymn7*~?t*!%o&0E_CSs zWnVtsxo)?kN+BM5G%hkR1)8!knu?mpHKIV7UqUO_TD4HO>wX!c!7#t9OjtwpkF4bf zU8UfF*-Q3(Q4ntz& z?5eo9;^Tng4VR%GUttR{zDD|#$XXZJkI5o+TbA!aAJA9-fE_&ec5IChu0Y952x+Zn z)-HaP!LP3PhYHCoCowO7Paa~@Y8XV+!CcPn&+J<~F5baQn6k|}`%;(o)A^MGUegoY z6=`|d(8ezkHA%VgYmL^?4|?PAwyx|=0_-|~G@bmXHfC=za`HrKjX*W;_bzFPnN>wX z?jLkN9oCtiACwoK)so9A?rWqX0Y$nWpHADGf^x_vZD0a??6mu>+BNmU#Dr^b2QX_k z7-4#mgtS$n2Qfj?_8Ms61Ik_kn-j?nqdZy*X`IBG(GAmb>Jo+n4sXYQX=~6ST}pn$ zo0O3~fV~-4)DWD)hnyrI&^;$rG63BBzE8|=1tzRZP7S)HL&Zsfbby(MYJUNMZHJ_% zX=47}wFW9_T3&!YfHoX1>`Jnl=oo_{$={xO#T0K4?i~xMSM;oG65ZJRD-^r5gNrBI zti=AQC!>OPwniR*(Vw9hYfYWsdEJd#wnW>bk+dnyaT%v{8zj1&^#)^@A0UL-|AFWJ zMf=GRm#v`2mvz`BuLRHWRBPQnGN;-fYLjN5a%?x7)^DqS%w0Ncu|E1JAkYZ3hydxL z=(i+U1L7}5!{St@$;B*VLvY2RS(@y^gsoaOsvYtXTKzG$qGvK&*lIo1Uq_TtE~LI* zq+Q#S{)>WfBOF_;B8#!yE^nRYa^p2PDzLG!pMFs^s43v0EH^NUlX@N;1hJY$42GVT z>0Q6BPMy~j-8_dYMKPONVv^=zXj!T^!i|~P6x<0UGWD3X3{b%$ z!OaBcoDeQ8mQ(wnVT}JTiP&#j(_CBNdwhb&LzwT+sya`0c0AA%z8}u>xZ}wc!dH*k zVEGuUPNXcl;gq;st9NSb2{9J8dYG`EY5`9~>Ioe`x}l_Pf<9`Y)SpfT18lnPb=ZC; zB}0ti#Hm>9Wo>LdYXz@mc_+HwrveP%}?5}p-RWDx#4*rAJw_nx6g zn;OT|7p;2is7l%M7&kDKMZ62pV~ZNAmH>XatR-$A5yKGd&g1B)tL6iR!6*^N{8d!g zXWH8#s7C+`^}(XH_CeW;U|9Dh3#i=Ul(SWg_QiLBT3-yyDokBv*S*Qnr)t7_t}o~R zn>5Q?xj9yAld9G8hY0w;ew@{Mn)fB1ww|Lwj|M1{d$FAUv&xe@I>%ajpmb5!Qhn6< zS~g_NlACQ@O5|%w+C5E!h${NCt0`ypc#{bY`v;IYoU0QgUC`KEKgUB$320`lc+8}$I z>JC<=oAY3C=Bk3%&uV->17=%$=gTlpa(T=F4Jr}Vk$mNKff^Om`HixH9(}%d=@E;N z27T6D3=ocO3P6ZMS6#P#Id6;Miw8SgF(mapvK=7QH3wZ*-GTjBYJ@#37vg}AiP2z% zOr@AHqLZb42}8Z?%#s`ygy6RfP3L@{yJlA3@SAq;C%g8q?GfP2%5v`zlt~J)IZYSr zm7o6uA+=Z|VOPWi20_urwb>nv2~RhA4xR1@p4}V=G)pmS(c7lXjV5CwgHBv){@R_E z)3@sfw6GDVkeZ2%H8`OGVc7{f;GI>?dB#0p8N|dH(FbG(i9L>tB0$L2 z*w=2XO}irH+cVXwYTS*1METFsl%mg>EX=0*d=Y)~6Q;x8yij1}%_VjOW3;qYymc-d z<2QeJr8}S?LKqBCe(nP-crje0O72Qbc8UfkfM0VB$`e-MJ%bmoUg}O-DXzO5ycbA@v?DY%7z6LuA^NT20n-W=YZD|owrRAk6Hm=Lmh#xGLkk>2Vl+p&|o>~KM?*W9$k>`!ID zQ{MNBN;8_8PJf4mD=#fH2tiAt^cK?%P^cPS8MUDzUgFpoHmcvB?tDZ9#dR>K_wRzw z?~n6`f3Sg>>#}CgCE0ft%3{#$=T&w$Vyx_pCW&!+wDl{jy&G*0Vy(JIYJX4;)OC~5 z(!oA7L#zR}h=#oJtK)YkbzEkryAQ%~df7voE_Px5_7<&EXc_NCg6U#9lrh~II*eP3 z=0z<`*Zc_|#{c;`LEJg4&~I zeJIB@qY1{Z|EI8BE@(Hpt)!X)_B$sQ7dv-9H8LdPrRK^HdbAHJMh^?U47<>CP1NS# zHjk%e4(bQrDFGt#QBhEdw?HI9^7gkzWm0R1?Q{y<$3|a@4+TlB$?9$|jP~*MA9ZIGddUgAGr+tZt~Njwa;<=REmTEVH!o;z`elUiJb!tl&F(o* zh>_T<^9_x07x#fkkW(&AwlaWhMIpE@=!DI;V6coY^PKoEAlOiCc#g>f)7x&-D@cV9>y=?yQ;i<8zLpgiq=Wef`W$9F}v{#`hm+bsyX&XdzaBT0($GuYP z-r|B+<&I8=TspIV0IVL=ge2dbpO)b+poL(?#C>t&jX^h6HnT~#P{MHuK-9HToywUl zXtRFE-}iso(X*GgZ9fPr0fY)286Q!x7&f>9Gv{m51-dG7VRb4|2NHR2Z~Bp|2hMiB zQzLgj6%GS9KjU?)Yf;!zu=)ZiI>0Y!{W2vOBkZW-ADm)92j^D!Jj)!QVAtChp%_LG z$`eqkcJ2vw_`faMiF}|1d|vUTUs`ub>mAf()zTs=Sf!F)7^XPh!D($4!4)dYc_i+>8mukGN6-)2$)B3Fv95;}FyV9>vUhV zrwg_p3S~ccv0ZTfX0J$(PACTi<`pv-l@}=W=wbh^{>!n&as|o4T9F5rMFml>@sXO_ zBf(m{z9cu{S(3|l%6ARQ5g71_UncyyN8AiFwk$s}HldV*?Y;4#q!9Zaek#-R4<+u99jqSI^eJEE7^!+3v!Ns)A(b0@V}-6rvdd)TH2eK z#SwbsD@W~lXPWzc7T%GfJr|Hs!V{XYH~9!`C>W*&cZjYEjyb9R4HHztlgC=5l#0d@{2~JnCZH+QSFfkpwxE z2Dud6ySXj%Jw#z>ub_}d&s$|Qb;GtAn62hba78We=5y=<+W7ZG$5#JZ4Ey_61%RRc z;xp%Cr1RjYX9iZU*{AepQ#t*S6q%feU5AT0Ijdc1iZbIt^XOnc6n$SYPt-4u?}D$= zlF1e~59pflzSRoR-ACkk18~?UkC5EH_DH-`5N93>rNU=|r6a2>;hZsA# zmmeQGeKRb>FDCdcdE&g*qpNAmtL8WXrJA@315=U$^5@Ia1UL&bM)__dBAn^`d8QTX7?0#1eYD^)8KLM;yo!| z%hHT+-^~!>oAdHnk$71Kus_kg_pMiq8^Kn^4#VA0k=M``_5W?q!rV)#= z+#$TD>4$decfKkn^}LdJ&cvmOXb8PU_?)*fI5wFom)V`G-JpnJxnPZv z$nKU3|GkIV_bMO;9IciOm3h7DX5b^xqAaAl-_k9b(qh)zwB1a-Re5PP%n3C+4;!Ok zwSc!4a<%_?C)#T=Kf4>F;HKr+!Rm(k%Ns1gE71{QQEgPvRtLWS`gn6z-cZGpztReT zO2XmbZO&GpA=SHzj|Yv!#`04fz5Fzff%1s@i73rP2bG8~g1knz*B?})HrHp<8c@e8 z_tTusT<)LAV}WK+W~`U4ROsjf>5BEIu4DI+7ykbi4Vd3;>RETr`l0&=sZ2Pg#2u4v zjY((pxL_*Gx;BN*O+vwZrQ*CQ?yE1&fZQNRaQxg2!NWN`y3d7~n!^#DUa}I0kL@{p z?)slPhgU$qcMdb0$wc=-c8D%VQBla5K?tJ_(&u678#*J?vyPM|{}6pqHtr#YUpJg` zsm^vMWt6hvHZ+XKICP-l_w+Cu#{F7*Cc6G>?PMF!QWCiZ@9*zzJ|Ng) zf@fPo$i~=rGF7t~WH(#Y&*69UqyH3eJ%A*5$Hx(URAJ?Ub4MG6h%$m37FzD zf*U9!bT^4XXekqN@+U{(fm&t|81;$Sj;OtjoXNyUL){kXWH@JY z)wR2>rL-V){y)`>#gLr_kVgoOiv@r~9-SjJj9uKKvJ4bjTf6v+AH?S?U19;%^NlN~ zMs;>n9^1}_%#0B}T}}HMEXOX!%wU9xI%-=qm*7Mr&p589}-7Dw<`g?@r%jqtS1w_n6`*UltipN&6?}152?4p{wK;$Vn{SUTF1mtp z0t5DL1sc+gLIFJ0nSnCC+1|2b*IvLa!;T>cJC-yp*C?FUZ85rzFCSu49wsWcdS4VG zF?B`U{2=f|g9>f?1Dg2kSOOBEJkXyIo_;21;&qb)i#8bQdLT@A{dxzZaxZ%hVI#nDMlIk!Gdud;_hB~QkUJ&=n>o~; z%H}Ksa+W>)NO{yB!qJyy19NwxlJmI_?4AC)S*Rnq9O0nPuUXyka*EaLhpLv^R4gCi zvP|F%e7Xz6UkAFQcR^!Bivv2-v*O%$(0=OI;5`4Xop9brQQp>or{B#MCSc*TBboJ) zE&Sa`VL(zBmDFQ*qOAng{yI*jf|Ia}cj%8p9U%VrZ$Fba0B-CG^B%oK>Yi2+tG003 z3?(9O)c9`B%-ktseGKa@Bj6wEV!Q^6ol*8~s3%|Cnk6yhSl8}CD;55C@Swgf7wJFj zxqy-QOKXR`<}_0e8S}835-6aOGFDj)jpy*3CrvaJ+HCZ|&}q(QKTPA5meIj+(#+UN zKv6>`;Vq>&Y?a+I&5y?S1meZU49+8Xvz+M!!>h*G$V7l0Y|u{VBNLBC4rWs z-ika*F+h!;tUvM=XxmPSgJFs5?Uj;L{INkdJdq8wFkWc?eZrM5zMF~VP%zC`g&u5? zl)fzWt}Ct7Ixw--YjaPU2QlwZ9NIMqt&IaS_Fx)UW2Uh^>REWHw4j`3*Sk}&D6zZ9 zP3z$Ar+*((#QK zOaIGl%Mhed;T&obE#$E_$lqOKCv|I{+%Vveu-Elzq)?tDzG7m+DHpM#5wu|+CRS6i z$oa&nT=eauT2G;CpoB6gb!usNszdNeJ(?I_%JG7Y*m-TMf}>3VhLd;MU4PpT4Z zK_2M5hXV{}9Ts39g^%r0vZ8nU0xmwMll<)|8;y-(4VwaekOk1WP@0c;{mUb}+>9oF zZI7!GJ+*dWPt{RiURm8KnGykAy~%-=yo0AA01dMv3O0E_X#yV0C4+6-aVDeWs5Ac3)s(JXg3y~xCB@MqDz?e6qHVNbc06at$A{r! z)DMM=3HNNv^{2oQo9_!3(xKJ*3Wt?r%b?Zd_jw7o*MYI4#1AEVckery??YW6bE8(d zx$0qolhog%UVz$*Fa7;SHQrf3ed6%xxI>gPoq@9G+|!KlId@S(-^xn%i%LSxuv5wk z6vX1Ujq4@be3;*HtvyIfFDus)9mFSyO5%C5iiNoOkYu?9UVaIQnJ#RsQ(par3Ui(m z0D)MUm;!@JVIM-B#VIA0+siGz6s{x+N!v0?QWkdeA>UA9&7rOJMHxNEdZ8q7@ig&7 z0hcwKTmR)k8w$F_DDiX(f+5L~GaD$*hDo1d8(MVWhC$_gfzziq(<*4A_wybiwW|rx zvyCj)F6$+jqGOqu+ZkqqQcb~PvhRQ~A(n5)>X%{T0MF0In-mHk zuKdmorG0gs3Rhb1ElNC|;JYH%<9cZFS>25fv>ZpWjk{D+tE-n z8$SiHNH%54B3uruwLnN(d;zOvW7VvNFp$I5tu%Y$5o0WBS<8T4Bm^z!KFS>zKEq|+ zI`PW`)e`aqwb4yBd)MWCY}|RQb}wQu9()+C&U1WbvdIF6recIZtN{W$GuD(|M#yY2 zL(MK)%)`PHloVc4VNUj^l++hw@o~aZh}fc_&RVwo#i)A)2m{W4IJA(MRlokd?UH54MaeoY z&kpGwA2k|Gk`G?mf3nDzaW~KGff;Kd$N2&Sn4h35v%P1_;WG%zoG7%ce%zUH1xIuId{u-2y5~;nxGW5NH@_E8*DUAJplznGdliAj`1qDY15f!9GM2VwR z5s;RsG!-EVN-qLxP)Y>0RlB8bU${B>8rnb7nm6 z@qMrB`#0qpC&{y)z1F(dU1mpyQv(g2Aj9($_QHuBt58UVyrk;&IBx8NO)moq?33pv zwuH@8+3@OF-$~id>a>%aWr1OERq&xV>+Sf??t#W{v6KSlthS@rm)pDh!RjPR!MKcQw zaqN<(kz z4u4n`cEkQySZ>SaZ=!IRv|m%bWD2`26O zh}f+W8rRLf^7e@wxvD<~lDKy7`*?HY%HKx}sLT9LY_3L7=M}ARajYB4zZer;=W&o` z96AN-tAjKnPMx8Dy@2c98a_%s7AJT6-OT)8=YIO}5k3+>> zO$L;i?G2KJSrwvreCUSg$++B{AIK!1TdHGWioQA!koLBmQO?LHQ;Lo)9X~qpVC#M2 zWv6d%tbWzaU55%xum7Q8sA$WqAI`?TY-Cc>3mNz{+ocJKh?0$+j-;`8`>bhX!{j5$ zZHH|x{@@9B7ozd2kp=y0!-R;UVW!qUpfPb9A}5tPQVl;d>7!6+d3H3cx`0XX^zK98 zK}>Jw?$;}C#dU4a9aN6xQ0YpltTRa3y4!{??S#rwR?@SRB2}^W-bQ(*$VM~F)~n3s z#CkgEcdYS$T|@GSEmhUvYMd=6T2~`PshM>>&6H~64p;S+>GYQQ>Aq6NxCK*vAh&Ai z8_I8BKx!L$V+Tn^i`vBH%2#D<{C^Pn36+NCTd|hDSU}Y_EhARIl&z5ZxyQ_5Aj$xNV!)acXzsbZfAi=TnDyVGv1zlUfd`+4r;pPqM1DT#~HoFJyc*j8nK z6qXX-*vgt~z10`Kp-Jy9Br5&dIi0@_f>@girr~dg&af+mtwETst~fgQ6usoMZg;hm z9FSw_?()fkK>GPN#y{2yfvholM=ZZSZW7%kUgn`oDnwY{*KMXlt*r6DWfDLg3_YZl zEM*YB?t-)5PJI%|pA7TK98iC6(h{{kRu`PueM|DeTX`MFCQ*IkSKF|>uXaL{;zZTf zIvdZ9?L1}gafRj`jIi#WY2@B=RXW!tv6`3EI^?0d99^feWTeRK(>EARoyGT8dzgd? zj|2WJXde8=cU&W;gAbJqLsC^6vojX=4@z$7;Pff?1tMuLTr(lkWz$ z;#iakFYJ_81E{ijLp$DMXJWDGg$wvYn`R3E8{T^JRrtQ1e@`^$UrSWT0CTBQx5q0eo*lz_12D zhM9vQtOUuj5SPVPUo&<>)W#rarf05b`Jvr;(Q^(iVvIuR&ktyP%0cG5t-)8GLYqgE z4P`_5Bm=9i&)L=QY&&Bxlo<_tVOFGE33KoQA8D|l{69>tSQdb-fOE}n{3~b+1w=G-%xz{c9NpR)a@Q|}dU-NuaHrU$SeX7lpT()XSRo9pT z!O*FOiNhZj%6kS{X|_pIu%S=Z)QqVY54d7Z`9~vQK89y&4xJesu98tI3ycdieQ3be zzPGq+RwrP&_HDu2nb{7FfVMw1S6;-8KTR6*)OvSy#7vvU$t1Vd*~8OCqrlk|>fLTu zJeV9?nlI#c7^nTh@f_0WO_Hjb(k%W17-x?3|Q4E4OBqbd6jMFc(BaI<2_Fr{&dG1xO+e3X;(t`{JEs~pa$?5a=Ygu0qL zAcW2SI?;3QS3!MMbX7gqN!2f3(VyrdU_H+@f)w=LVclz?g+(vIdIq{^2=)qMe)mHXRe7RLVs>3XK|R(;;doMA?F=h_k! zx%^SrwSSnAuD6RSw5pD4>6I>|lA%a@BfNLFef_n?ko>vy?AGD9MJLa1Sl-NN>DL#Y zLqp7WK5$NZd1q?LKqEflbTC!)56Gxl2H)_mfsznp0=jRj3yiDV7|*N;dKg4h-Q<|{f($&=<9+D7cvQi1o1RsrFpR!ei<9m$r@Dp5 zd>DkO#%|?3{d&Ja8)2J*$Gr1X`b-b-Mq2HIk9mpa`fa=H;Wm72mdEeTY#B2|$#oM0 zj6SBHsb%vS_vry}dVp{5F#S>Q2h)v59fjr0d6S%b;KIFcU(~gu-DuaF7J;OtN4o|_ zOp%G6-Mh#Fyuq=&go$y>+mHPWxlsBWo>Q1u6*Y6TDeKW1|i2;}@d+ zpeQx8oE~~`p*yDMg3;##@Z8Nd)^tWsInjBjBtH*t6J?65jQD3ORAI(*=)o)E8xIgH z)4z`@XY8A}M#8;ih7ggmOnz2gzg5FQZ7s7W?Rsh2SGt1{o6$L<$6&^J#*|}3(kuG2 z$dO&uluquqx|8HeI{$w3*JuXWDMjsJh8-!|577;o*!VG$gtK4M-Wu%i+ersV!|75> zAiBAmc%0j=BXGCKPxm7tHV9RE*m<-|LxIthTYJKH>1d#tO`cXZL!>bz4_vVK#r&)I z;H70}p(^W_L*gA+lPFe7rnUNNxOQF{Z6O2L1oR1vrgEps9&Aj{Wx{Q5hRl*efAGTC1vH_rR?R*CO@ zIs|NH9>+i4-p6UVu@k1)_k$ole13M2)3Dxil{vfs#VtcWe`!@;EHydZrPQZL=ak!g zRgT`5CiT%`sk)CMtop^fYY5~`k3_%m3-+D`f5iN&xgpb@QCZQu$pVC#S!D3*qWa^t zmWTGBf0fmJ4%}qBc;@x6PlZd#H5zNS+)bTDHyiaN z8OO%NjR!-Dy}wopE8P~T6Vk^_&QK8dH@?=3##oVWCTM&LNnZ_>!+JJz4`lSdvV8qp zOj~}}X5#C*-C~1-pIinC40#A!Mqg-^z6uU9<;nuqD$L1~Bi=R3+bYG>?|;hWdE;Gl zJHQIGRxy@vj`3VJ%FydcU(^GxTHWg%DF*W{3OqW?$QR?_XW2m##QqTMhc7b!Xt_@j zAn2@j*)qE{-6ApwTm~+5HbmkJp ztHy7blGNgTImmQ@nx_Vt1y33Gt<|Mg6enu~MzGlAh*u2F<*#}$_rTVLIC@(U>{QOK zLfP)Xw%x>E*Z~#v9ZS@R864uLHxuSBZ>CW^j}idW9Oydis2FthI7F>UF*c!IK;}Ft z&k#;A@OsU9?1?s3kx@-M3zMdjZ$>Ch8bPTCQ?d4{INA%0KP?P?`;W%wPw#k*#I=-i*;+D6oj z@S?SuVZTKe$fL`_C)0v>NFdP6m`6z2RneZcqIo z-%J-}a)(O!TJtgonAbmKUN=u-m1RI1B;wbGE56JHde%uxSMsz6ITMLZGW^04WNC>( zo)vl>oapqT=LeOzm(chIxddWl2?-clU)Ixn8`AzWOfdIYmT4@)R9=X=f0alqV$&np z(<^%Oom-Bvct@{gRS8oiADsIX%JX3)gBjSY@?^xyUdq)hGrZjI7cke~TJJi;>F5SN z+alB0=@c;AvYKxcb!*SbF>%rk4p)H4oYzE1yKMxd(QXH3by3q}h3WR~ z6Zce?7>mYX3g1V^t9wm*pofZ$@yf#QGTZH|x{-u>y-TztQF8~4D)$EmcXn~X@@@AT z?RsEV))(fnXF~vi-+j{XQth}sZ$=kt`~rH>&S@#1&nM;*6WzY|?k|V%?`O1k`sjn{ zke*J7^P{soPTiTeZC~E|b^-bVbcnl;VoA+?>bhriWZm8Mw<)FR7~IL@=J19*xx5n( z98R+tD}ZQU&cE&ksvc*$TaBZKl#P_$Dj${%J4O7FHm3W;@_d_rq31|%-czfpYT7XC z)TK)VKKpJ)zPmY`TrJSyGQi2bwjNvK<%BC|?{Q7G2zG1SkDICnGV{QDL3jL^9w)jl zS7H)Krk82vNeVS59Hu_bnC3K1OqTp}+|AI)yeZDERvEeS(nJ}t%x~P|(4?knT&{x1>l{|r5ruhT(6fMND5Zjg z;xY?i*zx%+2%E7%SE!AJ6@L_@U0&paCl#-p3#|l zu^jFp*=?RTa$1ITwC(S=Bh zb;>SIK~J2po$-wK+~CYr`_o1%3@&njhQ@7zR&C_+<%ScD08HyXNV!-F;xvmDlTblD z9WEopG7R;2ZlrH#@?^YyAbS<)aT#eZ>vnC? z#r$U*^Y6V&Zz0cIFTb_nXA~#w&GBd0TZH7R-3*1voFgG{)wodBR=fo=0HP$n0u4c6 zy3&!=4jwa#_-6OJlc3;WKk+k94Rr^(p*y-gw>*n~vn(O7 zldC&t{5-CcG2SGeH`VzXR=y){YQ_{2*e8jUP-YnvPSjb!j-Zz-rH~s!4%Sr6w&8vI zaG*c?_ZR#3(&hS-O@%TOFFb<9A~cr2exr1Recr#HFl+&&%Ei=fOZ`XY0|hR#zL<8` zp{F%Ra=z}^V2-dc>wh#9mQKi6L+7E`bJNS5!6)lXZle$1ZepQ>XYp!q$Vb|JVy9Y( z%jwDL_5i(L4Y!V-h9Qv!aS8WNPdVtLwLgwEg|h*cc5+_L%}S?dGxOABOScmaoUwMR z*`KJS#-4#QQ$38@TW8B!H9C2qNVNCOS|L97(|JY+l->H|LH1=`KHYfpf!W zX<bJ~>54^T@4Umhx7+7K)|OJSw2^!3-K|(-xDP2N zzjG$5Rme6h22Jna{Ra6FPf;FX>ApQ1V=x-4WnAPXd9a7IvK6NE(arq`!agrHEUyJ^ z4L`HxIQA2rAAjFAz16%|QMsI=GW^Hul!~>C|9Y%vw!G&AFpH4|RP2}Lc8~13$=An+ z7uX_0)wwrrPQP zcaP>u*ChXa_a2f~Lreg#2N`R_C;AS$^gLkC1dqg-pE?w$e*crtS@pc4A@V#g8o=-tbC)f+?o9uA0l9Q`VE?1 z1xdR0X$64yr5m70zt)E;XZG*0>00Gr%sWu1%nzs!qg{~@dIfhwG=5_|0x@(pa|Pss z6AsayNZdd7smrOy+RGaGq||drdTEt|S>W>t2~C4Zj{Fr}Cb;d?(tog~L;ig`4zch= zZ>f@Sj5+ShL3dtW%}=a%PX=C00S~w;@%G*Asp1HlW*T;^dqmC4n`*ld9Cz%=`|D36 zu77bP@Ayi;DWjsG&^k#raOS#F-R;J&ssK^gM-0ouk5{N5?Rd*GZzc$ldS;meQbRHFyDR12)TI0Qq#K8)OK~sbL zaJQ-hzEK7L)Qa1v!#$rRloLgLr{7G}fxm6!pv4Dqv7BjZzWUqQ=hWOtOeO~!OPorn zL3@Z;vd?K0+SFi4sn`$u zA63qA7DtgjO%DC03z~Cwe4&lvPHUof{1_d08`i=iD?39+3Hfg?fU^B_{Z0fIxS&nw zOjfAU(e=Okjq6gIUHxAbIO+)L3K$i(d$-jJiv3Y5N^B2(SHtJBV{H1usJ@-Ocg}dV zif43?g4@B>j*;)t)K6rGOPI{;)}m~@=E+!QP0;Bu$`O=(o(gHalwKRTM!%7GKtH0h zx=@90%v^>$zUz(oclkc=Kc*f~Cyg|MnokqcE78hL!X}Zbr(=}*I}!L8A#v8ts<=`i zWCQGFsGL(%Ds276?oiwLc<`^Gf!OY}$fXcBYxvlBO=M9gs$?D(EmA%Q^)Zr!-MtWz zX|OO@oacYW_cs`q|NDy%P)n1OscxZodVdv%Yeq|XiiA;KDiRNB9{1onI7dy1cO}gw z4rp>Z*bOd@VGS)t*oHsw&=#@)ySX=hUhG7qEX3x1vzD!AV%;qjkj7`-}Ql!;R~yu%hx|=1>Xjt zQi-Y?0v#{sW|mg>60&CVIp(WihtztE=ZSrWDM3~ax7Mhbkk96b2LTI;&SrpK;Zn|A=clE@1GjkZ*s41R;19zJdE zdqhSY)kYhIMm_~6*f;Ul2^d_oE{_OBky36ZnMt!&W*K4Rs>5I3;uAcX;}aWZwdBNC z^GQHi{hd1+OI1XK9)&7>jj}j6re#=L-9}T|yZhsjTgK#@vN_QjSb9#(s6pY@moOH+ zZFFmAwNzj}I?cRFE+=jPCZ?B7Z9OZtRKFKAl_f(213Pc z)~hlmYH#yABcXgL;rDGURSX?k=fuXO6E1)Og z&1bBg55m61xbd?ur9xO&@h^rHJptyviopz^Kj41sw4G)wsu4mnP!naP#gXaRVnJJ?JVd>QHw-{ARJboNOJggLD@J3(Y-WS4w6#H01S zbKOgzP!c<9IdYssFldM$*_ix>VwYXux2d_VW~&vf5iimCM=FnKYPo;U0u%HdaWeP5 zqsylJBV_-saQ>KtO>CSigWUnt1p*8K9@+g&eQcpNM_rId86Q2uk~kgDN;4;+jtJez zOg#p6d+&~kJfWuzn=z{GLZGtwdADns%X^}66H+h$494k;x`@-FVK4BDHRd# zHo26(8tKi^G(-J!`M*2uQNKUu2(i%&6ykE@D(pOT z+8Z>oY6TWj$0t@^c*T0zc#d_N+6Hkg_xCVwudPsQG~cZ{x|T8)+!nFsee|JtJ^h?W zJu#0ag?Xn-{FlfjpJ%f_yN;WZ{U2(iCb(amI-teEeqNh=oU6Gu9z9SFSyOB@Fi9pJ zmxpw5;=6d^8%wnCT_f~bm6K(r1sm)w&NWZ=XFYHs48Du!P^5E$dBBDm;v|>F30YhB zItU-H9C6w3iVKRrc`Glx(B%&C&%sO;7=5C$ywG+^=y@J3PtG6nqGIxMD%YT%r~=h@ zcBZGpGos3+YiBN}p*WF%>ydCrk;vE?TgRl*7rU6-`C{qsA`fh{-r;iZ&rAi=b)_n0 zJ{c#oAt@MT`b_W?T)2}Eu0SdCI|LXP-P4rs0?FHJtcO$tf|-J`xf6cp z#g@T5BbCw;&G^)rK1QxPi6C}D^%8?%xfq!(NyN~uBlTPT-}ZSwIe9Db+@CE%RY7V^ zW3k+}?soOf!XET)5pF5fVDml=dOKnD1>+NaHDlzG7YS+GMD0d4Y3&X}cN$>&9%_Y;!P(9wPS< z;xiuQ09R14)!w)YozhJUl`Tn2z%pj2D-YKb{N+x&OSJ%Vw;0{lk7(HzeW%st>%v7btDG`IhWb1m-S$Y(A z;!YW-m-@Vah0K1tl+PM}?b;6jccCy4x4|U~ck-S9g-BGUEt77f_*6H`w(9-lLN=U0p>&++f>g_Y{H6N-jS=t* ze2;lq+7gHl6kSEImyIJ!58PH(2eso?DX*jQh~1Q`7WQLw-b9yXRqZTv^A2g7EsOow zd&Nsvf_7mlEF)BJJC0ltWsiU)`eGKIwjlCAS2b4Q?^X}I?`9vk)KDU?z6FID<4(#k z^{OD41|tHW;;sW_jO6JD7D2Rcq!cFbV&c>I`r8AoOgW$NuYbdVYY4N39x9~jL^JkWMUW%yqcYg=Cv}rx?>$%-s zI@?2#153Z*%-Lkwy9ZjT`wlM&E5*72Z=TV^O9SeWA{V*x9qe_A=cj`fKUPU%OBNR8 z25+tzNdNuhIRMKXc1za@XtHHU_Ty&lymR=qwP{=0pUnCda}PrcXNf5U8qPG3H8{7l zEj8zGAU3lQJBj?X@8FFiI(PTM|AXgSq-e}q__ zxX}rgr?~y{si79^Y6?SDt86it3H=gRf~1BiLY{6 znEVJ9Fx$Fii{2YUv$TK=-`{`-h79(f=ioY7bO=WQyf%V7ja0+}_ncRlG75gY2j3X*f@g zZ$TOkuH-Kld6hTy49h%C{_*QU?X}#oq!c_;h@y6sH@$}+#Iuq?Kx{UH3XeFD0za6A zrPbA`J7YF<+aX<<$c_8LMW?OzxEU&&?@WrTI(+Bt$O(%EQSOMZL8|s1hej2;1zNeQ zhnK5ksny@?`AyrWUig~1e}mrg>O#u(T2aaMFGtl!D1~k(UY$r>t4jL~0-ke<$9cH4 zSaTZC^iI;Y+H&{-qzr<%nw*M`H5g#E*7;`R@+LB?YG*ia=I$+mF7P4^%Imu41dZkI z3j{Tlx^larT!(%b{|bum5Kzkczj6~j8OOYYqQ3+W*9G?wJs$SWj) z&x9^LNWkP#zt**vp&TbI6OoQ42T$Cc6o#kl=Br$KJKkKb;I~{g<{=v?>ovwHFqI1?m6rhu%&486GeBE zmQ2o1IIZ`c8eJD_szKtPcoN-xkEo5EeWOS7NbC{)k_tsn;hyUe=Y1v^e7HM+X{Y}m z{m8nwe|>#@sZR#j_-;SScxIi>4n6=DeJfIDtevTP?U2gbCR>LO?Hs4)_@j$5$?~^g zh)3s}Qcq*uBigLnTWG2(Ib5OD_YU$>yecUg?$Y7nkd`B=|#M$p7gCVFvr6dYv>0Wml%AZq=b zI`U!?uZq)xvnG0ChD-_|Npi(4>|Ld#g|8@F_8?=8ZRuKKNuJo)A^dC3i9aS5Tp_je z$J_?nUxiN_l5mbU#CBgi1*K1h-vp)a=Olg-OqeuqEY*m+b;GJVKOjO`c&61@3&|37M-T97(gAI^)pZcqu$(8Hr186=G}5 z1?7Xv*B8Efx5L^d$Gl=JHzFJDUB+_WmEr%r3XPsImIQF^OkJ!hX^i`bMQzBNo8q%W zavq(?L<%6Yq}wj09=yN&4Y^w%<9?&OULg(Z9xa*sQj(7uMy`Ao3v&{p#=`@m!EUwY zhunX>4jd@mzXov~#Q4oi)X6+3Szq|vXi8ju5w#f$nDEEsyeoG$0Ai)Od&F=B&+F5a z63<1u2z|#4LCG55vp0@Y_po?-s2B_-n}#6e7p&5zH7Dr|Y{XgZ1zaXC-G)rRY*!dUfDYT(C3E!pwvGy8F1=l0o_ zIkz7|Q?z64>bAjRtP{uROd$41dU>;NV_I8RZ5G-ZSxPnKwPgk0RaW z@nC~DXjyK4r^k^zrP6S5dw5sSd)f7@*)ij(n~9>HnrNeFr40vqkFqIqV|!}z@U0BU zflqyWm<^w4uvJx7P{@5d*L!8>j=UQuekm~j`pXLY!#S9B8tuj1X2GqsSjlfwaQ50c z)|Gj{v^s{wWA3kU_%&CIn}Wx>p)CzgOT8k5>YviiU0RzYI)+4u?M2I%FlVW+3woH1 zL(NbBryMfJ1N!Y*%kE1nPAc1mX^LnXMeVeR4C?Dl&D zMUGlRW99iiZwV3yaABfh(NI+Y?0>z|g9=P!WWI+L_j--Ka<#-+cJO`x#9{%{9#qPJ zs9lr>xtT?-O2aedZ{fyMYexUQ~Ro{rh+P`r*KP^QgL_x`$`0-^3tX#{sO=jkEF%{#v5P5 z3salo?+JpoXt(0=XZi;cQVpNxP0mqY{ess1^NY*#0{=I$e=t5xack zH=+X+d=z7SCW~ehlzn_>Dc4Rqfqh7&(816co4nS@5maxBJ&y*@IcGIA_h)u{z` zk=NmWF6%gjsN&ETK4sMK=xu3>1E4iV1cz>a3=0fA>fsVKQ(TjV`%$WT0^?jj>3JoN z_P)bv-xd|QHh#N=nMI_gmDgQ;b}apTaFoVj$tU(}uZ57t^t{{MO9-_6tm^2fWt~8P z?Xncq0jo8x$M&9ca{@TcK#~J zE#zXKI1vu%84e$R%sBt=xjQ8EMUB)Pp{rC>^J+ay+Ya#dPWRJ z9K%^$WSte^_9*SA{8`(_95tsEA(dBG#2nRwQw`87kb`6TbF|5`$d6e*akE*FG9F^) zZcE6>TtL4@wNw%{A%rm}nNQAYZS}s)oQt9-_!ThH+l%hgZ$O%IBf5OjZ1bGONVaC8 zH~KVWbk8O2YZUcyH=C44_wK3{jw#x-yK}txv|CkYsxnspBWt{+e&g&T!f*7g6^DKdul|6B%RBt{Zg?7d(R;>$JdV%+15UGYcr)UMYllbQ{O%k$ z?ifGtZlZB*@0TxgfRB5&7_9DhemPuiI7q+Os<|5W{2u7#9wRA}%{S-!^XHo{|NGi% z=)kj9qTHp9A)EUYQNOuC0O3IA0YUu|d(Q#JbD`s5#}wX9eHCdCn%a5F@oaEoTwFg~ zI1y!^?BLS9xuAA9UkjxqS&cv``rP|5yf z>-M$qb28%S5M;RKXq`r_h5OCy>`0vZElui}o(7dXW@pvYT5L9E<1<qu1$#FD$fAoBfykl%jaU_2IHuoPM&3}^vK0n+9 zf1t$tqtsF7Sb*VHCO6@6mDyORXjn4e?UJnA!0aQo71L!+L2ikBxLxe($(_gQ`EmAR zL42O_-F@6KqD^*X)R1(_4@ArO&G5lbWmMxxA(Fy^7b_vx+;w&g(Ng^mM$W8xmN6{g z)MspsFH;!lA-!XYnnBIaL?1)!%{#EE@3LZ7%a3?(Wihusv#R@G)xZTz!$YW8p!M{c zBLJw_ok)0}?Wo{QW@5B@-wlPpaZI3S^vQ_^&a&HmZ6Y?-Ed)>cfUbNx@Qw(U zUipP*x}0dgO~Dw}-L$!LMWz#6us;nAzcF7Ay^Q?J)o_yIYS_72*!KUy!S$w!z{W2y z=}N|8m7Vg``ZDNjq&sT~)d~k|$<5UYzvFBkQ1o{j3cN>3PmSTA*a_|pe}3N8BMA)Z zf6^j007y@NcxQYvH34(Be%G(YAb&qe3}9jf)z_OazQ|F!@ZTeWjc|QZHc(gV@BD0c zfVp#5GJA)<#YWs>7duC}>aOUGKQHELH0gwKRg@emUUCqJboa`Sm6*6I)CrG`ziUQY z<5f3&XY24=9YVxXu(T3&5)wBT<*U&*izWrh_=syiKF#Eg%KiOymt()p*8Vn8{v>r< z@wUX}M*@b9I+uZTMZE#giE>|Cc`o(mJ2e8Wzili>d$jFM*Et#Rt_!|u_5Kamcce|9 z^N9Ft=T9&MK1t|8P6+s0|M_l#d^XWxJ!7w@DJ-Mf{#l+K@g(uNR8 z6@B0%&EZ}?XsWvP4OL>jCEfXyOm2O&Rtj&f8SE-=Xjg6+cNa3ei09MZcx7szoaf6_ zTM=qBbSk6A7+?G^>ZP%Y3yPWJdQPpN6tm6d#KS)xw!9Mi&F4J8??02#+ZZ9H-cYSg zM9Z_c4ukc<BZ0&_N&-0%gR?hg!d?-PvT&LHu zi5j!!aB~ixyoPdDdzfdhy1w!${AVG&%GI4|Zfpn^#qL1!^_)o?AaKNi9KJlKvZj?z zj%b45xP~Y_an*a@Yr{nvK|Gi>ho`{VY3~vAnngy^ z_o`pQ*gxZAW2x~ote8=zY3eQ28+#Rv1sl2J!VPsUtqBCl@p0GfZ4?%%aXi=q*?uNO z0@a@~zyNI~-EI4*!{(>LOcD}a-DH9<&FezKs6Iy_`5%Kyu!=)TstJ8Nv1Lg6?2)zj zneM`tMA7u}<2{vQKM{d{<4FG+^>a?|ICQeV#M7y-z{PTX_reuKy~_JFi!XpiWSPXA zL&icFZy?7BenYbjt?Z4~SU4jYeq0d1Ep3ID$Q@A#p9bRw5Wa2Non_hMI`d6mP6kIq zPCW<2r=vUf!lT0S?1wjX*)Iul&WknIo~k6D$(IwH5U*EyT-7q@;PY}oOY{-TWMotA zxKk7F_m{fv(0+Fh?57Gx`|X@o7}kIWH33LbzUKLNu1zU@*ho~$+(b%8VD2DWf42M_ zHSh4=h+i)^`G8Gqd>+FtZ(6bKmNwhJR`Sb{Zu3U9F?##SVc5{gh}Xv$0+W07A)%}Q zWvcm@-6dw{yGY^@RYq6pt>rc-3e-bo)Uu)>#(r3$M^ttENt|vE$+d_ zWJU1H4D9kk7FAWwuMsAQW`Wn`)${*GG67!qVpE~-_2AbB?jU@>Mfaoj06i8&mOYDO z5@-eC0laEy92u&!ZMav%pQ%meqjcbk%qe*d9FE`gMfbQx59qiCxcKzq%OXypDnum2L7l3f?)x%|CKYk}TF4RL@ec^ufF z+(P5x_bVhZhO{)>OhOApFB=fp=Ctx}?YB|lGnKPF+<~Bxs7$jw1aV?oi`3S}w_my_N zSPlV+!f310TyUHCkdb|yGxdBGqN6Z21}c_&ZB&DRRY^K)W-Vg9k{dEelzI{3w^&wK z_U1$0>7in9qxq$Z{@U$cFWmEedsoBTgKuQBF>z9j?MmdB`nQ8E>~YE+f_8N@Ao8vlLHue%BK0!VXU>*15aK@vB7Sroi2 zjL{xhKzKE#bRpLIzWG$XH>Ym+bmt{qV{NpuOF7DORQXHh7eQjqPiEJY$bip~*trkA zi_GEpog?GoK@;GJpLTzx#hD<9hTq#GvG;m#NI8H9n0$Zk!QouaXBgS8ycOJU;|B;y zD}WAC9@8bARtPX4&~j zjU(l96xCOtY-}81Xdma0plTo27}TP%zFkPhp*s)4=rirV^&!6myPS7<)fm6lX^6S= zz0qd6hZ-$Oji2a_R5n>mr9lN%a{(@hU7k=8qjV-dxoxuljMAz9?#wCPc6`wBqbta2n^A;QCXcCq8tDu%FG;I9qR2unDmi^d`I>zB_4N%7-)U#bw zoXu>36-?_NBligNNbKa}362$vrjk2e(S3|(M0#rOuS0Q(|1=Q(s~-dAjUz{~4O>*E z$*;a~xU=(F`W$fpDvY$2PAeMtd)E)1#PtgT91`TZQtj6WiH7(dPhd=*>c=ru;=stt})Q~SM%+xgJHIq_tH?;^cI1YY4-vhaH#cJO>Z zmha7GmIJtiQ(or?76k@5qfyG#?FJ|VXBmK?gu$T z;dKT6H1_AO1{d@CK$kN_74F~=0+dasel3ML?{-`=G@KlL3BbK;SJ=x>O`y(g3)ep- zPve5eBp@Xa#*(-RyQ7F!Sj=^qUqQ!NyHRS{E-#|}mh7ymhLh+kGYe$|(D3cWStO-3 zPwVY^Eaxzq3uuX;C~oAGWx>`Df-b`taf!>$&jtr{Q~wjmxgNFG3{b57J_ZNWx?Lh> zS2#VR->&N~IyycYD(7nJ!vQ`BKGb%>Mtz&*(d9y%pUrwhX@9IJ3b#I>PEh{PqdPwZ zzI2*T7zh5(>E#(W(HP!U;o=i8m*lrFBMkwRg+$_iHl(lP&rm(1Fc)wiS~V^3J&+nizr5#%;j^O=3h|A#B)3V&5CaX^O8v_K zg&+t*8e@S@-sGU^G%lfMqoW7d&y*vJ!&l*c2OHOl{}^@(jYnAg_f|rB^OjOtgy|O! zE8iK|U^oNk_q1dXK8zn$fv5y?Xb>k*z8&!mphI0}lujy@4-%CLi=#ZzU}@*x?N&-c zJ(3YR%z4IyqdCq8Z7p1}4~zIewA{?!M0&85H?DEW^VbGk+I&mLmNX3TY9(;IT64Ul z8IW3lg3$H$%o?+W?x-<$<+dHtKl?=QazsFG#1mplEw;H|C{DHvuCGn$Mekp+xqqtAxo?%6lqD%5rY*H#6-7!bRa zZaZ6?K*&bejIJlbi~De}6O%?jZ29qaLNj9hcXCT<>=urBMjyZm*DaD6O6PZKu0=9? zBVS|?h$U8DL!Ok2RE}V(l;gE!+GN!N{*meI7xTa9&(nwpBCjVu+My>KDj7SV370|l zV!Gm~b8NjHf&IAHe_Dzk-E8t%1^&hSKj31@(F*p|xRQ6cPV(7MjtT4JE7w>lt|7fs zCmb)neG!6Nks!a>Uzc@mjF3?4g=F@tLi4t-mp$y`*h}ExKHl5Ax?{;;nkQfZB--bS2aCie0goo$L<-0IqY=z-N}t&B z5vl^n1R@q2Cy)7`R|}^-tvJuM=Nn?@>-+hv8?RZ(eH+=?W?n;y_9^mRqe2tg>ux}Fmt4A{Ee_5(IW9njRA5Gq0+_X4zk>p+*+r! zd26XB#z>g=Fc}t;q|%Yd=o9oPqaLJmQq$uZ0QPd%p4*SJAWb>b_cUtM_MJwem`wtL z+YJh-08SMn((Tm;y0i_Of2&srO{lO75;O6h*rRgP1uV3~DA(LllYH+KPrh<$05N*X zPe(nHC>;O|#w)fViJ=LP6%9@mT6^gJbxLTwTR7Ye4&px2>^#!asoTvxQwB)q<61>$!|DTC z9>?T29pz?3PhX!_jC_y1CzswT46D9AJ}wcHn%x?wp}G$+mX;NMg2j2Zm^)F5KK1(z zcDZ!F#e~@Ab+%LF0YxVbm?Is6{>{;O@G|$Z!BY?@7mkc5NOJISmJ+eAa^`W!Zi$5{ ztlaKEm5AAn+IwbIN8{D#{I*(|vq+fRZDU1hdXy^KcQ%?^9{`Byvrs8&{RRBm_`904 z7iJqL@yrx)VkStGtA(?qOfH>TOdelN_#F~sbf}{FJkKN7&+`TD;Jt~>cj_r1go*S3 zK0lajod{(G`^~A1oY?UFt~lXTvJ!90LpNm{$lEfq}*6firq%315>B2BkP1%_ugt2c?mNG`NXN;}ImSw0gMq@JL`Apr{eRW^A zzQ5;se$Vq?e|Wt*=R7~l`+Xe8`#2<@={E4Ea=TASwZC4O!!Cx=T~EIqIgW=Wi7a=a zl_G{4#1SBY%k?Bco5$WrMC2eoRGSpCpV)>Vsm$h=+U3nnK{j=d3|^W#-N&lo&oCO;jWrV{Sf_=NEH@vJG9aq zy1AZYiBkbOp$8Y2@08zc=4?edfpz>#M3f>|6O$6DA)qdt{@Dmy>_Wg2Le8bNZ@K^W- zJmT(k1`>fz!REC&I$yj!An4_}Pi5UE$!lrn3xm!Ff@T8lh}tViXZvOSF{W~XbDlWJ z6oI;IF#s8M8R#k2$69WE#A)wBYyVQ3a_;2=f_+tjA_jT7IsW2ZX`K$N1*l^;`tVZM zn;Ccdv{+ucnCK6iSC8u5EZ*W~!5^BSZCCv)fFS6m<4-{lMDO!)ICuLvZA<0loI7pf z78ApdK7TEk^64(4jh&i##4PXlU|u)Q^SrC$qn?Q@zx`@+p+&bhaoorM=Q}>bs z^xH>s#7bGVPCgjOR8CC+DU*}))QcsIkNaEV04$+T`2{AC+CR$S<`9j-MlztTo;muXFDsfni&fa7G2%1Cl(g5Uj8)t zkR@xz8%FP+*w4&JQl(dW3^|N8YmKBF&E0@#wdYsu`nprzIcB}VSc7=6Cf}U!G-hIb z`t>wMNt(H(+{i)Zi?h5&CQRZ?0dr{Id97hW&0P$U)51UVwyb zONyV-nQ&1UNS};I&$$v;U8aG3PPpLUFMpc%zS0KQ^*p<_=u7YX$RzDUin!qDS(t_r z6ZCo7U2eFW{+ZjnCr;boQAA_#4w!Ss?3o&$E8lP_W&OM8{q7|H_RG}(D*^);CLzq` zWab2{rbh0-P3*GUnh~{YOfB8~B{#k!ks$TZ)vs@Oakq>b0 z3&1PR^m&~Bh+5-@`CyrWxu(b`9U z3AlkOzi#|xVhsodA968PTD#ScK3+K*UF=zX$4e?muuQb8Os_YTEk)AO5~OsZuVN5f zyIV(%6y!t&EV1RT0cY{Z1?71qQY?(ON*HQDRX4L?ijn#+B7s=0{7}kc7}^H^qJ};k z)&mOOF=C%oTuMJ;UI{O*iTE6CYrFMDZFHLxPm2G284-7FY+^^li9?9!;p6fWOwBWo z_QjQtwL}<*8L`Oi32J_1DB9A2(=vnG24k#15y^(p%AL`z(C~^%)I48u5*grvpVqev z!zs<`Pf^S9fc*OaXwUZ4+p8Wu=htyud}U<@N}P?Vra*{&gT!J{f%i?t+by6GsJ%NY zQVg1eWIP{y?oQBR!4C$pewOQpx6-X$FCKB+l07?#M7;^MdabQ1sjRp0wdX3lJ6Z&( zJ;UFZ^|UM3@{}isgBF9!erLBowx?=x_;O!)t}Al3$#g;mFy!w z{Zsd(!NPf$t^__!)LJMeLvM_~#=z;NAFd5D=j?S{?6(8=R5!8>UPEHuexdo^vL@7h zxI1qp=bL$NcC5alifYmu2rLI*%8z3boPj3VN<5+%xu&dNoV)Gi>juluP2dS7{vZrn_w;q^;6-~lBuXP%(tUX=9t4rjC-|b z$fZj4r!apDgtbjwqL<%o{duDL_a@#9)M7&d>mFVxuLHq@rCZ2vaPixtp+9GzB6*-) zJNZ>fRsAUs%4oNidYu!F;n<82_hV6^E`R{ZF-{}%CXizlVL)CdXrx2Z#@at%5Y){+ zYmbf*rb~fqg-gK~l`I%ga@%sL%=cmlgqDb#s zz?)4O?3$e5cXe8*t?O2$Ma`?fMKlZS#yeS70HJ#o~2cLu@- z$l!Z}_iW7AeGXr48G8)=JtYrTg~My4wRSmJWaD4-Big&I;F=}v8WX_&{>YLa4=E?i zJAQ58j=aZCwEn{zf}=}9BZCBtta)_dkbrJa^;XNmdl8H=yHr>>8X%1O6cKeyhCqWT z#j37d^^@|a7H!1HNN*twHn$J`6-8B9q!jihby9p|#^i9kYGzJ#Jyhmw( z1L0c5a|A6V_6^~_K-%!2f#(Q;aH%G!@@o1Q4nSVv(f^i`p-^cGnpf2G%-Ua*$p78d zf$5hlTXcj~{z~NHhQ}rgdt3FNg`Jfe*v@o?%`*$C@qL%8S`vWuZ;H7M+U;`gbzib& z3W`433p6d4@}{9c51&viqdDuGZ_6rrjPmM^LaX%jK22oiG>fy48*73mlOxmpL@-4j zFpS@5je>XKuf=%K*#=5;HxsEE^)81*K`0Nwo^L2xsW?-crU_mzh($ z4LtNe&)i$4cW<+jav9Ig9?$~Af{2g-a%_9JIa3o&nPxH;@*ZkhVwZ`^1sxBp`wc*A z8UB@^hFudylzyxfBBy^qh|%xLBaTLvOc8O4Vr|xshLgieNMY#tLnbybzDEvo`5Ylt zNPC)&0A7O`8lRHWVd*;pw_=Tv@HGx&dxSC&pscl!3jZObN$bCT;>v!{Xv6<6&w`Xm0-~XaTI5iv8dTXY++PlG#pr$ZFHHr zh___$;pj6F8smW@4WcMO7gz!JtM5G>TJ2-6UiVnx1IGKjVMKDrJ1i4-1ZtFd!sFO~ z)K`Dje@eJD>z)AL>hzsbdv6VZnLG}!D;w$1y6by@vqa^IIf7+*E&=#p?Nl&+4||Wa z&sf5|ZXS;)x<1p_Me+iJ*0Y=|X6cx{RYKo-UhSft@B_%CB@2!J>;`_;m>=}*EN}3q zo;ob$s!=qFaBJJ>*A+ti3!><^~?fpEK4zDB}n2SRdL*z9gq z{gvw7H(MRcc4W12Wl}qa&xf&dI{MERPF2uEx*a@OKw*Bd{FI*L>Ti^LEtg>g1Qqao zj3VO|c5It|i%Qhqppl-Scl*mb2cMkC@m^h}_s1IeWFv2=YB+445Q}>ha7CLOTEiZ1 z*sCx)sqgCkm={*VjK7@Q6Q;NFHW_;AZZ*oSR1M3P7R8aFKU7-%!Q&z>F>1`@lych; z>TSbi06Nl9lek@IWHE5z=%F_&=au7!2zl@S@Llunz)6Sk{c*1}H;J{#%sQteWDSZI zx4MKOXT_sH%9Mp;EWqrF<((Td{#*?UnZL{f zCuwUMQI+C@8pus}Ch=~xFje~cEwM*gs4apQ{{!v#^NQPsSo2t*1IWI&6y}f0WWS>l zcdhsint9>J-TA6^MyXZm`}plB>|PB51RULon-HO7)P_rClHzMqH!^uIZH*`n_X_h_ z*b9I*O6NnpXZ*uvhh?$TNQNT=s#g2|UxLLb+9@fNdME1`s zFaffb>$LWZYLj2f)qhheMt`hX_jC%vK9<2hx1sv3Wkx7PN=uMAd9*W1PwW=DOlndm z@=jdVR0We443`ACb)AqZ$)9p8XYW%z3qezHyp9qpW&KAS=N-E6oiesmm4azOTOi~9 zd}$7$O>d6PRFIz@lXMwR_PQ7{|3uAQn5`)|mxEVbo=fc6BK!$!zBf#G*HPq>>5a%%)MVtPI ztgSx}ufM>X@#AZN#e|(YiKFHsS10M@!29EWxDERMa2w2?x~`|hQ2v;=^3o-ISmX8C z2M&P=(ZZW=`s?}*H)+EN#r7os{4s|ZRZ_EI@=`U-k3pxz!nsL6c*C0Uzd`O`_es$M zN_v;byjJttkpezUUP;GQ7x#ZZ+>g&?cXHjPM{)AUE4ru`I(_s$@*6jO$b#G3{!5-E zLkRDxbLyx8eW~h7%7JBC)!2-U=k`o@`=FzTu#$%FOilwc3542)(`mxW1n0E2&JOY9 z(|3SAi)JBq4uYP)`urRfcp)ujF;nbkIE-TC>UM{Jy|X`8(GS2TbV=~(rO--6pz0%G zZP15O{SawrVOAFb@+iMbzTay%x!JIs8`MLRi5B_lL^>}u8ECA%U zWx$WA9M1c6JegyU=D!z4e?d|3;aBcDL40tBqPi}symb^GFkc+^ZMkcr|AV%$vR@CN zmx{36F0Gd1H*SPb@07C_&U>UFR^24Odz|}6W5*?#56heqe^s&6Wz!Wi$Q^(4Ars|4 z({at^b&$l6gLHd1-@!&c!+nrihG_~EOxP@5DSi2Fk*ERLQ}q_=BLD1_;;p9-jo}n4 z{M-j~`1jO~B~7SyQ2|YHda^A`h;{zo0NUSP(BE`eoX=<%u&+2|^klY*h%tQK*kzEiH zza&47&geeWu@)x=A(fG#wK4ADpS3)1pJ|TpmeUkE&PtKRYKT$NJ_0!J+sHe*Qd6M)wz4y5`nklCMyEQfVuSO*+2z zTuYnnZ~p&PR(k!5O>(xiFJ|8Le=rhE-ROA@dga?rmf<2#7_daDro%OF4A}UvFMXgV z)EKB7HwqcBxO0c6giES(xSQwc(*biAo@hl!3Z~ie`w{1$G-G>m0gV)|>btkl$iyq@ zl*xz)x9`Zvb47}GOt-y0dXfgFENsKL5B-C4qBXXDY|Kd^&0-r!y1whT#=(_kxU*80 zuI`Es=#v8UJ9)IZmb=IM9dpon-BS?gtd>o0(6mD3@Ow4Y)j}uMVTYiWXk%GlM{_HL->SWlOHPT{j z2Mt`FwU=*9_ToMivOM>=k^3pec$@punbL4umc1uFM(QHcHQthi`P32@@7!`U>j%8| z@2mWO{%x%hYm&BJ3hV7ldy794d|=8}Lw4g=Q@VlYEoQuQ{sa}4o-q(Hl6c%-aIe|; z((aeyqfdR)#T|L1Y||Ly6d4|p_`eKB(8#%H?~(XZtXo@rstW7fQCnBT(SLI=0bgW} z55=qQpO29<2_8d;#mn5=-j0jLb#7_Pg1f~rt>nF^6S}V=qs@OX#rq}Z`2DbhA9ovD z_0~rWCPy}zH^c_Y1x`*}CCnuq!DQ9ixAbhSZpVuDbbhMs@f zT;j)lVAU#omCet2o1sfU9ryIgT5h&{%s@6_)=bkOgM|o#7~AKWaE9{ zEYs3=p7mlR$v2pjP#?Os-+`pIyU8&3$mIE<_`a;cf^He~azaD;?C?;1LOyI-n0>Q; zv4S~F4n{2weqC;DL!mDCz0LY7P57^4@i$MlcJnrb-N<8g@5ir>_A2wRHZ$WaR}Pu4 zD3`zYp&&d5`evB81F`SVi-3bt< zTd~XGb`AXBr3+#*5vK4_M2nC3Rfc!0wgpe;M2JF|f6W)qkP z$mexLUNNhiy52Jd6#6ZK88BE^5wWfSf%hNrWdp0hV8B-9;9f9#0|jh5?#cQeLJam& z?=1M)t(R_Xc$u*N^7#D}A8Zx&O3rZ)ha|7T3IBkcd)kDqLf(5Cx8cvLVdaZXtgPi( zI)LV3-JdmK8o-C(5zF@;Dfz4LupDa9DAlFN=v3Gq~* zZ-Z>a`!4grimMiJ-j*D`vVc95{3!;_(`cP<4m@M#_qm{GPhdW#CHJ6g0+d%daJKm` z{{pzCW>o2@ zYfM*4z*Riy*!kk>7j5GkCM?qhRYrReM+zst@2>G!m{i4=Y`&3w($k;NE& z9)%$Zba)pGR94EMB9jwb3d?eOuiXd^VF310z7p7qGqz~MR+-@c?dxmBacYDQFM9Ie zx?uusZ_akt&A74J_A{jx59e*S_DDC+c9jzw3d`)!f&k+He#uYjx}{``33Vfs*-&i# zW;E8vcUZ74D0U9`qQWKSdnBJ+)~H}Mmv=H}{2tIcp4K590t*}*jsHo-oWQ+S@5~+j zQUTWH(W(V#1{Jh_m=nexjShi>0GyBZRk@YD17}B+(F*pq9t-DqvBw2I`V=41{%u)>N{hG(dM@{W^!4s?#VLNZ z)>esPJDp>3`;2ztXY!b0?H}`?Nq5j1jdfq4V%fFP-HrQ`c(<)+*%!XezjXYOp1Axm z{HF8-DPG7r)|lOCZO+L1@JnXTgiuc3hYR?SHh*@}>%a+rHfD3@YE<5DF36+nGWZxP z{YQ8;TA~hlqVnn%OF#5*>4I?abaz(PW9>NuncI=T+vk*lwBG{uv$CZCeC&g1#)Rg zzXC(A$g5ZY0+kYr6x>y8NpCyGOXtR1cGng#n-iJ+2sfNM9rN-mNI(2A{TF*ePb{># zgZJ@`qbDL_T1RESV>RKt#jXElPsXQ4ZB6s7Ef5Mh>Iw3PGXGI&qYtw9#+;-SF8zUpR(2j$OoTeHgTZ**{@T zFYOq!^F;dfxOi(Ko}+x7(tO%Gst>7$P+fSjr7P8g-aAB_PVL|EYW9=;X;TR`zN`H^ zP|VC{ktmPO@KMF-?xr<|OjwtFSdOU#czMZ*`-nZz;#I7G{!%{t?eiz#))dw!7hfaw z;PqaVnotpL8{OxZ_t9KK(@~g3=y%NQ0c2@Kq48CGsp`pfTjut5pG}F25XW4R1w&SC z&MRll7vIRDbBDoFM6K*-b>0= z!AO93O54x`Pv6nFOIdK#*UUrIG0j>S9Ca;P>Ve!YBg1G^c_PkJCzQ zGJv!FtJ!03n{&@d`KtYchUlan*SZ&MuM=y^wdl|pJywf9Q}WsoS`S3uh`f};lS;U# zck*1+AM>HodmZOHWnwhdqJ%d)@Zd~71e>b27qH1uIZ@wC|IwDE zLC?HfQ(nCQeIdl#cKVupSF@f$LzcQL%P0huu1B$=WXW6Gom4|yuOv`jrA&Ti4_HlWCoW=Gd8?iU0s(g4VY$o-6&qk?>#B*2>>l?AGJYG$8F>Y^2C?{v2JkErGDGD|Q!SdCC zk(L^dS~H3&zyRo?krx5A{)1CUy~mA#Da2}|66a30`^?t|M&No)?DKvdP~aRO_2yg` z3al-RjrV?>1jVGTjzYQIf@7<}#J#>rL_z*U`cB=^d;W9xq+kn@1Q*YRz0O9~hov)> zZmVi{5ycpC1Adt`?O z-TmTd%QNx^z9XHIPegXyO_y#DQ&cM9pD*&kYAh4SZem+3oBxQ_1c0a*+5!Uc`OE~r zn6Nt&Ot;E_=~g;_kX-3cJd^;YTWMQYoo@YY3#%l#mg|gB+@3*K5c95){xveov3Ls6 zcM*GM!XlZOTqLT$a-UT}hhvS{M183SYgl~sk-;-&+e@XT_*rEZxb;I#0*Gkm?P4SL zDpS4hVWH>LlH$snkE7f&P2PKMgOK94%l00UxPaHB=$pm?|8YF)>@GO#?NhwArmZHP z$#^49EQteJsp>0(bPWD{UEqdGQeak9>(pAgd}#xHIh1n)J5AlHwC~R>X`~Om@0dO||4A)nNSt%>lAu z{+P+2bRpX5E4eA%w7I$jMr%%GmN^5D1#^lF0=TwH7}bnP!Ggim=F|;Ko=#28QRytK zY_z_=nOB@MR#WZ-lG5!GhAjnf>~O=HD2Nn-GAcVAKh%=2J(u08sAs+^IsCgDOG@CV zpR%S1#wY{PZ%2o!0{BR#y(8O=ZsFb13TBrgXL3@5R?c zNYTZp#Upr{pGkmS$b{|N?qp*G)9jx>ve(wN#2akvCR~{YknFW7#92ESGnNh@St@{J zqd1UkmBLWORBR*|<+=tS*;HIPP8xY;spw>+vyIyQV;G}tqnqxT{}&|N9;=Sgg1WoF`XV3jN$XqaN7sqR&n@s%AE*l0j_*~dqI#K?rnqe9 zt(x`QL+K=49Djt+{#<<)Us~iM=Q2#tY#E~U@^5)0>c#&5{GxyT0Zmd#S=lt-yzAYc zh-~k_5n13J2N2mFAGX?8-_{QqiH|d3pN~3bG{{BsPtIQ9K6lQub+kdCB_WXFRIrrQ z%IM#5;`1SIheWAe^VMTxSvg})I-^J1tBD2C^y$$B^DfBJ@{4sHy+fg=f4j&3yQc;c zZB^BW(JmBj)@GO2nroCx*iXzWwf+;4jp!+CsP+WLZhEKr#k$TaH6}E0Gn*7J%4*MNMTs}7IdQe9*5aOf&Wzgkpy}@Qa!QpgY`~0IK&UEwD ztz>Mz5fkTciVmyaV9ZOg^gvRg$Lk;xgR{A>IE&;PWO;JVCpW>T#)hBEetj@J)?d5p$pd{9C+>=Ia@aKn>4)N+}*@7XYwCl^S>yEtWc*CTiI8ssqj=N#rX zT)z*E5gtGL;>+TmZfKgYrNhmnatmct{7+20jbBf>|?lAKX4J(T2nI+dC|{)6j08&Xqf8{vW`xB5TQ10LS*A z$-$T2(|3ijWeR(a3pSumu@DO|#+1vuOz@=Nw+CdH>uK^&IoSZyy7c~SRZ}Vv&kpeV zSXkWvXX6+`945B~!o!2rr6)E;a&uMmQ6tR0FV9p?FEcjc@%<@fU;a_ypCOp=;!B&= zQ>9LSx!Y{65ThKlNWn_NhcCx|ps{wW=4-^HT*U50)srg?+Tj&4xd}*_Hofl#56*j{ zHDyfi4@38gMaEVvY&cQN=b_<%C&>1`buk`T0A*JLe*LJdyK>WU_Dy>o)|f2t4e`HX zhKq|3o#XE=KuE|<=ODHLbIJ~&A$D1AHjFNoamPgC1DIvXvYk(8Wt|4#XJ7iAVn7<1sk{vhD`)G!zPK7@L7A}&?x2} zJP>nS@mMlv*hKK+^CV#s@og6B{pY-H3Z9RH#VU6dN!Jn(px67f>|ZHT`4fvJ#s`+v zE&wccB>QujuawPNkDIpxHH2Yyr1&wcBjZq3CXah*))zHS2P@j#AP)SqEh1)J{Cl%0 z0|eW6NDZ4vw1(`R`bTi5+FCGAY-R=O$P*6WzetT`JEwwP#Kme7jE>x8U$$oPYaaO% ziXGuVvE#TxD*(kdUPR5(uPMSJUR^v$DTz^Ay02oJMs~4z-~p0{z*tO@HqogrItR>+ zdOmQhC2NO3SP> zI%^Im>mJdg=qTjKx_@Mb1V`8Sp1^F9`bW>Fx9-I{@A1!8Hq3Z{+HK8VnWTJdJr8G! zn>=@8;^sh|Ps{0mHFZHA5^{Q7jzgzUj`L4&ojnlnDng&ES0`^76$_>`!eYxc`KFb} zOVfBG2Lc6Jkd$9MTV2|cayu>+RZ#_TD*LY2PIyz~Q>`s`e$9|x&Hd}Q%UNk%=*Zhd zp9SbS^Yg4G2XY<3gteV1d{{B%2;zOJ8G1*^_To~)Ifu3+!ft+P{TF)4yfFdyLEYCk zPuk}oA{bxpUs)N08lUpEhVyIkLv;C-h0EVC7o@x-kNL`JC{#XBiOPLw^bi!7 z`WVCM{pzs!F2tpQtEW=2(>a&K{m9v$nwM~;*XeHeOLOXwOY>S9S2nNK#GCJ22Qs+u zc^$}cl^)HB6f>La{mwnW^dT2GF2(i;S$UX(2+`|3KpJfO8H^b9aMb=(waTit+y_bD z26A$8sK5*&>07mrkVi?gOwX7!noHU9;-$b(>5SN-KEdGW5?y3?{?r?lnAp7e!dfQP z!YE$B#?teJGJ0&aeCZn_uCU9Nq*na~9CIuq_8y24SqOaHm|zW*p&+p7jmGy=GeykI3*jmcCKRV} zl{WY!^NS(NGyF#FAmC#bYS3;*66n1W+N)`C#BZn-cepuW)E*1x6~o|#q{1z=7yKR_ zZLu7`uLzOwl%ty+aU5VgMX<{V#v#i&;M8;R^i>8O>RfyrYq&#n;5uu}-qY+eqm|TJQyqcfD4x+yfd&nRoH0Sh%#E`UWz{tAaqpkV;G8Dn(Fe<8e-( zxICnb3%x8=jdMNXcF|jcWpo%y94ARTr0=_Op8{-P6Eb4?kE1Ll+_HE=J)}!!KF2x;FxO#^6Ppq&@^+KV9zBN z8;s?%#rYOR+h$J~* z5WR%^mNKE8Jpe4JWG_9=UcK%j9N`Km5AkeRfVOsIu9)NLij&t#I&k-{SFJxGb~>D4 z2B(!;64e{9ZSm<+q<%h#xZ^fRoFox3q=p0$a^l~n>^0~Yrwgu zMn4=7{+mWJkLKco8=FXaUm@=5y78nD^0~BIQfwabAk=Hlp1Z>Y^vC!IBEUetGPKUJ*W=` zIlNThR`In{ScYRxaq&hiEj8~52u$w*{+^aBU^bM;Njsr(%pU3QzoKqDt)EJdR>9#Ehl*Qy$*5dN(4}voGGdq`;#$vyb)1ABI=aHIbMl&!tM=^P zx6dwTIiL2RWaiu4;TQ9KgUz#uz0L)9$Gmjy3bSLF#S0mQFncMy<)sGHIE0P|Hf65k z+2tMto1AUTn)EO?f=_fHE$|5imUCSWfCL(yKi&K=WDMkDI&cr{U$f5lI;AYLmnP}x`&A*o7CdrYxB;{}0 zY`s!h-ILFJ8!~a^V-AWnZToHMgvd@L+64K^cO~94tHNZ2 zEo(2Ko7`vJj-zieB!jl6OsYt}eiR$)le1FaF>v-{XhoR$0HFg(BHPP5$Xt_&%$+Tt z#zmA952?F_IF#~IXhmw%i5-bgJ78y%`{tMZdO9R5@P53xcu{}XSj1vzY#^caIP1Q% z;2HMNng;ATaqT}&MrI0!Ahkb{=2Y4T7OU%9wdaIK>$5-S;w_1e#K!o5?{n>m+~0ltqt!7sauw*S6^-3DVcVhSEp=*l&ug9@<%OpgXzPb%gLS; z)f&56`HH^u>K2;KS(T!gHeJ&N#ky*b!~y4na;&00DR!C?95qsFrsF5@AbItsf3IJX?k)B zO`&F9G9i|}w4%qpt>J#IKtZ1do73DuKPzam_{@@oeK z9-P44->n~f?78kFf-}bR5R62GJylh@& zKr3u|B!FlQvOqVIqud-eH&IsK`5>0hdSc;%m1ob3_5wd&y@`-7et7Co81ENsEim%W zqqQF?^fSp`WnBSkWnkaUHBs3Wpn;e)BiCWGS1@0oOi4y}Q~Jtd{E}vU#Jf;BXpMtz<(N`& z!JZVz#PaaR6tu5H$;Q=fOE>Z}KuDGuCn7Ypo0A!y2MiiyQvGN?wZI7LDW92tKgaA? zp%S+G^;dq{4$L$4kax`AIk9rcmSvce2dEO9zv0T;`hq}%m30l1Xok4tt-U;GtCi!e za#B|lGWR#m4@C=O(w%jE`6KYcR$969t3DN`}%^_&V~+H5E8 z+tZKintZToCuc6j#RrJSTOJu*`Hw~;Yo(H68aXm}WwkUHPpbE;sG9n%8F%W)D^7Ku zEMCWv2K+Nur-bObFYOfqZ)Wegzh19=e%{Kv z#((0SMmxAns{HyJciFz1>iyNl?JrWcXmRtNTe+S#fH?2p(2JM5MT<>`kN8o`fD}kB z>h*!meDijZ(dh%}9fBFW9#{tXaR>KH4fjI|jc52(dhCtU2+#@wLj1y)dp{`};>O$X zRn~lh@en7N*~8_t?wazu6(IlhT9#FXhefvS?-%*FgYO}M`0ZBcvuFYLQ|N|>OFzz# z$K0Z>{6gEeJQ7A&L?Uzw%Uh~}dKmT!|1Z*pU)DK<@<|7sgO(R8F9x|S&Cks_bdAnR z>v@ma)mq%iJxV9nlz*-mysj7fRaE*Wr*_MAFKmN&WAPs!t`0$MHF}g;6^Ys>-v~VP zg{)Uhdr!SDYoKPtTAX1ui$29i$M_a^Ar}k?BCh;fw{Nk7@m^IPaz5@M9e(oQQslmv z5p9v)_gRQ!#gksa4k^5Mt*3CM+Dbl4f(>`5D1r@s&VhhuwNEUk2uhfLT#7$zkdijL z+N*lcrBJs#-;VLD=+Ekg7x>*>6NUWUz(i=H0pQ(V+a=YM)1i}x0e7PL8tCk&aqLWT zalOM17H_=7!|8RX1a>3?81`lB7m-2NYxs)$A#e0;bBeRnfd|isN-=yG)kK80Jc=jb z9Z@MO6E@xAPcKT$zQYH8*qwb%%ro$bEmG~_suSOK26QVe|M$8}Pz*Ize}ApkD4gV7 z-g9C71Z(B%`Yw%MV@CeHKq&`9GmV0o$qFpP1%>G_wo~zxH(>AP5{tgh)X<*a*8{wh z3dBS2)TaCCg!D$+n3e$MCjU307)2UiytRL2jzxQEc!V`Wlh56CRMxK(ns(jhN3?QW z=~YUK^X$^}rj<42!{fZGo>c#Sj9-_ulHxi+LBXD=oozLTyRLMexN-kF*gj5Ql@jp4 z#%2ZQmu<6q!kebhG^3LwVoB}hDNDQUd6X;qz|Er(aS;vrJtQQT;eiJMB%%YcRK(Kl ztqkv6t9`Ss7=%`JCCZZEBL3P2OeO8JeGYRsM*!CNp(nMs+gN8j(l}&*;aVC8oVME~ zL?+&e^|G#qj1PQ&gz_C16y^rB)w5?kQ=uoy=~85ntC6p`@~{>yT_{mSp9PnnJ%c%{*JHZsnk)j3Vb zktZNiI1)uU6j9#0K>)RAXzU;|VF&1^_WMDJEgJ4O<9SN~AUjY3W0AAHsJILpe4qor znmt)6O+#*!>~b0}G_8fEW_u0v(>bayTu&5p*OOJWvi0GHcEG%@=RkH!$*G9ChTUI^ zKnSN=? zxK_Qsmm(qv0$d4?KOYtVs)@^Hn8sawhG`lO2}X0(gJGxf0S>O1wQiKl+x?c#s2Et= z4Y%~zjGfx{Is5{sVVd>Ioi@K-t>FE2PydQ70BQYEzn7pTva(_dx_O^u?rM*E8Enlm z#XVZS_aw7$MoR0T<9-Q9Zt|wYkqNQTSf6v6rZK|}uj8S`RppqlVaM$(@*5zB&@LwK zQ=3+Qz}$I|h-r2OMop{j%hm6f9|mt63C$e20-!784`&t>Q+7tPxmkQJ6U~i=k#-xW zVyQV^vW>SDT0W{H3R(7IdI0 z;|HeA)alb+j$@I1vU6qRj{Zn{c@(y^c;z~aVX*Y^n9jl28 zJZ^Gv{4I(RIu;)lLO@z%Obx17@f|R!%LV2HPUT)S)xy9ww>EFzRc?n1khN?NCsL>1 zqpw505VG*U5+JP)i}_b(+hAe?M_zNh<*FF>*Ru?-DJ{%7=0M&XQB@4Kxhwh37sX{0 zetOFxg_mYkBrd?e&wz%P6aJWvdE91QrijVQ4hoV$wz|XwH5>8x9*O~{Zu?Pm+=f;H z=9TWTG;=ixi09P5t>qdnjvL`sfwf%W^BQwX;~Ps01d7Vn#1wF_fU^l;LLvuohY@+D z7s?w)CquIccwnhy!eroZLKzn*0=v+Q$w98KVYKyVW8xapNl zJbZDoEaKbimbVXc3W8=8NYT>O*@-a2XvO3XWYu2e*uFI07@f|Em$AjL;0&SZ;VEp80O_cAZlk4V>4Y zqKH*IeZl0kli2CM?|@$q6eVmu>nnPN3aW7%|534z&jx_2R9+p3=;+CezhwD?MBzlZ z+aTu}8{&>sZrU^}LNbA~7Or{z>SC)T1Smmu$4qv{!oD@0+>+Z#lQzPRWdK>1GDw6b z@j9G>GX+VL@cY>*h41e)Hr;#{sb{{+h&6T^Hf~{C&}<_79~b9}_;Wf@`XGjVBdmlXdpaXup( zihx;xl!D`kh@e4qrdOgAef?c#p#1J>fn?;E;RkY4lh$%SRG#M71C2=_gpED|T+4~Y zhs>FKOf0R+*aQ%cp{trj{kcdw_3gTi)$=bgUhTR73=3_`n`M%({jq=q?1UHnUM%tn zb0Hi4p4M-n&BdcN`H0%6i1P71&T(AM;{@WWSN!VI5bCpuVBYoGK7H*0f9MoWO;qSs zmsjWfo`Fb8#+SuA8LZcq;}&6TDa)NmatvcVdPynvo)mKzRaxfZVk*5Kq0`d>puH}| zX|rhYGGXNgsu>Qr0YvEdr`BEn=9>lcAxykH8_g8Q7R#k`8)kJ!a zjP0i0E}QDEY^y}cJprhThn<$Uk3=MCGiOufJ*)>1>o*Rr>f{f?9a;~d9HeekccCO~>jZ z+F1Sr;#KOOJc?4}QJ<++4W{7Rf?T$vGS&7%HhUwm$lKMPn*Bws)-^gE5|sr?xzq~> zi>udh?D1$X`4M|>8!`l~4z@=+pSGq@-ha>nGnaKfth*8ZM1wPW+fL+zA~rHP(iuh< zOkV!XY&JBKz%oNypS3n?XkO_?ge=~PMK0jt)l$wvM}u;AHHp)&1p2ba2sSlIV;)pR zFdEEbVtH(}s%L=9>sp3bxlJ3RvX14MjkccnW7nm=s%wLum2GIlKFz|PDnX$%j#n$? z9rN7fT0r3Dfh@5Rp^%i!q#q7RNM}BiPe16$EWWHj$fqObP7O&&boXC>qWskiMd}BVMCC^a^ zLTS=b`>q^4gz%LZ7cRZW0OdsDM8lhiW7?f1KBQ*Q_BPy=jY}wC5ydZ*P>=9pA( zF2w~unu5LnbnlqoaEp(^>i4YOfnHmCcMN%Gu6?mD=7@>d* z+4=8Z>(Df}=M@Z0Jz#e;w3cTZ@;DSr$g~%7R7_p+DJ(lo)x-{j78iU8>V1BlQqx=W zMRoe})ApmOzgCaJM}Km%81`+pH52DUhqzmat#s+;sZ%fY=X}3cL zNG#)R0^|bT52yvyo}$bUTUaL`qr`CM~hw&SG+Z9kn z8q>$s>#91`+kw3Y`sD{_5GCpzZ-xKSO%gV)18!S;LKg>C-xG8I>RK+z2`9c6(3RGsfB2kJ018X zUZc3v)ZSkMPGHcP>gj?ui9psnkgW!6qTsA6{@~m^2U%e>x#UmDT5tOj@-_G;r8oGI zy|`2Tl1<>JhdtgXS~6AEcIlKqNT<5+;>*{>4&>#=?HBr*V2j1n2>7yn_y1z<%)_C6 z+xK5u=u@_|D2lRGL=qxqQlhdgB| z%=q2YXZ=2p=Q)n&zu$k3{)w6Q`@XO1yw2-<(R?9r{T*_zExDX5;$yfmlZbB3wb)r0 zrDi$60FC;#4qf9T z?o0aMC`YuIALf8)R-UARLW%Lro=-n{hPslN2>PXfhj|H!UPp&GA~Z5S>n~+MOOWQ38t9mTKCJ3CyB0#+e_5L4+L^Tu z`?&F&lDD`R579AA&4MkKIxsq?H_`umF3`WK6zNx^6{YnnK=4Urb5}MTwt*K5Cr@1J zWv!RV8RU43DV0Lm^MUGQf+1j{;Zy-?>ai8(f=1psF1p+S3oi+^CTedD*E9k5^Jx*psod&=oEdZ)YUdx0^`Tu z6But>W7M8Q%Mp_nZ$yBHK;Q=e{?F;x!rU zesO|FTpXVlt6ZcDmD^nuMb5iZ3`%O||x=%I#IyeZwkijw9eWU?C;oY;i9<2L^(0xMeS9>=bm;vo?CyEfHPz^FVajEbGO2f3Af$@8&)z-kn zwJu4uBk#G#l6Y0m>HH>&Zub|VGtoH$m#Ej!1P(VJdLDB;K#*6GRwgx^K|+8wW*hqi z;`p!%6o}*n=|Zbd zJ{^7P+3j!l1Y#aBmerjMvp z_OVO~m-~F)@$(UVJ(}=gKUbH@A>eKrEN=|z{c!G6qu}CE-7k}u?+qCgf<};-+$0qZ z@HrxG4nxneg6+oJ;j863=-wJhOXW&1rsri=v@eM?%zS`E+b#q~(4MP=Of`w?=m=OOE^N=8}Ys zwl{B_mxT1LhVdf$#_EzfE4PN19)nA?h{LShVDT$6@)_njVyR*SVP7$;VvE0gd%n(! zbpOU&Wt&`y4`oztw%D!@A35m!_lcaTLMJ#UY1_h1MjvTM z$ul24bL2F$$Bd+lKIdf<;{suu1BfZHmEh0?8SVJwCH z%L~S4o}!VV73_^YV+b;=UF{8Y0B^%!}6sZyLnJ@I@)UYFG(rR3t{Kl6oh(S z(Oe#$KdsUs#wm$th#SsEy*!Lj?d}mdh9bEbBze|OJSWMdS+Lgt)IE|3=U(0Ri@D#y za6Vn%dAP7>k=ASSR9BG30^BQMo_O^ZE1bbbX>ZHXp0$_wR$5m%@(eVlONZiULF~j9 z;!8Z!C?8fuR9>+BK3eySv7a9c?}}TAfXvTBK~WsxE{=m%@U4MYEg33jPkb#ocJrq@ z4Io|q@^X<>o+82pe--FQ8tYHf}hhIiCyO1qD5!ZV>PrrT5 z@dwr4Yz5zZfaXd28=4mLp_Ce)I-7^2l7=^J1s-R9j_y!5rieaQgchLGacDZt7vs8M zXmH@JssRj~fz-Ss`Zk_eErwbeyU+l%pc6dDb9g2ko%?{nM$1m=l<3Y@)y|*{$+^$S zw{q#~Xq7n8Dun#^R~8YlM>3_=uc!mVUFm1A4}=~DGF(mQG1S9DmkYjhJI5^;%G%(} zAtw0T6QXR=Z1NhU0b)aqj`2s1LP%ae{hX^-6tQ_)x!as8O~u-kT7ox6XSS69V0Do6 z=X!yy>Ux>SQ}M`#{6iN|&t4cQ>}86*#fyCy2!X`fkCRTB+qml+n#H;V+WqKq>H$PU z(XlZl861`Q*qu}E1^s=BN2sNAhQ6NH(y<~u>jYd>RGB*|WCOZO+TuVG&WM4jhW-0Y7x!u?4^)(2h z=9gzs#N+4TeI^kKM$`Ehxd<2f9v6 z-a1N^iWZY0rok3oI}lhUS0z&&LmBK|FIUFG4t7s{C}K<(taE}&ix>xMJA2h&;<#yKUC zifh@GVS{H_HCNnfXk1g<9gh=}a|brXUy?GLAf&I%5~CpHkw&-U!M0BO_@y@!8Z|5P z$>2^H3{4*E@#e5Cw90N+qu9^yQ@GafI)3XW?{WP@4qBG&DUcH_3@hw~??vWH z@gX<}`3bgaw9tADq$qs&0>=@w1ZVL$~&CFZ)6>X}z6@e7Zp}8nr#%Ljwzs^aX=P z#mmvF8nd%KU1<}RGmVeZs@_|~V8^B!9x5pzxB#mpBPS!r5~wICzowkI+dOY}IAmO&VTwDw<GQHtfy3!;WIPrmG%1R5zmXd1t4-sh3RG9PS-9R*7R^RGip-tMs^w|#ey5Bh%O zoWsRuKx&ak0xx$|pSH>H;abq!OPD)bTjCF2 zioTp857BI_nq~9(N+GT)LmpCfta>yW-0#*^;80BN`l$Kij^HgBX~s3K@)JxZOv4Aq zXKn*)TXVdi|1+L%DNi4>hj04T`?U>V`4z{sqplmLdW*I}awn>NfnzkeSy4tRBwWhA z>&slqS*z6g;<;@p6WQTzf!Jtmz;rMd4%3^AjcAH(B+oOVQdW!@#eRDmsN%@?O)V$DcowLV#=qinUBQah*(TQ+G58$j@gt7Q!>JJE`=YzW%7AGS zP^|~c?R_*`gg*bW_ot=A4wNUG#XCgNyqMJ?!ZB2%^n2Md)l^ri^t8!gd7f8 zG|u~S+TWG3CQBB7Wi;C?<=j4iqdB<&5@iWg%AWDi%?22`E|G~PX;R}wCV-48Dd-QJ zRE+IZXsNMsF&X-;uH|w0`m@R}V3HG9{v^A?&gA9a*Co!BZkvjjI_~oH+WE?xCvSl% z*1(MNOyWK{!CRQ?V~J-h);NjRbs|d#!RwrI(CT48n0T|kI+T6$dyH>HcM6QMt#Aao zVo~5+H&L4ajc16a#LCC%~R?Ed88|Q-iH)w zZDUtHss5gwp^gJSM4~sItwwJhgyM(Kt%xE}Gul?@Vp4&aHQ)}k74qW`Pz)>)qx7TQ(rdP&AuAc z=h3=u&nATy^~&Gg>Hc=mA2U#7Ogx@JFIn0VG?49OVlezSQp=0@anG0l0+toT)nRc( zp@}u<5QW{Y!}Z$XIni&7Yn*;@3CE3WaJ9f-N(=iyD|`aSB3`VGjVD+j@;G=Iwgb!X z<884ItMtQxyID3`1G=dl&|y#YD<2?8f!Xyrh{@D=eYjm(#aC$iU5V!R(O4OF$k{sH z>5GT!xD30wVl=vrrO^^1qjxrTsBj{U zVNZZvDHv;Yu5@txc1Yk6KuT@&N$FkqbzB|3{R8NYPhorRC?JlKx2K`d9NkP8*;6lZ zWuQC3qp(JlCI?9 zo{lz}2of8I2gCQQk=3xGz$iqkBkfk-LOh%p?MNKz!wM44M~|JjvI?d$OBQ$vP$lsh z?m#3lQuXmXY<4jBrtmOqRI{u*glyWQQhx4U@>oj~yO0fl>MkjxB(h4cgcfQO78=)s!W=oo8zu;<_A3Zf!&y*ZDJ~Nbd827#mrR6RfNtRDh^W(N z!H1-|eP_$LYHL{hJaWJ|;IhKN;H~|av4SCe^`MWcc-_}}SL)zOztfLOh~)3GUz{PeE^k%CkpV#y zlUqJcNwvAE7J?FfqxRhMl64*G?Ntl+I=NyRO`R zK>z|(>S=!Lsn68vea!PJ=Oo+~tl+wyt09f~jU9KH(K=B^ z-LK#Lat>x@4=nV+M0^QSNL|#UyO02OtnSl7w|SX@Lw|*CpNBZk5ah13Mg}U0KB`o9 z)FQ;2%I2AZ=sbHg_N}{j8kBIDm1(zP*yQLBk)$2U=uQP0H~`e_3TkQN?x{LvD%~bc zXJvwJFXJagP_7O<-@_}{k}PR9KGe26joGj%JXJSAvPi($Tat-1hYgzrlBB*W&04 z&mUw46zU!PLCIn{kr$}mV9RnQFa_Gu6Y&6g#oRE%>kt$S>jVaDcv`pbQ!qdeS@!BV z3@3e4VD|+7EIxg&9dMR+KIz(kEnLO`IgH@98%UH_F3FE4_^E+6yBd2!D!VJoGsdG~ zc~fAJv$!RzSQ0BUX?3t9{A3ondiOlg7V=Y{7k+{*StFPkTt2E8yAMq=*+ z0cavc6+aENF>28xhB)WprpphzA#>8R{Qq5u^g6)%tp3JGp7eZfO*)Fwi^>|=o|2Tz zDRKw1v&Uxu_pb$Rum~9Uo;g$6)t$+|SfE}9xS#cCXo@FjP|x%DRKG%HqW}fU5_^ZH z*GKBcv%DJG8rjG;Af{_-FzC7**S27gs`qpprX8+R$<-6%jxLzZX7hAKS-hHT{NZn> z*6lm*35Z_?anHp`DaUHKQ-x~p!(1EHBcsxth8=r9*|rkiXqG43$`wlw%~8AksfIjs zvo@pCcxMx{qa7-#vjA4KdT6g^`myHo>vDRxg%ZT9n=Th+Hgd$Ao_@>amuw6;ei0jj zmZKY$8>X&ZtG{8{^;k0N&Vr$aMoP5(ecHO%nij!TX2Akx#U6%QHyC*lI>;45|CLjy z_;Tj4Te4%U=v0~zL^KFj+~%S#`@ZR&F%rOd*b{**scM$st%+Zy-1G>QVZe|oxp~LS zPLKBlCS73Kq0Q!$B>_ZkdknJDPxCNM;hKUZ22w>3j?65{;N7FZbB-j~_dQc+4KG-y zoBz|o1GXBKJH!MIX1-+C(1w%JAr*#AXqeSts%7HLDdkK zos0^FPen_%^RL_NA9~FnKgKEk0HVJWkItQPok|>mX4|S2d*cZ@7=*lfB9`fm)X!IJ z=@sh(8I6LXV9Gitd7kH$!cbrrk*q2&J+%MzTfw@ymg0MUy^Xbtc4)B72e7n}y2&~y zi;%Zcx(4HK9th2`4lZL^_I*7%&Mz;2gW+>-jMG4x8@PZCR8&;NbHWF$3tCR2Hpgkh zRf5!qN;wMcbnBr_(MPUHa^4Z@c4+O8YbOHxK*mc(nq00?F1_eJx@GX1#aB11_?%Fk zOwrMAKWHQL>1nUGL4#%Y$JZ~&!&uYKO*CYoJhF2cQZjGvU!&C{HOYL;Io9%VzIJ6e zF!dxSLucsEU#f)Km|*-!ES4rwww12L(%y<}){V>hrJu`t;wqjOqT8hBGDqfKZW3MQ z^Xk_vS5J@8M8bdCuW$!JH=fvJk*+9qE8sD&8`E>n4(oRG&zkqVE8BIa;A>o1p)3rx z>*2oJsQ1LQHW}inf?%0`=8{>HhHzq_IvZD>KP-5lCsXM%*j!x!JsUqU(d4Tp4(xL( z3)kgg1)x^3;`{ zRk;m5x!!Snq5fD3O*{=^|5R>s@h~`gnXl!@3EI9i79LB&cGxE#`}V11UI6q=?Ydzs z9axsWXNjF6_}8?9LJT;X_jOUi`ZHj2NQx#%5UX|PqyM$! z8oQI{S-&5#Yo7!{<5hM#l|*bHn)?lGcwoBQ*tuDnC+>}75^ZQ|jo2cC;pU@K`gMS- z%tL$5-%MtRWoZiaDNc7uQsQB`EnmpbXs5NM;gSYN){p%ocf~4l&&!olbDbFZrF_T? zY!!7BBvp!gXA^Q%e-Guw0^Y$#bb8gj1mu!qB4^-rremhZkz|sEnDF>)L2~9h(p4Ca zUwC|?wk?Fr>Bl}m%J;cWw&)EdN57Uek!pH6os)R{riwS=FYV@^_Lbk~MiP6ml0$U0 zRz)lY+=$ap7~G5V{58kyx;nV64!=EETibS7ffhx(s}J-jdKw7FAj_LQ9MCB<2h=TRC^6R|n14kZf%%HBI~GDzl=&x@}Nu zpl*n8=}dy^yB^xBjmNUVtY6(ue1p00En~*`8UE-=Q>0cvU*?nVEf15vF4Eiu4(=!D zKD}2TD?W8NxJLe2w+le(!f8XEbYXxR#1B{zMy&;uG~Qu2Qoxc$RWfS0*|EYe@w)@9 zykDJgNP4~11Y91pa+K3e@WhyaJc?HLWmsjGOqHH@L@%8ydMpc;$(KBF`?qIdD13m) z70i-LFWKqVdhHx*N&K6o{YB9$Z*FH^R96W7Q5y1j?hTdK zoqlk8O@KniMBiAzUq?kbOPMXnn0nUzzTvo!yY*tgTbc8`Mi>KGl{=K~V-ZI0&fL$AQc6)m*KR>QaR`iZAo2 zt}k0H>?lgr0;0U7)alWN;9q~tUk7%z^vxGg)Q=tpnQcBuPV=qk7t3CQPQ|n4o>vSG zJ2hTRxuz%u1TR4ZRT~pXSVdqll6OdbGacUcR z0M&QRytpF>@%g^%Ly?^4<0lf;;86Ou?URJ2u**@7`_$}3aA9Igz&=v}A7uDB#WQrN ztq^$MHw*&mr=>5|T&4G1U2Z#$K#Ub4$4|RTjJS;BMNpefH}~R-OEgW-G;bExL!tGi z6_<$mv_Hx4+#zm51)01K1rG5Y>v6LiRH^zZ4%bqIr7~rdLPZndCwfu(dZY4p_0CQW zQZgI#q`ruF5re9C^hGbXPi+)yZ8@pzU&t`t0JY&(n1eds4k|m_*;Lj}ixS5w*Y=f7 zUuoEeTz-);M$zDMxTvLz@kf(0(#$%65av8={DF(Ty)||9oO9}8Qr~ML=QF^r%r(J@ zc+<-(nXrn|LGw(Q48@*n)?D^*h;Nvy&iZ??1jl=j0c_83EGvhJ4NgE}JX*vNywO6m zXu?{Ugjn;14++@GxPEQ|yN$Mx-N$_r1kyfHtB*CQ>e>5L?G^6ITbE!axFyWLD(X#L zy--F{%!Cw)ys}Yb8$R|I(D^Y!!*N(c*gcS>4PtoI{(eb6{ve`16X= zXHMNiv9)35i)Y$I=%xsp!7U%7p4XrMlXc=soQjb2u_Ii09RZ*C zgxw-$?j7Zz+`Y!z&@j-ga<(qBsaOfsr2)0eOoTkfnd{NEcT7?KMrZ0=-%DB*Na82T zvHVOZV*uRc1G9ACzjle6G~Blje~2k0DCHTG7DBkzp)Zgv>NIJ$^__{@>+0+NB6-a} zfy=XjGpzWkgu`b*q$ht&gnSdIGo=KEgkQ%cA%|_&KMr9{p$#FY{k@dzpCI1s+_Fgj zdh@^RZ~S}J^Z)(sjswNW)9LTA_FuK;zn>6){Bajj4`>;yj$Vm;1cky5dJ^$nl#&$oX?z7eh6VjE{$$Qoan=wO@)@=}uE#Y_+CS>Q| zLS{@t60)28$!C7-){g%50R2m}LiIL7rd~-ti17XOOT_8j=4ZB) zt?>e|A7AFoFBdktX@@f>#v<_T#@!8@{^w#vk>oU(k^$aifvjEjgqCGze`i^h{=XDC z)#)sx6*Nk30c_4^y#H4CFMk&95M3=JE!WU|`EmY?RJ(bc`q$<7rRt}NM8jrIp!DSi z%V@1}fuPhA@YVBVLs=NEqyB2J1Rou%Wr%Nav*^@Ut?-I3b0LX9_|vYM(@RsswN;8K z+TgAN#VNnQ!1H|1d$ZO#+^ zm6GSa`5tQ5Y_!=fbr-7yQd=CmzsvcW(kyi zeSod{K2Ymuz8C4K5?q2!?kGpALP543*vA3uIQl`%D5k)i%vw(7&3!(^wUC@lE)*_F zMFqqnVHK6jAhhcdA}W(<0o8Lz??=x5s1X3YU0K1A!g(+VX@&_UE=CO`as9~GB1)8UbS7gOBHdDlN z;(iRt;zricUClil+(u`ae3&Cv_@u_!D*>^jW*{@IOa(Jn`H;soA`yP}{2U84bCKMw z6Gfa`P3#5XSN}7ygdc1xxL5`t4h-Kt0r>+qReA` zy(LDoKiUmnL)x1z zI`_JGk}}iCj74B*y!F2WOTeB20G8k|adQ4oj0VyN@a^BjQhBiOe6s z5~T+);?!pTgp!;LoxqrAUBeyau|`?`QwPASCNRDYD0*D-u3@ zv5>hxcqLO-FW*QR173;Xc!-H3Ey-66;I{#>zGwR6PY}I5wc9eufBNmbSP%WfobT;; zI3B94NtBGP$`Uw@g+>E^egl81gMBjl9fB7toZnh-xKV2V{mjHWGi-9lAgjyg+F?v} znbYwYQBfI?i-UOg=JFTvyj3>A_YT-SCBRf){%^6{zTmCAdn2+a!qin4^%5masV8Tm zo?57qG6lXVeB|lo2e!(a=(W} z>~>~NuLe{~9lCYTW;Gcis)ZMD8gSSDZzk&L>2qOHt9jh!my26Z{6RTpI+KqRu*aYLGFQ_;nOE?<&ODYucaT$Jk)wxZC|RL+r92` znIKrALbN#l6rYdZyXjZ^t_w2xv9-Rqe#NgbkdE%^#rAf6N~?1^wP>Tlb16%=r>HEW zw2FvKSswxGPq>lMk{Ct(9Y?0I6o3E621ivC_p@7cJU0yFscX3I7Ob;#w1R#m^B1{& z#V&rQdPcom6ZKwdU&x{OFkTRZU+mk(1)W?)(;8GrLU!l>k7 z^Uh+lE*15&TuRW>x_#41g;`Wjd}rq6cVDP$Bm%|rl%EDI(fb=(;`Se*CAa@CwB&$3 z3hctCb^AsCPc$TUuRS?cQ73L@DNzpH0MsZQ_$!3@7joiLfAUCAd`Qb127k-E2Z*~z zukth7j769v`n|g{mFxHZ`d#5E`=5yz$HeXw3A@a}2|O%2TBscT@bAIVznu4feP@4H zG7+*~_(Koo?xVh0t+Y4G_a2Q=etyl`Ed*C}ZQ8eio5Jdr5MTGrNP*6f-bHpQIj+1x zuWMm#(;pFpP_iFh0qw4r{;i(~q1z`z5SoVsK_oB=%`A!>RwNID8D2 zI<(Zngydd!;??t=Lb@=S^#or>b};ICV|HP~Jm`d1`;|oY*DU8)o9;XuAhEOg{^Wr~ z@zQdwdY%u`a;;dzjIag54jzqQ#aW{_$0RCELO5LtXS+sprRz?(!@XNL&3}Bx&2Ag6 zjMcgl9)G?hq?nR_4`4P3i0=eN=2tj+Z&c17&=T!h8Q7Ea7ZtqpST7`T6R_rDAi(O8 z^yV`b5W~FMaaHjM(u2LEAXb#xY|e${1*5`>d);uUl6)ZpY~F6;)Lp)&--Ww=mYaKO zd;0X&1fGIes%DiPwqe+stk^6%ff4WSZvL=!qT|*@g`=3Cw2>L_+&!E3BD+Is(&pTBX{s_DTV*B z_G$L1PS?n2oZwvzdfaRDI6nFzcwQzCy<2e&S;SADM57c;J&7 zp*t7DqI}Q+qI*g%MA!{5gr&YysSVfjPcjWwN#V2A$DG!(^{gWr`8VmT;)rt|EsuI* z)x*QY8{S>Fw|nO;W!Y(V#zcs?(xsSthf`|Bs3BCVuHkl+I1%a3mz`ab?s-g?aO}b^ z&z@JI!1BisRpFGFm4bYb=NhKDLs7y(;!o}VnNNuW@JPUkbM;RhIXcX^v2kbw&&g7> z3`yWt&V+=Lthb9p)pb7)jTJ1NS^FJJD6MOg&XsfNv$4k6zpj6!&8$!F}Ce zJvc$t@Arwk=ARS!NIt96QD@8?J9x9lwcGB9GS!gq3>2>G#ptOz_5B5nr+kc{V0s;qix8Jb_X!{4pZ6DmcP%pz?5?zSYnsUIp$* zESwCRY|`zO(6!Ze>O+>fxjo$}okLt0;;}BXvDN%iF^s!Cj&h~mnS6OzkMDw?#B$vS3^!5@Vh1mK|^Xy>eYv87UW0Mb7G6ZRb*GLZI9%7116>ci~I<}~J zyBL$fwz-zlQ0LTnNu&-An_pQ3vFm5f1IqxM)2AL|w5IZ~6zW=H-|6sOisfo+ z2B9hWhw#8Hc_f^NX8Ja?wIpn6~t@&2Ad8=kvl-|&iD zxE6f$#ty~PG@tdVk^8k<$r-+yVx+>;R{*+xY|SznZI#TV6;X^zf`-Vsr5$q?XzS7(;Qi+why}%JBQ!?VtS() z?AaB|K>V^!(AvjDn8zA-py*V4a_+%%EG7dps($r&k*g1(FL|ft$bos?DZ-mRJp!?= z_FW1gA!L#@W9E=KeGT*_q&|#h#K9D701GeZt{{T;xHe#=^e__z;I6$)rX^L zaMaU!^QQ$=`}X!DdMb6mDyn$r(&*;bQ-$u2DR#Z5oh!A^n4S2VC_^FlF?*DI%vz1k z3nK4dj9p$E=8824mRckgmx2R|rNCn|Yhik-m>HuL?7FjZ;M{Jo)aq}1xyA=NgMx{8 z*uhzNzM%ve9rOo{{0;ShoqEOZ=o>WESK9OP%cRPXpb*}n)FB}dwh|un=>eEQUcbeQ zdjeVcOp-FRXJd0@Cu+lU0FGS7=GDyxMQb4`2_LeQCcB+PrtHoIc&p0m-Q+nhmg`f+ z=&-@ks-ed2)0fAR*dT-?@$Kv27gua@?1hht7rCsAg-7rIX~M~6wS10z&vRV` z^CcSt@?}$kdWd3edc!c!?S^o2^t(R43_Q6(PG~NdAv9S*9XXaO9b4|N;yE=dz(pVx zr`{+`{;091r@j3jzug}{7I0U0VZd5d#tlK1OS1DQnOwcive9tN_V#@KW@pl5wfmy3 z>ds1=bd@uBBORK$Vo80ir={UL>l;l($)WZY6=mfQHD|Y$?RT~~`&PgXb<1QGWI4~i zN2B+-2iGRnyeWgacqeA%Ld>t{POUXJ+gO#dXrZ6xJn9&}+MGghEg8n?7E(v`R?1c< zL#i}dtCq)9hYZ{oM`oGv<=cF1bIST%em`7fM{Gr^^7Y&o7$@tX+wo%cf^1dfprsFj zQSRG;0?^9wqJO5E{2}R7Zwpj&!B)Cw>Jqx*vK$3Ep34`=2@zb!)Nt`j-*s?LIN|nV z(_WGdQDG`iRGteEBVF}W>2BZ07^R&$JzXu0-bsUP`Bsi44#B7AOU7&|f?A5QN9l)mO zVdn*si(6M=uOoDJmZL`0a6Ofke*r2;cCNXB=Gw4Q_0wp+H;P9_n2Jk2?t{4_TvtK@|vD5Wxz33w#=!)L4mT!u;FZlQioy63} znZSqZ%y%XK&Q2=%i=9+(R*A`2oeR$Bv*MB7hOBd@PJP;T+;ypFX1{QTft+uV2B^aJ z&AFkkUaabOE`FDkycgye$RnHpM;B=8;LK!2*BU;0|Kt&NjY6cL(R~-H@lvaAd2$kX zm?;zYM>Zcp-A^@bx*i#Pb9{TN>)&7XqwJy8OgF3t4^4_}yWP3=aR|9()0DA8<(m|5 zxziN#%Gi8^A>!=L%8v zSrcytnUB1ukKLrpPObB6y57KcTM1%3*OLF0J?flK82g7C+8FWXJRb=MEFUvuC>YQ!sK1KVMqbzpj?2$RL;f_f=Bj{GGagEpdd*=+7%gvz`b6Xz+L@KP$JQ7XX zw1N3Q!Z%G$y>cA%RAVuYp}}b?6HAXn0?y075+#{@|SO`f-<* zguPvZA`2;i@{k>{8lTmYNSb~d2wPwOw| zx1n8cIc;jaQC5T`r6^5iL{D0gac$#j>&{l?>Iy98QP`-PRehE44d*@!-~8#bWzP4P zALT7!oXpIv75_3Y{xwzf+EjWmI$m;m@BuCO?-DKe4@71m{R$j{5}=mf$b-ss7v3xC z$@|c<_UPgtViig3MVR2^EGw3pt|%?Es3Ip)$aQA=S@UGug_U!`>2o38u46N88{~de zK~FYedg@Qalzq<=?ODNP!?b@F@6GP~5JkH@)!bH*9MwZQY=&mpPCg-QIS~dn)oi*` z#9%^Gwxzh%UrhvV@wtPpXP*hzNMWvL)=%x}50d2zJ7FmICHkiRX==I^Qvb;MkV#SY z=c>x(vFyCR6LYQwz+=qbW^q$IfVEK3J;F=H-Z*Y1>Cr{ z*Tfc6pq9yHG<;R%O2A!#IZJ5eu@ zTH5Tlts;zbcp%LjI+HX0{jcV|a@uQabh>&q)t6#1`r~*D7e~c<%Z?7j{@b(}-z$8S z^0c(Tvmey05A{&Ik$z5m;sv;YfnDuV{XzNjrx|Snd{>8R=;Cd10 z7xn2fC!2cP<~DF&@Gt3v(FHVMvxXVdxTlj|Bd>L^I$_*71Xj&0KR(kAw7VC}Z z60KqwT4;5?B;xs#b<$J>l0M|wkMP`i8mM`uaw}rI@lLp&1g-_{Jk02-hm3M=x-7wE zg$&u{QOZRyEdM5xU6-IMCwVl$?6oMhe+GWy1ND>CU~wCBfgG9Rn!H2D&f9{VmQS%i z%^qB_yD;3R=RO@3#%QX(GU@$RVnymv!6(8S=~c5cHmiIBQhxV5W6#%~&F5cnJd2yK zERCVGrjVs>S1d^Z6pMZSvwtsmfXH#iYv1~C*?dX;;=YjRwH{mY4bn~Ng6Qu>3I%!+ zmZURFxhAe74zZ7ek;JAZ40QdcX+TR^?Ol)X)eg3*E0(42#*nK7hte^yk)a~0ulZuv zmzU8iRB(_U8ZVdT$k`D)5fz9ehv&^gBL@!WL8Q;F35yr0t%(3OSMp%T;k>ZJhc`x? zEWb<(a6~lV<+1xX6S<>|Afi$a&fJF5w@$gfR}Z9tx%4dQzn$i zt$~=T_$yiRuiov}aI-U5S3bAc%;2FWSeMj>#aMf=uFr~i6p9(h5W~F|Tqd7X*3Bqy zEC^NEAad?-&~B(X_r9~!W=axsE{F=p=S)Q-PP)Azpz>Px4^iPI9Q*B)&hjhffK-2EL@fa+~TmuPggqEV`FnQ|N;cf&GmdIdl^o}CuFba(T7u~-q`=F4Sya+NSgIr zszCjxJ1)*`rWr^+oYpqLpba#AVNkx9w3k0y)KhU*ps1~hW3!DI0)4diEBYI;mDpuw zZC%6`Ig>WFnK0%6E8fBiR!d70BS8ujZqUM9Qa$o2bCZYs_dy}oVa^ig}=Jmc5s z(P`Cx&&TxAW+C;ZRB9P)ggF=WR+Uc|dkMN8?T%S2RyU_Iql(kIa$aBGMz+Eaw?3&V z!$+!qf2^C0EPYfj6(_c+Gu|p`IH{nheZ*QnaE0WLi)Fo0TV9Q zXT6;nIoh7kQhqZjQnezqr_h*I1O=V>>z4m}Hhu+lNLf{NsztYg%y#WUN9J-ZY>j)3 zaOc64lwrnrM6B)%IovU;>SF-aPnPjBn08#6x_G+jVDY=PkJD!Mrkv*v9itjMbv|J4V<#^jyw&TT{fgJmqDteIFQhi~aS5SPo2(s3L}W zFOCC^cGNNmQVi}+B^1i_aEkU5d{RO4qXspPS=j7NZG(Or5m{o`&8yF@Y`Ek8JRm%H z>$||#L7wUoGJe!~%Ce)AY0y?POn5j`%(+zrsUci4zuH<{L>T2F%lE1$EIKdkE4{_C zR6eO+|Dm^hMSn74JXnMw*?2r#e9@zSI@hVnM+(;cM&EsyIOza~@YRUxR4$R)Hn>KK z74^c-WrWjq_18q)TR+jge*WWKaFS)IP1$t5epy|?sc4$w*I~P} zu^QEsGcR;I&JlDHvw;h{J$O5ZmM^(y*I8EFe}3k3&61_E6#-$9EM4zel6<%|Fcz%V-1OHX653kl$i4EnI1~RR4}G^W94qmGe~ z5Eae)wD}Sw&IJxW-lZTm+P@A=VM&`wrG$x;!@{MX$|=M3VGCe8!o0sBD0RvmdOeY? z28(bm(>0H6H9~tnkyo16ROd7 z@si>2cW=K?zG+q(v~Ce!Px_-#@^Uk;ej7PP5pAV8f`b9G#jvw1fOOfLUhgWx2c_p?4m=cleH4zlxy36?Q>2Kaq zf2F@wkpZ--A7&XMK-|YqWK%j4MxMYvM2ns@VF#fV9GY|H(b0~cQ(#U{!h;YN2i7Le z%|0>By6zOTX)J^q+JXs|2nmQ}Gz(DPt>kHz|6zxg{&f5d-(u-pj))%nSeWg#9F2^i z-YMDjcRPtr;>IbI#x&^lEIrprjV!K?=2Jl~z5ywFjYyU?J3}>PuVqFpUOldWxm1!m zoA9P48KIxX2i#YKIu}RFCEli7*VmD~I7j9{TyXW|wsv#nTjF8b?8+9n`*S)+4AbeC z4sta__%m%#j?~waXLg*d-I>4lH-*LRTOTX~<+bHkUCo!Xa_c>|+3S~wtqWGMP}HN6 zjlEkq#MUmuXrVoHei%|sMjh#D3Jy7;bmrO_c9UyoSNNYLI?|K?QbP?ziuB$IC6I7-X5K09j5F)J zYn@ML{nuh?^h3y#=h=JT?Ye&5iWqN*ajS2&j|*0HP9`0{Qx@AetDd-4fX8uY`gESk z#^~fKy#pKmedJIRMmlfD4At6=7+K_>naf48#hE5<(8Fs&$j=1Z(AjBcGeu>tW%x27{sX$ zUju$yBh_rgp1KO78R;Klo1k3us2*W|boTGiyV_%Xq6EB*6RHFssiJ#uDPdzKuMdy> z#psN1PQ>-yBxW$Lgb@Ut_kDN*oG%2bgUL^hcMR8gPIMdXe3IgD^hIhKm5JJ=p8{I& zV2Hk+V~jK!i)%vMnO5h=S-@S6oG)h4upqI2?je1%5PJRTo@gyVz+GpE@oXO`lZN4U z0>^H*t0q5)Y-31?7cu<2c18YYJ=n9y&pnmi8`6)$xUWsFHzrumv({`RE#D2ZOztmQ zS}IwV!RS*~&t}%O%$X)XP?g?gor-?stnE@Nq;*NnY1AafuBQ;$r2!=MgV7+ND_X+#fgQ31T&1Cbf5cw+?bp=65%w*nQV|#*YAQPthmv zrc}xrr=BLGi!pjFplh{fCw1^LxFu-5*9CVyxo2}#p5q<|K4q_WS+xfLwQwR^#+^dG z_2DCHt*w5KnDqjGSi#WRDH$y1A8vqu3|43wkbi`KyM92obPOLpdo9)H+JrYv#IgL~ zv|m7bRyw(Kbrpl*G)t5Kx6$w?%wFYu*x&&7?n3t2624R}PQUBb1GTj(T=4X$J8pt8{0mR9hAm zX3qUkrn16Iky|v?Dd<|?1l)&5Glq9Kv_sfJ=omUlB8F&j+a5r#o%}|@Wf40OR1hMI zHZoU_DV}UZCZbK{?B_rWQBzsgw$*DVTtYQ#n*FJs z@zLcP4Po>AEPt&{_K%757&+?BtrB)eCqF;fds<`@?>+GC+$esVhVB(I@(tG2t&fTc%f&XTS_ zM1MNL+9KpgK#4w~Cte$+ef0(bE!HS0k)`kP)I?>v5IJ;io!3ul{8(?}Xg+M_rl+0Z zm!_Z=0eb+39Xh^!+Sh*}u^LGJm1}EdctT%hP+)s~N{U=8Zc;ZuH#9&Ee$7=ELHnS{V@4J*HtWA(w@+ zC;i&dk=fd7jN$7Lg9!D=fAld}c#nPk@i2+E=#lxpI~Z=uIs*(7mKx-xhr zm{>nHT8jHWsUDH_7&kA^jEO%R87u%fHEkT1y;x%XZP>M&M7@*>7`Vn#E5a#3fpO5ZRB-CBAaDlwUxII}kvPPP?DF za8}=dnSjvjqW7=SIH((9QT!pQtQIu&l?h6JXyN4~*C~LGMj19Z=1zWXWCL*X(3-sP z@Ujtn;7qM1HVinn=|XUY@U5G2d5ezXxVmWB?7N(*2l9_|e)6FFQ3U_Xrwt*Qoun#! z6W1O-Assd=lR6h`gJ;+R{GC@$@&NAl^fWI~SCBEam+1I)ga2xdE*OSp^!∾gx{v*N)&FTPV2%I{qQF4l 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

      L-%| zb${%Qw2Q_Sq!4_ub~|w^yCK^(Dz+7MUY+~J<2K1*ENoFFGv?SOJ5C2~bnFYQ0ZOlU zp0Vn|CEMVuml^a6+*%X1VB0O_lr_(|IqCmlHD$#SzUn|8eyiw3rEpDul&ib{x}`R? zV9wEar5RY-cyaSiUFoYyW*3-ry6|i5+V>=LN9QpkUV(z5sG)=A8*p-zh8n z>dJ4@zH`d2seVZXq!jBk)#hYvmN+4_7GG6%cl>ybulRqy0ct7g;atRqr_t!`2CS^CkQV!oHIS3^X5S5JBCbY@qa`(AdkWt1N*~Hbq#d8xf^IA%cCdyQ8HxWwcbXDBu8RPjv<#c z6L4jTG_Lc+2o{Pg-3x!a1C5pmjui2Up=S@CEhxRfAPFR@wH(ffXJrpw=J2uwysqhGyKN->f1u0ze5f`s+=DAn zr}$H-_)%6x>Ya;a!aq079Q<8VfpGF=Mn8|9#u3-V*jP>~s*YS@>dE;{3D{?GZwBES#m4M1D(Q&1Yfx> zYX|<-OXcJ80)s&8>fo@}Jb15uhoTPsSc6@bV z)}+6_uC@POO-;>0>|%1NUQ2V0)RtXvg)R`GG)55YX!sE-SCr+~t!SME$}P*3p6w*{ zk~54Fe%{dA0Z1#px#ZZ3=%$8!!XlssucuF2^hPq|QSp3!Hg5{3Ka~~>0w1fbk~W?4 zXw}JgQ4#N}&rt(k=-dy2*dTZ=+XNDBjj z?yrTVm@7SVn>c{9^;AY{1iIA$jMVM$k$+f3rE9AS4@U$8+kzWSyKq?Z;x6I!m4EY~ zQOAwnYwNt~O-40PD@8*4z6t3dY-7Ds3VxWF`5!O%@H^r=cc=A>$_^Y^PyL0wV0 z3uzD)X!8qNqp+j^S{ay5M0>YqcKb^`H<2|Ml^grIq3W|!L^mL6*g@jBRg|1m&vHER zHN5AdQ&AWhqeTbLXDMY7aYj$-uB&Epm#WUts62n z*yL5!Vx~oO|;&(j+;(dwFIj!zTaJJ;H~OczMciSEmU>Rep$6l z$f(O1$NxO5sx{KZLq%4tY3-0bVY^f_g*0#Jkx*}Fx&@Bz={7XR^F-s7nxI*l`#1C8 z6TaB#TyOit7!BLn3Hy4zyISM+0E)DpXt25x3Zn86ZCk|SE#I>o82>gNqo|!~)l_54 zDEd#yP)adIqM7Xg9k@-DAP-};iD_KM*YkyB)2Mzl;pk7=-R^n#{n5Js!K?Vpy;)N2 z@KJ^XTg6g@y|r)q%)V@aL2KJ%Ue7C~h!Co1YS)W&^93C&q_@`~53h?&_bk&v#gMAd z{f$GN=Nfet!;!*dqVVzCyz|KM-y5Kggq}XPW#8%9NP8q|o{K&PEJ8C>0j(E}oI1800V@cA zkTh${Ib*dL64cxY2clE#>g(%2X+FM4txZq1Diz`%U0tC1n;omYZGoYz({7+kp}g2l zIB{wT1@NL<64ei|`PeDEA5XUzPY07Zx>}qgy|WU#SXNXX^KAcfmz(MgRc#bB9YaKi z%G(nEDw%q(XazWJ)EIkTc=M;G()BXv5Sg(z0!k20jVi#uth~KIvL2Ijag<$9Tzk8) zehi)<(Y5IMhhI-3WM*NJo_=lsVgWj1nokFoNu=Ejqf!NXnCe?VyDcD8 z$M+S7Q#(CFSw+!_k~s-tqDHR5C*JHb&d_Pb!9#BW566t0;H%}a%gJG9Zhb@g@f=_fRC0c^QjHU<*Cz2ER)gG*x3l1-^K`v#}F`Yo( zDbE3^fygog1?vkXn9SW)CH19#=G9@hqTob205!gz>mQ zw|r$6RyA45W4}3W8OoDsz1P;6oY+~}@Z=fU!Vq*vy(`O(ms`9_Rm)RnN_wfcfZn4Z z$6F1eH9r@lSirLj9)X~;r%l94WR%V&rZaHpYHUD z<_+=ajfx2jsVXWac&!|9{H23fC^?v+d=#=>{Ci81;B_d<2oP0I-)UXH5_QfOHZ{^s zX;sq5>m5vZbjEmKt6lAHMEYY*;S&|lBZjHPsHEP=3&Pd7<~nw~#Vq-oO`*J9%ajhG zC{M)|Gw3GQ|7f6o;;a>H)6HW2uB}Kd^%lGPhN)&}SGFf;0o}W6%1hoCKXbPEezn#O ztDqCL|5nKuU(xK<#HQ6Whpq?6nF97IQBU}s&h}~Pqp=jp-B(K}gRrqC7d8P}d7Q5l9uL$o}G`5HXn4Ssi zGQCED3%$9?P$p2sb-eu*l|zy2-BwL}e_-t-F+$aAJK8se3>gg+g2-6u(}y94P3S`e z=^iVMAo9g8Bk5DZU6a;=@q+d74M<_F+VGIk3Vt@h(veq3>yfF326O_M2|<|nWhTL& zviL(T#LI(+jv|UqJJz1Fu+!nmL3^)$t#H?E{a?Me>WYH&l73(x1eQ8OX}XN*L5q+WWUatO`ot@N|Xl^GK| zyAa!|D*2en8qS3+fC_djLNFXH7Pfg&cw%GvQR^6VIQxw;1O$>EZGB z24w!9{Q?qf85L@_WVge@WNQ!?O5^Iidd@T*{-NPmlmxZaObva{^fz70OpYqi4f~Vo z5Ic9((dE5QnAx`f}H`Zi!Slaa&UbD>h3f^atq9c^p z?X*qftzuqH>OHa-e&2MUcqA9gUR{#p;00Z@UcnSPurkZND7tK3Gh6Ubz#dF;l~wJU zyg~kfwFK)ca{kwQj@J9J-k}#rTYr1e;CD`pLFv=&FtL;Wk-9YLIeSXW=whqX5R{#| zX|&_fh)pcCq}0lV@UJWPPa_GXRY?4( zNIN@C4(Ue?)%;d0k%c`FUuB$_zIL2tj_)xV-!pszF~c_UgNcOJ<0yd>Ag}F+er(UV zI0T|o8Uj|$JnoiWk?0{#tX;FTQI3j1mijO;2~KzK+34zNX=tK7l8+%tls*d*X=$|! zNchm#k(=E5PoMSXrd}52mH%inw8A@hW^MbbD6cEGZJ20cbOxo~iCa&TWS|qiqitD6 zs|G0aIH|*5sh;T@d;~UtmlFZM~ zXM3$#?)VjvZthAC0}7BmsW6T_=kxN8lpZDGs%2FZxQJ7bkXEB;8;3UZ;TqB4m8 zITb(7O&{`N<>4ELP&Xq(^jr#VN)vu#S+BISM2uyEpq0jRONoWOn!)0MGFO@vP%bwVaH>%#&7|fywiTro?0V}JSHTf@o zK^)QEQR2?cj%DRL2-_&_sv%p?Qg5qvJ&&w{sPTYQexQK;@ry_A1D}Z|s{rzc={CqWGt5KXvz)elI=z zZnOni2F%bmUTPZ`ee&P=@eP6qGmhc@OLZ% z?L8?On@eUf6T3b5GfuUG4tQ7Z$nHUgd!N*X=6UPyeSTJfQf8lTRu2fiEH*V(Q1K30 zY$ja~R;D_9B;$qz4c49SKbvrT^KqpppbdRQrR>VQo$=KFpgQ;8|9`1Yb)}Kq+2H#B z5}keCDw4i2(a~QF5F#vq|5BM|Ml*TxqKUzRmLVD6LjimPE=5}qbLI>TJ9)7u=yj(2h%mmHk=?SxX_|!~vg^?SPdLR6V-Y>e+ z%Ng2TfDY~O+7woMi@oD>QeBRg)!Kgs=Q;XizmDN2jS8)ENgt$Gy5aB}He(99y^ktv&EvT1SeYgDSU6*WY=CfCq_x zzCF`5kpfbrDLf+;0ccy2Jw@kmN-BAZ5aAksjWH~OAFd9WC65{xwn~k{MA^;ompK5_ zv?^jxxXwmt;_yT}f@Tc^fgilU#MtC0g!m!a<*ZG_bxY)%6kKbM%}bI<))W11pJ^Z~ zxP-_XC;8?lgR=GU&t2mep=2g<^dZ=}`h!(6#vPx!CbW&_sK2Qidng@t_?Bv95}`Vj zyeNE#VMJmR(B$G4kbV@$ejt7%P@tyAC#2@eI#}DeBb|LB_XZ)3*v`O*fSC8YwVe;q z7FM)1fLhP7L)t|I?{m{5Rq?i7qAdo@r>PhIBqHBjPZ=lF5(Y^mt>ukk*xa{6-z229 z;WnmqIwR7#xW$VGDeFpmVr?jl`(HYyDMHjxC6x~+1}94zTAwCf+$KH7qp+5j)_Ez& z(Pd_k1dIx!;3ZD>#<{y3@*Wv)ItsN#bUdjCouHeO@>WJJW_$>k{~;zMRpFE>uw#| zqE=b>31#DlmGd=a@OkG|q;18%bc|)tj7fLVIXUFDMZkThSc!XqXr@-9X|l-uqU&UJ zPRSm8S1Y)emhTNbcfmX;yzW1$6l$a6KdO`*ooCapD$lFweV2hD7eqtHtnDfts=yN! zYB>M@I{!>&?dvzQP*fSO{QnNc53^yKdu1G~3}XEzr^RU`=f)q2Yn9>%Vjm>mW|3fb z2lZkAcs?7*(GkK!cBEUWU&XB~!6=1@xR`C)wRs3(WYA#BND*O9;}S3Ob&bK(ycSjk zeU&OgX+K3Sc9dou*hKo1j8$3yMC_S!KAyl`A1q96_X(I{Nchz=Av%&D@?11c^bEBx z(_Z;9o1l%Valy3^l3s1Et%wT#2SXpWdIJe~FIbz8SppIQqE%3>4C_Nd3QnBQ;~*FB z2WSm<+5*4iE1fYn8xC_b+_&T)e?IJu6=(oKI=kcKxCVWhNp@prX6l}YHCtLj?~$3# z_J6%Pbfp5^MDur#S(ENROr~o><*co(A@b_@)g~ox1`wDN6z~`}^Cz}|A~tnhCCkhJ zFdW*35<6V&)r9t0n;3a(U3KM;+qtkYn5dKOSi1KIX$2S^V5w@ExMrRKR4uZd_PjB3 zwMu*zE7<3I;&HCb3?n{r|T5HS4kF?EO{=5UnN+eT4% z0$w4)^#3sS-a$>U+xD=Cf(n9)3P_2Fib@Bi1rikn6(J}fy@Nq|4K*Mly+lAjx`@(y z@4c4*(n1X_2^|825<>FD_muD4`#a~}JHup#fq&rH&wkckd+oKeijIfpn*BCHQv1Gk z>w-X%l^eLbe^Cz9G+raS zs5~5y6o)QFz?KTRd;bJIuo&+R^yw+PH-QKnrWPhEEBKGNPd^n^#OWKh4?BgA&N}1>pV4hs2U%O#{s5mf zZ2#%=thlJ1nd>trJF951{~(_*X(aCSz}fpCsv`uz4=k~2`bKC}LB)DoQ@;oB?0(C; z&w{Wvc_A*)^38U?IBrn*x!>&BBGz+{#Oo=e&5KGb7Csma< zP+nVY41A2s9#gcn@l<1llyDO$-7NH193e1Ya5+~%9 zrzrNinV|Tu)Wp7a@^Tiv`S7tr+cZ71lt_MELB!soUm&~q`)8nPZbf=;i0qNs64>id zzCGJbckjZ^-K^z`zdDHjR${Pa{QpY5UO1OCTn(3WC6g6&Yu_tB z7}#HQtzhPKv&fX*Ek9;?xig_RqCq>d6O+5XUYML{De+@vIf&|e3Xn1K$<4_t;!902 zbwvYv4SY@Oj7bCDHsT@oBN*Yb-;bhp%_Q^oxM?=(kkz#G(J7!4cH@XCG0rXSE2%eP z*1hrG*ou$A2g<=7(SjU9dpvb?Y?BO?dGi*^>FX+bI+%+JOO!D4g391avdrcy_vaVp zg~i;KYQFI*LRzof_G~w4!)Vn0*pb@(FljYL>a zq0X{)WY}fu1ia8rx|((P4liB#T&NHT(fQRN-I|?;YG+X1-wt)XD`fZ&F91#rYpMp} zZP2Hjd)U(t3pCT()b$j)X%nNYhF${q9NuzcG*z$<&pEWR@nF)p^-=9qkMZi&$mFFk z)jAqxIZvFNqwXV|QM`UA?GVym9w>_liyB-q zl|s1LcA$*m0TvHiL*rs7Yt@~u^%n~ALnQDGf~(k%t9Yjlo!fPB;{n@=1i^}7`%1d zwtSaEt*(RkHL&tm0Ab8$$%sF@-{yet-I$me&`NqI^F6I=mv@?6QD25}dg*pIUA!KL zLR2_tX;md!8TttOV=df6>iyJU!e|3Ffq!H$I=tTkt@66wY3fKC9rvH$c-HHZXySCre%KUsc;@gsn ze)U338&Hk*YIXFto9P`^h1GXAf?h8DX%76S322VXT86dFDe=cob3~zzD4Xoey=_y- zWWMY4sPVU7p{%G~r<7N4y3#4`V=WCS$2?w{&E-~WG<;|LXY>H}N5PHnTEpngSVAp172CB)d)yHMne!w;T|sKnw%WaC{Ogl2m+xYZT6SMr}gv_vQ+R=Aw5=>qSo5 zGXdch$Dj4{GHP}N+ZX>fTwMWhs9Y-&^W1i_0e*g?)x68BJ5ko^k>BwTg4;vT8*&;g zX&D*5iY8C&ksGzl282IMy@{wA2Y^R15QWPxFC4f~aRA%tJ9qA6D?=@Fa#8GyKkc*M z1P4~>tzL_im4-~Fjr%i!J)T%FnjnSc6MlZ%JynhGkCgrlPx`Xxm-Ge}_Gft6F%s~p zGeS1%4MXwmK*U-xFLPU#dq(78NxQ*ky`Qorqc^@qv&ubsStyHgXvb``-&ecrATOxe z%=R+JtmessXALEBoSyAJKD-DuZM)9((}N99wZTxi_+m$~@LP{xs>vCNkX+JINaqtF z_Wd1AYqLv7<-=;zsZ<{-Vf0~;pcBSOeK#s0YtS^4t*5{1Y&W$*+S%{o!tv_EN6US> zdqoaZ1E|2qPU+Xs4mA_K2xtEHEa4D_*v#2e59l>eq5XdA+2;QHgH{(Sq}H*MgL)R| ziTWlOJIZ7OpV5&xgb0=_nHX8+U2C_U;h4c#I23p?j;?P~B5%gId04`-hGRh@7>M zTFn}>UaEgHfNQi5kRuHi3PwjP~16gx77^uM&p1Do%h z;pfLhDi18D9CMdZmpj!fK4D6RedKZ+B+G?FIvZ436vIzQcA0GeIm;R@&%M2$-Pd;u zQ;r37>&$}xG3*f8!0T?deYeyCe`WEUjLG);tB3YYr##Wecc)%b_hVFyrc;%cC%9d$F$?C*}-W`Uf~2lzj4Zu zqf}3+0s{5VnTanlr-ez$gOwRIpsG|(A&+NnAA8Rh8d`5#J~deiS9f~!5PvrS01Bg; zUsX^^N9yp5+48ogO8ZTwiX48buuSr_iP%D@9Jz-T_3-Tps+Av{?sl}8B^9>Jp8eeF z=lJs@c5_x#P|>w{exC_T6|d3HDz^=e9>sxfEC$~)4jXDYcl#CHux!d}@6+LLJVICz zg(jiUuZ`<$;-e4PMQN_Lq6zbp^AI=caJT2g2Nq5BYzICf)f_I5?mkFdoz=6>eWcD1HgD3ZP>9c*5Ut{Dumxx})Z=KXcr<`VmnVpH6IY zwiCr4iMv#^Ug^A=;?;wrHhwS;hXQf>nf9+2X0&Oq?sq@BwU(!{_djK4-Amt&TV!=P zK#5$9ty&yn7LN^LM@LmulkapNAR)<^$pjggYYuZN!me>fi(lwBZ^>-o$Bx`+2(a}A zRRs1s>TT^jt7bh$8C2i6x-KqYSUriYe~2a$@+;2Qh7HUXvkGSFRW}*v&XALKGZq6U zj2Dleu`5Aem$w`n1YwWNRLDCqFiLYOb%d&}jrfl_v-TP*gZkvdseK&Slbm&PmP``t`|oI^(d5iNpg$-FCBDn#M<)%P z(rBz0BgT&E8uQy-n@Nu~25PU(gUiNzr(A^}GZ|D%Sl^ca8=&qUv43bY8EA93ZQQM% zj69fhg8cEGfKi(?Vrp_TABb-X%y^OCoBgQh{@}&TO4YBeFLR!*nV^^EJ7lbf50wqn z6sXXX-(SnT|ADxd{^O3hXIL_41PH6;xlw+UkfC70>Cwdl8w>=Q@hXNF`7>OffFGdk zT+vPls%#5v%e?6IFv(@~)bo@jChe}e^B1lr{ijCG+)PB%!X2fJnDOhV?@wrLa9kZ2 zn`))F{G!^ed32Cu6E$)f9Aa1U2bL zhVW!Zb(%JQ_J5`3}iHELnK~6$iZr;q>gl#Ok(A!_{P%l~?qIB{btiN3gbPbQH*>@_5em8;Cji{g2sQ};8-L;*%!(mqP zfw~Pu>94#Qojre#8>|Z&uj6X(SBDfRgYl?1eVG4@^R9B_^0H|}g`J`OlZRU&E1R2d zLK3Ozbm1%Y!(?b!Kd+|N^XgjW(W+A>eD=obFh}BNWvHop>V;Zdp-*uG{22DW!e1!Z zwW5&E?$hMySFHbuqi*s%MFXSr*ja(*XJw%>UZ=3Z&M!D9k%JVnqzCGagd4@su>yw1 zR8;l0IXCBl4eCpCHdo|b<>_{g)E#}9In_%;zf)>WoEs@plY0iRK;aBhQrsGePY zxpN3yjrTfws#_GB5++geHv@xf3B+Y8spI~~g-VLIvWD6KKj&&vHL@*VcwX-2Lo<=z zrD?3Uoz@@bOelg-x6&bJ;;rW+MfnOyr#UcDVV8d=eGB=!lj)#5>J|d`R7GHYTf>`B za^}rdHSf0O2vIdJM|)#GgYpH0o>;rlSEl-)!yI;Li5=sVKESh;&rhJwcrKlNASL#R zpXNNzwfs*-foAlG*V2)>T3+*!)KonZ^z48``3Y(}?jB4p=R9cE;%Y{=Y|pPq)ONxm zJ>)e;)2qAtiTB3d&&JO~>1u+cv%dgWSIP{+mk{G0g`L_*WIo+{zSI_1mB(yy8#J!W zAz{sUQT1%a1fq$-{x3%|qnW4t4InT6+pPu4)$dVyqEdBTiFx*m31J1w#&KBzG5mQs zNoe`Hyy5KZxgo05bpurHHu2Xs~8_)}}coH7($caAmo@^$yRa__k?12A1-?L`h9 z{XdwLF7fq6#gOFQZ&tGrCeR$dajH~r{dR*m6j>(EM7E#)sRo*0bNc%@`E)i!FTO98 zUxi9d@Lx}*w6O0VE+Q1}P&dU@?-wsdgktqYsY}BmXB>{XBDD($u9@dUu$hK>p33h! z_n!OLci+Y%D`+kpEY&MuflqutMgPYFO!x9!P+2v_y}RW+$6xL&)2>Dy(z|s%C5ZgXfS69_#AnmHl&+p+m-Iyivhggt0O`UAp18Xb0TtnM~MfLU^vW8yT zsmg}=XBNsczn`!Ek}Dd_dQVo&O+m}_DH#kow!2VFC;dXmG`2Z zkTVE?<3g6V+aG6DSp#9J_9KY4xf9dkAIb2xAN7hm?xhOnUJu6rujgKuU3UJI>g42a z6T!M0f6)rybFu_0EBHEb`v+AEwLQ5&Xa|Q#mlTLRWXC@>OZn|jO$1JEwf74cx47qB zRlijR9IQWGZ*_1!JD+&ZmQ?advT*R%^p(R;v3L0`EQ_8tw5wmLuw|rtp9eh3F87ztz5hVK z;&|hF1xz4|)5t&2&@A5%7R1*LL`Mf)40-t{)qao4p3ee?_C2ywlolI}wi-s5>~3T* zbK8H<$i@SFd~Rmy`+NUo#DTr@CanG-#d4ffx8dja0(Cz6pJ_L8uW=U%p3I6&m&umW zclmomQTPh>x9V-a&DQ6v17*kW`=hd2BTcu2q$qVsn{Q;bu59V85$;Z!>-8}X`>pla(A&tcmRz&n&7ZcO2RM3R=xIM=YZtXXr2WS(_TTgAJNT{+M` zD_R8*|PR1eFL>reTEr#t`17I zU+eczs=1c%%stD~vC7R&i6uZN!MANV^r_)_UeD43*MOgyn~?RhrH@~_?-~^Dp}wR_!*0+fCgch^>*QL#@$Sa3Aks-;OK+0< zo=34jj)E^EXc2Y_RL{pW&8Jb9f_`>gy~@%4gCW%SM(q*I$d@=x~VB^V#yWq#K4;U`QI&K{b@i8#r|yF%-NuJwb#yF zW=i4f7uq>%im3xT%;C&}X)Dxr9@UG;@9|o~^NM{Rka0eT7(h3!uS9yUtH3J1I70^Z z;T4}wcm=zGDJ|XAKmLj~q=>J~BW4~eV4W^Bi(ysyrMSNUb$+O?{B7H&Dh z0L##K*L6-xVDP=WtltuzXuLC?$oDJy<;nFyLs37Av0mc0QK{Qd)IIX{s`+SHmKE-;?=@ed=d8v0ooNd+oT~rVfbgXnal|epF*Y4P_Udk>-P=ALq;mLAO zu5bsrJ7(}!P^Zo`?4m@)gnY}5r^~0fen+!>i?_b?Da`kC{7+B@PZ^eNt`V#M?1N zb=?$PQtt6I?g-p_5~nV-=DF9<={;cRHuM~GG;kcSlVf)>R_MOn4I&kD2@8KhpOEJqkuc}u=_~M)fCUz}s zCF^aXX+ZpofQP%xzJY7t!*EX1x!Gf;SPna)BYP?v{{Vbnyk|K*ES1^YxVUb`^)PU* zb4i?X{0q}^A0#&O6<=AG$4J5R$$^$ngbTb3CJy*B$@F>5HG>~+S7Da}d#6$l5T2Kh zS;uKlR^0K+ET z%}_8T0+yt}R(gBxqn)cx5uIRZ1TcG};nsyG`=*C=eK5>WNI>)aq! zilUv;@=IoMG$qu0eWla83Uprz`Ts=4e+?1SufD*|X~PERUK_$o=2FbWK-H?KM`#%r zT}5XT+GoFmIN8~XxgV$hR;XdQW#g<|Ul#5JTp6RwB*IX1A52pA?1j{uRCfNBJG<&X zPyp!K?(X%A<1pAs*b(;LA=0NVGn#)h0BV683CppW;FDfvwBhWLA@kk?y$aVnFOs6r zN^&|icI~ljbJyIw-T}qs+ST}H2e~A0kH7ijIhbkXm)B93kpd1TMWTv709=;?XPO^? zZr^2Uj)+jU)~Fn5QUQVW?$R0CndSvE1Ko;Id8UHa=U_O^Cf!cX^*rU@71*|jGU?I& zR@=hmr4>Z$`$8ivqv>3ax;fc+trtnp1!g-!niY7jw6Ftu0|uKPR}C9$Y>2EMa_-Q` z>zkl1uO+h9u~`RciLTF~2$7vK8XI06z(F%xlPZ=U{d!5=trKV8fr|y~QA7AQseCd# zlhfVMubZq%gaLCZ|E=3Yc&X3$CP*Lo13MRCEvTx(Bv$%5_@TtReWdMIJP(09)h^w|gc{3H>X zNoeK=o$-w1;BdrOfESYA^Zu5hj_|;VWMyo1x>sG@eLGK#G=|T>ah>2cSsLgovOUL6 z4U8A?(^nyNRT)5Qq?5>SbKeC(TZt2v`EKYF9?F-6MOveV59LzZ0t?MVo?-_qRIx4H z&v-?RFU~<@;|!oW{(f3RvBpM`x46sl`QzZ7FS>Q^>*%TqR_mm0>I$QLOTI(uqNnA_ zzG0d~!>r6QE$bxuR~!$|eNUyc`2EZPNqM?3e7A#PZa2!{v(g9NKsZEw%Ke0^276OzAHaz9Qc z6BXS(Q)=!}0t#@&8$opwlLUE{+734|=>>CHO3j_!hc#0tbz@x(-!aX2=$-`FGuEmb z`nhhyQZBjlNqCY|#L637*w(bhnkP{jXswJ!O5B>&QBp5wSm>kwF(^drB}D9T`UfM; zUvztxmY%sI#ZwJBIuE7pUZF#B(?t~I#X{g%C-V;o5<~xo;dgT?ZS0 zwtui%za$S(8fh{5K2AOZ6|S8YM|%*xw|5mH;MYf-6wcEc&pi=uvR~GL$E+4iu%|pO zE~IX(W^1v>2O_F3HN3=k7oziYz!LWB$kxgADeF_$#fYq% zK{}!koa;eokua#;aS4;udfQ}Xg+xY8ZAup8qT4A%L_Y`>e8A!;5(GD@lz>^i0nlXj zYaxSh{c7mKPsG0Z^q2Ra(LVgt-;py3tOPk9_!qSPkw%p zXyc^Sm;hvS5IBCKr~{NPqfU&jj~R8^<&Op00_MWr9_OnO+m2FT#PLbPrDjv zz2YDfFVr2qoHebhS>2kq45tRl_IGxal%tO{$?CXgQm)b#$XeK<%RQyfw3)irzFsxg zQsPO7FhwhKZ-^S^ilI8u>IlJ@30Cgoz^PUrGFgmFthDv+A>J&&C!~^RcDiwmJ5S7{ z#M9&niwkJrR>w|XXv(b8;lVK?HjYBvs2A^{?C;27HiTzN+hgUac!-*J8#L!OJa3Bc zax$5S6gJ0CFb5)vcu+b5P@DCRcjb~&W=z(H%{)t@!cb?>nG9ywu15KA@nye{^Bnc% z<%!G!GU9wDxi!C1pgTc|mCPq&?c-w~28=FmDKN?aLUavvAGs_{5a)&_@I2Tl*+-2R zEMDuX3)$XEcpuMs6OTe^o8(TGKKY!wx@aeC9oDZ@akN*;+ZG+lRm@5}V=9Oz=G#%) zJ`JG(h-7na*meAp7&Dvm0w!ce%bCO|RE{U0jGK5mh8yKo=8AbYmk%$KwsiGm#ky~s zq?{Uch%%(2DRU$I0s2iW`52J=PQ}1q6729sJBuRk`+C&%!$83ZO%_NyHA!f#R`|iz zai7;wKgCgv9ShkzHP6v?))U%WxZ!ClO(_`onilhGQI)@S5i?s0IJ7f>6K15T+*z%V zF;~On$zr2sz<~RX!;$H~pv?ak0Dt`?DW7q~$HD+~GQqK?MhaYGaTF57Q5PV85QnbS zI~A6u`qpmA4b~HF)4d}O^PqYf@1Yq0mN;*u@QlHxR2!|91m>6Kx&URK!0NHSKa@%& zixJm+s@h>SfvgS3i{_N}xKvvdduJnjx$&!23L!+$os#KO*+?2y4wai~ukGl~^j;6H zclt^VN~A1pdV0G5R-Cx_FvBCNL}bBKr-2=RUugG!k~X7|D9$&W+2XRZ=wuu5zKHi3 zFle#6J?R{@2rJ3m=yuYVcd50cF=yX?`CN60a#6X59L#Moc_Iy3 zGEl zz$$dteEbgN9uP4-%YgotbUzoT|4yRdFjlN_w`C`E9RA&FNtjZD1N_{^9kZhGrWkik zLmdTMO0C%b1o*zZqWj5u#t7wlTrKWyZ%5Co`1<8KvGNkb@rr}U&_bcwSx5c*ENW8` z=SBYKXJlIo`mxccei38+eK=uqhF5nub>wTI+F5UhStI;ClMLlt|Vt48Ra)mQF2 zzaRpv<34$E&NTp->{HGL9Lp|-ayW+ti&grkdW}|N6b&D)6;E{@)K@Y3EIa91Ps!y) zgvIiM4@XNR78Hx7!evXV#)YW3LmjP_<$aVM*bAYo)azb2X~`WB9tRy1i#ApK!c&V8 z(;%AJn)Za0$!fi+h6V~sTLhxu#F%ve*bL6;c<+K4{>0re=4nnmb3})KASm~_+c`?ev>EN~ zEUettg|L7x{xVh=o-BJQQw8q4TB^%1WA2j_jG+>1fe5b)Y)(eI40H;~luw_YG?`{9 z9-DO9k}K$og78M#Tk(ckNppd_vNRVwZW+(@i4{3m_(<>NqSeM&nUW0_h?#C5NYjqn zNLurOXd!{DF$dd|=!Q2D0)jDslXyd+N^i`*8rG+Gjf~rw zLGKH4*_L_peXCkiGhb5kQ4fg4UZ7Q_mqc!)+$#56o*m{!-C9|atgl!n0cK%6pws_b z>abzleo&X#;H6Z3kaFDf8m@sFE}*WWMBqhV-)5BEXOpTa(IL+>NXAtYEjyhCfSG#u zrCx4AVZ$2q2>Q(A$=7w6sD*WsJ005<^U+KU{%VNT znn}UuiHq-LQ1LcT2B$I~8h3U$s-EY%oQt#t?N+wR&E@+69PF&3{3foP(N6=3-&u0l z|4A?vPnFX_S3PlCX!3nRpKjY=xr+Z30iaQ0q^{9vbAVMg;8t%0NzzdqOwtxPnb`!y zx`cTQ@@zQkiq{1{90s*VWL4I(O43Vty3iw#_Ln@B#Gnp``CB*NJR&S~`OOdy*TZLI zSFtc0pON$8P;*G9o!v-t1RFhftwTyTUxyx+;01?2w1S@=QAjzZ(H-*HSG>QeqsK9x zvH=k0mn0KDWE$lAtl~P6!obXqo@JIo0sc5|Q|%kc6H&OqX}u$8;~@w2&Q6!KgO<0) z;Dv&P-V+Qx7ALGPUU5AYil%Q+4FHkp&28O(yk_o?DJGaAo?WXBO>R?~a>kE>1$lt{Ve9OF@MNewQ`BBZ6w<3fZ za*|a6&ErDWOSfX}g0RK`ZC)B1&M?xsqhnDU0|)Quvv%GKmqnJoH+X2&>Y)0edbPS} znawudly3PX0u@5EAnd-Ml8N8ekYKZ(dU$c!bsVBX!geBzOnrA5Oax${3FrYs>jbf_ z=+f@?47X#uc3{oYDFk&Hvc3TH__5tuuyG~8+1`eG=WQyvZ6#Cah|9>aFhlU_eQ&8FwDspLk`s9A| zB@+KC<=(EMTkbY_qq1%T+Pm{6<)@pYJ4UjxjI@0KSDdI`JX92>t__My6F#w##?3-v z3CEjK?muW|=jB*qCji6^F{4X%SZTI$YxFkG#+I5aBCMs%>;y~S)-uZFhDmQ=J2>}5R+B$^j8lF7}$%V!G zP$n4=wJj^4^Q(RXC$T%c-~;+jjJp)0Ukd5j%odzN-kIm9B=a7m9_>5z>ZVo_MtztS z5!sjNxDkwD5fL!EnaM}MQq?UAt&8->HraE#w~_fp;)QAbrSeaxw-QM@2V?-3@*DvL>vyVw;r{FQL7Jn0Q>4nljva59?nFgPtDNxd9s$`@O&Pe4sfP-E<>ywG*% zPjDb;wb9eq*r9Whr~^McR?#r4-$MF>81~t<8h4#AWY>l?@(0}U-pik$D-KI_d@=K( z1rJ!_8jHd}7=LpM$C^GaZJ|m^D_@Tr+-_!jay9lz7H}V};f)DE^Oq7Ld-zz$&Z(79 z*P~6%`n>fS7sgs@rBtp5=&v*N&~#rIZYT)L%DqZC|l6MOqs98peZwBp56ma z(B4Kk0e>JXBo*)nWS*n-YUE^RFMxbZFu8*7cPXb;_0n5=Oy~EwFSzRPQoK7e%)l`om5?T0m%FY;bbqoH@544pe* zSoZI0uD){$s73#&%kK*G)zn|< zeA*;3*mlyFiI6hsJFn8`xyrmS!@oT?{z33hsKmcFGX2oNN$!W6Zy*y9kb2XaFas|a z_S(I*9#jlkT>)90$GCygr<4&py~NGxnLsmp#o)rNDUeo11}qkDi49g&>g~m-mfMi= zAQ0S2TZiL5Yiez-=h<1};0x)JGOg=tH4E{=0-n?bvi`QKimbgIEzOR5v51)RM3BzA zO_G;(?b;Y|X8CaIni^$ss;7;?z|$*2>%X$z|4-x~#OXLc5nK8Vg_M*Od;9vFt4ZCE z2g5*wj|^ooEJ5$!O-~bPA<}U-uJJ7vi|t)na;x6i;Y+>N3i*9vvvp*7bf_6C3p?g8 zD9R-z`Z$tw1r>Z&k9(KxNb|)IzshG^KvF53@}rJ&?7i@9o@XpzRk7WUgShM1Uuxi> z_X|K7IEdjO?+;!--c5O^O#!My zVyDYO?GZ0NvyRw?g`12ka1x}HZq?S89ZgAXpZGn)o`Q0^XHCsE%Z?fI#nRk91D0r$ zSw58JfWQ~~5X_teyeFa})?w_jJg3xkkS9GQr8N+DH!vV@brE%s{SQZzW@JQWo_!NR z9S&VhZHN@}nm0EmEo8oRj^eZ&(dO)Tn<0Dxcp*T>mQlVR9d?PkU+1FKF~Z}0K7zCiC_d!(M}@+af@Y++H5|Fn*-LR* zadyW(hk%84zw?3hspL4R(<(((CxeJ&2C7s zAw~X)@EDC>GI4XH69PH|_>&jv)u?+Q69Y>L{eIz``CMG!>g{4Rbb`i)L!fukCFcjl zr=;*F?L;S3nOm?WN5-3%BHW2=Fc*iVJA9!^VrSYSETDF~_IH_qPnnR6*Nb_HLGsh> zFGXNQSbK|ZHZK83-Z@OmOif!9pjNtHIHO;~Sl?iKF6boRznypS7x`vGNzYdPUw`OX z+FZk<+7icI#a`5?uyDF(iqS;1tTO^!bsuMKOs#RJ6-y>Gz(JIq?eq z-zt%C#=N||m_)n!@@c05IH6oB9rI~-Krl|v>rFR59@$a2Z@Q*Zx3gIR+!Sz~f!o1f zv{*`S)j9QG;tX^QeGbauw%ZnsC+ID(j=}NPKDBzT^yVi1K_&;@2WQP4KO@vDdr(u2 zxnXq_`CkG@4%?!XUZ0hLo_AuzZ>p?@As3w4AnrDi>80t%)0FXv-P?9H>sdDDiId{ zrZ`qYM8K=2U&HnE*?syHD*Yi{#E+#3{K$3hG@VRt(kX5(C^!Cvp`=l%0U9qrxaKjYL(D_!PkcziRX{Vkxmqokp_ z*mnqGfE=lGJsB%8M6RxP81Vsibe(p07fDK=2`+CHsh8JHK%|KuzgdMJ#^g%+WHdxZ zfG4NE5EZ?!)4RRVsV561POt%q)2FGK=ijzO|M@u3_cmF=X*L z3-_5-AAT??jP^Ahp1y(Vh;Yrf&vlIz!G1>GNXM+t8leKvwe3?WwHrkCOS)F*8M74X9 z*0EWZg@A@5wN&kEBFMaNtl;WPF2{2M5!^{iG@)Ez>F`zs?>3-g1;|CpPri?bdFhGW zZiu*~H&Hw`sl(UC1*!YFDf(q1Dx+-3P3h{zxl*1Brn{%-M*B6C>*?-1ea%q_sf)`5 zJtBB&BT<)wKZx#M=#U}yZ^Uyh2e~=Z#|L#5BFIPKzBAn0ro5H4-UCd}G`bw{#7Q00 ztVZgo^5~as1fs`ZS05or$28*!tv>01#FWS6gO`|U+6$b71>$5+I2y2-po=~1y8qhX z{^x1_3rI{#pds@Rr%6wbdTd-{{Q@_)$SD;Kw=!ktTXuV^aZ7-_l!WG+$TPGDv#v#6 zE|i&>t#$$tk$bQ{sh{H9{k*PVCC>vh(_OXjQq?X8qO$74#Vrax%5myNG+4llr2JIV z!3Xkxj`barph_%`6e!HxCdamTN6Ap2kp1}8gezgLna`23qsSbWN*?w^@V8oR734xn zdZJS!((eX{Y!`_(t!*hND)fwusHB`CU~9fTH*RR9$;yFA(0#h}{>ezQSke3-9gKt; z?e<5PijIy<^wS4aUm^v$Eodjyr*20x~Y@#7E z33Cr2jB@p6%N090yZf8-T}0BMAwXErAPu+#fh}w zLzu{UFoP(amydx-vi#-Ha65@5T00xp?S1u8Bs0>ZLu;Iz2QhH`##|?Ni8e)=eKB{E z#UyMrDBQbUH&vF_{|q0?l}oSRMlrv7=4a66HCGpePqB&cTEeZXs%q3aDSgHt=0SuO z-LG6}d=eyzBqrVQXG4ydD&7v|JiNRX&%hyNs$4d!FeuI({%G+Q60} zR0?&4!;#MMY`Der7i>~+x>y9aU?9^#+%eOvArrUkNd4LOrl$2AULGxHaWM=?>J0m< z?iDDg_Lldu-$5+1*TQy_Qaz@=EZMhe%YD=OsIm~``dzq#`gd^~&~b#N5 z*dd7RYGtYL+@&oVg}R3QFhJg;r05Te*;X4l`=7PhH_ycS2Z`e{T$&2$80}r|-iSUG z{q~E3G)Ez#V`!rO4F1Yvz1(qA*XynENj4Gt3_%Fvn`>(FUK*Z;7W6?yk-Z5?L)VV4 z`pq;nr>&*m#lhIJ!xj1HWZ95=3Y;hRIu>_99UqIq3&F!s0G94}wz~Q#IE^SzSj}lH z6#es@{x1mVFV2qp72Uh>@m?zaF_TTkk>vwx-cnm{X=(FmB~G2s;uBJY)PS(BT+uA% zjwW?sW6YYJ3X0s4h5VlPs(tcs*!#TvxmM;b=D!340fLILvAr#kyynK<4FcTSLL6%x z1X=~q4FU6m0{t1a4rF$rE@yt~d4&kk?KJ={#*x1FEvCfqeMewV1MB*I%3A3A9)C4& z(j>ye0{KT;L^&R+-f3u*)51pVyurVV&qLFD?`U}T=%z{@#=v!lr2VN4Q+pASw}w8I zM`yBDFgkXI`ibbzlJp7R)*c_erzSHQ27s0`r75&ILK&bH5Q<{oZo-8H%Y(5dteuiR zMFNggTV6)c+8mBi0Vth?C-^vrRsEP=c288d1A);evH-^mUry-Ni$ z(AK~?^lejdfK=OzmNnMWDzsgJdm)I%3hYI@6lPJ{;E*&`w;WV00f9Fr{2Z7DPF|9_ z-d`@^e8F8iQKay=J7LKYn{TNZ$i-vuDW5;>aPV?B-r8_|F0U||%`?5hd%a`M&b0et z!OT!IDxENu>~&7U$!ToUKAIB4LQj{RaM)H^bwF*p0dU1R?x)qw?@^hN|HCy>{6<3_ zB9dAnYp(a0%&@Kv!y^g=;$qTsT|_MFy|))TEfMzV_bEZ5P0=lfMR04cvM_}5*JQ$d zV_+ui>q>TZ4a~Vv-K#CZGwize03Wtj_@w;=6CuBmm|kIkjhb1+0Q9TV>vndMG1uZC zvE7%!LbD-Ln;$;dq%)hAKAhV1&xQ)9V6~}D|je}f0YFGRis8zbL z*~hJJS-2ex7QpwoK23;X+AnZUoFi!_88ROhf$&G_1-7bm1mzakT7+=X;Ofq^nRNRm zYk94ogAEvIpCeyyl?`_9r+KHJ>N1r~oNKz7lHVJll~`I`%%TK$Z-Ryq2pXD!c2?gj zkNVJ?ZQ1~MsFrnTv9#(bQ6A;{5+*E@_XCu{qD*Hdf<#Ta2cC0n`VPV_b%Aun`XFKM z8!U-3pf%0%=zZ(LF+0zp!0>kcqBJ$XQi#=W6*=pqYsd3p$;73{+s3>q`bgQSLRT8Z z){M(3OFlL9QQVoB@IP<&|8PP6wNyap(s}O}GR3Y@-WPC6E#MCLG8WibmA^vATrlp7 zn2>r?Ow>fABf0Ozgq-v=M}$e&3i%ho@nBk~dShFsdZp>rQHz{nFLYB+C^dggy@aY; zabFCD_DmVp;M4~Xsl=w+8TPp}aamtGOB@r~$WV<{oI`*%fUByZyx2=kFrLGAoN9&i>C1|oDleQ( zonUP66^Uy$x!#6}PmaH`zA#a)Q7-xTZ0wVpMeE4)kBV95+zZ9P@9LvMe4e56*33)1 zf$qh;3q#%fv+nF`Q{qni%h+toaR&FRCdA!O2L>kXkt{sIPnl8E%@Z83g?t181J9{> zj+f*aqI*J$gsSHJ%zTA3!b``9AFE7}=Dbmo zad_i*d+B1SFl;9Zq4in(sS2y;Qi=WiR|;p47IJxW8Os;@tKaF7OSSE{ z#6$o`5C8TY@Bb~i{Otu;7Ts#;0!m;-L&PlC5n1-syb8_7mZuEd26+o3^ zG!3hF!>}qPe~^w29ot78LtXw_SpUwMEVzrbUyCG@Gwi+0h};^qgErZJxf5x0sd%}q zvbV}|6Z^C&Vc5fn&DI3uujM2LHW4ano0l&#HH~Bu_|)ig8K-wahCvi8BTemtbB8$z zjFm`Qe&U&J$TL(<{;1LPi5CEax6R4-1r|`R{+A^)6H}u>xmw+yf+5TwL?4EHTstuB z6wbC$DS9{{B&{(M#St|{Tq>c{Y9lTm_I0xJ1QMh}C7FQ|jraDS>eKz2OriE#l1bPW zyM`Q?biJRu+*F|Sl$N8OCjECJH_+=)!Q-iw~~SPGM4 z5BdMN`_8B)*KJ)X5)=ptC>=sXMVCksfzU!z(1jE`2vUL)rPqWKA`q%n#U&u2iAonD z-B2a8C3Vq4uLdNc_vX5v`<%U(xX!qDpZ)Xx%-|zqWPWo#^O#7 zw4O!jm!g13`SEHV(xq%5pxy2bG;Z)1`iSGc;;)9QAM6Y4(3^kkBlhx5ns)l8Tm2!H zvKWfW+7xsD1}M5{Kdiewy4de}w|q(1DH$E3S?b!|lDkO=O7gvND%1nFF)o;@NS_6M z#6-)Do*HW>yfq3S{&@xNk^dH#_$O4>wg`MLxV9H};{mL@C#^JAbZ-Gsd}ATm@?2<) z!;6OBqDH%4d*yVulhQAcZL)}}>NliE74ArDI2Ws}28OS2@f*H~K<^{A9`sIr&p=)6 zwN$E!X)Z88NlvuLsj@JOC;Zy_sE~NPYxK!N(*$-xBH9$fMnK4eKE)nGS3eW+v%-cQ z!JPvivzELgLf)oAF?{P#50{=UU76`WqDOb?u7j*M)gDRKm@FN|G^n7eSkQBmnUec` zOigz4vn&sddCzxpyoyYI&9}<&K%((!KX}xflgnEfQ@91$wU*?A^ATCDG)^gHdWOmC z-S+j)H_BJ!#yE~gDJdxi?I6EqM`a?H$DjxQ96tA_?n9a5h znMnCVB`=xIl!yPXO#2T$VKv0*QBa#J&rh~RNB5*D^)^I)A3x^G76n*g*~60)!5!d> zax9ZlM^&}eIHV9$!@1c-6A~#ZjZ~1yZjN21e37;x1{LnAd$`Jy0aN?9KF}K_*(XL_ zF6xfKKIj9;=48$wZ{brciA}jJ)X8Z2dQbkM=@VyXj`hf>KlplwQ(N85S`k-m`i)lS zD6b`eeq4kNtS48|O+muQAG3K_i>4M2ZoQm-2bp8#DNy{ro z2VjupkT06&T^LueKGd#4>&lU3pd_j7RGOT^!GI2LW<6{CZrYR-Yw}Cymmuiuy$+^_nZr}Cp}M0 zRDiQ_%Ae?4;%o#+z$}OB0;_1=>baekuBQU@xcCN#U(E=WVcwlX=2lSGSu5pk78SDG ztQ0`LuxQyHG}cu&kKiP|c3yk(W_a5blcZLf6gcD)?O`VT)n;I$utWfg1=?w|{{?a5@Q4b3C-kXl=bF)1P2J=QbW{%4@4B z&}@aaCBV-H$s@3#evwQOQOZyURI=s7HH)d7!Q8h|qRZC|S8d8*3fe zR#6c&UG?(~gDPULO*|El~=itO@IASqbbhHGPm=!*phekyZNKB$Ym* zCp%jn`>on%vaS35!TVi{=$n}JvF7@kwlwcnZJ@k4yhfDRQu0Ec9d3)eT8}@=K9?cZ9;+tB(m&E}h}tTtSIE9yFCss0SYg z6qoQtvniy#{e+||r)fIDT8vU@m1r;#2@@4Y+le~@dzk96+`_r};f7$ebveHZh8{;i zxcNVnZou`ufA^jbA=_SOGB(wv244-$Z#LzTFR9@rHfpyk5HIcS@38%Es z0oStvtaw>Q@#}stu(Y z19?Et`9bck7shv6Wb(1?h}0!JQX`Av7uwvq^5W3 z-QD9PBr?1YkDi8Y|37vie%`YC4#GpW{&&aa8s&iHCHmKYE-$%82M54CFbsC|ON1OX zL82=rI;?)d>Ufbj1y1cEh3C(`6r#3(*x>)YyF`|kBtq#X_T3*JWAVYnJ~@!8eO$54 zdU(@;^(9(WZDDQs-E}X(SxB*n2$RaFau_6v5=!g<7YD z3&!w)QW|jVa#j!z${qt47tv>@A{X+Gcph_?zZp1UvPbFUpX}t_312DpTBX*wI?7NH zaY;KHX1#_>rm3Sug6m=v?;xJ~^w%hne6KXor;(0_Wv~d*oGK9rIzoYGh(X|KIN`{FRxm3J8b_p0%gb zANDg^yN(Xs9-KBPIg7%T)V~LozAlkc$ueMsoE(UQWoTrdmn1eU^QqA zpTcZeoAtikf-Hr^0Es@HpYAmDTOpYdL~Ba!!9M!=%a`Wd2V*8{{ZGYw=iajHM&XlS zPW{LAmX-lZ8p`INv^#hA)y?yt9n3iYQ~3PLHvej+-MrAbd9>1xn^m@BLY!??h?uzV zvc)bOnBU;m*XZPM+n1n2s||sPXp617>7rADkkq!jy@pM?oXjE0JoffVKu_1!kaEXU zU%g`*8sh}p$&V<=?@p;ZF&ZV{Vf!GjApe!hvV-5!EMp6@>X`D%^6f*KTE z1IKzfFrtWw4)Lua4q=+sY;kq{W|MAhpc?Z|^bGh+ezV z)ZeIDq|@QX#I`I(dyV|KyfZ*5Sw0WG?{HhSi?&@ZT8p`Kqd`bd3r9Tl^mFN@aeJBi z!>4#)pBwkJZ+G*(-hXYS#FkviV{5<`)KfR8`q66+ieB89;Xmpyl&O$sK=cl;ljiT4 z!T-F&u+SNYaks>JIXN}yMp4J(|0AMTDmb2RmIushJ}b-)eiXo?*a@bw|C4l|TqMVk z!U3CG-L?iEwmMk_2^^K~O6^VK_PgoTRXhdJBWit3MuwBXT94mCTJng=(pJ7@FIZ31 zWvlbJCxh|}tx?yR*lUW$C_1u?56`c-PjOqY?5Wp79*$Hl+&;{b(GKAiU{%BT6w6>3 zG!Ta_;N1Td?OSb~HS!Nk`47xe+ELrtX>8rrehrp=y}z$vn7v52)uT{;C@`(e=<%oM zs4r_3}z3z;a zaRR$+%z?#5;OQ?PFeaDGVE5&s)qo8eXJ-cOx>A|1YWc~K`=T{f*FmZ%5pPC=z%CS+ zh+H0C51paWdD9eu-qf$U|3O`pSzkLlOKa9$Wj&KROwj~$STC?xcZO~AyjjnP_&Szs zS_h8y0@iJA&j;+TmL;Yan~J@GHXxJpw|3(vOhC>6%BkGo z5nN*lc|Cv1P;D|%4d`RTP||x_Y)8}Lj#xe<)Rh`^`{S|u(-dd?9=jqRqDH(CHFNeV z184TSM2XhA-+)BCEN`ZrfcC|qLGQoE=-*FK7P)R3(A|Mw{{9jJBs7mi3wGB<*&B zq^nbKvNxAwis;c#dQupg9@TU!k*iKGFVIPPsWQ-r=$Rl2A1(5Z>IH*S6*@@+EURZ6 zQyZT(nS_wDj5y_g*@Co>Lsx`!h~8_a^`-*57iADZdlYhIJQ-hTWq4N6>w?vj8>lNz z*HKmF-xusTz!Prg;Z{3Sksy1pTuR$@c$GyV+zQf>lxaiJzX&MCiqVce{Pu=ey!*Ih zh>F{d-i63ylMPI-4H~Ui8+((p!i4zjo5)Vqp9{gk4WjmR`-gshW|oW6*7*N~>1Wjo zuCHSyB^~hG=!YQ5F*JZBb>-1H|@DViMc2-9# zJ2FU=EXU}pbHaNthy%&0U45xV+A31+XQmzK3Go7xZTEY@Gt%uQjBzL`sz0XVZO0BJ z!3d^`@>}6N7Qm9sEnx8J+37Hnv2Wwp;4(C#)1RO^e|c&5@R~Mle3-{yG>=7VTB|vL znc5+H3h%S&hJ=3phcH!Nfd;^8t=0c1Om#_Mk@^%ZS|fjYuu!70ut=nM zg_CXhntG7Da`O=Q`b5(VK&1>lPunV>NdY9iD%_DHIF$wzPM{k0+5ahnc8QDVzNC4(sm8Q#pt5BTpR!pZHAnf!b71K_ z`gjKIVoieL-C$4eI)cPT86RIvWPDWAhkpt%|IWt#?`{LMS_Fhe^SP5v&lMHPS28a~ zdCJAq5yOgpVGJf**TUWjP96Yj)jCE4mdihP@@rug}-gXT2_PgJ*Ipm$$~VV;87{Xg;!H^NUiZcG^>tFJuWkNpgn zC_K+iZ1Da|cKH7PB0CfYCWwB?J^umJ1_jJts6EtUC+ZI@kW8IhO6UMWP#aN{&}(%k zxM7$BEz3w*2UdXPI^k?da@4j4^Dv!jeHSFj$~lAd&~2!jTrP8C;_=lo-mv__*RjnBIgh57B?5fHBnk9mh)C<-}; zzh=TIUb1$uI8^zuA}6~)?NZp|srB&9m7dIZc$v?Fswd>mH(J!0=+#uH$FYb)V;01D zm$%ltG-~7uhgk3q)0qCnfq<-|%F@7vO&mkyIo>qPh4Av~(Hp-${SPR~CtzeSzK+e1 zka%ckCkd#h-0!!(mL02ei3yAf5DzkicrrL05XAwaHC`TW6V85<18t%0=Io>cs<(~9 zY;ZB*Wh-Tg+16r6D3=DXYRR3Xu#`QNOCq*}T3)+NCK8tgb;Ks`nVG@V1YE6*&iEUi z;#;{fdDY=rU*Du-UR9bml{7?%pLDR0uJ?~!zC9AC#E&^#d9srOrKS)D*Fd`V)rX8# zZZ*+Qq*QLuoZipPH6S{JIs_KA{2Uq7?8itCev_abHyh_ZK=aGo!#csKb@^Z`rBRh|+r=@a);dr!nV$s>*^*!6C9+)+JBapUPv{LLh$veQF=! zTyClDgmqal5&X*%YFhvdriVVK8S4M~st?3EHkafYBGi;(E6a6srng|?gk;VC|}Pi*b4i0dTzv`YY81{k5v z+C;w|()(?-$=*sjR}D&J*LP9F!>fr(ePn7np%3{fH*<5d2x5G^ybOOkU<}zMuLt5f z*JGLrd=`E@Yd|kLfJ7oW9kTPWlPrQ2JW1mP`c1I95Eno-nH+3ne%rU`+~AV@&_rIu zGO?>fRj>Y9OV`I^EB-c;+$!!T8(npmB<9sP1y+R$QsqB-uK{g@c?Ji9;_DABC{UjQ z*>lZ281$OEN6t~Vz7wJv@DM)PTJczPDVGTt0E9Q5tbKFr&Gq(1dWNe9MnqDIV2OtTKs{n;Xd$>V}txB;O=%jT?h21>aMB_$wTC%F7!j@a;lKErGw zB;|c_?A7=@C=!DS4U4oVQIFA!cnJwb>bw$nG?Y!BdJhPiT#($HxhBFzLYDdXLV&93hjf5ROx0PsPrl9Lz?e<%NJYNE_uBg(e*QnO2RO9F5MBP&qY%xlQ*rgjCRVLZ!yy)9 zK$!RNpHd*SRl;FwTS5^TI4_}Vnbes`ccHcjxc2sP8IUB#iAqd5Qp$zA5iz253xZM{ zbz`UmNx1^$+8lb36Togn1SmzG15kT+MI{U>TZVfpl2lziH@D=-wWgT5J(P@~XE;M6 z9OV>2N5xOSIoqJ?psm_a_*JqoKwMZ(S8BT=t6m*42xcBY>xXQI%N6*cZZ@I!b1;9T z%=hj%%Ip-9$~hE0>|8b;8w_TLMirqnh@_jTBJ4;9O7`bO^zOR!_;M8)tT{jZWTUU| zk;YHNPfUbmNYHi=+$i0rv;|fC>8}8&XFY*h{3-2A{*VmMoVO}9lPN!7%O)8XHII<~ zafA8cxV!+Y{`Z+-{CkR<^w6QwBawo z4x3z3-8jTuP|8-zJY^v9Y@Kup!0&xoZdnPkGJjrBJL(m5j|LYbv;2B{-t9w~K>LO! z(k+2s^@Lb*2U8WR2Y;s_e4}hAMx9J2yj{Vj!O<^PJ*{QS~v&pS8Bc>x|S1P3D_C!lS*q6wKXaKNH2i5N0jHibH zvRYC)pgBPv)IM>|YT zwRI-%K#ac7_k(MG05ySHAS&tW`DQ<;br?rgR5gloeET{qqcVyh`&2>B6MV^A7{R-3 zBj)TT?)SJk>kV2nA@+tez1G7o5jb{?gOpp~<)uxTNus_M8cx%b3|*C@5L}}h?rrEA z$Wn&l*K@OZ3y+$(OxM4U5x|9Qcdi5B`J8yofs^wi8XHl3c^Q5_L>KC^k7sP1Drr0N zk~VM(FtnSFn^~%P-=PQ-m}u%YV6;LcdYNY3MB{I;$oiaiYp4i8FN_;A-vYX{(wSJ< z0`#sdT3A1tK6j|6{rTPTI-3JIZ`}TYRc9=3_Rjo1!KjjV|I!DN>!&|K%Ga+jez3_u z45Vf#ARx3-Fc?#_WIQH&>re5X@Q`G~2O8DdQU@QkI>+K?q?wFNDwbN$94M1u%3o0<5Qm z#7h{*UWcVtj6_L*svr>s>SfC7(wOsCDM@(9g&|}IQ#RgMtvzn;q-Ic&a z$b$n_9va{$=lV$13d-{06#ht25_rG7wq!qG%0XkYxJbg$vS;nuc~r~iPF@wo{oC`s zr@^k7dvxjtHy_<8vIp3%SXZM;riR#EXzAHe&8 z<9XukO6}=x#^HioFN;nL?sfnQBxxK)j^mRR1WnTvcs|)G)!YTbgeKIMO=?0hs0LC} zjHosGI!p_sC+fJSEj>S*4-@f(U^)nxm59RyR(JCx`cz%sN#lL~a29pR>x)Jjvng~j zSEaR3&)Uh=Xey%eyynN-8aiX+Z9oy+Bp3z-Mb#<$KTyNF-wQ>!-ztgk-|4Yiwd!XZ z^>Vk-$y$s{0SFu~_b3$u`aB@S0Lv%?o3TXYyta1jNImCWud%(oPY9TF{=-8@oeqX- zW?gL>{B0lRbzSDS^h`yXi8nqdU!xi5OSg6%fHB~M*YE{nOWP&?wPRfCmqBKZ^RhkR zZ0S2Tzzq+5=Xg&2XhCsKPOCKE!xqUER0UP{Hy_7t@ynk8_BIP9$2@HQrQ%s8?FImzvrh%}ut$(1v6eVchTWo5xWjk=E`>=uk@73Xby zaGKv=Gz@UGr7hI>C6-_F{c_taLp7F|>R1Yz>{Ho#Q4if>4J$-W6oew#d^Ms2uNQcpU!1(kCYTPzJ1Sjy!W9-q6mb^qeYQOdD6bB~VOBY&L1 zpdjoL+~`&7sn!qCNX*NiG=fA(C0H)lniL*?k}gzTS+YATq8z!rBesorRwz953< znK7)ov)Ee@ga6$qOI`8x50UzhOuTf6WyJE$ruzJmyQ;-+@D4KtzbiFlYCUBCRrkXI z%d43H%1_rT8{~f_st%*GuA%Isq1yLi=cw9)xk7Loc4|lmc2!s0^{zUCJ0S6`4NeX2 zNPnNR;dZ?sYHF_<$izqT?Cpz%4)7LsmQ35UCsx_&o7@`7kCwu@Pn?#-z6f6?T~JZE z5kmh{d}o4^t;&AlVCVw&Eo?dTr^W{hOQjDVKi+v6^Zv!#w-QxP9!&gcBQmsoZexf4 z%a9k(3%R7*EA|J|HA0T1lDXg;!368LXx1skp6dWLNgLVigs|JMXXyQoOv?Ogp!ZPyPMSVxkz!=g)ed z_a;%M`A-(BwhOb;M>Wa?geD7G>6Wo*_PMnyTnF;lco1h~Bq#RCpX#deRVG@1@=YX^ zVAyIe-ufa_#kr~7%7o(U@GG~r8HV;RhZN< zT3A-)GJ4`9B9ZD~R&4O7$h>xvLQVJx%orz^;O4i6)6^#Ggq-s%#iywE@gxLqW*Tp3 zvf4a9TM~NTY7igZ)O3P7aCGoXaB?tJ-ef-CK-GK6tSnzbOk+csM&oZ(nyZOkuFtUp zPEI_4gaMqz^@hyF+pBL1s-{|uc80NS?LC=D1EE*ye{PR=Gb1((!8_AI=?2p65s+l=vopenHmtd`XF#D@E9C=8Khv*mTWovXUAw_?LGX<^*@!| z7xS=*P96a$8?ML3ue0k8OX&X+b)&x=!prc8YdrOi^|*G)?ZLp~=gB3QWa+F&ooO%o zP>0{JMnc4&9t-$*>4E*9jx(dG-G(!x+cl|Ui5(S-%A3QE?~;`>_mM5C9jnOQMc;*D zEDb*+a#5S>65RJXeVK`I)zEJ)^c{%%NO$Y@^aW59f+IiGd?v2`ew{NHe)sxkcu0(Z zdqu`^6vOHM2#1C`#ICsIa%ZdFa0hlH1Q+XGgI#|Y3ictCfrvuNqutE}2Q=P@mp3G_|Yk7XN z!>OOlf}};)M!bOj*Ejv+aRFD>#-?-!kw>Q`Pm62bHwLqEUe&Y1K?26{wIlvDpXy|+ z^}^x1KE zHz6vv7!4x=uWt4W-{l3F9Ln;wq086~H7T#j#|xCSYYWpm7CW-tzt(9j*~nX>ULbu= zPzH1~u)B!_MI&QOCUm^xbd1_Z@<5rhDhR8le@rc*QBFa*uBkhD$U;R8^6e9`MnzAY(>g=- z$+OXlDftc&+|rfK!3G9xBF?0tthfihMOq#xO2{8meKk5?_6cNjd41YNQZGFOw{x!D z_0D{Jjdry=BY@_iNuLjgW&7FI@+V^I? zJbZ`Ikc=EwpBBn|sUwDWK()?@CPVz}c1&%YOSZ|jGqlp>&`QbQ(dl{zesW-~8+%WX zq+6xT=7JH$dnR)#dH}l8?UvREJ7}B0TBwe{M#f%^p4faf@3A-UO7O=l*p2lV4}VYl z!IdLVGUHgqZj3V7IbWYCi3g{$7=}KOxQO+FiL@9tIJk>D)-GqQHqX>@r|Y6Xil`?S zQOHvFNY|#9_Mb!=MqPegGSeptZD^lVx0dP8Y%h!1HM_eQ7^7O1xLDob5S*|&U?3Lx zQ6u#P?QCBL)N|&}{yqNN3-2Ej>o`lEaZAF(5|Hk=Ln!1M?pmF%8KLVN8KLqK1BYwX zb~_0bJ1xK|1erd3RV|_8L2cJAR!|>Ns%Go8c2;NgBk>CstxhuZIn#wVMh5DkLT-7N zU?R-~Xx zwYm17W9m=KODMAex`T_aA~2^vj(%32p2+M|U++~oHN1gB%GU)SHV+6CAlOdQQjc!*GW1lVOiDD@+_I+uRvR-O<>2zo%6&@X^!0 z_mu6w(Dk1XIzB70M74=gh*?NczJj0II}Sj%*B6^5$W`P0#hsof8aqbMxqh%Mgf--F zKy^&*khhD>mI#mBxV=m0E_|CE7Ff{!+?{8=h6(rnk5O-@jnD5YXB4b6|W1^ew}0u=v2mHw8n-&cLw3FEcM@Z)CsQD;nw)T z(3=Q8q;N~-_RAmMN9`4HStQZ|dDc2T@zpEhIS$KPU^VVhuA>%gd&d?;!t|Hamb50d z3fsES((CN5K?phe*TY6Zsude$DdpRZ6M4qO^}DPKaQg>P-*fpDp;(BS zXykM2gIn`cxXHCQV#@;w9rCk!X8K6i8UCU+8?ZN}@VMh%&o3K|O-{pY!8%jY4GuP* z=d0gSv*@$(IF}XH2;1Q(@62M20*m*jk1F34XN2-`+9%sTfxSZ9Xj)JI%HlG}6P<_U zbLB=(^|&o+v`Xk|1dI5NuO61r6XxMnX5Zc#=&I`6nm3YGrtuY-8A;E)9H>w?+k)R2 zWjgA0;s=t#&b$w}+aHTnr!>!t%CE3V**bvuut8+nD6kD=d72jElvk#Mjg3cci@jyHsU7LhY`mxX{(k ztSKsO&0hK3R!fFOlp|iw%o?ekhuoUIe4Ys1U1}@be>yPuXp((@*L|*<*2N1S`<9=v zrwvw5D7fE>;luBm-nE}m)iY3^Oh)!7rwX8CCMj%3ubw+n@S$P4Pru0DwZzqjr%c0@ z6&9*y39(;ZmA?AOQedGyGlW0|1wzJO&4|$cAmAMK8yxH_$RLb*he+|RRovap^n&Tr ztC8~Y-*^&w8hVSky(!IaVSb(L)#pJ9-ZY-gVPqM4k+#3P8G7ipW;p9#u_ewfby@RM z9CVQ<4g3Q8M0?47Wf^uvS*0@Q!u;2 zkwH0ig}cUHp2|G2#PFwqYWAZBw>! zFNsFmZ~)rJ&V0W&#b5df;xw3fQkLw?U{9KoV`_7e-=epQ3=!3W!c%7LSN@i0t-PS$ z%arQvah+aO&E4!a5^M5;(q@#=ivmbx8$($nhkP{%A?b{m9M1=s@W$kyX$>c?dl&Z zdQ)7nXY8M{F0y+=r>ZJqfR^1>#HX>%UeYHlNt2`D>=4}3B`bVFT)%iM+xlUxn zrq5|lWJC#)rKG(Fb9WBGt_*qQh1?a)h!*mFj&46MU*tZoH-28K@ZQhidqVu{kphgq zf8buv4&OZux%R7)Nc)zW=L_=*W`8pyz*lNhEvvspIZL0?Bn@7G5%`&Vx}J=D(E8!g z5NH4?3i1`M>G&j%fz?um$ZnnUK!^bJ4&Q9Jq7;^>Z$5d<)xqZqO`KnAN>aM%5)4lf zx~TX1H=zDoY}G06CR8hgKSjuS%8}Jc*{+IMiuoR6=KTiTFt0i;6lSO&6<0MoA$1YI z+p{^juq<33qi+1D_*KG9ZW@z0=R8ZgH$?1L<`~T_|DAl->w7y-2audttxIJ6k(&1s zHK|t~aIfTLaJ$pdg)#1(J=&VuVN*Ipf&r1d-dfiFjnZs`bWP1jd6?|pnjWnNmcvT^ z`ErDeE?tqiN1G88{DE71Cn6EwQ^u6vDdrxIu{PR2&jM(XOn&6!@qam%=oiIHr+T6RMviW4!)J z>KFFDDS1%7qnO{npgmZ~7F7`4Tk5C!&^zbTQrztpR~bZ!IA4acS>$jX`! zIn$_byVxUKBfFa(dY|E!%`Cs?`Z&>QG%6$8)7FvWRZ;V^OK&>-de){c-xvg?3(m@yN>8WVdTXH4ZJL9GWGG(wdGT9YfA%k@+R@nL)IxHuzN=}45I4`otbf+oV z@~5P_{jL<3Y7(&tNwd3!`k9-^=CB7HQphPV-vIwWLtNm8nCzawHRlsjRwS0j(c;xp zyjZX~SNSg@UNXaep{ExcyVyPV9;#P7f00+`EaL@lOnzuotp0Rh<0R-Cd)0VOtOUBD zn$n_EJVGFQGsIr0Fvryxympg?&qxw?)n;+T{>fa zb*@pdr)g5bSW2@s*hC11byz8xzisXqN!CmN`Y`fip=hLh)J+?iy|CII<%M6P-6MyF zRMiWitE5vGwjCN1I{4Y}*fcR%Rc~XJe%LQ(_2;5`iYDk<=*svP2l-Tm}R7>pOOsF)E=3)%7f z?Dj*h6;Nc|+9EHLNVX`H>f#~K>&hTFpDC zjp-o{pkE_i$bnLq&q~*jTP23Zl>3D{ONaXGd`ud&IMtK?tn*T|y} zbHd$Jmu&h=8Ufm5&P{KTXm{ls6r;2hgkPm7hbc^NZoa)E_OxPaJfkxPht6%mW}-@6 zSBU5+_mPh6wYQ=B%~+6KbEu?^pBz~`szha(RIuHi*`b+U_p3I`)5pKAYDJlJf=DoL zWZ3%X{b>B!jP%*8g!wAAPd=#j%=q<6ULH&F9+Mf|LZCJmmX;2!dku1>cyD~tOOdY- z*3mIWAv@B>MzVAwp-Q?Mt`Dm#C=EI=*9Mife4tV1JM_+As*TrZiRUMJ@?Y-f61o>8 z^5}>W$2@Fq$yeK-C;xBG7b41Z#8`ClrVP{55v9_gGv9vkyWSl2^ScNzNK!0$qK8x_ zi7qtdf*ZF!du&N;K^EL>3Y96X=WOH2uVWBn{=a*YQdCRv-WOed-S{n|GgR%OU*W_v zlO|DkbPrCzjbUHqxdhkAN36{T4B^6sLA>oxuqaTeuNK^lM2 zuC~7TCp{UoThpE4ZjrqO1F=#$TepIiE1v3#3e$1*$s<`dum&F#GDcy#9Jbyg=+5mM z=Sy#GW$=woV*kX~ym$Sn%cr@myCyzxRSGa&_}@&I0tP^C-NWnnD(4SDir8U~{4J(t zYOy0T^E6Cmh#>{Svz-VyB5VtB9p@{T}IqHaL;S0tI2xYHq-KY;0U>eX_qpwA+o}7qLK5Pg_+2bm6%x_ z4c{*3@Yv$#RLa{HPc3`FPp@fi1r7Jyyx14QxN`w{OR=k1ZRqKEWZ>epm61@9{YO_X z_4QV49h=F>)?%2BWy|#=)Rmw5bwOS-T2|dNqjiSO7d8qT$uNT6d*s^t3ZPh>;pcl5 z>~`XZU&+p_m8L7snk5u_1i)5IGUh&r}C`Hv2&Ol^VVEZH2<4g^lyJ_BSI0%J}ygM#PkzIdeCLwX=J2Q?h_L zukW#)Cu~b;80yzv7VSI2FHE{S)3=#xuroZ8 z%kiwqx?(W2O&r#DijiyaxaC#at$QWzo$Tw(40EPaAyMqn*iG%Y8QgwPx$tV#R9T4E zeSPN@yC{QbRh62)HJzn_Br?9m;CWuF1Slzy(pmuAxvnlx_O=;i%Bkf&z{h6w(oSnW zo{?DEx&FKQ56tQxmb-r0>OAY2l>Bd0@}OAnO#A2odm2eIL(;%fFR=cvQYHbMI0IBhkI9UmfP@7S=G~H84seoPxU;1*U9d^V$huaQfv#LVY*AclJNvcf%|wIwO?%7 zPT1WkKha1`ISf1V8j5x=Q^MON%77_(uGJ(SyH&a%)l*})|CP#&&1P7=53x6xDU8eX zS666!XNN4VG5Z;0`b1xX{u8lVZruKTm&7;o>IyX!Hav}RgA}4=>zz3=S*2#QK>!Kv z2;@!@9QG?az292jbl(-Wu$5@U9VCF9D{g2d@9s!V^OCb6X{D>6(rxd)n4b{kGV4k8 zi7qgc9W>SCfEj=fk&4W4&8Q7}{QM7qFDu2q^iCefIZD}Zgrv2f1GTg1eKM9a8&Z|K zBJ`*nMt!b0?%4y=35{x2h8rg17ueTnkfs*woC#AzUnQfrrAh@giH(CU$?k#WM=3GZzd$Hm`w(-F_I6LcsOmd_btHdj)(Rj8Mul{z&yOHPxE;VK z5eC=bu*|)t$99a@Kr5)BRa+`b2xvXexiO1JE6|JE zSMEo2d~3bHZ6H<&U5yxMY^e{mQjHO^v2*Wi$FdQR`#rLQOp4KXi^>L7dAD099e z-Q|Pk7g1yF`R@HJ zORPtVt<3E=Pc0y6U-cx`En3&wrR=_Pd_5wZx{Si0Z-! zS#)gGIW;kP=o5DlA7A<3iTU%CrAMKMO2Ultex~BO!U2#p-QD%i8$Z}ffR9ztaj>WQ zYwKFiw9Ugzj^CeUvFZ^d?p}KGXO%`wd8mM=iYbc2M>QhzoSU*t7$-_=x1pW8YSQ@1 zpSwT+&MEF25{7-kjeX62k4COfo0-|WRj9I@_rA(=+;xR9;cyW|5+jdJl@1J4wC%~- zBU#TB9&8BSV!z_^>8&X9t;5Exf3u9xcgyU2`MmO@WrSDt;Aqq?{JWLQjLa8q+PYE!ZZ- zn5Z~i{v^mEJJw)fF0~b98-f1rMT`Sl*`O>ojh1vO#Wo@AaOJiMy-HSSaZo@@kwgsx z=a8p_=b1V<3!TaOxIGMohqOrq5}25z-Mc$k^57x8#e3k|Vz18n#(XWF zaBarbWA|8ppsW|L6rgKnk1ZKV2gn5Jpcxs)aQx2f^2eoVvgsC+!cU}_ zyM0&nd0H#__&{>{{Q{?iD=}%O>~24&9tbVw6M*QEjtH0H7%E!5|8nL%Jxq1^I4_6o zcUK909oWOZ7E<__=eFv1NEwT3$YnT zXD(ag8z*whK~@z~bXH<$@J}PFTd-c|)Wp=~fN)?TBWa_|_?U|&1f0kqOehAcT@DzT z>S#C25)A|?>okPEz6W*30?E~&7E*i8<#hf~sJjavdC0=TqG&83(X!|NKnxuM`|9qU ztN^-)sPe^^Mv#-}vDm7^zHfX3^AF!XKCXp*ng`S~6aJ!p?FL(y@pCqY5@q@8$?PlZ z-(hI7Go!31(5G3IO!T;YzJJOIi8J^xF~9je0y>q^5B0(Vi_0f1m=_=B5 zo42m#xMcbl@%Eskx%LtldwV#L#;mZ78e^wr{|qZBAd3-S0PPFmQ}PEc*YD7~Ppd)h zqc`$A4}@DFBQX9JPE3rQOK(zqoh$5(#B1as*v#FaH(Bn^KbXgbRGrGRGBm?#y$wFSJ2fJf&AaV~*AacZayY z?*k=m?@LXdJ zb_?JzuVDEiEMN-n6t%as*+IX3>!A2&PJ}Y}9=J#hzGr~DXYhR&x2m+oG)>P)^U~Wd ziYA^~|4;q%AOF3uFK`uwSFb;B`j3AD9450O-Q=YCQmQ@R&Us{B@ic|J!Hn6v3DCc& zx#_Fx_aRz^**HNr+YWp~;&X5BLJ*_ST<})Gt-$$FU$mpfSfmM}@qUc&m}C%&ETzRt zDv3%Jv+zWUoArKzwDlPq*xefriYaJug73UWZ$lDeOF_~F^Z{dcRPesc$?U3(SB>y? zc!mF?gqdM-v2dA%g=JB-n!$y0Y5%y2Y3zV}gah)CJNdtquwmC};%F@+dibC?QUJgb z)dAU#yIOaZd`gpenYbb&x+y?YX4j|euy=sJ@s9{K!R09dD@0~8qt|#~e^JaZx7Sps zPW6Wwm589T#9PG~8>e-VjHHj6;xm&goUYGt?dtL6tWOfKP@Y(W39DtMGROIHx#+F> z*8{B$g`Bbc!CwDnO6q&0U7b#bK>AH7EfQK{P){dX!)v1+aL&&hnjh)k4jtHZV%=>y zub!3PQNK+BT9F1Gj%+*qEzw+GFjyw1&5rhApwZRZC6?Vglfb=AtgBUaUBZ4Gkdu}M z)Z@a~+dnNPQLM$|h=|%*Q?V#9Y{N}H5->QJO z4RoeVJmKK+Hi_R5SeUsmVLbZD5zbd~z!$Qhh|mE^df0BGa+-37OSojncr@Y%pHoD> z+(?A+-f_hQbI^@c`oRg*{Hm}E+>V+wd^!%g>q0?^Im=F^g_b;I%09<>yfo7E`Qduv$xS2O#Jj=3 zNv493ppyFZ={G^(I4+XAhNxO%EV{Q}-)=8^prpi(N7|P8@Nu<2-z7zwT1p4h5=gD& zA9qpU+7Ful{X^X7F^KNpIkJjPuu5Z0aGEb^^Nfp;=Nu6-_VSjr3L=PH{dVzTi!`GO z2QNkrgJRubvu;%W#!gKE+~)-IF!@3Q4#I^^S|#^%qWc@C(A+W45~vH#3qM-w!HL4p zwW7#ZEiTu_x7)9obnkARl7Q#(ho{LG&G(h2IV0~)GFzmDqhyaM*RFq@q-P@udL81w z16Ir|0xJR^#SuG17zpBT>49gfM9BB#&)$PFh}v3wYN}HgUcL!t{gtR;Y_^Udo4I=G z>9#wIdRfmyy5E>zjfJ$Rmq#I}%fpg!GPd|9P)y$5pgn0#^T0#wS0%{{yh>F`e01HC zJE20Df3R^_b((>8!$X2};opa(#3uXt4}j}=c*1m5yU(j}-^9b>43VICmKzTm&T}SD zf6%VU1xu?KCNvmE9GBkeeX3(%82NUE|7Oe6?N0jeZ<1z;|A4prDt|CL3V?YMJ(JQ! zBi{HIGomdgk!MKkYwLQ=e5)fR8@tvI63aXbF8V+5xk)T}B2h+`3v4x^Qj;jb7uVBQ z2n)!^EN8abM3?zmO^;H072}QZcC0SEZbus*YzIeUs^W%AbJ>zMSI9QSZo&tCc0fcW0k!|JYk-LQ8LfWs zENRU?I46UOk4I^FqK0E1 zE&5_)-I=@=oB4R4$2^mkbX$7sHCR+w6;4_%6oE_n9kp7nTC^*ytV@806vO1BpD3o{ zqCzRQ-6l0}op87b>$);hQ-eB(>SABXqsmzA5|6w5c=ao-xsZ_VNmT^!hx-`W6b`AB zqfKlKjJ_>d@`eNC)r|?U#oH12Ei%g}a_R@($=wYKWK$WDmKyEVSpC%~v!mCHBdGXc zU$jk}D!-W`Rnu7r4Et0s62Vq!*N&~wHx(lAB|W|SXG|#t_SmwB9|`nM$FPjhTMA5t zknNT){DKi|q87j|>kvoLzP(-!nNivJ)7G-fx-Itn(kkL5BI^Rt+^^&dNvrHYgJ7_B z-UA}Pc;(EL05qr~24h#@bOTq4YpaniipiQK;nbqOone27$TAm@Sf;D1=~ZIO00%Oj zx@E@8Ne;M_&7b6TpQ!JD&-gGxgh9~Gd6;hqMYun+ygYN_rhP@KWcp1Gc7Y) zix~A5Q7thSN^lt`bg>jx_*ry!6X#BDX(^=t@&j!39{-Q*X2qUXsnN}P_>wX2pWy}g zvxdL@*|j?a$N_2K_>%qKs8yW7|18wX^nZg|{ohfQEIiUT;sH@v@jTSLmPJeL8pcQqXQiS|wg?A#j6nh)wc8;m=2g*%k{jKMNhSh;~z66Ki zB-DH(U?ua~QBUh~a@tNX0aTwAG9{vHaBD=<$^<7>8y)Qbfq_+y_xc4f0qBzo*{$AB zHXXtDL&2Td1t5FS8vfBeXyLhJ?q@p$b|kdWjL+*^0vtcwvDsNzR4O9&(Z5$@*}kP3 z^F#xT%&qro>BMYm7uk?oYysPgei&?Z+V~$F#&;l@O?(298BX>#Wcu(g zyY98taT?=ohf6nZ8*ckD@>@Z7#z8WiMsDL#gXCK>Cl1fw62`h8h&DG5p=;2QWZQ=; zho)f;Wp&31^iIqeMt0z?;S=C2jJY5N!78bCNXr+-Et+ELbw+{~ zJ+Kffa9HDLg8fYN8RUTZnOT;gTlKGI4hudM7T zWz_yD2b7a;0{#Fe;18_Tu`~Q}h=E|hoSjMZMw1$aF*iix9aS`64dT40QF#>3N=hA} z553ek2tQ51tx$1R>u-~NB3I=%>-ugb(^Ka6sO7v}! zUtmu1KR~Onr$>g2rbz540)!DT!$+2Eve0Y65PF_O`6`WcGEe~asw|s9r5qmy3*wtJ zW^GtpHYEtm+iXZUH8Q9pvAAL80gq^O{G+-fx_1^G?y$7--N^#kGqb zFJy}L@e|yNG;Yr=`+)=*fed<;PP~KCRFEpaV2&&K6S1=H+_>1+i&1Y(PKB&bIBINr za+&YlLm)g0Tg6*sPMomus2B?Tb1Gr%qc8B-V;=)5-Ll>$G4+r4p39KIdMyg>gm-F? zk{LxIBqb!07v8LM;)nr+NKLU9-o@tr_eGQg4ozop{Xw-k$}$mGk>=(+aZMp1ieK9Q zFY#6J>}E{dl~PtSV?{7&^s<$^==QcJ%|7BkuDAf%{1WKl2@s_^ah6xnYwXrpGFmO> zEnD6F?OfbWP_Lt}fh81-3DV;~Pj<_u;W%=3YtwE%QJT=&6{z((>?Ppom~*%ap8ZN- zTVP!vP!?2%O}|&3ona|E%HNXAx|HvhWBH%~h3egA?w&|78Zu0u6qr)7n%G*j43o27 zyp4qvwY0PqfPIU;RayUov;7tfoS*`bF0W2-Ts{y>z&&N=q4RHqFT1r!G<-jomY#mm zaN!qu)Z3dB+gJWIXy=*#{qwZbyZm2HFU$_#Z+jsXfY8mqv>%yPs`8mR98{yz(hC~6 zy?0as5uzC{6mbvK#5*NqwNpDCGh2gs;!n8seNBsXBEg*r>CsUna-UuFtC&TRsI*iY zAtEL;aTnhMtqtixt`Tcqq&wwtD#i!YJ0xx!;T6&5lw8K+;g2~G^VJGIp~+qXH$XpB zZ;!Dvfwe28#9kX4OAG~#iv?RD)2V$fQ)G^iMP;nZx~csxGf)r3K4rSarSa3xP(enz3-h8vIp%r zs-3&ejz}FW1P#{UT#ONT&hT%ch{o!6loTnX3nUmw3z)?8SA!KxHN#t*)f$*V%)NM{ z+Kv{ag+y7usW|)V#~h4rEYbVl_V~r@a7sNV^3w#KU;vJ^(0%=jXi(5AhF9wADGN~i zoWJ^PHJ=$fw}d+1Cuz9PDnL@+*6d}Q?BEeJzS74i69-spVRk|xx>dqjf9 zn67nY{x^u#f9JPfyUT=HGzZ(D$w+Tx&-<^bsc}3G<++f}eskT{^W%s_ssU-R4_Bxc zvZKZiBW?{CCUMp91?L(Ga4R>1xi_=TrvxnG{FpJ9185W9#Q6X$m!%X%PPUQH_TXF)^pKs!a=4o zg!~})I$Jy0OKrb2ScA98>Z87GM^oncDW|D#g5Jn$-{s=EqIFbz@t4)B zI@$WU$vlO3Ct`FAvWmaoy#}yM-E#SbM_To!ZVCOGfm&~`3SC@Q72g@L;Z5sVA(b*p zxrhPJGw;kG4;WHE*PO7mY>(GlZZ_nxV?l2VB7rMyPYBXGapHRf!+-vmw6Oc{o2MrI zY(D+#BV-)1r$9thRR3i6Y6G~^Y}pb<9U!>mcn-%l!X410xH#G?d3lqk(1c05X7ly4 z#D5;&05a6Je5?zqaoa_JbR5XQHrv3 zL|pA;RQ_T}p@u{mwF;cfX>i(kDziUYwt~%$JZ8@?->50b33Kvz8id&kZf_jkY8lt! zHv>5(fn10C6g)XBVKxB3RZ`Geq4As268nOwvq^g56LUg>D-ooGE39~(QI>QN(xQID zuL{%Y%oJY++-!S?mGvt1mWB_FYKl(gi@zx?fe6fq_2kHTwfFDNZ`9B0QS7g*94hd_ z?Wh|p8LxEQ_~U*PTU3Cw4bP&Ls0%g%aGryg|C$HW;$T6Bd%NdI{`|yHp`FcbZBeY- zL=_(Hz1`KiV7$M*oOtA@$Z1h9*=eIkSH=?SPH?`cx&S(CZDkyL<;;Qq*;^GKq$(en z$3{e?ki@FZ`JSHh2%2$<{|NY%0E1YtG}=vQ&4kDy1CBGQU5MGTqMFv6NIoNx=)sDd zV1l%b+h;+RZ?dW=Lg$;NBTQ;uB(s8@zRN>EiITxD$}$S@a~k+~prKpBksk={?!kFL zx29q=mh)78Sx*Rnf1fOTWtMW&$QPMW@Oa!8C6l##TNyebJaV)&ie38CR-5OOb#%HIu^ z`R>rrYcccZ=!}3P8_kg{pcS$jv_jUzg~7gJqc;#EI3FD10v=g3-@RG&dt`PdQhwDJ`5 zz(Z1UIgg|dG=KqO{WtJ6;_mU67h@W!IolC3mA@X9R9v&_bL~~*QWeIqk6Snz?WmY3 ziji&5v+`sUtrQVqpAqPNGdddm)cpcs!XKjoTT93i8BKT%bT<)LsWunbOjk7jrtm0V znjjb(1{~aRsowe81{^^i;HLwQUOvWh;p@d#MkzC8a4mXjOQ6>i3EA#UEc={fR!HV% zS_pw88ugO2ZlQd&%@ar^CyoOgPmnr8D1R;c%)kk-d)t&fGca?!rQnZ7rm#w=RIDYSGW#FwUSBK*LzFkc3?(l99=#?_RCRb3^S%$ z+#Fs_V3W*=FCu5-nL`etG!? zE1E0<8sd^H>3jCMl%Gaijkno%=VHthB@!FBo$(lt`LL3pilzz|fIMgpTx0CnrS6v2 z^Znz@{LRo zKPBw#i4rE3YX2Bsj@z*AHyCM5|$YP zrZf`KS?_)b9BTk9h?Z&a><3&P?dUW4<2Ewe(7@H<(XY<+2?2)lg#t*wa4T z4AwI?za3iUi2=&3s-H}#364Z7qxDamS@ADleTp`8)kD;s*5yrpvB1MY*S$@=^DkaT zp@6A;e|N=UWOo^vBloN(kVSEy$*hD9T};YGR%E!3kg!DtKN~5kKHMLpFNGeI7-{VP z!x*-Y-m6#uKVte5i}#?BH9DTBj%g!@U33v`kePLbxM;Q{H6b}5umKLBH&BO3+otBC z-rsMK;}lylsZD+elOc}}DW?iO`>P8M+jZ1ux#`8Et-5;sS;#?oq3}PHa})O@%;>@X z5EpC=e-;mxLO@?BYv~d2klM+f|5rH{afJ>!>V-tKO7-!sX+uR;25oZewB(n*t1e5} z1_0whLzg4H4)_VzVre8?xz7Cm|42B66u`Q)wi8GG8GY=<*n>7T%rXRf08sJzzP&%TxjDC04)OaU&tAG8PF)oZWe0Jn`q1WqyWfgEh z>>h54YCwq9fY(}@{J)u$(_r%r2nZk~te`AO#2OI!uHtg>WUQuG$>#?0Lqipxr#yK; zkg}vc`@7h!>Qo*B7Tw+=eU+(5rz-AQ>jM^GLCN0sLY$5k& zrDX4ysFI~Pj_D6Im=6}DtUAr!7E>wT*A^8&66fC!j^kf5PZQPP56#Die*}<1qc-vE z$BmB~&tuS(@cXLFx!^*lMgHWbI}>J8CZ4+TpZV`Frz4)663l@`Bo-(2DmFcL|2}pq zKUGGck2E*U?94u6&XEsBzT$72vBv?r7EI}(@S8Qn;}Ag4!k?75f@!PbzV~hi{74Vjjr68 zKEIdxV->u=3T{1X8Nd4QyAiUzS*$FxWa9PZUPI)$<0?LKCofq3tL4MXN(U@i)QYLSowgMNo#nLiz=XMV&Xdi9de>2?gUqTu^Zx31y3)4txA9k17sso5s)E8t zYxrPJOq#)4n<`P5q$Z8|r>M=;Xm_i%vG5q<7HKVhD8rC@H$DfUS zEitB|r?=DJFzx)~(FJUM58)F#)zv#r~R)0eCU@*Wvr! z4X>}?I+?_^S49uHfl*j%j8uH=Ow4{H?!DE__|?FD`h6>8CSLMdVI*mw9qo!( zYZA?Q=iF@un5$B=lCpnWGrc~CK3nhYFOVr2?}@D1GI+K!vC@q=R4v1$0CkuWC!o$o8{wS#!Bc~R*?+!)fTQx$FLnW-&9oCJLQZ#`gASw+@*=Bftmp;Rx?G{iUzy< zd_>%q|1ye6+vHE0J&i5RTY%OSpz(l?uh_ZH&~+y(NHbi3{^jrn?>c1HS~7!`zi=ZD z2cUtQUz#U=%YjryI@HeaBVEISNvM^j5ExGlIjV?K6h0^h-JwBy> zQI9z8T3HO+>TlDq(T8WrCxxU8G+4e`m;h!ffFiBrb^8Rf#~^4ZVK&7|eza^gJDbrZ z;r)G3&+urAr(%novMP_IyPb6|yWRHSAodP`-=#7E`$woLIp7k8%MR z)cns1t?DfeToMkaB)0>7la5@?=YI=(1s5i~=SoFukFK#-BfWsK;lDDON26k3)-{GS zQ_q`u@B=k~ItMW88sK*yXl+JuumS8hy{Kv)8z_LqQq?aKdJ9GgL9kJT2j}H5ycB^c zr|+QyOEoBJN1}(@xt3`7gNC{4D+|Cw`&LdJR$D?C%TJBxTLV7RyMT>qhd?gS(VHDfLxS~2I(RU|&h<=*=ug?(NCn%txu1GgLIs4VEOZI$ek zcOjgtArN;6NpIu8!;1M8JJ2g&Uk$x~G^(!928J=fTN_HLJx-@Vqf#SoOawv28PZf6 z#NPicNQvD7#A*=wn|rhVh;x6djKc^%G6_q?&+xnEm|6j(=C$(U1A+&9*%ZtnhO}^V z^HxApp-v6E1H{2tJ~#S1V4}u8`c~B1`%HeRbc|x&95T2-RF(^DLvf~<4Wp# zZR7{i>g{W05me>x4`%PN0=Bt_8HMeJOL~2YaS_Z%IrWKdy$6$9cz$3KgKd`{Ii$l zA{;u|UC?JV6z@9t0;pue_A`w4Ew+NTd04UGd=;^lWuc6*h$Kmph-^sgfEO@7X%xdSmpiN~B70RO*LCbCwbc#o| zh0m!9kIcRB-dUbzb<_$Lo|*uN=mhY|m$qxg@`=1_?4D19z+ew;Zwtpp!R74k$v#Wa zcZrGPyO2%c25!_Y!1U?fdUE>-gQ;@dBtl^0U;Lv115cvlYT1>7ehP4v&I?te{ZFZ} z)`DlsILNV953`qeEz{@1mlEV`J>*9Bwm((_Fm{NnN_6kos7G3WARh4|;CRq#fk< z)cWtjU@To}j2=u;A{7=@*!A?{^1Ene!f(sxJyXGpuCD~l-Yh28VYk=8uz-9`6o8Xj za-h1`WLf20z6u{Vm_5+Ax{vhf74deZu#nH-2 z$nJVq90y!s^;_)nP*KiS`~FTl0r1e&5sSGE(xSjrEMjN1p=kfX?l*3*#VQ_eKpNfO z9c@(wDRwWD;%5|62Xf6DOkEYr*Jw&RZgj_j)RTiQ`1tW7u-$6>)fsU|o=3+H&l8Ox z=zY|Zjj@gQzDeTCU$>X~YJtDTrTDcKtr;%t-9NQoF+py|Dtg9FM#yLHuJl~nAqVVp zdhIS4JM59Y_lw3|Cdt=xhTm>GF!vKjfuRcNeXlqymcJzL8P9+00wDg?@Ecd>f->w8 z9QMAt_mzzl%$w0%Kl|eGK*Bp6trrN`Ruf!0+Q?%r_LlYvnp`%tg3#r={`nYCe$JhU zDmYkvnlXh%V=8HDF zYRgkXu_*c`Y&RZ$ZI;J z`3JpvK|ncw^jD7$=!IvKn#QxoijG$9rcJZeXoQvEJC94a7G*C7B=R#!4FZixf-uk( z@jO{$DdtJc*2cdzoE9b){x_s3P(!kZW4w1JTdx-3^JZnODyGhhzd(<3qLUY97^l5g zIlVi77oEWK*SBFqr1uQg<}^k*(JT9Tzo?AeX|CMSBz-6<|DvpVeV+5yBiMEdY%tz? zZ;OS>`xoA0A*;0kx|w@^dU5*)C+=GVXnd|>#mhmp^>^E*Qvg}e@`0fhO zK7NZqeXjG+RwYugD_dBCD0)IPHgTsZ(H1wYk9)2?Sc-y+9G+jfJb?BUHnI^+Cy2r+(H=)jnp@29_<6Re!zZ2CE4a zgV}D3k#+`1Rnh*=2w~LTkPZGzoQGumUDHsKhOZ{sGjjPxEx9~mNuQQfx#9~X< zouN3isV;$PTiav~tx%+V1E@@dMt?xf@c+}0@Ibyx=8gqwB4pbJ$I+7Wx6A_YAR2bp zZVOO}Pf@#q+e+8wqx0M3GD-kHMxSg9Jg732>zb9{uQYwC+@#fCB!Wz331p?5w5__7 z0N&mQ-XjarILO=01ob8g#dH*PuF2#1)mP!eWk{LI4gJa zH4%;PDuJt8ZhJ|M7hSdcD;oE5AYSg!#jw$!HP`oRwHA2|6|tNHi*a=W8(ZW@RwD>ul5Je4_^pir zZ*_O=S;;|fm6--$Ux`Q$u|p{gm(aLbMmo-;*rRk8>Hm#jck?u;x73K|zScVlC7Mr4 z7R4w^61yEhvU>n$`5@IZGom`9QRxDUD58s{bG7f4t zY|8PB(Z^Rz_!zBBv?>!I&$Lw$X%_5<$F;&H=}n^O$MR}`vLPwt_L^W&Np}+a%uqB6 zK@=p!`ip?E?o_bafkec{-~rU99Zq9PGx}CAxsP1nFZlVB3$ygC7ey5_QX8%rESD~1 z6XFqVXN!L-lJQ;fUYi5-<^_oJe$9+9N;OR#IfQ7qv_7>P*_x6;Ps(`wa@RdGl02(D zMXlVY4k0a{u9Wp>s`vZMx^&*;yy{N=u(8ObH<{NgW`o}C^Y&7F-b`3ym3V`D>_Luw z9!jNy5$Rza2A)d=L28Rn<`(GjxSeTn8Q8ii?E58GL8Xm~3k&6IthR3u*`@P;xjbgo z^6tqn>M7q{a)6!t)o)#ycoe?4vF7>wi>0qxQ<;o%tbSDT zCIRTK&Z1G>PZuINY1h^*kDUUfrDmzOKJLg{BVLinPX@Q$irV`smR+Vf71iNf%2oubsY9zj1?Ry0|F5yvgvD(2-V#woPD@%ji2}2FLSsBRchJ=w8 zpdMC#TCi_0%WVv&#jqb_|VQ^dJMd7dQykMUg(40R}dwbTj zVi$F2C)kDHp2~>Wh{|{~skL#%BMMY~EbgO~b8cs_XJ?TA`b=ju*Dk&yX4t5=Cm(-1 zG1h}sYU)X-1#3S0$`sxRSmq+hkhbOiIGDlrz_p?g7r+ZwYj)o61UTUc`p@nv8kvgZl6FJHz@1m&>FMbNV3o^KtY_AT#s>9O`XW{L)Jq=i?d?Twt6KE% zLLz%0jEsO4WfwMASXd^wJf_++y-5^!k_qsBS%DpEtBhdOH?QGdQpAg9q<$Fj?fdeY zUr%qVKh9pK9{VwM=SLqo!+3Yz7hLv&4`zS^I%0k6PF|?bJS$c84UeH8*Vdvd%Xb^w z%`u9ut#;AEN`R7BvDxR5oHd8`;de}g7#={+yv+Jh*0?I+hiaJ}Kc3SJ+b6+fc4Q=f z_bz0)nTVr#n&K5Ndpf(ix|YahHoFd#87R4Av$D%ZPKmnO)jV_dP93*evJwsx@-3o$jU5UvK0^G568( zLZ(Z1DakE5zUS5@m#%3X)QBd55D0{g$m3Us9;KAJ#^tnwx84F@XGgB+z2JWJgZ7(q zu*`g?+wg(9`+czQ47g_Vr!Fq91Zc-CxGGAoJgx^t>v}e@zNR$Fk4#5kx>1*28A8{S zK~ixtR6_SysRxoeDhU z^3t)r`#^{Q`$1-@OyvoTi6CguGa;t4_;K_tXyj+#|7M5m%l~iekgcE={_l6l9tX^l zGu2Nb#`0ovfjx-CQEJ8LP&`oWwOT?+9|^z}){lMY?$#&RsQAY314rXg03x!`w5CuR zV7N=;{z%`a3-WzeH2R;|bMC@6&0)Ptk#e+-4Ny%Iy!U3jW4(78ybZeK`B%kc`i#9R zvU)!Y1`#{OGLFHzsny_}Y67I)U8|;ymq@QXVi-8wE3{+6cDGk3Xl+9x&4EeVUt4d0 zJez_k1iKfWiR7;ob#EvH7FCsaktIgnFPt!@{D^H-Mk%g(QXIWuS!zBLhMAP&w)Z0; z!J`i4ngfM)LywPsRdbJypy_TF@J2}_(RQb3S{^qkKZv>N_l`+ye{W@f1ht+5Hrybu zd7#1Ia(!)O|u_)v%lG_+(YDWR49iz5}D zO)=&Xkgp|M`}s(bG1o`aTcaNZgfAQq=9rzll@OE~L5!B`z7+iUi1JtUy4O~ZPGub7 zRl4~Os%3Rm?U`fmB{L@#CzS=;%Wd=mZH33r3ZC1_8O3cSlr5J~Yslqz zi<)hg*2uaOlpOXCAC9yG->CmRmGbcjZ7M|?m`W*?7z{fPuEvZtSV9XZC*&;6vK*l3 z$&DI4!Jui>&850z;qFKq6&ABy@1wFQLzQV+0Lhd-nL(OsFTav|!TR!uztL0|7}z_# z*gwA`$2#2qsqj-PsW`!>DL9GShM#5C>C6Q&eR|&<95d&sTc|6HWdBQFC6uViCNhi( zrF0f>CYAYGIr-Anb>a4bgm%#Deh)3r{y2q&NPojCv+cW??Gap<#3yUt#*t#Svo2mQ zZ^H+(Dl*II9I68&^L#V^$#T#dxTnI>*$h}=JH$ZULFK%(fc=yEfd7JBiwYGGC4wF? z^1F={>(+Y_Bokj4Q;!_`tm($meNE+2g5+tsQOau#;8mQW#+69;aYAunQo3VtLxWARCzh6GFXd2(tdH!RqkL?V>|*~gxQ-fA|M#<;hb2cjd`!bkQti)0W#g?mJW z0p8Gz>S_AqN+l?mXZ^-SBM`Y>2A2z&43i8zi58*GHv(IB+>Q^OFe3T|dS|Y1?%g#g zefgr&z2#%-{JnLxib)I%=f0pnDksuTKl-stOFoN4X7=ym8lM7&7N@6J2`) zzeio;{0@1`OnHaSSLzTeYj(CutU5p4yEq*AY)jtgo?mIZ*K*gMLtF2*XZ=@$3k+%Z zl*LO9XhJ4Bp=+L-nSnA6SB+%%x6S0gUTK7XyEf*x&XGLkKjt6pm&jNBHGvP!c<%F{ zm`q?o0BBXgnR_mz4HP+>^CZ;GU1rUk*hA_V)oapiu;-&rriyF@BU50=jy8L-Rmzfa zw{!%wc3f4rJ2xuh2@g-clk^$Z@cdH+8$Bic9%jkdWccbt?Xfd;vJ0fU*4_q+2KP?o zkvux?3wy zYi_ANV+MTS#4JRjFs%Y*rnmAm*SfWBr>3{mCG4LhSPE^}^L5>`V`4kzTg^by?yQ9_ z(EvtP$kZD`3V7ElF_qfbrQz1oGra6twCrOx{X(LA!kX>a{OilvR-41fQQs}OqwLb_ zWu&J?q;^!PYmIGDs0=1hcyYMxbs+1?AFRv%*L8fjxD7C?3fNB@k60m-^ypy+(f z2LYwk3R)^TY816{X6i#KYF)c~(Msg9u7Lik;i9PZW`nzh^fGkz#e*HaBla9`^F>sB zCdkLQBqy(pUwi}yC@n^`5$Xe{fn)WzlS_#ShB;mFEjEk2*@i=CW0Vjd@Y%{`MuoA% zs-E>{X@yF0I@{Pvpk}m~-F`&lXuezN^pAiOGMb*)a;6aAsonP^mG)KG=XVct-&FA# z?xC{qA9T^RqkytdACFk45liu2)$4?kOQpmpbt~Wp7>)e zT!2TTbR0`vDjMzJHq{jpD73(y~c<4ulVoT;}F zW@L{LcmQC0l?y1pDCDb$11{iTL`|a$fpjX5rY+8+S7#<4N)%{q(sFOr2NfS!*%oO_ zuic~9VqbC|xD_|4weUR|2hR@x*)anb&p)up)MQB6L=3(t#vC?(Oq(rY?2S^Rso?Jk zHp-hpjQ!nxG0P*s*S9Pz&l-0>ww`z=vB*@AcG!}EM-E0Tu)nXLFw8qoZs>LiPZ3cm z-_Tdx3gEKtFs?|e*z1)9LdF4%Tw`zV7H!|7u-S|^^j&0N;Ru!$;n0)_vgljMt}Gsu zU6|BpIo}4VH9#qx4;cmp=I=I{3ikR6FcjAh1mVz)vxA|71m~|n$7BIL-M`(Rz?e{6 z%Ib1n=4@(WX?Jwhl+oQKMxBOn;SV0&rW)Ut%ALr|y@G)*dp~<*7GF+=+o<|nGEw`( zQmGdLYPt*j9P9@CTa6mhY{x||Yw){2qn`R=x(ePS2Jv83uAe=t{@1*y0rOun!QV`G zOoRA(Pu@|0yMWbi#LiySHl_~t1>#;u=+-Ds34%V(->PuK;_EJFlrpFsg{RGX^dzow zc)^0Hw1&v-DN*ZJhmIT}o@9przU)Bh_DDbC+fY6u zCixRE6bLnSX|`7gt4lm<2`(0%@+{0Q84Rhh1iiFvI|TlM?NXSJIZ+b2H&vxm9pos& zpPUVu($h#(O!FUwWNGpWS95PW2R#w2os{?z^7i*t(eJto4ePUBeny!MgdeweTTRJOWvbb@n zp|>r9P4%96THQq0dS8deKH_n9Df%$xl2M|DQh~|zpBVpr!1>^=GZXS_jt0E*&Gbtt zXKM;*bWLjw5D&h}WWZnGF*21pJuYQTn*}X?chBoN=MljR$`=L@?TQUOiJ87D9JR-c z2Kvs|V84HVIrqzAAn&>1i=_<1HYjybYxG%oc`T8iT&z*EU{Lx>R7MeKMJ+oQ6o%ly zG$x(&TDRQHWbYXtu#rPZD(n`0u2o)61y7djV=4fv|H5x%Bl&DHwaQQ0_ebGHgp?}w zHgX)a6jp2hnt1Yl6rr#hCaQPuk=v)UYM;bDwsd8bu2~Q1kF0$l09Kii-TWNT)d2_L z+MN4mqzC$DH)8D`W|t6R39dzDhLt6X@bzc76b!V~%TM3?dacHuLcc-I>-n5S#NSEA zRvt+G1xu(i9}i**Ly~lW{%u=?v`*Y4>Av^8a`nVXb~-^uv0w(?HliA^A#BVO_&!+h zQoFEGCA6I~7UXDgAG6m_6kP0YH7x?UE~J>xw1};!>3g@H{8j%$HQ8dgp>*nv!_uch zr{(&Op$TrU3`iT3h`D?iq_?XfqCZhC!OSETkePg z`*zgsW~O2koHK97ORPM_IlEAgmv1aoJYN0BLNz620A=aSslMjde3+59!@y(iOGDA>3QqAMS|k#nVStoT4x|Fz0{kA9 z`&|n%Q1s_g*$U2IC2-JPY7Bsuq{J-pyw8MbE=ukIb%ldBeDmXwFx<@VCFE8hd(zjn z?y|k@H`^0HCo1Z&79ZdF2=a^-Avp*HOHfrVn{N->39il_&45`LwGnzI;7)OLiF9t&v zuY^3thA1m^fyVE$%=ezVv_rv%4rYXCMN~k9>&+~omIbV6)W%2IMaQSs@tHSSJaf&9 zw7kR!60TnTo$>)H93c`e=3-+ei$=i-p^g`iDbS4{DTtd)>MuB5P{C}e{0#Y_6rG@f zg1v3zuKlRNx7~~U7U9+36yWn}tRb+Ukq>4`nsdNztg>r(?~J4@KgW8731Vc=KrKc0 z4EwGcOL;#|7S7g(H~*u~&c$2DMjgVB^Q&R$`^ILYN9ZW^d}yC~K`rKbfAcmEiFn=)Vbrn*i9d696&A z=e(c=c@V7QvkEDj-Wvd8g%r&ttN_kL9LQ@{H85g`aTm?a*>5>^`&qPsbJKU@XbSMa zISM$<0}X^1A$nd{Q(aKC!u*{Et^>~}oiXyu#Yca23Y=B*iCs+8@t>!8YIb6kJ8Mq% z*z%)uwr`k)pGVdtY6kIpSk>qh1XkQ}(BAF;JC&FWX#l5Vw=eng)q&!vpPwzpuo1qa zfNc77q?~TKF>fsDmiCW&kgni!6IIH%xa$_r8?Q!Rjvo<*JeJO@f|2sy`_u$?daGD9 z)Py*omVdb{d@GA7%C-q31f4=J$C7jjrIAG{rV@^}Dv~y9@3-(T{eU zXsj@qo?k$!=z9u}{&R2se@2PGEVIX7omK&>+;F6CW`{TsG!=0)5Mh^atlfC)r|wal zSjOHJ#?#zt{chDKj5^|hez*UxueLLfkU&w2kSCQkUZ&aU^y!~8tB#dRM>A97fh=V# zON0SSpY8I|^|wbq0Em%wBX|FBi0=9fZvK1?alJLKCbzG8P5EDk{7p{zl-zMEbMq zA#ju#mHN?LhV$b0N_gAfzgx#HnxwiHiYz@qk(zuJy5_Kqw-_#UX%*8vvv#~ZrP&X2 z7_OFmyi8j5(ya5N{&82O!D~T$`b!xu3lA85`x)R24^9_)^tjAJ=J_3OoeSqu<#%aW z`IRf!qV7$&mYtTxs!?Y&7;HK&9KE*~EVbGrF~5PTl>`@-9(Apgs}-zueSJ8g&Fu5x zCf3%7Yh0Qz7v2w=5Fd%U?$@f#45ZA&1Ow0B(xibjSg%KHM>JH^5gsyJQ|NQ>t>FGcr)u6KR%cXfkWtK z>i+zZg@>|$*b3dOuaub>(l$!LFW1TBIaqBDBFLq+(#fP7@0D|+sOzb)VTJkom{`X) zQ-)}u9)-7FwRZ|VX0y(y0BoCZp!L(padDymu97en;pFQT2;QeOw9=~T|Ha#ThBdjh z-J(iIS}0P4&=m_(L=XssCZbCLm8F1mP@?pf&^ywL%97qu0RbrykS-EH1QO5)p-Gh* zdJ#hL%&^wlFZzBz_SvWWl)&Yc=b7^^;~rz&@cEBr`{FRlNN0$}#CVjX11KrlnEpsD z_k~1+sn=~5{*-l7s{ekc#On?sbH1d}Z-_ltky7l@~4jgf2P?$!Qw|lAw)OU8C2NBGHAGL zD$m}$X!!FZ%Xh6+K{swayeTuvwuvE|#!}L@+(<)3dRc3RMgK9k!nxiSUA~+}zO)!C z8qYHr%Qju@wbEMxE3s({x&l}XATQF+W%VIr&~koLfW^7lC+L{=ME=Iy2TpwJsO(L~ z09+vV30{QT_}Ah)H;UuXs@!_h^D^H$zGP;Q+RHdmm(Az65hq*Wq~e9-6Eoo}Gi=Fq zsc_O-%lk#fNvqt-T0b0H&L1D&`S>Cw?GTA#s^>!@-Zkt_+&TPR|2}0u-+_%zwW$(8 z9j}y}tszI}9!Po{x(+WWldhsomS zU2tNdw5N4By#dwq0=D5yC>Z|PQbsuXByP)OU4QjQK+w%Kpr33Qb4V2q4p&XR?RvJ_ zy>Vwa6&yBNNEjeFm5 zMD0D|sX2E4e+o|?a+z`A-7A}aOAOHAqApT>8eB@LcAb)o;#}-x&jOe-7d0CV5E=6x zh>R6c9>U^OFu#eOg2#=UJU9nsHxHpn;nsNEc(i~}D?F`BwzWE34Gb>fWofK#^5-Wl znsJLaHk++keCDt=5{S96ORw_nwXs{kmcp~5cu`kLx|J1nlP=||-Q>&Yyi#o&Bj}R( z26b_B>@ZIq2V&lZhfaNp3wfiiqVybwfdVZ!^(B~ZZbAm@M_4xE`l<8asjdm|D8K8x z;Uanw>_+wOHsgh%yza3KYl^G;mpRMrG}I~`wLz5k73coG`YZaNSLF<*lSozn021-N zN;^YP<+Vl2Wxl9SK1|+R! zo*aeVi+St;RK!+r-L3sk`kQ#LO;I^T*Kakx%NKypZ=S`MD^Kv?9s&tn+O-ykh^&Z= zD{|pSHUe3EvOGWOWn5TzD);<|<^<3#)hNtl1*d>vt+!qVr7)kr9~6ndrH9p4|L299 zkY9MsR^DN!OY374uGTn*k!Lqe1KZfMVkHs} zY67iN(K)Ts@|{6F)^l@O{Pd*LD*>3W0seg)0e6oOjuu1s5+Q%h;Gl0|yq@9kT~dBn zrp#W$va_)z^eXO)Tsjd`vCqwu@k#-Bfa4&+rvU(qq; z1;EgAqcA9nFv(yaJ#?Guv}rL-fraa*Kd)XPBN)x`*`)7JG?*We>(PzWOWQu^)ZwCP za5~z)R*wcTq%^ar_@qIb6Sn-^WRD%Sp?VJ3B6-zwuM1n%)&XXf>wCUmzU>sZVDk`| zh0hjAMf1r+DLAwRKO4LCXfl;NOO568-(Bf48X@)0zHmrLi@53^On0-c#;L~Ldbvw2 zActAkE;yPxIX2H<`;K6Vy5&DhHr{UrlYs^t;`z11K*MpuSC&O&1wy&! zQ%W*rYLM%Csr#L3Die_dwY1W$dXxpYt$Aac*}TlP!P+D*3jI*nQ=EDurHhs2DZpxpg?U)Y%kX-3<|f7Ac9Jxr*PiNTz^6;)$`;tOth+M4 z4teB`oa_AU?cUrMt_f_6jJ;|a*td7Aj*?kEi>ya~{OFIJP4xg0c?6?G#+5z~hfJZWbIx=nl1zu?L5y%TlhN=g={V0DhzQ;e|Em{gYL!5S zj;^zI&QYlKlXPS5K}_CpA(MeKD<1KK;?kXszKz-;C$LYM*{kK`OIp^fEr&J4xZ49) z)~vaGprfxE%zNYurc4VyXN{po^N37e6dJ%G104Tsim0?8U-3|twCKZP#Ra-R1y?!v zQJa+y^Bn}O1Zow^r|(0U&os*@UT-*7qw?fZ=n29)D?@cSl%Eli`FA3i z@_cRP70f7_#Se>lm`AhmWFW6=e=|1}KK_0FNl6@^rF?4KVm}{tJx}g-ADT9edz`3i z42{#_M@FBsse)X*AwJ%XQOv5oSitM@rp4Iu9Tg(vT@4Mws(-^(NYVsfnV48Ijpmdd z=x;yHfwJN4xDmP6->w#2h@0dt%uEq)sUboVirV)S;@dtriX&{3Ci?qESqo$KhMpI` z$!v7ktFhkmy7w#o81()$*?QHo>?EDUAdto|IeKWU<#5$M`(C zRg14@miPYTotQR$Z=yUI^jey#9obuy-_f=wWYFETZ2rl)dNH5;A9p?GG9_%2bgcTf z(X-_Fj>l({e`=LV-ve+!CHKZ*4~2!JM@<81gRMZ@SNN&!dPh*e(Z*nE9EQ4tGKfXE zr`-TG-YLVG5vD*)D>lO4O;vuUTN7;USxo%TU^uV?oxF(b?9f5CTSr98ZOVsRHTig+sl5=;Q)x{O}G#asWaC&Ky4P9JOo zV%IxWWa7f^D%e`^g*|fxIphfK4-CC{rl+f1 zp#X+SSDK37s(|{QJi0J7OqsG0*fDTjZlaAV^L$4v??~DEF)}i7YDv;}_IfIime-@P zk;l)aXhv}&NtKu%xrMhtcFx}gL}0xGl`2Dy^~T)SuHEf5nC};9_*N6kqR;UYqHsFz z;QIgu_N@D`@<`WvAd9Uy-5U-lbG#??U}4H-bNY>>JFbI+-zu3K+cy@T9=Q|z7Vvha z$Rr!1+e75B*nsSnY235EhRq5qI|Zr(j@bLk1E6?n`dPt$@E*a^da&y(GBa*3yOSE+B zoGK+Ii1DR-xW>ag9=W~At8^|9*XWmUuIEFPS+cAj6>O!7bYqd}?5T?I9j=P!Bx2EK z38E(~rp2T*`%5rd*Y>lHie1|A>9OeaeZ1{q-~a2j8&}4$4RVR>N)v4~zSHwn8~}NLhCcNnYv8BIB|MjpUM1-9Gi?v_3o>!~ zgcY}ZwF^8H9Mze-lVYi4@_g{8x2O#6uNxe%--yzgGjK@|T`DHwre~^UA9#zYMnEs0 zHof$5?pd4iqI0_Lnfb_=^Z(#=5+L5#o9uo$ysk%vICM!S0N;b z71R#H9-K9S=0YB~TfI|?mLIImx3{-3M@!HwEXniB9(fP``yM!6FPvdS%IX z*&w_1a>>ylwvo6u{UGn1@`4)a7pD$vf|j|uA2iE~gE|{`9D%M@qdC0t3CXL)j=qJ}Ag=b!Hp|cKOrBew!;o8{^Yk{|zTxCEFjxnw z`V9P1lUk#hhb(VN(;&#BbDLj2mo$*(rtBTPjVQC{IIG^Zys+)$p!kc+4^-Ko$y$k3 z!XRL!FOdmG#Pr;M?=D&YGq{L|Z$Er@m4&1bSR&20mMawarw>qmPmVd$nbI&wgm=im z(%6WtXxno(ajKf)mjx~Rzvn{Yx;qpnt;BSiLh;gR>49GOQVA5s!_9_U(yVnK%cx5| ztf*;^$c|Ol@i!T-Pb_P_#lFJad2`Jo+*OV^IVd2|vBQCk##W0_F|*SOy=oM!zWB15 z%ju(~&BThxWVw7HOcW^ft)^X$d^@={tHmrmIXL3i`{d$%-HGdeq~c<6)r5lU$}X%} zI$4v+n;ksqZTr1onU3GBK@S_jR+lU8T2=6Bar=y@f@0+U>hZ$quCsQSItrGn!iUgD zItp2G;>|foyzEDhiS7eBRkfmz?WpKC+w1MW z&mNr`f24)GPBB*hBeH$U;{vztGg6}ecH*1Wu7B|s&ph3UKk05xF7Hf`E3xS>Jw^0A zOGBC$AHYTsuMaavHpS#m>vJOhhL<^P!0OqaAlX=FZ5LOog&<^x9oLKIyYCw{; zi@IAJ=QSxq2FYjN4%OYgrO! zxd{$y(WRJpq62h2LSI*pDP{fYZh${vx3ne*zO!=#>&y6?3zr4`Z`|>Sfr5S`g!pq1muo_)duhQ=xv>&6|rXhn=CwVGESwcfUvo#SXFe5Ovb%6Wh(P|X8 zLYG>klFuHEyr(1`uD_`Ej#sqqUW^!XSEh>p&8ujeudg@h4ScFxzo$ko z954?`ev(S8)P+v3x>c!_jL3Kxf!&gg&VY!b=KA@X*v7scnZ7lkay`vG$CumF1z@wO zmoKK~yYK#eO-en<+_kmQq_c;v4WWm1#+!meMLsBxVwP4djGZDcgj%1HR}sa9AZ`hX z3$+@Nr*-KbFR(4vzBW8 zWsS-Jl^CbA(jqo1NsP~JhfffdS|1^_=Bj6AlT9aYbA4u4l-tu>*f_=FoX6!%q*H_= zmZNo3eb-szn8w;~udDcPfBFhr(`ek7M~?mOzp$Fvw)*4p10d5S8SJxF_k=oXY{Tx? za*cd!$nLkrIk3S z2+Qo;W>urF|6I}>R=#v_px~$q4xw7Hf3oa#A%kD8 zKQFi#w27X>^QL_VtiV6ZPbROtJ;nbBe&dx!Ko0+iW`_9&sOKHcJu}A15PnYogG3XW zRHhVMX%)wRjy2th$YuGkSZ$lvP=+~2IKIO@50(GIr6Mz1#o}Bv5c}^-*0Er zo-KGX#rMr#IvCb_A=iSq>au)` z&D=5J&&8VS=I)f7;QUN-_=5s3!oLze1q3|vY4qi|&o8fwiB7wnaIq?N5F9MNxXyi z;2B;9cpb+(*DP0k?ZxVyivuK?6y!MzHkrgx)^!Kb_$mvTU%{$ ze&qMXTmMW6E2)|uc%M=Y>;xTn51-F+QkTr9; zf~be&>Lisc#M6lQ6FESxV5UHdF#}l7?kl;tFP_>Xz{Q-I8`bHlpd=aA>InJp+qxbf*i&egXVlI=3Rf9PkTm<&Kzf2pUTV2ak-gLc zbRd^4iv59=8pr4kX;MtZbH;dgADB9;z?SJBC>0!I!(T2R@!P2oJ&p2fT!wCg>o8~x ze8Rep>l^npP`GrT6E5!3E7$^K_R#QQaHKj{K@VG_uss=n3-(xLLXbl}y7o)@BK}*< z5|jU%`tRo*c}P1DOP-L@e;RYUodf=g|CMB^zuTdMGI)@Z!qwxRhsAwy!?&Q+dHSHK z{fRi{c=y5HGMZUhm>(zDTQ*!DD?$UOa~9vo*_`VhQN$~RYsC>(Qna4w6)Tj_7jBTyW!GE=#m^;&q^WJyb~ynBxo*t z`*4xn*bS!%l{t-afgH(YM$B7Gbe6}#Q3(NA>{@`{#*;1b>@iWJZm(ydWeBgfZj@*u z;5=1;7MWD@u@s}pR;fm66Q^<}E@2IDlRQx@=`DLP7Fr1=wLafJ7{071xxgbm-S-O_ zU-0I>dWx9pMgz@36U(0EHF`sD4C$q0KW+M>rthz_%b#A;!j}W}J|){oiRN@jHu`+V z6rEq$J?0`vfZ8d^=LO4FG;HEnl>f+IK`*=yM4+y<>`mtj8VH2G9Z&IcR+ zT>GSI55j(%HHHVA-KDoLK1M`3TnAA0 zY}Hc34zuqcy_bK?u4=reinAy=P5cz~Zx2g0g|LSXeUUx%5@nc<(%nQ)cRHld-0}I> z3*exe?E&5FE@SmMryJe2-v=^A%#S z!})b-^|1(y1yzy6l#`rTXlw5Sgkb28ps7@mfL6;Nw|gza)~&!mse10-3}Lt(-H4h# z_r_Fm$12|ZvcPok!EiT1OA;Bjr|V&3eZBrpu< zgLh2>&;1k~Qg@n`3aMw|+_vCD?YjV1vNCYYkXQq7zq`TJJjYjTS?`Es=5?sPj03$V z808L-Elu>iDn_RSRh_x^`KFLDj$U6)>+ahktLS0Qpw>`sgHIIP^jX6#=V^CA1yL zMczoF`R^oz2)sMx1Z;CloBIPqA3L4Gnv};WU@XBRxGsb3b7=*(rnkK7-pk#jd^Qdo{ z6(AwCM@g+}wQy8V_&w&om``sga%cDLCYp-K0!;tE$7DpNx9c-~rQB?s(E5p-VHM zdCfu^{& zB{Z+l{&kx7Vs+OoEoeo-gJ=INs<|WtuJCY(dET8v^IU5w3NZWB*lsl8lr+Bcrk#a$ z)cLAgP)XqXGiqUdfw5WW((5;ZIs#*v($h7yR|O5T*(n7uHJA_DW6=UoUWAt*Qrjn7 z<|Yeo;bMdiQ?=9(1GILpK#gBE{BfeCvNxCBV3fS&N6o56v|&8=lHE_s6RwWCQ$~s0 z#9jbRY>20|(NTv+H1}%H2Qhb0+v&sx7o;|0g;@kXXvWOHwo)paN}Z>@&tKcY5+&n# zOwp52pyw||P?{Hem67PNTZ_HW zI*O72)?bXWxXFl2uEzmLd^tc7q%tEZ5P4ZHwg~`cV3^9T1xMO78_30cjr}^${U1E> zH~86TW`o7n4<_+!vO^n$Hh3ku+`sg_Z^aM^8qFf*htnG-WDAEB8LWIRdFDs^IHnBe zM!}J20@D70DFInFB=g9)HQ?>ad-lq$hDD&uGg+j!Pfb0d+3a370qs%&(jn%BJ%Cfa z^ZXp2f#*ScZOn0|lEL8AkS;QHVCr~@N6XuAi$UR|$4WgkMM@Mx(iEUa*)!NGUuL|O zO;3KtPIZuAtesxsMGrP~m5dR?`YN26|SPAqgkEy7jO#v3K! zGgXczmeeN=q}4FPU1ulK2*(%jfI5nVy1Brpr=^-4HBxSdzcLBta-F{v3l*Zxc~bEa z>3P(aO|OLX89(}L_r>r&=5rXdjH?!9xuDC4psrOQ6l+N^2*~-Ye>eX5LO=kWs^9lP zhbe>)X~~KriC_`Rw&Ts#;;zeop2mKx{(jtp!Cd%_2Y z&Q^GXw^zR=_#KRC{#>i_->I4yqU9^y&OFj`E;%1|r|9=#-}y1V4)h6J^g4$od;yH)eeaGoAmOdmw42>K|4A> z1$+bTGC;w2iN%}HEcYl)t%Q5kz}*p%sXcT-mktCkz-mF+G-y*`8HPoYbb%LKoScz-`6FCOaFt=0uPja0IC zL;N)!Zpt%pc@Y~7x_`#sBrK(N^018yh4Edu_}3DK%y$ixHeVyt63_P|$_Y24aWgzP zk1J?U1u_*WKb;`=#cSk3!I;~18Jhlv%!2ER0;b2#vt&+oDj29B(|n(dfoZ5S+OEHR zDu_YiA@KVjVLUe9@A(XxDW>b2qUYDm^Us}IU;z@6%0`?x`(fdO(Pi_+p;gyF^=gB< zhj6NVt4~2YLbD&Cy#Lyml$N5KC!U3^q~uuqB{h|;R!gvmnY zW79}}viZ0n*qnP+X)t>@u2rttI@-^&%rFWKN8L>?8G)+2r%*NFHSxYRsJNM(QMUE5 zf~&S+e``NUG2sN@wkYnMyz(gbR8XeETi41AX<};um!9p~4QAxlg|a6=Ow(YqpSGIn zyf8q5sf_<-WCD|;kbPtgFpf{A`{Smj^^ZpGxhm(hKk_13#J2B^JwVwrD;fp1l>q(C=psH8}XrjhDpe@W+e? zgO!sz%ifRkY8OD?yYS=jNLy9y@WQ|n&Sc4}&$|8DNttnMd^Obwt0}JsSv#?7I$qnH z$>oDsbjyRux>t9Y3{b;m7I077N8^(YbTl{ALHJ5ue>5d=7zy*DTRx^_z;~VV{OE?8 z)?Y0w{9}R3!5dEnUdKT~yM++ZyYGE5VO{b*X@--1UJ9GzrPqsc5<^&sGlU{Td}S;G zWy2o)B)F8fIhmUpw$f@@6<1#>MEG6;aTKsEMFSI(K1?iL_G__K>_+~V%&;!Qh!R_F zqfV<98mr=5Ff{wq*d^UnkxO#KSZq;;lL26Q&Z&9A*@&xLSQAMhFV*Hxwah&_I93B9@PA| zGmcc$*lAUSvBGK7nA@)q)3%#n3^`9!LfUAv>0`B^T1pIlbY&R9DZ@;tG=DmG0vrie z(A`?T#j8V)as}ca8S*kn-w0qr zc4@GeI&;UmaYq;*2}z0x(Phe6)g6IL&T78Cmmd7pA3Kli( z$A#pxzr?2-xS=rB`OWI2iTtQIFRUrv^!(bKDfUHIx(}xUCaFV5z)K_}LZK0qDq_Io zvsYUEH>BsE`5-I^*oVe0pP7z5bZY({JA8e3`OuzBRY;Nqpf2_noAnWE?)NagYy}-C zE}(Bb=wBBJ)QipQ5|)WZ>dYNpGjyIvK7_*A8BD6Jj`YUWD{$pwnbr7Q8rX-<@NMFT z@um&nD}ZukhL9GV?z2lL9qwvgbqVF&BOs)cTAjv<6Ul2ZW15rs z5zG0Kl~RgMj`p0*lJQRWBRgNoNTy8nbdp^i%KNK1tE2yJM!(^@`L~+Ty{PIKp}6l# zGgs~NLQy2WxM60zOVctH><8vq`@?g{7ryOQ|(QA&Xgkfwp|ldX!& z3Zm?4A4eH~XskXJWwJwxBkYM&oE2JpfKBrPq&INMq+GekV zvSrU$8n+Q%dQS;h{_qbgtPgUT4d=nxqdYE6hlyDE+uNIOw*d8-CZa9Oz;W`=JsZ^r zCvsh!8Kf_Ej8i>}i%EZAcgtHYV3dMxpY&l$zRui8R|TdHuOP4@EOac159<7OU@Fy^ znI&8swwxIjHP02yb{DN?PYl@bJPa1V(N3ZH=p=2{PHJd<3 z(_U8OBgSsO(}XUyyf*>;>_JZy%doKyN_!t&QPXR|!j&0c_%~1CY9`IO7)Y)v^JtOQ z39$qvyRCEvUM~{?lh5%eTgh`J?~O{cU)Twr`{fxysLqlP%6r05Jn)4LU{TQjb$J?@ zbY?aB@vsT1nt2LcXNGd&SeH>07q+qCFL|OzhIdgDcNq@ zC-OF9KZJSkE5xj8h4HHUx7@>Y)IJpmF3AYn$Ntfvh?*w|sK~Z!)$#6C2cuA~5p9k? zfqH3Oh*_W}CpO)U zKTJlE3x=9!zaCu%suK1NuRee;qNW5YSE){qMoeqE^t+sUw)XxN#Q!p5qZVJ{7>D0)pl)&ive973sny5F58RE zT;4B@9fnOheA|mNty~qyNg`Wwk7Mplf?bbb|Lpwnim&}EBKW1ag836#+94kERiUd4 z()g@KuUmtrgkpqg{on|EaT1^y8X0>lLcJg2O7!SXoPs#tI917?a&*0RKJSztP|B8; zg|AUcbHQ}4S^fwfv-5W`2uBLi9ev}xnJp#L&3)ZdhPNSbm$GI7 z3&dC$Z%~{u_3%B++A;V9k@nt7VSO06!14Z{h=ak1$#wRPz`*i2 z1t~E9OrxP9YM`~67a@TfXLaf7i^ILd?N1u$3cxJ==iDL#)3GsEqMYv2x!C=gxzdO7 znG|Lebk1v_^HWikyw8M{Jwk|h4!H~sIk5%V$?jABy3*%~WZ5wahEJAxbK#J>t21$3 z#!IRaa;sm{pDS^yGlra6L@4`CKDE*wkM`_aeO@@IKU!?IR1taUw*Y+%Kt2lwX2Bpn z7vW%4hb;Y7ArDi)9?|o36o-xwfsd{;S-Cb@)|(TAe7!kfW-tV~%Izd?45q+O(kC59 zWjGr#XLe@*%^DI_3P=HMms2q;t^`B2VkIuUa~ZQ?POoT?wrt1!d=>$MdReUPTN{K4{=BSCZ%$}Eq0A@`&b7u}3n$K`t7k`Gl4_*6oTN~a7%Zq4srUnz zg9f^sZxRP02TViJg5|L5CXHB;hRmz?nZ`SFnSJMB25oTSq`Ip5vXurgI5rc#y?zNt z+6vEA@msp};{p!e`b3M5ArsC1^UZuhNs3BgH)~&U-h=-)3P&`NpR;0rPyWWXgTcUxQ3|v!;%Q~t>QpvZ209?D)T(3gh@+M@* zu|GS-#tT9C_@nnvFx%Iuex;Pj7fg!l;zl7S@~>-iCWcU9Vjm((=AB+K!_=9ukSGGH z@1)RTE4>uTvRLR*JD-oZjR+>{ajkFrOE}8*-bhl-U3%MjHeJ4It|DXKJ)MWPj+3>= ze*w$rDE_e?iOu?7G6QFQ-|y$l`qO+?+b4+9zuZWwzy&C|-~XX2wRX7QA5=B}HdNhJ zg9M=|L45MKhgKrB0A)tF@o|*B)1TenUzav71iZCihE)#e&-cD$rYNJ&pnGxFZsYYl z-W9Jr`sC^f=};hMA9-n|krcDvX<>ZJ2pSt%|CY7+gONo5%t5J`-g1@l88iiIA(h}aCoi7pa>OdK;CNU9{gj~!ta`HusfOl~eir^#Ar7{& z^@L+OJ3&;$(w0x2ciJ~SI1L~NbaDy4#W6A5d-(4+{1JVQlGERdunx?qIUz1_vobHS zeG6M(!{1Qkn_#5+XH08npFf~t%K}=`_PeNWpeeTnO8zs+@2B)S1!G&E$c_N3!4Sfs!#?(LY%Cdz6KP22>S6MnHz;8^|O+NRl!|+#NHq- z;fQwA-uqQoZh5bPC5fEI$1Nv|47gM(Ajs)aJ3bk(B#{&5XOj{ZLkf4FwDTu9onkHv zmA?swEVgMCD>9&=xfn;dH?4H#D&HxjMcC(mrBx53yBHuP4#k#pOs65O_-#`3kJa_O zJU__}9+>B*b(CI^C3g9KRx>;+zm{#4D^B4xI_m>Zv zGy_A9R%~C0$5>nT0z)IQck6;!h}qi;^f!L8kH3cw-!-V=%H}g z)5HrIALI(`k#)gex!y9vP>AK*X~i861nH8^@X{;2AKpMD={kdwbXi>T<8bm|$D*Uj zF6_A`9GTuVe6Qte$J6c*9N&_fzdeyK`$*Z1tBh{1rL~{9vk0C}db?>=?Csx<(?4pI z%fB@JAa0vakvWx}J2zZ&4^^9XOjJ{y8NwssK0j%*1AyNms3FZIYO&DuBJqP?c zoRmAom{mGViM{W2eY9_Uz^Qi%H8e_8uilJqp%HlOg&7=7_duMrnHR(QO%eJ4bs6*+guf96nQhQ7~i>r*^*%af0W7blhb4}p* z6TfLpX#odvpAMgl5DZrc-x?8Tc=O}f4HeYo()>VyvdoH7R)j8=L=ZaNlL>q1F1HHt z-P*XNYdi}i>nq)%X3}wc!~WF{EkT~H)3P8&iG=?abpE!G5WaV~OCu}eWys*8^*2Nc z?_p)Et>9tdOPFKY(f?8T5@yWxzpH$a{qa~H;|;N@Yam5u8hC$e;WHVZ zhf^rhw%eh~Hw3)mOW$UG9CQ8cmi^Tjp77IBv%fU3Q756%*x~KiuQFM8z4Ajbo4f`V zoU6)5~+jkw?jitxpBfRd-ekBqzPrS zBAhO)FePpumm8vc22uZ$YGm)}Z>o`{`*3&yy3F;JO2yNf4CPZDDmly>MVj@_>fKUh z;Tr7o0aKqt)MCCHM^$5-=&|96cc$&cYyBifUq-x)9UYAKm=*%YMxw%N0F*k=ixe4V zwoBhtku{7&_6vy{#_zbEihDd_fbErPLzgs(+~wV=KBsS@;y+A6c9B-&^nbg6f5-DH z>xXXH!K1N00m`ecx4IX997>t*d({H;N1H|s${#kpzR>i!T+sael6jM^bJKhPN61yT z3km7+YtfIVL9Rp0b5?vk=`&NsxlyDmE?e=n3}etd&^iz&1Alj__q2^|bJ(a@23m%r zA_j4ZYxo}0k=Xl+Sy2I_$g<0e4VT-|D_mSkA1eNO>c>yZr+&2vT48K!1ylMJ#u!L* zf6XF+hRKlquRjbV^-Tg6&Sl}R{6}jsVYluMCr*tbW^?7d>T}sAqBl$2=Y$AFU52%j zr>@;?WewKR^=a*Mo;Inn{HlZQaBNjN`dX0V&=*yO01E4WclhMf!4nETkReibArA%g z(&vzXBQ3Zu?uMV?N9V#Xgz|B}6LgXj-6-wQZHkT6hSf2*>r8R$8=rp^2^G?5pqHM! z%>t|5BCrxOA|42B&2w*w_Eyl8&5?*kOY35>+!(ZPKdZNEr5ws-7FRSmF4G2Z{=yhw z8?7O3x#!j9a9FY+_hCwqIgly){|n86Q*V(WC~aO`KJ;zLW>A0Yj9CAnQ2gh^TkCmsJ%D8#(mbN(7TnkEd;tqtH==8cdId! z8T!;UC{t-6jdeAqDGr+I!)E95sFYVj$6wreQV3q~Ns$mPMx)k-keoY9m@G6$I9Iyg z8cZ$-?8-o9B+V8sU4;kXd~D8Ot#uY;URAMQG|aXzNefi=zGjCfmdy9p$I|kJ6-hqU zQ4aBlxPsAZ+lK@ewdrJ_*{09hu-K8ldTv41W}0$n<>ppjoT93A##=~CqgABooF%4I z0UcBc+nRmdht13m1N0`Otpv4zPwZL8*nYiL&g9I_{EYk1BRHswlGMl_1j9RxPyQW% z4t~K1xSP0IUs{%sV*_mH-1l7p@>G(+)LfYF$xr}PPxJ$`5v?p?PGLwHarIWX*31Lw zYT5OhXKjq)>tn}=jQHG8WSK~7u3n$V_JvJ%Ymaj?y=QD-3`hmm2i@ldhwVdER7k7BaL|g68IiLh~{aOj$eJ}xv2y$ z^&;5?Eyl@HTW2QkvG0dhgr6j{s(7PPFv43qT%N19yA8uPdJ2S8LVYYJ%LpC)GuIfm zu@8P)+B`ORY%rc5W+I@l1)0yD*Afun;5o&7g|P`TMdi2-sEsMP1>O{=UzjgG#C#mxy$XF?lG9NDfGYdcXh2mh< z5x}HBs|VH+uLox}(+BE(2r3L@g4RZ%cR9fdyOmx`F@6g%{sPxB!%WlGGIm-=%vMgN z-*~Ce%%+G|X00@Fvx+wDxIJ-FaLZ)94Po!Tmfs{kIbMiEYVR$!mW%X46=Kr9!ra3a z+&D#o4e)>s|8T+mrp>)XFiSM5O$7W}vnXGpqb?Q_vh|+8x+4`A_09`EE)R=y9_WAS zCE?}uimMv`cs(Rm+aC~X+BJq|HThscu{a*3i7(ayz8EVFk8+MZoLPg*2H7Z*v{B=v z_3zjI=OAo%SZ#aflv_~x`-=NV3_WbF%HD;R4@WuPAL%AmOfSB=|H~ZYAfMZP0e7xK z+h2)C;?SKNWTF5|gU_?18}<>)J;qWltV=(*_UCvQQM_7sU-)fpLQhXuV!dXg+0qRtw>gjf{#Qt#qHq0>+5p^OHm?F;0PTCE}#; zB%9dLcAwqew=A9@L6*GPo4wQ5^d`n*tvH4$yHVHc_1dg1d}XQ^R+hHVB;k1tAQ9t5 z7LF)ROSqSEo9DT^Z~7zri|$or6#jRx-c`Oup0fQ{4J4&Up0B;~c~*U}z~kS#NP=SF z-14z$%L9t+wf$^ydEqBg2CMfX2j-qVA&j|sBy>~JUY3Zw%B;894eksr^L@2l!thoV#^4e$-%I(FqZ zhUe88knvAH3SJL}sxSnqHlWMol^n*>6pM$? z32n;Kq{@D;OKQ_GbGPiu%TV0wF&yYG4ju+Anltg3AApWx-FYKsw!TIoL4obZMako6 zkwPy~Go2I5!vRyE3%C`A-Y9jp?$;84U03an5DBY!7TwL-uD&VsZGUFd(qT@JRNV0< zPJRtf?x^8q?7`icLp7&Ru01Qfh$6&lbW0d^e806+q~ncAgUeXa=K=lX=%h8+>Hom?vpRggm=WEXp71PcAI30oJrm|s4M_-GPn6@-0b z3i#7WFWzswHyiYM#)R6HSV$X7d7{C{$Lj5Isx@T~nZ)qaJxHf$_xK(@zl9t4C{SN| zxu|A>QJg`Zw`85@j`-fmI76JuLKDsK-_j$pRcfPTECt+bv*TEg>54Lom?Ndb&-V8tV5Xc@qk_cw6jMH89!Ga1V^U zo82a6v2-%WN>9=zE}UwI={7_f;va6M!0x4e@oZaVT>Vf%%wn>Vo6W!oX<$~(KXW|< zIBMez1%BypyM%*Or^DOp_z}cf?q4g&GV+t)j7$41 z0YZ`t$seHMxS>;r9}z>y_;M!+$9>Q=X(Z_?U^z^1#xeOXYd>+di9_ z-SS?U>9x$Gu^fJ?H&Q~gk?gItx5$ZdqFCuCSQDaqbj9UtoqOA`uh%weCuj|hn@y)vQ0@*9>m_8INj%x0%J zT^5lY`dyiNell-NjQppy(zXv%*wxJ2$Ws5PygY2O9`{eE2BXV3Sl}`}A z_kMmh_B4YZjS}RY)T)8tgDkX_mOMIIhK6^W)WbUQAL>!``MD&1LV*^eI`aq9X#%?d zYCNXJTEN>vqZDuB?Qe zo-(115lU5~3Xy>)aH)#XynhgOyduV;O{_hPoAj(XmM~I-;SFYz?&U^}6E<$O!8PrD zr>;LNms1#`@3B6Q#g7q%@2XUbkC*07+aujDuZxdouO~K6z$D7820{B!DTuG3SeH4XaqnZtHM$RZ zUEGoZxa(f55-(#;Oc~)A%(XgYurjhUh3N(WgM00LE7gNeXJ-Ar7-u@vSz@mA$-eyD zcy0#zr~f9l`FcsA;)uRXu0%hC82$|=&Y7gcxc|8FAw86huYkOka4tkA zfQmvC@?Mo9oA6injrSbEO##Ihp4oNHxM#q;7Kuw=@`4sTu4I1eQdHa_`hA0$UgvKd z8pLNOcvd9JJaQGw)MS>PD*qDpEgWI_=AmQ2J=&u-7J;n7hn^*-SjLe0_+`bgy~8YpCr>n+w0&i-Ce{-~nM(1=K#?cLZu&AqWS(ofE`KRt<4vQCn;& zd+>6?>BS?4fAH>KcVEmHk@{lVh8jKcJDJIVe1ji||94^POU?tnxQmyLQT(q*`~D9> zsZIL2g)r*?oKP~IIt}8Tz_U2fN9KiPX%%IugZM!C`%HFQ5gPecCfJ$fYe~VwUfK&t zyGg-k&xpmtUYML_1?kEHk^hUmH;;#M@8kcoWQpwA*CcfkIkGcjsU)FNAv9#o$}~s3hOuJ5gW2>BzJjVo?5#j&~f2 zQ)AHw%1funQu3W!P~y)rCI!@B;0jYB!k^(X(r_C%IlosZKwLZmJb^1U2w}z_V`NPS z?Fe;ff3@B{Ryh`0)8Fsrdwa>g#HXcE+x?!Hd+o}Q`-R0{hq7-w>sp6ShV19z4E2an zacVZ8ZCWIm9``$#8dY4iL5}U_goKMeTTuoEZw5Is-S>qtkHc=CDFLf&JxzQWS1{4i zzWLgsMdI2um*z7@fZV5+vxS0ihnb;^yyEn?MtK6j}JTfYG!TJMzNP%qx+rC4f zXJM3#E?~OU=Nvqj^Nl#5=nU|B5lGWf zE7-BQK4P%6@Ok&<)Z_H`R+JIoeaA9e{igfwr!Oo+5}4D`N$=*{eS1!3wEmpg`dRPi zf8CL>-=P3dj= z0_a1g9%w-C9B_4VQo%OXJ@EeIhm2^Fr^1%J+h+5)R@GD_GGL!#SIq>2^cgW8UPYEAeA1UvVD^r(aEx)Ed1xv( z`JK}*y%?8EqLm?8|?!swf^q4 zA|d5;*s00GEu1 z=RFt3oC>=LRVd z0j&Q#sRXGB%(-VCLf|k&@#1L85k@g%$&tkKZel-al|mAu(@GAZDfVi8C{cb#F&4dh zuBky&M*By;6ss2F#)+a+#VAE0Hq6BOjlNB@apQEh!kWy9Qq}fPT9`kO{%^qVc_DJa z-3J0m0~PZ%Ay#_#Tz--&odKGZE_{EJh|AL&ac?J+`WQq0{F3ZnaV4gtxZ4q~O_>nN z{7qAaw?2Fa+*kbxxZkD$?)$lZ2i%+fJ>VXD3joxH_n(H}8Oj;bSK~!q=oVeh&%}w} zaY$`11H`DZgX5L`YrICSiVbu~el^=Cq7V9>SS!3mrd{!l(*J0^_kQBiAAI{SdJ&d| zQW(kf1e2B;wv&KnV!E|=$}?Y?urd4}zI`s0#<%w=cJhQ6Af9I_b~t*SX>^^+-035= zE)0GGBclEHUgo^|;~o6JhNl|YMQ4a}`SBFh){!!bkpcyvm=hXk?9pb48~GZ6J*Df#$IWO$@rTkn6U?pdUNqPp`o)I?$R|IjDl z$a&wW?q~aR1!@-#*o1EYJN(zW< z%wW%nvq>@O@vax8gO)#`4|_FQzjMV6Z1eg>N89H4OYaIzz{isTM4`*U>_5gPpu}~i z9h-^ll=5AzrlB}}d#H1kl~PfJ>Cl|34bGMAcf5HP3Ba2#t1b#f+l}xA-*p)>K%B;- zM-!Z07>@uzGaBAJC078qs;_1iR`&E%xCAQDEHZg&44)2dWn{?5xt}bvPZ0M(X zx#Hk9>EP5ql}TdxP7=^NQj$_+v=m9V3D*PLOo0T!Fkd99*K;aci;#+A+)Z_pM2y`# z@9wP#<=D87g=c@JoByw;=0y7^(?$6Y9s{3bhdz|-MV$)eQ6URI{IyVOQKhhD@E%d0 zBb7`2M6X(WH0PuK=aoF+i&hMpqTEsE$*H+B-!w^YexiEkMh@u%?|LRJIS*JJ_@RPm|dpq`MLws2$s$gZ9$w)M|r1#&b_gzXF6z{fb4tHzaeT=z0O zt3yOUN!R`dsQ0zw`2|K=USm~3xB=?yXAkun+|RgYIa)*QSN^}sML@KZQ}xrhUxv#< zQ?>iJoZQ`PHv&d>(U!muWA{4<0I-W|FX|@b)p3+Ce2q{i;$Iic?2;b&bZYp-^)hfo zz2tWKlo_`Xf7gwr=nG0c#?_^u{vtX-#nFQN=@nSh(HN$DrV?wQwc?PcTzITYibD$e zLh!_wo|u!8JLW6yS9;$v%CpDBczKnk~5!@#xgcHvj(ICjCpP zk=Gu_Al|6mR>4vGywzq2F`lESf+hYawak%&x1+f|aqid!ekfr_^I5Ypnv< zt+Bd&QPM$Y{$imni{4OZj#H%UK~ARMA;+6BkP>l?3a&fcqs z<|K`>z_Mth@&n#=5Z}WThazT>4@5aZX>C!Yy`$C z#jXZ(3wU>Z`cS0Q5GF?zU=D4`VMIroW*;BpY_M=! zyqIH9QAvpM&B`JLj}ReoL20<{j#m+D2w$c!U<{r5eILaOnPFIaQ{#aNNf%j{XDgf3QTt?u`*+5|uVh`$@w#Dg;X7urhROAzNj%-#JvnbB1m z8}7|aQ~dC*bl`TKtH<5{%pN_407!L9>ycVsNmna zfb%)|UU96ZW^YK5RBohA@IL5Wx87l&v(R6gK2FRSnh{yNmW>fo2?6-#hNd|C_49IU zwRTQJ@fO{}nAfvKo`h*rQAGrV@=lsG;RcNSzoIOg8z6DiHDz-NyZiN`>EB;|E}SgfBT z*IgLt#oJKhs(ny?NT6ylDoGemv|PcQx2u%iU;(Y%-+NKQqhxLkmJro5+%UZIGA*u)(Wg*S|A(vjmX^yP$?3Wv=| zJlRn?-5S=>H2ef20aRz- zk=sg=9JMX>wR^q%og;y+v>(*nSd8T|Mvw8}GaJypC6>y3eGruOobjCNyKX@&R!7^# zLICJIY52q@C^*3(5hbA>X<4MA3kFh<3i+jh7K_oGs0#uPOm6cSbrI zTl{`aW>grLlI=t50*THw^4AJkA5av-st2W{fJdH2T9&;-VXXe6JW^Rpv8uG{v8xgY;o6 zqsB%T650NI-V!Xzd6)l%geFGv&X?wbmI~*2e<{EoE*PWZ5sK1#t2~Ufh_+Z>lmhnF zat!4{;jl-t3VYMSEhN%}mz_Szo)M3(OpQ&)JY29Qd1l!nt{`OM0`O~(!Z^|5Wx=c5 z&p&;^)FO1(i5~I2d=i(O1o@;q`jKMQ8C}VkU$x4IPWrqAkd%L`ErK1v>e(SK`8baf z>rH}Ohf8eDD9Ho0W$9`4$;t`B0;=>KhhLBL`sw_^EBMcW$)Pn)e_Da1_1@ppuATSV zKTcndh1K9iGO+IdXK7I>KHpSf6dx6)>IgFn1bgAR?ou9Q;s}CJN*@FE0ia~$+LGTK zE&5RI-(k;xXQ|WsP3|DU0*Wa!%6?U}i6J=1YNR~Um7BScy7&F2*puY08{GpP1M{z% zMiKFA45j4PnB4~2 zL^MS#Iv?G%Lj%?N+E(P7hSN45f3DW4<7le(MOs(~eW*V5Ev#>I^!)z|>xIxc>%i$& zJ>TD+8B=;cPZrBujIw)IH1^=81Q^*g>^m&YDbIqD#4hSc8hS;r-C22V!^69DltfZmad>AP9qgEf)0R zyzmRA0NrSGdxtaV|0pcFIdg%AA@nJ9l^%e(I_Xa>q@=rm04c#he;IE}k2vvh!l8@9 zvRGk~Gel}4vs+z$uo5z;vF+4ZchLOD2^wR_4MuX{3m*C>XaAzRvIpeqbS~G@ug`Nc zeouOyp3c}|v>mlhE%R9!P-%AU4V9*64U;K&m0Ky#8YN~D31Kz9tuyxG?ATDknw%pL z=PQ!}L_o`PhH>6pv(~_Eu6C^Bx@>|Uu&+LT>lO($Wrm&~PP6KF4!54>Mlw|H=v7l4IOPlm*8Aj*ZLW*d;2O$!4l-t&g-fc#RA| z1jW`m8>=f!pxe9CELL)}P2hK*L7}tus#&=~qUE6yidkJt9!A`}+pCVe)|IT)(IGJ< zC)yYV2;OD}ObsR+^!6RYZrX0CmZUFDSRSssBcGnXJtTei)Vqg42%zCynV6!12%dd6 zD~;9if!^0bm=ZCPtFk3s7!P@k;L(`1^8i=mvt|FFAarab1v=OBKC75ycGzfQ>zgC- zx0>Qxe%Nbwc7-WtOYo;;QSw9sZMfCIscOD!Eu=;a0ZajtdXhX=8rNVC=KDYVsVN%h zu>D}}&uQcQ6OZ7p7>wk3_$@K2h$vRAhs1iM^TY~1d+QEQz09|&95 zL4HM!Gz)C&Jz()kqh;GzZ2mkuwZ|rvo04J07If+eOwLP?F0VlpJAwI(FC(&J7HvPn zycs`R5N&_EMtm6DI(}Z;{7rZqAx(?o>RUA-{7;gi$Ok4`UT?EF80EL*V2{g^H9B6{ zwT;3yXc3I}iRnA#9&+i8lTcG4+t)UN2C&rS~nz=-Cq<09)NtXOxW zI!=++tipCE7v$%h7+Td%Q;W;cV71_&kPD1yrdBM(C=`3}%yZ_@Ho=iJbFkv-zYteb0+K84O z)8Tu^Un;L)Z|pepIw6ZG;r=aWxZ^Y+2Z^@PM3ZDAib4s%cA#`ZIHw3`^NzFmqGGv! zF+bErax8~8y0Bfs3p8uVE1}|)6jq|=bw=JDRny19>xF)l@l&nwzaAfN@7Nb#jtE$( zc;4INV{3IAd`PU+DU5}2ogtKI>i|ELRg))N&1l44wNcdNf`A9YCq-jy7u)HcL0ylH zmC~9|?2T-NVj|MrI`QfDz<#jTYW4><5e@VdF_qid!As?BBOoO*i}bteiZ)|F&wsr| zG!1KPt-n}Z9xj%u15^1Rq~f&78{Kv-bq!tQQWfmGwTEp_u}T>!i{wMp*LGTZ?fzOxBjn`MD8hYVkRBDua3CxcS`ZU>~_M%2GsLOE#>?#H`#mG z4@#ykp)2-iDDIKh%+C#C*8~}YFrO1dp_uJ1nE^pJ1iG=1x9KfXgLKPfLCH=pzPNeV z1OaHWvN#|D=*{LE+>v5p5>)?8-WP3Y0TUK|1hSFuLQjcTTPv_wu5;-Bt&B(2==X|b zkUq@yZx>=F@3l+yAkvg7IQdUWK^Z0PA664rj`QQ+;&P1AZT&X%*HDxTnz>^QdcT3GRhEKY?D3J4;+@^Z-+nJw%r?NW$aFOge z<7B=J6rJE#JzEn!E|7bpA05p0E8u49-f?0uz;=(OW4c#*uCCo2<`;~b8NfvU30&0p zA8^sYzZxGJvFKlo&%YXFb;YJC3H`24H!`B&rfcM{ZpH9r4pd~~?})%g6Y@%bmZ z(Eo+Tr(cl;ww7l%_qKX_v#N(deDU5qU;wZv)~;sry`3z1n}_CMZAkv?J-(|Owj}|q ziqF*4h0yi|sEp!U?2LL`bxDA))Z2Y*18fjSy!I@_;8WOV2X+*Gn1voziQ+UA4`ny!LG`*Qq z>Qh0=RLKX3O9rsKZ*={jL^Wt)l9{1gX{hOpyDv3e=2Y>+`sKAwTl_%pz@B2(!y_XH zU;Q+=_ZeA|sxfs+3j7DOS|3hX8m=nj!+2**AF+~wV!*yaa1lua8| zRn2bqf%oaEI&(MKG3Wh+C>rc|iQ*F^gu`^|{BC1f%peg-wC7f1KO44w_z@yFwH8jWj`DE9(rEQ~W@a+vkmT`)Q zx7fb>dwj}k5_kWf)oA)*4f#Z#-6H_W+w6?aeG4HQXBIi|=8W>btLFO`k`rmx5^0^^(E_Vn}}Nz2WxM5$4doa_LC zg-@=7_DEWY=*Vz$;$VmFCq;82G&VYMp=UV9 zAPD<7G`Sab><>$FUkyR=u|u|w!r z0LI|6d5|qkuYUUZw(Nq+6b%+@q4`sCY>L=qqb^o>@`>8c6v6X*`@WOILVt`VYB@$9n7oSwYd^!4n5MnT zlyf|VRMO(^3A6(bhOmlVih$gG20L&UF6GItT=)Y_>7l;X-|3uYq<+#l?e^fF?HTpk zFz9%mUYz5b$aVMR4>YC!_-|ucUVE!NvjGb%e#KleSe!GgSmDY{v*CHs;R!#Ik{`y!sroK%YkNOiG#kN@0$=zUP;okg zC&1(?eFu1}9(*@&ef~}1D(Yh(xn5#G8*p8pHUS51!~!-pg&)wQ(HPFRQOe1^eT!1$ zs7WHb@!V)n+v$?4bFqZp4qe$ui^&jpz0enDxJ&2uKr`W5&@x$qU#KJyDmmh2?LKwV z@#cL&Y?n_H^rh4>-Q4i~r8D$yc66^)G!Ckzr{$4Ob(_Q$eHq*+ObJ81LiSGi7|1pX z&Ds4O!|7uSusmni1fTjOk|C`3qUksDz*IqBhiJ@a9 zB=ssMwHKxb_q{@@o~|4@P%!0T`XZ*-vnBW)fKrJ7_}y!{^CEy-E7x+PYL(aL9fhY{ z8QTh9jOTVe%l|-H#npG+Jd!N^8jO-UOO#c!41G#qvMU> z&N2chby7DVK84LWaG()uvvGv&DQU+dZYTB6d(auNh3W`>d;Oac#$a`xP*IGiQ!ehb z%=(_2GW6<@z4e=87TxOT+|eSqSzs;%QVdT!Euq5iTN`1*iLH8Ls7WpKx|$lP1c2BX zY9nK{d=yuR6$9aZFi%&;9OJE~#J?44#V74q0}LzQ2kuY?tJ%-A1BMy`KEPuRI^$-b z(SN&sKY`};9>Ul#Sc=nHX}z+}pTm_Ax5`*9&zK|a#JgL!owb)XP8c_w5Z|RjwXkG# z1_YT!MMZ>(*x3!nfl}bi0`w>smx3SYQDFVZxKDp;Ck@e}*+~yxzVSD9(z(>ujv8lN zGR;m}3|RgHHvbxWT5~~85osBt2ZXyu*oi$xj+qmFHn@3Z@!O*BZ1<%Fuq^S!BC_MC zQuLO{G%bh>wzGo{fJbS;5dN$7Ul>Gu{LOen32HMZ5>|Rpg7?(~yfccVm1%C$JSdES z$kNzICa5Y}N@slkh5b=K+|@M>EUB%GInnZEIejIbgZG-3DmHGhfL?9^=ACnZ$)~T6 z)d#m}Tfn^nnhp4?aNX&=V(tUp*}zd&fJ|?2-T`o884@vIdn`(9 z0zuIC}m5re81`Eo6TS)0X&Yr?V0 zux@K`XM3FzNbD~yvZ@Xa+A-7_sf~sYgCAQ5&J`1Ows1SE^O}Qz(vfE2IX{u&IbXHC zR^ST;Ji9bz3DkMt1)4>SuTSs@h&pZROEa%7qf*v=MO56TfJC%QdwU7FkmD2B{00b5 zIKbD#x*Z&Cx4oP|mE}|Q9O%b=T2bSVn)e&nqYMTQ1_9O{VxZzrMGVNR8+?9^ z!13~>Ox_)hRV7&rOq=-544xq+Hfd!wd8!9oE(Z*6D5e^YK{X8GpTXuXi_ZBp-*ZB` zc3_!tipm;}%4+JTXF%Bf8cYt+(z8eDSDklpg==O`+e4vQJC%J>^c^IX>EsXptffn{ ztKu=x(o>kdnUHZ`LgbQ@nkK_qj)M&mu{70j!nP`gy2Rb0@Z!sx_Kx5)uzl*IK2hto zjlz=(C6x?H_TIACp2B!fI81J#y@NY#MUqk6SQJ?23LX3UWWu&aDkT@$gnZaCl0W}2 zwXGhR)3Xb zg!#~qSLuVA=5zN#@%6GqK7=-4`5V&IccXf1xrLeM>jHIP!DkY%?ctuS0=&iNn{^q_ zA9Pe)U!QJ1fUz6ogpAQ&&ScVHxGq zSt)0TYdW|htVUkon6!jtTiCYe4#|^&&ILHggrfAd{5VsNE|hv$uFrt~%?>%8WTX)WMxO5OAy{mMl+j-IrqVss;?iz+P2O+!>N5 zmsVK0&#SL>n3d1<>G>AvHaN{^?Xb3TrV$a9rqX4fK&10r&FOL zlO(G3adm+)dTvgIr7A4i9j!X}HMp?6??bz56z`>-PX?f`)wNB-{+eHSQRGv|l9u2= z;0^q0bEjFRKARMGQuI`U0B|1=Xx`|3r|yj$Hv=4jc6z`I(rd3tG*4r~F}sc5TxQmQ z>6`no1V1Hkc~#P!W@odP(jcN~|O-_hJ8%tK4&X$E9mVaqgY zBFdBjIN*H#`H{(yR|-M7O%4S`I;S*m-y1X&wIM^o;m$u4b2OKlnNxn}k`w{4`ycs1 zoIPG0gH)gE_7^E7;emhkI5&?HP84*Ece4 z%IypjI!E7&|MSf6ST?i3@&s`J%hmuQmB>O^^t4VuF`(AbgKx10qL4{N6HU!alP|I% z0gsGq&YDi)S5x(v26S1c~~sZ{TQh=CPkf`B(wJcM$lj~ERfIh zNZD|NNC0J^GLV8x6v9AOUSF8?LIzrUj(B^(z7}j-FOm*}0->AJ*}kxV1=Z>e<7#BL zAJ#kF%-BXo=L$25t)fYL{!5Bq$|V_1-I2#+eY+7vBp=2qmk*@6J_+BR6!%=)F6YXS z3=aYvCxxery+#}7<$X(yn);Gz!W(2MuPcW3DolZoo4Y@~i&=TNr$Ls1c6S6Z!ajYlOSAqto(rnC6nd9^=*qUwWPQ zW^^?(OFf&*NwHZR64` zV2G8%_~?g5sf>qKmaN)AW0sk@`ZkpIysqyMI?sUD8>_M?Kkr!+IY?lkk?rGC;V3m% zd8p9KfkCE)QFv&W~%|1nT=LTG%d^1#dJHoWxfWxh1|=Mgzh56yv zEdesO^&i){TGwQi;V1Is*Qh;vdtURr@+O=sqNskmxsb=|J}Oh&N7jMZU(SHU%02>={GW&J#r1AxUhtT!*+VKa6}l- z673JMA5ppwN%x<)9k*LR(n(v6$y;l_{`QZH14w;SEm&3o9an0!S&7F$-(k41)$LP5 z@r7f>CyTpfq|hrZS8zPZL-#(Nb}$%%6(VG?TI4`oAu-N_xULt?cCxZg&v;g@*L!z~)h@nIIT&oy~{_=>;)2ya`47EeCct| zdn2*utHxP*+U&N+?V!Pz=KUf-w)A|cDoUL|)rlvmt3AcFJx?UIhL{P}TP@Y>hX({1 zj~WWe>MR}37Sn`IiIa}K{rCdz{g`RKu`f-yncM#bTYX5bTS9IK(m;;R8f97QmvD`L&5&H=3vvP*E z&k-6gWr^s^_&;cb<2jM{x0elH|LHCLU&({OKK(cH;I*dmd+AsXe*OsCY)8!x+P|WnWfa|luc*S6xNeJYFGl*}0=kOM zmtXmIIf&|N>BXHI6P6fS*q&dAFzs0CsRNQmPN~tCnYCZ|g2ib~NGNR6<1vgnYqtP+ zoNhba=5Co}MIHtmO*JDe#mP0yP#k=FC311e5)0nhs{aIGvV->AAjGN;;3fQx1W<7? z-*X0C`(j!*(*>@Vq_8WMkYxfK-JG2vWo;teD@V(``$ADtzI)?XHOd3b0>vC3)8Ar% z7wcN+6^{Denq=?3FX}jiz}G7&c8M0$TO%rX?>debOl6-r-~@o~`TL*rhLs_J)#aaf zia^^Di}{QqGzg(N%Zfi6+^=imiR3Q4);jEF!XEpk1*^lpu(wUsU{7qr{Hy#1j_D?A zY=?K}p9a*fZ=WYn(S|2pAXjwXU&=9NUrX(T!SGzrWxt#$4DY1NjLuLUt`6`Z=W=7A zx`;2y4nuKYS1Ic~)-Qp!cxePN;SG_8xR#W{> zj_s6?^Mv<}c*N;5;tF)HAJ^ru9d3GD5WJR0&0dTNJGobv4Y&bxe|4Jh8eR$J%6*a< zbZxH9GuYdArEM$t`D|m9*2IoH?LBXA7VHF&w+PY_8=vL@%g{!}zQyU%*|+6yk)uj} z!1p;Dk?QsJ5eEXI5ZKeAF;L}mXah(PdxLn&s%px=6M>w`+J*cvr*7x{ z&>-@GnWB7y7-I?puKRSyM^sX~b>lcfM#6JbHty=QQ#O3?4TF(QQ<59#V zXpg4?JzqUgor9-ATf>|ZXF~5>IBTE)8)hq~RRhTpRN(Von>)7-#9B&#{v+ulz`$!p zzKT3jYXvqkXT87`C||KyC-wH1m6a8O)xh$zT8#D-*l;GBZQ%%ghnnuJI?mr@{b8im z^{;-?AHH>AubA5?;|Iu%svMh-SS~PX&D}Dc1u~8%cJ%0PWLbtLYLmuF5&cEu+#=E0 zHzu?gQ|?+&`N4EQ-8sf0=8!+4b{lSN|p@k0CNGrzveM>^FEt{Pkf@nQ|g4kz#CuH$#F7$qQI z)5t$0HezF~LlA`mG$NP&ml}<{u2rQV$rZc}NDe!8bZX2Yn}gcfqwOjk5!f3KxKK-Q z1r$fKX|gGzEap11(lp3(Run;`1m!?EiD*LuYJoz!YY;!Y-I#;7-|=L4d>oFL7hCXa z+SAxu>{`wy|1l#h$2+ij0U$4V3I@=6v2c2K7{>q%GdU6r{3E-k?rX&go9QbB0atv1 z=F}B$-wMW@&E^k*{iEX46vUZ*#%hbrTA;M-ttE*aFQBPKC;(rj=Ofd)O{#9!C1iEH zBBg`Ay34R!7+n#I&KMh~wE%p9&Xn(_G%hRH8T~kpoMdG^W~Z1CUJ{@^e$>=bg>Q}) z+}ES+wqBH6NGOS>%Ij^d07k)5udsDEY!3vbO>P7_zm43@>VICyYCyeb=k-hWA1r{s zt^G=SdPtpbzCr8Oi*MPr^N&e?6p=rxIdl6W`IW>j5j|DLfzZ~?$$9E4H#P5UgfJ>3 zU~5D~o>e1SFkGBP#R=hSO9k#_01In8hr{|CUDF~KExP?kGa7yu&+U=^nDP$r}TMD!(EP2zK zMD$^s&8k>h^S4Z(a_V$W({ZkQWH~|4`jE?)z&2L_aC=}8wkn8H1~fQtPWd0A@8J6U zWVWFCTO#+Fx|$6Zlfs?fyh{LXW%+XAyZJ^DPhub7#r&!d?PTDtezAJ_w_}>1u3QJ5X=)&#pBiID%4z1}`b4$qsqOV@_&QL>-&)KR zoi+=kwg1XJ0b}PN;+KJZ>;3HOM8esuK)cT*R}7II-%Nq zL^$>i`o;2-MrMYjc*LMoL(R-@*2Qh$_tyS1}?TI2S~o2^=+Yvoq>T2>6iDaAqQ3>b~iZvaNGc@wj~O`L^$E&w1=PZzuI zAW>Cuu(+91ZmnKnX1kpu;8lB&oTLw!a|qRYqy{Lhso=&gL`nc4(P^yBiimR`IHsik z5_}>dbwlaT!_GplJ2ZA?==x!urCUY5RV!&W4MRydnDaUUD1Sc&A0f+$d17)s7yL(f zQF!fXL(`cRTEBRmQHEo->&>j~dRez|J|)T&_JRVmu(io?r|vnL43N#jOY|z|+&x7G zSd>*&yDNwHd*(T~*B-XLF}aSr zEZVpZ%pgm|P_I`Y(Wbn>z^p*D?(m~Hvb8v>E$`Q9B{&!eAQYUGu&KPBV2o0JAZY4 zI5WM#8F99k?02C=7RWQNMtf;Hu!f^3H0sLgL4fQX*M`rETdgtCcI3LlMM`!uh2f)A z`GM0GzQ0x;9_~l62us_WaHHZd^kvuOk~sCQOst={3Ph%=>%@m7g9fI|uJQQTn4;#F ze=%fE?rr)nhRj){|6<6j`rVMZ`YuqXi*&cVxgC2Is3WBZ*l0W-E#qv zFV55b1Jb<%2hXury`tLtmbhoHZ{H%1(wybjV?AL`W528eO_Fk2U2H%V9VqU$?E@qc z5;Ka5NhM1(D|azZ2R#r_GC_gyarfPIRB>4Uufb%PzME^EdTWdnwx_&mAZ^X?QYj^1c7cgjCiq4`(HNq~ckw7$m>yy1@A(HD8v8c0$gY z9xK{?Le>rfC*&aj=&5wqECI_csgoPZu1iC)TaVNBUc5OiFmI&Dl|1Cvp*CW4<3Cpx;4>hS?HCeLQN~ltsE*6 zFM94;WFld)oq@XKg!W25qI~PpyZ{S6iBUcJ9q51aL;BO?48 z{j->Yih1+6M$Z=u6h}o4-8V6XI)3Tlo_xWWKO&dx*Xs4jWf>_#;(1z;B=LBNzALcKVt zaJY4H+K=tYJ3zOQZZQs7CTsNq<=MdSoN?n7pn}&Jjfd<*eI4b!(Ha>O?=E@V=63Dg zh;>Q8xDwH$ z{jpUKy`J1UsNeOg$R|GM@s<1eo45_Y(yo6S()%&9%`qmBx-nFQtYH1YC%7|? z*1Msy-l+N`3#9dK1OfW}HGqTy=z}*VRF+7tz<}dn(Uuj%@!}$#xM2dZGLm#PU-Fb!F_v&zD`Wi=vF;^ z8ep1;ki*F#3_tJD17fLjF=|4Cd-n2BNOQA;FpTU{+##;}zg$)37&J>?elkyM?<%iv zjwjfG^!VyN0(E=(`G(2a!-g_C!|;`qL71T71L249Bw~-!uiZdqwmv_u0N-%9F}Rwg zS`3$19K4m#Kc)ci&ep4UsO17c`?m6t=JJ`>OFbW@56PYd=4fYO11ss>+Ecom*M5Ob z;ciLmP?r;`i9q$>8#~l?WyAM)A!EY1YhRfS5tCQOEnZ3o^A7?EUyS|!jk$hroY-0C z1RJQOFEC5&dZ+y;*0!~-uc2`q7%sW_P9#C%5|PSA`#F9jk*NXh5I_#-e<^8q*vu0N zL7NV_gHIlZaln`MNrfr(b2b}1K3Ujlf$hb&xzFhQ)mA);iceqOKADkt=CZtpRD`o- zs?IVRT?AlI?HO3)?+q0Qs5A}l?F*o}D&{uCsj+$UI4O*-^$l(`%beNq13{np;4R0@ zS~M^j@d{Uo6E8+1KVDwxLnEa)6j2*8>fA^%FM}rJP&F)gp-sg8;Kcq5+J`r!cjpKh zk{1lMfnLoywYOz6ujhX|R-hGwc>({*(F4r+{0)6Kr{lqFet^`_=V3-;lwxt$v*T6) zb&pQNZK}c`YoU;($w2Ts`z4bkJ#>eiLs#^YoOKFq8;TqF`o{N{cuhz@VG)-S9EfYNR>1KrwD-Rz| zcv%=FS215U%aI3eUVJI5eQRw0#YRz_Tw}x@8J?c+%Z|LPKpAK9GW)6J_unK71GoXO z=NyN;I3TR-`Iv27nt9w$e5=}e_(qNCaBJvCMjV64A#p~6pnKzEDra5wTXMME*WwuGYkR!3d-5$*ib@VhH( zMNWAe${YlI7U@OXii0LylXR#{zW+%~lV!$7x4rasmFxn1XJK;8>$=MAET2JqfEk9F zc@2?O_iUO4#6UGYcuc)~Wg`Re#=EzEV9YW>l<24npN9lNF@9T^#{g8#+d;oz?Td`| ztrAkh9Iu}U=Z7aG_(a?fH5_9IH!uMg4#|Xz@LiW4ASq278=P6$_^5+DSK@oqDz2W zvn%IeCY+%Or;Y`U-aj@6bB?_Np3Fk3iZ3122GKQ5(#bYwgQ?T=w8X%M>y<5_M=;$t z3qIB~InKAJ#`B!`B3fSfcEAvW1b(om!m3DrUzliC#Zs*2W$hU(Wd3a>sW-~gGBkA+ z&`4Ei&gK`zS!7lTxoxdLm7`E;Ko{6?tUYiPl}^F>R<+Z#1an?Vt3`C&vp_fT4%qC? zo8XEfE?i|n=|nQf2gWgbW0$2+jSG!6*hxC|>u$}8$$6SQWz`ch`0iHyHZ+VzPiACe zkpHB{y${3!@;gfI;dblo8TQrDdkrmBB+9`Mldsw@ncfZ7wF0Z!A0HVfd_vZmPd=|M zQt|nWwrbiY=Nf`W2vaz*_eCj2TEP_6Vq~VQ7y0u6AL7_AU5$-ysj=buqjJV`LCOMs zlKjH#PP?4nn?`4DKRt5YE~HSr+&j}mI9ec(c)gk;1+Mj-c@%z6sh^S$?fFv>y zyube@wHU|cH=nYoz|^?3{{oAF+94M8N3cZ@%Zo>X>Z8Ov;xlT;ww7m%HOK8Hj7>%^ ztDpR0#F@$sQV}-{Qdn_r@0{8>F-f#aPd^n*^^BY4R1Zi*1tqPo%$gH&QwCGt2Yj`G z`?Lv2uki>3=AGS?(#7OjymdZqEMO{7tyfa986EF3z7}%%*o4*NDUjg$M4s2#Ag=rO ztZcno=k%Q?t6Qz!l#6eoasJ(F{F!}`#}|m1o?}_d4`%b=j9IJWWkDw(>510V)#t2( z%!AVdwi4>tf~u`e-v#(e+k(NpvYNyn9zsPF@CZCd(0#j(!MBHjWCKo!c=u#!_pbkb z$VO^$Yoln^yu`MjN-i?3s(_MxyQA*iF90#ov;0mr@?xuAvvy{SF znL*RVr`@9c+-rncEB9c3$2R+wVg}G}r4XOZ%hCNes)V%;D2~XZrmSMiHu+p5KqGUO zcK(NKV^b$m+9?lO4(x<|4Fx|T7v?5=f9w^vje%mX`C~>+bjGyu^K3n|f19>N9vc_m z13DOa7w!|dAEvX?@&=+gsZ`w`kVPHmGIugbw4Rv57CZytd@46?9W=n*S-sQWTrb|x zy3?Xiy*X#F9Z9}pN9V)f3g7j&+Ot%g0nSagMXT`dU(Fv!XJ|?41bxRS<^1}KUB{_{ zjd6={peP$R52B9M7rfm7S7QzD)$NVC7nTtw`&E}zyPna2uqIi`R{NpnmrVM_sI5&x z+|noE%6GlVv$zT0?9sHbK>W(N((#e!Q~uc80^zl_s#Yu8vI>`tao*xi0fAXQ*Q(^r z1DS>^YyNpp$X!Fe*yNAb^o+x><>YArGb1@JuSpofPr{z_btHv#Pjx?w?k1Nu=Ijc7 zvej*=Xg>AJRzPBA-28C@E@`H9GVgwB&%_{y);*JS^$_ zYaeg>q|KB|PT4A{B{ijtrMW|;g^neam6ZyUO}SK(nj5mz)TCxfW=XD8T56W$n7Kox z=0a#Lh^B}en4qX2BCEeQGr#A0bmsd0G0*4!F1p^wv)t!C_c^bfBNXVINYI1muf}#4 z7k>M7Vchs=-(6HfTmDxj`5&A7qV0Hb*`e#0&tzfW-gzNLa9oz6n*bWryW_3hK;gZjC(-IzFo@>@JZ;`s-VLAdo>gVvV{ZiQQ6y$IbXmvc_m|~Cn?8G@r=6wm$ zzaM7{3e@rLt;UE83TTfV#dR_Db_Er@huI!krkz639G^udNCtq5OtXW}lalBC^#RA3 z+yF!j^1S7xh2~m$qdr!XW+wKq6XvHG3%w{z5_!@Bsu(tfEtVz=`jcIb4%V>tHT9cD zZB$O#+{bnF->SXQI8u1(u8XjNu=@8}!3U!0>Lj;UnI4tUYxPurPUu&XSwvvsCcL#2ka85CWzQ7+lMkhJa!eh)-!16t5Q8D&L@ylG2mDAnzzM!;k1Bs_ylKuFu6;+FPByXatJ2TD>V<0=1 z6kK>#B@>*P3vEVveSJ;AMhDH!&?y83R3PQdR$8xL7%mk3b&L7dYm4W7`=3q|g$4Xb zG7D|54wz@Ki6u9rSuk46)Lq9^k9$c-XTZlUQk|MAKd0ZzZhM6d-DFw9YtPB@ z^Y@r3Cu0>;nNG9G@&?mT&X3!wtfTB!9qnziDthecLr#(8t=&En%FcOy{xw$9MeHrDa zCK>oYrw(G0#%8WUT6Ct44~r56XEu}7IW`qGoK2C@IYt9dbQNRX$m+Uruh&`3MyD%M z8R+lerv6ebg4ldF!xXgU_(tzI6A z_!z6_a&`Y7vMHCr50eR`mQHu&-A4!(@t)zcl!uhQ5JPZi+7R-J-T1cHyb(_bEAvgr z*^a6B_VEr!>czMVrI$*C@_15MYH60xkNGWIIGrix(sv+)oE;C;_pS2ak0>F|9-LH; z-^fydv$)im7)qhkZ_z$UNJS5`5@1On?FeIL`qM*%B2ijB7>SyaQnHbp2zQp?J2uND zV0FQZ$j4+N&!!kZmgwV$?|SPUHYW$nqI-fC^_2OyZ2PZ^kS5)ZaB@+w8zUQ^s0Zz} z*G-)x6?Q_gA&nq5KMG6Ot>-%wo@_xXR)1C}Y zXTxt!Id~DqRl@f6fT`G~|MBIGF!0OYOxMUtP z0f7Y4VypJgyclP7geUw?ykR@UhXL_&bQHydnXLpB3a_ezPdE`Kgg|o9Hd|PA`mL9k z?yLUf*E!EI{z5Oh8uY^PuP~hFP5r)GCi`Mq(97}=Ftwg^h=VN!_Nvs{pb+B5nuuB; zSHuW^hKBSemRT?>i^cWXA9l#t;j3}Ot@1Zht}nyDgTuo$4f$wE9lKkyqp(y4mL4=3 z-5lBkiRi22?lsN&d_bZ#mb**W2@e${XOG@b6Z_^9Vnb3PJhnNU1x z^c1?NBXcIanoSR3iN`|l*ZmsyF>JDx^s2chrg~GO%)^lpZCTvO(o)9=%ROww?zS^6 zr%X|amF$jga6a;t^n_`ys-s|Mr;#KjMzK5(xCq^g6CWW^%D{g!kX)-(Fz2^THsd{K z8?CD0Mna3w6!J0Z=+2p+2{BTCf*kzluVT4d5X#u#}z+&eZ^ggSY%_fPjWH&J%Ij44oBdv z$1ma)Q(mURAKKG#LGLmmF01n;rdUZt3#fd@gOkyrT^H{>BJflU3T>9J%4N;1ldd{y zcwiyAvC-tIVYJS;r8mF-tyn)l zHj(_Xg-0i{^tkO}&XY&cQS=EINBV(;*0* z(LSFvtDfpUWe}sZ;A~M)8fxr2wy0%2vtgSAW=#-xqg`wIt{NFGbzQZwmStl80lso* zXQA1FqX{QG3)My&%C(+=_4Aw%Kk+FqsN;PuD3Hj`w&EC#bjwughl}lfjV?FIb zJ3=*R7)u^STFt9+kvHDA=OTo_Mn{CS5e}MNQAI{-Ev||G=~}8yW#ziW755Y$BD9h9 zvOU)>uO4yn@x@0zqizbpQ)jngLjq^%$HYH*W!bmcoMgr#sGB~ny_7;-fx@oA*H?Fw zqI=HhQZHtOpF1^%&BmCVsz$n1o(%icRL**!ruy}F_kLu@Y$a#uDk2bM+55mo@v+OQ zIAz=+kt7gma#R%%KK>&mELHkTdSqvO694nn&;9Kz8*6>FXu8NtVU5yBVijqnoB3zP zM32QG2Iyea>&I$8+P*&Y0)r8$?RDCbT85`794AiqBDy*= zcFp}*&TRJ^KPV_5pB?m=9?NSj*xZvVlk7`-sRlw8b3c^b9T=fv+RG|Xh29htPF=^E za4PSLQ><{jztBD&fN$8hK6aYt8Gl;pyfe^n*3ZNXo#weyl#TY5ebrU?a6vsxUTd>Y zHEbVp^r}~vl?OaRI%sQjIrfJU_{!t-Q-mzOh4h}GNof`%`DX7e^0RkYv!;><1s-=N z#descZG*bRil`lzV>`&N;mUQA(7__B0`}*J+0^PZLV2)>P0~)FEcyl2x~jVBy3uiF zfPKtj*-q^HVR`H9!gl>U>~vS0pvCX@EaZ;9FaKofk9bT6P-A40 zr!x7`uXR2y`C%iXG-m+{G9?H8QvT>Xv~(tKa2~`YkqkFxM(q#<&L86WwUd zv6~rfaF8aC^g+4Y+{SWJDw}b<0McfVPMN*X*K!KpcCj&gh4-t?6$#u+9+om}t&Mx? zTtN#>DPKBwPQaxf__#3F8edh_3`ttz8%sIz`g#G#geH#1#i;fSA3+s)$$KhcigsB3 zub6oa!e8z(3BL!#9iao%lCp8h|9TK?{j$E837O>i9*7V>Jz7sIPf>S=oBSvvjd}Pa zDRn1w#kCH8{Hy!*ZuU;?yPwk=vL7$aOsw5H_fY$wGKiinfE#?ZB){RNCbw8%xc=mj zXr5k$qUWue+k}`+<~{7$*vnW`>N&-02=jm`UW?vsYpyjqz31zf+mgj4t|i<3!uq}vtaNkR0RTkrz7m;2y(St2+hAL&lUMMuw56_vt)|pO0;!AQ<1br** zMaO~GKUxy7clqxZ?5ljUm2#cmmzwU~rpv znsF(9ETRqE7>t(=O68lbO*q~S3lPRKD#$f2m;Uje(ZQ6KQ*^WLYZ7iNy2qNFb$uJ3 zL5JG_9*dXe^f5-zxqjE)m6fx*FK*eZj~hEc{`L9AtP-y#bJD~#{k1L)?_Y((%j&#n zvdPipTtIJDO{4$Kqy9ZNF*E(_7oWR#Tc9#vWC&(`XpGzS>$bhkhn79Zy26x$Iv+rd z9^~lI$^FB2K<(kwE9KunjSb4#t^Pi`#V-v^mBV*O;c4DFD5s&S6Y%u(6z^($H?KHT zc?~y9FaPXqlo^*C+6=88Kl#a9J$4Sgg6%W7`TIwx^EFFIY}Ibg>4&IQiyuRUlA*B3 zG|#&cOKzDX?opHOc5VIRXxOj~nY}AU;CzQgvM{4mTu#e##y;cfiJ4hWvVscS3GIq$3j)o8V zfrldPB-pNc7Z!&o(o+_RD z7!ld)7S<*4qZx0QGY(8$zo=gE#0P)covYG&y}FwFjaA4@n9@I+sr$$rg&f&EvBGCC@pMih5O^2*&WxyS zG!%u_gBgRUqYH`Q3?O8}pIOGt3z$FcP=8xPW{n%LWBzQk{<6(vu->FW)H*XVPTq>9 ztioe5wP9suwp+?ft(uoV_#uQuN*wdN=L2=rr-lwu$^_nQATc(B2e-78LE_P=t8a8eYu^JarZw z5gC5jDIGPZy!e=7;}j1Z+Kt%n!iW4^)R(?@u6O_I7^j$eZbf`*kVFDKAec}}NGR3J z%}Ovrh^LX?SN8vxW?FTWgPfaylkrMs$p-}GX1#vv3e?U1hi|6ryKaq7!ViDs{vs|4 zgd@UTPhGZ~-6DCEkUnV9%nP%*nc-CD>hP_8Bx6rEruO$Ki@gM~-i7U7!k~gjdw~yJH3EdSLzQTJm4LYJ#!>TUZG;#R_#u5(t2vrRnaLB=w%Md6$ zt~NcUc?T+E&WlWtNfaEaG6HrZ@`mMtf*xf66z;y-^QHd)frc6oSlALqng8!A5A@55 z{aKXY>N3TYKUvB9I>13{$+RQ0Z?1fJFX1<@1NH9uLk{9XpeZsxjDA69#>_B6Bw%5! z{Xy@(mfq>tjgMNos@*ZgDB8B z6Ka*~(Z40*t0t4M+lwR|6|ip6?e`DFrv%j=1M!YK6Cabd4z@ zYnn3BtrAGQ0~U@dR^F%_X@T7Nbg+DOI$0Nh(Gi<_iLUTKsLPhQtMN~6&;}>rUGdw8 zjpA=w0Z&xMk)|Qy=?kZB>EidI z%1N?MEAgsfJ?mT0OKCekL1;cyo>c;IvL2Ph$-sQkv7pyvDTl{WeaS)m+?E=9YQ!VL z%ywxgZO5vpc7?q2i3k{Q-sa}LbG=@cVCQt*T&usR#zLIpoN!Q-biQyyniY*Iq7RsI zQ=IA938U>9^s2g-#4jh%)_pD_Cfye#P3#>E+8nLCY$?WN8#IzSDQTEo`W)8~rRHUW zS#t;J+DEr6>_{`Tl|gv{QQmh4zLcq5Pe-PKMt$*MNZjW zwKv(=DvSc@JkvW;tCx1wvDs0kgOBsE%c+pJ=V0G$$~_(7V-U95vO47F*@EiN-qqEv zIp7%%v%X3sXjd~cD<{hZSMUlX??^4*-zI`8?_EuVeRgm5fl5o8&P>0%HMsW8ulF!M zx3&~vxzme^jJknI4cUmvqG(Mf^P2>PvE?$ZS?Jf%jOV4;W#D(IZ+-S2`RWdeb^P4! zb(j`G`>a4RGmF3OK%K45KIBpI*6w1mFccpSuu}@{qY&ijbN?;Btoaq{U)e~QHU|u7 z{QFC;P42nB`#$#S-hj|griQH{?j5$0^9JGmSuvZ|yi*1hl>11xW>cMhesxwg{Ukoq zO)_2X6*fFoaHR$7&sam1d_-9;)e&`L$M+WiG_-5Xq)j^Q49_51_A(sIMzM{QXWEuZ zRV6Q$pLuVBHIGP@O80!)Tc&n;h}hLSQbi)u&VWyg(jk4B5ue{obZ5&*ij?f;K+s-0 z6=v851*=&9HmbOJU8U3T$(Ynqqqp{Up^|*ikpR2eQkUqZf1H3$q15sO3KWaMZSJw* zXd~u1fd&Cx(y$iy>R$aLXM;33o7!>>GJhCaxv&2NFrXQ(+&pP#VqpAh*%00ZdMD>Y zB(Gv58}Nyk!J|&IwOoB1U(oysT%_eo127Uc$TcVD;s}N8v$xqz6Ju4vDX-z;p6sZw zx@Nl(UyIQz<3!VTCAPFyKol~(=r8JARY-Os%-z-p{n!X;>h54o%F7}~Gy(qsXp7_Z zII?cx3+~cNd|lu(BqZ%^f)m%OKsm@j6G}qwz+R0+@|_*{l9$9y@8oZu0qD@wB2&VW zq?i&>GNcS0Tp4qqgoP z>w844Z?LMs5JIzUzOx}$Wg&(Vk4)dW^eooLx;B%Ig-#_uerO)iS>Ih0cDlj1IvdF= zE`WH5GbR2;mA&*TH>!}+zFG}koyR@p|KxGZzUZ+Px4LBObXU4s=GG~mSgV4cA~0eq-gpcc-A_HMxIxCM|w-JkURM0E&W2DpT9Y$ zy5n2l)cbD(q9yKoq<-v2(9aGehxh}GRdMpx8^^AM2{_qxjq6+Bf~93++Hj_gdsU5> z&uc}^`K-tI_zcXXGrv@Dq1 z^t%8SFu2z}@B9BE2KQ=0>@xXV-=29!i@fW?0u>-V(6GoV9QiGeADBD^Bw4>z8p zHx_cZ74^THdknuczE+tZhOnV2)?hB-tp_>D%W;s&%xq(Hf|jeUgCPlJj{D8*MGE;> zaz!l58Cm&)TWq=_bBmY+?!!hL&xDTg5=uAvlE*N)h{5A_*WN`{rq&={w&(i33?zq& z+Bb*OloCT0pu1U?2PEI$KP|MwD$VyUP4xX+rqPS~RnwF=K)*OG7tttTqH(us4=7`1Q*R9XjHF5)j=3@Jx z%UrCTKSwmZRU{yU`4AdfYm`7=#u%ia!gGW1VQqZ3NL+_C>TZX-&)92|(b#4Bxqjs% zZELq@Srq0*sp?jcO)0uLXYrf|F47NWHmG~f{F_^r^@`HY7aEDWWf1WxL7&lB7}D;V z;te+wH+`@71TrK{LVW*_>VqCLMF5jE`IlQ0Hz(d!h1NOHjMR#$Z0=5##~~`Tf0kq@@tW#)N2wz%mg4kA1;QR#U%&x>c>&fHFl% zUHAJ1$)?}|@J%)@hp&7rBw=A6ypUm6;T@3_bcu``Z+(-&(wW^plEobLG!G@og07yZ zjjO~yLtFFtp0C!2ocmf#6~(Ff4%It-eF`&R+s$X4<8{+twpKk2iixuPYIljNPjpzE zBz{wfDVJ=|jd3b`sPLVQ+tj9Fj$2PIWSaz~bg zmm9yyiQY;N0qe&6uxAcJQ}RneGSDC$_n(ecuT+-vV&UHlDS+OyB@0@q0H80ef;XqM z2QU8dw?wAijY${#2I#EO+jU7TP{FVvq|>P{zA~FEvo-a*#iQH~)*-06mBMRP$ynVO z?9|%seM2?aVL41)3DFp$p`&1{TN=JG(W3ADir-_HD`me`HX>=dtTs| zXhWFFFDU*$Cc+F|{fVVx`z2Rli~C6%ja@;{V%G&4DKb*c@tv7_(oni#9j(>R6?UGP zGAwguc?p(Z+;cM1d3cLeG)i?R-_sKj%~di-faXfEqKX8G>0FaJkMPu}_B4X58P=cr zz4>HC{asB%E^BA^%!{x|V(k0kT*O3{BW@5pi4QxX>JGo^eE+Abw)OynY3fkN(c9_e zIQY=kTQ|gn^hG%sa#(awnRh$Fbc(GL}v6~<%RuL@mGu{WYVOzNwH=Ul;eKT^2iGv^PUlC{Yn3lGd z+Y*^tT3@DR!nW|AEA~)3n;ZiGN-nW{WFxN+tMx}r8Rrrzz0mk@iD9xoHEP1v z|0F9Tw4*Vs_N%WNrIL#Q&=T6JkE*f?T@XkA2i*VyA~NW!^Cx46!TtEq&DaOpKVxS% zxUR=8L*Im{m;XWBka6GkCs{A^PEx~W8RFUfD5u#F7n9xbCGCN%SYelR%-ciJR%^jX zszKwwVnbAM>%5h(95~m04~}8gSIZ;=?L*VWb&}QD3^eaT-}!oV)^@pb+oEVLY}3pe zxH}1SbmZgORk!%Erl-a9b}vM|Y0~w82V|(COyF$b)T^HmaQyIQHnmOv{{74mN;F_J9*V}GQI@EM5 z7a>6x%i`FdOX1O^=;DwQX^#+zrY}0NX&s(ppBtglWHgLgtVK8uigpotKfhJF9Fn{E zj(3{b+ORu<_CJi6OSnFT>2I$cej}_4EMYi~@4J+e;p!s$3Vu!2-4O_?Hd){36mk_p zk-m#f+rz?s9I-0x!-n1w2!ipIhUim@3jcQIqyVm-5kshW4xtMZo!Ph$wEf#D!}UcH zMgm%hS9XJe3(ffD`?XDkz@VY<&Q0l{MXV5+VaC_9ZyG4LO+!W*Cp}I(iKs9lMbmWE zamcbCLkC}Vc=Y!B9JS`jC{DK4d}cFx@nLj*O!hl$NPpGK=lY zbH~-Uw=0e9HkO`%CXn}?+4t)Al{~>>QL!MrTxhs5F0@(h$CXBj8N2$uQ@#G@WsJv+EK*s|S z(?K}s;t|$cV4hn&tS7i2B_8~c_QoJhEWHx_ZapUT!1>_+cBX;vToT^K16&^iJ1b6mVU6v!R+by z204Wk&(;cds@35gf}Y?}jPFxLn)VSt=CqDj+^W3TNn|Ivf7VTpxFker%yNTo2zi_K zw`}{b2fLbd3yi!4;7RP#4wR49VpAyHdG$kwM6Hi{@jV|}pqCOFnYyfOO!S~f@i$By z9Tx94sFQz4T|*5TdiszaOMFIFUd-i|wqNKQ6s36`3G1QA6l`>4iMwt{TNP%i@zRSJ%MJS*0sPDf=DS)>`N@ATka6$C!l6?+_Q075 zI-mylRy{Jo29gWt!vaY6e^AD122l4FNk;2IgLq~7M8tdcd(eQXFywq!;%OjPwD>lH z6MOVo&oPk^>L@GQZL~^{XGF)dAV5_eE_BJrz^=2Cyrz~pR6^?{d*_C!4W`x39zwaIn@#+8{1ecu<}wP_4@jh0}!I68Sv)wXM4XLc!ZlvX^bzp>@5Y zomyBLV<*I9IW_AZUAaC_cJU!0RSLSc%miAUHrnj*wRn?yCZ*ou;tPe_A$vi0&@eru zG~HgYm6;&P3L1V(#)Q{>&F%|D1D-QHnp}ydj!vwR{>?x>b6YSf)T^x=yZ{8I5XzLz z;F)pBo+cYy9dZ;sp&mob%lK(eNQGmsetBXa@CEvp z63Z$xj8)5R|K}C}AOuD^!kSqnObTZ@)FB#_nFEx~}Nj<7a_{Bm{w)x9Q?FH@eg z-B{U_y@|s~&%QMkNiPCSAk_FxCGx3)HQ6f&k>xu2u&_xtzPE09cU@XckeJ(O%uaVt zzF5ghN4=IsoZNZph&aLbskhoLdqa7SI+urrDpmz{ZEPO$Tayna@6^B&Jj#4MtA9ZPjR2#dA@vq7-k{>p)bh3zXb)qLtlwLoQ z^_J*BlVS8Mq2b-NYjpfr2SeMQRfi2;7;*r6OxB~iwM+eEYxy6ut3u3W~U>9V>YXWv1 zU%Zr0HjZKjGks3DW1b&H#cDgo%uMS{3_2|7Kop+5x<@Z|a`z^m`yP=Sa&OVF_M8iS z26@9KOB$aKWjBB?GT}~yWzPXxKc{7rG~x?_C>JG*y5%V#6fl6gTl%rEfD;&e{lL6bE^1pT=IpEL0G!0ry*EB|E|35ki&=R!*l=SA?1t8Zh4%Tk8oyKd77E;>qSxrw$Bv7DtEPPoMPc=rkbYAVZn)`gkZD zQSPD~IA#d>ef++>SP}=yMtV4=Tr5dX4ecoP5<^%=hRs5`qxGo6_txcuDs2_3T8CqE z>W1G`=57qtS!3#-crd;yHUvMl&nc#<#BsANNp=Xmg)Ei?-S%n2zB{ezjW=RMLTFGc z6zJ#5#|hiRg+9oz0F_`H65w4WW2+?NeMS<;OOn|-K+tx&6aci_7s^G!K!V8(_-wRf zo@W50RezC2<9A-+BF&mtv8pyMGXjtff?_^-;yzw`BY0VE?FVN6d2wX#Q0bOkNg}~P zI`}O%v{S_7yb=XON0|Z}Q|1;#;+yo`7pE&WRmd3c&osgdj0ZQ1>-d?49=erzYaAy0 zTLwo%1CMjOO1-3GrTi4!rOD8iLivzqMN1WGAAtUp zW>pW}96f>;_4edeDXr|JyNfH&1W68J{KRX3IYBqy_3N%^t8)n@&XGk}#tt(warWX4 zF+n0Dp$Pr3%hlL3u2Bne?N7@J2~kymo)ds5s7`?d%?D(Az<_1*fvZCOJH(O}?-FGn3e(=!2qG5vCp7eN_y!vSz>PqxA zRlorUp20iEFj4nGigIj^Ma!lGk%aV4nvZM+p)Dgc=4NI2AaFfyQ*`qvAYJNvSDV_k z^wOb?U*ABVtj&L?REh+@TXhTtl>6o20!mz7S82O46IjJ|e11r(6qkd56Q87P_kfLZWjUj$qvP3Ro;B?r-Gk79#yNr&yC)QnQ6QD+`cx2k_^#mGsc^qrDS?#tRF5EZ+^OxL<}1=V}0EOF6uOjYzEuooJbtMgVWPs#-cq zT^vMMHIKmhli`Z0)lkH7uwJJt^U-h|Ac%Cr%}fJ(AJ9q9Yp`k^{Gr}8n+*15;!q+GX8!;0|c-@ zj<;i$!7>QteLt*#ZCz`;_LUu(x9X?+Z?Apd2<8^a(i%B`1a)J(Nzn+Gk9g|0y1Z%Sn&cJVq(#05$CEpxT7rZe&kL4WbM;{dZ;ppmmR6PW7#wNUPX83n;j3P3#9Q>1C|m zi_}VgvsoSIR<`Lfbnp1Le4WNS=31Z}YG{aOZ(TQ5c=3L5?z%uN)oezXnK!ZQr@lHK znrg(KzMnukPP>RI?Aa9^I{3kg#^&$HwXvBCt)2>=;tO`h((vP-2*N@2?SM&Vlfn;n z)0eycF#2-U+C0T~l`qV4@F}m|`b>v^R<%1hgkFf%4+zBY`6smGEzJ`Tzr!4}X!@U{Cl{s=iX`SZ7^9e!B< zzVK?v)4GQIf)=9I>d^+Jr-`#u?|xXXzR&7+reMpPlaEYkxCFW-#}_Hz4d{MX7o^6$LCsJ@8A$8^7vtJUGz z9Ni2T3?x0i$RJ(PIg)m8gw%tz6RsctTW+3$xT*M5fd|+xf+8HNqi7vVHYa`ICC?O~ zoa$zqN@CH!hk|KU_$3p-5jc|JioXvo|E&buk$^vDWzkfZOUA}6k`xR2@htP2=<1<6{gwQEsx-xwfC7PN0tHLdaN*;Ub1qXY(Eg+@99{^=mgAIVuR zy+$&&z)Qy$Im4}xRTQ+=qs(HJB9>;2wOBy73tXp>MXFC;T_}rGiZ$X#LLYe!37bEe z`DvMv1Aq~oW)M*m3na!mn%t8xRE&U%#McP;&B~RIdOnY%cDb&=K}RE;Uws3eqT^k{BQvY*pJ;@UdOZ-&360o6oNB`EI)pxw#Kd|P9=>JwLdepwO7W1p_R2~*{ z0!1@=k9fJ0Qfb8Fk)$WOylab9qx!6ES z;s!fr8}IRv3c8FbS#@**pdO;m{l2h=(u>jv&M8HYtrt4U?e{}}ZZb$yg$L*77emb^ zLzHY#SWm`@Dle%Kg*VAJSZyC#_BHJjedvDDxSr_aQg422sDpT*<$Ek3x%F$YLa3eKGTwMl>}l@~dSH z)t|^i3B42Tb8%h6(}E-pR`u=TmqCX8`LUV%UgH<~Fkkq?4a{7;)l;q>XEk?K!*N+H zK_-Au<&&e5@XH*mspEWABT%3J_5QOKKuIJ66zNFZ;am3y5*7Ng?GKi7QUzJW!kOI@ z@y?Qd0}^~XpW?8QTx)bqGxrwf8z((T%cS8$yKTW-ByXd*0???n1QQ1tYaB*0BFl41 zOJIqIfeU1-DXD%)#`JYsC&D{JA9sDpkH@LcTeE1PcAaSL(9@q zbjRdta^o@80c{pD58Gdf5^QKHX44M!n=DSg?sy)n02|`XB<17h)HcJq}nnf zJIT>wKyosZRS*#FvkKQIDc+ek{Dh0SMPNO@k@Jo}ZK=yxJ8`qZ2fc_L`w_Luo3rSW z*>6YR^+x!U&{-7`Xc}~T`A8Nc;9Z6M<$&(@;%bW8Y6r@v&>lK9GkBh?>Q2fMu@r_Z zL_cnN{G{mh%fH3czg8Pfk0v|Nsx;iXdgg4uKWjh!4qS9!`*&TF+oazBl9;Nr!UGTB zj1o6GJNV@&3VI4;mwWZZ$(TlBqyg;ESZ}>D;v|`YA_Er$^0TJ*imQ!bzOS)UK=WhX zvMJhcY->8|%5gNbvYeFQ+-?En(aaL8^mukm{nG4M`uDpSy$Ru7@}DMrgj>I}w%Njm zYaJ?Kye1IWg8dyquXX$XFx_;LvujER6;dM9B}V(nw}tXQu(Zs;8{^${l3LL9GtYnk z^71GrMWY}rSpg7B3@u=3p1Sxu$At;_-{N6}#i>up0^*<7Y*@=-l{$Ue!sQ-X_j(R= zjg$h<>)7c(>dNW8T!ELs8l6PxrXFo0hn*%}wH+)$EiRxC`CTy+arggm&1U>XvlCk> z^!oPKHJc67)$bz{Z&#TcZE+g&@xhl&uSf&#pgh3wjgY$0<7p`^iCeGz_8FBGCGK_$ zm%jlde8Jane+V+6@$TF&-Gk#7bzu1(S46LOcBH zLX-uo+`hqZ=@39&QOj2t*BeKHmbGfrZe@f-*y)C6tiea~+s8zJ*YgaD#FL}X*ZSu` zqqa(b;|WI+3{)Uq1`gPwYoN?ALR7|ZT`{oZyf=Y{XJ!H%j#~kkEjh-*S{{dl6qVk| z0j+k)xWmnI2VS_SD9aj@7=p2hRnYrEGMxKrw$@M|)>Tf&TF9_UV6hJ1WMGP6`lVPxWTv+3 z?2ofsr%nZ6?_q%z_V|2mJ?QD?kX}8@k`U~SMEhQ^k-+p zoXSO%H2CrgJ{;3G6^i1i%)A0b(Z$-|16$-xrt*S`>B4Iv<)P{)Z~Jw(K`*~NB)E=j%UqgkD)`*a>Q%~muVn=sv3VB;)m*gsiqZ+O=G|(% z&?i&|jf#C(>14Ce>0NM0eWv5svCm52ohzV88YaX+q-&1ayqT$=_o@G0*!dpO?-U~+ z6SgCuN`Bg$Sdg(SPuu>K^RkZyqgxdHF<<;#po&+?sH)S_D6lXQ&l|cMr=LdKPyy^4 z_=_vsr#wVXW6{rhL#K{TJC1aC-IHU0bOP~3mMBH>U-=0M;diW2M^txOb7bY&Uw%J@x&EVLCI{*Jj7)jT;-SxdGmS z`9&Rc_8|;l1MKh zYT(kA3zPa)tJJd_8=yf~4-CE^4)fZ1$Ru(Y7Jpz+(qFG1->|jQBi9#Hah_9*wi|ah zsI-FX&}4z)I*F;D=3WuDeNDwUpo8bJViCmlmbEPRyL)M=q-f%1Ma;8rx^7E{AI)6_ zo;xx3#qZ1f-rGv=<;c$1W(x$$X*1Df$ul>+d~B#t_sH~B_^xMemf>4{k&A#(g6BLB zs@+r_uYBWbIO%&v%VT^x7I+G3m-zUsIPf^4Xb)J?i=e7zn~juixMBTrK$_OKp(iK zS??4ZpH0RNU+z6F+l60pVR6yg-H$0+4K0N%ZUyS6ElqZUgh!kqhD~u4F?8$@oDOt65>?CnMs`sN1VHUt|2PhU3Uc~y zF~5K{A5kSnsNp8pT0ll z-sCk=mSAAV2%)^on0esbA_yw7JG z&8D4>W(*lnD6??HUfzp6ZUKVc!Hd!}Q#c*~Xr*65S~ITDc!C1BYPj^~23gc@U}#vK zm%kSbXt2%f#$fSFmg4ZzQY%6!wh+JsTVLLOG}xXE1S}8Kyg&IyKgJYn9CGDlA04vO{RQdTqs(Umw#hzIEDJSuKODCC}9A2&N4^uoa*uqAZ1$J?m#ajFo!e)N@pK@y~% z9n2p~J^|^Bd70FX=QGz_B4X&(fafFw_c5rl7c{TlzZvMN>gG2Iq38it@tTlPr5+GD zkh@A*E!#QMYhs?$s)2{oRLMX8WA%I85<-Ut6~a|hm&@nXd1dl`;ON8zz|OQ22{GoX zWI>hOkWbM*6192R4$}h$J^IOXA*z8?)8cj5B2@pLmg(C1t!;?vZ=$R4VS5bl1@KpP zgThde;2hNMyey65=ya!%NXe!?PU|~S{kT2&ZKVv8T#VYIrYcQw(*-0v$G{D?)jBY+ z-2C)w^|<^7T=Yu z96$gmj@J*73CFLdmSQW;MpQRY;RZO zO$4ZCi@SlHP;x}9@^#Nz_I&3!b+5zq^o>t2#cuuA(3CJU2U=Rh9-3;lKtJ-%C1cO(PhAsCtmd&$Sc$qF;5RkOh^GtD%|?wsEZu|0|4ET$=^@6yu6Gx)G zz8y+?7GE`M7TUqDr<}TLret&NU6h|cfb-E#!xs%N3G*2waO^d-#gVjeBpP4B>pA)Q zv^4|r|FQO-K~c3!*RTX(kemd`K_w}OlG7kjK(gcv3KEqlIf%dj!VpB1oO2p-MsgAn z7+?^PoQ5GYLxyjApL3p9J!t$M4d;>U)m+CAN?SFfx4YL5`7lePDD%WzoKWIL``C~3?4f(qdX%gM@G-o7JUZq?LQ-EPIg|CGQ-ptSiNI*39tgQ^SPbv)>G0+zWl4BNpMTR zo+Q!gKho82?le!zvWptqob$ihn4RstI%sNAznXmW<|_Vb3;ikse1;<*z_0+^zbhgY z=J*!1a|J8vXLPaVouvvFcxopx&1tWkCN| zN*CSU%1CEIuW+nXq3?rRpB_x#dKF@l4wy1aJ!{p%?4+f51{jMur4ZlEU8$jOJ6(+w zZCQIbS24RIzeuVS+2@7OD9sE#3jEk?T<7bYHQ_w$q;!PrI*}xqe?{qh0PoYB0~S57 zk7_&`Y*ThZSL^$XoFel-)>BG~+a22VVr=~-WAXsrVART#WBkS=$t0jgt#vzbb7B*y z!1mBS>bydWz!|~qKT(}BNKq;9bm;0}d%NulJUe@Fb;-A;ZS!9zo}}Sl+K%Ud=NoMe zO=r6Sd!$on=H^L|#?^dG*}`w(dTGE0^la|~XIRWv>y$v_Tl{9%<8~8^F%ib8*~lf& z3P!CIX8tGljV`>3nr4JeAv4}W>Lf0d{t-XC7ol*KGBN&+;k9+HL{xtI(5c|a}G zo)vsBymz$3dvV z?9qd7d`ty4>J10fYG{%EzBmzy5}9LVgdx2fss=;{Pb2|hCe z%(EWgdSO;{#aDh6iN0Dr&EMXjglU(kFX(@n3qPm?#Nbpnp& zOy){X=YGy!oL+gnIXbyoa$mec1q8e~;=3X(-wAj=0o*V1oVjn}cfJeO{C6Xe&3xf; z;?TP-GqI%)BK35>4wunB=QrQo(eiKk77%oCWwRr3ExV{v*gx)jBw`SGTGwS zRGfjJhqS!uerp1=oRxQYLOJ=9dhkb6Ru+QVr&pOT=;~s2!Dr_4*W0YP1h2ns4@w># z9t}PJvb-d<4^bR7b|_Nk>xNO_zmnT~9Ob`Q!McuAjP^C8?ku`QV%f+G>AH}eH?Bj~ zYihWmbYEq7TiwzpKA06-8jz0ewgi z`2f}BDeWbN=y>QW zrTB&X^{-zU7A)WEowHxBKg}H)E4mJTy-mkUo^Z@6o>oG6ZYl(YnatX=N70^H9*G($=Y|28MW!yce)@=8fZgdDn5lK2C zQL@aoOu>O2x4&1McN&vV_jm|d1a27>L%d)&Jt>MJ&TLcjRzBEJm)aXp)w7%`#xL$u zVbfgTP!ohFClG2%d5bAtX=e8dE+pzC#5YjW{O4u={m$le*yoa(52q#hy6#k<>2OK`D z3>lVd&!t)yq)}#AgQV0wezWfv@=p=czPP6I#?`j7E)EYE$#_NBVjk3Y*%R2oYRTX*9@1UQ$%07AD{qaY*4kHS#a*>q3Q^3EJl#rM({Vu#Y(d7TQ)Ia75 zvITv`;Bu<@pRVujno$Lv3(T!rtC%ocu3p&Gp92kUrY|P{{+G}1q`i*!JWeF6%~I?z z(^U)ks36>$MR#K4ZB7p9p`6K|gJS;^IDzaB5?M7gnK)^KVn-TZxPmlNJFj!dK4<+d z9ahEqHqIf&zhY@kW*+)vGO33ghxwfd?*`yU-_6_$_~OVfx;d0C;2DYgyR3*4zU~+YpgSti!E=2v6a2-D31)H zD(?`WtY80uFZfCWwaju&fe}*_7A2W@+Sfa9NBVm>dsrjetxR?{!a~wLB(%)*t16?M z|M-gpsK|uztmaSs9eCp&E=Sf@JEzo z94!m-4HBTF^c~7feB5GtT^l#-6o7TEA?i708P+xHiL0<3unQcKhkL@lE8X7xF97^^ zaI?sp*WQ)(bNxJ}{$`cQr_SY6vZmSec<#L0`TH`;xd8#oo0(pj$;sajM>h=2rl4{y;js;aFC9ZK~U!F zJZD}ZizH4133W%bb)+>85ZX z?N?Y?-PcWLGVYq61XiggstW3_bn<0NB_heQ85}|`g1O8<1!}ao7ShzcdB1k4j(n$s zc*+H5SZS-H=sp^|IgAD;k;j_1J-)$)w+KD8zl-4-;dHQKMvp2xx^4B#=I5Ojx1tU+ z0J!ad&iCdUu&`}Jv88Y8@m!4E>U&Y1)Ce_?kWqIj9K2vHfv+Kjy}usk>FQcjUXXiY zk^E`5AgZ9LkJq}hcYe$ON^^VAl6LchMP** z1W|e|`W=>8<)Rrc@kDpM>kGc7iRH;-5ufvQ1Y!(F$$n8*00&*+oGUp}$jVD}6cTN6 zQTUii5E7D@<&9)~3ZrrEg5YOgCaDUBk4P2=JXo0(_FpOHAH6>sJdS#|8D=_3}WOtebftVMfFuwHxqB=31 zc3WGrzqePO5m&N?kVcnR?xbrV?Z@+c5`VPn87C7MgT<~0b$s|@pDF;?^jha%PRsnu zrsx#|>oy`Gqu0H=e1qzst6YAus~+FA-$=&4xIusfD${3o4Z51j=NNK^W&0C5KhPS6VP@jZ=dw&Le>`^3u?aW%(Vi% z4pxl1zE2vt%{)9=*choVBh6zoZ`foo&5+mMUN`P~vL0lvO|+M!=Wn?_oF-EGILc=z zM7^QJ7|G}JpgX0SL~3PJ(bY1sPfZfd!BHBl=A_wfkUFm?o1_8B>&7EpUDspaks*;| z9cR-^bdnYfS1LcuD{NQo5YP^=+~|xbpeaUm6@mFtcMu7|Cg{GEjxb_ozo{zaUH+#1 z(SJ6CvZw05OSpurYD%QBPB=lC43@;I91sPw!$xaUbwVPCDMe3m6qGq zetogfCUCr?`nTo3kiR4YeGq;`?_W99SJy$HVe>9NL+slqEajS@%EHm=?@aeAKWG;u zq0dliB(%2Yb{0bDk0(J^|6maYv=iBMM^~(ArC3(P@`1&&L{MzHBP#DmQR@gQdU!Jv zqEL}YhNL5DwSYqk)x~o&`LuvW2)F5&r>huhSK-qBf~zE)QORCek8!1d$^FJbg{|)5 z7+nPMs;_3S?`Cx>9haJF1obnbDIzv$#M06zaRw#Myk*#R!Jdjm%Kk9g(>TB_+mICH zvP}^bVqdssdWJ&!zWhrqN0)jIIiYb&bw*4hBq80Hcd;USDI3fo##(8co96P& zsCe-#nohFJ%fRb1WrlRuU*S#~G!=I(w|DNo|EH;Q@#R_QtG_4|z~`}8b~k0M=P*uW z&~{hsXE>hVW6&R#!}?{p+kj1l?wKs!?Oh8TW343T@$qCfCJWIg_x-g6GRL{gwVjmp zBdwfQ(QpJOQz|X*Nlv7_3^Re0T_;z2*-S={@2ZTPw+x?7n16&G<4}3C+f4^lp=!Vo zJ)HCS8FcFV3++_ePrjMyx1+jyS_^WNy0MpSu7y5holOBf28yHiPS?_%w1hiU`xS^+ ziqo8~iDyZ4+o}_v4ycv9qaFHy$r9QlOZmRhuY6C8C##{LGlZ%~lZF{B;Gyj z39DS5=A7ustr*{VhYGervt>42XO+GMElIa`%>vPqzU1fYT|9cC?H^*_yLo?D?9WZp zwfuZbQ_5Z}@sunq)p&@@D2Z|gcJrLtI|yfQ9pOe=vb>}Sc`ShMf$k|YJye9mt2Us> zw_KavmfzrhU}Hp`OOEpZBt(1@?vQ@^-L~YkQPbi0HeBf_BGIHps{*1IaQ>spWhB^Z zj1I~Cl|NL1cPKbI$HT5qEdU8C!sqcvEBmb{1&gfU2~L>bfznzQW_y=_c=$p2a?YeN zxz9W2j)pa@k`ls}5O-BOwif>~)l=DDF-`19bGa%$;E>SNF$d{f68zilzluxNFIGi! z(}L$YjR{jo^`X(J|2>weB(Td5;Pk=6SPl3=G3`v-VSS2hw&p5UQ-eK4Ga1%htm9uo z(?#Bi6%8^mN)fnL6q#ydM@KQp<=jSpH2G%>VHP4|6+Olz6|p!X7F(SG~IK`GGNwPl8}@qu*Xqs z$rv47Y&&*r9oRrNs}u%1B3U))OX5!=VNRAkXWQ2;8totOt4*m;1CR5|u4$`-WJbfs zQR@-;%w9<*2OA-5LaEx4@MMYcJNQi%8Q`P*(-O$y9;FJC(0LLey|*EADubNI_%Olg~0A|1@DBdko71Bg%{)QViQ&S8>VBDP_OchrhBkF>cWA((aq9gye1l4dP|N zJ^nwz!5TMcfB)f9zfq~706jC(jhJSc!(W=1CMO1Tof((8nd-a*Bs694YcZbk)?!bE z%Ytn6@Rp0@$U^9Mvn<1|$T#f%M6GU2r}n!0xmJ3N=w5ZzeezlQiw68Dg9KnP9#B=k z&n5*H2H4k_hdGFjP zEDzL>)D6lsM(g;^3i#hf5B4ZC2FCMt#O{w1w(&ab#}BsdW-&`4l^~kL4&LpMSd#E? z+IOC)uLTYIuwr049;Z-&ffUTR?mgY3GC+IUr_2cK{VSWun`7=uOMdtnvH5#`_=jA7 zk0JAX6E-6NVCs|dh~Yo|QbQ3~3&WFr&-Zh_P9!W-Zt`_IeNYotelWEY;oG#d(RYmW zi4f&=h-Ge7Q5rITnQ3txADkt)r9|v`8`Svja`$OLaJnGcN?Xzwa>`S#FX7ci9<27> zZJaQVh{o+41Y2e)Ns5xd7>=8r&2!V0Go0(lMHPwU(ZO>*nFX%*jJAjC@!H>@lX8Kv zkB;dGm(g|E>Xvq8N8bMM_PvSo@i?I=99giv9VB z_*#$xbx;;LEp0!6hFAlE3<(YP4o=WZ+%{aLi}eUD<8Fg?HHH(z5o%^Q=b_?mE{%{~ zETN5@`+RHxfM?$#m^1w?o*L>o!{s1)7cW6(kW9RbTzo-HN16A4iXK{zxpbNRhjy3* zx;L!groXRzNCpy@Ejlh-HO%_jNzH(|>Uj~AxxGg|#guHta_z%y-IfQa@pJ}WId>Ki zR@ovvtQF3}WP%BJ-go^!cL8Md7-N!fB)9Tub%%o0j12+FLYNCsZM4jA@0PZI5C&Wq zlFQ_-Pwt?aU)IHSv#ks(yI1YyL)%d~4(aO}e_{SU`D^TFQcSI`e-snHLIvUn7Fs_P<7_+go>jkN^{k*~BOFUIg!v$h)KrBFk&o;dac+uY3iQ9Bkp_*$6-vi4ur;iE0jQT(zwuE^ao|XCACnOkTF?_ z$rsx%46A>Tr0pIqTcF;`JDaF`5`HI7VI*+;`puhn!WQk6%bbj*bjt)1McyT=V6o;s zP(SG^3bm}(iz15~dP~fTHzHM+jMp64qgG;PXFauEu0IYRNX7w+9+KY$N*dI1Wu6{F zL7Yd1NRV3gJ}>5p1@Xyxz`;8IQu0BR$P_d%!u;edKdpRuor}v!?nX<=MkYaS65}`TQ?V!uQB*&G0DFtK zy2UMqIFjAJ6}t{yS=M zf9I#qDfeVWON`kJZJD2HR_8N!q|w1um7X2%*%I67Ql>JXt)ZMZ#Sd(C$J?QNvy@?s zYAO-&cABy+0Me>8lCDZL`65OlZ-m%Ubmv4hU=jBe(Oa%4)N_%0;=Xgz@K|}NfvUVN z_>;&dsISOi^wgGVFGP-QoJGwGp83j~v?yDuWLZX9X4gsZ456QBH?gfI#}*sXxkXL{=aze^!@S3h?oC+(XI|d7Rqkg8h-K$KUtzy*4DT>!ldE zBZ}LQ=Gh8%ioNRheM=7YhBK@YnR?`Lb`*jvYI`9=H|$@&>?SO5GsmL_4fN*G>TX12 z^9nZ9D?O1efuKrk88L7R`GR&POL87IW-o|tH-R}&@rOQ98EEg7cYNn*k*VX?pDX1t z{>-mCr$$Do!5aL@REfhf6O5CzIhbom3l zK8=F}oZx-jJUotR6ZbuFe_k%Ug<`488B^;{%@<@u7I)mJ!x;^A(TC->KGQQnvXCXu zhf5cAd^EL9b&IaXXP}5xpps>B|6umCH}nDh#b;S(KuKkwM#n|b^7<~1rc-OG`r5uf zbdy^AOlo9^(u>4U8mn>%`v z+9nx=H2iGj{dr#1T2LCLEU$t)apW*A5)^g***L>;4(w2|!nv^A&Wc^ZA6c2-W}Rr( zBEaVZi2veDm*SK1M&m?3mH2%&r|4DXmdLSzn33Il@{PE~Z zi6YS4mouO=k>{==iB0N{hs_GI7{0EDQ+9)YlR-eBS@mmJ&$wvGbSMRMEg$)ovR1;^5Tdp?Mf}zOWMD8zJ zbPgANhLa|H&&QV;Bn+l`A5&Ap_2VU_Ry4wz;U6&^X|&zsMp~dECHNEJT+bWDN_Hws zg8JUUMV%2QkJj@L#k|5ekDr`89*WevkD^$-j$OqvkdH44@68uMcZQm|?+FvooWRE& z40U+wD;a=|UtEeuj{~OkVPo3p@9yN0-^~y&h0t3x09jP_cyTB9FHXSlpIkR?8?QKH zlK=)=YWMitYu}Bk=E|0eSa?yYTV1J8T3T|ls0;g!(QTbq8&7af|HHiid^=(R(qh9} z4MzNTrP7>NIwPxj=Ge;{P}n)7x0rcBw2M_#aT$oty}$?WAk#sNl0yklePlaYL(2KM z0UoI%xJ#K%5x?uoI>6dm!P~Hy$$69BmkLQ<{?jmg^69T*WVpI0viJm^-U!!_Tol9+ z?dpuz^w)UAs@U+*(#o{E80;Q#<9ZS0jhLsJ5i~qqfsN$j>}tYUzFUF}=z?L>oQ#Yf zzZ>uN_X@!^ABL5lG(YasOgpWj;aslBXXat6CAfJn z$1B-suXEch_XtU+c2z#~{@6JJD+<1vDS)Y_bg9h$of@CY0(do6!3ocMPwx~j)rR11 zYis+iv(;(|i=KG7pDnWVeAh*4#=F@07-*0T_m^ z%hV3d@ujtVrgySmrKrbvQmA_M;Y@}h>x@NVZy(?eT}5G@4{fFV#>ERhe@R$KgRIC< zZR*anB-^ON>s|P_o?L8X z9%oqdRfFUZ1-WUckvmD+{0Ko|=k@)Oct2$Y<%5xa)-+noR|TenCm*2dN7)RP0?a4N z{rRHLk`bQR&j4LbH7Vza+WJpA2FSkW@&f0P)cqg0&fOoLuecNu&wbdXU8%=2b4s<0 zyk8lkWj%Dd>fO-l$ebj4!Es?t32yt&-Ny7l7R__nnl5O1`hHg!b7EZ(&GEZh^ef|3 z-2oso>Asl|^N&BiiVP8KYHDqDz~Gj?kadQ#8B)0GyStu@pd2Fdr0)&8`>pX$a2|M z-{tkR4^XH|6|6EJToYTJ<_-TCAjgO-yooLXJsuB_c=^&&FvG>RBO~HPdW1{(!d(P= zqrnD>dXO6|oRNI@qZqcCWcZ{+SKl{oirD>8eFqA(%^iHrAvg7C%a#1QiE{1+toI7< z9u22S@SaD!D5o13F@?6X>k3V@X7|2-r7PMndN<6>^uN+C7hntJ5l{dZGdfSz^Qs<2 z{^sQ8#@rsH`ED^9J(iKjEH?a4W5U1B;Jc#4}Jhk9`j zf)?HeVzmVm`bY43GRC|mBTuCoR8HBaA{+*|9ZE;IK$B)c)_*)J4N0k@IyI_q`AoKk zy4WAJ*Dk0Tm7zc{g$v$83Ce0%Nff(`=V@K81OPz8uZd7~jLf$rfQ&X9_GdX3j~&9H#;Gr9Sfy`1@ zK*exU!GjM@^o1*^>$zD9WS{2qpvfGHhD<$TljSP482Hx@yYi0(%C6G0djz;h=id8c zKa=kJt6(SnMe%}h_Q#Hek4UaQpG*r_`Mm_vQ=UC>Wu>nDxT0YB!e2_=SEgSy8RMDi ztNbVXGi1Gn6_K7lJSLWQt;XyL1wI}xD1|uITfbYqJvv&|!;_IsoJ-NUomxq|1mwJ! zOeV{Vu85C>Qn!~$!i+(e0(es4$Ra%0=!*87TQ1nSi{(c#A5Yd#ln%Xk!=a6?%O02F z#R_2=Z8}DS1O`Fo^LU^YhbaXIAKj&=W8p4PKnOrWzl44#N9r{*xaR~Vp?o#Qi9bh&YF-(qRev?6mXxJAuAF4Z4_P!S;YK^^Af zy(Ojh8V&i3Nzyx#k!VfE!77qBF!-#a8@KqsVy5UlYq}F94RHeHC&$P?4ECVzpDeSI zfH`yfjRcyPNoO=Sf92-pE_rc~2WXWl^(^ME!yiz=3+$n!(F8m*q;9;pri!PuVs3IN zlt7o|Hzrmy{$rRGWjbzhy#Rt*R?Xs`^D?Vgp|X1gxjNC?X!Vu?p7y(~H#~STNJhBG zBf*M7n_rE@5w|4-C8K zj>7eI{r&8Z`QFYI&l`UIvb392<{of7ed^mij0@tQ`IJ_E461?CsvT0F(GFc6`9eU5as##H(s3!+Ue{OiVm^g=u z5}xC~3^F<^6^i0vJaIkWyOLx+ny#L{T{S#o+wAQQ`s!5Pe@sA$np!ifSx66faoFh^tNXV2_^SO^r%qe4?JQ|Xo@%}Er1mvY^W+^qXu{{J!)CM_@D z(BAY(IS|P}7MP6X3^K)|F(xzlQPlyQcX;Yfy-gx7fP{eL?iC+%cCjC7G48`6GpGQb zB^YHqWny&WU(MzgT?~S!7zNx z0nx7);A`BNp0T=tdc;~GHp0?Hb@O&&p1>sW%Rcjny<>8h287CF3@RavSzH)@z8e>O z(Z?FQ**EZg3c*$nB79VTMVX2L)|*(n(tW0E!8cbyq4* zMwFc{yY%PzJ?J*XQHZ9SuD@474xG(P{}mT8za)oUGhgQPmkD!3Pb~^{UsbLKl=`;b zxBB|Qxzq7ng`y;_2DnES|eBZ9CQ`X1n+pKS2H?%T zx`9<8FPB_*@ePpp;g{V{!&CZF=f{txTdfj3@waMc5Kc(<{(B9{tgqVao3`9NQIf~) zm$e-(gI^Ct@xUi3jLwG}u;G|Q=Gv20M@sZh;aR&xOfxUi<_);L5jAF;H@rw(q-gHp zttth&ohx}HKA;fIkT46+3%WMG({t;rX<$Wf?q!Sj5#jA_Ys{sQx^<1oXTo1e#P~St z?EdfR`N107H7q+9Po!?Lm!S*xv$faZ!PsxEr&6nhxoxe4Ed_lG>4P#_k~OR^=O^yJ z72TJC=%}LE@mwg+sa$j@FClj1Doj$i;zGQ36p{0M&3&DueAiP6HT~S|Ak4B-{EM)H zMC)u0{$+b!G-)1Zmonr|v^Qdf9iKVNdwoB9jX=JLl30PL5zsnsJ4TQySxDas(x z@N4MxrC~&DuLqQ`%Vm()5egPC|Jck)9DZ$l>#GXtTNBfJ5!9U58}ZF*D{F$gKi%lC ztH$grr-Yh-B_zHyVSIe$71wWm8lEtEL)=umCOYO+K$1k6fxPx3C20}2Kop&TKKs2O zH!qXR0KAnK3)ho7#-Gehgq01yef&!gQxh*{u})fFrh>fOu%wF}__5^`8t2e+F6nBg z*YwrMP8V@_@&n3nQq3Kzb1{zdEyAH>ndR7hggM>LUWZBWQ;4zehEyq6n{Ia{TT$}# z3T8C2jIOre5$!EGc|j^4tfW&xPC=bS9ZZHolT+gZk^pXG_9e2P=`GnSB3(JZPl`0o z8@^qzNr{N~RBENQtbEKNTVi8O+ILt#GrU9?5HGyRdm}QI#)y6_#jE-)voq0m^lKe5 zKLGTvymL$Y{pSs@oBqUL5$pv%=)z8T9GCX-rq!{^@-zBYu7#Z#XX4fwvF@8j&slT7 zCZUJWE`HNe0-YBe%>fmvmkU9LlU(+-?*wN#S;a$o*P@ni3o0gb2WYm;RdriowF_g6 zy-Q^zqFF{C-ltEA-XB{Hvjk~eE z0iPZdS(1|C#!>myvry)hvGJ3qM}XuJ{W=WANElm*@uA}P@NB5VSDE`$Bidl+!^iqH ze6?C;ur8Gf6}Td-5g&8dJ^XaPnAF+0kg=tJik^)aPFzIGqdNYSF9uJuZ1Dw$X$=eU z#;SgJci2lNT^Dkfa7rwtlVcrizdr4#3~TrCbW>YKR3&-2?|2VzO2i?VdveH;?zxi3 z14E4m>nz`iE!d^Zr$Y`6gm5xTre0PQ{k}YU>?})ZA-0Y~f9}G6xG`=omf0PaPHWNpA#}NDMbe8Z!({G)gW&`Q;>N8L_ zel-9!@1IWBzFEs&RFypGV==PcxMMR&-<)Ifs_8N>Xd+9VkX~qc&$}fIh-aPhFJGl$ zp>lyqLDRc%F}4T!zS~58M>x}7N5Skjgwd^Ee>j?+DV|Q?rc!3u$-Ly<2Y`gv8+M`l zyAu29fE)t-LYNXMRB9AW{KiMRejXy-F;7u`2Vmj^;Q+v5*aX_KSfR|{tJr`}A&Pv7 z(snAx<32t0@eF`=^Au=?RmrI8x`fjxUT@Lp)01dCty0#LYJh(aVNNx0gT6L-2Bii& z7n1R?>Ye;*og8|n&Sr8^lL$5%Q~1oU>1MSN7}8y>p3FrWb1O#2KQvLT%udBdr*%<3 za)_H=5bGvux_>3C2%wj#Epj#E%uUvDP#rPcb_h|p#Ga*nmgTbgoW;kBcN{y9u2hFwJ$BpLz%pv~YyEvfYqC>f=iSF6`W zS6tV&-bhub`78sw9%kl-FJT>(Xp9!nX!tWD<$_QYp!Wg97bJh4Yd*wXENu9zF?R9$ zf&(PuHhm5=>bQaIn0>S+&l%{2V~tkv)~FIY)MG?OK9>vFQ_=zpuIEblf;?`cHAywi z0Krbx+4MuNvRP>tce*!lnaH<0;>AdFy{8&h48^$MtWVX^+xKZSmy4ZBAUsLCo0cry z#SeyXc^fg0hv=!qML~g@VJ%1ttKnR!eV7XYncHGtX4w;kbx5BKQnvXtyO_pR8$Z^} z-C%`X&1=+ve4j-MMiKlyeWv=Z2XM5mmttANp$T6 zznYD{kb?qPQzO*_lYaKjjjx@(u$IKzsj&K1(VOlm6n(llcJxDcdh5kfPgIrsO#_6f z|7u!X-7dU}Z~7epr9;%XE-Zv5X)d(&EVJcspI*rBkk+Vl3+!;9I$3vfDB0#@r}-$> zkA|rUp5ts~U)Qbhxkck-rEYEuEgY)wsD{SmdHcQR9bE*NZ{o~9V(P-ChQU{Mj(R2| z6Q;$b_xI}Lt3Ewjps4|$AIINs=$dm_N%$zt^!QNb(_SQB8!SQBctU8_^P>6Gw#;qS zYjf)ewe{vFbmyYB7`PF|%*H+W)lZ=tpUV<@8Cq_w25`)eml$Xp`A_Ad(iiw;)^ndP z7mSd{3;*<;Tm=qhyF7BK6C)2KFw3s|jdjU6474+=P!+?vtkXTRpsjt|xD_ua3XoAA8ky zWw8@_wCFy01WouRaZ!)jGfTm(>2Oh5b1&F5_L7eqIs%_Fn1xyF_&E&n)qQYm?LVzW zSQ6qdF1*6@B=6`0CNs54N+{IBe{#FBxDXd48ZhAa1J-)l7YQnB| z9{b>h4;7P9_nA|lQD;ZMntE-`r2hDXVO8nSbe_9uiqLrKHS{8ntiy7jCcj&$pk7S~ zjj^C{^7p_WSM(eyyA;c+Y1-LW%Ktr7)C2ix?+M|Wx_S6xf= z%YXQ*Cjt|7R~PC+ZV3E|9HscI{Ec0v0DfPm5aE!TS9ReDG+s0Mg-7G_yC<)^M)G@M zVa?~SF%3G$w=%~rZ)~}rpyqv0Xx5#s;US@gi<%9E&7R>orG$7?fO;F14Ht&#erTx! z@s?{o)z9u$sQp=kHpI`b_3r$U^|32zXxFCi6Ku&Ln|QJoJz;P^ZNJZEzfUuJQOPqT zJ)k39Cw&d5eLkBUq)Uys?-PWD?CiBEUc8FDA9v*UZH^jzdFZ-y3EUfEWF&kz?b+!L zw2pjimy$U5I(PR4m$hxv@u%~R1Ir}o_99zuNwvjzt=c-$m$vD`(YdWxCAubNHsrrl zE%`4#Mt=$mpM$R97VJm3*iSWYywhk?sh_uboe)A8O(0f$2#hjV#^ILXU&8a^9V-55 zAoq@ueR=}dxj;~6Cxrk9A5>v#_XNpL3S%QI0Rh(dwe~0zT>crpWU2hUED<-$sYf_s z#V+3);NXHONlMuOT@w^J`mx^qLy64Ss#zAe`i4(C3q|<_bWL>eEIns4_7m8zQAe5x z=Ngv8_->OsAy|m~{d)EZi=k41DiKvz69!#!f5m zpTs#y#KQW$A3<`d;yd0NW%VBu^=LUvwwi2uCB%~l29%pPzs}_E1QZ|li7&ykOE>+S zboUY-N=u6_zz?3%Hoy1g zq86a;C>%Zh%5Cre%R#6JMC}fT9Neu=T=@# z=#RzwrZ@|2?WgwBzyi=ZqJZ7A!xo#W{i7K$LQQ;=B3a}yIKAJvcA8fl(J%|;QzlC` zb*TN}^y=(9vOJHP?|ZFdTQ0is^!%&gWJ4u(IJVbL^&`G2pPc{!*eZM+XXMq+E)&Yb z8~XA|ICn_9?tyv@(x>hF>}RaF6$N)*G7Y(+;DM`g$BTS_GQ-ub_3dEm}|3YBtL^ESh$F@asE2{I_!u`8!a!Y2xJa=QUGUb~Jdf=l!ktFy8deE0Xj#HX%D3vbiJriewQ24>nuk6zf{_x!*- zGvsEqUizS48kt_iHS`Ear(>cd>EJf&#rxtNa53Q;`r_WNW{)b6=c~;>)wM@t^W>fn zo*LHKNlC$XD0nYoNXrNq$m-ckUJJ1(v7*AqBBISi*AesK=GynfgfMU&Q;jOqN*LRZ zd^F6ScSwWW0S=5oq+vSL?l1P~1Xw~8pJ{s`V6dCT>ZH7uyFe2bY%q_mWPc%1BV7dz z(IlzuxNQHxhx?3!=`X3KR?^B=_wnhLrz zw^N0rEo&v7$?6vlkH0$nw5NJ98S?)#1<{an4gJGf=mlI6KnY|wM1?Xe-6p~8Jili~ zAfseFV#2LuO>2y3lg9Lvx#{HNv}NkqcH@+;(F^${st|YKfmjX}>lq)PaWm_9mc_u( z`NTq%ka!k<0*)UMzhri6ey*ZKXhDH&OEWVrOK!a?BTW6N^KI=tlmt z4Id**mR0x!1rQoMZ$@c<_K?;5DGPI`@L(qYVXy(^)r~wh+ic> zka*N04CAqPk}ua%=GwjdmhZeXtF&&8BjxSB`zltkQaty;ZhX~UY&f^QBc&_{ZpSCn zfS*@!k>7T#8Q&o8rjgYy@#6RRd?f9_;sE8APe&|}>ypm-sQm1gIla7T0g7vHS4^`W zmN?V8*X?5?oz7EgD^deeQm3=L3b;BtdICQ|Rq<8z+C5z28U9J5&d-jgnLfjN^s`{w zRnB>=sR+8Qcv5L^Hn#R@5xFm!N@1Y&R>g!sa`CpYt~0^XMJp z^RN#PwOv6nkvr?VV&BQ#cu`z?O7A#48IS7=l$dVwxRGZ*OVqFDLhWT+S*eo(J-_`C zFY%BT@n(_+{~pg_l!`#cD-vVQS=7*Q@lTd~ix5^ClMBIQJBn-{1scA)Ew9c8^k&T? zyo$n@nd832RoynD{_tu48F8|ZDxsaelk`yk!Xh3pqmvLR;roP6uOxagT&L9qjm-ts zNi@BOSyuYq-&rP_TlJ8%*r6-uAdauilm%00QeWZ1n)F$JN;??^Z!d2}j4SRP!$@gG zy&dAY;`5K$cd=>z(%DWxUx#oDoYn8gkt*ExK+6Ya=~Q{>sOuJXgXCrJswKTFE^jh9 zzq7u-a67KIBm8z8J5+p($q%(r&v-r`$PK;T8B2lx(a6J=9=?-=f*IMQz6l|2zJGMw zyaW|RL`yZRl(-MvqM0%|l3+k{FyEqLZlDy_ZZr1U8uD-~H(D&)QPo3O)0f-4BK8BP zoWFij?HtiJG-+~^sVR}2XOD1$De=75X(PbrkcOgG3!CJ5Dwbba1ayh*Q!j+kMXv6X z-V@wL z^=m5bxCN;l{ThjA5y`auN7i5Ur`^-pQJtjV@P-X8BLf(ANW7ohC{;ODTi`^$DcNdS zlZCm5*3F%eUS>Kno}A-@$jwOXhL`yyTb({mGQLDwr;&b7L{da*5m|)YGad1|-^9qNSvuTK>!NnAQy$*K+f zRL{{<3{)Q6tQPt?-5Dy8)|lnL<$i%0uy?uLAqbQg-e%LCHw|B3t}nTZKP1yN^|>gm zU&GCzj23-RoVoJ~Bzv~q5WfYR)4UaH7q(RgEA9xl_okxn>P8Dsb5Wds%AFgMtUAKK ze&w?k?BOl4Ksa?*VteoOL71E$ViMyj*DzL9qz;&8W5Xfx;N69GDb)q*G|1 zC4LM*0lQ?bUHER_NUN}MnqTX|am}OQt2DuBX;1<@Uer2_*O9TH0fMo zQE&Qru?d?qXn#Q`F+KGSQg?yCTaY}X9{-)c(}f&NAN_O#+cOo@k|bq*!6Ob-!nQZnQ?2Cs6f!!fWxsC#ePL6x-9CvI7)Y5x z_a$&H?_amFzo)nSp?`g^P! zMZQxDK@c~&t7nK#8m^Qe@7IdEnXcsQnfPy2`Mc~*Pr@_7K8w|Og4=?L)*8%6-~@!5 zqcr=n z@=RTD&qDj2>+Z176uVz1`)*RFTnfVzjlX~(S~>zShn9fd1U)xa(N%^ID&@cxYSLJ= zCOTnpR$7(3;QVOXeVyTG`qlKeOTQJb&*~AN>tsfzzNbz`&lj$*JXG^Bv=81|Y&Bsy zn4x+i*;hArWu9C+C@Dlj(Jd%B9PQC6ZEff`>&PDd)(mK-?_wOOlg-Cr+j}cD4ED;u zUyJB4i2ks>khmFq>GNuaWZkvKv3cQ#raFPh6$y0i$7Q+^_noq2rxqg#f{3yAp{*a; zDV?*rZaCJx=h!T1`l-GyR`c;eMy>I)d_`2!E$oqzOLMcC+dhY2o?anyWp5$%H2Sfxc zZ0O>yGqDb>=TvlbY`sD7rFA7x6o1g8aVRjOB!7&~e^b^mHFeNx>Wn-K*N#o|cGD1X zFu2-C9i$a@@?{}&|M~Pd_n=gWb)uvp`;- z9&NuveQ^+RetL?}`_D*Yj}_t|+)1z#GZD1Z_yy96XT?Txt)sZ)>dTChSvrx=1a}AN z6&acfWBBouAv}ESMBWd0)x7)wleTE>T~vl zxLMCL-9(S&d@e)uvKxNI?P0?sU^V)fpx?jQyp&{l{|Svra%`|XC$F!n)3#5OiKo)` zaQ!KZbnY@-^3Bdm$#0Sk6}c@(m%YE}iJT7r8cR5=2U)L`?{u)6?X)c68QJxBFQxGT zLF%rHNC*x36{J0z^V)v}DIqXa5|SQ-J0M^Dafn6QotS2ZG&Z{0G8lw=g!2~foSGNK zhJtW*ncgPR?dA-lgRg|~716`*{eOJDby$?^8upEdq!J<_2nYxW2#89<3@J)?Nh947 zQUg-bj6q5F&>hm<9Yc3BbPq$l4{PoH9m}=9_x;;EZl3$9`#gV_B==Glvk2LMKe^8F zLV)IWc{iy{ae<-crZn40huZUADX&>dfDj>XturwgBw=a{eThfr-j-2(91S>71gkBI zmF_Ce&J--<`r!6Xs(I$KfE&?;wJ3E?liT?b zVnS_8^y+mQtE{0Mq3?~doBZ`9VGV(bC5psN15Zjy)rH!MSmfMZO2nP6CPo?qSUaW6cD86sgWr&YT8LEZ`A_5G8kO73j;3dwEv7sgu<% zk|vaN=#o;CoV!-*QqO03s0XMC z)XCLH@#+KcRtsXIE(J*)$pdaU{NPWjl{&kAbS#tzbp z5W2p#n94lONh6YTURzx(wAGTHRr!(>B$#!msW{AYOv5%wv7~UDRrozh+);6Hg{#ek zTs!Ae8js`bD@)i_S}y-^#{-B>X$VKpRY?N~TcHKLE4fAGhe+Z6Rh>1jYj%v_Nw2i? z;375U(iJGuK$g z42;HR;^cxF`(zzwi9K?VRVVSmK_xJe{r*{+DEUzb?&j9qv~8zcOhn<|b1+J5U=C*S zl*14Dr}jpH=ARDL%cp=O_ST`g|Az40hGooLge)rF||M&hwc8^~_I(^9TRJeNGlQjQ6b zEq$0YreO7QJ%nQA18isXoxO!pUb11Q3E`b)YMN*pv;=ZAGJzLaoL@xraer0TT1z?#J zoPm+8&Ksj#yCXBQQ#%iX*uTlmd7P)XNcG>oG{#v+(rasfS~Rct0P`|-!X=?@IyoAk zf5Gr7@Jq`wocaM2!5mSuM`Oj5ARGJDLhHT@WC^LEkcbs>l0z&vOaq%$qmi2JcTY$B^Q#nxJY;(4(q@LJs z6frhmCYEo~C4HZAQ4bj?u{7-dqL;PY3;4TRjHZ|d2)RcK!UGk?t4Ou=>r;(jdrWH_ zB+-fSN;DW*cYJrtO9%EIo4TExW0gqGli>eKEE&Bj6OP)7r|;Q>WVm3PL4|l8~D4496#ksnTw^oWc?8{ZChG(QoklDBOw9XhGX54f)3(6=>bi>4M+5E@KwFooM)r?YoBYA6->QCr0IrS6ERp-?IWS7Xm)*+or=w5hPm@hVLrtXI72{m6 zM3*Jm&+rfPlshn%o&nGo)|{-NYS{_PZ7U<8jl9YKvywl zp#PV!>eho06NjTfJO`d&yithVe)S;3T_gP-R@V5r)QcB50omRNp|cSpzQh#cQA{%*DUsO#v=6y@4G`3$)v z#RmBJG&e}}1>|EAHZP@3QTVJ|k1B58m?1`10JUp(INw1Y`CaDJiM03S3~lfV9>JHzy>_iBH0^r;kTPtE;@HzGfm~Kj!qd-+~hnA^6op*7`#F6Y7%^-L_9t zG3Xv9x$cq(EDZiM3$6>MlY zeKK0l)7mn>Ja*Q}a`%yF8!Y$JmM_|W8+7euVDPGE7y01#343lhz(TQWz+vj3ZKI}% z^CTGUNP;sn7Vw|}&I>r2E(T50pJL&9!Y^p5fU0(?%!ZG4bQ`eiJl@xGY#R6yaixq|)yRJ6ue%Q+gR_mztn*wVxu1Wgd57m;5wQVn4}h3SN+m7>Mo90JR!0 zsXKH>tzmr5yXWOky&x>e&)wG~1@iPG7kAKCx7|iac=_>8M)Xhv-ZxfcPBOYfg{mS2 zCz`MRh`vbQX*NMZdrl!`+gEwf1jj;`NjU4h5SNpVLLpW%p%|Y0l^V*^Ebw>Qo zKjB?p`GIqVHTzR2YOA(Xz5;UAn;<1FsuOtE;<#DbR%89H0}TJ*T~Ywn&A^jMp%eJAiud+YE=jV^$ zQEAqBEMsGoyntqI!A;$fh`?2zbn0@KBys+3mRT>Og$ra`ti=KTFqcP$t%1BEE!h9a9v@xmV@IpyBvNq)m~74x&5M$ zQNq=!>FX315s`|Q+d2#PXSd)Nb1L-@d?z&I%TNY-X+6&RfD}C1E&BrIYWAS!g zJ;Q|A7}^K(Br;$W5|V>`iR8D2j()(LF+3vzJ2NIMfqDz#O zmA1Kt-W$iyogy3vCTgv z0=?^3VRh^k$c;cdtlK6AGnn zCY>%75<(03R@C)8%#$4DU!=N^T-tpc)vF*UuQw~aUP&!o5>w%*l&)ua%DI|7^Bb4* zO>{8vI}o=TJMiaA?_ltJS&+BY;G@vh&rJkO<>#Y@5^wMv9;WFAN9$d2fvZ|O^xOr7twxe%smqf4XEd*!MPJ7R0y6Q| z)`mY@w`aE_$LIRwXQOmD6kNH$%+X?Ow<9(VPAA$h$W&IXr?9mC5egr>g2~3e93s{H zXyAVS%l)NfHlDq3RbJe^=7%r=;jEY^*VA{IPqXU8prF}Am&2-!J@*lkiplmZ2^~F` zykVeEr5#ZRJbA?xqomGPGVTUakafd8;`scud2ZL3;0E%yWF|>sEgD{%^S$ z-X`vO6ZwmSj-(||lZVOSpo1sw$nQ)>N&kH)jnu4|-$bJXUE)c51?duB)AcKC*Vouo zz|}N43)u^;qkZMe_UbQ&Z0fIv?c9bR4uR<>6c+v#)I51&3GmWBPcsnSQO@4dHV;!F z`|hiUXh0s%9*h=^-n6ODPmE3P{DjbqMxi+YLW$|}I-8)3V4*cR2(57KenU;JASRS} zjC<}A86}TR{DH351zhqqy6)oH*%3#bjSc~bxxe$wYR~JeD8F)s_f$^)C5zJ!<-ItY zaxcB{0pLY6ynNa)ZTl4O;$wJrFsKlhCgWTKDf4^h6w4|upQjvh8uPaIMelgMN|KWE zD#@1K_}-?HcvQ-sr@p{mqC0rEMx9AuFV7sxM0L<(TOs073j@(hd@%&o)jPTBMaE`C z=(rS-(oe^`tz|fO=m1_IdA(yJnMJr-1a0K!^>3RbJ_!KMNfWySptrXHaGa-?YU#75S&Dj;HA2=QT1-N+1UH8~V zL3n9-c)=~jhj~m@w(dEApOVwLlbJ~9mrk5JIYc54K70f0lEss-;)l6q@wnzl<2xIO zc&(}3*00DQ1_DaYKK}FF?sBrMA-Vrp0IvmsaX{jWlkcrVT?dd|HAkGOnR8 zr`=XX=W>&lcKR;ji#7=r1W>H_f$OtlJZI?}ft@rcIHYvD%3X5H-ey;&IClSLv4g06 zdE~dG?#<6|a4Y}r;M|(|>~Nyj`GYN<1v&SV@=C+m1b!<^b?spx#A}}i_uBo&?cwE> zLFF#3)04B%(wh&T4v_N=(*EUt5B~+P8`gJ<(&R#@sr@IGFO|{1+g{l%9X_MHY;|zH zmQXjIc&PFLeH8eg7)escwWMEh$4wIjI9I$~e74@;ul$>LXSIq!GbxX+oa@Ms(baL?+gsFqG}fds$>&uaRsJg0iODje&e58IT|eDw=tgI z|N9M**_~ThA^5v>dnlD9rA@tq$9?AF%kz>eaAg^wc9U3wb}Hs5Q=+SgUCjILz{MMxfoDvcGY9vnL+ksM$NGIoxD?MTn8fZHnvGk-KtaKbna$iTjhIvo7ME`2dzS21?_Zoe}q>wimmD#T`VomG*E4WKh24zES6?Uiz+d7ynAF&_|nm5K)~ z5=`!~IlYyzoI%1nxBZ1Cjy&sbcH^wQ&)529GEmQx$?t4_??|jj3l~tPbw<)A?5qeU z=E_OkUbp=JTsMBYo<4|eB_2nWn)Q*|I|sU)bS7aUmGRrhIjPAJZ>jIrPdlmXCb~{P z@X{8>2piV!dC#O>0$DfpEpWH8S?8M5s{byDa~UnO$NffdU1jGU6v}dHLdsRGkn4Kw zd(%Lt6Gq7cihtqs?rkvJnEKvkEMTN`7{K-G^Y+~hX9P*_;(6(^|8Df)@+A1CFb&Qf z@hliH1hOhuh#s2l-XB67g(U2VdzqLwgjR`aZ0%pGbz1HfV(enZBM{^>pJQs)acv{5MlJO&r4f?TNZ>vCCl~J!S&= zW)7LmWA+Wer`{!^0XUks%X1n|n^fQE@*#5rDOBxcxU$}JHlPiKW%v>oYL7j7(i?XAbj-1Q}w$KvwU@~4$QgL;NJ_Tw3L^A7;0oJk6Rr# zg+GV#PiRJ_xjv#7$Yo!;xaMPtMj7zZF4;pUw%$tkUZ^ zKbq;zjwT_1;UL2gZ(aB09l?kFK6t&h9Z#H+0pT3HLw~1a+~9O#+Tef?cB_X#W+MtEvq4PjeC8#W!qxuo>E68cRU=Vj*KF3 zu$}gF5V+pBtnSXmayzGbEEp1J2bmM*EfvL&GXyj&> zPOaD3UTs`{(d8@WPNJ&0at2|=YhNg+d|8fv0Ceu?GPV<&xV~D)Gf#o4cM@2pyErZ# zC?$VH&HDMk6*d9%j!~wj%2b>i7kgeM;Wbndbx?VM)pr8C@wk|@xfiZN*84^StsRK$ z=O6FYV-4_Mkz3B@Wc1qS7ZBWO14-Wc1>?%+h3Kc!p>@5iiB^AIMT_F=!(zFCGe_C^ zXhEr>j*M}WB-{Al3e}o0>*$1v9yvnRXTqFfI&*)usW51I^#Fb+N3@<(S{?FmiyM#) z=4p;(R_yZUet_-AbTLFB<95m{cimkZ+0>`oDf9Awzzc4bxa=-ln7J1-%>EGO8jBLO zv)F|_@CLQ}!XncSAX5l~Mq1W%ODzt33)>#Ndsaa*W%C&PnQwA0biYpfXYK24v1w+H z8+w0eqcXdf{K^}c=iNj3UrViZujK{Wug`iz4pe@NqL0FX2N(GGT*PPe2#b<#C}{rj zXvzUPPbBY?188ls_g;nEdf8rh-l?to!yh9Ip&QIfrF+HwgE-mo6EQFe!kEKCA9{B` zY!q4$)2td#vfcWtsj@lq%%ZsqEzuXtCI#u7aH-*PI*AKpcnPhjwTgnG}mu zr2+edh49ur?QZJ_-!XyXwdl6|Z1K;+$DnOgjYkbeQ?#b_P>;s+=sG0Bt{%1IxDEzM zZz)7y_riG3H>Dw$!A26p0Fe5t#`dVEfr>iM30R}pnjnbNB)|Z(z7;TNa>YR+!{zk`0GW%_8{m*%?T>I&T(MuYMQ)RK3f8p{X_vCJUZ0F_ z2vcY>JSkQ&Qfpb8utkh!dw)3&Q^nI;E3BWAa)_7o{)X{%&+gG=4l7TP-a@yUS}xyc zp6Up1rnLbcv?<9uV$9`N#$DP1`?*~ihu4+1^;b>pm~?$^TX_bN$S-E3A8m>jPeP4I zbJYvgg5!TiCH{2HI54L{9{{|srmXp89&r>@ejLefyRYINo9y;mHUX=Ph@5$}+3NfI1r7U!j%)OFuL=^6ez~k@-@X%6 zeH|qJbExrxA6unBn>oIk3yy$ibFud#0_}pnV9;QIf?Qb3_PNqWG}511wWh9%z1Cvi zwi7ENVofR3Mmk_5U8-R9V;@kk78+)B5X4ywO2YUWCEu@S^Bz7Y{X}*Wv?#`Gg>7_6 zbjb3RclEn0SEsMek&5mm;i1uZhEsMVm7a$QORT^&$mvf~d zn^I(j=4adR={c7R$d=buq(o3)fHQv^plwR{owc4+CGgEM?u9Pi@g#fIEn}byVg)h& zC!paHk7xnAR>~lHeX2YMO3<_Ss2~E3!3V!n7{iAt6|aQAgFwp)ply!uUK&Ts8Xd@y zJA8+t?A{j9mTi!T*tNP;POM|7jBnC zh9n#U+&U%MAkJ67Z&j;Di6QP_>hxGbxbG=aT^jbK3$TlCfs&ID}TDG zACLZpT93%5)A!q5%2c=GkywP0{PHkGP9dOD30Jcm;>~~mI@4+lp57sDga1WJ_YVt&POc>gt zlIH@yr&%45<}Viu0536#LXHD$(t`*OX5h$Pf{A#OXK_wX1;n<;iY#aP4bFI@fh@sn zs;v(dJe7%mR~p7s)FQBJ`@w3g7lpJYAs0mH@Y|r7o3a?Cs9QAQm)S&b#{pgo^KIGle-XPjsHxQG_rh1<<}WQNtd42aB|njr6DuJ)t<2lUUEWkp zWGNC*ohQVb;+G2d*`fp0D6mu?g=Gi4WW;jqf>P@kP^xIkp<1)Jjl?-OekHBtcuW*$ z7+nswn7_AIV*ivy%I3EEzC$Dd7X3izDpfS~SCGeW^9y0(G`NqMCU!`w1co2!^E$&f zipRr5l0xn1-_;!6AHnRAWDkQP?t~3aqmSUNYJUivmO4=)`~~KAUVU#j|a_wDeHYw{2S?x z#Z^gCVCjnv{J{lBu>iOjfyYrd2aH<;&|enWa!kARthF`S<^Pq4?_tllY&F_>Xz2*7 ze7Q`Mz?<>-jYfpLf-X957{Dgf^}IgVsCFuz&AS>^fo$S=uw@coP4@F{4Tr|4si`?D z8J)qtK0rjTF1bnSH{FK8d(bNNe{v`Q7>X^n%Ka547cwUc_yYEC=S3fRI-iI9NQ!T- z25I-X2SXa}Oa_qi0#_)*Nah8%_zM1}aw?(osxX11xHzL#tn!pPwU$mVPai8yUo@!! zdyX%G8zL9rrybHxY}{T0u6xSym4`3YAgdyh;VSYp0#!vrN_t#kJT2j#%(P}Esp!bA zh9V6Ed|9n)be4pd#3b0kl1wyOC##aWpFS18dna5LcwA;q-M*3{(b+_9NW?}*X&U1M;+`5}l#jJyEv!wg z+dtL`X{&|&_)lOmrf;Mf)Nwt@KW!k>4H3968&y;W$Bda8~e1?S2QxlQJ*MEw?F7wNjG@*>z4Bqz{1dqufjoAB6Yk ztG26;aAbF6SlaT|SauhY3sv(yn!AaCzgfzL4@_d~=Tt_TcfORRkZU<+v+b~QxDp1+ z?u$QFO_45qBhL>l!@On20UxaEBfUH*zJblCDfJ=V>_k9Xs@Cvgi+`8~VuY?ci0woX zoIrEkOP~{bw@%!3Uu>U^<teAuvpG(P9JO-_XEye~C)9>!7gqHY zXvK0EotTsOCVF%x14Lt$)sP_b{~I&z`+O4UAWqn?x;69a)U4isF)g@f_i>=SDf>_j zD1)#y!KB6g!8Iz|Z~}AcKYSbgE)jjLr(zE-E-f#Z2zAu;oHB}x)OQ$6?L!WvJdvAZ z7boLjz%3a&Q4&VU*3Np6&2ey>a)P`9A>MzaoH*c-l*<_LC|4a872fEZ3m%Ru*@@qVN zCY$&EeMhTuats=`Y+&<78QLXWy&$=p@%hu0pY1)2UTle|(FmOo<4|g%m)X#@U?`%q zV20wSFNn?yMfZvbs>8iD5azAx&=?**V_`h5;g_|b#G+eKMp`{*fRz>dk_aYCU;b|p zoq`V_;*%^wJH^vuhwU=jRt4dwo`m+5Qs)nt%ya7?TwcT zs^1rH^%a3q)uC3J3yKYWSP+o}G%mCgMCZfv9iy3IWWY z*Kxv}iwQ0UqnH>S*Cy$S@t9a8uI6MivI?dpu+L`Chk`+eEtN7&<|e74S`nA;^XRhK zPsUq^@39cDx%G*J80OW!!1VdHB*rtKS2ZZTPlnxlPf?I7kQU5+o=wfa-5pYA@jH;I za4l1<%7;0GCyP6T=BZJdo0*A(uf4S zB<1-EBI7>yw`te;jxR8SZ?E%cAg2C!X{eF;*CTcu*ZnjG0*K4AV53ldNhQ#IPd7wItB4C9npCF+dauc0PG=8QF~MJN6038lssY-Zfh_V9?V)mid_|}Hy+@o9 zB*esMQc@y}-5Liaoc5?PEsO*7FTcxZzS_T_X>Dl!~LPlKqfivKC!BUFacrJ zERCj2nIVY(e?#5>M>WH~A$s6dO!o_va3lBiM!SE|AdWg*G2FUnb!xLhdpU!o#BS=0 zrw4A0LN;gbss34;0cWWX@QdzPtdUm*{PV(wHyZj1XGpzv{*nVYe_w7oFLpzc6Y1YH zZ3#a$4jdFu!lSG|KJl*g7)<;5K(AAxY+t`9$cSzj`e~?}U>Cbydxa6x%cCe8-?<(6 zP97gYpDoJ|2juUaUmKA8tvzo;$I@M_v|}mRj1WI5-ydbS=N&>j#XzfcddyAPf{G7i zDfDC&iXR!I9va678y*-Cg%Yu;LD~;9A`|YJ4IzI>F61&^#}a^sM}o!Ee~*$Sh@Y4T ziA21nBBs}y?CN4r)YZb4?(RZ8ChqXpsSk}5yk+kl-3PwRzSqx%zW;el&5~c}_x0^YvsH~eVq{@o9=-n$ZGN5 zi3A499cHx2+aLO`11Y+_o3gr?qd8!^TLQG&5gk9AQIC8c@To`rgxtv2GWAIcrPBoA zHuCk@6Hy-22uoBwuo_~BmB)31*tc-)?#)+Dx&*{e*8D=QY}EpCZKT+H+!G2*QDnAV zPMSO|W7tBAhATXk)$#|k2=i}apuE(FlO(TXLb0EOaTS&^LN;VkXvt+6IU_XK|mvJ z1kaFAi7Wn;#uSC>jnuFTR)he%8Bj2;N4^}Xm*ye5C!6a*!K=(a@7yC~P@#2<4P^Aj zPa)@@3?ia^N30m?(KR3{v3qAQ0z2I`Q~x=bvpd%{RT-E>2iQb7=2hi*@{>&t+82{L z9%nac)Ns9*7jg_`h$S#O9%aJvc|c{4zC9y)Ni2mzo<%#!0 zpsrK(@jv@BYTe#D>RVQpD|ROApHQMkB8>@bl{}3m7S)`Om4*D4I1d+lfb+An7*|KOTf)>>1Q%=G-jPgAoFn>lvi9pm6?G5 z@<3$6NSW~n2@sprQPn`a;D-A{H9RZEv?IQu}q{Mm4*1f@}Oy#w( zQ@l&%I+=|l!T~;f$^3HN^^KiO@7(oNpr`|}J*i70?MV8$Oh!AoI<{q z4=II$DU|D?)Hs~}t_S1QE3Dv8bSn}uclpba<~AEa>JTe!E%}YLlgFk$My{zr3(7Iy zG=i11@dlsyvY?D416K|6>KVH<>?ejwdC@o+Z&w6?T660W%mMGja+q%jA1<30o9mXX zFwhiZ8~Mdo2hv8bWu0f$e*$1@9vg4HK0Q4&meFH_tTIJO^N0DetWofqZ2Pg0pi>S3 zq=1Kirc3X?drX)4KZFjqiDB*WEmFZ$!Hw>Z)AaU-qG4p2FOKHBIawCpRjK(4Qsxh0 zi^o6VilPd~g0PD_9~1fpX2^TE0iZB?4h+3j6(NtOJWcYnYJ7{(=VbM*24aJ0%XCcj z*r&}Qya!4f0RC1!>B&+DAr$KJA}6Ctk(g$Qivv!O^BgI)-v;&AFs8?(O!YW6h9xmQ zW0rrz>9Jv%rzSC+I`M5ZAczi0GBspGmSryI@k=nj5ofk`=1cq-Q?$iGNEQfU)!ji( z8-REn)o?hNI^vsJr9hUd!f$$>jn8%-iC1&zZ_}I2^}Mh>HsDic@yZ4zwgOkzn&iTr ze?iUvW0C^eBY0c%Ah35=3w^JL`CRxQeHCw*hiN#TFFJ0VO4UK1o0e}uH zw}h9Fey}d->>puT!+ybzecyAjd_UleGJw|@D>bGZXc#YOyGM`&qc0k~9hZpu&f)zN zBL{Hr+%a&SzgW<)G%9-^`wj*Wqr?303NZOm8%~_04S=MI&TBQbjV7gy=DpDnGq`+3 zGK8j<2q-SfmILrp3f)>eGu1$4IfWEyYCqY4HjgniJ@%2&o!BWZ#ZN38`Nt`gCt8jvG^Z*mk|(M^IWcIdUuuav z#X#9FhtC%~G>*O}9hbf1=diGlVKeN)+YAEnPm1y6%05Yr(n1c=9T%J9QyBe}bNbjq zL)F}`G)lv3GUI3A(e%?qUTuNEUGL4vZk3@vr}A5 zn3ds+4;6z5CaYRWzSrAnZv^O&aW5_S?9h+DW98xZLrrZmhrvJxNLFs^1LHi3GCGbRaepfCs)Dr^yZFKJi0gfF0UJZr z`n;tU%Rd9u?GC&zH%wCTXbjJ46XvlUH$8vNe!ej(mI-ja(1gC0kDq5Co4oY8Ph;@G zx>EkFXO3oR=E3+!(?rjBszGO{KmQ)Ed{?8C?K-Y+afJ3Jj-%$a(8+d)^UV8M!vroh zJ$NF-LtpJ^e)yb+IJy4(6l=OlH9UEEr}yV}k+by;8$nH>1L!u*o?{oloH0ypo6|mg zt=&Iq5=DXZgntpn+?*_Av6Y2hXxoWDHLwdBe^^~ipoyJ`1;ocN3A1KK_Ta!L9vTDw z9G=0-lq!k=VJ`4zZ;u+)k8pvJN~x%vmf-=D?ujUmd|)&f0*9&U9bf=`rnA;s8W*rz z7o-I=BaBF?GE(?c*x}H4d?&r49uRkhEJs9tz1mEd$Y7VrwAYfc|I&+LZftr8@P%m< zlhh6l)7ZGxH#>2Pun$ImhO3>3@gN>cM|?OLvXm<+adjXB|i!qfp>)PfdENVp| z0|G68Tby=}rD7pUH)oh03O0qsd+LrRP1ltI^R1z&2f2G+F1DKjl1i?own6F+0;tx~ zWqXw!0&}Bjt8#N{{E=oXNz>EcGxaExfWS^fnpIC9cYi5|l<(mfC(n^1dIWLu+S>KO z#4z>?8;s|H$pn7mQyCPal|3B%rN=(n%h)dpZZp3K5}{TKuk{=ka4y4&Qyw%RV=PQdV6vIwy7&54$tf`*oS6_O_2FuAo2cd&!cEo9<7iig$>uMSfrP~p_C z3rzeKv;Z>M==Hy`>)1E6CsfIo+;$kGEa>Cf^Wz0|DYo$~9eZF?F3VAktfOCgZR#H? zC1hsvEhiRXS4%Z51D9F>#L0kyqao4#W~?@Z@(!XTk!PB%4(o9ZnkVo`b2ApuH(vMb z_Np)(D4uZrb0V={D1ip(9Eu#=^C{qr_Xwu~@I1f%X0?;q7|EdlZV2al^zpmyIU{o1 z8^v2c5;?Vr4fnn2Qzbb|mkT0Su?z#c1+Lu_7 zq|s~d^#%^r|-2ae_=4V?)uTf0}<{2`BK6jE=(LbY)XG z2qyY+C{ZZEOvaW@)Aounso)J6exrsX)+UTEv7xxaRUsqFgDLPylV~UA$7FQ$}ynX&0i2b*4*u#F|f>BUk z0M+@tyrY(3L2}`-frsabj+eD`Nr%stylHB@HqH<1m%+%|W<2T_ynSdp!gwnW5EF%N zD>3)`LcafMhruLDhZ6O3d5u5)U zSmYa18;m!b7v)$M*uJ9Tc^n(PhPI9&01Oln#83`V8gP3K2fMU_F&~K}^`%+JDh!hh zG{L35G$ajsQdVLR{Y}r|Efi` z$0+>*;t1T9x8gomn83cIKrqtYT<%yoRgt`%KPMw<=9r5y9K@%pcb);mJSiU`b_S5O zefQ{o*gTpn(=8vBUl)F1v^vV~!-C5d#K5s7X4W+T_nJX^(rgY$n zvq%^nAP9g;$t8UPAio+>a_dy~c6nW|^4wD6zJA6c$y*I)%cJ|iHSmpyUUKpq0jQV& zbopi%bIkF|383n6mtmf4bun0a-Hv#VOF8nL^R>ndb7ey($aLLW+QX@A-FJqD5#zbU zfG^}aTIgz9`gG?EJcZlCRgv$z$8VXRxSI0XX2!*R_2hG^4UDRygeCGsEwj~nc;)@+ zVnEAw9Ra8Ud~?|oThLI!Wji(+`=Y@rNO|~Tp=Dqju+JAo#=fw<(fllXu{KS!4dbjr8q;xinl{<$vz}}Z`w@7#+f!I)E%w#Z!l*s8ybm4ogU#Fvj~GSPd2>ekM0q`r zll;1iYsph%vvCcGs%8CwoBb6D`gOM8&C=FE%;5!%+i)TQ)VM7;avNpYKcGFPXS?%i zJeJQNzoP@fz0FGbaO?&?K0lR{oA;5@7D+SxR4^*L_Pig9+hTOXg=YKVuJ3Q-&j>=4 zAfq66uhV!!W!RXg_6Q+$8dIWMQ$6zVLoNlj_6O^snOOf5!~q5#HP*_69R_uY`qpgT zs@!y|=apTOb@Arg;v0|O(TuXOA1SSibmx{M5Yd`$%#^61m+nG>1x77`JZ9D5)|Gv0 ztGlsnM$M25ITsnv%Y$e;f_z)HikVTwSU%Os%=o6@(nnm+-hTc^`~qj_oU261*W{q) zIhsRz8J$WSs%e&)xNMntBowkgWO~{(C~t+_|6Z|MZ8?$I#}hcem~V} zbTA9FEouI=$Z4g9IFDT;KW!U7J3~!i%w^KE;3WQ z`Oam=6kNTcE}+{J1{7U16FIpBAE#|=&Smt(Jg-g&+)XTb3GWy zwNRBdQb$(HF5c83zg`_4?Ts03$y()esr9YB$}N=EY?R?QY7Z~{JV!;L_rZ1duvYK$ z4%gCNzA0wIlQflQ9uR8f$PQX)5@%gqoL@4G`-x+!fA=_w&+P-~dRmeKfC(2`9A>v{6 zO5$-s+}tmH4$muSSR(JNvsP&=RkfnihYGc>y^H3eGp__I=!3YAwjSUv3l+fU9$jdd zP?=+XlDmFWAhqmC$`*(gts*>p-K@;&Bpt)4}mVo+YTfh+o7 zMdm|F5o1IcE_yXm}II&MYe#7rsjPuvdE3GVZU8Fw%xa2!nh?(`j$KWX-l!W)V| zhy=mk%TsUX#EpFiJ0IWe2#r&4aznmp212pfze4c}ZDX|ikIj*DTN~uS?tLomYnsQ? z`aR_%)>ZA&tREN4_H3har;iW(mA#0vt6OZarp~-Sw)TtA)E~(Vapbx7a+? z90NomUu(}lJ`mG;Lv1FByW@yIg}vU7^sMdl6oYU0a&+quQ3upQ-r zdNY`F)gYr>d<@LA$U1~=8^Kx~O=n&{w}*Z4{2On@j3Ke*@JGIyz3YxcL(TE3S%GO< ztg`+Qu@wvAHS{R|Pu2rR4}LV|VT+g2hwoT`@4b4Pl1CWGP&sG!{<2w@d*@lYy@9)P zG;yACz!e_cb(x@r?7Sn2p>XPJCfhxmw>R2`{hqVG;L_}^*@Kwv;O}W8IG2!_l6!mBx%bfDLXQed zL_Q0}v^{dBc%eE!=gxK}$o`DAQysMo-835zJX3la1)*2A+Jfhr*4fs-ne%e}`VzSt zkhHUJR6POk&(+OJFmYLb_rh1%6A4=Hon~zYVR4ODD#ak!OS%KhP?&zRUXS)1lqln z)mG(!asVS+slvRQzXbpcA8Fq2s6>Cf-??1(M(NI;TS1S5m@;sccBthtK;&n#imSB6d&IFv=^|A^X zn?3$9gZCzWM7nOxfRf8CG{Jez|GNjXUO7Bh{kEIP9ktX$RYOil*8SE$58Q8A4&T*> zB|5sua0(Pk=Vs67|I^nxR9 zCf}~5S}!`(4{p{dj#!OYex1$=s+#Y}uIsRI%D*^07oSV&kSo=(x$3FEOgpxG+qNIH zMDzh(u?4stV@I?*1o_)hwVd3&eDGM+LX{@Wa!Y+{n;TY&{)wt^oic}=-fYCLhV~dW zz-pemZ`HE=|sB!@n!UE@6@W0~X1Mlud0$AqP0kJK3c3VJHfPV;&dhO8A zy~pn$b6E%d{!y&8mO}% zE<(q{_v@?zpi$G%q^ZF$qdq)JU=MOVLYhW}ld&%iRW|y5`9LzADGBkDzE3P^BGso@ zu&Ez|F!)a>h7J2JMo#8dKIP|m1K1OYx99fI&Q96S@J^**-tWvm@G-Iws=1TY z7u2NXD^?XlDEkg7=U@?T{AH}&YQEDEj$u3;1u{MRw3A(T)8l2VRyOAzC(VE}@D!yj~v;T*$w+x6n+S>^98$U@q+{qta%iNx8;0(F|DOAt`y9{nywAsR_#lhD*Is+=>-sHM z?Rl6crUQTXyxUHrsXtaZ(6U;#5^7y4Mwysd=Z3N>!&+nKlJP{>L*MsbCB1A;zCGzJ zac+-EDz4|B(KNeVXJ0YoVkJ=j7~&vHn^Q6GPKGO2sTiQENGmEEFC?VnetUY(>n6Du zVtUkgIoxJb&5*itjZWYHyVM8AR({aVa!^eO0TQCD{4z&3fYzY@)Xg)r<+%=BY|w)a zk@g#@589rM4$H8%w1By91lvu=+nLZ6OCRLf-MMs%n^BG~2)WL45%hM5qf9(*1Xh_T zxCTXQrFFM|EJ~YHSk@EFOOMof<6=KK^a3lZpjzLVv4Uqgo<<)%<72@%6}N@+do?|H z5L_Z*c~zJjb(CacRU7tkcKbreqg1{Q zt~+Ge*&$2YYt+6+2xx_h!e-3npn{14)(50c#jVw~$sp%?#lUodAHwl7^-|Hn<+Uko zLkgvg3eg^w9?N7UIKEqr6y+VXvIFZwo~7EJ`XyPF(cJwXuyWN|n;_+<+lRApBAygH zIxmn{=Mu4B4x$~U#WS7&P|jKC)&AS3d9X{)X1A3C4Op+MmAz?o+A06Bq@Um1#k;_Q z1Y2n^dhV3F?u$MZ{=Mm2+xqi6FgK6+3eWbnnANJD(O#WNFTI#i%MTUu@G#envHLlb z%2qq@>zu(A0XngwiI?YsqB+gj;|({8*L$2G{i;$n6{Z4WsP&cENld8B=*F*y<5q36 z`>~w&iC-vmF9YP4qr0CfS8HKVP{_z`f&E#m)DbRs)xPZ&^0e<8FL6DclB2a$UucZ= zkT7fo-%FRZ{J0a+1OfoR;Ke%jEzM38DpHwCy?2B3DY3gvYnFduq7e8N?r3+^3db$# zz)>C<{ZKM6wdA-H%JZhUP2|(rMoqHk_k-?j$GK-SuX!X8MnhtMIdq^y0;L*A?hUnVI^a1~}0#%4SCD`IcA!KuvL8xgnCIoI# zp<~v7`~pXN`5>!yOOB?FD||abv1u|;m0fG<@h!Hyvc9b~-R71GO%yRbl>i~KPr{|M z2T;si=Fxmq%HiT#T{2!4zq%DMb~}By)Xnc~>oT|z`d{s%#f327osDz>0USE@LhzaH z`VtUnIES2i#SZoEGE5*s)W7M}e)iFN;?DJSCErPym7h@iL5EYlLQ1(VG}U!^0Ev|= zzARZUF|Dydj28}0Q+=%OJMXkZHNI0f&-L})7l?YU(7t=S71H4?R8sj$%4NHk(Egg* z`g31P;?=CZ6hD#W9DnMwrlp39G797w%6a>t|B_5@z+NrW*(F^Dp1TY#+O-~WxVK>+ zp#<1JMIb^x@vG@MUL76qwRg+7w&fSJYaOanxmS? zOn!X2S#hv|Dq^o`pG$}h`Pdgp1S_j&A}EQ71Z1n0&@V~-4hJfZ(`CJH%67H(Xkbq% zsoftxg0%85iMd}KzM3i6T^bT)S~#qs_B;}RDpW^XRzC%AO643#2PW1EbM;6zmZ=UFs3zJUl|_8O9WaY9(u3E zu&N-pdtF!OCVE8Kc9RLx-_RW8n1AY1a=@$F@-0BNv7MI)wDdupD36U8Acp zg4;ISaTi)EaciJ#zwI%ZW?(XWM(L_b1)_u3M;!9i4S;tl_m0UI^WGG=hdjN=USaL5y9$q^!}=mcjgErnfs`mj(q{1Y9d% z<#2g#j~p9=@$L+l{)jgG0vgq!|1pma&{b_<0X?3VFu}?%2kP_z{vnP!2V#q@tMeb$ zup~~L(fp|m`j|v5h6&To+Fl(?a6(8bZNF~Y-kl7wnryC*i78sS5!ljInBjnkPA+=M z8n<&v1<@NX*e(iSw!dv#j9B}EsAcW)ON4`!Ku1qHe~joHD%y4N)WIHg}Jr%^eU7krypQ3fdDqTC))4VWgLu~#L>smty z<+03vsWbj(HZlC-bc7R$9d0hyEg4WL`m4@C1cZ!w)j$5FPGXkJ@ShrY^)EvapLyq8 z1~;Sk9z+qbXzi7y%(?AKIm6Fq&z<;#*&KbfuCkp|M?&8MIq#jKN z^#w@Vs@CY8pQBJo&YbhPgp%k#72j~q3_PEmwxO>@&^fy8Q^TZ`na-5-Ns-T+Gfeu4 zdkB;T>WuH68>>zCmeh4vHCcYLXLrMSa*w@-WN4Dx*Qca&oH<6l|H*Crtfj1ENv|#i-B}QlU)G@n}r&5bjkk7U-0XJ zaiKk8L;l2_6BXMmo-vN`STJR)zGQeA)&~LwJ=Y}^b4o02BG}=Vst(T;YXntQ)jZ$2 zjDAVO9jtQS{@tjfMRl`-=rOwA=Uo%v75v^2tDE{?EP!hD0RB{Uz==}}WH0Xr4)18; zI=0TREX3X$pi(XP(~X*%-9k>SAJm``OGdZOm8?D|A`d?-58v2R8fyU~a=O#1i zZ9H-C+Y@%rf|}8WCr=zGAX5~aq85if3r|~Eo64{2V#d|=&z-nluGv{5qRSZwfSQZ& z{z?vi`gNEs`m>JVDgl0i>-qav`SV!yYll~_`36_~07}EeE+2)cQC$&1msDEH{Bxqj zVV?Z^Upd6PUMK?eD&?g~!`cSw+2YP31PNO6!mYe|wTW|NfhxV@`KIz5S8X0N+&p_n zZ%#&yEas%$J|}Rp!t-CEJ`oaicZC{i|KO!DT+fF_ zzKU*f#j4#NTdC!^x0Yp=M6eqPezpBbiD#=(mxEGdz(Xo~U3l1F-(T93PgQ_ZN0<@$ zfQRnQ?g}kp!)pY^1j7T9-O!0fhrrL2(1IY*$u8z4G*`#Y0Q-?&NSOO5WX; zmBT*s69Zo|(KZ{eeP+pg1((TkWZ6-K_FYfrB^yTywqWP#&!%;XI;B!p8oNx+lp{&R zYQTEni_V3fh?Aod3$8T^-K z@A04d_59KhkH=URf_J;`T$o!yjhDR#e;m^H{TOQU*jJE$0v_b!n zrejz+U^=k#0tW|BV){Mcad@HfU-Bhu^ndyaLJY%oU-3>Cs?H8EG6|H%N}!>vR*Io7 z^)6KFxwk*#&HdWeN@#>U@Gh+F{IVo>Txr;RfLKw)g$a>n*E40e2jx&xeKIep)zX{1 zI3%|4k#`KyPc)pY>L7*w@^IDYO{rq7^!Za(z4Ov?ZKHzB0gta{asG3v!GC60THHPb zKgbEi!(Wt$FCFaNDd9xK~5f=wWll^k*%jmFDgtpsL z@U})Lq8glIG@#uvB=tZj1Hi4g*%3uPS37831hab z6wFduGlwAW#Ulu9u-t(G&pbxWy!F~MV(C*(ZTFv2*%EY7Ke|vZc%lsv4r}~)k53aW zd?N$f%$;j7UOQZOqz6aYQ0i%-Ki?fz)rf{;$pJ+PX)i;{(Qd;E?;)1tmf61RrtFTb znw4X9FKT2Eg5moga{5Ej`**_2mR(7Tk|Pd$r_}`|jqGQlF6UFP(@Lgw!w^>mih99! zTRT;-kMcW@^zH4A>SES2N?dP#-JU-d+DTC}g&D&3XD!1e44Yq~j=sf2T9T#OeHpsI zZ?lPXt=xKI$>*PPG+Ao}R36wq4=UvrnvorxcR}Wh7d3O^1qLR&A9@qn5#S)E;iYdw zP=wG*=5o$nSdk4aUw`mNq2mdsk8`mG6FG6=8u_MO#|sK&x?i6XS{f0ik6Y<+?geckrpuUgiPk9iAX)()N*HFB>78c# z;)96KVC@jkKqZU;=^M?>@#7qm#Cj%OFX5`xIv zJ8GdOmyS}ZnHbjpQ@Zp&+Rl#UX*tKan*HLWWhGP5yPE<_GN`cl*|Z&B{dSoZ+;bl- zJiyS$w*HM&$9s>`Uc^iZ=vkxka(i4_Lvrm3V(iw?ve9qtsx(XhUI5~WXv5=_+z6Uj@uy}PE-)C=Tgp>mA>qja)B zus+?0eV|%n7kiZIwC#L$5j{Bd1sKumlSckz44h&eE5diNCcGSQGjet#S6u0VwpaP@ z{SGrC{3vy7_p9AAR`XJEqd-KY2-HBtJkz-@yLDgO1 zkEAG%k2bl(ai44H`({to>W45V{`lC$AVg)Mt0=@gcp4_=EzBQ57ulN0Hner8;Mgd% zJX!q5(8U8Ici*o>*s#5zoOAvXhn=x|X|jhW6u|>Oac~t&GcW8=OIq!CydZ2O-~%a< zvsK(bOt=LRNCUgCr=V>p-@Lfm@@2ssa(&$yXh1z_rg6r5tMi0a-aK`L;eh|0RrSnW z84Y;bZbwHN>Rh*x{;=xZ?W~>KiZ$arqWOJU;&-;mO>DU?$$b67TetR)+V{b;=5Acx z%Fi-0FM5D68&_%DXHNAubBR~(uZCbXuAkrADPCt=q&e7ucUZsnitV}3Mby(m!y2Dg zQ&3f1gAz=^bKE_h@0S@yl6{-6D|jg;DnQrcVZN+ejk@T6goyM9v=>kQ*4M6+pkja* zE0ZGQ_*h(29@6=60o?9z$zid$tJkqGH8>!y4TwRbf&vET=bVOD2eR>)MSvm`naS|5 zC4es^pS|&DNseY9$W4N;B(-xjQq;X)0y@?aJ1&d3px2_{I$7$*zu&=!iiJ4Ucf;NT3P{RJNq7Tx+yFX*mR{FI&QsN|)1y+!9$U96sA&&-fD3cZ| zQo&dFZuJnmITiA=> zh3-wUjPzgA>jJxW-n_}k3Nw1oB*lUXzd!N^M63m$YBz@HX%GGO^NN?KG04H@i#lBg z%Y7&GG`Zzz zD_1@yVRxJ!SJSu5evdn4k#kQS5B|s|ZAzOitRtWdcWicDR&qtYVKm@l#-bdUm51<(8gZO={)RVWAIH$B%1(Uw}wLt!{C62l-unVF2pd1~upRu->r7 zSxW9g5~UAM@WFm1C0I)`f)}@(xyv`U2kspM0ZXx?(cXjXi7AMKRA)lUb)^RNR!?sn zQM#nEGNmOK>PJnj19%fH$u%f&Rsa@|s zgmx^#&k!0Q-o8g!>G;N!+7rv`&B&ttJ9z$*N~aB3Ttv{ScHyo2>>G32w|kYhrR?U@ z>_s~ycIA(ju$tc>Ua&g4YBNqb0pvc{0&cFOTk$eSu@xx0e`)Oqouc^TfT59McTw>Ig|hjJq3;%osqwP5^cya90 z_4xs2(*I$|p$7C*JwAqTs(*<`ZSE)?tJG&0=miXtNRzbhXIzYT-Z}cexGCeedrY+# z64T%hZiUUo6EgcrNCffx_mryPcNX0*U*=(<^H3egKfY0 zP%0VgPZ5|;iz9WUC#$V#|6~?IJ+rS{d`{#rVs4ddOK{FHn)~l zz03e>x?lvi#{k|LecF46M~q^h7k3*icGwepMa=0GEXE-v7x8_MQ1T}Q*VpxA()9P6 z&NPJmcmA{=j^{k;i;z_moc%Kn@{GS)b%V<=VuxgR+yp;cvz8G=Kf}ev1%vswt z=e`Izpu0bso?;TitpWJ6d`M|OQ^ZQ=05b(vl@2{&JfTu)?G9isOBdfv_X zOV8ETP^e$?h_9|D!Zm7jt5jtcZh+vIEFrNw76#qLP@k=i3?e4R21VVPM)!T#fpJ=U ziF}-nUcu3d9u4<9pLd-0O|RcnbivHkt4#!XOI6aInNKvu2wCl28d6O28U*A*j!x9? zHF~XQQ?Mi}2k*x29;JOMu6<8(U166Ap@X)~tn990g26N10GgTj>B*9$(C$)mx#6Le zsmcOuHcNVY`PMJ!PyNe$r8o0;{Y%a8fvZ6i!nX^U4)2MT9dQ6!oCdk|+kf!lN?YVw z6hhLYQ%OBAzb-2`)^JtmOcDTPtB(AYwL~tb630yfCQo~KOY8t<()zPHO`67|ToBZj zDBRR?)C6~UQqSg(qGZWO6Feh`@=~q!F{^y<~V{>qK=!v7H&cl0mPf-h#0a zik~7w;TF$`wKn4vIG7&i6?=UEX?^>lF{bLl{!A!pIva2~{>tNQja*j6uII2XBkrv^ z$e`vul08tuvv>J*phQDN48pqGOvqf93emef>;O0YNa|SWb-129BrZ5?N!x#bA^cyP zk`?tvROz+5;C(;t{Zz`2wod(ucHT+bU3=}~!{Nu8{JYmlYumi;ZcC&3=mmFIGig<) zc&>>FOV=(l4|htU`3&9ja2_q5l2KP^Reo8Y0^jiT+|`>1nU5Fdoi?l@`#{{w z?Gp<(1W?K?BNpljI_kEZEWY!mHjaH~70RZY=IbJWMG;#Y9SGxStJU8xST1Jok?4g< zTvI!R;@%!a=XzYhzg3MtE9kuI>v{ydtPwOd)phI&=IndD$fsA3Duoi0Vc^%mefZ8%*mOfTp1~`oas;PF-&4gC z7%*R3wQ{DNms}~jJX-2HsBPo6EeoEOrYJHAfC{t1;`EDc7~iUv=-J{Zap}+n>DYJR zRzdk6BTLUL%Vzv#x0U=-nraGrLM2wu2Kawd zrd5tXuO*4F>xYC7t($9n!XQrULO?OH`z;_fFnsb7_#N<&Tr|iYhhXR{B^i%wo(6h- z$O!1nuH%&agr3Fe&RAqU6*=saD;s4;EOj~WN#-E3Qya6>@DL_=lU{TDk@Q0rcRhOU zXmjCQJnbr#+oUXXR%v(F*KisvZgO?8SySG+m2ACTd)6N9lj$PMDCU0NrdYL7jM;u# z1PFW1CeeU_HZAjR8)!ngy0DXksBqw|BQa?ryA|=x=IVM8b~iBw&|`@pjto&Xu`$;U7GmwVJ;oF^Z`ty zwV>%z743;LH%6L-ixvmr_f3Y1T0Xs6kl>oiUCgXc^Y$n3=ue(*lyLMPoIje@{ZicW zs8Wv1VEH9Akh}J!0DO11QT3+u9_t_BR4sAjzOi)`?b$_u4x>-%mc*wq=F>~Xk6H2I z4~ANYgH}p3rk}h4xJckpMeX(Pu)`6ZF-Q())Q88fT`mm(i8~R1PifjVn3y&F4t8Ht zOCpL}l_&r~`@;k`2|FUec1oe^3^ZG24uli?`)~uy=S>Zev;RsgFfs23_lhz6DDPxm zrWQewzmfOlds=4~KJGky)Ak7LCf~-*hLOUK*re&2(#+o8k_Mv*U(TGr6dMT#1F-Uje8;>nPp< zuSS&sEw)e1qAXd261FeYxZ}rlv&n#0$t_6p{pX9Z1)c~G4Te@Lh6s*vJ@c_ris5sp z-6RvZUKTDlWEYO#H=`@3?^2F7vLT`W{Cj=8_r@;lUZkt({tjWf9{(ngxuCGYyOD1- zx(2PA%2DJA0Lq^%`{lHe8yxQb4cVY{a2;|CviNsVKNU^oXde~ zs~ka1Gy?}y5rqfbSWHepWu5TE)}vkqp+6sowlGah?V{}k^{&=*9M?Nmt$#bX+DKz) zHD9p%#_#M}aoFI@6rmPp7Q-+eb6Q80(iSe@uB+^3aD7eFh6ZaT8-M-=D+sMUpAl*pn7~GF;%i%(aNO-OAG&vJ*k_`Rhe+M{=`n;(6+ul-WvehJ=l{dSf#QDG%C3Qzn-RyXLSbQmbQ zKJ-625Vwrj^^INeKl%%76noCCzYOB9nhA1sSUbpJaniYRAQA|xV&(pviWPyjfi;RnTaMKGP`55+`vk5$P7 z^}Adw(E~cn(=q(H!lolu4og*ihf$!6dhfCPk%l5eXA(|AlH3!0@Z6;3BICworDsq&^?sd_4D<74QB=b3ub}#j3d|>_8ubX}cqy+9Y9(P)> zP)}|6K9E9g=zADmQ@L3{8`6)m+4X;k5<#8JCexd;>%$8PV6_xCt5j1~;_Z~K%IBfE z4(~6PZ%?AbL-T@{1dWk3GK{j_n0^lWE_?G0D{0E&QEn9fBW10QPU?Dm9Q>fed}eAx z&&+Y*IpM;mGdl;R`}yROT!-Po z>d?xi4Rp)SGw!mM{&PM?CEDoMm7h~}ad(m6x?y3ngkH{#HyoAqs@p5K7@>b|FRvE$ z2L8Uic+h{SwavEP9{&i?jmB#}Z2Ttx(fWS@hyi5cy?#_pn7k0ClkeD`u*K-K?O#vn z^bFTj3r{W#RB*30-(Z5Q<^KUdjMdG`Rm7nr`M&}X55F8Jxo?}gm#u`j|IBz4yP**u z6JNm(*Q)uWd3x!A6(WbylJiR85CD6*y-|ZLMxl7&wO|hM^SwaP6U#)X3-Fk1<#GaE z^xpn&DdgK&(SU07q<#3OI=Qq6yEneTngj<&r;GvKRPKTaU^e=4AUUeU%+>1o-*^g? zKhKt$)o+syI_|C|KyR9!c${8R8e|lbG~G*bKIM@^+x_4|7O+CInFHybb{y^P4d2>n$U@xTwp z(04I>4Vag@7{m{y&Vmq*WfFL%VcMxkiY@{P(8XkrAW;GE5(^GX89#-%UXE2;o@@?j zD!ghyE|>qg*qhWH39i;IM(ykZ2Fo63b4wa$!}+wG`i{-`BelwRdvcp^6iX^Bgm(Uw}Ts@^o+OX^y@Jc8%_5z@3zQPHs8uCQ*MCyqA5XvU*ft1qa>k58Ti} z8ed;DY3P6U13LM^vTflL^G<^<=k+t7%T>E;^VQALnZX{EB;zHG3cSO>qVt9OS4f=7 zI+0TuPrtqj_ODdvgWZkk*Xe~DamdvG{YuG@?P9wh|9M)sig6F`P}fvKuxdK)vTY+aKqHq_@!^#uINs2!eu_%x9|xv z*eS6wfd}ujb)(Zhl>cV5M(!gWN`B#n_t9{y15IzvWMo(wiFt4Dx%6bm=Atz^UB-&k z2ql>wwDA=8+~eJw_q%}hqvjOpU`{Q7Mahc~?mum)(4KYXJWZS0sd6(pb&$Q|HlO;2 z%qk_G-uSl4w&dWDQ#v!>v5{g0*p8l#0q+G)@|yW?MRrJFImDX55B8!}(1yw<_lc2q zN5ago%*(oznUOuuSB~w>f~hPB49M2LK^%KmC{QU}xSw6BLyychOoSe10N2sWY!8~u zxcBj|=c;NiIj?Ufx_NEBbZ;~ed@IHRw>x}MlPK17z2Y|9tx`ukLri23Ga|R`Rg&te zW}Y!2(tGZ1s-uw+)+e)RD;J>xEUIlR-*^0}a#A-Ze`dK;6NbD(VNRajGMqrm z#pn*OdHle|O$v)%R2}Zhw(#Vh(#}FK>+c<34Ol8OiQh_?*EpBE-io2$hlEt$&KZ!hJfGpV@v+@ zH!StXy?(Km3%}ZC+t_{crv7p&$S3n;T+5E6Kr{1%thPLUDV%2K30F=8Rtl@ z@Pw^pgiI4QVx*`65?!OBSUYgsm0Mc^@OLB0xxblu| zhHJqnuUG~R`>O%CM%8pa8;P9uPduWru1HVq+bai?9f6a}z&u{Y2p`%9MKdxqPh&MZ zrR9^YI6XvJJr-*^f>kXN60_5K{e~h6^)8H~#!8f0s&Ei{>=w>z0kXW1R{NO@SrYB4 z@xG1b(v9nq!hQ5y&$YI_kpGm$eUg<*SH8f>5}y?010Zbr^iUkKS>Ot3&2R5#H7Wrm z@9%LrMUSoS==EX zlejX-Px=(?R6)qeVJ?qN=i|iXES=R4>{=&1(J&uDMNSHrD=9xoZsN-m+Q zG6K?U#}!m@>=-?+#OE$s;(Q$baIvg0o#7iZ$~!+v`n6w*Hmg6Z>K?8sQE5TwXz3=0 z=<+3KgbX`W^lf^=aYeTcCj^JJf>o$42?A)yc>AgDXYQ%Fn_T?Fz^igt|3`r;1(fcr z&*mM`DZepcpzK;xP6qQma|Cohd>jJZ3`6L~xxfRRWrYqU)58?lIHTSXqaXM?G zi_HIBZ4ip5Luf@?>T^{J9)f>WVw1TM5yt#(nedAFhWD-do8Ap>7pVQ$BSK7R!OnJw zgydcXi0QF`I^K!3q~zz;p90zLYd^+1+(sIXhTO~u*E0k!(sP=$whdWmyu(0eZ#Z;S zUUfLL;Tw*rQ`@h~oSwj=u_@S3Rk`iCk(+Tu-p0%?ywYy4LrB(tXRUFj4?p5o`j+lw zfAm9D-(!`Dg)GDuT{1*QF=^f4J++oEWhfo#5Pcb8K<@Xn2hsqLIj|y&+(Ktn`hbk| zi)x(4QKq`WTAX4cTTMs9#R?diZbN*R_wK9h1-AD8Gmbkr~lkU<%(2tsv7TFeX!jo3Ykz$^#9i}{z?VNpFApovwsir`*ip= z{oPtmC#>0FXLJ>-0dL7W97R!5heT^@G50r_x*w?(W)^P8?+iIhGkxc7A2ADW7Sz1Q zx-Qwy!_HYeixGiu=xLU_GA|(R_E>hApyLSr%}x*{$ygK~4TnX$avG_Uf<<2V)z-~{ ziO1$J|`?-#+$?9B0QOw}pV(oh11$Le zq?P^32nI+36 zBqQ^fvVztc)|>_C0NjP4jzMFi7DFafOK{4A-+5$+x17BgLMgfvKZ9>3cNXhoQ=R9KeSTzQ!5@X2##FL~mOSAy&hJWs!~<(55q zjCGlHSk|o{k^|x~nt(jb1f##-&a7R|6f9$_?p#d|?@DV5eBW*u7j|i9m_9*Sn#oYD zHN`_p_o5~yIF7x@uh?-CC7=0yyV;1$?tiQCp88OZTEbjwfIBAdB)W6S+NLUv5>hn*tvO62?BfozqgP4+PP&Zb(W#Zv$< zrE;uWq`vv0)PlY7#0gNzB;8N`hwG_(chc=AQrVrRcDdPxO-C9jdZ-f$XSm44GwkRA zAGc!CQBxgWyq4ZYDqC z#?0OCnWM8@v7g8h))=wXduNb+cuN?JT85=7M({DF;Fpvb?-crJMwhBDM}^c!vA0U3 zC?pLpLS&Q*vQdq8Q-5kQ@AS?I6v=%_=Jm#Ebs0rG;pg{9uu30+97w` z&T=?-3c(HB5fZ|}Pmc?x$!z<^0>hlcszn|AA7kJ#KA}y>ctWEVh|(B%8hA{G+prE!>gfZvb$GMg$a)bm8$vC1&h-L|{w*yQ`ZrnvbZ;>NEY!E3 zsJ{`UufqdL|M~e}U;d(}Cjf*m-U-To{k&Y*ub%IQR489|6K!f}L>nEcYbXxDrF6+_ zo$2KVPu0gjj#3mJHB`2`eH)?0y41MIQMwMS0PsCUaPvT>ZzXgQtOdg18t2g$HL>5> z%;CM&-ov&DJg4n+a^HO_3O|cr8Cf5hm{;A!)_J-o`4XFJAW>u|LR6l7dHX#M^8?as zIv-nJeHx$4a@R*k7+wu(C5Sx>9Fs3qJk$6DG@og&N7^p(&qPfhNlxY(DGqD~+dcD{ zs|}Kv04ol#Kh5h0vjjLn__-;Z`!eIh2e0ELLXRUAQ$ZW0yzn{VbhXgJ=dNcL=a20e z|1(ImSfezOJIxwO>+2UbWp~!K6aHU|o1|-J3QDR6zeg+Z55#0oiQcE{Ex5W{n_cCY z|B39sBKarGm|$A;Tpz=j!2gZ=pKpzPer;~fvxpVxmY3tX8|yZ5j=K6XJ5ga};XIPx zeCgJnaqZW@H3{EhAhjhF5+--Eeb0ES5i-YL!_Z!qE01^BzF3a$G0<+B^YAuuJg5Ke zEYlyfytWfj5>C1Q83c+ghui%Wt&FTn6~X)NDM_`h8RBw{^%j#Tg#Qg3&y+)+d{kqg zC|(XHZZXtJ(_x^qY-a;iFHvI~t4Sotks4A_E=T{mB&_4-WLgR^GH5q}((qIzI$I-- zsx^wIR@CH3<05R$0@qIX`k64K60Tor>9TRrhkTz(=q;D45S_LTM|o0+RZ$fm z)LaEKg%Xm2d53EvnRJ^sc6P3?H@+Q(d0*Ou7OJQO5Lq ztkk2p?!k<@SY8+m3udzM#Wlm61u?a`?>5=rGB^yjJb{8)I-l+??2Ss4Y9^IKyXB(_ zLxEvUsTZMNS2$)H99+g^Zbc1KAE*)rqyKyN(PF(616Brx_3FR&blLeQ9=lJs)eA}nVbYk?5}t+pV5+55b|Q$U|C@Gmu|6u#Up&;4PTzt=B`pdunZC# znDRDow=LXBo*X@#YR*roFfpn06bb=ZyxjA~O`%S9*NTQ-8LSlYiqLa;*whN2b8}}&{!d!^-!KTH0xvCwgzSHBNAzz}l0e*~(7Ch!`uW&r z-y$PPjO^_z-YXQYlQ@}-VW9Xh8RX`t>^-HSB!o&Z2y35fQ z5QbD8w^4*6HGq^w$)_iLg!&)LVGjzt3wIY9 z^Evt0_5<#82V%>#?Kq^2aX;UjqvC1G>k51L>X4c^1gu(6dmwf2eg!=8xQdj(xjd^* z<6*>|8o5XuUMpX*%C$V?RS z4+!W);sLl&>ZS7q0di7fl##SWw5BUM&U-+-FkAuml53TiA-qFxKw1&f<;ZcZuENs( zqMZmVg1qW#3DCgT6}>|J(eIWx#s_!`;x9xJ0!))H^nKdzr)zwsRWScO@^7Lik3R1Y!%mh4LySbI1x2jAw zOf1NItGav6jBk@eW`o2M1eqL!Dkiy~5QgI}bt|7VoAy@i7F^Rq0i!jW( zdf~(&_%_r~TSD8QXs^#85A*2&Vc_u9pSU~uvh!&|y5VxX)BpDZi%8|=2}_!j-Aszc zz}cs`2F9SrqBi5Dd_ves`Mtwl4?!evpl{yy99e{W%ec(7L*@ppoBN&0IDt@SKh z$%`at-}jOI(tNi)GMHv)6!>FUxQDZe^T`Y!)UmGjkgYen*$rvn+FU;GXn2`9sNi@k za(z7>TMaVaW*)pECj0t==H`6Y$mkXqdgZ_}w|c|)?}NFQ07#&*O98Qwe)|Lr?;XaCYS7;Vt=D!N^%5C;x!eT5XvPx?~RR49YlUr zv`zNW*vS8q)28`@S*W(XSLrRylcO+jwP=0a<*IU4%oGf zZ&9rw!;eQ-pSg7vk z(%=^unXg~}WM-iiOVK1t#_1Ms|Is!Tk)DM+j1RqeiGCMY=Sl&_aU)pP*jC-0_|fc; z%h?@xcOZcf8rY;Js<#5A!07kS zzAzcmGW^3ca5b5o3g*yPU8s9|Le2mz0`o8^h1~aUwTcIx6arh|Hx!9Bc?q&7J?HbM z64>u#pBXRAEpq=ZJD4o`*9rns%eOa*UOoCg+E~C6!^1(ozb)FsoUekr9s4I7<ms65ugyeA#81?|MdKl%`q;g!CXZX4v})+9~qBxP5o6e$tMql z+RTYb@L!=O1jey^0JkIJ<^K9}p8Ofw@>)=tnMLjRMP2!}cN(1|2JDewy^E?46(kD4 zRC<~p%koYh)>qj1n~URdSxX|963ET*#tk?m=N}2ekJL|8GD!@Pin^q;F;$ojggfcg zm4Q;B5-hRY-09^>J_BW*s@IOp{&&D>5a|B9$gfH4x!Wrnauo9rf#m+6A8?1Mr-4h2 z>6hzR>F~+Mn951I+xXrDm*Of?L8#*qvSjWuzhI&FZjzCF2yr?6^;@1i&S~KN!7wkUR5R&oBB`A|v!irZ3b(TqBAjQZj?@xShD=~BRgBMsXO2?Ca(gCc`4_I;ljyRi&2 zes9n7-1l8Q-{trD^Y{Cc#$;a3`<&}s=eo`-QWJ+sIZ`bl(BshCY_r&XW%Guxs=|Uh zd|~}vEhOLza;$k)n(O6m^!xUm%C1^eh!vi&F5J_7MEzTa%%*N%c6-2V**q$jq}g*G zyLPndsNVnaB!M#$4*vE}E#f!?qzP3vjqsR%Y8DWAMP@9^fU%ic3sk2Yy>9_1j?{h6 z6T}Wc2GuGKZ${J;Yx`qX9NsQ-WND{3=5I$)d|RRfiIZ+ep}TW^%3X&ZI#1}Pgaq`N zxk9|1zCIbZnd@7Cu&-umOIIBy^<&>w+TggwIh*KsM+5t+V&KH;t5=fUt?i2}+xv^k ziyzsD9#?)bmZ>#Za(=GJs%~aV`Aww?na~jN=;q|p9=TMrwKmG3i^$>Wh{hx}CX^bv z`=KVEODct@L4DzxhQ>)Bu62Tp3|Sf%WM5jYxX@kiK3axc*}~YC+#lR9@hbN6XR=`u z|E13@+OHcYCom}xQ`hA4h+TJZi=@n`xnd0RRpy9ql^PLi+BjxV>rLy*;-I-&SVBJ5v6bIfL>8hBuZlqyoEbfGkf<*RZLy?#R9eB>7CoEOue3sj z1FLqwqOi;ZcqP{o1Mp1Cj5QWh1xfgGmfL3<(@gG~Dm5UiXN_Q*prMI@i5|BMr zg}tU7!}D{Ut2~>0vd9`zO?B{I@nGx6h2rTQh`G6NfF7Op4N#^a$Y=K8v>W~%pgReA zDXL2d+s0M>-nLgeDSzGxUYE&j&8(@(-JR$4O^7m)Y7s=-b2a_YxVPAhOn?OWm~O8t zZQ=j~*i1(}=EF{|0`nIjRsBC&wTeKs-zP%_{w!DPXtF0=o!p;PFb={~K z1>Jd_iLMDi_fCQ4ju<7H?9%flB2$WBAJis;*9vzB%K{6k=<$Os5~BmwcY14(`RFd5 zB}@RCf5W%D@1IOAvEO}4Fly%i^R4~1OE3h}*-0hjCw&Tbij)16dXv|7s($#9_TgI* z(F}#*);32qTwJZxVLp8;Vhe6Hu$rlrMn;Ceb^*kDcki6yhCoj1vg5VXYmU$8t9zf6 zJF3p*(!{k?MU6_+giZ|Q4xmu1=nAs*j&tEhnaupKb}Oo~B@2S3QE+K3345@gE_ zrnJb+#$1n~B5X%Y3I>}Bjn{POgXm9bYTK#m4EU(2tIjY{4a zk>CwE_0}Fh)sDtUzJ^qCPQ~~&8OUyl~|Jgbi2>0zNWHC z@S0vALT}XM2prI+uX{+=Hggso=pbC_ zwdpB{g=Yb9%yXf!!2Lq-g^$lO4zt$B8X}@@4rE1*K{*yu@}X>44p;1*8O}jzIO{w|G3U6o+Z&+5oG}wPtbru$hKA zdgOza)x^A(sq0AB5@MqJ!FH2AQt88>NMI-Xv~D2!&+xlGG5^!b{klXc!TchZTD+dq={ofS_Rw9Y=d%6AZQ=YZQl?w%tFt)(C&;6RG(JAP%&{| z^3`N7nJJSLr}<9<-f(n3_HvQp4ZpO6R?UW``eM4H$ef`L3fXGGRoXoivBKq zmj&c`7#1$ysvI=%)twSRZoZpnc3Jj_NM9$$yf}w7z%El!jzxtfFj+Sy6y@iD8Em!z z?vh$HjVwnh^qB|wE1B_te-Lh$$Epz0@pi(BP>GuSyDkc{#|5QJ@MxENDF#nZ{Q1=7 zFgF)|%gp8gitj)o=uVH!QxN*Ji2a;C2iP7#I_A!%h%QiJxY%G#qqowbyA-;0)*An zNrUP3nhtS#350JV+X&%t4PHHvB-qlh)V))h1sCY_h)ju-)oLiGc)O+SdvI?u#u9>M_n|FnzB0ilcj1Dwhpsef>)yZ5pW+T1&uA zj?#zZrgxZa+BU;A2X1Q=ZBl$|cedE4D>zdS8AG8uft>hyZkG|Nv0#fa$$8U{0xB+h zQ;u#wTUc8bL~2q8y(ABqqWY>6I3|9;5wn$_GU)I{)G>GJX zFhs6hxxHHy5@@oc6C+<*on@fLDCr&WX%G$akRcYms8=RVq^A~}mfE&fl_knQ^pZqh z=8&8D)D5|Qpa0(v?tjLJX0ZbxqBEhOpwK+b&g)yDkgXxO zjP^R+Hyv9uKd{nAr-nrecQH3=h ztu)n*Elzd$ntZ~SOPNPtgEtam&u8|U64;MIx~NF^#dEdvNm5I@=@0f#e2iJPd4)bZ z`PGF!&Vkp}Dzh20^a}>8g_mbYmA5u)XgRC0?a7En(ZV<|@xCdn@YUpr$GtVHxUy-Z zVU3*^6#u#4f?PTeI z3+|Q;^q!%{7tNl+z#YHFx?oy%vm3zRY&gN^@Y*RACJRnQ@p^2SZj3Paiy_+=rS72+ z_m$G|TDvvE{K`wJa+!MI??i0fzsElqq0*k(fcu-&BIZ$lpY5sQSmA&t`<;XT)L_9< z&`uyjcXo5^>sFhhrQB|}y|>OS3KSFX^DpPHqkgX215N7pb>Y*)rG;d5iHAiiF0}K9 zC%6h_!N(c8eFkS+7Hr@qdnWMjUN8yK>MV`%%vFbzk-krry*3Az^zBb=tzPGvD21t+ zKbR#!h^xI-AC%fRQvsff*x!J$=yQ;+88|8vq^<9qIOgu$72jE^o=hw z%2jrj5KXX-Mrj{6^sb>j`F>UK4p_4SHz)GF8UKj`93A9j9>M3m+W2hP%6m7+Yjmd9 zfmc_^USmz)^OP`nB6bnMREHQ}->{y%z`e$J=3Ue;XrY89{6NopOx1d80s8D_P?y4R z#~x|ic>1~KCs-}-i?NGWBRlDldvZ1!R<>xRGn!}r)^jiC;=<5!lk&l8a;#s3Z$(Mt6y z{4(G+pAC&Gx755dLN_K+3mtGOF$X9wt`F_((6~0g{;M_D+>uPK+0n~;U9`eIR=;k5iigmU9|X%3ERiMbq1I1TwF@N_sHTt5)55(E86o|Q<))Q6Z+@2 z&Zd}iC64*qh2g^938uH1)lTh`Oi+!|v8YFX5U4YgN;aA)Cp^vYrai$zsygQ@{^%A> z5DJ&Cq+!P0qplIR27*+;-=$CDL`NDd*7cNZHNjA7}VUVAJb5^c6xH0~?oGUp2Sz6Ke{hugrJMsQXJN#at!)NC$B0ic#U z)tNaGdj=g_LBZ9V&nls6eg^)7{3PJ!^FRry{M-)`_Ygn@V-%W*;C^?yZ)p4T>*?Cy z`>D&iK~j>p?K_&Tv#H)@I9_4e1EzJ0xSrcv?LiGo4drcWE>%|Uw#moJETAAG7w!mq z62F+1@{caM`;#lFr*kSicT7cuaup%g4Bhmv+VPZcx2j-nz<&h>$=|72{{lznT!KgG zH7wf#C<)7rr;jL1FCYc!KvD7OO^{Mrn!lIAy6@~(5gJJehKC7N2abyan4s?FOtw&ajG!@2h_eBS&GeV z$wavAU8+nH*pNpAJ8akSmdT3htX#@+H?`*v&-$nBfAnU5I&ha-e=qNsmT8GGDIE?ltH?x!FOhO7 zLQn_MXn||Rz7z>7L`Bf?*K1T^q&^W%g>QOQg0zY-7|biG*?lhu=CLluAyWB17G>2q z(D&wfG3L>Ol#CoyVOt}CmzBbP=ozo1VbPf;b2Ri8^W?y|#rqdn|_2H@+-=`G~f{heZc(Wo2?Xu)74?;j(n?PaPH$2Ft7Rf?*^c{TN^{ zHp|nhiXg4W_UuOFs~tS*_bU=Q5A=zp52Q7%J@MADw&pUl>G69XHWcnhYd@}R-m54G znkNq5_n{fwn=C}%zOyZOfX%PD z5^FQE{gHqQm^ZnvcfX6g8@yDu3$)`L?^kuKX*7n+RJ-^U1l+L{&lNvZ6wsiWWp-nQH0!kRUK9>zqRg zmhKt|bwUSA9DHWV5KQYel+N5Eln#?l9GO~L;w5$!Kc!iJQru~@9lB|=OmCZ}&X3qW zE7!QI>%Vd6kAW9+{}iL~@cm-cmHE>A*JAVsgA~!!Rf;G=A{30b7J3mwl^A@(WOMrf z$M)QU@!KK?hikWW^kPh)<*5`)PhbF3kNjM&o;{uzRxR6A*-@Z5I(Lg%GmzBms2&ta zYZE*P5%$2n<4Jd`b|OxO#)^mm$!56!>m=C?(cYu*=ZMhmPUQ0q53)kvy*IX6Rc2u2 zm6=cF@5aS>!S6>FZH5GJD!Jg5xwvqP7Z|~aQTp67|88vn*gzf1V=GICEhpmS$iyww zbB#XkwX8|$8D*s0K)>~rb&1CUBA4m5uP50Tn>U++~u z8+F$Ii}eYr2bC?PN=f!+UUKbkEW8-K#+Ws`*ORbHfVeIYX?^O=t<0%qOHy5nrnaa} zcS?`{*EFuzbow(YW7_73SupLU@$|LQkDfDuZqiHi#QDXod0W*o@jr%XI;UjsV*oLo=^Tb+p>ekq^V6!jTpZlND9UtdzNY%bvgfWPc|j$x>_l* zp3>uj9@=p#GqypvZr_nOA!b@Lf%7CY);dzA{=<6&6e28L7+!t&5I7oavYj})uy^EI zbMqdf0McH6tAH#I8qcNe^3&q@|f z_I9KOZ3-5iw;lYPDgMnBzHkkN0W5~57X=}IV0~%Qg;^e77f8-)HD>5DWo{;%wqGAW zD*cS%p9piIl6LT2DQrtReVHmVt1?3&o_(p zyU0J$_(K%PQ$NO13;zDrz96KWg~1_xpVO*zNU-k zYe%LXruF0wEV-+%4GhyaJS0U{ZopR~p{99H5L{9YCr__Gf6l<&eDCP3?`i!MEUBXRss(v3-4#M3+s*+h0YZiPBoh%~w2$u)TmMlu4?O#l}ZwLNU z_*wRw*xO$iHLq{nbBh)6CvnyUx`Lu=G@fPZeMApq_oa<|bk#ze*Oue$?V4G=Q#K-1 zC*Fca&ePW_sn04#D?dVl{J+2@TcQzJ){#jXSh{E*e()8)wc6ZsO zt<3r0y`4L&UC`hfJz?s=^Wy0O%0q+i$lZ>IlhaQ$FPIzlU$6+?lOJrwYRFp`>lw5E6X+bZ1Ah4@B@^n!o_pQAWLK< zjx;y2y5%#y^4gD**6N#pRzo;MtgTSww+XEQkT!wST5?Cxv_t327e{M{#anOA#$69p zz3cg*!^%J_hVm z4}}%JPq(U3;}7XEiF`@&3$L7c0R_P~-f;xmn-c)aV$~@UqY1A<2ZyeR+!k8a3JJUX z?O}2}sgZ&y96`6y3Tqouh9P$=>PNw zCjf#mVb3-!5n*rX-!SU382|3D`=2K0tl~G2$L}>D<0_Lwq@BV{LGqE8*&1V+$@6xM zXFNv{fR@LY*JWr4wCELKGF@DIVek0qtD5e+eF?NCV;-F!yhP)4QQR3d%p3wS)}(Rd zdLWh)kFC&9C&3CUo#w2?1jQa5=1o4}L)dYXMy&S>XJ__iyi#zGYI$C$(&x085JoAjE+5M!9PC&6M`H&>xj39}|&`sp7ehSTn0zYgvwQ7C_(dCY56-P>60jqX{4#5qHn|pip0i55mg6U}lf?dz zT;hpl+plvh-h(x)LLmP0fW~!Ohn(b7%6O(Gg#_2`6=$gD@zCA~S*qvoXBInI-6n2R ztI@t{s9c<-hp0)zMHD$GMGR~7rXS!W>%o2rG^R0Vi@WaYp z7#`#c=bGRk8Tf`|a{#rEd&d}>#i!g|(ffcqmQ6eM`G7o~5DO^(4xU~t;jLd{o_ms4 zU%_+$j5!vX6=rlu#9ni~EK`-PSh#Q(;oK3S23wk_Shyxk!z7VFUmLH~R2IiI>qL$V zS}j7=;ZrXi3?^b!5P;xoSZdjkmWl8ARRqVvu>Xv_T-kh_xuTX|BlBI7&m-4_q7>QX zR-UulqoVg3+}%4Sc3$ksT79JKW+7yD+aCUUxRWP+nrJEnxo%r9plBJKRl~5TPx0~A zxEdpS(5>7puWB=oeY$xhSa;MLTsJVeb~=Dh92RbK~|Z zL<&tOEUtc_{`t<`9pLtndwt(JSK+=kCL=rD?5=*cwPb42>YFu1SfP#c&f{L>h?o6? zky_ho?Cu=c?To4GcrPYZ>qT`980Yd((1H9((s@rd!F%vIY~i1i8LFw1zyNX}a2L@G`7zrADHz3N92y=(|k6jsNuz$nt{4|sa$iZw~u(^QUb_k6=bG{ z6=8Cc*FTwyReV2lu{~;G{yB3Ey=94sjd^u~Vrxk-9a}Nm0^p+{LwlGkyEUK>3^JEQ z971EZBn-#(G7ksiWJUWilZB&MKJVGV_8egS_phP$T_v>sYA93 z*S|K#%_5sMEX3Scke@SrUzzn3wzz~cs5ZeIb%`K~S0i?mSBLqK8w_O_Pcv#N;xy*A zRFWZxwLBzJnL4>C>?*rPc3|_zVU|_EE3@t+7u9Rt(-R|;%q_0`f|x`9Lxg#pexSxQ z=T7QMQoNCOhO+=-P+2-&PwVB zbl5k|ZhEgfS_-+lXfn(b!f~>2ulV&P%Cw+ki#3w}{ATutw2g;1n@V;Rx{9Zlr25J0 z@plri!fk~%<*`8yYcBmaMY4So#ndYrbVod`l~@Yru!=7u(! zw`wx!!;?NwqR;MvCgtfP;5=zbg6R}{%f_>I-og>%8c9g7K=>cCf0ZKr2%tsKkASQG z@;8=NWe}&d>iY2-$MdK?+x=cS7Jt>~OH<;V7Z;1ff^?svP-b5>$d7dTFwT=VWHcB- zog>Gd6j>eu+upu@@5}6sd^Zq`cdg9lxrYrb+?=e-2BTuTL~3mZ#&w%VXG(o@3f$aC zkIHI&if*QtrcY*`)PPY3i*w-Qj!o`3jz1Jd@muwdVG2S6ej!fGjz-!SM3R99py_7f zTWOgiMEDUP^VWoh)Tq0T|#O>E%Stz?leLg}OrLRI` zWsuaxp4JtCB$dBqNy^9eDVwXix4km|I!FM@4LNd~sVLrYbaZT~%vPvkSRz-BIn?pI z%>7cp9(%OX>ICdF=!N3hr%YqZB#H&Po?8Q|9xu7hm9M zga7<4$yW|Abf+e%13>5l;5tDA@;M#l;xVT>le_hS<2Tr_P#T%V|Iy``dPfeJb3N-z z+&x+6PnPL9H2*QA5o^IwInO(J(P)dvO0P$XvHVjRT+tv+g|>z(a2(jPOcSom6Je$+ zlod8YP{0ptCAC{Qz14Hc^|BE?Eqrz03rEKDddqiw2hfK)`I31>ZH6s+xVArP8Pf;{Y!-2fj{qDh0AzmOy_7r8QbEa_`=A#!^=I%JrC*&)3Q8{B^Ez0+5X zZR&tc-^fk$fzrc&Opv8B{-K6{vwI~7G9cCVo~}l1CR{h-{ z)xF$jll4|Jld(U^z{eCLwBS3|{DL5k1_>@iHAdJSEH|7%s{v6R8UGJGE+8 zG^r$vve>djuaF74z`7I}d$nz8JRpT5H}qRMq(t+D2f0k~wDN05bm<5y?vnBMG+j38 zG8gk^JU84-Zl&mmMc;`DrVw+kwRvq0$_hUeSVEK^jWDsEGVbjk$~Up52^}%m`o1E( z-rE$5N+sy}az}UAx}>z#Ead^SErX5kY#FEi{`|im84ttmPC`_ol{tFdvgPSYr{{tc z($;ViO8EOB94mVaoLKo2h>9;8!{6^y=XyA#^W{tG=?xW|kmlN}YFHT-zE$(X*NjsB zfh38) z(;I--#~e=;c}|<@JqFlAp~Ys%(s^dzLv$9!@Zupp?~@vnIRmo=4;tFb1G}~Vzv(pW zmc?z7SC&r9{6ZUPab;;n-dPR5sML&%r$n??D+YN{RxS?Pz^mZ}Dc)Z^K1#RIx0xx_ z5mK0bm!|bExE)Ap%E|!$2og%a#2E6^8A}TSGV4u^eb*++XHK3(gr|*&|5;Dc61{)* zfev(B{N%9g)bsjS0};%N=)Up#v3Q45^UW6Irh1TA!ev*_NXf%!__Eg@SHKE$$Px|L zjdBr%b#7VPh#>fspXAyKCgnLwo|gT*ghKYn+7%}nwOe!#>anQ4FvF!q`Dl4P{PM2J z)2-3U{xc&K*P7#{m|(5RyZi%pOK*AMTGbj?I?DRkOMh2s#YQ@LN|fNzKE;=deke>ZvhB`u9q?fKl{_;r~LkT=||LLNF-rf%bekyE;O=wyGzKy(z(^Xrs_ca-rXRVHE$KQ!pB9r<=(PMH4=tg8P)E@D2RH1Uh7_;Yw=d z8-JM1l8#!9m()S0wr3}#TE4TL{W%8#XL11vBH-NO9xa)6Z|MWaD zhGbl^yLaz0KL~U_o+sCzX~f(|yUy+!A7JqaY+`N>2Q4zIvWE0_);#3^z4Qu2t1YB( zuRgCwf|7%dxp+P-64b@pNqbC*X=Jyk_5n|qb~99#c&=|M*AD7Y=4*mY$_{BubxnOU z@4R$XBeXrp=`7ySkR<=Hmd86wr=d*wP~b*fUzUnlZ*ia?r!q&s%~4bU%gV9mk(seH zF$QxaN)0Npua)mxcV1f-o9PU@%<0lSea(OcHks96g@+>SxhAZ>hu~vN{8OImCT^Vu zE>e`_6``!4m=B(VJkGg#=_i21#kipj;3l|e)L(9nf7Qi(BVFUZd$mzZPT`lAbMOG^ zM(=1lhreTlapu~;}3Z7Y) zzHjB48VQ@(Lj>i~vUFIlF>GUVNvtKoyF)fYGJZvuw_4f59 z#kc;Lsd!sy!Ry*z37>w}a^<_!^8Zq=b!GjRNCCb$$qwYClk6?WkNzB7W&!)+4nnzG zzOB+X9>9^Q&vA6u}x)nM89Yv~`m z+|Jzk``#DDlL}FnmpNrtr!w9ZbCJ@Gb%WWqabF!UiN&4qe5zT;wU9Y|2^yE28S`+l(cY+~rZWxFz!`?L<2{HZ>nj69n!bTVGo@CLFTp`#?3g49!e&~fU zN82=Ec$nRBTRE`ci6XJN4RJj*R*t+;&YW@r$Ty-}*6YnsSKqa)dg-YN=XO^E+G5iu zal!&B07^;2HgNdd5f3x#PE%%mK=L(mvPiTJGy!81g<~2E zhG|SFgOMHs{V!oM0RbO*E4rVohsPQKzL)B6xIZtNjx2$7?@XOPbJm=-LyJd!m9CB_@GDSQkZxBffUeh0VV&(5Y+}P*c zH*G|$-qPm<7=L-pLhI`HyTCC%iBmr#C%b;pedGk6`+mc`9M%@Ax~}4L?e>H|EWwI< zA#Ao@c~>TAs-7u?563Uea{4U(kv42$SVE3_^jY{R@{~Zcn>s8Ubs52kQl>s|IO+6I z&z*+rWWM`vUm#AZ@5Bxt38dV`t0_NU&gqdyh}F3Ll)dwCfOa&dtJ^VHi^INPWgx2j zl78RE9L@*j$<=H2WGw%+N=%@4B{T$!;H1ZKVH_3jzK9y8JA z>T9nu7-qd1clz8e&b(n{-+QqRi)Af$8^k=@GgFXnH97TLdKNwyY*L?qYX7;c8xQ-*!)Hi|sT_;c`eOIZIol~yU&lV8YusFiM~JK9%rTX% zPpOxsJ!UFQjiC*CHR|6yIP6imIVcY3legrlW3qZoaHFqE!ozejaVB1$oj2HfW+nEK zbzXBU`tzMgld5R-$Wq}-`I~w-%WI)DTD5DplH&Ej+iP}m?XL1`2a*o(7^+J3${IYyg8ITTQ+efe5zXw1ft$p{iGJo6?K28w+DWinzi{PS3sMxYz_wb;y{a6@R^Q}UsS`J#i zF8tb+^+d=IYPPm4P;dHP67dXCRsHynDmJxj#u-6g{wtE$T-n;$@2WDeZf!@KPgGgVI{5jbFCct ztG|+4f0^TD*M;000W-gH2waRr&JX?!x9I|mKO<(~i%0tZ8k~eUIsJkqrMZC(3|Fq` zwM^lhY%crWv0j#+DyWmwhME>SW$NCzH5M@D?yB+aFgQ37hJR%6RqSwVq`Df9LtDM- z_a|S$+LCwZ&w`yw>|@NX`=|zX>a#0DoRCUcN@majHE@8&JdZ zx&dWPK^w^1XD6P>z{aBZ%`CCZ9|aS&Zx8Yt2ar`>_+=fO6_MaLRc=fF=LBP(6i#%b+hYUMrL zqOMT-D40ZWX{UO8grUKXr7c)}ZYe%>S$u0nh4s?uz4vo#HH+)+P|?IJcGxbn!PEcm8`j!7ausMAPm> zwNFYq07FW>`N97efIcA#6v!Fk9bq)-~bNQr^G=YnEtMb9^>N1SALz5Op;Oij+6v6wF~4{AeCE6O2$bpqb68t(u>I#u^>5A1?>Rz8 z1{$BBp1gtNZ4f@9RJRreH{^shH=@g225X$$U^0buxpu$C;>lA*(tvAAt%~l5DSZ`K zRZho&YnF9Xej=y-wcepJy3q3?u; zxIdqsleRw|AlerrHsVj=(M8~Kz&HU6=GE}(H{a;BF|Yqv^67*5CC!xm)Y&P05pYGc_lI2*rPBxHMg4hCG>wu`;p^ zQ98)uQ5N^^*QnEeciGPT*gN{#*$kIG&$GVU!?&6su7y16KLd#UBWySr0ra815vrm0|^b3YaoV94tk2{a7*(c&MY*m22NdN=H@ zuH;D+O8$$qG`^`6v)&763Dqh~`?5oT6%hhkUGENh?PZM)f8j6`)eszHOO~TXH9DTh z1MY3tnqc4E1FQ#JUA=*o5yZZTfTjuYUK=v?@FcUtfSFSf7kO?ykuT%%ZY^PcrIU(i8paORuBk)mKXG|lT%TRV_ruUO(En^N;`6IP z&CFNnh}|;U!5N@W`uQNo9$m7VWY*s%h`jRro_>A1z*KfV94NYHcOU+|2TA`Y zYH@%B^+hS2Ooo%6umf`ACw@C-VJN1=`$d1iKICV+fxPncQ1xmq`0GKI4Sh~FXB5pI zpfvlxDkrl^Jz(o+J0+U3f~h*7DtABzoR?$G2G+Qyf$K;Vg5l@{i4i`RNK8`^PjdlM zbtBtpR^C=8zVzF;VWgt7$43q*FNXTW2ClC{F`!5~((4U=6Q%$`$Z*icnD&}C;nTFO)b@PF zYet`@xY!d6-Em*gGd~@*vOU+oy%yaYm8k!L*TTBs2>kfI)gp9wC07vr2v>HU@w}q8X?O@B@Tc9P$ocEyhwZprIPUb&D=2AQeN>y{f*Ma$7yA7cHk|5D zjnKE$i;L&#t6bT4Oucw@gyqS z3s{Z?5;ei`BBSL0<}PTBJJ7gQb9kw*`ITpcZGq+y_vG5!CBHZD2>^Zn?N-h9V20IZ zVnicp>3|qxR>pSji=U-r%0IaH{Fp|P0+*Q4x)-_sFB1C*$QK}?=Q?FNh%>)@bDIzmO5p?Ym`Go*VC9P&y#ywLrrIFd${Q9GNeRfDfgBR( zVt5^G8JT8&Qu0NR3t8GBccA^#IMZMNwV!)6yD?Uo)$5pp>?CDybo-mc zl|4HRSb|TV`IK?1D(+pp>>YrwoQ(L~{ky_GR;2zPfqfQ7{4O`+Psp%Cw8-U%5m-iQ z`bXxbn`gP^nftqj6r}^fA~B4=A?c#iEHT}M8NNZKuUb>PoDrMR#P)e#%eb2ZANR$w zmwpOJV3oWfH=m&3dB9$O-)VtyPhb;>$+fYEM#~q+G9NjvTvkxyba~;&|PbDEHzb>0xV!q_71o3Gyrx5sIWl2cN`iMv;;~L4p};)`8wJM}q()gPFS9 zuw>QOF-V=868%4`&J)fbdwLZI?Rd5;G0}6EhZJvN>nBCgc$5ryCu1Q0jPUlG--xGmU%x*4l3Y$G;2$-Y z$7i#y^4MMlV9sfsdggj&StdS$dBWMjK@s2dCCwut z2UerVYiTRpt;BZ5CPlgaJs%XFdJPog9N`?LvvGojgkgPJu~Ax+*n}(zb|rToRQ5Td zH#5ju%bFbQslq8k9ZyfyiBTxp4&hGch>GG1_alFwvm*E9L!{-J?v$b-(xlz|F7TZ- zk+N0BGh@FyK%|`+j`MD}12>n^S~G+wVHqi_l~iZ^N2jUg>EDJffDDv_fkK+cuxD7U z#NBe++PU?|qE*Yor5Ya#5uHTfOb>nt|0S%2j)$C}G>@F1Ac6H3E`{~8-AwM`vgzaA zMGdan9b%02vmJPRTvm8&5l{4k;(w`_<^H2$zA3rLXq{H;HJ)j+FJK0in)x?Od=rn= zuQ1yCYZm~Yw|#fMsR7)o1IV3mVMSeus47@_?FLa;z@38*XPgbe{n230h>I=_<8hY> zWEIfx#E26Y@Ky^+%21zXq|CJ}CVs5P)&jENjULE*XWUm2M#{1rtd@}BZzzZz?Vk$+ z$stwo_OWYx>8Rn$BTPVa07CGOJbeL{Hqp|>ksm9!*svan|Dt(aESrHx;bYjRj!--CbI>eU7i#?#|XMA zI`QU)bfeH)>slmIGnG`Mtbi$ z=$k)K4E1F(IuY|rz}4w6Ca52LMsnG5uCvX8Ym1#U`*3x~*?ImpVVJFwS8sn)r-d{5GsSApVf3-KO zjcfY~PexlNji@R>2qG|`rhoK{o(#-Sj4ZvotiJp*_nl?5pG`e91wI!0VyVA!#z~R` zt=@rAITZ8?X1JE+ATuQcNIN0FOFL&vWIQ6P1nkKWk)=$u*)H=5W;LTRyPKW^GgAQ` zaB`kvqH=g^>0>VWH&6`>;X+ffg40!z11^B$aCYROuwO`%VV(lYT#)v>^dlIdvK+4~ zBA4yt+hiych$Ui*i^Xw9U3^X$W$`eDb-=a&jQ%9IG$&ky5B7w-{>e5D9McT9@+lT0 zs|ZPLIOTP9@3@D?hFpfw=7(E%P-cizqahN%VX4qMd(jIQZT8f6Ofsx?B=?JZ^|Pvt zMZ-e1ywu$(6W#x!6_uC)sIH`X(Sl$Y3+Yt_98t%(8N`@nA{mA7%a^QPz{diMCUql0 z-+$IcDvNJ%!N@a3gUnb;C&tS$(f7S;kt6%O{dk&D@q&Z3=ht$W30B#6@_VD9nohws zb){mx9~g1X1Iz6os5JXAqgk8u%gPrSRTQ1tw=BULp4^A+#t6vRQO*ul{)WF~k;wn8 zEHc$st{42m8R7$#KtAC*loqvP4iWL6GK*Jsz>j`%4Fqz&;^e}8zhTT*wpIxfx46yb@^(X8J=>d!R1|Gfpjz!pM%y>^vG^>0tO z9zcb`e{^MJxX``fM@hAKW|2MIt;OXp+iQ0}J~`m?1}@4k`BUT6dVF6k@yY%kQ(@ht z?NF-mf36n*SSxbSk@G+6`@+q_LEvDOKL$<*ziGh7J(#X|tGaSSGhALFYcMWrdD06Y zDF0AZ*_espi$-my^r&vFltL$p8Xi9M_;gZ%+!#Box=`_!w~umHPvqQj)i-=yiZcux zO^Z+ZDp(TZ>cqKhjIb&k&#Wy?u&s|yUV=d%lFI#YoX4W_v{U@M)7%4@NqrG0E0(J) z!7jkcs}(OrG=0WgM8spgc}ac1W~RTHZ#B|k+zU3*K3a7jxHcn09RK~t#oq!E2;2!E zaGz&tThj_|73?kVUQYl0K#M-J2(4w^GTfSPSj~nkT-N=sb-K%_Qx|T1gDlGcyVU%c zh5+0o`SM*jd(GhwY%VNS?BrFY-NcGVI#YEI_BC^tJR>#|&V-K&^o>Ve{oiZmG$~v` zb6bN|8-_hSZLT2vMmdL~Qwhv_xBE-8AtLZjDH250(D_l1JB;Jk>~kr4sw*gKv{1)( zj%CI{{;Bn_GVxY?qlDN&jQBwRplV8XL#$DlJnj_il8ApK)`KAiW#)X<;v%z1^Z?6> z{kWU0XEt*9EkWsHzDYx6C5}gLu@UetSUo8ViV(pX6J+qF}LQ%tFVmi8sB_1Fc2O_i;I>vX6LnP#4v6^-vt>E$HrrgkYkwbfV`0hn#Gl zh=e0E=9=J&4HqBnVqUqp$PyJKn6mZa_-tCjX>of?A!Wf?I4UefF#(XtB*62ZKj))$ zPv1a5d);Mcr}OY`95A97uRB2Vp4hwVTvqT)MbhGWz^(lLh|$93^k0OS01$YTyua*d zaH=^~|EGVl>jc)MmO>pN=9&ugQp;mdQLa!fy!2;*M~m?+(q?iAgy@`hVDa�!?b=_ML1*b?61(6aE5uG#<>5xbh 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

    FIGQ&1=t;xb}jB^u)Jh>i!?fzB{g| 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 V{=1PtS_XcdIBI_+_wdEr{}1|O2pRwY literal 0 HcmV?d00001 diff --git a/head/images/contract_address.png b/head/images/contract_address.png new file mode 100644 index 0000000000000000000000000000000000000000..ec8852c38f4429b40f857cd4f8697d489b4fe9a2 GIT binary patch literal 722727 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

  • - - - Open the FireFly Sandbox for the first member - - -