From ebfeef9245767f4fe001aeabdf3ac466224f4bfe Mon Sep 17 00:00:00 2001 From: zhfnjust Date: Wed, 13 Dec 2023 00:50:20 +0000 Subject: [PATCH] Deploy website - based on 72b5d491ab689e80eb7ba9ba3460b205a03293e1 --- 404.html | 8 ++++---- advanced/codeseparator/index.html | 8 ++++---- advanced/how-to-add-a-provider/index.html | 8 ++++---- advanced/how-to-add-a-signer/index.html | 8 ++++---- .../how-to-build-an-oracle-service/index.html | 8 ++++---- .../how-to-call-multiple-contracts/index.html | 8 ++++---- .../how-to-debug-scriptcontext/index.html | 8 ++++---- .../index.html | 8 ++++---- advanced/how-to-replay-instance/index.html | 8 ++++---- advanced/inline-asm/index.html | 8 ++++---- advanced/sighash-type/index.html | 8 ++++---- advanced/timeLock/index.html | 8 ++++---- ...gin_1-2cf9b6b5ecc61831fa404b853bfb4128.png | Bin 0 -> 472032 bytes ...gin_1-d24d5932ab342f141af354d71f3fb003.png | Bin 56077 -> 0 bytes ...gin_2-be73ffaef8a60181e1d93fd73776aa24.png | Bin 379607 -> 0 bytes ...in_2-dcfcde9712acfce3a180edd9bab1a4ef.png} | Bin ...4843f.b54a1dc7.js => 1a54843f.ce4cd111.js} | 2 +- assets/js/56514474.7d9143e7.js | 1 - assets/js/572d3f0b.313df141.js | 1 - assets/js/572d3f0b.52d8c6b0.js | 1 + assets/js/6c2dbd7a.39c9ffff.js | 1 - assets/js/6c2dbd7a.df04a4c9.js | 1 + assets/js/910cd6a4.32a18f12.js | 1 - assets/js/910cd6a4.b922dc52.js | 1 + assets/js/9277e5e6.6983506e.js | 1 + assets/js/9277e5e6.8e6a9621.js | 1 - assets/js/935f2afb.142d5195.js | 1 + assets/js/935f2afb.9e2103d2.js | 1 - assets/js/a5c7ba44.1d2881a9.js | 1 + assets/js/a5c7ba44.2a8b4ad9.js | 1 - assets/js/db37e9c8.418f2faf.js | 1 - assets/js/db37e9c8.75bfbb86.js | 1 + assets/js/f7fb2808.b531e3eb.js | 1 - assets/js/f7fb2808.de138704.js | 1 + assets/js/f8498202.2d59e4f3.js | 1 + assets/js/f8498202.fe249a7b.js | 1 - assets/js/ffd93812.9b337fa3.js | 1 + assets/js/main.115671e8.js | 2 ++ ...CENSE.txt => main.115671e8.js.LICENSE.txt} | 0 assets/js/main.50f7f6f2.js | 2 -- assets/js/runtime~main.06b239dc.js | 1 - assets/js/runtime~main.1c8bd3c3.js | 1 + bitcoin-basics/bsv/index.html | 8 ++++---- bitcoin-basics/index.html | 8 ++++---- category/advanced/index.html | 8 ++++---- category/tutorials-1/index.html | 10 +++++----- category/tutorials/index.html | 10 +++++----- ethereum-devs/index.html | 8 ++++---- faq/index.html | 8 ++++---- how-to-debug-a-contract/index.html | 8 ++++---- .../call-deployed/index.html | 8 ++++---- .../deploy-cli/index.html | 8 ++++---- .../faucet/index.html | 8 ++++---- .../how-to-customize-a-contract-tx/index.html | 8 ++++---- how-to-deploy-and-call-a-contract/index.html | 8 ++++---- .../how-to-integrate-dotwallet/index.html | 8 ++++---- how-to-integrate-a-frontend/index.html | 8 ++++---- how-to-publish-a-contract/index.html | 8 ++++---- how-to-test-a-contract/index.html | 8 ++++---- how-to-verify-a-contract/index.html | 8 ++++---- how-to-write-a-contract/built-ins/index.html | 8 ++++---- how-to-write-a-contract/index.html | 8 ++++---- .../scriptcontext/index.html | 8 ++++---- .../stateful-contract/index.html | 8 ++++---- img/bsv20-plugin_1.png | Bin 56077 -> 472032 bytes img/bsv20-plugin_2.png | Bin 379607 -> 91283 bytes img/bsv20-plugin_3.png | Bin 91283 -> 0 bytes index.html | 8 ++++---- installation/index.html | 8 ++++---- overview/index.html | 8 ++++---- reference/classes/ActionError/index.html | 8 ++++---- reference/classes/BsvApi/index.html | 8 ++++---- reference/classes/Constants/index.html | 8 ++++---- reference/classes/ContractApi/index.html | 8 ++++---- reference/classes/DefaultProvider/index.html | 8 ++++---- reference/classes/DotwalletSigner/index.html | 8 ++++---- reference/classes/DummyProvider/index.html | 8 ++++---- reference/classes/FunctionCall/index.html | 8 ++++---- .../classes/GorillapoolProvider/index.html | 8 ++++---- reference/classes/HashedMap/index.html | 8 ++++---- reference/classes/HashedSet/index.html | 8 ++++---- reference/classes/OpCode/index.html | 8 ++++---- reference/classes/Provider/index.html | 8 ++++---- reference/classes/ScryptProvider/index.html | 8 ++++---- reference/classes/SensibleProvider/index.html | 8 ++++---- reference/classes/SensiletSigner/index.html | 8 ++++---- reference/classes/SigHash/index.html | 8 ++++---- reference/classes/Signer/index.html | 8 ++++---- reference/classes/SmartContract/index.html | 8 ++++---- reference/classes/SmartContractLib/index.html | 8 ++++---- reference/classes/TAALSigner/index.html | 8 ++++---- reference/classes/TaalProvider/index.html | 8 ++++---- reference/classes/TestWallet/index.html | 8 ++++---- reference/classes/Utils/index.html | 8 ++++---- reference/classes/VarIntReader/index.html | 8 ++++---- reference/classes/VarIntWriter/index.html | 8 ++++---- .../classes/WhatsonchainProvider/index.html | 8 ++++---- reference/classes/bsv.Address/index.html | 8 ++++---- reference/classes/bsv.Block/index.html | 8 ++++---- reference/classes/bsv.BlockHeader/index.html | 8 ++++---- reference/classes/bsv.ECIES/index.html | 8 ++++---- reference/classes/bsv.HDPrivateKey/index.html | 8 ++++---- reference/classes/bsv.HDPublicKey/index.html | 8 ++++---- reference/classes/bsv.MerkleBlock/index.html | 8 ++++---- reference/classes/bsv.Message/index.html | 8 ++++---- reference/classes/bsv.Mnemonic/index.html | 8 ++++---- reference/classes/bsv.Opcode/index.html | 8 ++++---- reference/classes/bsv.PrivateKey/index.html | 8 ++++---- reference/classes/bsv.PublicKey/index.html | 8 ++++---- reference/classes/bsv.Script-1/index.html | 8 ++++---- .../bsv.Script.Interpreter-1/index.html | 8 ++++---- .../classes/bsv.Transaction-1/index.html | 8 ++++---- .../bsv.Transaction.Input-1/index.html | 8 ++++---- .../index.html | 8 ++++---- .../classes/bsv.Transaction.Output/index.html | 8 ++++---- .../bsv.Transaction.Signature/index.html | 8 ++++---- .../bsv.Transaction.UnspentOutput/index.html | 8 ++++---- reference/classes/bsv.Unit/index.html | 8 ++++---- reference/classes/bsv.crypto.BN/index.html | 8 ++++---- reference/classes/bsv.crypto.Point/index.html | 8 ++++---- .../classes/bsv.crypto.Signature/index.html | 8 ++++---- .../classes/bsv.encoding.Base58/index.html | 8 ++++---- .../bsv.encoding.Base58Check/index.html | 8 ++++---- .../bsv.encoding.BufferReader/index.html | 8 ++++---- .../bsv.encoding.BufferWriter/index.html | 8 ++++---- .../classes/bsv.encoding.Varint/index.html | 8 ++++---- reference/enums/ProviderEvent/index.html | 8 ++++---- reference/enums/SignatureHashType/index.html | 8 ++++---- reference/index.html | 8 ++++---- reference/interfaces/Artifact/index.html | 8 ++++---- .../interfaces/ContractCalledEvent/index.html | 8 ++++---- .../interfaces/ContractTransaction/index.html | 8 ++++---- .../DefaultProviderOption/index.html | 8 ++++---- reference/interfaces/LogConfig/index.html | 8 ++++---- .../interfaces/MethodCallOptions/index.html | 8 ++++---- .../interfaces/MethodCallTxBuilder/index.html | 8 ++++---- .../MultiContractCallOptions/index.html | 8 ++++---- .../MultiContractTransaction/index.html | 8 ++++---- reference/interfaces/Outpoint/index.html | 8 ++++---- reference/interfaces/RequestConfig/index.html | 8 ++++---- reference/interfaces/ScriptContext/index.html | 8 ++++---- reference/interfaces/ScryptConfig/index.html | 8 ++++---- .../SignTransactionOptions/index.html | 8 ++++---- .../interfaces/SignatureRequest/index.html | 8 ++++---- .../interfaces/SignatureResponse/index.html | 8 ++++---- reference/interfaces/StatefulNext/index.html | 8 ++++---- reference/interfaces/SubScription/index.html | 8 ++++---- .../interfaces/SubscribeOptions/index.html | 8 ++++---- .../interfaces/TransactionResponse/index.html | 8 ++++---- reference/interfaces/TxContext/index.html | 8 ++++---- reference/interfaces/TxInputRef/index.html | 8 ++++---- reference/interfaces/TxOutputRef/index.html | 8 ++++---- .../interfaces/UtxoQueryOptions/index.html | 8 ++++---- reference/interfaces/VerifyResult/index.html | 8 ++++---- .../bsv.Networks.Network/index.html | 8 ++++---- .../interfaces/bsv.Script.IOpChunk/index.html | 8 ++++---- .../index.html | 8 ++++---- .../bsv.Transaction.IUnspentOutput/index.html | 8 ++++---- reference/interfaces/bsv.Util/index.html | 8 ++++---- .../interfaces/bsv.crypto.IOpts/index.html | 8 ++++---- reference/modules/bsv.Networks/index.html | 8 ++++---- .../modules/bsv.Script.Interpreter/index.html | 8 ++++---- reference/modules/bsv.Script/index.html | 8 ++++---- .../modules/bsv.Transaction.Input/index.html | 8 ++++---- .../bsv.Transaction.Sighash/index.html | 8 ++++---- reference/modules/bsv.Transaction/index.html | 8 ++++---- reference/modules/bsv.crypto.ECDSA/index.html | 8 ++++---- reference/modules/bsv.crypto.Hash/index.html | 8 ++++---- .../modules/bsv.crypto.Random/index.html | 8 ++++---- reference/modules/bsv.crypto/index.html | 8 ++++---- reference/modules/bsv.encoding/index.html | 8 ++++---- reference/modules/bsv/index.html | 8 ++++---- search/index.html | 8 ++++---- sitemap.xml | 2 +- tokens/ft/existing/index.html | 10 +++++----- .../index.html | 17 +++++++++++++++++ tokens/ft/index.html | 12 ++++++------ tokens/ft/multiple/index.html | 10 +++++----- tokens/index.html | 12 ++++++------ tokens/nft/existing/index.html | 12 ++++++------ tokens/nft/index.html | 12 ++++++------ .../index.html | 16 ---------------- tokens/tutorials/inscribe-image/index.html | 10 +++++----- tokens/tutorials/mint-bsv20-v1/index.html | 10 +++++----- tokens/tutorials/mint-bsv20-v2/index.html | 10 +++++----- tokens/tutorials/ordinal-lock/index.html | 10 +++++----- tutorials/auction/index.html | 8 ++++---- tutorials/escrow/index.html | 8 ++++---- tutorials/hello-world/index.html | 8 ++++---- tutorials/oracle/index.html | 8 ++++---- tutorials/tic-tac-toe/index.html | 8 ++++---- tutorials/voting/index.html | 8 ++++---- tutorials/zkp/index.html | 8 ++++---- 193 files changed, 676 insertions(+), 675 deletions(-) create mode 100644 assets/images/bsv20-plugin_1-2cf9b6b5ecc61831fa404b853bfb4128.png delete mode 100644 assets/images/bsv20-plugin_1-d24d5932ab342f141af354d71f3fb003.png delete mode 100644 assets/images/bsv20-plugin_2-be73ffaef8a60181e1d93fd73776aa24.png rename assets/images/{bsv20-plugin_3-dcfcde9712acfce3a180edd9bab1a4ef.png => bsv20-plugin_2-dcfcde9712acfce3a180edd9bab1a4ef.png} (100%) rename assets/js/{1a54843f.b54a1dc7.js => 1a54843f.ce4cd111.js} (58%) delete mode 100644 assets/js/56514474.7d9143e7.js delete mode 100644 assets/js/572d3f0b.313df141.js create mode 100644 assets/js/572d3f0b.52d8c6b0.js delete mode 100644 assets/js/6c2dbd7a.39c9ffff.js create mode 100644 assets/js/6c2dbd7a.df04a4c9.js delete mode 100644 assets/js/910cd6a4.32a18f12.js create mode 100644 assets/js/910cd6a4.b922dc52.js create mode 100644 assets/js/9277e5e6.6983506e.js delete mode 100644 assets/js/9277e5e6.8e6a9621.js create mode 100644 assets/js/935f2afb.142d5195.js delete mode 100644 assets/js/935f2afb.9e2103d2.js create mode 100644 assets/js/a5c7ba44.1d2881a9.js delete mode 100644 assets/js/a5c7ba44.2a8b4ad9.js delete mode 100644 assets/js/db37e9c8.418f2faf.js create mode 100644 assets/js/db37e9c8.75bfbb86.js delete mode 100644 assets/js/f7fb2808.b531e3eb.js create mode 100644 assets/js/f7fb2808.de138704.js create mode 100644 assets/js/f8498202.2d59e4f3.js delete mode 100644 assets/js/f8498202.fe249a7b.js create mode 100644 assets/js/ffd93812.9b337fa3.js create mode 100644 assets/js/main.115671e8.js rename assets/js/{main.50f7f6f2.js.LICENSE.txt => main.115671e8.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.50f7f6f2.js delete mode 100644 assets/js/runtime~main.06b239dc.js create mode 100644 assets/js/runtime~main.1c8bd3c3.js delete mode 100644 img/bsv20-plugin_3.png create mode 100644 tokens/ft/how-to-verify-a-BSV20-transaction/index.html delete mode 100644 tokens/tutorials/how-to-verify-a-BSV20-transaction/index.html diff --git a/404.html b/404.html index 75f1f29f0..f76f26ade 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | sCrypt - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/advanced/codeseparator/index.html b/advanced/codeseparator/index.html index b0167fb37..a8df2a17a 100644 --- a/advanced/codeseparator/index.html +++ b/advanced/codeseparator/index.html @@ -4,8 +4,8 @@ Use Code Separators | sCrypt - - + +
@@ -14,7 +14,7 @@ This is because conventionally, the signature covers the entire locking script, instead of a subscript with everything before OCS removed. We can achieve this by passing the index of insertCodeSeparator as a method call parameter, to specify which OP_CODESEPARATOR divides the locking script. Let's take a look at an example for the smart contract above:

// Create array of signature options, each for a separate public key.
const pubKeyOrAddrToSign: SignaturesOption = []
for (let i = 0; i < publicKeys.length; i++) {
const pubKey = publicKeys[i]
pubKeyOrAddrToSign.push({
pubKeyOrAddr: pubKey, // The public key for which a signature will be created.
csIdx: i // Index of the `insertCodeSeparator` call, starting from 0
// I.e., if csIdx = 1, then only the code starting from and including
// the second occurence of `insertCodeSeparator` will be signed.
})
}
const callContract = async () => await demo.methods.unlock(
(sigResps) => {
// Inside the signature responses we can observe,
// which instance of the `insertCodeSeparator` the signature
// takes into account:
console.log(sigResps)
return findSigs(sigResps, publicKeys)
},
publicKeys.map((publicKey) => PubKey(toHex(publicKey))) as FixedArray<PubKey, 3>,
{
pubKeyOrAddrToSign
} as MethodCallOptions<CodeSeparator>
)
expect(callContract()).not.throw
- - + + \ No newline at end of file diff --git a/advanced/how-to-add-a-provider/index.html b/advanced/how-to-add-a-provider/index.html index 84c8131b9..b480e2089 100644 --- a/advanced/how-to-add-a-provider/index.html +++ b/advanced/how-to-add-a-provider/index.html @@ -4,13 +4,13 @@ How to Add a Provider | sCrypt - - + +
Skip to main content

How to Add a Provider

In the contract testing section, we learned about the Provider class in sCrypt. This class serves as an abstraction of a Bitcoin node, allowing your application to communicate with the Bitcoin network.

sCrypt provides the following providers by default:

  • DummyProvider: A mockup provider intended for local testing. It does not connect to the Bitcoin blockchain and thus cannot send transactions.

  • DefaultProvider: The default provider is the safest and easiest way to begin developing on Bitcoin, and is also robust enough for use in production. It can be used in testnet as well as mainnet.

  • For a full list of providers, see here.

Implementation

Base Class Provider

To implement your own provider, you must extend the base class Provider. Here's the definition of this class:

/**
* A Provider is an abstraction of non-account-based operations on a blockchain and is generally not directly involved in signing transaction or data.
*/
export abstract class Provider extends EventEmitter {

constructor() {
super()
this._isProvider = true;
}

/**
* check if provider is ready
*/
abstract isConnected(): boolean;

/**
* Implement the connection provider, for example, verify the api key during the connection process.
* @returns a connected provider. Throw an exception if the connection fails.
*/
abstract connect(): Promise<this>;

/**
* update provider network
* @param network Network type to be updated
*/
abstract updateNetwork(network: bsv.Networks.Network): Promise<boolean>;

/**
* @returns The network this provider is connected to.
*/
abstract getNetwork(): Promise<bsv.Networks.Network>;

/**
* @returns The fee rate for sending transactions through this provider.
*/
abstract getFeePerKb(): Promise<number>;

/**
* Get a best guess of the fee for a transaction.
* @param tx A transaction object to estimate.
* @returns The estimated fee in satoshis.
*/
async getEstimateFee(tx: bsv.Transaction): Promise<number> {
const copy = new bsv.Transaction(tx.uncheckedSerialize());
// use a copy bcoz `feePerKb` resets all the signatures for inputs.
copy.feePerKb(await this.getFeePerKb());
return copy.getEstimateFee();
}

// Executions

/**
* Send a raw transaction hex string.
* @param rawTxHex The raw transaction hex string to send.
* @returns A promise which resolves to the hash of the transaction that has been sent.
*/
abstract sendRawTransaction(rawTxHex: string): Promise<TxHash>;

/**
* Send a transaction object.
* @param tx The transaction object to send.
* @returns A promise which resolves to the hash of the transaction that has been sent.
* @throws If there is a problem with the `tx` object during serialization.
*/
sendTransaction(tx: bsv.Transaction): Promise<TxHash> {
// TODO: fix tx.serialize issue
return this.sendRawTransaction(tx.serialize({ disableIsFullySigned: true }));
}

// Queries

/**
* Get a transaction from the network.
* @param txHash The hash value of the transaction.
* @returns The query result with the transaction information.
*/
abstract getTransaction(txHash: TxHash): Promise<TransactionResponse>

/**
* Get a list of the P2PKH UTXOs.
* @param address The address of the returned UTXOs belongs to.
* @param options The optional query conditions, see details in `UtxoQueryOptions`.
* @returns A promise which resolves to a list of UTXO for the query options.
*/
abstract listUnspent(address: AddressOption, options?: UtxoQueryOptions): Promise<UTXO[]>;

/**
* Get the balance of BSVs in satoshis for an address.
* @param address The query address.
* @returns A promise which resolves to the address balance status.
*/
abstract getBalance(address: AddressOption): Promise<{ confirmed: number, unconfirmed: number }>;

/**
* Get a list of UTXO for a certain contract instance.
* @param genesisTxHash The hash value of deployment transaction of the contract instance.
* @param outputIndex The output index of the deployment transaction of the contract instance.
* @returns A promise which resolves to a list of transaction UTXO.
*/
abstract getContractUTXOs(genesisTxHash: TxHash, outputIndex: number): Promise<UTXO[]>;

// Inspection

readonly _isProvider: boolean;

/**
* Check if an object is a `Provider`
* @param value The target object
* @returns Returns `true` if and only if `object` is a Provider.
*/
static isProvider(value: any): value is Provider {
return !!(value && value._isProvider);
}
}

It is recommended that your provider implements all abstract methods. For non-abstract methods, the default implementation is usually sufficient.

Example: WhatsonchainProvider

Let's walk through the process of implementing our own provider. In this example we'll implement a provider for WhatsOnChain (WoC).

  1. First let's implement the isConnected() and connect() functions. Because WoC doesn't need to maintan an open connection, not does it require any authentication by default, it's simply marked as connected by default. If your chosen provider does, here's probably the place to implement the connection logic.
isConnected(): boolean {
return true;
}

override async connect(): Promise<this> {
this.emit(ProviderEvent.Connected, true);
return Promise.resolve(this);
}
  1. Next, we'll implement the network functions. Here, your providers selected network can be toggled. WoC supports both the Bitcoin mainnet along with testnet, so we don't do further checking:
override async updateNetwork(network: bsv.Networks.Network): Promise<boolean> {
this._network = network;
this.emit(ProviderEvent.NetworkChange, network);
return Promise.resolve(true);
}

override async getNetwork(): Promise<bsv.Networks.Network> {
return Promise.resolve(this._network);
}

If your provider is only meant for the testnet, you could do something like this:

override async updateNetwork(network: bsv.Networks.Network): Promise<boolean> {
if (network != bsv.Networks.testnet) {
throw new Error('Network not supported.')
}
this._network = network;
this.emit(ProviderEvent.NetworkChange, network);
return Promise.resolve(true);
}
  1. Now let's set the transaction fee rate. In our example, we hard-code the value to be 50 satoshis per Kb:
override async getFeePerKb(): Promise<number> {
return Promise.resolve(50);
}
  1. Let's implement the function that will send the transaction data to our provider:
override async sendRawTransaction(rawTxHex: string): Promise<TxHash> {
// 1 second per KB
const size = Math.max(1, rawTxHex.length / 2 / 1024); //KB
const timeout = Math.max(10000, 1000 * size);
try {
const res = await superagent.post(
`${this.apiPrefix}/tx/raw`
)
.timeout({
response: timeout, // Wait 5 seconds for the server to start sending,
deadline: 60000, // but allow 1 minute for the file to finish loading.
})
.set('Content-Type', 'application/json')
.send({ txhex: rawTxHex })
return res.body;
} catch (error) {
if (error.response && error.response.text) {
throw new Error(`WhatsonchainProvider ERROR: ${error.response.text}`)
}
throw new Error(`WhatsonchainProvider ERROR: ${error.message}`)
}
}

In the function we use the superagent to send requests to WoC's HTTP endpoint. Check out their docs for a description of the endpoints they provide.

  1. Now we need to implement some queries. First let's implement the function to get a list of UTXO's for a certain address:
override async listUnspent(
address: AddressOption,
options?: UtxoQueryOptions
): Promise<UTXO[]> {

const res = await superagent.get(`${this.apiPrefix}/address/${address}/unspent`);
const utxos: UTXO[] =
res.body.map(item => ({
txId: item.tx_hash,
outputIndex: item.tx_pos,
satoshis: item.value,
script: bsv.Script.buildPublicKeyHashOut(address).toHex(),
}));

if (options?.minSatoshis && utxos.reduce((s, u) => s + u.satoshis, 0) < options.minSatoshis) {
throw new Error(`WhatsonchainProvider ERROR: not enough utxos for the request amount of ${options.minSatoshis} on address ${address.toString()}`);
}

return utxos;
}

Next, we'll make the getBalance function parse out the addresses balance from the UTXO's:

override async getBalance(
address?: AddressOption
): Promise<{ confirmed: number, unconfirmed: number }> {

return this.listUnspent(address, { minSatoshis: 0 }).then(utxos => {
return {
confirmed: utxos.reduce((acc, utxo) => {
acc += utxo.satoshis;
return acc;
}, 0),
unconfirmed: 0
}
})

}

We also implement the function to query the raw transaction using the transactions ID:

override async getTransaction(txHash: string): Promise<TransactionResponse> {
try {
const res = await superagent.get(`${this.apiPrefix}/tx/${txHash}/hex`);
return new bsv.Transaction(res.text)
} catch (e) {
throw new Error(`WhatsonchainProvider ERROR: failed fetching raw transaction data: ${e.message}`);
}
}

Lastly, if our provider doesn't support a certain query, we can simply throw an error by default:

override async getContractUTXOs(genesisTxHash: string, outputIndex?: number): Promise<UTXO[]> {
throw new Error("Method #getContractUTXOs not implemented in WhatsonchainProvider.");
}

Using the Provider

Providers are usually used by a Signer:

const provider = new WhatsonchainProvider(bsv.Networks.mainnet)
const signer = new TestWallet(privateKey, provider)

await contractInstance.connect(signer);

Here, the signer will use our WhatsonchainProvider for each Bitcoin network operation it needs. The next section describes signers and how we can implement a custom one.

- - + + \ No newline at end of file diff --git a/advanced/how-to-add-a-signer/index.html b/advanced/how-to-add-a-signer/index.html index 2ee91c8a0..271b74107 100644 --- a/advanced/how-to-add-a-signer/index.html +++ b/advanced/how-to-add-a-signer/index.html @@ -4,13 +4,13 @@ How to Add a Signer | sCrypt - - + +
Skip to main content

How to Add a Signer

As described in this section, a signer is an abstraction of private keys, which can be used to sign messages and transactions. A simple signer would be a single private key, while a complex signer is a wallet.

sCrypt provides the following signers by default:

  1. TestWallet : a simple wallet that can hold multiple private keys, with in-memory utxo management. Should only be used for testing.
  2. SensiletSigner: a signer powered by the popular smart contract wallet Sensilet. Can be used in production.
  3. PandaSigner: another signer powered by the popular web3 wallet Panda. Can be used in production.

Implementation

Base Class Signer

If you want to implement your own signer, you must inherit from the base class Signer.

/**
* A `Signer` is a class which in some way directly or indirectly has access to a private key, which can sign messages and transactions to authorize the network to perform operations.
*/
export abstract class Signer {

provider?: Provider;
readonly _isSigner: boolean;

constructor(provider?: Provider) {
this._isSigner = true;
this.provider = provider;
}

/**
* Connect a provider to `this`.
* @param provider The target provider.
* @returns
*/
abstract connect(provider: Provider): Promise<this>;

// Account

/**
*
* @returns A promise which resolves to the address to the default private key of the signer.
*/
abstract getDefaultAddress(): Promise<bsv.Address>;

/**
*
* @returns A promise which resolves to the public key of the default private key of the signer.
*/
abstract getDefaultPubKey(): Promise<bsv.PublicKey>;

/**
*
* @param address The request address, using the default address if omitted.
* @returns The public key result.
* @throws If the private key for the address does not belong this signer.
*/
abstract getPubKey(address?: AddressOption): Promise<bsv.PublicKey>;

// Signing

/**
* Sign a raw transaction hex string.
*
* @param rawTxHex The raw transaction hex to sign.
* @param options The options for signing, see the details of `SignTransactionOptions`.
* @returns A promise which resolves to the signed transaction hex string.
* @throws If any input of the transaction can not be signed properly.
*/
abstract signRawTransaction(rawTxHex: string, options: SignTransactionOptions): Promise<string>;

/**
* Sign a transaction object.
* @param tx The transaction object to sign.
* @param options The options for signing, see the details of `SignTransactionOptions`.
* @returns A promise which resolves to the signed transaction object.
*/
abstract signTransaction(tx: bsv.Transaction, options?: SignTransactionOptions): Promise<bsv.Transaction>;

/**
* Sign a message string.
* @param message The message to be signed.
* @param address The optional address whose private key will be used to sign `message`, using the default private key if omitted.
* @returns A promise which resolves to the signautre of the message.
*/
abstract signMessage(message: string, address?: AddressOption): Promise<string>;

/**
* Get the requested transaction signatures for the raw transaction.
* @param rawTxHex The raw transaction hex to get signatures from.
* @param sigRequests The signature requst informations, see details in `SignatureRequest`.
* @returns A promise which resolves to a list of `SignatureReponse` corresponding to `sigRequests`.
*/
abstract getSignatures(rawTxHex: string, sigRequests: SignatureRequest[]): Promise<SignatureResponse[]>;

/**
* Get the connected provider.
* @returns the connected provider.
* @throws if no provider is connected to `this`.
*/
get connectedProvider(): Provider {
if (!this.provider) {
throw new Error(`the provider of singer ${this.constructor.name} is not set yet!`);
}
if (!this.provider.isConnected()) {
throw new Error(`the provider of singer ${this.constructor.name} is not connected yet!`);
}

return this.provider;
}

/**
* Sign the transaction, then broadcast the transaction
* @param tx A transaction is signed and broadcast
* @param options The options for signing, see the details of `SignTransactionOptions`.
* @returns A promise which resolves to the transaction id.
*/
async signAndsendTransaction(tx: bsv.Transaction, options?: SignTransactionOptions): Promise<TransactionResponse> {
await tx.sealAsync();
const signedTx = await this.signTransaction(tx, options);
await this.connectedProvider.sendTransaction(signedTx);
return signedTx;
};

/**
* Get a list of the P2PKH UTXOs.
* @param address The address of the returned UTXOs belongs to.
* @param options The optional query conditions, see details in `UtxoQueryOptions`.
* @returns A promise which resolves to a list of UTXO for the query options.
*/
listUnspent(address: AddressOption, options?: UtxoQueryOptions): Promise<UTXO[]> {
// default implemention using provider, can be overrided.
return this.connectedProvider.listUnspent(address, options);
}

/**
* Get the balance of BSVs in satoshis for an address.
* @param address The query address.
* @returns A promise which resolves to the address balance status.
*/
getBalance(address?: AddressOption): Promise<{ confirmed: number, unconfirmed: number }> {
// default implemention using provider, can be overrided.
return this.connectedProvider.getBalance(address);
}

// Inspection
/**
* Check if an object is a `Signer`
* @param value The target object
* @returns Returns `true` if and only if `object` is a Provider.
*/
static isSigner(value: any): value is Signer {
return !!(value && value._isSigner);
}

}

It is recommended that your signer implements all abstract methods. For non-abstract methods, the default implementation is usually sufficient.

Example: SensiletSigner

Next, we use the Sensilet wallet as an example to show how to implement a SensiletSigner.

  1. In the connect method, you usually attempt to connect to a provider and save it:
override async connect(provider: Provider): Promise<this> {
// we should make sure sensilet is connected before we connect a provider.
const isSensiletConnected = await this.isSensiletConnected();

if(!isSensiletConnected) {
Promise.reject(new Error('Sensilet is not connected!'))
}

if(!provider.isConnected()) {
// connect the provider
await provider.connect();
}

this.provider = provider;
return this;
}
  1. Returns the address to the default private key of the wallet in getDefaultAddress:
/**
* Get an object that can directly interact with the Sensilet wallet,
* if there is no connection with the wallet, it will request to establish a connection.
* @returns SensiletWalletAPI
*/
async getConnectedTarget(): Promise<SensiletWalletAPI> {

const isSensiletConnected = await this.isSensiletConnected();
if (!isSensiletConnected) {
// trigger connecting to sensilet account when it's not connected.
try {
const addr = await this._target.requestAccount();
this._address = bsv.Address.fromString(addr);
} catch (e) {
throw new Error('Sensilet requestAccount failed')
}
}
return this.getSensilet();
}

override async getDefaultAddress(): Promise<bsv.Address> {
//
const sensilet = await this.getConnectedTarget();
const address = await sensilet.getAddress();
return bsv.Address.fromString(address);
}
  1. Returns the public key to the default private key of the wallet in getDefaultPubKey:
override async getDefaultPubKey(): Promise<PublicKey> {
const sensilet = await this.getConnectedTarget();
const pubKey = await sensilet.getPublicKey();
return Promise.resolve(new bsv.PublicKey(pubKey));
}
  1. Since Sensilet is a single-address wallet, we simply ignore the getPubKey method:
override async getPubKey(address: AddressOption): Promise<PublicKey> {
throw new Error(`Method ${this.constructor.name}#getPubKey not implemented.`);
}
  1. Both signTransaction and signRawTransaction sign the transaction, but their parameters are different. signRawTransaction converts the parameters and delegates the implementation of the signing to signTransaction.

The following are types used in these two functions:


/**
* `SignatureRequest` contains required informations for a signer to sign a certain input of a transaction.
*/
export interface SignatureRequest {
/** The index of input to sign. */
inputIndex: number;
/** The previous output satoshis value of the input to spend. */
satoshis: number;
/** The address(es) of corresponding private key(s) required to sign the input. */
address: AddressesOption;
/** The previous output script of input, default value is a P2PKH locking script for the `address` if omitted. */
scriptHex?: string;
/** The sighash type, default value is `SIGHASH_ALL | SIGHASH_FORKID` if omitted. */
sigHashType?: number;
/** The extra information for signing. */
data?: unknown;
}

/**
* `SignatureResponse` contains the signing result corresponding to a `SignatureRequest`.
*/
export interface SignatureResponse {
/** The index of input. */
inputIndex: number;
/** The signature.*/
sig: string;
/** The public key bound with the `sig`. */
publicKey: string;
/** The sighash type, default value is `SIGHASH_ALL | SIGHASH_FORKID` if omitted. */
sigHashType: number;
}

/**
* `SignTransactionOptions` is the options can be provided when signing a transaction.
*/
export interface SignTransactionOptions {
/** The `SignatureRequest` for the some inputs of the transaction. */
sigRequests?: SignatureRequest[];
/** The address(es) whose corresponding private key(s) should be used to sign the tx. */
address?: AddressesOption;
}

signTransaction will convert the above parameter types to the parameter types required by the sensilet api. And call the sensilet api to complete the signature, which is implemented in getSignatures function.

override async signRawTransaction(rawTxHex: string, options: SignTransactionOptions): Promise<string> {
// convert `rawTxHex` to a transation object
const sigReqsByInputIndex: Map<number, SignatureRequest> = (options?.sigRequests || []).reduce((m, sigReq) => { m.set(sigReq.inputIndex, sigReq); return m; }, new Map());
const tx = new bsv.Transaction(rawTxHex);
tx.inputs.forEach((_, inputIndex) => {
const sigReq = sigReqsByInputIndex.get(inputIndex);
if (!sigReq) {
throw new Error(`\`SignatureRequest\` info should be provided for the input ${inputIndex} to call #signRawTransaction`)
}
const script = sigReq.scriptHex ? new bsv.Script(sigReq.scriptHex) : bsv.Script.buildPublicKeyHashOut(sigReq.address.toString());
// set ref output of the input
tx.inputs[inputIndex].output = new bsv.Transaction.Output({
script,
satoshis: sigReq.satoshis
})
});

const signedTx = await this.signTransaction(tx, options);
return signedTx.toString();
}

override async signTransaction(tx: Transaction, options?: SignTransactionOptions): Promise<Transaction> {

const network = await this.getNetwork();
// Generate default `sigRequests` if not passed by user
const sigRequests: SignatureRequest[] = options?.sigRequests?.length ? options.sigRequests :

tx.inputs.map((input, inputIndex) => {
const useAddressToSign = options && options.address ? options.address :
input.output?.script.isPublicKeyHashOut()
? input.output.script.toAddress(network)
: this._address;

return {
inputIndex,
satoshis: input.output?.satoshis,
address: useAddressToSign,
scriptHex: input.output?.script?.toHex(),
sigHashType: DEFAULT_SIGHASH_TYPE,
}
})

const sigResponses = await this.getSignatures(tx.toString(), sigRequests);

// Set the acquired signature as an unlocking script for the transaction
tx.inputs.forEach((input, inputIndex) => {
const sigResp = sigResponses.find(sigResp => sigResp.inputIndex === inputIndex);
if (sigResp && input.output?.script.isPublicKeyHashOut()) {
var unlockingScript = new bsv.Script("")
.add(Buffer.from(sigResp.sig, 'hex'))
.add(Buffer.from(sigResp.publicKey, 'hex'));

input.setScript(unlockingScript)
}
})

return tx;
}

/**
* Get signatures with sensilet api
* @param rawTxHex a transation raw hex
* @param sigRequests a `SignatureRequest` array for the some inputs of the transaction.
* @returns a `SignatureResponse` array
*/
async getSignatures(rawTxHex: string, sigRequests: SignatureRequest[]): Promise<SignatureResponse[]> {
const network = await this.getNetwork()
// convert `sigRequests` to the parameter type required by sensilet `signTx` api
const inputInfos = sigRequests.flatMap((sigReq) => {
const addresses = parseAddresses(sigReq.address, network);
return addresses.map(address => {
return {
txHex: rawTxHex,
inputIndex: sigReq.inputIndex,
scriptHex: sigReq.scriptHex || bsv.Script.buildPublicKeyHashOut(address).toHex(),
satoshis: sigReq.satoshis,
sigtype: sigReq.sigHashType || DEFAULT_SIGHASH_TYPE,
address: address.toString()
}
});
});

const sensilet = await this.getConnectedTarget();
// call sensilet `signTx` api to sign transaction
// https://doc.sensilet.com/guide/sensilet-api.html#signtx
const sigResults = await sensilet.signTx({
list: inputInfos
});

return inputInfos.map((inputInfo, idx) => {
return {
inputIndex: inputInfo.inputIndex,
sig: sigResults.sigList[idx].sig,
publicKey: sigResults.sigList[idx].publicKey,
sigHashType: sigRequests[idx].sigHashType || DEFAULT_SIGHASH_TYPE
}
})
}
  1. Sensilet supports signing messages, if your wallet does not support it, you can throw an exception in the signMessage function:
override async signMessage(message: string, address?: AddressOption): Promise<string> {
if (address) {
throw new Error(`${this.constructor.name}#signMessge with \`address\` param is not supported!`);
}
const sensilet = await this.getConnectedTarget();
return sensilet.signMessage(message);
}

So far, we have implemented all abstract methods. The remaining non-abstract methods can reuse the default implementation, that is, delegating to the connected provider. If you have a customized implementation, you can override them. For example, we can use the Sensilet api getBsvBalance to obtain the balance of an address.

override getBalance(address?: AddressOption): Promise<{ confirmed: number, unconfirmed: number }> {
if(address) {
return this.connectedProvider.getBalance(address);
}
return this.getConnectedTarget().then(target => target.getBsvBalance()).then(r => r.balance)
}

Now we have implemented SensiletSigner. The full code is here.

Use your signer

Just connect your signer to a smart contract instance like any other signers:

// declare your signer
const your_signer = new YourSigner(new DefaultProvider());
// connect the signer to the contract instance
await instance.connect(your_signer);

Here is another user-customized signer.

- - + + \ No newline at end of file diff --git a/advanced/how-to-build-an-oracle-service/index.html b/advanced/how-to-build-an-oracle-service/index.html index 848ed84bc..df2419221 100644 --- a/advanced/how-to-build-an-oracle-service/index.html +++ b/advanced/how-to-build-an-oracle-service/index.html @@ -4,13 +4,13 @@ How to Build an Oracle Service | sCrypt - - + +
Skip to main content

How to Build an Oracle Service

As described in this tutorial, a blockchain oracle is a third-party service or agent that provides external data to a blockchain network. It is a bridge between the blockchain and the external world, enabling smart contracts to access, verify, and incorporate data from outside the blockchain. Specifically, the oracle service provides external data along with a Rabin signature of the data, and the smart contract uses this data and verifies the signature before using it.

Rabin signature

Rabin signature is an alternative digital signature algorithm (DSA) to ECDSA used in Bitcoin. It has a beautiful asymmetry that signature generation is computationally expensive, but signature verification is cheap. Therefore, we choose to use Rabin signature to ensure the integrity of the external data provided by the oracle. When an oracle provides data, it will sign the data with its private key off chain. When the data is used by smart contracts, its signature is verified on chain, which is cheap. We do not use the builtin checkSig opcode here because it can only check signature against the transaction data, not arbitrary data.

In this section, we will introduce how to build your own oracle service. For the backend framework, we use NestJS to illustrate, but you are free to use any familiar framework to build the service. For the Rabin signature part, we have already implemented a library rabinsig, which can be imported and used directly.

The full complete code of this demo can be found in our GitHub repo. You can also refer to the code of WitnessOnChain, an open-sourced oracle service, for more details.

1. Scaffold the project

Run the following command to create a NestJS project.

npx @nestjs/cli new oracle-demo

Then install dependencies.

cd oracle-demo
npm install
npm install rabinsig

2. Generate signatures

An oracle may provide multiple pieces of data, each requiring a signature. We implement a common service, so that it can be reused and called in different places.

The class SigService will load and initialize a private key from ENVs. We add a method sign in this class, which takes one parameter dataBuffer representing the binary data to be signed.

import { Rabin, serialize } from 'rabinsig';

export class SigService {
private rabin = new Rabin();
// load and init Rabin private key from ENVs
...
sign(dataBuffer: Buffer) {
const dataHex = dataBuffer.toString('hex');
const sig = this.rabin.sign(dataHex, this.privKey);
return { data: dataHex, signature: serialize(sig) };
}
}

3. Add APIs

Add a timestamp API

Too see how it works, we implement a simple timestamp API. We first get the current timestamp, then convert it to a 4 bytes Buffer in little-endian, and sign the structured data.

export function getTimestamp() {
return Math.trunc(Date.now() / 1000);
}

@Get('/timestamp')
getTimestamp() {
const timestamp = getTimestamp();
const data = Buffer.concat([
toBufferLE(V1Controller.MARKER.TIMESTAMP, 1), // api marker, 1 byte
toBufferLE(timestamp, 4), // timestamp, 4 bytes LE
]);
const sigResponse = this.rabinService.sign(data);
return { timestamp, ...sigResponse };
}

The response of this API is as follows.

{
"timestamp":1700596603,
"data":"017b0b5d65",
"signature":{
"s":"4fe8bbcdf26...",
"padding":"0000"
}
}

For the smart contract, it is only necessary to focus on two parts: data and signature. It should only use and trust data when the signature verification passes.

API Marker

Note that the first byte in data is an identification marker, which not only indicates how the signed data is serialized, but also has a more important role in distinguishing data from different interfaces.

Without this marker, the smart contract cannot distinguish which interface the passed data actually comes from. When oracle has two interfaces that return signed data of the same length, the attacker can pass the data returned from another interfaces to the contract, potentially causing issues. Therefore, different APIs should use different marker values.

Add a coin price API

Here we use the OKX API to obtain a currency's price.

First, wrap the OKX API. Note how the method handles the value of price. Because it is inconvenient for the smart contract to handle float numbers, a variable decimal is introduced to convert the price value into an integer.

/**
* @param tradingPair e.g. `BSV-USDT`, `BTC-USDC`, etc
* @param decimal decimal of the returned price
* @returns an integer representing the price of the trading pair, e.g. return 1234 with decimal 2 means 12.34
*/
async getOkxPrice(tradingPair: string, decimal: number) {
return axios
.get(`https://www.okx.com/api/v5/market/ticker?instId=${tradingPair}`)
.then((r) => Math.trunc(r.data.data[0].last * 10 ** decimal));
}

Then implement the oracle API following the order of obtaining data, serializing it, and signing it.

@Get('price/:base/:query')
async getPrice(@Param('base') base: string, @Param('query') query: string) {
// obtain data
const tradingPair = `${query.toUpperCase()}-${base.toUpperCase()}`;
const decimal = 4;
const price = await this.v1Service.getOkxPrice(tradingPair, decimal);
// serialize data
const timestamp = getTimestamp();
const data = Buffer.concat([
toBufferLE(V1Controller.MARKER.PRICE, 1), // api marker, 1 byte
toBufferLE(timestamp, 4), // timestamp, 4 bytes LE
toBufferLE(price, 8), // price, 8 bytes LE
toBufferLE(decimal, 1), // decimal, 1 byte
Buffer.from(tradingPair), // trading pair
]);
// sign data
const sigResponse = this.rabinService.sign(data);
return { timestamp, tradingPair, price, decimal, ...sigResponse };
}

Add more APIs

According to the previous introduction, you can add more APIs to your oracle as needed, such as obtaining BSV chain info, etc., which will not be covered here.

4. Use oralce data in a smart contract

In this tutorial, we introduce how to verify and use oracle data in smart contracts.

To verify signatures in smart contracts, we need to install the scrypt-ts-lib library.

npm install scrypt-ts-lib

Then add the contract under folder src/contracts. Here we also use the PriceBet contract. You can refer to file priceBet.e2e-spec.ts for a complete test code.

- - + + \ No newline at end of file diff --git a/advanced/how-to-call-multiple-contracts/index.html b/advanced/how-to-call-multiple-contracts/index.html index 65c975222..8d5bb3042 100644 --- a/advanced/how-to-call-multiple-contracts/index.html +++ b/advanced/how-to-call-multiple-contracts/index.html @@ -4,13 +4,13 @@ Call Multiple Contracts in a Single Tx | sCrypt - - + +
Skip to main content

Call Multiple Contracts in a Single Tx

Up to now, we have only shown how to call one smart contract in a transaction. That is, only one input of the tx spends a smart contract UTXO, and the other inputs, if any, spend Pay-to-Public-Key-Hash (P2PKH) UTXOs, which are generally NOT regarded as smart contracts.

There are cases where it is desirable to spend multiple smart contract UTXOs in different inputs of a tx.

The main differences from calling a single contract are:

  1. Set multiContractCall = true in MethodCallOptions
  2. Each call may only return a partial/incomplete transaction, instead of a complete transaction
  3. A partial tx has to be passed as ContractTransaction in MethodCallOptions in subsequent calls
  4. Finally invoke SmartContract.multiContractCall(partialContractTx: ContractTransaction, signer: Signer) to sign and broadcast the complete transaction

The following is an example code of calling two contracts at the same time:

import { Counter } from '../../src/contracts/counter'
import { getDefaultSigner } from '../utils/helper'
import { HashPuzzle } from '../../src/contracts/hashPuzzle'

async function main() {
await Counter.loadArtifact()
await HashPuzzle.loadArtifact()

const signer = getDefaultSigner()
let counter = new Counter(1n)

// connect to a signer
await counter.connect(signer)

// contract deployment
const deployTx = await counter.deploy(1)
console.log('Counter contract deployed: ', deployTx.id)

counter.bindTxBuilder(
'incrementOnChain',
(
current: Counter,
options: MethodCallOptions<Counter>,
...args: any
): Promise<ContractTransaction> => {
// create the next instance from the current
const nextInstance = current.next()
// apply updates on the next instance locally
nextInstance.count++

const tx = new bsv.Transaction()
tx.addInput(current.buildContractInput()).addOutput(
new bsv.Transaction.Output({
script: nextInstance.lockingScript,
satoshis: current.balance,
})
)

return Promise.resolve({
tx: tx,
atInputIndex: 0,
nexts: [
{
instance: nextInstance,
balance: current.balance,
atOutputIndex: 0,
},
],
})
}
)

const plainText = 'abc'
const byteString = toByteString(plainText, true)
const sha256Data = sha256(byteString)

const hashPuzzle = new HashPuzzle(sha256Data)

// connect to a signer
await hashPuzzle.connect(signer)

const deployTx1 = await hashPuzzle.deploy(1)
console.log('HashPuzzle contract deployed: ', deployTx1.id)

hashPuzzle.bindTxBuilder(
'unlock',
(
current: HashPuzzle,
options: MethodCallOptions<HashPuzzle>,
...args: any
): Promise<ContractTransaction> => {
if (options.partialContractTx) {
const unSignedTx = options.partialContractTx.tx
unSignedTx.addInput(
current.buildContractInput()
)

return Promise.resolve({
tx: unSignedTx,
atInputIndex: 1,
nexts: [],
})
}

throw new Error('no partialContractTx found')
}
)

const partialTx = await counter.methods.incrementOnChain({
multiContractCall: true,
} as MethodCallOptions<Counter>)

const finalTx = await hashPuzzle.methods.unlock(
byteString,
{
multiContractCall: true,
partialContractTx: partialTx,
} as MethodCallOptions<HashPuzzle>
)

const { tx: callTx, nexts } = await SmartContract.multiContractCall(
finalTx,
signer
)

console.log('Counter, HashPuzzle contract `unlock` called: ', callTx.id)

// hashPuzzle has terminated, but counter can still be called
counter = nexts[0].instance
}

await main()

note
  • You must bind a transaction builder to each contract instance, since the default only spends a single contract UTXO.
  • If the called contracts need signatures from different private keys to be called, the signer passed to multiContractCall must have all private keys.
- - + + \ No newline at end of file diff --git a/advanced/how-to-debug-scriptcontext/index.html b/advanced/how-to-debug-scriptcontext/index.html index 66ff4dbd9..650b29f4c 100644 --- a/advanced/how-to-debug-scriptcontext/index.html +++ b/advanced/how-to-debug-scriptcontext/index.html @@ -4,13 +4,13 @@ How to Debug ScriptContext Failure | sCrypt - - + +
Skip to main content

How to Debug ScriptContext Failure

ScriptContext enables the logic of the contract to be executed correctly according to the agreement, and the state of the contract to be propagated correctly.

When it runs incorrectly, you need to master the following methods to locate the error more efficiently.

hashOutputs assertion failed

The hashOutputs field of ScriptContext is the double SHA256 of the serialization of all output amount (8-byte little endian) with scriptPubKey. Through it, we can agree on how the outputs of the transaction calling the contract should be constructed.

If the output of the transaction is not constructed as required by the contract, then the hashOutputs of ScriptContext field will not match the the double SHA256 of the outputs produced in the code when the contract runs. The following assertion will fail:

assert(this.ctx.hashOutputs == hash256(outputs), 'hashOutputs mismatch')

We all know that if the preimage of the hash is inconsistent, the hash value will not match. When an assertion failure occurs, we can only see two mismatched hash values, and cannot visually see the difference between the preimages of the two hash values (that is, the outputs in the contract and the outputs of the transaction).

A function diffOutputs in DebugFunctions Interface is provided to directly compare the difference between the outputs argument and all the outputs of the transaction bound by this.to, which are serialized and hashed to produce the hashOutputs field of ScriptContext.

Just call this.debug.diffOutputs(outputs) in the contract:

this.debug.diffOutputs(outputs) // diff and print the comparison result
assert(this.ctx.hashOutputs == hash256(outputs), 'hashOutputs mismatch')

and you will see the comparison result:

diffoutputs

Through the printed comparison results, we can intuitively see that the number of satoshis included in the output calculated in the contract is different from the number of satoshis included in the output actually added when constructing the transaction. Now, we have found the source of the error.

- - + + \ No newline at end of file diff --git a/advanced/how-to-integrate-scrypt-service/index.html b/advanced/how-to-integrate-scrypt-service/index.html index d6c3c6933..fe1c34069 100644 --- a/advanced/how-to-integrate-scrypt-service/index.html +++ b/advanced/how-to-integrate-scrypt-service/index.html @@ -4,13 +4,13 @@ How to Integrate sCrypt Service | sCrypt - - + +
Skip to main content

How to Integrate sCrypt Service

Before interacting with a sCrypt contract, we must create a contract instance representing the latest state of the contract on chain. Such an instance can be created by calling the fromTx method. However, this means your application needs to track and record all contract-related transactions, especially for a stateful contract.

An easier alternative is to leverage sCrypt infrastructure service, which tracks such transactions, so you can focus on your application logic.

Get Your API Key

Step 1: Create Your Free Account

Go to the sCrypt homepage to create your free account.

Step 2: Get API Key

Sign in and click on the copy icon to copy your API Key.

Integration

Once you have an API key, you can easily integrate sCrypt service into your app by following these simple steps.

Step 1: Initialize Client

You can pass the API key, along with network, to the Scrypt.init function to initialize an sCrypt client in your app.

import { Scrypt, bsv } from 'scrypt-ts'

Scrypt.init({
apiKey: 'YOUR_API_KEY',
network: bsv.Networks.testnet,
})

Step 2: Connect ScryptProvider with your signer

Connect signer to ScryptProvider, the required provider to use sCrypt service.

const signer = new TestWallet(myPrivateKey)
await signer.connect(new ScryptProvider())

Step 3: Get Contract ID

Each contract is uniquely identified by the transaction that deploy it and the output it is in, which we regard as its ID.

const counter = new Counter(0n)
// connect signer
await counter.connect(signer)

const balance = 1
const deployTx = await counter.deploy(balance)
console.log('contract Counter deployed: ', deployTx.id)

const contractId = {
/** The deployment transaction id */
txId: deployTx.id,
/** The output index */
outputIndex: 0,
}

You can usually get the ID of a contract from its creator, who publicizes it so others can interact with it.

Step 4: Get Contract Instance

Once you have the contract ID, you can easily create a contract instance as follows.

const currentInstance = await Scrypt.contractApi.getLatestInstance(
Counter,
contractId
)

// connect signer
await currentInstance.connect(signer)

For a stateless contract, the instance points to the deployment tx; for a stateful one, it points to the latest tip in a chain of txs, which sCrypt service tracks automatically.

Interact with the Contract

Once you have the instance after following the steps above, you can easily read from the contract, write to it, and listen to it.

Read

You read an instance's properties using the dot operator, like any other object.

// read @prop count
console.log(counter.count)
note

Reading does NOT broadcast a transaction to the blockchain.

Write

To update a contract instance, you call its public method as before, which writes to the blockchain by broadcasting a transaction.

// call the method of current instance to apply the updates on chain
const { tx } = await currentInstance.methods.incrementOnChain()

console.log(`Counter contract called, tx: ${tx.id}`)

Listen to Events

Often, your app needs to be notified when a contract gets called and updated. It is essential to be able to listen to such events in real time that can alert your app whenever something relevant occurs on chain. For example, in your front-end, you can refresh the web page to show the user the latest state of a contract, upon event notifications.

With the sCrypt service, you can easily subscribe to a contract's events by its contract ID, using ethier websockets (client side) or webhooks (server side) per your requirements.

Websockets

To use websockets to listen for contract events, just use the Scrypt.contractApi.subscribe dedicated API in our client SDK, which takes two parameters:

  1. options: SubscribeOptions<T>: it includes a contract class, a contract ID, and a optional list of method names monitored.
interface SubscribeOptions<T> {
clazz: new (...args: any) => T;
id: ContractId;
methodNames?: Array<string>;
}

If methodNames is set, you will be notified only when public functions in the list are called. Otherwise, you will be notified when ANY public function is called.

  1. callback: (event: ContractCalledEvent<T>) => void: a callback funciton upon receiving notifications.

ContractCalledEvent<T> contains relevant information on how the contract is called:

  • methodName: string, which public method is called

  • args: SupportedParamType[], arguments the public method is called with

  • tx: bsv.Transaction, transaction where contract is called from

  • nexts: Array[T], includes the new contract instances created by this call. If a stateful contract is called, nexts contains the contract instances containing the new state generated by this call. You can read the latest state from the new contract instance to, e.g., display the new state to users. If a stateless contract is called, nexts is empty.

Below is an example of listening to events when incrementOnChain method is called.

const subscription = Scrypt.contractApi.subscribe({
clazz: Counter, // contract class
id: contractId, // contract id
methodNames: ['incrementOnChain']
}, (event: ContractCalledEvent<Counter>) => {
// callback when receiving a notification
console.log(`${event.methodName} is called with args: ${event.args}`)
});
note

When using this API, you do not need any backend services of your own; the code usually runs in your users' browsers. There is a security issue because of exposure of your API key. So it’s highly recommended that you just use it in demo projects for trusted users.

Webhooks

There is an alternative for listening to contract events in a more secure and effective way. Just use our webhook service to push event data to your own backend service.

Webhook Management

First, you need to create a valid webhook in our service before trying to receive any event data. You can manage webhooks on the webhooks page of our dashboard.

To create a valid webhook, you need to provide the following information:

  1. Webhook URL

This is the specified URL of your backend service for receving the associated event data.

  1. Network

A webhook can only receive events from a single network. It must be either testnet or mainnet.

  1. Contract ID

A webhook must listen to a certain contract ID. In other words, it will be notified only when this contract is called on chain.

Please note that the contract can only be listened to if it is deployed and called using our SDK or services.

  1. Contract Artifact

A contract artifact is also needed to decode call data on chain. You can usually find it in the artifact folder of your sCrypt project. It is required if the contract ID was newly registered to our service. It becomes optional if it has been registered before. Also, you can only update artifacts registered first by you.

Besides adding webhooks in dashboard, you can add them programmatically.


const fs = require('fs').promises;
const util = require('util');

// Async function to read a JSON file
async function readArtifactFromFile(filePath) {
try {
// Read the file using fs.promises.readFile and await for the result
const data = await fs.readFile(filePath, 'utf8');

// Parse the JSON data
const jsonData = JSON.parse(data);

// Return the parsed JSON object
return jsonData;
} catch (error) {
// Handle errors, e.g., file not found
throw new Error('Error reading JSON file: ' + error.message);
}
}


async function main() {
try {
// Provide the path to your JSON artifact file
const artifactFilePath = 'path_to_your_json_file.json';

// Fetch the JSON artifact data from the file
const artifact = await readArtifactFromFile(artifactFilePath);

const apiKey = '[Your API key]';
const webhookUrl = 'https://api.scrypt.io/webhooks/create'; // Use 'https://testnet-api.scrypt.io' for testnet

const requestBody = {
url: 'http://127.0.0.1:3005/api/webhooks/test_notify',
contractId: {
txId: "1fa604263d2a16f6292f788e391b83ea7037fb9eb2ed0055ab5802ab2d090ef5",
outputIndex: 0
},
desc: "test webhook",
artifact: artifact // Use the fetched artifact data here
};

const response = await fetch(webhookUrl, {
method: 'POST',
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${apiKey}`
},
body: JSON.stringify(requestBody)
});

if (!response.ok) {
throw new Error('Failed to create webhook');
}

const responseData = await response.json();
console.log(responseData);
} catch (error) {
console.error('Error:', error);
}
}

// Call the main function to start the process
main();

Webhook Request and Response

When a contract is called on chain, we will push event data through a http POST request with a body like this to your webhook URL:

{
"webhookId": "wh_EyY2zEnogmK9e57Q",
"createdAt": "2023-07-24T04:00:32.246Z",
"events": [{
"eventType": "utxoSpent",
"spentUtxo": {
"txId": "966a3fb5d46c673ceaef2a476e828b75a6e6eae28839b36c0ff42cddc7a28f5b",
"outputIndex": 0
},
"contractId": {
"txId": "966a3fb5d46c673ceaef2a476e828b75a6e6eae28839b36c0ff42cddc7a28f5b",
"outputIndex": 0
},
"spentBy": {
"txId": "c359669cef68509d8357741e57bdff29f731c28643596d2c49f12dcd633e89f7",
"inputIndex": 0
},
"createdInSpentTxOutputs": [
0
],
"id": "evt_6XnqNUIhoZJ6SaEg5sDGcC",
"methodName": "vote",
"args": [{
"name": "name",
"type": "bytes",
"value": "6950686f6e65"
}]
}]
}

The request details the events data:

  • eventType: The type name of the event. Currently only utxoSpent available.

  • spentUtxo: The specified utxo of the contract spent in the event.

  • contractId: The contract ID that the event belongs to.

  • spentBy: The specified input index of the contract call tx from which the event comes.

  • createdInSpentTxOutputs: Newly generated contract utxo(s) in the spent tx if it's a stateful contract.

  • id: Unique event id.

  • methodName: The method name of the contract call of the event.

  • args: The argument list of the contract call of the event.

You need to return a HTTP code of 200 for a successful acknowledgement. We will automatically pause the webhook after several unsuccessful deliveries. You need to manually reactivate it on the webhooks page before we start pushing notifications to it again. For a single event, there might be more than one notification pushed to the webhook, so make sure you have this situation handled.

Webhook Security

To keep your webhook requests secure, we add a signature header x-scrypt-signature for each request by signing the request data with your own API key using the HMAC-SHA256 algorithm. You can verify it if you want. It can be generated using code like this:

const signature = crypto.createHmac('sha256', apiKey).update(JSON.stringify(body)).digest('hex');
Webhook Limit

The number of webhooks that each user can create is limited. The following is the limit on the number of webhooks that users of different plans can create.

Planlimt on testnetlimt on mainnet
Starter1010
Pro100100
Business200200
Enterprise300300
- - + + \ No newline at end of file diff --git a/advanced/how-to-replay-instance/index.html b/advanced/how-to-replay-instance/index.html index ee4ec634d..29f886fcf 100644 --- a/advanced/how-to-replay-instance/index.html +++ b/advanced/how-to-replay-instance/index.html @@ -4,13 +4,13 @@ How to Replay a Contract Instance to the Latest State | sCrypt - - + +
Skip to main content

How to Replay a Contract Instance to the Latest State

Using sCrypt Service and sCrypt client, we can effortlessly create a contract instance reflecting the latest state as follows:

const currentInstance = await Scrypt.contractApi.getLatestInstance(
Counter,
contractId
)

However, this method is ineffective for smart contracts with states of type HashedMap or HashedSet. This is because each instance only contains hashed values, not the original ones.

In this section, we'll use contract CrowdfundReplay located at src/contracts/crowdfundReplay.ts as a reference to explain how to replay these contract instances to their latest states.

This crowdfund contract features a HashedMap donators that records the donors' public key and their respective donation satoshi amounts.

export type Donators = HashedMap<PubKey, bigint>

export class CrowdfundReplay extends SmartContract {

@prop(true)
donators: Donators

...
}

This contract has three public methods:

  • donate adds an entry to the HashedMap.
  • refund removes a specific donator from the map.
  • collect destroys the contract without updating any stateful properties.
export type Donators = HashedMap<PubKey, bigint>

export class CrowdfundReplay extends SmartContract {
...

@method()
public donate(donator: PubKey, amount: bigint) {
...
assert(!this.donators.has(donator), 'donator already exists')
this.donators.set(donator, amount)
...
}

@method()
public refund(donator: PubKey, amount: bigint, sig: Sig) {
...
assert(this.donators.canGet(donator, amount), 'not donated before')
assert(this.donators.delete(donator), 'failed to remove donator')
...
}

@method()
public collect(sig: Sig) {
...
}
}

To replay the contract instance to the latest states, follow these three steps:

Step 1. Offchain Helper Functions

Initially, add helper functions that update stateful properties in a manner identical to the public methods.

These functions are defined within the offchainUpdates object:

class CrowdfundReplay extends SmartContract {

...

offchainUpdates: OffchainUpdates<CrowdfundReplay> = {
'donate': (next: CrowdfundReplay, donator: PubKey, amount: bigint) => {
next.donators.set(donator, amount)
},
'refund': (next: CrowdfundReplay, donator: PubKey) => {
next.donators.delete(donator)
},
}

...
}
note

The object keys must match the public method names precisely.

In our example, we only need two helper functions since the collect method doesn't alter any stateful properties.

Step 2. Create Instance from Deployment Tx

Retrieve the deployment transaction using the contract ID. Subsequently, recover the contract instance from it.

// Recover instance from the deployment transaction
const tx = await provider.getTx(contractId.txId)
const instance = CrowdfundReplay.fromTx(
tx,
contractId.outputIndex,
{
donators: new HashedMap<PubKey, bigint>(),
}
)

Note: For more details on the workings of the fromTx() and getTransaction() functions, refer to the documentation here.

Step 3. Replay Instance to Latest States

Invoke the replayToLatest function to acquire the latest contract instance.

import { replayToLatest } from 'scrypt-ts'

...

const latestInstance = await replayToLatest(instance, contractId)

if (latestInstance) {
// The latest instance is now ready for use.
...
}

Note: If the replayToLatest() function yields null, it indicates that there have been no state changes for the contract instance. This scenario arises if the contract hasn't been interacted with since its deployment or if all state modifications have been reverted.


- - + + \ No newline at end of file diff --git a/advanced/inline-asm/index.html b/advanced/inline-asm/index.html index d84aeb58e..4dcf15456 100644 --- a/advanced/inline-asm/index.html +++ b/advanced/inline-asm/index.html @@ -4,14 +4,14 @@ Use Script inside sCrypt | sCrypt - - + +
Skip to main content

Use Script inside sCrypt

Script is a low-level language and acts as assembly for the Bitcoin Virtual Machine. Usually, developers do not have to deal with it directly and can use high-level languages like sCrypt. However, there are cases where using script is desirable. For example, customized script is optimized and thus smaller and more efficient than Script generated by sCrypt. Or script is generated using external tools like Baguette and needs to be integrated into sCrypt.

To achieve this currently, you have to edit the auto-generated .scrypt files under your project's artifacts directory.

First you create a project called P2PKH:

npx scrypt-cli project P2PKH --asm

Notice the --asm option must be enabled, meaning you are going to use inline assembly format of script.

Your contract is at src/contracts/p2pkh.ts:

export class P2PKH extends SmartContract {
@prop()
readonly address: Addr

constructor(address: Addr) {
super(...arguments)
this.address = address
}

@method()
public unlock(sig: Sig, pubkey: PubKey) {
assert(
pubKey2Addr(pubkey) == this.address,
'public key does not correspond to address'
)
assert(this.checkSig(sig, pubkey), 'signature check failed')
}
}

Say you want to substitute the unlock function with manual script, you edit the file .asm/asm.json.

{
"P2PKH": {
"unlock": "OP_DUP OP_HASH160 $pubKeyHash OP_EQUALVERIFY OP_CHECKSIG"
}
}

Variables can be defined by prefix $, as in $pubKeyHash.

We could also define multiple substitutions for multiple methods, if needed.

Now, you can compile the contracts with --asm option:

npx scrypt-cli compile --asm

Now, after compiling, the function body will be replaced with script, as could be seen in artifacts/P2PKH.scrypt.

Set Inline Assembly Variables

Assembly variables can be replaced with literal Script in ASM format using setAsmVars(). Each variable is prefixed by its unique scope, namely, the contract and the function it is under.

p2pkh = new P2PKH(Addr(myAddress.toByteString()))

// Set ASM variable
// Keep in mind that these are NOT constructor parameters and must be set separately.
asmVarValues = {
'P2PKH.unlock.address': myAddress.toByteString()
}
p2pkh.setAsmVars(asmVarValues)

Full code can be found on GitHub. For more information about inline script/assembly, please refer to here.

note

Inline script bypasses many features of sCrypt such as type checking. Extreme caution has to be taken when using this advanced feature.

- - + + \ No newline at end of file diff --git a/advanced/sighash-type/index.html b/advanced/sighash-type/index.html index 78c554d3a..552d0ad95 100644 --- a/advanced/sighash-type/index.html +++ b/advanced/sighash-type/index.html @@ -4,8 +4,8 @@ Sighash Types | sCrypt - - + +
@@ -14,7 +14,7 @@ In this scenario, we can employ the ANYONECANPAY | ALL flag with our signature to unlock the deployed P2PKH contract. This allows our friend to append another input to our transaction, contributing funds to pay the network fee.

To illustrate, we would structure the contract call as follows:

const sighashType = SignatureHashType.ANYONECANPAY_ALL
const { tx } = await p2pkh.methods.unlock(
// Pass the first parameter, the signature, to `unlock`.
// Once the transaction is signed, signatures are returned in `SignatureResponse[]`.
// Identify the required signature(s) using the public key, address, and the sighash type specified.
(sigResps) => findSig(sigResps, publicKey, sighashType),
PubKey(toHex(publicKey)),
{
// Direct the signer to use the private key associated with `publicKey` and the specified sighash type to sign this transaction.
pubKeyOrAddrToSign: {
pubKeyOrAddr: publicKey,
sigHashType: sighashType,
},
// This flag ensures the call tx is only created locally and not broadcasted.
partiallySigned: true,
// Prevents automatic addition of fee inputs.
autoPayFee: false,
} as MethodCallOptions<P2PKH>
)

Executing the above will yield the entire contract call transaction without broadcasting it. We can subsequently pass this transaction to our friend. Since we applied the ANYONECANPAY sighash flag, adding an additional input will not invalidate our signature. This is because network nodes will exclusively use the first input to authenticate our signature.

To further elaborate, we might also use the ANYONECANPAY | SINGLE flag. This would grant our friend the capability to append extra outputs to our transaction. This can be advantageous, for instance, if he wishes to reclaim a portion of his contributed funds as change, especially if he used an UTXO with an excessive amount of locked-in funds.

You can find a full code example in our project boilerplate.

2. Sighash Types in @method() Parameters

In this section, we will introduce how to specify different sighash types in the @method() decorator.

note

Sighash here only affects contracts that access ScriptContext in their public methods.

Counter

Let us use the Counter contract as an example. It simply records how many times it has been called since deployment.

Noted that the @method decorator takes a sighash type as a parameter, whose default is ALL. According to the doc, hashOutputs is the double SHA256 of the serialization of all outputs when the sighash type is ALL. The default calling transaction builder adds a change output when necessary. That's why we need to add a change output when building outputs of the spending transaction in the public method: we need to build all the outputs that are included in hashOutputs. Otherwise, contract call will fail.

The following transaction is a contract calling transaction of Counter. As you can see, it contains two outputs: one for the new state, the other for change.

Advanced Counter

Noted that in the state transition of Counter, there is always only one UTXO that contains the latest contract state. When the contract is called, it spends the UTXO of the current state and creates a UTXO of the new state. Moreover, the contract input index of the spending transaction and the contract output index are the same.

In fact, we only care about the contract-related UTXO in the transaction inputs and outputs when calling Counter, and do not care about other inputs and outputs. Thus, we can use SINGLE | ANYONECANPAY to simplify the contract. SINGLE lets us focus on the contract output itself. ANYONECANPAY allows anyone to add inputs for this contract calling transaction to, e.g., pay fees.

We make two changes to the original Counter.

  1. Using @method(SigHash.ANYONECANPAY_SINGLE)
  2. Build an output that only contains the contract's new state, without the change output.
export class AdvancedCounter extends SmartContract {
...

// 1) add ANYONECANPAY_SINGLE
@method(SigHash.ANYONECANPAY_SINGLE)
public incrementOnChain() {
...

const amount: bigint = this.ctx.utxo.value
// 2) remove change output
const output: ByteString = this.buildStateOutput(amount)
assert(this.ctx.hashOutputs == hash256(output), 'hashOutputs mismatch')
}

...
}

You can check the complete code here.

The following transaction is a contract calling transaction of AdvancedCounter. You can see it also contains two outputs, but we only use one output when checking if it hashes to hashOutputs in the public method, since we use SINGLE.

More examples

Use different sighash types in @method() decorator will change the value of ScriptContext. This is useful in many cases.

You can find these examples in our boilerplate.

- - + + \ No newline at end of file diff --git a/advanced/timeLock/index.html b/advanced/timeLock/index.html index 8e662e4ef..07f1e28ea 100644 --- a/advanced/timeLock/index.html +++ b/advanced/timeLock/index.html @@ -4,15 +4,15 @@ Time Lock | sCrypt - - + +
Skip to main content

Time Lock

Overview

In this section, we will go over how to create a smart contract, which has a public method, that can only be unlocked once a certain point in time has passed.

What is a time lock?

In the context of smart contracts, a time-lock is a feature that restricts the spending of specific bitcoins until a specified future time or block height is reached. sCrypt offers capabilities to implement these types of time-locks in your smart contracts, providing a mechanism to ensure a transaction won't be included in a block before a certain point in time or block height is reached. In other words, the smart contract's method cannot be successfully invoked until that point in time has passed.

For instance, this mechanism could be used to add a withdrawal method to a smart contract. In the event of non-cooperation from other parties, an individual could retrieve their funds locked in the smart contract after some amount of time has passed. This approach is utilized in cross-chain atomic swaps, for example.

Image Credit: bcoin

Implementation

In sCrypt, a time-lock can be enforced by constraining the locktime and sequence values of the script execution context. This context pertains to the execution of the transaction, which includes a call to the smart contract's public method. Thus, if the value is constrained – for example, the locktime needs to be above the value 1690236000 (a Unix timestamp) – then this transaction cannot be included into the blockchain until that point in time.

Note that the value of locktime can either be a Unix timestamp or a block height. For this value to be enforced, sequence also needs to be set to a value less than 0xffffffff.

sCrypt offers a convenient built-in function timeLock to enforce this constraint.

// Time after which our public method can be called.
@prop()
readonly matureTime: bigint // Can be a timestamp or block height.

// ...

@method()
public unlock() {
// The following assertion ensures that the `unlock` method can
// not be successfully invoked until `matureTime` has passed.
assert(this.timeLock(this.matureTime), 'time lock not yet expired')
}

It is important to note that this mechanism can be employed solely to ensure that a method can be called after a specific point in time. In contrast, it cannot be employed to ensure that a method is called before a specific point in time.

Calling

Upon a method call to the unlock method defined above, we need to set the locktime value of the transaction that will call the public method. We can do this by simply setting the locktime paramater of MethodCallOptions.

timeLock.methods.unlock(
{
lockTime: 1673523720
} as MethodCallOptions<TimeLock>
)

Internally this will also set the inputs sequence to a value lower than 0xffffffff. We can also set this value explicitly.

timeLock.methods.unlock(
{
lockTime: 1673523720,
sequence: 0
} as MethodCallOptions<TimeLock>
)

Lastly, if we are using a custom transaction builder we need to set these values for the unsigned transaction that we are building there.

instance.bindTxBuilder('unlock',
async (
current: TimeLock,
options: MethodCallOptions<TimeLock>
) => {

// ...

if (options.lockTime) {
unsignedTx.setLockTime(options.lockTime)
}
unsignedTx.setInputSequence(0, 0)

// ...
}
)

How does it work?

Under the hood, the timeLock function asserts that the sequence value of our calling transaction is less than UINT_MAX. This ensures that the Bitcoin network will enforce the locktime value.

Next, it checks if our target time-lock value indicates a block height or a Unix timestamp. If it's using a block height, i.e. the time-lock value is less than 500,000,000, the method also ensures that the locktime value of the calling transaction corresponds to a block height.

Lastly, the method verifies that the value of locktime is greater than or equal to the time-lock we have passed as an argument.

For more information on how the locktime and sequence values work, please read the BSV wiki page.

- - + + \ No newline at end of file diff --git a/assets/images/bsv20-plugin_1-2cf9b6b5ecc61831fa404b853bfb4128.png b/assets/images/bsv20-plugin_1-2cf9b6b5ecc61831fa404b853bfb4128.png new file mode 100644 index 0000000000000000000000000000000000000000..c8c80af2bda52af2c7734a07c924dccdf6216d41 GIT binary patch literal 472032 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%0D>67fUdAoXK>#R%cr(I7a{?AS} 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 )zmHQ(4x`BZG4zm0}v~X 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%0Dx^?qQer>8lZt4co8W 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≦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 z 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

EJIlPRLwOxyr7d4G{mA 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⁢oB8EGYVn;t|f%6 z22W8M+XvE(kuPo~xHxtoE(4CXKq`4VF2O@?e8 zCFDmH8qwP1t#aNjJCD9-a{N*CNLOX zHGLg|&WXkM_~NJDVHU#KYwD1@Ik%hRcnWB zAli<#6``4LnK|aER}-A%%h~HR_&JK7Bf?6#i|%DXhx-=AL}f?VfB0a{oSpnPU=1S# znQjYF%#;T9{&(3i%?d9@MzZB2SxsK?&?JLL);Be6hsL@U-4L^z7UllnnQb+cpyD%z z0#e%DGKSh#(pQ}2Rq3-<*4E~Hzhw2~f}gdtl*34C88|n!5m=CE&sX;)_ z+LkkObMuL;E4N%OAMLe>e*3_(K&wV=?75Dn;@1prMnzanvlzS?jvz_G+MWk&+c^lj+?mD z7h1zHd6mn-wxr(qA5?kdNsCRaZoFY>XiJY@3Lne5fUfqjwXa;59$Fmu@pls|ec$6v zV8V^mCy%@Y)JL5JKy1({8)djJb1oZVsbXnjMMaOT#>qEK==E$2S4d?S2~$Kff8R05kW%7m`9a(sqgS-BUGLVTFsP-zfFEvF9=y@G_Q{QOAr?De)4neM@&w;cJIYX|Boa? zSO$fe|Bf-C7ADh7=Oc`h1~(gH`qs}_ZNm$tg`o>GuaRw_&HlM}RF_@(Y47$ito@07 zSOdF1fYQ^~%X_wD=wrl?|632?{3|J-bhFsdvaZrK zk`GwS@lc`5Ts3>`Tv$Bv$ZBVSu`-pC-k$hw2gC06yNCnY!YSRcJS(p#kKu>qpw#D` zY^*z}_dj9{#CqM<&7T2{c~}+Q`lY{NUz*I(;r7Y$w>2rKy*D5{-)78nQwEkfbJAfo zCTp>C*D0X1*p)q2dr1RUQS-6JR56^kj;RTo3yHu0urfEH-v$ln1~P6j{CKl}k4Gro z5K%VP!rJ#48h*c&E2$)ctX=PA!RBi0k;1&>eM{B~%_dhzK3<#0p7QYm1zdXNdxP{- z=|554AH^wi-pPtg^`qaC>XOPC(m_0ZNVCvwB`gA|SwdJ0av?MTpxy?)9O&HMBb}yO ze2tQd*WjCVwF7qb-ec2QNLzg$K03ZzS#0uFY+~!CZ^1u=k^-G($+B1s38;<=_bC?- zGT=hc7!{n#5-WTfHP-}q3}H3umh!Cyh}8<$*KqjkbV?$-=NvDbr@hY0Y``k8`q3;N z^APu5TdyMPB>v}J0^Vn7uT+?_l2&z$(5;#zr82K`lEU3Jrst_B4vR|r{jO(zb!Y=8 zQ}s?`WB)i@{7j@+&P}DTxo2qAQ2_n9VvDqeC~J9Sv?{#PD*vjs`Y_(ztVR32VLeDA zUd^fFBW9qy=PEE~R774_nCxMxs|DbIMZJUHydX_J!7&mmQV)MmafLL}j*rq5u2Lh; zd^E@d9WYFW*qS(-&cxfZNBw#q?U_l*LTBl|?`iFW$Hv#%$vTT}4k_@p z<6ZNIkFFTnos~-5T67!f^L`!#*{;pUtRPNT4qQ(HQq?zn`dZOLDBm`#_u{ncZkb2o zk>N@9Bkw8+$0D4mo0@rgtK+BWSgq6~H4P7T2XHGTsvkbyyu(%`r3!UN?=_vf_WVqj zR-W5^cIfcv_vphmouaSor4(``z5yVHzXU$M-T4*zl+Lyhj4qraEh=0*W4yu|e)7Ia z!(AQr9rA0WhA}VW8!f3By+k>;-8t06wkk2VTewYDU>IY49#6wc$ML?U0lJkM!h&TJ z@`<5lk)3hnY{A>;L>R2(z$HdBCZ3tg!fBt=(xl$vPjrit!f<&x+*s8lYyI2HW#v_k z?YM&sS+-2Q+qy*QtWpR3obJ&>x@$^GioI0(8+vO2>b^`p7A^-rBSc_IZX+L8(`IvL z>kCmVbfE>gf)kUm;&t`qrR76r*jtmCyFND3ZA_7E%@i!AmU2n%2b++D;`{cYt>TYf zo4;&qhXquwJU1(vzfBGpnQHc8X%6%1+K(tw@Xctu6~bN!px9FrNm}gN!H(H`M?M;b zs&L;Px5@CZEUq+7E$oVtIJgKu7Jkrl+}OP>J(#Pxc`BoMQVCwy1htp+cI9NP&WZD54j&TieXpac zL1ZKWd`J2MBfnQDIwY~SQMx}q$}WMR-VQ8ON$T#G={fBJR?L|&e}NdR$t&nEVy~c^ zl~vJSFtsmH)vO*fk}~uG-tRkU+|+B~Ju$RQgSA7=y>=)bAi<=QWj zB~%8Na+!Q0aQsfdB!LGt|NX~*M>9zN>zwpoI}?>B(O@j#l@|0SO4$?Kbe%DMe18KG zj0wH)#*;8_`*DZ}nAa3FyYoZWt?sj6W#Hyff~*_(?m}}~CSdF8I(%`6wTtvY|7Agt z^q2@mU1~){uhF21PQms-+;k`^$q*yYe|Dgt_#9EZxzVN;mW~z^BNHL&Ve9YPHul!wZ$L5vQXtTh)b+slt>Gr&U z-i^(rhga#`Nf_-`if?Yf#N+gNIf-wDM5zs;!^U+XN?tVU)<_5D=wxw$Ha6zrdY-os zE%tYOySk#>4JIWs{Nc~@nitJsfKgm&+0eZSd~dOM|{Vq z_h_9U8F#N#D=s4(VOxFSA2LjH`S_X_IcAn5(_G7poVid64?mY^X}-1FEhA)lBAq2I4<>^4sRx_Gdq%u)__@MMzh_20vrD&*9N64!Ye+b9F~g#jRX{F-Uka~V+hLjAr1rhId#`d+#PITdx7#hr zQj9m61Ev%Ch+08cY4OuS1O8f1gLJW^=kqW7ggL)NiN9W-nkQxyPj!PyJa- zN5tnPSD6XCYVlW+!Rn0K*2*Otlqpz)A;ns+XjXv%{HerRkeyU2mlL%8ESYI;*_NL~ zMTtJo$<#eKbHim~o9=#kK$-92#-eJc(>A7Pcx202QkPU}CG0bFI%vK<~%&GWLS2Ed=W6LfI_#tAJSzSLLf5#p}DR%XIiM;o)` z&o01bp9n5hb_S2scjDt3_7HxDrL1Ieo#&+^!qOS|d3%u!)lDq11U07BK}0vNv(Ux) zY~rn`-CDnLLJyY3-`UdgJOf}mtcX03G8Sb{#!B#xTUrg+IDr+rrxnjot-nQz_o@PB zFm|-A1#Y1D8JMR#Fn0r~MDC1jn-VIjxjMP0{!Vycwh=pAmb$&3gk)B!NBPwzC*~P~OL5OYPXJCjv~9?*QPb4${6jix;}rQej$oa}@bkNu3)cVGRyoz%f3KOMUEKrxA? z;#vBmLLxALKuG$s+VMs+RLVXkb=Ta}VG#*NJp-GF77wN+JnvU zj;XJ>?U5zeD+8SDxgP}ADX(`80q;KN_|W^-do0wSfBl)=*r*e+%&?bQm&@vDeRT?* zXDs@-XK-AF#_mIgn9-gNm(GK3M1MN>w!YJ(D0dv@DhNl;O7=k^fapsjkM?h`dDJtf z{>y~v3zm&!9-VweI0f?y#x|(NSm(HtxK$lAeLjGz2K$Qwa?FAI33(xsA<#$7$ys!8#Mim4^MrjIO7iPH)q$_SM8#ZoOVQlHCvaJjhK?Nh2L@aER& zBx#DH%5IeHKVt9ud{$;1)?Kcf_CmJ0CUy1{SByYDYPPpJwoFAO1ELa|#f0f6=IWtB zNnVa10beA2N?A^S!`Uex0}cq=$bAII&nS)rdaye%wo zG?kU(KRzZ1CP9`oi`suXPn7Nss#`<(xQrzzdj!fpY4L{o6~rjfDLbJh_r^9FT7m0B z94LlzP3gBL&D>Sve$S0D{Xi*KEp`x{u7!iGi#z4M>Egg;(GiL2v!N#7l;LIgYr(b2 zgv4HcYQZTx^bK&|KPiCe1EN{xd0V-=Q_bhu${7UIp04yq#Zs5m#PzEt0q zTXtaWzHs8q6BuLW_SMwy)P653Q^+HY_&QB9&m^~?gWGq5#Y-1R7i)-;42f|si2!$W zWhrC7$6qixo2S85vgj_7z6V$1+a8k!pxXMB4QCUAfQ@hs<)Fq;V;Zc*IJr#AmF8 zV?|+K>QX#Y6J(qaWN5fYiJ6vEX%Rd1tpQ?51Zl+FDqa;=68;4+cga* zZjxt9HvW7}Yp z5>;eOWSBqb$)=&DTL);7<^?Imraxz3k>p9*uQS&^2p<8qu277yP|os4(769j7D9+< zuDpIQF!sg7?1W3$U^Gq{M-ZfTS10Pw4%>)QVE|5d&k}UHrSb?4v@KMf4C!n?_BFSt z56WTa7Ki!dN;J{V`l9>jI|L;V%nhqAo>a;436c@|)dTLfmlTZu=&3Dp-ijGnzv^F^ zoJ)PTFnjcj?8&+LKqIA1As*vuk;Hm>54#@n>MlcIKz=2ybbSZrj1FGN582 zp8ywIi77*ARHEX05dr%s5Gab6RZ6@oBX`-Y@?L(@D}AxIf|{ecy5W~xtHyfngpcDj z?Tcpw71`lL@`xYO(qm-OAZB+L)x=FRFAJHfSZ%beCi6Eie`2-T&z zQR}|yX_9C5C+O$w>ErErC2D7sqP%;=(NNszbCscvm6#tiH1zLDnB~=|v!>Bay>y}= z4_|0fW$mp<|Af;OR*oH0Y8t5X{yaN5OMxNl+NiffTu9EE)R$2t_Y=StB*=w8XG~M6 z{*;K%B}K4{d~m1O2b>4c%Wipv(B7W|I@*-YF1eKB!;IJfQ}72S(ea81N7!EV2a}Bt zhU;5wpTue48UeGr0i198RGAP+$r({*ls;LqVBCmx6ni@Y6`Brl{Nfqner@c&%e)4c zBaYjkoVfBmnm>@OB|2Qv5b3pOo*@F6nSxpnTV3S{HaG8SSj+lPX7s9o}GFM*zoP2+#3;J3=04*n$&y)X-rA?f_#Wl3;rNBteaEwXLF?!N@faAbAU zBach*IHI#p!2iO)mk#nHA-MI=AtM;Y^Hwnd+%#7ZgO6jw2a?&lz(g@JV~A#y;7#HM zfqbtI5;S9&kuv92YmD+y4FXPSX1W{VZLRxV?=^88t+Of& zc!f=~pXLjy@V2Rd3nI>upxL9t_lzI3*Plcyj3gCiy`X(BZv8n=J@9eO6d1?+ZQ6i? z#~C3X-&#DF4-Qi!P%+Gi4#+6qeb;R21!Xctxbyh15D z*$93N9%^mp&qWIj{Uzw^TN*L}_ag)s?e7Wxwjm*G`Aq6|;eW!nd zk&@HXXp!k*e9T|k%;w=!!pyKc)BqmV%xN@#+(IF$0tyCR3PNqDM%x@lN=3<3PlFa@?pDZSi$dVXu-Nm+*rAIavH$;#tA;x!~ zv;wpzrDI(dyMUeH5z*o$V-Wu{UeQ0JQL?wB_LcN5_^X5OA#Z5t**9|)h4+3nE&h~c zc^E9Qm*={V>*Fco6{p3xNL~P~W-OZ&^-r~*A&F#F% z?L~UKiL3WJG}#ErLr-7}Wzn!-s=I1Em(74`dUF1oum*r5HnH$cLWMVZDygSV3E#^h zR=Ru=@PzQjJ81~4DXtf<4R6pp2spT>D!vRqIM~=RMe!rIX@q~zm zMXmGuF0ngReF?AWYQ1>Q>9JtKn)(U{si;y>%xSX;Y?~SR zHb^@qIJpp^C3^Tu9~!*)1&)U;${EPQ>UtRW8~DnZY7zJEc}9S2N$u1tc7|1LwR)3O zZ59@_WHUm{=TUekqx;Qbu6b6W2`Z*A*dw%g;MoZb=XZ_T*gOv2Ra!R-{4-x$RY^>R z3YfQN5rYL|YFnJDWYEy#hmny4+;`tl-mbY-hA-P+32v2@k=!bKMpKqYQ-*()4&Yft zsrqyFKQ_!IAmQp(>1!g?&oV8$VZB0(KSq@F4d!_gXO6JYb7St`@ z3=hh{YG-=2GkVX%z@`pjSaBN<@Fal=_#$J|y_68o08dWtC@x)m*=V*`ZTnVi5 zyr?N)Avr@Kq@2`P!ow)w&HSZyvMTHN{4lp9@MOdSyN4Gic_2WDnZq>zDJ*#df(aCfxx4`W&pIZYK|35*3Vm~jF6eg3EG8f&Yt-_~}4vvm% zpk*|}@qUu%K+vT()(j`pcqas=ufO?tdXl2;;h_%-)LbHmL*i@B(VE+-JH9UDV)4SO zhtQ+Dr~g}B_*hUDNQLSAf(w4~Fy$55BDuF#0nO64hhXY7dJi|y#R>CvJY zPCCGW)<%pDXYP$Q_d=Vw;1vWdTUGp3_>*{TRa374KfVs)N9XvHc+E2@Zr?C+w^9im zI;efowr7|cg$Fhr&{Qt!&C472;Mj((8ffG+FiAVTRjeT@o?8(O^PiE*|0`Sh z-*oZf?Oy_}>|>^%TJ35|7X`F0Iv%_W9$39r{)67r8N2z0?3ux9vMtX$$Cs(k!fwd& z&j_A6TjOb3xmG!N$p=f0aNu{{;F*aJmfd&o`Oy6i5X%qbiznW6&-V`xNB@)2b?Y1o zbQ%ykL?FXREmpHTf*?eEW_ukoHxO?mDEH{D7UA$DnXGG>iH8fix)!YgoT0(5|C&VX z9c_3%uREUa<=wmCfoQ=2NJ{`)WtE7@`$dh37^n->rE~z?d$?KlQV)E&w5lYye{%)FT#!&th-l+Kmpu{=rc9>AwUL0c+(_aY7hN&1X`G zy%GN%Sl#YQ?And>P6z58pE42znX_R=+1b{ju%qztFQm~>~Ed^EUBQt-#7Y-+idlFILuyzmJ!!qf`AuS ze%F6Cw(bS*MU)dn?dkUCqTL`d-iDoq+wUB_U2@k^Wv|^O@wAS~+*Op|1OUr?1V0^< z=<;L3y5h_Y$RIU}U_5k%9YBGnD}qs?8VGbX05wZdEQnzK^-Lhxya8+GR)rVS*wDHl zn(?|AGh8*EyMh0%cxk+%65lxdC6Mp9f8Bw#OEfsgz6eLYT68^LGjodTn`qiPTr+dQ zTkpy&yX3VTpGbwbOx%9;vD`4vP1CxUB8r5W>xF%p$=8(9!QR6R-^(-ue81R$ctDk+ zoF+>5Ia)gNpLO|x>s+b<@;}z)9_QZ-e$%nP{$pMKQlny;hF_OcAf-NBHp6=9KRl|Y zk0cva=tVO7fH@<4095 z-40B&ZtMCVMzKrV0HA7i?WLw*m02y+;pH&&=^AoHcSF4W%8B+Y;j2?|*cOBcZ*GjC zLgLp6VT_s0I#L+_fj@pG*5+IATT*|VXXz2l;zkH^r7Y>LFP&Vzh)nE^dPH(plY2}& zw2%0QJ$0=9j$%;g4k={>6a3~&BDWa6=`7bCP%83;^cKq7NgOiib^$JgJl~``SV4V{ z=PKj50{cZZY9TQ~mG!UN_p4U+sxEM@AM{z84Vr#_@s4}?`iThAd<;;kv%2#{Ew0UO zrthoHV^KM8g2||KF_98Ao37>{-NmG+etr52E+ne)ge&kd`>^n9I1!e1-98&f z>x2)A#xLmEE>Ji8JrMgxOa;X;UH*$i`M=nd|F9BfQ=jClv4f{*Ukp`wbDfP z1SuHnus(Mvj_6`pJ8=-->A;JBiSWuWw}8e|H)_+T#!wrZfbL>Gz#-MwA%_}daIQH& z1hPnl5=f~gscTDKbf~``KExm{-SCa?<$wIdRQO+<<{wr$@)|55Pe34n_wei~Ny%lTK9lJTfs}|+> zJxc3+9R6(Zpo}1DN8;@G@;7?w(O-ha2mf!@1wW}Ifd7S5EtGdgGh+l=l=bTxd=tBu zQ?MU@d4DT+gUhbUBbL?%Sg?HV$0*?uhuo6-y;zUQ8+#;< z)`70g=65 zSuMQcvs1=}y2%;dlSo0r0f2RNwysFA0Auf_S!8Z2@!%!Yw5eK!o2UDQ9!qckw}<*a z*z9hT|IdR>tTVzCudFt``e4=Jhu0=*72d)C;!}56M`80Nuf4afVZOaar%X{&Z}Y2> zRywO*J>t(XDb|X*L@p zU)%U!SDz3?LGW_b?*cv<*M`@iP>&c0=2VLa=FVVpXT=O> zMGOtS^?gR2`>Kn)H{{ISck$hbzWMwW7mkc@v3cHz-~H-v>Eh4FGV7!}IGytOq;?*2 z^&jnzZjM{I0KR*rEV~uzRaEm_g>e#3{H$M%pYFInaEW!0OzK%>rtGX2F42C&ODg~_ zYkun}Br^GKLST7MyJ)vp$R#BP{>okb)AD8VyaRWF`_Ru8&^Vj&LFt&a0nVEYXvXi< zNOw*ieo)s;+?ak}WVTZ6?Bd5MP~mritqR?IWPEP)1@(d$Q@iuxQ-Z!rHs^Yc%f)TH2|PUE_QG<^BEG&i1Ungh94A?w2Q zv(#xsbt3VnZpw2Agn8H@Icr%feyPC)ooF}&v`AjDECkKMflR{>(R;lx7O7TqVj2itAq#y<#(hMCLs35j?kzeSuEfPWe3}NyD z5j(~w6g#omDs>jjZxLEd{pMFFogp@B9IYh&VJwklVQz7Vz5iu5)6SRZ_fD@iXHAkQ zpBxo*8o}R__46S_f>$-(n3sx3)+ISVa@rqcS)<$DiM=w$QGr!F}PgTGo=cmr+AgD3y%2Wga-l z_f+$Ro2*9Ij|Y_UjMXU>nk;~u}slL4U3QLl2=h}eTqudbiER*zroO-X5Vb`?ukFL zc4fM90BY2OFB`M>$8m%A(zbgXP5#_pBP6mldFUS6VE^6=Y^vKXqPc+Pb;^}0S8Yh_ ze3&f}CEm?R+}&IVNv@KPM+UEij1&DO7}2wbsT*TBda2^t#f7c@_D{CH}5_qB77ot6bGwhNU6Rc#sGY6B>6 zz5LJ!e6+?F=Sl0OU=n?{=Vowg@ytt0zj`!MP4jrfkRxuY*GJip2w z<5(eMTc*ppKrNUeC@m>~&{UsMa$`um-Kf`_@V1wH1pzB(#e@RGZ%SE6GlWEBczI@S z`af~hTQL_p1kVs{Q!s{>Y6i04>?@7YPFRED9Y;f6)n)f^XD7!KJ~6Ba|7lsrZ?1zo zelkYJ4^+Q4xQ^zd^yST|BfsoRRF0j);RCN0{=9U$|6p;ZQ0U#1W#nw+m&_2_?{Sl( z?k7BX{k)fN+-P;3@IjJ{ho<_jQC+0%AgG;qlE#SP4n|iPb+LvQ#nfRu){vmjNjB8F zWOZS8+0ZZi>4Eb9fRxko$M_W7YXJ5RYgp1bAarX{DXPBa3hcm@$P**7*O<$Z@!J79 zTqg_9Y1=BTGiP>x00v<0yMJp3W26c+;IS|UItXk(H$H0lSciQ!#-I`}C*SU-a+Hn4v^;F}wAi;vZ+H8h9d8V^e}DfmV{C$%xvZsCY(}ugMt2Z)32M79H!`r3vSo zl^ypktvXZ9Ba-RKwZu0|f7aTCp6o{~Jvo^oni2%#vqnBseJ%an*=8 z-Lr6zt(M&zViJ%u2t;eHup{v>!?oc!nunm8Yl?c-@X-uY9?CtAI2k}5mZY2F)<-+q051Zd z4S6It2b0>+Z=bDM(hEa=Gz$*xGV+Bmm02by{M1sYc5FbCD>0WB>!vA;E3Pjq%<^|I z_j7~KE^#($3yiFLB${)zzXhFxRR*d=fcK;G#Y*_veQBNdrJayX%$9Nb9?Xs^0!@_} z+bL%{La0ekus|NA1owH4yB?9l#Gl@>T~%Lqw|fIU$ zfvH^lW8^?0!%SZ?QI))}f2K9>yZ>+@v~Tn)kvL--sSOoHZVYcgngxW(m4U0h{Rc%b zjQUDq$jeUVKaWSh@?2oPn|!Fh#j-}s2tTySQ^}*3^EF=w#xHK)cJ2$8!Blt zq%pu#W@xvO>#E6i5KVj5oz{%k?N8925VRbTphnDVxG?epA4-dA-RQ`+5#K4ET@&A_ znnsD>L06nu-NUSJ?!Pf?P^r= zBLI}BOQDMB5}0TnT(~CIbwS8tne)TWd}8l|wwf5aGTrjz2{7Vm=wg6`Cr}!XL4iYB@Emt`OEu z6yrK}PvGo7)${*8G&G7}xq5RGaEcF3_)D;-p%HWT-^VilQp>7x+nL&_d2&05jn+NZ zN66S?>Fia}fE(Bc#WT!#t5hdcBkWNRo10kzJ4!}=0>EZ=Gqf!m;)8v;`2&KNji5hE zJ%s9jL}I7*3CVYD*9s&pIH!t!?+kj9mkrpecyBGTFe|Et#gJ!rcrkDah0>RrB&(`t zBx{P|NAE_WudNPd>cyWhR8(z3+)`8zUD#smNxlGH=0fK}dv&qKX~KPrlfqK&qbjJ< z8Pe2`Eh?-8!DmZR8o5-`I(7DA!e=i#!4OQfE07BDx%Qr8*J zwlu@*XqLCSB6n2LHG_Wh-RYPt4wQ;o=B9B)6`5@xqj2=|@P~;n0_BPwHr*JeySs|#R!b;e z^ZzAy(yowa6PNB0Tz|jQlINH>%5mOb^Xxj`?TXW1h?}iuXMCRTHFLeiC95P!ef?4lqz3HMLl&?X%|9Ie%1a z9cf2gt2_%E;<(dRWHWeV7Y1$AC6rK1JIwL%1NECHvHq+VmhSaiI*->X|6~Z}GN|h{ zh#~zA8B?fFLaKS?)7mPVp&a<*{J!5Tq3R@E1A&0CE0}*XP@X2!#hOje8BOmlQ4F_& zYOh4F6^d?^j(!W=R50eLbj76g3NGyy$u4mgX#KfEk0mKnUO4M+r81l7Yh~f{Qr&3o z7bv$OP2jgs9b^%xg?fIRhE|qU1#CPmZ>C?E3UHc^qH#8P0T;Z}li{VNmnB)Ge&eiL z=+E|URxS}jH8!Id!73JZ--vFv*4;*QO^9-+WXQ{?B2XqVsQ%X(#CiIMbR^9$AJ4ea z9lK?JvDHJfK(0v5Pa2nq&3B%n(D0K|v(1D3AQ{##1~0Wh&hr3pxd+!z=x@O9e&(9Ln%+H2 zlPF5&6kG03cUBxUV|=*c)^}_K<4m;^U$1TE1}>ad@O1$9=T8cQ^!Z~2v?UYei%k;0 zy!paiI_&RdyWJopErAft^98yyu$D-axbPeL9h)rX4-Wt|A5A%j{3Wo~jh`RNy>#-X za9um)ddc6v76e}V-Lz|(N*)~=5eRH;eq`V|rW7Q3Az;1FA4TMy{k%x?nQ^(inty|* zAJBRt3#DIgB;xfE~#?Z>rFdE z3xbY|?NP&u3F2gmv*PIK9<5qNLO}zTK5Y=)FZ{VT8jC*pds`BPVh$Nnv5qs{&>l%g6E}4|m7Yx{ ztEzD7Plvu0r14iXK_M^Zq~^!MpcI=?EYhMRSf|Zed_c45I&72hoqD+uDG2G`pvm0iQ)|9 zT0oQ8sPhpmI54gZfu;U_DrV})b6)Ss2Ge9YXlqDwkDMNkR!Pk1>NGCG{K5SD}oGWz7d57Igd4)&aBf;fG!%SV5 zDIrg0*ro`K46bYI_I9&hE&T=KWG)3ocR8Mqk!TnO=~1B&xT(ylTdox4)+d4It8srx zZfNbwR-fXLa7?W?5_9p8ucBrQ8F(jA{bqiS=R({$H}KEM=QiOlX1mY}#156zJTvYu z!E2k;R0djf>R_?BxsSJ%-bxpbSD&sP^ZJzmHSNb(&&8m86za5qi4Svq@6qUZ~Qq`;hX#KIp7UOXh zwsJQ(Ral0lDzfAycjSJG7iGS#`m}*5Sxe;OvO>R*4Be3WJ7lbZjMYG_*hXx&{Tkv_ zPiKf*Igcj(UbF`)$9_7XE_wen1sEjorl~hj<7~@#DtwIO@=dvgivhntX==X*Astp+ zCEMDQLvDd4gSyQ7U5UZj>dy1_nFCLC8!~O=mmb&AU!tH;PC!~e-a|w<5l`IgmU=0Xrc2&6(Zs`-MHk)N(n#L-;+iPlG>FNXNw@zAqq{cB8 z^}TXDLn&meS(P>YkbZ47Kp&f=8y#aI-F3EQx?ol#Ag@u<*E^&>=a6SQI&-sRh+`}f z`}m#SORVS7=oDN>qF(pdcG;Hz=P7_XbB!nB18_xY-g3y~6OI2?o6f0$;9%<$z0sdq zl|~Ruf$(`2@fJan$Gb?+0h=TJ-;c~r8fBC1`lB@YV>6=POd_hdUDQUh@$g5!ZLu2! zjA5k+Aw*4&4oB3-Nj_(Yf8Ci}{ay_xXxe3BBlU5#QHYrbZPAIH-VEZ$T>3?vGy5`1 z(FX+TLcwX^)Lm2DMn4RhfP&)sUZ~E^%|2KPTi2!1}??dYFMdI(0g`$FM zZAc6p&spd^3@+*u+$XwXQ}{zbKhc99Qc3@m{I3qxkq^lJ5+se#bo}Dz+};%9!>z65 z{m)_6ou5E?(`X81jYG#m*Z^wY+!t?lQ~~FYFOZwJAkz-S}e9g(N! zCoB$rP$FnOgxTn|kj6XcTvdu<#1=JbSMf|XEWK+ymHBdF=w8vU@sml3&n71<-%x_E zCusTr@&cNhG%qA5=lihVDIWj@gdA_7`5P&HSPKO6m%~%zIx01h5(1A8&+!|bdm7|}S0C?b=-j>AB2cZq{OP8RvWO#N(afXR5Atd!0LiAKcx_jz8WhH% z4sIp=nm>$oSSTkxXRl0Y$w2BU3$b}uOGBJ zPhAzezeJ3YQE{Mt@IIPLsB-^;m7)cjW}i6?7shHJFp~XwnMI!oHDW9KW=F|jbtdv0 zgPNM6i&FNqh@!1(SIM1D^}`|58ofREHBMB}4KcuwnMZU-4a8+-%yP#>XkF(y4Bm0Z z0`N<(LT2WUiycbP;fXQF8NS#IV79A0o{3=l|7$6#CL6!Q{A9UXBpPlI<66pQ77VqA z#cMBb9UZR)@R9kaDV$d(wY-N$}2#3-rQtheQ3uqjJ&QWXmC}44f2lROPhbRh| zXYZENwrg=d(S8WsfgFukh{`8@Iv_99iJeQT1oRJMs;lKz5V+YKYzSc`UW zuK}L1BG$M6FU#Op1VLe>z*T4MdsM(yhjN_(w9R8Ip5&TkgJ%>T*)WhDQa&V;-guU^ z8U%|f->)j&&n?l*a;QV%r!R5qf=9Kn$H!^Lrdz9Xei=t}JFz@AQyJWqAV~dN3?x=m zY!lV2iznB&Jiqib5KI=u=coM-_Rcz}tv25CyzSdkpwQwD#oZ-1E$$R|ihH00_Zsf* zZiPVbU;$bzSfCI*NP*y1+}q82@7>*d?;m$|cV_>)GiNfHIdhWClXD*VJ)iIQJ3bfZ zXi?oZDDp2@P}{#Ed>D=ojA4YfFqn`i=HMrko#f)t;xb~1UJ`&NVP`(!b;>_Wyyg~J zKxk>dcl8|?nlDKZs}mbIbno0y0J<80-7Grvvt3tRihe)mllR8R27dI$A#KLE5uV)< z&fP+gTaSwQ@lI#VZ|TIClf^e+nqgd!Pm{x%sFNln_IuD^Y%9J2BLm&W!p|Vrqbd%D`gpO|8 z=k?*`qJTZPV|)`tqG$CHx*+3#&u~We_bn#p5rcx`r39MScbVzmH@v`{%jEv&9QQxG zH!Eeask?LMj*0zlLj;AxJW}o)Nr?)%TE$>!-gD-TKqv;SZyWT=+n~Vo{QvuN_lCl< zYI8C?Ag6xO+$amtxnQPLapERX48#tEj4;JTW!uJjK|F88%%>`;e75Tc+fmX^1#JUj zjd{tH9)qZFlzGJBwSI%LKbzPb2E?ShYAeMjY@lLGu#~wDiQV|g4jz@{27O^RWTTMzK{t2!vEkb`jX&3(w6Xv z3Az8};)hM*oh48-j&^f5qE6`YV`1%}t!Td$s){&>PSZln| zsU{GwYFo-kt8Fwb9YuldSzQZiM=)?NMuYBHXVKA=unZO5A6MHu*#1cL$*n6hte;>)BJm!lh)T*WL8l>?&=Og<4XU(;cEUgmJ-uv73&~BzjLw(`7kIwv zwhgurDuCHY{6);7;_*6DI>k-J|U_O37FrHz@P&UQzA@FMYiZ$Z1 zAJYBms}En(e6yMg&K4t4pXWk#%VvLWq0FMNz?>?ft?ZZ%Z++`bpljm7XY&^*@b0Sk z+4jRPUe#St?*&lrwEw?+TK~TK*3MQwiZ|1uJ^J#$FZ%C>c=li15n52IdTQBG;R&Cx z@q*x@9Dbn>mbt6QS zGr)@Mp55hsGx1}!cv`2(RKFj!(>|7&1Mm8jOK1bgQyc`#qqetfb4C5prO8T7kb@fTgn;7^@$pa$ zN?r(TivMSN|LyY-v)U?&qa^U3$QtRfRO(PnWR2)^Ns5VoB5P#43Si`O`FMM9OJ9Ye z_Hl}qgQ!W-Bh085cadgU)sz>|6z5h-iSm%mZJds89+$d3#3XD6I||O4Z;StuZjuhT z^-9YR_>Jj;PK9K`F3|5^{TF?p)UTGzJ+F5UyE0^SWQ`A6n4QNiwqE#Stmp|T9{bxo zjOHy+J3Mhd+uRS>5Kbt};(F)HoW^#DsS0+MYGc-srA_c#h4V)&!!`4t;f938E{F4j zz9Y6~DI}%ln9YcBy!pD*tT|c}6v$UdGc@in?k19*MbK{Xk^`AkX#OCPqGRt`ctH+n zqnIqtP4BKC@7~O=m`7=zqa-lXl?hAHf2Bz&&;HdC@Dbu=s@s9(kl|s%HDRTFRRJ)l zCeO!K@&Yq?66=QfF1g0p0=+(qz;lCLq7mP)Yy1P;tlV`Ee$|)p?1~`S*a6gsw@Q>% z3Ms0JF4lYcUnN09YU$!iRr*D}$Vzr(98xn`It!=4aUK-xd+x9Jt||Lg^%Nbcyb##v zwf*Dl?Ul~+hUK_9H%tnXNfH;5;(&}zu9TIH?dq4HdZEnh^c^*3k*(?D5RQ?n)K4!i zoe9*P*?MW9C~kengV%_@JPP`E>kWT$=JR&zKxoyC4I%q$w(kGENQwM+3zYx9=-*aq z|J@M(u^}$ad{!nQ9r1H14XgOv z`wyGH{|!tO^$}5;=c3;KgQZgIJHH%wzZ@7sd5hgmL-zfkb4c0t+;1ph;`f9Xc<&F^ z?%m61N-X;91%R&Re7w)n0f~buCbg_0H#goZ&PSo&~$O&V2{@<<}epBGx{OY5Q>Rls010%nwZUAz_?^pHxRhUA7 z^pX#WgYojC6w~znP|!(Zh^cj=S5%)y1JXXoR==ZF*{Flf->fkoI;VfF5x0~N_55@K z^@<~STVOJL`|D#JgV1}!#YPi#mRzu!J(#B zGd+T*<(!-1(6N^p-;&Q{^$Uc^TWV;FJ(x0to(FWZ>Sk=s=*|v)1 zA|fBXmD?UmTaLT2a8>`FgXf%#u|n|PZo*etsE8vv4|2eRvt#XZbV$VO!q$b!r$g7T2wbS130Ysq`X1lO@BM!*)@KPLEcs zf9mh!#6`%cnd*TWj)>&2`V5;u{dydSdl_ZL;znZEN?M##r4ZVW*6^D=g9f%#-j%gN zPK*<)aoqN^hH(d8KPH7Is%A)b^KUja>7^sW+Z^sADQc@B-q4W1D@}M_+q3m5)AXg> z)Dx(U>K$0bv{XGKD+{8_quq_#01^S(4Z(Sr>`nMA63(hrKnTBkwvYf=t)vOF`IWU_ z@sd5S=DL|a{?HR)7pHj~ZK5M3x7rNiX~E0JO=b}=(PSsiDl5CK?$z~EEnZ}OTU6@y zj&Ilr7A@z0%yH!Sr2V2eN6=yWI)U8sSf`Q&^5M#6bclf4_?=(IV(Ijjg@{POK7r=; z;*)};4VrisK=&}trs$3lwR<&T^`!qxsff5{A8!fJhi1du5I2=*Hvjn5CyS8 zST{L0!)Dw3WLz5?r{Hnvu8XhhLLJUY>gif_P1$#`;jYg5L0=k>fcx~B19rB#;6xqE zr2kfoM$#}7u`%lGF^&^5tJXS^4`0g#m2<9=lxo1S3`!AU5Lcpc_vX`t4o2!=a2Pew z(rV-MeoEI&-W2MBzk}Q!!WZA@v$)%*jx4(lnYVvT|1AjmYExzHe5dzx;u(rmEF%{8 zTv~vYRg%v>*t?;apw*y(FUxZw-sU&+(j>O&@3`7``+5$*szu2LsP-#hP`&-UuOMra z4N9-`WnBCen;%Q_jC2ip({bFRx;2xsE_<}!#0t?n$7qLO?;(f`#EZKaAv4<4YsLz$ zi;N0PPj)<89(n8>@Q~`!*JQZd=2^!UKzvdeP+RrVcz3(`SAt70!c5TwPTk5q%zNdx z{DFf{v!#=e^SU%q>ENd(LZ9a2$MWc#3r|Dl*ZpoapaSI2QDkF2ouImxMr?=PRrG)Z zy43FweFfX3ZPgm7g<#?IFj7%?uGra6tI8KnxLjIH zdK`&gT@@9ycRRi>`em})1@sT+#zYuq)9H_rv=!+FM}i7pEPN+}Y=I~Lx=pR7CC|; z+|m5>w+&|*KJ5oHN=?Ujxz`Pz)WRSsUxGJawMbtY6o)Glm&LBy5`(XSK}bmm?*8w( zaG&a)ve{CI7s+W1}A6u`m<;9du?{DY+=^D(gm@y^!* zE!%i2i4L>I#GSNHVWiRL4@qg~+mS-Ub>m}ii8T4k5}6@^=|@_3TV8~J(5B#=t6}x))K`TRT~N%cPqD8);r&QaWz$q=$4up^$aEAjsvqvg z^Es-2$~YGPTA360_>IuVe?G-`1u{B-W^3#CT~LR^O>pbmv$KD!48#l(N77-Ziq9Ec zS?0>RK6D#S<=NS7L^4WFcrF^^YeYQMTRZBvsGgdx;PK@Q;nhtc-e-Jknj)`xBlpOz z=GW}VNq@P$IKNiG=$yj#wgK2j&s)PwHGUOn=)I&cQ!bjx(c+lwaw=vUeT}kt>2$;E zZTxzX_pZtE;>uQL1o$x~?dM zU_f(Kna!8^VC7U)tWw9*_5$veg3&QO57xjYdm&pq(jfbH^}{8t2VFQD7b4K+zfJr0 zFXp= zIL-@$ASpoxoO)ehhWe{!H?f(}DQ|bTQL6eB?mayw4pV&UtYu+;v3%-banX_YU-Jr! zd9(Z&IjA7FAFJl)?VJ9JH-2u$K4DW#g+r|7$KBdy3&b7f<$0Rt2X1JSKs;k;T z-j0bl=m02G=bKD+c`I>pGQeX&BYovu@jBqyG<8uyPlC@Y+o$k^sVd!=3Z;+kwi4e8 z31u2ovXlGfix5#pZDN}mtTJbv36ZA@7Y&l@)bs)!ysnX27pOU(K3Y`infO7B^b`5< zcJ(9V)l){i!LD3C((-6NN~&5t7uDyJWiLLY+`(09 zb^6)G*2(uGSC>7tA-G9e@3eqde>UlcEqboKG+&EmXkxZ&>i!Vcc70G0ybt851E#gt z>00>-fhFY;ndpx5Q_tNEOxJ#}IUC+&v3;dE_FLQ=K4VnoS4K4vT>H-T7Vt@3AEIr` z7A9!3>HCeSJdb_Wk35Q)%xaX;2-ZvD&;D8YhC_QepL*tCXT=ibB97KB45fN{8 z)Rq|_zxNo=M47~5Ev{<`ndvHd{<@`?;Kr(>JK`3=X#86^Tal=#X0Xb;>=yq(w`0=73H;aS#Z@e zUW|=QB~o?jW}9RTvj7kHw4K%>$JC?XZ#lw}+FIc{F4H5bM+vHg46pi5Cb9##RL#!^ zR%PodRhAjkP46;V8}gP=1vYnmtUhnF;=Q&49^uG)3B`sQ>ofD;L&RCB^QfPz{hF^ztF@xJJY@t z>Jh!t^-`Hf@1*ZSZhv+)DY;0KH_P?@mPvDW$n=Rh@e+T~tLm6#KrThpz}z({+2f3g zbQ$w0XRl<;7Y}S?sltsz+z(yp@(1dWDr*#!6pD&YE_8uqi!hXy469a7@Jdy5f0T3lXe2;i#PZx4)3Ro|Im>gqdXxtqDV($Huno z4X2z~pi+PMz(#%f%!N9m(ce)6ID85eteTwZ66JPL0M;4F*rim%vS%mD;V-$GO2!`W z_;t2_2GHwqd*c*%8C7<@>%Z0WqptgIiAD~)p*hwMLTQ~hcE2jSpK6uQmnZMSE}NY0 zn=lF7WfT!9H-5;R_WPU@vo}%r{ zfVr%HTxA8tEJrU7=$16^PqIBrdViL}Zhc?)f!yTbhtOEsh*oywh`rZL z2)${Wj4f!PT;xlr<%G@4#g9rN$&AaJtrP(MzwOeuwGW=f+iQis9V_uO7e)!l2PjiU zcfMifRnNB7>X@hT+c3wW+LhlhDU%dXVuBDUU?`6bxi8}fV+cI+oV1GfYI&z9=W1G~ z5$Ij(`<0S~Jj;OS1;Ew?edV=Ouz>IKdaZeosoGp^$v{&wM*AchFGY~R^Pz9Uw}#}* z43sJK&9h?c+YC6=B3N5sL^5l_jqCk3TH#TnL#2U^dRH=Zn)I zL@8T!e$~w41%k}Xux*q3)aNB{m0mx%0uw?tD`am!qR!Bf^{O40147&QovPPPPwgRy z1|j4eKj>FfY2JE;Kq)M?Rn3eoCUy8{J9#@9(DiZiDtuR62U!FVK zlLeZNtbx-+7=0v40n8kszU2WaJE(-QuK2eLujlYju{DuSp2OPa(Q;j#YR!w84j-WP z4Qn83y@`i)@Sff;`-io4|Yt@YIl zrM$T^gRMG$NU9OPYl^l=c>#0&0)tJ`bPWASKaWP-4pL@OOl{cB-f;Hob)y$?GMoGO z;fPS>P3W_=Df-bW(q+0LXBq4_ZXCa1YNY}4_N-ZFcxo*)_=@A3+zx^;_qU}9x?`j9 zF`Wt-%o3{kOel#R-%1Cuxy4hHEW)v&Evu_d#AI)OqQcwX$q5&cl8&CjtxIbH?edn#1t*n-MaxPkPdyy^+N zYI?b`j&CCtK9l-y2*wl@j!>?kb+QB(@Z?Os#K=;Lw+P3d#0UoVuH-Ll?9pWp1$lWW z6cg)=Bg*-tW%j4`Jj^P_Wi>YOmxZLLlSfikgOkP{6`{St_()qaMkVr%69gg`@Ud|k zZFx8id#xKet$$Z0625e+&9U+Hc{wMnH6VwgOY7tdTxa)arb#WFdk{QGB# zj0A9)0~lpAUEhDlxb17XbKtFd4<!UUlXg0NaNh9(kHdOvGT<;D7c)mGoNAU*YNPNv{e`CaBRG8 zxtpRE!FX?f*ZVb?QGHVo#?IwhFcqss2+B@qf<(vZ5xiAuHF%y%Ceg8Bm$`?o04|P* z0PE3xC*jZ%u2 z$(1}ALo_o80`Xqudv)I(=c^;l9YZi1{QD^JQO@V!M=e)%dVo{srR3@tz*6jc3B(?L zu!&!^Nd#R$MbZ!9N-?5i2LHTtN3d({lc7a+d=q7&DYs+JA6=GR-FSdk)pa&W7{gUQW~zi&xnBXXst_ z+e_*?yZCpG%wFD@5#Jk<^I0!U)|!6ZLhSR`bcggp-riVE+AYgG_QxO)1{0S4B5Q!~ zuEZEF8*5{~)gGA_gMs%9zqEVukBUOA(tffjg-YA_2nn z__d`&Bw`9=o|)hgFDA(sK%ZiG%H-YQT#>7;7tRgc8n2stjVdyAV`Zs+UT%}Pst!k| zk+}ab(Tk*Z`BVktlWbV8V~a8wxb2a}$`^5K;;%+r^N4H-lWj|Vd&!b33Zybpp(^%B zN=#cPwK2GMEA2tv&oPcm|H1nFmYTx93DmCY+C;}?_=GP01ueocEw@~x#UO|y@Qu7` zS;hziWVS?Hy6Y4-nf-n7XW>k2-Y>g`V2Hvbu??go7fwl6J~g8i-j$5+0F>0tR5heZ z7r&@x%gK<+P0IDuPLl!x;{99)Ob@+{Eb&nqSG8t#ubDg!1*&{a9ETVU_B+j?jC;Qa zB8U3!DLW|@w&XwSflH+J+^@qXhduO3Uy$Au4#z59q*qtGnPM2nId=%GVx@`kvjain zW1-+rKR=O($+V3W60ye){!ot5-C*|y`zS_p$2BWNPv%FLr7@JQ<3Dyy_{B2(_?g-0TD3 zu^e~NPa46e$IYV|(c$GS$VRX($*OLupR0?J8{Bei; zAKSMKPc_y!u?PEshew){DW!EyKC-sz60DWxFl+Q1ofW$7(t^{nm3UiIrnX|3ZYzS0 zb&5bpa)tSD^J)JktMO8OWV6ojhQ?nB?mOKi1rQn9;;|S};1p2Mrpy03Tua=r!6!OE za&(x-fN349M8a;J=DB-I55|w#9hwtb1nGV81Sfc|%y(^YU}9>tV%~o1i04!Tg+Lfw zq^ts#mQBQY`N+DtYu|AQwwr5@I8SYodX|?<68C7+EdhtWi2lkk8QatTtLT}MnrHLW z4<*fjfI~4q3)*$lYhZvd$G-a08!F=sWU_h3Mb(6_mXXA@LZ(3arb(wRXdcy*mbpo3 zVHDUoBjqj!CvOON4C{O%N*~r~)vC;?#zw#?Sk!v)GOGFuZ|bh41G{&8cYEuAXd<_< zO?lLTr;Li{N|4nMrwY%7I)cYI)8kilWAx(N0NT%#M;1*bbz* zTVl;oy<1x9k(VBMN$>oj!+1sT;23F>EXkSsbTP~!L5OBt;|!TijM`3}0nqr9W3}2y zS+(Tsnb6$ojrEHN^+%ud!XoBTd2>(S!K-v|yg3@}k|`w$1x3X7qEM_5)#BXCxPdjy z@;kVvn#N7ZKe(VZMgBl_Q_^`>k7<5(Xdi6a5G*Py91Zb~YnOx1ry;VGV>f5&JS;6pnCoZpzvZ+PM`ptRodW zMwTUfZ8zh8$y;WiQ-(uB-|Go!lQ*)m=jA1j=DgdYY9I#0w+}K@vMA|ES+vTMgl^Nl z@|oO6?#ke05ppujKXm5q2D^i*M2tPSpn)Gv;G{+)yfZ^5p$NG=Sk`pwB*$V_b;CsN z^imJa>o3Nnlgm?Mi)7_`VSJNgD{nxNH|qsZhXOdh z#W_BGhRr~mNj-G~FMGdy?vD_P2dl|c`hBgf$;2!VV**9hfN1u4E4jh$_&g@;W&)bCSP1Aft=6Gvt3dg7V>(~}}ZR|Lg^5cDN z{ae3?ZkcZxAC-(8&Mz$n+SIzW-wAz2>c?pjd#wuHPApD}d2Jc%o?!dw9ODu> z8uWwr>LOIxD-j;x6nI+MZwoGir5MsloQ)RbTEMT4WpHQ>p1g6oo-T_tvKL?;XE?R4%pE+8z(447Nfk%(r{xPK2WBi zDKLEJ7Bw}iYB^oQw1BDeC>9Y(8s=>)@?J6! z_ZLS8@y_!L1~oH#%B{g8hOS(;A9(`VJw+Iv(mXC`4d>FM9H`6GdpYBKs)-E$o%e(V z+~bi_;IbJ}SJFTwvQqRT-IhCnOUU5RDhI)(HGQ%u$nVYh>w_~ITT&e{lk*o>1%s0<@nv6b-3JP|S!bXJTM%NnQAL4VrF? zmm=oN9VyijnZUDU=^jiQ*l?Yjvc2g@te+aiU_ceC2xum6cuE?4|W<+?7U$nUf;2)!9WUN;awU3g^>|LJvR$Qx|m)ru*aVqPR)XJc9&~u^M z-2pqj|G6qYvk-ruiKeY{Q`-jS>1oTNFXn7KM?wp}B@g1*Y<@}3%KW>MbMzCLxcMhe zIBBhIZF1IK>c;~_JZ@|D2%Y>GMd9LgZNCGVBJ6tyrC)kM?QpF`Rv67I-k^i&<00^b z65^8i!7NcD$RO;cfaTF_+1evt=BL*(D8>MnQL8mgtfc+vTC?j5L%p}FOhYTYTq$_e zldf3nZ5Pg)8GJ6+NEoH3mlU)n;0&Z5lD`j#p6Y_=ZFqV(c94@dk4RNoM!q@oR{lQcj;LDR1ZNX{d>wOJ_82!!;5U76p+1a)Dl_r8HVlA$oAa~*0g^fX%36Anp>_-b(M0rMgl?Y<6^@qu`71Y0sZso$Ar zQI`7RZ)V&k#|fPu&^0GOgk=h=nr+qcJB_sj=Wu%mDy*?7Bo}QJH1CfNnGW&zw9ZhT z&Eti%*TtN(pWQr;IgNLzWk=WMUXlxnq~|>&(AZjWIV8%bHOLng{=vC%4fNY=rYqu= zpAGc4;Z+~-N%^tD<2+cr!Fm2d(o{r1buBypzcMMt0A z5zaG|DJ>C=%@)mS=~*IZalfo_x!jsy_<;1ekA6@>uxhrTA~B(xmLA9J7#%BpUCPp8 zb;FnC{e3HzvmDGbgREN4&MI0aLHfH^b0HG^H-}XbcFPy*(%X=&Z42+=-1W}j!9hoi zho#T>&7ki%hEU(A1Do4Ye9OcRVnvM?mcxcl_`5SDq$6kzhoY{5FqlyWDlvs9M11o)vUyYhK1 zQ`#J%ByE86M(wGXJjsHyx;gGL6A>VSxvm<|aL-dkWm(c17chPGSVhTjAh{!dM7zSP zBI~j3`Imm9RdW`IKiux*^z!p5**=sr*YFKNF4P#V5dTrRzEB~@5i_A*H7ZSn&a4pV?8ox*bZ_|}hY=Z)LhL$=U!V3moMIE_ z`7(&Y0^j;ycEPh@cG2J2V!>bORrkM}V@i=B=>(wa{tvpETo6NmVI*Tl*}^BQtLJuE zy4n*D#hx+Xn@Eto3|yFDsl!k0Fd@HXKO9C2*)F&hY5YPxusDP^Q=vjShukD5mlG0t#Im!WQ){SPMIXkMa(Pbs=MU#F*P z$D*h5f&z};`Wy4onxyvuzwgP&zG{^_^|VLWp=S?Gnw$}PFJpX2{X@pxc4qeEjyyiE zct!>y`)~be|6m=s_^}lFVON@wRJbe`ew+*cr%;W5p!Yc#!j+vDkgzn$H76119C`DF z>_;U%U2Kx9fv7&NLbo_acqhzh>U-wnDVli66qe40=7aX)$##$Tgw^>zl+?nBUxQp{ z&q02Rw7fRb;?6kb8=Fh!HN>YvI z*{4rCQamS;Y2MY{^kBQ8@f|79=30M|y$|ZyjZk`qzaLfMI?6ldV5*Tu6UJ4?f(2$e|8=1^>rw|Je#IKvwF~!Zwc^n zJE%Iol^@*hhRj+r#p617f^N`}l$@?@i`(^4Yn`Pv`D|aN__$4kNA6We^?7n@|CGbi zfJd4D=15;O_~O;-HM*0X%L1ViDg>Pxvh$bSZh!vgl4uH z`FJ#JUxZGjZkv-)`4@%vPhsN37oU#$d#+2l$STORBYPDsmQ~YwD(243_7yN_8;5hwRg!v(# z(lnp69q=<1I$a8?6%gY_v>-!ko8lblI^^i=#-t=VmuzA(i!7qfTmWoOo3vO4y1BQR z?SWa`YBnLF0L|!Fu~-J|X6=ySzYt{&!Ihw-mR=K%G1sq(8tTK% zI{mEEQyCaG8ETp{VQZ*5Y>8`L^O>52$QjQEV}3eE7kE=6QYR2^zS)p*STU*!jBx3? zsiLzV=X{&DmH)RbE@@`wMK!fv!A~_q$iCDxGfhq7rIzKEYo*D)c#t{Z-J{m|b;=vI zA^#^Ga{60t@o$>X8^s`={?={F&kv#)xDL%*a-pfkrX&^mh34C~FQ%Ksl_`xn7OoT@ z8xDIlw({c6LC=_{5zzSuAt^@H7Cs9%aL8HQL9vh9_!^gLd%5q@nx~8KD$s8(1a@y( z>HKA-^_3frU>};wZ z=|2+Tr%lZrc+iEyL9cbf!1!~&vT z8~f^-N?UF<8XAL@Mi6r$BkJJPz3FGCWe7YWo1yOufDrFhpwGC-xM!J|qNIM|q`0?M z+Fa6wm;K4g>tPc0S^ie8RO=%lD+Doot|CPD4J4}7fusB>b&S&2FS~y1NHs1!1Fof8 z4yQx)cj>>N%n50YaN}+KYG*0Jo}`wg61am|O&;Q+!S2WGW%QCb2dH)_wfR+&G<9ig zgegdl5vrDnCs~qr{|Ae8b3?iQ&8g(%H)rE5$7CD=uMZcFVy>^Imi$V7C6-=sE@&f; zl-+I1D$bf|RZkNv2u-neiwx4R`f+ol26-8G2RBS130IZ6pW+SOs5kC*vbs{;ak)Fz zn4X8~SAY9b5j#o_ZBZQ$r_#9-ZqBOB~{r znt+AS=!-e=!F*tW1ii(~q}pW=Qw?h}in`1+)ywyTA>kE!&7lKlxugkPo} zuRruI7IHguvF>Rdxf+3vekuj&BI5a^6GAMx!kC6E2YXn9)rP@zOcQ~8T1nHtv5`_+ zEhzoR+2GOBmAI%M;Ob=;^+S`#?QTE1%n}Xkq(iH;{u-*@QI-RgV$wrnVq7IA%OZ81Cd~h{=@7n$QW~{vBPu4Z8d%{xPsAvCRLq zbo=gD0bhs)QeJq%GQt^h>v(gqN`W%}gN5<`S6Jro&(vJXsQ!b+J@A*lx|y6NhExxE5D$|MAHjE*R)fX;9hqW~*BTOoT*sr)iymiuTN9iL`I2)Pa zylVeZ2DPwPj*`J2mwHj%d8>T&oDPPMk9feMG$U8?<-DVD-ZWI)Ug zgcnVMH!x@zWa{Frm2DoVoYF;l zVyTxm50e16sy!%Fl_a9I6%z%iT+163>$n^m=9?p=2P!3IcGr4eZ(UzPE%1#MT;70F z!F{6yM>65IC0MLN6bKfg`RzS78fHacl3}%lbJvz{)s^S@ z$xA%YtSpx7Ok8issg6YK*d0V?6EEMyV}uV%&ZLtIt;*X>%o>cc`8DVTlItGWvt=d6 z06BcvP6A>bri~fgAYJ;T$C}C$vnC&C^L}x$_q@l(TNb|>HDxd*&ir$Nlx>j^Ru{*s zt6oC2}#a&l3ns95$Gj zrjy273XX!Yf_YFbf3Vu=T_Bprl|C@f-Ia3xP6u6VCo`N;R1Pb#8IeGy!~%qcdtrnK zJ;xAi!j_<_E1EW5y{P@($w_v3YjXV73qV;)S{?cB(TY(hfpXe61S1zK$PGTsgmKaE zNQ~*L6l#iO9HjMgoHw+h6!u*5U=6OYu#~%88WoF&MYsc!%S^;DRxk94W{LPFd+)@~ zUkc2Vw09?no-sN*EYD(-2VlRh#(=a|=?A_))v19^#_no+->T4c5CH`w`;&;-0X!e0 zjA(UTC?yj!Cc(_x&CrH8C1Wevl9crIRv~+E5+=n$`!AUF<)~p|4UFbj?swig8t8#2 z_;@wso<7y*8nEUU)`?ny`E7JP>>pir?;pniZHyYrV8q*Xj7tF?pzc$h6V&HU5WXKL zomJHj;|o%3bz@5Vz)JLtBI}?6&DRll72`gE2qVPRc=Wz~_<1=^e#?VGNbz^+&*hgu zlHB(a&A~A;MImlbam8=t28|hKLB0;Pix~#j89enPES4k$oUz{ zXHMK>D`MIlHX8RXuFp@P*LpSJe)bP@v#qRYvb`>sm+)ouCB~<{SI!>$s zR{NlY62CsG0!zV^S?c1+uhq3P*-FKZ+?KDYV8^=9QQZ0Iu&{iP=(uhT#b1f_fhtEHmel0D`wA-95+Nc>e=^N|%vlwq|F zN*g+&@z(jQJ}l{hu|=7g;ZfHoi`1Z3MQ)}WeRE?op5gi)VSG9a(@Zev4a`OJKyp9pEI#so>eu~hqEVWkdqn0Fzw~eh+4>_me$Fd*>P=hs;0v$SRG*> zUR)5&G#~-Dy=9LjJ~2>8x7k7J{G093)MTLR5NSt{U&h@etZ3tb$!4z2xmui69<2mJ z6M~kgrc?f4xw6B3U9`+z3JNR5ak3@bB_!}uTC(D)CG`mN#`uLZE+@6Yu#S$*Z(K|43^9egxZ zUZ}KBqU5IbPIvN|n*yn>nclP&899P7v(uExtndBgGku)wHT_K0jtBv$WNej}hmpQd zN3ePBP(-S_z|r9#5oSB#qj3cjHq$_Hat26S@d$)r;z!ElsFql#xth3GyV{IvK4h1+ zB0^Cl{F{MNezL^n4R&b~3avRawD$bRGBC8MQku>;|^obzi@ zbbTQj>ejYpqugQkCeUaiS@y5J^KOP=6Kz0+i2alPfqh%jIxcbfkr{kXszts5=XU&Q z{6t}1szd3FQ5!PYp=)%c2g%}n`! zLr8L1M0mD{s`>4z4lhL*1;QUYx33NiX?!Z$rAGsagN$9p?VZe*^uiaT11Q<7tztAc z^bg!YCl;yjg?^&HvvaDf?F8j+j{#A#Z>;ORDhAs|M$?)l>f)LGR}eeMz#CXVR=LY$ z-AsVLnGGE7*#BO+Rbc!hqF6E^Wb~`8&17F3Y}1G*zn9#%Cn; z%}bNz^hB0D&-KfvP1ZOWArys~WW*asEp_Qr`KJA1=so*oakDAsXB*mBMX+D4b+ka= zT!EaNz)!OpM9%@zD$!6Pks;Eg@SU%B$3O`N96@DnvwR9a9v9<|M$Ltq&vBLs%OPif zLCaB591QPIfdCn+mG_(#WNF!kOdN|PM8;nt`qLLBxn`xA7nc7P#Gx|3C?#~x{dHR_ zALKhxQ(nFBEuZ!mub9PxtLNPZVjK0acyE(@ggzPAr71>Ik4#LnTq`)><4%o!y|^A}&Nghii)edP{(E+Fj^z4~kAF^NnaG=u)k?@~jx%Ae@t=xnL926u1%IKJu<{i{%T)1#KYxG_SjGi-KTgOl4Ilc0rRjAmDcgBb$oO-h z*KH7wN>8x*;^`Il7afD7+39pMp%rVx2S%EWPH$+rccn57>$mFa(ZS<#pQP>FF@b>d z1_N5@kWaAornxCz8AeByu7gVru#1CtJ@VD`fMTf*^K|2-1=Q;#C`TW_&ADefQdf?s z89g@Ei15O%VL8^B?bLIam*4eNf7w;MTVTZPIn|w!W$tdc*VoiU?UnL{>R>x1FNva5 zHIEFl8Odw8K{P5nZ(+cOIx`Zsa&No$&lg&5lLgi;{D{eEPPM z?RvwIoa~>}y)Z=t$ec22CMa#)y{QF~Oo?VYD2A*8`T07Mj31Z`b)t|4^UGAHSr;XY`g;h<=^Iq{`H!&tB zAw?9TokwiO9hLKP3u9j2nm$ny;#1fyHe=9#^FJs%%b>Q}?q5^GrMSBjq`1>Uakt=s z;ts`v(^6c5yB3E)Z~`Pii@Ot?Qrw|Xw9r0>_soCJ`^=f14`(Km*?VSxxo59?FS*yc ze!I@l-UF9S68h9t*R5shLCB25?>pi`m9-P^ysR3%CW9s0#J=^zZF~)z%10r9t*=#z zI3KHk90|UQ%|?2(TI?u8XRWe`nNfl`;oxe|cX!x0%;mXpO;vd+od>$9YF0bVe-_V3 zsR>mRTd4F*yPECUi@4k5;$h%3AF|!=Rh(JwMqngmzBURaK0`mXuEnpgbw7CYO~`Ze zd8VFmZv5yciHovw3W_=2lbGv~GAu0jxw!%QR8fttdl$`RpKXVsNb|g~HlEjblyK|X z<{vw46Z9zcD>`)0qbgee*``>hnWNYf=TFo*1LUE+|k5saF%7anQhkfQ1P35@()_Zy1LSzD}DDHh4O*wc82s|nBgDYvM(mJWAM+(gH@F@u3k^& z(i)_+Zf_KY**aIVX?0!O`Pv~lo@`26)5rccd8t~ zCE_~qhHrf9$f^#OxZ=Q}qciAmn^`TuAMpKsvMCq`KVx|y{ZY{mWan=S!a3XXm;C)b zPu#n;dmR%warUk2>{RCFX1zmGdUQpyt}`|ee|P<*xr7`yrSlcYz#}T2-TbC`G@+$} zt%jrbYG6_q*xd1SRs+ry%?j?h)o)+g)&H{#xuS866*uP9-HwRxTB)_J6fpPN@!ISO z=iE=&ez=kk&VnKH&0wN+KkE@TzK_Ax=#YRtB&9z3r ze>#ze*aGi|5!$~@YDqkeuQ?685 zxh1~;F<*l-Zqeaedf34npO^ZDX9V5@WqWLW;)A*e0IajhJ+D{vsQQ~oV!K&zft~#NEyXhyBE8Ods+(#7xe3nYO8WJnNM&CX!L-b8>Y?8D!oL!@}~oR zPZ1qb^G%(XlAcTwRO&S=dc{t?{0~|~HFP+|3mVA^)B1sEjF8&5tX~zD6jfd>A)S@0 z{mqzErGIKjo1#xnPtxu<-OjmP$H7W-rNmReEfrXs!_6T@)t;<7uisdnAy(N{eSKI& zOzeHdn;ebI6M1LboZt(H8)O+ATC%U2&pCYCDwr5jb7&uXyxwz8g$K4B6wUD^&fQV( zu+-yoPtTiJjoT7BX6km_Zi{q)n!CN@U7*F6e*T3oVD^yC*ub0dv7<^uMiXGLVb#l8 zCKUoY+wrn{vK{SlJelOKce@3PpIKeB&6)H!)dT6UNQE@E*UNmQRs|65fs z7Xj-oAM-@`xgC1YANyWxSDU&VdjXZTEyvmb6Km!;4Px)08iT6~Wwe`>BVk?~{}Z`kA&0=JGs&7Ku%oG6E|aY@C&@!+9^xj9uL0 z;rg_lYoP)23oRb@n0*;9Lp3MHCK_5^IE-uuGQyPXM(xHpr+r*KL?brh9dM7IS#bZ6 z`mJxA##mzQFXZv)M?CzMUO6u%&iUUyXbrZ`p%3?h#nAURy9V|OiY)!J|eK=d#MUDVBS#f=)8kC zUUiMw)p#2qL$sK(=}IPbcsn2%|D>W~U`f=b985VYQ5No9`IB%ZZu*bg*e?+iYQM%U zgHoi04e*hp4t`NH2+Ufj{u!UlW6W84m`32VMDf08sXM&=0z(i})e*11*0{m(ac&zB zWz?sXn%Uy-?Lh?Jau;CDqs~?#oD^Gkl+<)^ZcL8ow9NLOz|HN00$scug4%z#08~B!oSP)^SK``NtJyvJC2w1*YxBM(A!Ki03HDZ1@esr0LK>ql zdnP+`1$Z3tVu&P39EUj|I&~Y;HLJw7Ru&MJ@i-c7J;Paqz>pA^d6SbgoC(>yhW+Bq z@oVbfhBOpw-W2HPgS0!B z_iqH^Cc^-ua%1FO{O!Rr-x|c19z_Q|e}1v-;)e@{CeVD?kqhh@*(G^mCYGgZ&IYP< zyb=&5g3->76IVkSz@aluGZZ~TX3A+1<6sBjnn6nR{4j%wTuD;sSdmiit?d|<$z7!W z)dTR0Fs!J6Ys&B_9ltF34(ar(vBesZ`ciY`v@^XWQf_PtR^{U5ngxVv&o+|SN)k0n+bvsuXVNRzcqwSCLLX!N*UG0~#gwVmbBHJU#qF@!d z7$-E#`5UbuUE6<=dUxaYH$pQ8ekzCMaQ9_E~D zwi{z`rBnEs%-f66PX;T}IPR;UMyNE-jETTFTO>vH+Y!$=euGqe8|_s;sDJ*{>K;%Z zCG5e#mwNqNrSuk8j*rN^_>0N_j;r}`enI_p9v~;GFI6)=rI>N@0LZw>_+~%BJ(SV2#!?Y;J=I{`DWJ0u-Bwi+M|>%JvKc z+d`n*wj;N+Y?g3lk&_^e5NV!i&Fyo@it&=qkl-JNR0qvtGIgenTU18sOXBgk5ypa5 zM_97tWs!o`cb~+uN{}pv1%C~DTbXT;N5PP`Y&o~#W}tzjRy)dlCPNYVqKYWIv5M(g z@(@+d`pRndT(QSo+AmH?dGH9^=AO+A*p!b!OvhmA>d)~+Y{X z$V=c0Q#UJ7yhd;=NHyiEb-VcIDp#|l>(D%_tDXn`(0)DCWOua)&K&=+xP9W|t|5*# zOW|r&UnrjV4s`spKiPiZ`MKm%O1-R%r6@up-yHR{{Z)_}aZvEQ{Ptl5(48#9s57xA zB*~m_=KUYd3(+KDCBAnZkuv?&cg*%&h(ds2jvLD$z`FIbz!IUnN-=+hy(mwSu2?pJ zq(8wkNhqstC<^QK9eI;BnbkJu95Nsb%!Iq^x``S&4@nywy-*qWanLLeZuR2Ns5o%= zE`y;sb~IXT0QcWqmfGxFiI$v9(vi|nkiRwjxqR+1*nkTiH<6A62BP+KgOJr(z2Qq= zM7SfG==c`}R_J1*CTlqN=xfA@2UteTDrl@fcqQv-Mw{;NRZ`k@ZT9uFFp%bE!o_{Wiq7eqGw^FnDy>0EnnoI z-SZfNpQlkb$x@pg`J*?qi=>ES3EF{Fl9)9YHX{$UgX37^>kz82T-lux;eG*SAr5-CkK@pxcMo94#?T00g-8cJn z{_A7J^GV}_PSdS#>ICR**h0v6XBJ@TcH$p)T~_s8)i{_vt5B3%z9B{#rUBw=(#vwQ z#61b!Rj-Os+9E$07s3Q>Xr6fY3NHE9-f(lTRFPUT_$!XhdbfL|WnJ$PnsK25lvei@ z>T3h!L9*_#pG(=h5u|CElY$k=rU>bQkXPr&6Kdx8KppbDY{8v!lrk_0yJ|qboSiNp z#TcJo<>*uEf%DHmsPdeNAbN<22OeP6oTO3ILA9ia{Ame7VNY{a0Xo7+fX$^6_{h9D z(Z|A`E?7?LULz8B?8ElkyzCK%R2ERJjBE>af1wr~G#(x|nQ&}mk3pY4K&@e9udi{A zeAbulIqHpL3*A^%Id%7u-Fn|X_UE|n1d07FR?r~%X|pK{%I=+TcqCD+Ce-8{BV|N; zXy z`H7#Ppv);+vqFiZ`Gq9Vaj@{EBT;!GeJ;38`&^7b;HwI_n{E}J!5ji7Y)}8kf?IdXIz#Wh&6rXymzP)S8DL8 zy_=uUlkGO6!z9s8vpu~Y#miap>r0dE>gBTN1`1u@Qpe3WjWmb)i_+c}Vpyj+wIq9@|29x{HpvkbaXFLBDb>`xxjSv9s2cG&R=J z+FK>ovZ=R}E7xMebQ+fbk@j+Gr&A}%p)y48xyM7wg_U_?jE886KxIbngkr`KEr!i% zYg%3CA}#CrVj?RSzLd~oTM#~MzL0^$V>WOZgsBId+23 zkn*i{G7URvn;;gjX>uqaF=K;#b&I<3K<(=q>~k3m6ICLkjr>7gpK=LV3RrqLc&lQ7 zYGps_dUf6lx%q9jWI8@4Gz7~SeI3Z^lUQOKyB0^q%(Mg*MIX%%ndv2v%^Z}|v@-bz zEk9qk4Q>Nmn0cZ<9|W-4^=2fz-lEN=s~i9PPTfsG`1R^F9>UAZ)xty&Fv1?3OV7er zTa}v+In%3}E*+-JBZYIJ@>PR2?eVLZyV?%i4#X2s4HVw|=^*AF!`9nNP8ck`P(^RX zxkYWHUw!<=%TS!^266e#z1kSPoVFd%C9nueo>ThZy+uF~<9uM;Dz>@9&A$@2O2tFZ zFE*^^wos*!6lj`FnZ)irZL*d@rIzMdV%BThraw-5s+H9frvToDu5_Fr$j$9IYqlC% z#+5IQ7gv{0Kjsx}!hh!8CGfvc^8}S>JqeTjK@*u*lqBS#Z}ut3EY@SMRpTCfI;)0} zNFHRh68rEGW;pueTb?0hRjUU2-b8}0(_q$kp{%2wjOA(H`fDA$dc z9OpEoemYfONJWX#eZ`q!P~)gMj_cc4do$neSpRUwWK&T+R63x77~hO9AUU2{4s&JB zl|C#(?=JBqbM*F)G^Ba2enOYpBs@fsuajLhOp{%p^Kx^slXKbL6;HE)D20T`F4rD3 zDhO(s@W`|Axr6(&)CSLlISpZNigNh7Yy9|?<-3JL*5MaDuRAoVapcdGsCG8X8fXkg zndjoeS~BV>o(g2Q1T22aw{xTcE3G}>2djB=uec{lxo3NP@+T==fU{%QRG1hl)7H<= z4cj))xXB*~ZUr2eT2nvd=arS~CvrFRYB_!Ib=B_T*l1K@E!)DzMa4(Cfg~KQ8mExE z=iDw|z0O64$cg<2$81czItW7d+Jc{&2)!n+6rRt_X|QeA{LGy&lxt0}a(kO!^O~5? zo@tDEByyw_WJ z;lg;!aP@`g?|h{f4?z!?{{zGhpcD+5aH-ZKud@Lo-dzX}7D`eTx==$N@y?}gh+~7! z5Vy`hdBM!l zYSj%n5+&(Ms;d-tx5NjW$yi^Ttl&-$U4;?LGTX$cmZTaTSq}2bB{!-ONm`d2jqp^N z&@JoYwXUnftA@u_XU`D8p|rAfD=(EN$$qb@!0FaQEo9+Gtb7u(wsn%ScbAKp+TX&( zojpN5+j<7LPl*W;p`EU?TJx^Nw2`M(X!oH^ zYD;~6#Jc9)dHd?&n61qzXJ=XlcdXORI=hebFAW^|hAsiaKwzD85wf##p_;wP@y*Bn z{8qS_Tjk8ix~AXL<%v*6MmhOVm>(%ON9ZImhL~GaWy{xI^hN~r^D)iS*ux!1U~+yH z*i~3K>Ya$X6`+gedePFMo^ZzSLhk}AKT##ZF$k`F$7OH1CZ2C1EYKm!#4wO_Tw4tH`&2|(6$nsn{^KiElJX*%hJkb1?%(k z)1E0trq;;{vjbPl$>Lg*BVtTzSA5rhmIhykSJ^ZlN?={ELVqPc!}SzMVQpHC&sVjM zaa*+s#y6jpB4!bN92aXnS!0)?fLVB5@k(pry+$`wC&g1&}9`(uU%~Av&I97;j`?8wLwdB zC~BM4gVx_nEi1b4#|GSk%e@1dr;Mb+vVDlQ^pu%&IIgN}&Xr5)xYt4v@&GRJqfq_I zwa%P>1wPPeGz<#P_f|D!7nGvvIqsKXDZx`7Q{6Q-4?k$gJs<(|bA{#qFwa`|@}hZU zH*AIo@mb^837>f)d49!;gsb#(aFh%QH4RC1;{p)2L^clFA%r=W0-YAuT#1UB zsy>S^UQXC*jG1$Fp!;NzTXv>&`89^K3F%V@-#0V&Yv;b1Y+c(apZ(=B5rHj4Hm58V z2Kx6&LE>A9oFx4qUg(+c0XMZF(MD=z$3U=wv5tNnZN(S7hI@(1v>tA<4Bv!Zt#z=C zuC7VGfUL1OL{V)4S{D;kUjxR5#&`^Djl)j}(r22DCx51S)lA2j|Ju8@nZFP@{N+6m zwD=fs38e%u*LT|LKTN!AiTKSxKK*SI0SThtdVcpO@vK8tx1%s|%Lv2Q0Z+ejq7D&V z*`c3s2&n#nLvg5O-WjC7Am03?uUt3^xN7T*3;2|$t|8y*QS{i zhd=5<5wun?Xp`MFoL!hSx}74WVMIj_S}Wx{joq#&L2)N7*q~P`yV98s{F3tlqs$UA z7GMOvwoIc!iNMqyE?RHT=%z&#Vup+|)d;~*?&@n##aygesGp06(S%7Rw*ZIRXj8d? z=Oi9WLG&@7G4QouSg#6uu_VqsP-|?%-G3TuI-P<);n``|hF3!r&2Eg(A-6kSea`@J zT95)=7x`uisNVvih<<@X!ogoeRr1Ec?yCyQP)_^Es|EY45idrwmHmXCt8~4eVjjLu{7$v=Q>sm2yg!GGL_YE>8^E!c9_r zUS%ua!nezf{V`J>P5Qa&$7rqr=ssptof_g3Qc#3;sUg;hqNi(1sKbRW6>unD@nTWf z7K}^XAb~(u9a2{=x0IixdGd7et=_OqAma2dj1xn)6>mnK-~=ZPmvGY&(4E=<=>yGo zv_=CDLm_~fiL+CC3|1AQV$A}MtFJPw%5fjmZ}i=^*8$r-`0qxH=d@~$>xbKM=aV7S z-iPwtHM0hWeVEOVSCv{%yx%}uIftvL;SIPFq!HOee1A7f)LLbR6VkZUg~++9N85tE zFsI&_KzbeyMeKZmuhOcP*T!MK(Cn=IOxlT?{>F@0k2wXLEb3Z&U1 zItOiB@2o15v zh)mIv2b0%83$uI9m^o7P?G*~gm3cQ$6&&=Ei&KLG>L&83h)zf8xe9g)-wW+m*W-{u zJ}!2BDi9I2Iy8MUTE3te|JiANs^m!S>odA=W}iN`Jl9eeHE7#;*z5%`#Z3#>=H`xsk=0So8*&43pBo{P z@=Vji{^GAmaEqCDDJH{jKnmdcdT0Y(9zkNB>1Qz*sdwZQFqJl7k^#K-N4rcQ%6Ca> z_@SpotLbvnoy#*gN2B0A7o_KO#{I$XJ&y>YVp_A*`P2Czvl-78?(2jmbGCs)18}Xh zQPpv2lf+`Czig#>bSsF?+y&1!K=;6SfTxjN1p53JWz`@{K9TFJ_Ud#Tr+H4|nu_q#L?^5m#S3=%TP z(mQD)6_#aKwTIO79LKd(*04j|-@i#l0kSp2$(qbu>H~Pi)Eov6l;>ue^J^6b{l=j5 z+HEbKlBqhzW>%u2=5u>oE~er!tK42H;5vZOa)NgGW1}sT(PMd3*Y*@LW7o5u4v8nm;;jGqg zN=rvMQ}i34FDeu9nOGw*39UyA4gF^=CAJobZ%_Ia4F^=ws}mRcNAj@2nVm^q9g&VA zJ`9~PntS5)tdGR0s_IWxt*@F#ZFSjwIGcq|l!ZDq1gRBkc_H{O*NJbc<%UWKtMW#W znZ3T1-iMRb-VMkY-XUVEDaUHIsR6auFGNo=P6xiarC5WHoj#7aBxfG331&>}QwZ5R-QUG@a#qlQkJiYD{!RZY!t zyiysVF(`crxR$;IxL#n`n;DfMGqV!;-|4V8VumkHd<+bCL3 z2%yyVYO5G8TL;-@+b&XlEuU@qt34wZUu71+j+*;T|KL)_K4xHpS^d-4%)Lw8X>1{@ zqql|G=&V|I7npzk$;7Z@1p972wBLZ}=2UF!+f}ya{`zXILo&Bk3fb+gt8I6sx7@>mFiAVYoDH!S~5M;)ehwr-wd}YnSv# zs@|^ACS{z#62*kJkO!C2n+|$^+VA32W&()5SWgfu>#6!%n}K%aU9U#WhXJCu)9=MC zAx6!0sq1PR*VK>TT7uPXsQMJ$!6j4fTYwH6bp*(oq z%Z-8}BH6_bzdW_nQ#G`>*IGrbxhH5yH*pH-R&JpciRs-z9~=#`r^{R4Og8B`tA{fE zUQ^B#mS`zRkY5q&EgD2nO343^|9Zo!x=IizY}LX}?e?!=Q|iAvknr=9N#p0wJyG^l z<8OflQLK<1DhH4Z_8MKM zHK)AyT}MY$TTxiI-F;1^qx((`+`4atrWpkedM}IJ?TiI%G*;Y^&Uz>Lj>F{{#3jt; zyY5I+s$u@IlU#TB(94R)1ePHGQq9|M$&;E_Md-1Ud`aU=4COVBxFEG~4$+T09>p@; zNT*n&b*{))YXiMx07-6V5g9~aF`QSF*O6sg+_|{Z%kb|}i}F8cm~t);jM&Cm%76Uv z!PhI=A|SVv(I*#Nb@lg3ZSHUc`Y}g1Z=Xi@=RS9MqTGIjJ6CO*rcw5k$giyFbSxn0 z)#kq6nP#i$dG!Iw>*f_gY=7Vj+VoplPQgwT*AfnQmA+PoVrMqB;fh7c*wOv3_I&kB z&8<`2Z{G4nx{tyeF6V!W&yVd{rM3j*@7dm#ta+P0!uUK6Xe_CRU*55q ze2dqHC2#za*?j0PULbLqh}LfBQ?E$=R~Y@TeTPLzXc8SAog5fLX6Wn4tA5jz!U|dk zt}_Hxum#pgm^W?vraojgDKrW(zfpripW(*6`p-XUMtvw=5GMaTjc}4%ZPUC|a}I%9 z!I)0Gx6ONVTHB`O^V8RjOeq6pPVC8SZ+F1d`Nr7!Tw?ufL*5&yF}31;5Ip)BBP)F-X}QczSPS<1-a|`dj`2 zQth&YlD5@k`hB0Pt!s?iRTglz8q?Y>P6A~+zzFd;^LmRw&-`{4*U>I~!;=1NgrswJ ztumF}gH@uj!ODF)wAb-B%my^ckK?bT2hBtcl_r+nO5jDM}lDzPdpep{tV^@B~Rol8#<9Cqn zzBjKv2MWSIK1n785`s{=1JKjcO8o%5x4;kBWppq_#4ohVeZ~Vf+ca{TmzyI{+1Uh7 zr-S*S%C+sbtV+vv9vsi(ASEtHQw}_!=nke{q zYffYt@#L<1m^wxf1ny7#`>s>{;{zYvatE>Ae4zG>c$THV@+FQ;{G;F$y-q16w0b~D z7=QZs#dV_9qK1)o?N>*kZ|YADri?T#+v1&Km+eNoE|8sIA#W~kZ>6aW6fG3Cza@(f z6&Dop&F)x!XQzZfDe(YTdGKgrtDbpOjOkS-NvYu-0WwvOj@c~URp8r=~G8w6K-8A$gAKdHgqX9I#$DNLl7UX2?1 zx2`6W?qBeKnim}R-98if_-Yc_mi5#Y{MOK7YfZyc1-j#1T0k|(4mGn}Hayif=CZ(~ z05O(5(n+gvihUvTS=*UBWn_h3w%t~Aj)b95z@1fK~ zdz3)qbS{CO&K$8^UU9E`Nt#8vG}#+P>7R}!jL;K)uG6oSL7ywLOMrPayX`0Osb&7_ zBl7Rm$9vu&@~E8F$p?khpbU&$%x-qAJ=(U7qZ%;uuy|{kAG8HPI9e*>Ha{^oKyTSC zg1+I2d!ExRY|j5owOf%%h@~D4(Le>gB;&!*GbN6-8>(jt{s%3`c%^yZJ*(3X zMLmXivEKYO$<>jI<+*>*);wD6(N8y0ivrxV)@T>g837}VIv=WoiS^;23mK)-*sVcz zDDqv^H@3rqZMDgBU&=u56ruhcV?$&WL`mE7ZYQuQxnb9?rLG#R>UCJblbegoT>Ja? z5<3H}xJf%UKJSFZnd&JI6+Z^m%@Q7PrEriZC@|Oe+v*!i^_ZuCs`MpD%(`F7ObXFm zkIH!64(=hMtHoLIAGDJy(1KITKWL8FcP3S0a@`PMTzFx%tux;|rq~896 zh~YT>($8X-kXa$;C|Jtr2K=>^>zYZ+dfh~QZQbjZ#J(11Bd@LAm_~8kMuGIVo5eV4 z#Wv#WdVzBTiw3*wc8=W$2e*TfS66YGQ%!4TH2NeuWg}hBEG?eEiEEs{i_E^@Sh2Ri zv8=*0rd{xOs!t9EV3$2?7W2hmM=%+lGb-~>ya28br14A_6(hQ)tyg{YH6;0*sjW3A z-`OXYu6sp0xT%KejsJs|0BrPZnL^p`J?d3f8h~+iLzY%tjy;ekkAjs)bjN5+|6j*S z|L5U1;(%X>ghvxQe|40>SNz=%_qR~<&Hz0 zO^aC)G!j%u7(Cp~^U53yiwramP$fp`ijgnNxKeOmrDIL-c_sjYM+G&SSHvd73|Gar zK&E_eCBlLGCfo79cxEJuoF5SKD=$%lO+Bl!TaCug`aB8Ns3;uS?3iXo3wDLJm-n#7 zU%?t3UcAWU-#2KQ2%C%Dhp?n)grnBhX7a6FKt9N>kHB-}!v(xd>oa+k8!3IV)fAcT z(ogpx5+84jxu^GoMM2ZI56cGZFUgHcGY9ZQnKFfRszP5h@&Pb)3s|nO{*0{$E z!1LyDw?wKKss*Yqt_T7EL}^MctThR%FcF()_5s8h^<~$FhTt75=s@|^nYl^LratsI z*_+0{BA0V8;0f;AW_@?q1-R8H^TQ7MjV@(sYHCMP!ary<*EU%RcVb8}j+3ea6>)lR za49+~LoqgBe$mXTghxc#8Fv#se_YxxnTtZQ7-LD^&5%qULaB_cIxZS7-K3sevBvqF ztfqLqq4;+U$Iha*e*k6N6!s)KdS%j>F-5AmFqM{ohGMP6dQiZy4cYS!@@kDOoNAiZ zqU%@!fMmOa0t!-QAc6~o)JT}Dz8mB{s!&63aJGK>$1&>(sWBeN`rem}gDg5;7aL_J z0v}*BAm*v8&=w*)D5cY-!o(yWrz}(f0_3w?z1v< zk*3idt)UcGqD}qqWZO=bu5t4;*N%1v7SK2(f_f@^utF2~eW{jc4}U0ggI8i)A$)I- zZTI8Tk?}0&X0PI?2^fe|4SK_&=u$a76IGEf?y)^q@xiazb}Wg@goJryJkPmVJBJ?A z{-o@MVW?I}dPy097WU=A>}T@ZkG}~VApA8<1j6lv34oL$0Oj#qeo?UB&uc1sX*pWCxRCLqj3NFO_Myc zq)=w#4q~ed<6!a7BG+x3UD|je-|uKZQ?Q!0Rbo$U!R%e9*WS9M1#jM5r!b!e&Md77 zc{#!{ad$!88szb(#+riIyWEOd)Kk9tA&%ruhZll<^PA+L{5c~lP6=i1UY%}yfSa4* z4^-_V@4u{SJ#K+^x`C>)jKJu}*y5knva$_IwOrIuIliWw@4{uApq`3Ys_J6XET<+o zq99$@OI0^r*0xg9QHi|#S8*UeTcS>ji^2DXGdRVU_ogDNPFOGNZG-QVxqf_-G=A)Y z{u+6D&f}{?<#fg#LGa}VT+t3S0a|-J_VxkXXVZJ#KOL&yqBz04c`_uv!ti~j>M0K3>A}xW<94YHUrJr(1~_VKkr}->hipLS+n9)l zH}{e~|DcgPxSB3}doAntEnQ3kbuFy+?(!8;jR`zJxJ}J>a@)W*Rf!3luF?9&Hl{>q zb3DAC=PlI`BOv7ZcQAU6;?cdYcNHbqR=#R8&@Jio-^6$1KM&Mqkh9b5AR= z{XK)FwfHXo#NyKn?_BnTnOkYW-gI7t{{HDnp{V9G@CxHZ-RY3`+ z;^63pT}gUmjXj74$FXK*oAYoiNepF-yWTh*=#-%3FkIEsXy{h6J9b;|Ad6mji-zvE2-`<}i+d(5!6bE_s*{g1 z`2yjOgq3;WR>nLnTb)Z4V2$P{nL8G7qqfpzL|eB8pNdjhE8ERdxP2!QoA2#sTzg8H_&^vL0A>W(HM(W8Zb&x0fc z%j5P(3UHo>Ro3QUS@=TaM!L?8d^4>M_m$d^PKb4rny2$B4b&>>+0X%)ov)mT4LPXP zfZ>^~kFPhgVK6!(z^{cI*mHt3xQg#bt~h~U!bh})oM)>L`|xoe6ZV09BJ=Y$Noaz= zO$1Hye!)7OgQNDrT4%%d99$!BwDLD`kZlqNmJV|<;j~0R((E-%_eb(7N_6uTyio_^1s8TxaNteY&mE?* zNXRT{9t^+;S{(Wv*o!X=Om%AP4>zQSj~-C5HbH~|x$!gIsq7#1@IWWsghneuQnkmpK#Hc9U%}+c2rJN2fmMs&JpPpk{VT-g4*pimgz_y- zxJf2HU6nV3ophVr9iPnMp*QvGl z0Y2CC>>htc>;6HDJLbQY3PI5(4NhQth-eHV&f3jaG|tkx`{;)he|uU1gP3#FMrQr4yky&a%1Er$q(cF_SYJ2Z?nDn z)G|}~5tFofF~TnOH7%usOy>ksDKt9U)^^jvw5$7o?(2CGC~R|#i86D=T`M$#!1XblBin_vccz>}+B)QE$+cgoD*56qzAL|^&(D0UQdcjA2{Pl<=ur2PJ2 zdsU|50A!rG-P(b2hDY1uRFehZrR~}KdgLC`3<0{VEu?>VB1_%kPXnje@*bUSm#GGd z8JjoIQb$u2b@rpI1!brx=Qy;MOCUAdZFK$<_z^Gr_m!H;u9-?># zKMs7w+ca}dpqbxJZgin-R~v&pTG$NuTKjEH$6pd!H(s)agaPk-d(>n2W)qF zYfc4tPs@D$@b{+nruWa7vW7EeXIHE1*>r~=ri<7){H<27lSeAtolEszOaND0zo$HP zQX%e5+0k^#8ECeAt-!`SYDWm>Y#DX@LgIH|d5#*5(RE7UED)3E*O4R9Pu?W$**qv7 zho;oJJKE1vz(Tt}HmfDGnxv}{?e3HU*nzB^a}URMb9{ea9{$(sKeNrjbxu($;Dy$c zHzrdubOkbVH8D=L-{PJ&U>6~)B$&t(piD41yY5*-?{jMk9?LlBLz>+bI;D;d@pJXs zA*Z7#V=2etN68JM+lK0Lf8Gwi`Yn+b0b?jAcjS|nCCoXygb&i!EY_OVs+h4yDo-@= zvm})exxtmr69s+qar;|g5{>%S4M%(($=VNGH8ZHA;w;t96+%xqOr=<>JVn=MKzIaj zM`NN;ZQWyqsm72;`K}zf#eE;HG z@#903dkCd*FewdrD=ZNGr~pNbL5)4{>FnERAmmA%Qhz(Pp^~Y=7x>|{$ z8Zf4&Oe>NAr14_To>YIbHLV1;FXcb2s>W{Yu&;6s_(h9RLqUaWY5!4?8Rl|Mg1dL< z2F)F|lus)^t^lpfxouR%+>C~f=ohqFPiT8Q9)=hEb?@~&)91J@(HBROeQ^`kPw1;j z`}||!`#ni9YfWIl)1i+}k*B3+dm_!`{g>(zJ`bjfv*kinnLqcltQC7s5AF3I2Wkvo zO^8pwojxPZX`V2;MNu)D1>a`NyD>ECS#{`5J2C;w+nIu6wI>D1u@!lbzioQNtr)&C z93L??*uzeu$onlMXzuFg?RT!0Om-1?I1#;gZ(8*(`iSWdT=YC#vYp(Jvz|zqomJ+cz8K5FHdrxM2tRmb5#5 zlk@y-_=x+9wjAyH#cAr9(@uX@x+K9?hkX<92~|6et?|&39%XgUYTb;Co?)705$!JuEPi{%06Cw=LUIWiLYjegi?bj5X<~uiUz;-Jc_SaD-XHj05rMaSK zx-~1<%o3)`TdKse#`a26;O*b5fSOs}Gr^RzF^qYSzysZhmIi>VU|n#Tqq9CX^7utV z9AS|_bqr?CgCdjag=vSazS>1*Ail1d<+q@vRCjR5 zPTvo~=pEoZgw2-g>xQnGf#eQStd1^!$NgM=@q%4wGNG|DP;E7|TiT|1a63X-C)xOj z@C}M-Nj|iUi9I5AzR>^w;o`vf;_RDIYX4GmTd1Qy z6YiLDIp_%%JEX?>`})YRUcw7lsi-;q0|(zJ_gSRu|sPZe{nBkzIjz!6R%qYKo|jK@36l9VZTULR~gu=B9eOjW|>6E za%MjW9;`D_(okkfjL2%Tx%iwe%O>6+Oi_=mqo8T)z#^h35p9MvR2;GM9ilLL~y@i~;;XydSmyQ(bqrMHkZO z=0ExON^WhRtGh<@vX3c_YAtl3G*8~OwXVV$Rxa-X*D+2eBsWDOlajHDiVe8OE&a1Z zz5P$D7?83Ha=?$6(SFB)^72Y$K>a@K!Q$D_%j2%j!i7tIJg;V9kDpS-TsSc zBWo^&xkSo;!dm8o{@QcKPe#AedF)iOYIUl#lc%}$GwmXMh6D;~iVqP$pUNF$g$^oH zu!&ZtMxJlTwz~|maf)IFnP?TCbCM(?ZF~*pks;r?o0u{4wXh8tpjb>&W#F0k|BA^< z_?s97h^%rVL8Pc0nlXG&&BI?QdEWr>&ITaa_^tPps0^v=HgKY9?eu|s6Z8PYF(VPm z4xBwtlZ3~P9z0p9R6J}JNswRb`NIeQ${SmX_$1TSu+4I+VP^_F`nB{thnzW2T}uwG z{IEuu+#%7_3-R`GQ~r(MkQ3W-^5+a3PA=AB&@LKU*Lm~9G>*nP<%@>n^4Edvv1Evp z@k}6p{*uA!4IzoWQyGhJt-ITpy)K->#FjOsNJ=_p?GdxF%_au#R99E*U;BGT6k&x% zI`v$xv$)=yu&C}`JPIO)00IN$x2Z;I)>rFRG0rDicoz!nWgAP~_BP)S>#PDx+J}Z!R2e=!ut)_}=DHl2@4O}E=SlbNWxV=b$j+q% z=x$U_dm#l8QmBECb=jtW9PqSF!SnX|U+leQP@LViE=ouU2?P>?1x;{=V2wip!7W(h zjXMoNx^YNwcZY`H?$9_S!L4y^B*7XdI0VV*efGI)eQVYC-MeeoId|{6cU8?Fv%34O z>iLd2#~kAsV>}}YP}f>M@B8EfsC>%WO?lwY7Z+kcSBN;pvxaNfB<~c?Pfm4 zMUIiFme*kS#wOw(k$F6*G)%Y3!=se$oz!O%T(Km3NeAW|oy2a2r2xeaT%o8%d=9%) z72Q!5Dil6eC+9#Vmk#KAj%0%4pWD&jWTAswLv>ZmojEHIk1u){2SKwxKjVMEm7tWa zAZINkHh5T!6UiF5ZCOfF`n=%vOqU_CYbRN{rX`h^+*EB#>%A6#;h$`wm5Ww>KYk>Z z5n53(*v2;vlwG26cxu;A8|-PN7GZ?l6D%|q)sz;j>w8g-__YPZGm(36k{o@lC5CDrP6bDl@PH;nlS1V$`Flyx6DQDW?n^axy!* z=6Lv#mGA6Y1OR8D(LzFL4S((q(LXU=Iv}xZr`mDMeDrDgT_}$321VZC`wG*%g9Dv% zX3k=n5(qGS2%?<`?iQ+S`K+jnW!<8B0dXv-gt?08E8>VBjBoF-mjWspS9av3!$^My zorl*bz*!5HuH*PFIV2eQX+nv9V=N9k?1!$1yx1$bYHe5NJJ@S=^MmXmlLpjSRC|Sp zd(sJ$2}t^-Z$Y$KJg+;L5_%K2P8h-zOx53YQzjN&+V9|>k!N&edBrINS_;X~bFe*q z_xaQ+)6`6f&B5o-*T!0n`IPKY{GqgM!`yVx4mpCZ2%U1a_=iWFFR$2sj{6q&va&yE6obGA%`o!x%CNK&zM@hkIK z6s}Bgv5{?Kl-B!}F>6zfhEtx2;bvu^kGECY1FFYtHK+AUgqmYdoJ02&iMw@c?M#*T z!`#4LadM0KP=?53yPHAvg9|n{Z!f*}rT&9<1)(l;Hoeq%(QN^87q z*=!57h_HZvuQ4HD-Em@5x~3l&O=iOS;NcRQ=MrJD_WHyiHL;%>N1A>-KpsFbb1-4| zwL&^Jw8{-Fz;n%Hd|ot@Dx$PkVismUQWxnb0c^GU#UsHnHUIpHdEiLJ*aQ8mDCZA4 z@rn$yO1Hwf)>4&6Q&wkYWzrGU)N*X#R*nVD-6B&fw#@~5Uoc7zH46Dz|B7e%nWU$m zYg~_8B#`Q}ki*H?MCCWv4!5ib6flJ(N^Irjhm#qRk;C2F-Ix#26J{cj4WZk$jarm< z48f)<=aX2ncZR}{ig=-%1>ZREKA!EVv!#uMJ;V%`zH%$UrW7(VxGCf&L?tf38tNeurS+R60(@;EA7cyxfVjH_X1?_>GZq%lS4t)aZvW*GG)= zLS_t%uyeA1tWtU-n0=G%K7DZyO=fGQ_SNsDgxDhtjL?4{lv)VN!3}utIc)qT+yxdT z3sao+sYC59!WtIQK{132d||ur+DZt4M2YG4v0{XAFE>t#SXH|t4gD+yq@vK&x}Z5A z2rb?3-~GfnI(Mti-R_z+F=!QU^!;Xy_6~19xWj*ARCdm<{QB`8BaG_^{2Rm2udeg# z>nifD1^tiwc7xtv()TH>D1oC#*1!$7P2>1{$Xk62-BfgGOF-NJ11T=Nc;1Ce`gU@ULoyKVxPQ>SGhB< zPBKXxbyH8!SpC$#Yp>|SZX^Wa898&gdm@T@ahp2i2l6{S*n^;h+n-eb`ptLtG~Pn) z5Wg{Iu_GLR?cT!B(jvxqgeHI_Svi}%MkmP_NSN9MqJxgb5Wyushx~%EsJfUfq)VdN z%k4ehyH5%jVcU9Z`%36iwEQ zkC^|fW)9=Obn;J!33^HO7EKA0aYomr+O8=3E02QI>h8*K^EZZKtko*%rAowi46%}M z^zQHpcK^ro^n$Ke`%W&Q_dxu4kES|4dyqQuTl)k2#egiHmMUA$hhNJ)X92F>7JhOQ z-%A)Di`kiK&*t|N9hj<9Wh$^~h3MbVZ3yJF++POv+!6MTj!GJRc_aFVkGj5zYj{$8 z7Td5l`XNgDuP^`g68^Ol{&gJwr4tDMKdTu3DV^xGY^>u=8~}Zh^r*?bl8@+&EPU=| z^$Ha|=muem=YKma7pYJdSzbW2yn3$hVqD>RpFiAK?b!-G?Fep>-ES z9cUM^WasYWg2_0b$t$4~_VXYK*4YmGrs~Z(dVBmEW8^O7)o3@@PZ-lj3@;5L42*Zz zPmUz6*pJE%Ff;BDdH(1OS=Bp5QQPZ}h3J0D#os$)va`dGxIlNy5cp*fAn~m8 zo2wDVy?v$k821SGc)NdNtk?BcHQ_j33rFK#esuZ=VT${DKEt^8zlOvJ{NHjW>!KjN z!YANvc7t%Z3^fHQs?7DgQG#O?yqjN3d8@X~lu%@QxU*$0 zXvPe(Nl^O{g_FB8gjb{zXw$U2JC$iw{i;(U11q6Q%@Yj@Ql*%|&U?A%_u)=61YBNi z^`vmf(sZM8&FOB-ddq&y=^Eo2-PPe5*I{s{4n3Ncf_oT~QO4~k<)X`|{JCET{vFTV zrQMmo>O~jj7g}>GKQcdW{$F32uD|~$p82sJ`~4Hpi)cul8F>||E@x!r|d*P^;=97?N+1z}IV=2KOHTFuZbBGlme6{8~M(@{|CZnijY%;pY4 zO|<&|N-_VBV2l4JeiMtYa95d^?RTSkcRDrK8H&x|r>!>HdB^k{!_(H@=-Yn_)aU;O zbNb&02tC6`ubCl>-{*^l-~7}EqkqG6{vB4t4qmN?ud}95pvJjHGGLy+>N@87)GXE{ zWB{*+cR| zT5+yh{BBxq5JS6d82JGWb-kEFSyRh-jQ;jii`I(5FUJDI(_gHp#QTPVn|Oh4L}~U9 zj`}^kqut=oolrVFi81b>MJ>FhWKZ;hq@Yy`ozF+}ge{&g5xPs7=4QCj)j5lH)D2&_ zjlSYsI0l{0Bp~etM~IBjbpC`-gz4J_$Qt>W61R%Ok`5qe*b5lg$ab#+lYY|0X<3^jrb%|eXubT2 zLwp~h9&JVCA;(DNb1PGI%C^m>U;L$V?~hm2iBJ{%gif}a$*}>62f)W{K4&~bv=h>f z{dBcJ?2U14!_@q(G>|@wxR3hmRe?TlC!=KkN!k)b;d79PK$A5L^hhwTRt3!@1fOn$ zZz%TjFOjA^2S)$g6=-E(OXU6GNB}LI~<%>;tCSScDPlKNQv?-k|j~#prorGpq~A0VKW(Ym~_>XYwvJO3_|R61M7m zy6`LooJJn5q-P3c)2NZWIt5nhl5+;S-`)gks*}v}>K!|Ee4NUCA7z*oMd4%rA}+~T zc}yy!%kX@>g)I?bGgAG6IOL7_xL%}6aP8KrkJK=CFTddqmf81F`Rd*+BF^X3$41Ig z!h@@ODskrm&2;xgrW(}ixq)ul!J8NIJnN4Epms{1cD;D5w$gVY$}?puiwX$|^ph4$ zHaWs5Z?B``tE;xO$;3>2<^Fe5@sSy3^Sfj)oA%AEP`NtWnn~$$m3>|_15Ng?40~!@ z`OF3r$yL?w6@rP#rUFzp8;dwA2cy1y@pkiC#d03SR^Nh4C@cWeblUcH5@`cX=u|kg$Pg$v{I0N=?ERk2tGxh z>Vkzk0T4ta&AE$He;nQ9c=;qsWpS!+sw}puD=z2DV@f~1Z^=U(&}$0LV`9u6n=*LD zJC+`u&@zuQn!UY;xs|imh2J)`?-gkw_jQK*gd^sUTiS_wi8?&Z2!&MS1nyu0a-{xgsn!h+aTwI5X0n&8m**mE^Z7;Ix$`$}<2!JJTVL_vL1>imn$Q zN=`njO{T!1kC`|@@J2(XSgx(GOU66^vMu9MF67;f@3Zt!m{XL;Uf>l$KW}`GeqEUm zcg`E+s4{qR|E;`Yrp&7%ceuIO!}$K1c$XZ80Ud#~A`4DAZ&}&o{rq)VW!>e~>}ca@ z6+;CJ?yfsb{laa2sg}`8K+*bdj4|?KDTI7fk-pQA9)JuFu)S{Aww>1eVC2jN2FB(r zUh++*Od3aUFCIRJa`3FoOGntuH=%MV)v0as3yEtrZW)*%ot<*^<6<-6ovfgU&?nv2 z+q%WRKh>@p?F@z11q*Ewps3VWM*0y_l94mjJUTz_psJqWLmH*4F z;eVOD|Ia3`VBinVK^^=R11ljp51f`7)Tmh{lnGtYmuL7C`9BN$P;@CV!>fw#)$*w- z1(;Van3s4@9dy%C%4ege;7XTBbli;A?8Va$mk2M`ljj*xa5f>twkkrnK{OI|3f=9? zsGGf+g!Emtu8HaFxfCKjKZI4jqcq4aMBy|a42*5}Va{@PW=zp2CMQT zBAi3XxYL0Nn-)SQb(-X2RFPYqt%HXmTw2?`Iw_W$kE_X-m4u8f)T77i zHFCfV5sA|^dissA^9AGqk}-ZXMaH3mE+jtk)1vkrI=hw8oAP|m;1@fzD>eDhL1+4L zVwSbx82LSay=6l3^f#XyT@f-8{0<5ar3?)TlIzH;6l4ab&9m*#x?4RpNH#p=V*$N| zT%xVE>xM)*`_mO>MA`19I=Q`KpfgLo)rx|KBPsnnp>E-4VFT2giS<*S1ckwl4aWCQ zH)$L~a3LC5vs)x?bd_MRZ0=NrM+ov9_o#8qn{hbnt!aSTJ|jzsgR8}7!OX50@%v1j z00@&Yqi*;tFFFg|;UkFaoB6vvy#gLBR!STpC8rupepYx4OwqX) z&+u3!DcorSOCnz1A%!sAK}AGYjjym!_Df%4rRa<*e+3q5I=q8kG#~ zZ>vViOP;=mu6?wc-L}urXjfY5|K!}|WB!d*bd+Nda_qS7y0+S|nI2zX60Y z&y45Qi%vp=*&cG-9je)A9B--kpD#;OYwk*3KXAeE{b28t79Z9=J8f^M8@4N{p|L{H z?eh}Ou3qwUQ@PJw;Sv_7n`k}&B5m0iCZrOc_+H}#$Y_U|ju$;N zJm)I11~p)n$-N@^m?!Zpve|iEu|E7Lgkpbi1Zt8O*_RhBgX|=JY;8qVGMDv0AT|*s zy#dVb8u6OfQa)!=o&u1On(}vpsx7D@E4O6APccKN|Gkg*w9dv*f+5= z*V+nu*2vr1oV*`J^en|yFXMLd!@=8rk1&RHtdjSiOLL!kyGj|>@+TO}SROv2ey=0H ze7r=z6uSS2V_IE_-FecI2evklaUCXpOt%!N9wz?vjgx_TQh#0?6?qlX9@+jPG|q#x zEcSb&r=JGv4fS#N(J{G^JV$ceqIO}*)FNKPqVqC<{`UTc%U84$X_Lx{GTT&Ml%{$y4b!u$Y22`A^CRq>Q@ZT z8526k18{iDgeD#5Ga*)nHNVhOZ$>;QK|I(=0mI+cI6Q!$gx4r+6<|&`$YjeoF5hy9 zS$Q2V{HoVw;q=5Q|49R zG@@&zb`GAHZl+`<_$>*R3`L$pwldordQ)#(*1Mnxr|bzfgEhfNnJ=NF?EplxwKD>p zoyYw=fcvhZo(t@9S000Eb2MsR5(8D;_Man1%rn55KYR<;?i|7hQ0P|8vX}-J*6cM2gC$(Y=K6kJ^1vu4kT|7j(%q)dpcm z11=SqiJ|)*oQq7wm;2f!a(A9EtE#AGU+-M^1nRja=3c|+*0%c?*Mp(4Z-=2|;&*Hf&vbWV&Zx{ZJVe5aLV&JC&Rg16Lyo+u_ za|Q5b<-{5jFz&_D_OD1keQ2Erc8O|`QGpJ;K$7kDISL5QnxWsEU`ilQrL}yhpe-k1L-Ez`RABlg>+M9-GEuE`( zM@VeKGWQ%L#+%703jOko!#LtQGcOzMci{`4>A(##s@Vos1|GE@>35ULztDE;k*5{b z+7=SrG>3-ezY0&r6Ycx-HG}J0^j$l<$Mk3DHKXj$q?OSvv^x@tNH9NFTb^r0oIBZx ztw$~Fp3_D%ua~D2)TKCCOHK~NUn$D5S6VxXGl%o~PIBz736x%e?QD3s0uxvivR){p zc1^&0LuQ*IGYiiKwCy7_D3e?IW^FRdC1;!yuV1dQWq$jydZVnbJFu|^31z-#=ZN03XjF+B>|EFQlo#Vz^;k+X>hKrX3Gpgpgf)#2GHsx+^)k&fnHPN-fdICrL! z9mSJYVeb0OV(_O2liEcypd($U08@3t+V0JqIxA&8eDyN#x|R)bZJvsOri0BBdA0a3 zq)+%npqND}zk>5%n5u#+^KO-t;tZ$SG@3)4KQ&2fnpo?UwQN_bNg=$l_t!K5-fxUl zoG)c-SD_9qx1^I5hO>%klw<3Pt)7tXyJ)=G;%_HeZHdsdJ!LkDbGKeEO4N(JQ$*|9 zi{3fvenq>a45$M$0O3*y;V|*M8-ezI_%{$*<#I04>aJH}dZ38QHg8;@NaogcX{>&M z&T4GfjKSf2CqKE+5N}p^f1bFtbjmZW$_x&j6ft{&aG7Ef5fh0(u7^##LMc6zOBSN0 z`GU=zol_E*>x6AB_v|03>?*AOQu9h_Ia3rd(|>8tUhvpp*51z3??kWkx!;xSW_zK+ z`AK@Mb^f;a=HWGToT9L=fo67VM`dm~h%x(SL>%U^yP*aric1E}(CaRK)1Um_o=B0o zmt&g;m^(wTHX@({5tP969Oo`55*(%Zc@n)oxHCWD1dHF?&x7|)rm>MOK}DaE+G_LG zqZ&Twk2)QQiohw;+aZN?u`)r?ZDEmeW&}&B9+{%hx_HVtm*iGzm20*onitBr!i6Yh zt+;Ig|DE!OrFEv${i1`z!NuAs6!WfPy+A%%dTlKZy_>{|I%0qS$l>iEL!D_W$(=+v zRmN#M+3blmOEj)ciKabX(Pdt#&x_ek|203nr$i9dJo1a5297`SG~v>d{rEyozD>IK zHUmic%A*aBK{+|a;!?_GE#{@G&9t-XcBTU|6$TFGf$#PJf|}GP-FItAp^5vyD+#pA)m^Wd=dVF zFPD@zsLDm{g_t6nH!N;btVP?ZF<-H^hCj(rxy$DbVG)qRCM=YcE+k|KVgH533{~;y zYa^GWsW!S}NwBCVpUuJhFkuc8D+&vk6??^WfZJCGu}3lj zTT_9oA7jk!n0K;e_z%A~t#nECP-$%Sw%?FaTw0G|KNlkIUzRy`$-D`Ooi==BOMST^ z-uOB3B{ibXHdNpR`O{C6N0jyIB#AiKF3n6SD|JHbUo``_`GRsi?nl|WJcoNdZr8Vo z`lZV;-zRTHSW2FeoZQEl3w#%@W;5obuN_1`4jFcClT_X{?*6P;R;u1*A!7G&{svF8 z(I-87lh>n5wECO@n>j{+4xKP7hwC?>bvu1L-!4)>znt~DQ!8oZQFIwxKuWJw-rn+E zCnuq^ce)}VQyA_heaYqaC1X!_sQjxGbkhj4TKs)CXE70mEHc)$foo}DM}egoTEw|| zqc$xbX}9v#sWUhvT)1dF%IlI-;OBVxHvgv~Uu|?>?0rc;Q*Pj45BNrwP;jT}zp0YD4FfC4|$TeL12UueJ2YkK!J>aB^MX zNMrLfzwRW|+e_x(8*IJB#@DaR453 zKvUN@J*mew2V1er?)=AE!8^ai((Rb224Mcre;gkzxQs8yV8XJg|6JlsKHD_BF0_30v2xYPws2rZ6PF46TzC5k7jk!)Pj zoD795JbbA&j!K?tpW8H>JWd4H`D8xE&BTRmG|hia8Puyxn6|dt;%T&qJX=b!H?iF{ z9304yp?G#stNpM#m9G3)c7y^+tC$d1gf1xJ0tCOdqmHHsLseNv;IXV-RSGb1ghsu= zsz96z-&D$oE~K_fN#&4jQ~)^eU1C`M=c_%$L=}#;Liw+qZG9O(60$#QxK32>X)%QP z7-X%I!`&~WR-;Q!%|Lg!Q8#>|f0uleo%2v8{D}z@1**hxq+x%x2Lge%ziH8x)NKFXEJ4mzBAlvOm^# zC@BfOSV6pdCfIcv*RdE-Si10hQ8h-LBg6PZXbprwcsB6G8l7j%Y`KDdgHE1zYLv!c zk+xxSnU=sO6lk+vA>{r_YKfGmqGIiiFBMIs^W^?{#g*%KiY?+I2OlzLPzcQzvXj)E zE0M20vjbcr2}*Y(tDt%=6}w5#HriYVH!Baerp(A+E;bYOsIkHXe3+pP$jt1~F?cJhyh!v4U7P$3s?9saJogIBc(@Hke2-}ZD6)hP` zvWUW6L~MNR?W{@-%aWYj=dBI!oZ|#3;Qo!No4HI&kBTCuhwb>6Y(Pqa4IAC(Naw5B zmhJ0W_p&f?nfi)lrS&n5eRWl3Dp7MW{eG*}V-3y;FM#bpo-Ggu!qLozT$@quPHcMeWr%C0vHjU8d2efR;YU57nmI8=UU!RxK0j?+0BbMU|G>?woSokLmI5jIU;zEmr``Xp}=Jn@h=m=+c_(gqBJ9d+{Er; zlARa~ELP&I_qACOSbDnrgt;sy=1gBQ_(}^Xq0OK!A*Ju|w?>>3FDc?|-+`}Km$Efz zxmWlfjf;im5#%5TopzkYD}*6G7l}O+;`FY+=%vd(k*XS~(FG2*4A*k_eN2B;{;cR3 zG4l1%Vpu+hy@R)R6_0Or_vXUzgs+OO(vS&k)cBECJkFr4)1KR3Nd1bfpe}}q`dx9$ zX#Dk2fo6Xyxr6Pl+IA!HsGkPy&$q(gHarJhj5l$-i^P6#&W%`wXIP|-t>C{7T-8bw z*p^+F5WhSEDR9^d-ic`^28yf7y{6)fWs0A7^FA_6vwHh#lx3|(nqyBZ$sREfrU%3I zj^(U3SaJTiSQORQAjWe;^kCCiM{C+yr0!_jWZHi=Pu`LkKZ7$c`p0}+?n7!zCLpvx z8M|~en)?ly?lPIOg`fMatFrMX92Xc9b^is2V*F?pn^gSwiSA27llsHI8)!Ly(CK!H z1;MvoYn4kcPc&UbsF_HdwlPZbpu7-^wAzcbQrIO^QjYjRM+GGa&s7uf2&r|#GiFDiB%61vo`!QB@X*m!mw1YQz^=br7 zaRyW&{;{sJ$-vjg@d9A`x_k$KRsQf{d79Uw_5*woTm4hc`2iP$zK4-1Za+!9I#|rs z*@y{+D0R2mM(&9=AIWO|;;!<;>b)cX!~HE2`rcVPpQ+#DsiN9qU_jGs?;FK+v(ASa z6F+a+)-$~h_Lmk-D^h^1HXjb18-Pn09TsIETL+Dz-(AEs3*smWANa z>S!?`e-rD(nm+IyoU=>86$G9SonBvyuCp1#s>vN1QgEw9W{dD{jR`~6p{^ce^RhZM zvYKCv)5$ZS%9!lc%lC^o&B`P8F6b58=dxB<2^9wN`D%OEJlOdELV;I+Sm!7+H;rEI z3w}FL6xM>`;SF93$H@=clGGPvk~cqnTrQ$VKT%i=ZY5~i?KL$_?)Z^xl3HsvBrE7I zQW(<=;HR$0|DZwP5py5q_u}%nXX3FN2+vMuQ=pT6O=D0a#C{wu%*YC&BS;Qd+T|3K zvH+{wsgFUyR?+Fv3Nui;IQiq#)`NnksQN7|?n`w>fM~qaZuectnlDwRoJ$@&<*nyT zq7z`LC4O%R3Db2A+c@U@*n(_evh%VZjTY;l`&e_#WQi}o_;wXe_E5t&THdZNw(G6A zSHlL*ByeI6$@F()bnFju=Q|^;^*9?U4x#sucz5h8BGYB7?|EBcEiUdT{l#jWP3R?+ zdCaq0N&V)?_Hd5@Zt3N?h}{}) z5l2%7?Z$1AefA@h28-8%<#s(M*b$|@0(>0rh&7XX!J>-=$MOkEL4-<>z@@=x)(_51 zuBRvo*Ye)*I*0nBg`|`wtc#e$A6KgHEoP^p>*DWZeh7gN6_!0u9@0vkJREs(vXxO9 zJIfJF`^b$UEv8gNyJfYRol?B*OcSunl_aF}Vr+#JKB335<*}}D%I5GFF3D80=)`&_ zrSUCY1EkG`l%YxmZ$io7V<}2$tnJN{Ha0ID8eW%BQt^PU3xmZ;jxfc~>OkGxR90ZG zY_DVnOm{w&n7V|8QmbWelL3qW`-2IS;Z!4T6Yn4Orf2!dMK%R?a_Y=$t_y9kqtFJy zL*~jUhNLooV3V0@nl8XDD6M6yE5tj}*UYGfeAihryTD`0RCD6TR67-!JcsDX`TCmk zoDMLlA;bMPbrFncn|}#gMoA{7@I(0aSzX8^Pn6rxQoM1^|4y7FdDdJ>PR$ywb${@79o zSh=~$fl2y~t{b+=c5jSzGo@he#ZcY()&WQsl)vTa`kjWsQO2_3ORKJC(WP8zZ(6hT zXXX*2WxlEQH&l5JK5BJ^ZkCF1^|AwDEhLMZ`=9<`pZwAF#t;@4;^=2f_&AzU@HvTi z)Jt}wt=LlK>jP8kPqeU>DZoY&UT}9Fo`SahrwHxDBVaP{WCb*nDYN6M`Rk^Bk@W*F zF{jOid>@J6)&0$avVj+owFb2|G6nU5jMAir4Krc!h5#aAjFzHO`(T%t7M0o`MZ;%9 z<^{jpxXluTYnba_hCgFb2&=A4tXg1U{~THRha>$* zRSvg2$7Z{d9(Is)YK^&xknb*jN@z;-ZNR*u6c&JlGUS;pJyDsIIlqmlk8kRxJIe>X zUI-$;eUXlr*xAw4M3k)gMIVHVTzcRBsuhkF*nt6p$E8P?xw>vJRi18x4 z!@gcFOGqhFN&o!VK;5ONrD3Z>1FwjC5`T6E?^C%Q>QlQAxXY&$*m&eAl!UTq?1eyj z*Om&Zp0RuEl6)L5P&&E~CHuo&{RjUm(mAKO5vOIJG@VCEW4X<>Rquy;ZLC&XV5m%9 z%<;mCwm;oY(X+->%7xwld9sD&83BNJt~AGRxM;;lebEeHubiz4B*tKHu}+CIQE5j_ zBi8V`uM{MGq|Q66|5l&KS3y#9@e|zSXJ{XlX}&z!OFh?gx!hXm$*aj+_4xL0v_bFA z-n8G({7O@xSb=n(3Y}kJD-&0W#Gg<`UU;WF+Woprj%>9_<0p6-=ap<=%#oQ>gzMp^ z2|H}v#}{Bbvwfah_@0TW9n1fqb)>~5ekr}Q%^oo}r}Ttxn!d8_FiwagBYBnGCoBu2h6em#}=&8$dic`p#?ht{_ z%v&ndx?J-Ii*8rN~(OnDgd0M(*WqU#cVRr0PPtjqG(YVV~`!%mA_9 zD>1q$aV{*FVm?pF6R{AW>r+I@Z2Dp=*yz+tyxK9TzTqBVE;-o?(-2tkcI3ki=FzKk zJ6#G7P6M80f8+JhB0%OZP%=w>Nxcm%{VK6`lIgCnc$&*g;sFh=i!T-s4q0xCj2T?hpyXv?|)1MEP$4dAoUr zY?5XEcAL_NHpDh;*1>~jJ7gQ7utIhfiyF=e<74^C$LDK}IF)e|#s-P&r+o?U?}&R@ z8bu5jU^%nEL`aU&&@RqgBVO+F>+>OZSI?xKmKBahZ7^AxZiR6R&cx5fneR#8WYTQC zT~q=s5F=mVWmRa`&Vv#Ut?s2AP7E*(sJ5%C;fH z>y$?FTB}xa%T6D?T@kIZa;>bT5Ri=ZoNheKru^Wwz-AFx^)C$Z&4qE4ADc-VKWFCK zMuI%j5UMfIVtCukw>%Qc%JR6DnyzVC=A9V=b4oKI9@GW)MIXbl%@iweri(o0d!BBT zr=G6aC!lD_h8T~dJXqDP_4CGJMgTFr%u3nbCNnSCgQ@-^bGpuEhdg{BLVG(hjG=li zxtjobHU=PpQPJ_hW$k=0ag_u|iSUVy1 z+za>@nk_b6h+udpne9u5lH64k<_4cpdh!w(sQ(i6GJm(J&9J%fOh&Jv%G)8eONDhr ztAS5GoSK1RK^0B!tJB5X8c^iVs$s9w?3(0Ek-g|`yU<-y*XMcs(W(he6tF3|V^BEQ zzGqsA>(E$LAa)SLX%{^M5z!z^zp6~PmqN);F!SAy~gLcvu>M;)h|i z%b0tE!lX#{rjd4+W_jlxz%1spuYCPqobnGU@0`W&^@axU6*~Ca(K{s%E*QUmgk?kE z3e!oZ+_;ctZ0K2ag11AymLgQbOnahZ*wXUsi=Q)p@b$KP2ONAzCvg%j_CbTP#~&`m z<;!=>30reL?lII^j8y*MC6p|DgqxCrSC>=E`pZlxSfXbCm6<^hd+<{+sOHyKcJmaK z75G#GIm@8^uQ4&}7i0Q;5d*CniM8Yak|+HATZl5QPw0l4dIr^pqF0#}su)uDg0?mW z^&mfnEaWd1oUI{rvCZd$^@YqXaHF?FOEN z0m~j|bILRo@t#~{X2zyW@LxY6iF0sFIL^Is`B2q#M(o7Jsu$Z4KjW2OIGs*VD6p8m z0E;3jwR^2@39Eo^>(Q2+50$6Y=ZUFUNYK@NnD^>2TWO5euN_;mpN#rUQa||w%ltbO zd`}PW4H?90X6B(x#32b`#qx4Xv@?{?!2-}90?_6NRt4w3kjcN~3jn{GJh2%2q-(8K zSnK%bXPU~5L3E~F%T?Lc__%Vq36-u|nAyMD7h}`oyx8*kOf+!wAckOyBYplA~Ch$esOK~aMGSEE69yid_$S{ zeSOcTl$ufO@rt^wHG`Y%hz`8H^%?Kr*QXs4!shQ*VJ?YkJj%qB*^OD-ndvOy0!IcY zj&EXiY#rCDg1)5bzSFwl{dHLmhJp8tIrEP)>eG8zOgJ%i*xP(-A2Jw(koFy$avn{p z8Kls)MyXhZr;ZgyXWD5zc`}ZgPs5xr(_SA$Q#b!DCh`w1_qLIu5p{gAb0Vp(vxy%C znWfB^ETQ}rHQT%h<>Lpn9J#njn_53OlW{JkT#JqR~;6RImG6Q?A zjEPdK{Goi>PVFZfeoPb@J6UA%tb?q}ll{gcinslG_ZCWqM;^SdJYOX_>L&6X@^?T%Bwc&>gXAs+l zB;X)gX|qZY)*o5;E;9?DdJ1h9zH7xM-sg@rjC%>G=+vak+@WB(cz z^aM9lv-M|Ld58MA=x%9Kn(eXjOYR(P7`6>ExIeQreYv5o1lx09=0zB8Mq@aA%~nQ| zvKbkhULV=els=ESI%EB|YobJ42w_9)cmicBCay-K#eH#D%xvFJnjJ%C)#y13tuB7y z>Eh%Ut{UFfQ!^#s({&{416tRy={3DJD@m-zq*fhDo4-B;Im<6c?vPkD z?)Ck}nlZm~DU{+21&x;wUq9SzpBTrfZ+WTC(bLM@N0hS~)L^e+}o4ZTiC*Z!`q?pzl zs1HyMF~JmU_eN67SYkZlv0@Leb-mbAteUua)Z2MT1bM)7(= zK&vIX0XXumv#dVdo4x`Bo{p@~=(BY4DeK@`0N8q5R9`;E! zJhC+SYej&Nj)iAN%nbX^^Qm=*xPppsc8%d4uEwIr8vRk*#L@(L-4 zAKJL8^6S_r%Duj?#C}@{sIcl|VvHzMueaN%SzQWw78KG1EG$b{{gRUNn5Z*;xG25f z_1ZJC&CcoBN&=7D?sQh@2Nk5fpf9l?;;gRcQ?)Ks$s6sc@QazaGoHQsP8WQmnfI61#?ugLveo%iNA zlkDX5>2Z3GYnFrr?N<|>=#}`3hd2|b3-oE@!b0qaEz(DAA-o@>a($|<=rTF6htn~5 zSZAw$x~FKF$F2V)$xzSYXpi}eNUvhD8=a7V{zN;gw{8=7zwknW{L*sUPlGbe|8<;- z3jG)^>ph!16K6lmKn{gbl6tn1eb>{3Z*usNcq(!##?Uuoz3U3O!(~U=1+;a5rd1KV zYy)Sw2pRl)eH*^WP=-v2vwcoEo3r9`D@VDBQunJ@JYN+y1d^;v?mw7tyl)mdVwm)- zCS7MIX`I5pOr7|1I*YMDQGZufS4WwCbBc?{ebzSr)(Ve{pN?y){If}m5!lowcBO&4 zV{WM~6v@VT9gYZTDM+llrl%X)xqSe!oe!9jTPOP3F||5;OYZ%KX>GykFYatFJ40=b z-xw3CsxKCEZ!SNLpDG*bD#Z&p-F+#yZR*Z7;(}Xnc%f4nkW~Gn;)zG=Gu9pi=hn88 z21c1rm01AN+Dr=0_m_DsySC-?b}!_+K0%BanWkWBjP4=GoBRq}%E8NPoz7mMTZg&E z~t)w-~gpVm3kmMfT7)>a1=3dpTfx0Skka0fL4Hlncg>qN6A z*4FRL*OT9N1j{LjA%Lrib(BgRb&tu1R9b2gBuzaUn4nO2){)CnQRBn9SN51@P<=FZV40v*T=raA!d<jXwG$6pPg4@-MXB<{9VXQkP&ZbH4vY%c6bGQLi?VtJ$3+Ld%7f+pC1LHo~lHUBIZbX&N>9js+P%CNSW zdm1%1nvkWkd|~EQsbrI0+gn4g^VLx8^v3c&NmA26exHoy!GZJ6vG|}Ag;#jtW4#dm zQ2D$u@7DLT;~ttWUa^RIC@3XV&Ebt60?c7eq2%s-^dT99E)S66HFd2hA!@0d>y83% z6UL@U<7mWHw%E+ZSw?_tQIDh5u#1q1fOPv6nTjApu#c|v8+%{Nlp-Njs`L8>7{NKp zDv8ylLo0RbISLsYn@Ue8Fa+z^4`^HD+U!!h8DGudq$+DfffX_91pY#IBfpm~dh#MV?#kPtPmz3K`L|6BXKDGf z0g7xGeCa$9&ejt}yR!+@P!V8I;UIsrCp8=oB^`uYuB(;1P~&Wa({LTmSU7S@{yYGv zX|wcMBSgeCc;V*HVbPN1lsly*z9{UsUrLg%&&F5c+zQCv%Q;3%xaUYSSVt*Z#?8#% zC!!j(*SsupvuPfElw~Wrf=H=2b)7aS?@S@tjo)zuM7DwXX`c-&>lhk@jjc zXY-6LLbCPx@dnkJyLgGx)rL4Lw6*KWQRXP~d`{?hbjxj*4~DjkR)M`5jlF7n%h|HD zmo1GNqO{7aoA3`F-K_qnHfw?kXHOXqS~!R@ubS$x*$vIA(DGf(srt1#p~Ui9kPs=3 zhu8adUi|7vIuk252{He@k}g~IsaV^kPs;j2ec1VS#X&R{8jV45i80~q;>yR;RbQvV z=IU46WZZf^jbg^<@}UqKogipb)INA391c(if~hh=BqfH4wmb=6K4cy5D%{`SD?Oma zFK2U$_1x4ep=}q~94iF66(qN`8dsv5uP=Wdcn6TlaZEs|?}Xt%@E+rd^-MQrUke)u zlqgFRCt>?){Drc{xRf7a^X=PeFBJlt%b08Xe7Vw>x8xf4Y>p=ScEtga=8vy0lqNIt zj+3P6fAnTCjMI&yS79j=AW$s2ae&`y#rC=?7nPubN6DYy`qBA7Z6qMep1B^R#RzT8 zFJ?+y?=e8A9HkBk;1vs}8}W(-J+>pQlbjI9F#KkziprW!>IV`oDLmV;9iZ?K1=osw+>ot->|SVqj>XV|GDsT$e$~0ZqE#qH{&=wcHBkSD9*sHfxd=x{tQCAuJl}h zY@`T3f_nK~&hn#+hnaJ6J-BOnZM>y^A#&7olQXWIVL-0%*lcM_#+e(3U)y*smt`id z$figKx-wy0>8h-FBh_j=xlQmttOW%*zJ9NV{p^WQN_9HquDnkvv5v|qIriX}; z{XR+9#4AnH$OGq-d!6#?+)QlHon<%e6h`wc2VllN)Ui&#&fy^gi_45R^sMH8u=iF` zZGLUPE)^)00;Mf(#T|+}6nBT?6LPgcyo}EF>;VOo@YK8^PcnmUDt=jzP3^hhp>_@I^iHT43Ih`43mRgcCURd0~=xz772$keI;s_t)O}E$C1Tc5o z&2LX+ZcG{HL|WEQ8;^<3?|&QSr=jU};4Iz1Zo4sAneEv23Yd-RmsTow`!E{`-Ed%B ze>Bat?H|PsEFy^=>~Yn>up6{n*MACbHWJWw`7Rt+yM!*cMu$4fZG# zb##w!eLZJuIe@6%0?n?8r&vpX^7^xS=^s!E@i%HrmlHK#xcT>@2R?F zf|KzefBD*t!|gts2otWFKb@U=%@*Cb^{=5B1@v%BYvUk>b;HJjq|yU9Wq(%nrQt7p z&nLiLqIMhKTMOQE;XFTQ6vV@z1usiHH)2)E;uOySGxT~;OdU$MOvfj5mYcP$kF>(A z@7>)un5wO^|1Cp-i8r4f!zm21)hxR6IfrZygCqob7%R=YSGLXY9Z+cn<9`sMlwHq= z@^vP)K(#K#q4=H@4-fpFi|JIZ&&?WTSzIp{Xts(RhxKIamwf~eecuNHs9_oUMJD9N z-8lO>N)_#2t<*f&e_?oYvCc;hotNh+m-QYJhlh(1qdZ<1*oOF7F9)j_T5@g-C}P=F zCt`fTzz=>jXoZ>bI{F7I<{zx(oLsWw{}Ph<|21*tA^-ZHo97c&{xinJX8#|o72dm* z9q@}gxqqZAXJF}c3p{yzf`zb+mHy7gJkpP#?_1si=> zoSCPTR6l@Il^xt3unJlpVqec|4{lJx)v`#>_zG50Ue|j{nlcY-iLHxs7q=V`l5Y#$ zispks!Zkb}-B7Dmj=uZcJlhnrVl&F?3IUbfIEo+Cdfr{3A7CAS-QV4PXNg?ZD#rpGvLSYZvUAd$^o(OtL&-m;!o)L=S)@ZBD(n6a|T}NgNHtCY}B-I=6-*Si+NBA z->2nFm^O>I`ic$3a!Ob~IyHC1S{9%q>8}GXq$XJ5_UYQvhvdsgpJn3jkUEh8+Mn8C z5MQah{DC^^e^%N8m;m!f>Z z-MbG(Fqp~UvFoP(IUiQf`XUGTd8MGs)u zFJ|t86^<}};}Zj&55lag$PWI&dik(PiI>bhwm*&%5>DuDqdc@z|Aol zmlGg2M;kk&KnR2j4_ak?RR3mRJe{%BuAKLi1Vg1yiqfB0eTwX^VI4uW5!JWxW%N{G zT)!7SBwgyyX|r^vu&p>|Ox-%udF$UW53lV&b~PHr+WJtGSF@Se%*lm);9^5;``N~m z#SZ9MarDc~bOI{E3K25f$0J&KiCXH{UtPeXmRpN#6F+yS!kQD}H880P+fjYz>14k@ z$+0|>Q)hM=t8j0Qi2cBSdPPm3yAm-Xxs~hWFjr8UNPczSXI9j-BNFNhZ8yxLXyR<7 z@b$zTqzhK1$-nTc*xf$eXc;tp&7M-<@s&~4_3C26I6OssBqn+MyZA|GCsi&b<|)r# zzZmUa-sOOC$?)=;1QW1N`f8`G*Q?*dTKZxg>@JP_oEB7q((I<=D%0=bxbThuVv3&8 zzh2hwKg7K3Zmo+GmQgPq&Rsac%zniQf9EB|Wk|y-LX-K*(9uZ4Ed=LY)XawjYtqt~ zorNrmkGz}5zAZ=eoDff4X(2C0dRXLOrnDajr&P*U5z}^!u((^UE62%jkqY|<%VQL% z<)#;vR3q%|qiJ*AkjHz$^!vAD0NIlr`gQLi^Se4loKm~^K6Vb(o%1+BiL2HK(>>R(2jJQYVg{_-PkVn#n*YUbvY3H`pYAy=6seh}&9 z$@ASMc4RlMJCnDsLzSvEt$vKnjG(Q?g^ zJ;SrALoh){6J1%81svwO{@jk^;GD}i5#8jf=Q0$jT@=g$9Tg{aq4HIjp)Tq0SpBr^ zpi73j&;?tN@zR@fwy96FF`>F$kt{%(!k=@nnBLx{!9&;nr<&y2f*xQWu!pcwW*(pp zP%f`6;P9R`zyIAXi7rv=GY86|I?6v1NmeW)OL?6da|jA=zRvFr;GB`R#^ohMQ69-* z9ldz?Fnh5o1(CkgTcN zQrhDOFjX;mucpG5*w~rv6PywnCUg8Pl5OkE0^W+}W0B_m4S0sQ~@tw89CVB~p;r{+Gx2hZY_XA69d^@=l2# zjzv`4W}Q+$JSC+=981Y$Ax7i@$D86#A26i>vbA%cNfG8J&+g#C1dc=Cj)cvZ{8dq8 ztSw0ka47G$%OvClGvQC1+z(YIbwu=3s;f{k{`(L5Tq0GOnC{xx;>b8&T66A#2@DxJy!(?jVmLq*UIhX?%nR7Llu zxJfpi0mP3}9)U7u50{7$ENm~$FCxOLI?Q*W#Nh1_mCTA%j%-`$D)MxxO3UT>HirR{ z>^g_HH0u>@^b5+~DNZ+O9;WTpo}r`o8=0sA4SuPwRa@7&iv9w07qF>58oN88Me9V$ zeNf@$W1_R^1QnB6k&b)b_Nb+g$sbUbPXx}6o+D@Ba@zuupX8P-6(NzRYhC@5;o>7` zCtY*?sYrsIF;tQ#fks1O`qXdflLm85X}aBzyNmH4U6u}0UzIDS?tr0(#QwV_;)HhM@=U4B_pyNca;7;!67=>lrhNr@v45+4^9{0$1 zgY(6&?+dcY*ID`!#~bD$bY4zk^(`rLZ&+n#op3q>=E@yLi}20b2$i#!8l!_gt#0b~ zvCr|JA(}+FTI1u%s078D1DaYBSrXm4WpEx?EvswT@mw9DG=0{??=6K*Jgb`sC}ZzF z!3RWSRhYvBQfAOcMtBT!SXp8>vWVhi$S3q+;On@`TneRr-YeJHTPJ+jMUJ}$o4NuNi+3bGM+}uN?^1)pZQowb=RL-v z+Xsi?($ql_U#gU_xKC|@1Xc$tI}3iZXn8r9I1emm`6CsA(}~vd=BnY>m9nVr*wqc# z(uAN(cM@tmTd-(TFGMWQPf!&^{$5#aqb13I9K66_u{M4s*MG3WC5M4CW#PHS)=Yxf z1Z3g&eQG0|XulK%if0c;pBp&dz!XZad{YsLP5cT`pV&65Ydl;d*MXjw>>Y7WPa zqf*cDXvRZ$E&43kfd5(K0GHveJI7phZDVV?B#%o>|0~|m;9+@dm%Qmhhxcv64(l8v zN--uI+b}f4xbHOe)sEn5_&->&N4az7+AnvtwEb?8^R{ErzhbNor&|@oNi=@nAJ|7QO$BXQ({fuiwB5R1)xfQ^myJ0Xw(fW79?(6=X;wb)zL7IcGn;U6P}~YXx=dYS*k+Hd%|d;q7WIR($dta~gKxYB`r0#qM9(OJ|T; zUL+!I+o6nZI`zWK8u4QvpYrTf)k+;mwJsIjLO!dVwx~C7vbatPGzL-&yEIrP^{Gqu zZFZuPi~Z|&JKQh#MmkU#c<5Xcv29b~?eR)f;&zMQ{Ih!vI3J^(4e54WC}hQp|#$ z;?!|pgIYk&iA4P#LvE1^&6Fo_hD-OwRmz&67B+J?oNhl}0j#+Zg30vZoKxMkI=X15 zH%;poV36LEp8PtWOuKJ+-bTOIJThixZTbBuHdiT0Kd<4e%vdFwBP;!gHNnHNl3^zF zu_t_q$<*DM2I<nIy6*wxZq9hep^qR`PEWQ+;F~=$FMB6*tzrl`Tm3!*4$~fH|b>g{KL7- z=*n0-E5gw5q4}l7`IpuRQfeVJ=iIYLQ1(B+0XhvWyfUT7({W`4IPU7U3;mmd+#npd z+hRv#&P>@^gTbz<;}Gn;SU7j~{b*EK-;UBhSh_n*hM!DCrcfuKsU};}5B>r&uYmj@ zX*10{8TEqIpS6vKqap)r=Oh#5BWSLM6SLR1-y3RwQ9A{7>JQL~$-4G);3)qnz06?n z>LHlG5g9~PP8D*C;FwTBU#c7MGXUSP7uI~su9FnTS{Of~Mu?i%6;X;h2Q_i5)-qmJ z`N2ZQmo--UGQHyU2S)wjF#(cSk{int?F}`-d1(T7bEV3$G31^ORd3Ogzl2I6B)~h* zWk~sd$G_&LDdA}ckVKJIpS6Ony_qu=mV|~T zHQHx$c$8^1#G1o$en5_Xr^ksMo2^vdye_n@+$h#W)a)&dEGM~fu87>7hLMtS?kY#>Cr)vtHk#HGI9*If5(wqi^LC#GGEVh|IlWGND7F$OA9fngvSUfcR}c8o zMAOD8VwUgLQU)v%f3D%W+S+Vj|J>gH<>@>urnJHEK3y(V@NKHrg4}7P;!zi5M%2pG zJMj-=W~Qrq+G5tG2rVZnBR9FV_0NNa3cO&+w){8wE{{aOF*S1%=P+zs-qJ@{*lC}tihsgO zMd17eH0Fo2p;i=?k6gI%)-OD_Yn65?&17?fC{D@fkt@?Q9Xh<%JqW=>xox8gf8OLa zo@aE-&>pVp{fDg#&8}W|f(&tiRS}_q-c0_0KF_}pdCePLpoT}+YUh3OB>e~#4Ap_iX)?~#Fz;0l7&McY zRFgD~E_z(_a`LwdaT7Uae&lIgDbXu>M=KTyJ`;+|g(k*ns$feKLxZ>EU(Z~tKROW> ziMB3r(-5qk#O_IN620XrH9pV}XCs;Xei2|zn?u9JC`?;S!i>T-wqZ6CaUgnizAe0+ z{dbBtY>9rXy|wCyD;dc!(z*xeTQ@i~v=Ill$@o zbm|)B)@)c6TwiCUOl=Avwcj3@C`_NI1skvEB>}WJH7>9p!F1)CsOlN1sh3~O%-NJC z3hlZsR|vPsd22|v>!^&Gl|j%G!u{1 z+_k+Jk^-Bo(Cj;w9VLpt8+mgZm~(hsK%!TMZO!>I*;BQZWGz5tjDf#Z%o^bWbr5JAKMHZ zkHO_Weu5>Ga3^~3vcAmcpx`;4A>=FsU&VbLvMfBs>7)ph*Qzm`lFSiwY_UTtE_P5X zj_YLwTnmGxG;IzRAKR|PBy^IEw=mqOOqdIPH=|)RclkNJq5V8fox*3MOsqLUFRIBp zp(dI_!2D{%AtQW!lAnU8)*z!?>2GI~_hcx8;L0t=BlLDjU*7d2Z_BxZz;X1nmF~tl zR%xh!xUz69mC>MN0LsF8E$}MU=C#6&QogcVJ``zsL~p+fjXBA-?0R%Z)7c&V^LvP; zzR-zT?o{yM-nClC$bn*;m;l4R1baH1Cv7<2OXElDS^Ez&(l2Y?RhP_X; zqi~+zwyn!T1KN&>jK{q1eY^jpPl6HNErn79_hd~HY*%L&#ME13gd6A0T4`0~u^^^o z+}=G2zjQ=*3rH|G+d=(-VNz)xRH5L)oR_?&)R}Fbxn7|oW zS&>n-NeFe-Y(`HNRcgIGan7xhZvRjv8$d2s?x?k{(Uui0mmy>c^2^Q z-2i|&RLf2?eXO%wl~`EZIxSU8KCNw^{BeNb&SYhKj!S1QMIr3d^FRUVGlFD5(64Wj zQ{u)4oJS!!R^W*@95p2HSW|u2p9*79XOq-CyCEqKOE=}j0pY;6BPo2W z4amukE*e=~?fPw%>xXCqyG1X!wj0t5%`uV=qttB`E!owCGxIsC|l z4gny6M>s@kp3A9g$6%`WSiZKy1yEYGrfJu2LA8haY8_7+GitY+Fv}ps0&FRVRt7?IA z909oV-@O}+29)E(|DYgI$$G34!j(l|<2$(0O6>iTnyU>)X^kV!V(==2Tt!$MB0l#e zh#zl7cf802?vF0Pk zRu@6ITGOr0P$$KO<@7>xs#e{?La=<%DFJk@d&=zH;kc&tr#J!oP_q6Eg9+JU7a);p zN0S7dq2i)wGqs=8ScshL?%tAo-po*lz=>8%HRxc2UrWo_dxp47NMLo4y0cNmWiSlL zzcj&YGs^f=`Dvy3e9mIgc#r3F{C+Z&)@8mUqvS?O?DhB-&T4$NVQWU_`k>^O&gHq{ z#&CkPc+1u*SC%rT^PDzJ;bW)t2*$kOS=#~57BAckN4qf&Lj;T5y#KAcG4`+{G@GOS zzMG~la-Hv)$MmPAZ`P}Pwjoi`dRZ^(wExsjgxe3m9fEDMz^ul+!VK?U`4HgZw^38~ zlQdU6_#s7d-C0IWl3}r<4#`_$>6GsC9 zJ3X?r8O2oACJLg3yhpr9niJmVnwwLz`&R6ll(Q41t{%3VaO~D%LNhGg_fwg;66?3C z`{czmzC8pNUxgu)$)a9uVh9}^!7dtB9skelx$d7lks}wImws2(*GZc>(Q&?JhTWCD zG;(4H=wm~qIPTYHXbI!J=r0T$d7?`dTab-?Uu~2S{r$oB9JB_yU=a1@ z=TUKldXM+`UmLJ_r|`i5^?vG9tB|L7wGSs8o7`HvVtwXw*po&d{2tO*Urq!u-`H~x zoUn@)NPpRon#lcG!>HDMQ~G5C-7fguHX=r4^78`GB!NT}V#Tf@DB)bb!YBugN-fncz&RpNhY=P{F2u>RCh(GXmu)R zAw?#&%}V#Yksr2oL8mO`Hb&?qdXlnxNw009ykt5H0r;1&s(9^|oy@=H)bVsqsW8=x zpxRXpTzB_)23!2Fzg#>tTx3<@`Nwz;@YoP0YJY>U_hD6{UTj zu9c#dPp1Mk@uc)8U|{y0KUqZMr7_#usF$qZ8~O+Xh9>_YOaofrBSoO^?W50>?kZiTIetZE@Nj)UBfUs++DO?H3fyg4)BC126w5O2;jpS3xAhT~7!@kKI4>;tMyRkv`pYu2 ziY0TLJZ*T`Y^47U!jIT`rjwF}jJTaphBM06GX3yf`^-z#IUe@1q~~(7Lv3D5jJT=A zJ_|gWwaHbTK^84s!_D;i&-GIIX|wsD3ok7#yc1VbJvJe47A6?RifR*@--M?>9My9> zgc{1RY~rNa5Cai^PWp7AHM5#}4+*#A*Qa{lv@L6G{O^C>WS85uFFfLx$+cb3t~zIB zAA`ELFKt{aPnZ*x8gz#HJZlPh_3KBTHkShdk5l8mTp2#)6c509N8aBbR2WG8hf`_A$Q?3%;rgAOXuTu%vm=y+YS5q^XZS)i7YipYq->DJz*B8twg zRJXvU;;@c&GS=C)qdpg&T$t)9r8CqtBiJ%_;AFJQCtM(9s*06m)S@A=iS(HT4e*jf zwE?X!@ZRn%G)*LVF?(y1{jZ-?I3m7K zGgi)S*SId(Er7%v!X3CJi|QTvGgBmY<~19~^OktNQ2`-%>A4jb@jdEC zmeIIWIe^4nxnmZjnW>qI9sRrX;hZd6fu~*X=454oJU`BP>hlT`XtrEC-fde?CESW| z-Z+bnJxW{m3z3^ZZEQ|mpO`TL(%X!~YH`vXnJ1E`SBh$Xx_MEPbB&!^&^9#_5 zka5Ni`fzyOl_k&!mEy?#8Y`wb7QDOYb+PD#v#@=8+HxLNv5#if2+%``!~DKMPRx>Y zd;eJ4BfHFfh1v$;Zq0$2tpH-Ow1(#!%YTB+9=m4KySRBna^Fq8&~Tdnx!)6}qROEw zg8Xvtk5Kf?;A%=WS6xkS7`{gQgXPPT=47RuE+v-5zGlup-f8x_E7#pLOCC=^h}l@L zO*~M}nbN#RRZ(Du_<$eZOc0E0BZsm1W@iRrDiimJ!<1I8pPEQ$TgcG=a&N4u3&Pc4U2i#{l9 zu4dp4bH=nZs^xn`vCT%OF!@+kiW@{ag&3OU(FDEjW~~!W$Mm2m#~VtRktx^0xifq_ zPm`z09D3qM6>A|LO5jpTk>)Q7%c&M4Xgrmy6z@L4Npey(-UI^?@>RE&T2clcln#{p zf6Mf?C~DV0YIDE>hy|t*0N-eeF zM6NHu_8NxCkp+B?B zr}Xz$mBtM&$mwL5AoSE>*4&MmV)!gl2DKTkHSzR7u}%z7HN@zi$fKH_y_7c%s*Rz{ zH4@`ka9yL^&3>+LNQayo%ccBPg!~U9T%zcOocZ5!)rB%^%|M?E7R+Eme%ns`exl7d z%rxb6?BXWB zqi&w@>s#0o?+rMHZH=u!>_S%lP6KkC6VGg=jBnn_NJ=O**ThgW@G8wBV{R3n6k4UlPx%*F}hcP_7 zVd8B^<8A4b_!8&hvHrmlTChOOfPDJq58^?!^IH@%Ag_cDP_5^Kc~BJn;8c_{=`VP4 zkDH%&{3&1Mv%^d?Gp}l@nvP}rzOyomfs$7WDFXoZ-SCTff$Nsto-VCiqc9q*I`1ep zuxi@7Ia;tj>&l&=T9;Kasq&jYZ*u1rf4sM5nrXM(BIsU8tk%OQzxyOsW4GV%&10s^ zPGrlB+T~n)>gF$BTs?Oz=x)yqRQ4`20ANbx3v))Gcz#RZOei2`@E14uEt}iXI{&K zt;hmgg52RYyKBL{YrzqX6^(`UZ{>`Y$D5T42=zm*Xf^c2WX)(1`@bv#0w@F`N8{lJ znJqRx^B=;5`*X!}id{*d=MUC1K)b73XNX&;bo~9J*B{k4lqy6w%htfAddNYSL|(U= zwCvh|7S0Dvn&s=A{7#=;w1m&>LY){Vyea>`drGuy$ukJ}L0dTL zT;q?@nU=#B$sV^8BmD#xespt9Q|0J}OD2UGgO4`M(NKlTR|ATdeL%>|mH}MM4Vi4g zzA1HvHgO2ykMvFg3=Z*5>QaQmtX;yqs5yNM}>-vH6OGP_mY{L7xd=V@~)w> zrZc&XN?lJbsYN8Y$Sy{;&%=Z%GojkH&h?<{_8`A=RB*IKaLs3N(syy`a)k}XYYZDy zlCZhedY`p_eZeC_{ki4sj7$qQF@3^tCa})xx>e}sK|`YO!a;#_=*r{u{7f!h07iyO z;Uaq-MtYKeBHSJ$q)wH8)eEFA->NE6F_{o*AB4RnrXo)tf3jd@fvK~>q&Q5cVR+e$ zsf8d~9Z)I}6+OsM<4X@UsI$`w_{?#vlGRFHU{CIB%jqv%2h%Km)-_p+F!~dBMJ4wa zCsRg3`Q-Dd=+E=aJ@#Rt^bk3!ooVeL{FDIm`c5;0y9T2FIVwfmXEy)0U)jp=UW-tz zKBL>r?8y+k7oHHU;-pLXwuaMEo}{_;`Wi_69PbqnuwTe&^Q54(Q8@gWXpKbMLJDP} z&j$NY5Q{jDHwup8ZxpJ21hmbWMue4=vg_oUZwY==Rr@$UoyGk@NlxS~75@SJ(Ul4D zyKm}P#Ers2)o=9->Wgg6C$ZUWG_0fXNDMpvFGGLA)OxxH(r!XZ$5YM#+$_CrC8X49 z1_T~_KGK4MolS|wu8wHY``6rU4(F4uk=NzM+i@hOGu&h|#J8Hv0}++2>1Iw76@%Y# z2=W;-G1TW0mFo6h6>Z3^6jZzsLIjMydXmI{n^4 zS^6KWtAhKT%7)OF|Et(K{C`)H)OTn-R*JA9<=vyjIap?gvB0xb8HuF6&h9Mtmm$-i z>u?`=4T+GJc7C}RT4`H+30HA9vhl=mhVA7DZokNGcCjbs<)FYtG&sOL>@idoN{@uL9^S>VCu^_r*1EF2QjGvzF#}7A`rVRra$nM2PtxW6e(7(Qd)`Uxaz< z8!Ep~?Lu@3Y)6~S6sjr)#rWtL6}mEQAn=!w@%BsaF`YOH4H6Brf3Tk0|NL*_rziU6 z`-p4Nm7xT>qiW~^|xY2uDL-h%;-K82al4DSiKP?N?{S|rXQ*=4B zNL$PytOW?ubTwPN{`Ka2Mb7eNHCg&ya6`4zh84?R)tZpP1??97xJywUxmh9Gutp10 z5y-;;FbpeDwP@s?9|bxKft9`QhC}wfUjD`PardRj%KKBcueG;UX<@i=Jc+nq=W>td zneRHWnA3SEY8|+-timNb0{lf{yM)P?(vbd~gKNdiUnoJQ`{)kkd1ecwS=Xaai#r?U zGYQq_Oe_Vld?UP;@(=c4am3T+4d>sZz(hV`w^tNA18-cu;a7=v;BuzEl$tww7eJ}8? z0gW59y4mM z&+NC{O%CuCUl?B_0AEu}gh%intm-BQi&8vwPr$`kUEnGGTpiom5$gu8<*hpuwk6sp z0NZ+~b7x>%|EhDfyb9*x2@~bUOkMW+4~6Z-+qcz1Sa6%kMb30f+mKAV0~D#2KDxTZ zH4xvBmqs==ikU2552+{xT}gc`AUobJVDI&Sp>RyOK-lj0k0VcvsAbn78v|liLOkAR zM|HLVrolth8psY>#4~FUF^_|Gd04S*u-ncL&Nu+zFQg8adVi01;x#_w$5+h1EcuzJ zP*k(y8WP9d6u+S<@hG1>m$wGy=vcCv^88PHhGlF_l=wm&RZaG*)`{arGUfpxh=N(7 zW8~I-?ge)bs-}otf0m_GAfb1#K0ZY3^vI|cjq_-^UuNMfFg+R)=)pXB;QHZ_84v~3 zS9scci0Oyw8sb|;N0_Q*1;gb4C(Zaiv^rjokck`_t~8BU-)dRC_!`ev$lafEafAih0XH1NIyIS!%G6B`7?qUm&4}j_&(n+M0Hy@S9cQ`R`Z4EmE2<)V zAC$r3sICvxrk{sIAmCDVNZOf8uP$e75uhZJOoGLe>3ezf&V*E|Ee=;)3n#0?B)*T_ zNUHv1iv8#-br_tA4;}98g|SqK4E9!pezu)j2_${tX0U12EXMAoC@u6ZvK}SGoq5Fw zTuOI>n63nX({XyqS4Op)tRJ5XZ8kGk>kW1u7}9RMw zsc5sQX_ZiF*2mpxo%Cf1GpIBziEPpH8T%l+i?J6-5mAU>H^>%yo;doOk#Lwc@&yh% zufBnS3s|s3&@o^L1u;v)H1q7n)$g?`pr8swU2zpTqaZLP(g^tG?m$qA)zH^s2Rz%@ zz<~d@{qb8ACl*#X>|g%np6e(MGX_{k#Z_uF`0`ntT36bv*~rOZ9wQJx$W!7v;w`4U z)u0Mu+NlsMs{~4ihBGjoXixR#u6fT6W7WYB$SzLb+&-(M&aN8rygxU453et7nrp4D8E5g{_xJ^G z+(!)k_N<LDg13TSp!!yDrAOO5jUy7zf~`M;21>by_^xB@sj^r(s`Y2WjJR( zazxmzc(qte_`Chp!Qo^2|G0$v{~HSH|F^i@-c9qkpipXA``o zUSxMW3L93&%`{3_yz{4A8_R=gBMJI)9!O^*7CxMo-69Y4CN1ftn8e~!iQrhKNkLxQ z7OrBEsTzSY5fP9OdOowvcR`cyL69jlBXLxg=ihISY~4f4ynp#2xw?mN+U_aCP!*@i z%O$*@nYx_#D2}452T0nL76xNs@gRo7ELmA*8irDK70_m$1xX8NdDqdw6V#3$)=#O( zlkyhMO&buLQ`N=BguyjQe~$s|Y-VRs_6Wu5tx`nr?mGo>Ud9x2Mz-gCK~p7MWl)sm zK}y8Du`&1~ifW0oc(aM{xr&uT^}3{#(oapYFZCwlPOgOlkCD)&9GW*73Td12$R7-u z+&UFY6qTtjb;h#kuz_U#6xN{BJrse}EHAJ`m_Xo3Jt7g4N~R3GwF~bZmD(_(x6@`F zvyXX&>z&UZF=KK0ZRZ~>bp};u&yj0)0rv3mbsr0$)z_;|)1-0t!(%x40=tUDH_6X|E`nOoyKKiywvjhh}9Yf~bhOv1Hk zw#UqPLz((SC0X1ZIto((3zo}Pa^KrB?A{G6T#vR|nOJ%=D3$#t2yolY9nBxJxS<1B zP(FIEXcQ$(_&%Sj$Wnf#!7sc4yK^}wv-}G*Q~8~rxhbo!mT+YlCT0EIYo-Ye`p?`2 zNq^0&Sib(ro^82s=pUU=R>5=EILyT3Ltd!>@T9c1Tz?lr!S6AZ>G#pk8L1)KWanmBXq_WL$Xi8b@y{zBErygUf{-uUK_k<-)eO{YuE zlLAozwK&v#&dR9Ek6x46CnlK_SC@6MYqR4oU5xun#YX4D?x{@LZ?^Y<1>d+a_WD57wv%O-QJ)l-Tx|`7vfq4sRi#-6%|$ z*LlAy;p(!l^MEGtA1ugGXmB8Hoec0`$D>t{KJywT8Bqz%@6-~x5Fyf1*de`U3ZlAcG`Rth= zdzoEy82)lUjbJ(c=X@x^4Q7MVb6d5b-3Q7;yjh#SjO(E&D_!etuM1UCLF@%QSDW7A zFvJccDOzsfQ{^@%kBtaXvD=x0eJ~G^=SdwD`~a_#Qp0!wcRbeKmNo#mwM$-Yv{f0U z9HI0?DNKczf+E}2riB*BInz8@S@2Uz95U-2V9BbBg&?6LsP}l3N?`7!eMZ9Dp=EU5 zH>LuW!QRv*9$mvd32e#`_a!<(!Gb7=<8!MFV>o9HK*|V#Ic?_u2Mgy=#Wf*^x!ZJi z$U3)|iab?lR(Asw1B>x?w^92UP?J`!(*rauUWgxt;-nKx55Uab@7}GMt0VG@Mt4%r zEklhW0n&*wnW>{gtV(n~BAK?xpC>V22r4s>Usr-N-qwZgX~_y3483>WbdSL7^f{ZV zx+9KJp7VmY07BSq|59IvMx!7kwHGz-)hC^58isUOi%|a&FmbjT%E0_8$0vH-d}upd zn+c+En8v^>k)=SlV;af%w0`c@7_Cm;+h`E41)thgN9GPr;7=vAF_F2)VO+qrM7x;x z{uqbZzzq}*oBlu8dkdI01AcFmIfLP@8}9DDFbMCp{d6S#m@6G+rm)zXsN%MsCY1604pMQT^!R5Txo0%K0?cRd+&bKUC zWlZ@B4`>Ph%s4*o%IiTfGqTk~n#J2+)A0@I&2nbm>e5hL1gj4?yk<98UMy=mGL(A` zGAvDBn(5J9=n++0=VZPLdE1*#+)rcuj@108PA`zjVcH^JXt!@^MmtNR-mVZbyx#s= zci29N=;6s5h*7`JjG+5bl(aHQTc27@!jDcS4`u(KTSeb29oIHEfgYI>@sxa~LT;?T zid@*nB@pPX$tW-$bke|T8_SU$vm8a4fc(1oYt%J$gHJ#>nM4YAEL)M5ZKCzb;H=SU zLTxZNfBL)rO|v^ik44)4A6@!9U6GTDeXcJGK&u~HEigtb+gh&+GVDE5Qu`2-WQk7uLvlq`0qDThp)5`jtV&@!x8^y< z8pi4(rY7|GdrGm4n)+q|s5jCh_Zv&95m>L8wy1er!{F5`$r_iTrExftO@zm309e#d zhO>b)-zi+zn>Xs@d_G{7X{(a>4o?;t?in7-s%sAx7E!DK@+G|6XQgQ#kd`p{g!Ysw zX9Ish9D3bNB+KbL3%f{b(l(Ekr#<-CGPPjXX=Y?yg8nh(ULbzat?}G)Qj3tvJe`<+ zw-jnaxsEYF2v-X|_4j1;GXZvaz^pzx5-P?tV#{N&ZaQ5n?MXh|g4~r`AAAsg$ro!) zX?>>{LD$qvb$GhG&O_J}`&ugxV*Jc{(FxCVd)s05F`TjK9t~zn4mzI zj;3ak6Y|uMJJo`n?8&K5>yXtCnHv_1r=B%sjdnApoi!ZjIzIsylewV-r89Lr+WKZk zQ&CY5_Q;)s{HAJ6BdBS4QzTpGq?>|#fRbpvy6T2IRj}F{B-s=`!go^BR?tB1_eDur zXh=7Gx}@P;QY*9e#zfz&wHKS{!XOq)o=L{Bss{jPm3!i z#a3>}x~dN#HsWQ`T+>giNx>vOIaD z_|O+(KjO59icW^StY1}PdRnN-YN^&fn5#;fAa7$!uecHxg<|1|;t-<;897cH8E1#v zMCSSCrJY=M{a_I;VqmeIKfApgs;(%h&q~$<3>J_imNKwKUKVJ&1=sIug+;G&0z&$J zCoLL_n+TUlEYE&jHHuk_dbWP~a8yPvnY%L3oUg&HDCUdgDRyjpzs}ssLtJq3V76H# ztB6%&#nDqt*1x}Gwq+arF&LMz@-c>N4{p>$dI!_A?y*CONwbUy{kw?7T6AUW4uKGb z%YcjMiA%zo|GQfvg+5aT&eJ*fyXPMZP?mz315CC3V0cJMNl=WsWSsJA=t`D0pRm`6 z7L0scJLrymP&~_Ri{fp~ZR>E)?1h(Rl=xWl=k1GYpVx=WJ(m|(MIBPLW#|In%jM4T zJz_o~T|1^p@RaiBA-=bI)H{cjniCp@AAO19>Z?;a#Onp&`r9P2xGj4Pw*|&ILG9H` zl-Z?$6lt?_NhwxSab>rUSU)hm#JYW?q%xCO?DSOy!?^eDQzuzLsU_(IVP3@HKy);} zvvD^^jc|P-z!`U7wuhO5Al_`^3x)#t|E`<=Z$K2GIDqr;VX)iBa<8S&S2k^I(_Re%e@JE?<8i zcYQ>De#MA7S3aBhTC;Mild)$w5%kBpFg!Q~ofq>WbND405dw2Mo{XkWP60L$aVA_^ zTDI=xbzE8*z0zHH$iL&mEgG>S=VepF(NbDkf!*5LdabAD?{c)NCzN>9@0h>vrHyH$ z@2S4lsbA#z#&hQ7Ti7C8H%-RDM-6@TJR@mRO;|XlcwDwYt?E zaakXNSDP}5!H+y;y}DTQ7b8nld~J9S)Xj*K8VeJdI^k?7jW88( zD{%pR&C3t((hqV9_8J7D9M19uLQ~o;ZNwVg5KXCuP_K>P60C;Js#H$-2a|SXxA&PI zE6tA;ww`KG@$wEEo6WEaftBfAhIqYKo>NKs8kYAEeDxlsGGc2Gt60wKE|!5jHmuLf z?k}??n4XQ%&|!AB_fjD_O`EhnYc^A_#FH|+^|zSVGj~-v__=9j0WnuRZi$CJm44>i zbdc^BQdyBg`^U=Sf%ant?=D$Am#z!7)7l?CUbhN6|H@i2IWs^5V54ys6oB5OYaB{N z%ghi`Prsa3Dh^q4E3mhixn$x|e}?&(qO#e20A2OO z)!IdH{nuCFQe|}QFzlW> zkQ=s&$eH$1%;ub{ECNp&#~s49vtz~0<<(Uy}d;Ylm#BBmy{2SD@AAq z&FW4jNwrmy7FRz1tuC?|xdNMU>?AEicwgVHmEnHhb$%-e^4U@QP|p-SsmIhC-Y+Pj!=C5UDLCs21WK<-_olBaJ&n4mawXg;^(SeYfv$s)~$Wx!?@ z?E6V{$&@!W%jTlj5%gmGo%6{-fk0-8vpAB7ER6zxtKaDHje01r=lIebwPOV(SLRZL zG6c)fWl+7Z+)ZsEcU_A`>|GE^6)l%Qt76kwe*@WNBdG}7SOezdW9uzjP(4>L-a$AJ z@8_K1J`ra4)t5w`GR;azE-{DyTNLBkxqy0of9^%Wyx0T}fgohpma6u`IMU$z)WzV= z`aVGUjqzQqgx0!~KpO_v+dZ=lqlC#mtdbuQlPEBg=8pO+{fEcby+EqNLNn_FGN#ME z`kh)^q2fYZ{PT}X+LPD8($XiX-0=tSR_>XK#cfLjH|3gJBRU5(#RgzD=sg~R$oLJHLdUAOS((>NQUdX;$2VL*U# z4U%%2!Bp{-DZ`yPlt?2WkU+kLJvcjE`HpCHvIa z{$eyAPp05Nyy`~O5APWdGHt+%b~=MaxF$X2lrB5FZz@-bI=FNpU<&3BZt{PuyiKLM zgv_b(h)npIEOT{aGU(;1EtMf}-roM|PF?4RuIst%TN7Qr_xuL5>=w)Jid++tUnWzN zEqwPWn^#%I01vY5DHbOrEYQFrp!>xrF`58VBXmN;LB4gjAkP zHYE6mAf{}fn!iQ;4<=$WbN4nDUgSKcANsWd#k|borxCo|bd_%oqWCjp&e79cW+)rw z2o>$Jb9({K5RY%lZLu}psXaumUM?Uy>C%j0cRNqbAof@_)$i_E%SqK;>=VTFJXEU- znnFH0Jt+g{4EZVzP5~85roZ5GVqZ0gt(pS&h<|^B(AX-dszkx{R9^9}>vO0~6Nxb8 z=`CaW2L&NaL5N7iP^)M(c3zsJxv^aguuCsdiS$^WJ6}*Y{S=#k^kTSK*OER-$ok#)7sJ$Us5jtMH)3PTA)=J& zDZn*epsm~;sIi%ZV%#Q5q(teDv?g9cJ7z2Dg9jbu3;H%a+bNwR%H}em;V-Qx#|7t~ zKX>(<1fscCJI0*QcAK`1BvvRMiMLbmbfd7u#=g76Z1i2C|Jl$Yz#9Jz>FUg*s%*>f zEJc#KN(mBQw#`&CrbIY2bTuF{Uw4EILB}<~-7-F2en3poIzO9ac+?1V%eJU?qdjWE+hRQ!374(} z%o-2o<1W{#v8)9;R*s3oRgt2c?Lsqph#0G*7a)WFK=CTp7BLSFN5K$GVh^Tb$8tzB zL5{p3>E0o@M^{#Q*tmDpR-}bp?e|gjNYFva0-$6-%WWjD(0#;QJI}F8 zaV)I=+%|!%z#Z}-H7y%F!+btOD#4*pb&4eY5>&Kb#MWxw2P|Cp=)@Ab7%$(4iZ2vs zRE$-s9Vud9l8ia5sfBNggbpzyK6ORfxWcp*eIDEQ+pR6>^KgABA`Dw%2)yR)EokC! zlTy`Dgv@o+2jVbddBkN1Wqn;-`Y0yAe>(#x)>q(BRTz^^Tr5Vgi})?N4d-@2Xv*qG z51qPTIYJd_@A(?d3qXgz{%}n&Cy~iD=atN-%Vs;*6ai1h4e-U^aQj9zE=nUN40vLR zn&~;I7LWMT>e8BSzyno3a%1Q6>&l{RgJSCuqP4A=EWe@qfW%=pHiEw`znkg zmrq&KGvwOK>MtocehSl6H?)_TVUO8Dw*lK`AUJr`1D#P!Z$g(8 zQ^SiN>zi~2{J!;+W_Vzh1H_F*^OZG95;@sGy-g@o8>6KbxaLQ+*7Tfpe5Jrs|eCR!V;x_N2gsk1o9A6%L zZ5mp$A;MJ^pYu-DB+teDNyAbhVX)8htV}2GZULNMliJ0)L5(DbY#Aw{jd4j``X3E> z3nQ7I3By+Iyu6Fz*@(rq+0I}^t1z`+)k%T9zy@KYPQ6OqQpD)|0qhmL8Ld&Oq!_CA zC4n>0zfuKjYPvN&P40_B(#3|L6L@H5Cafx)nVtlNGr!>^5?UhJK@1;kobP=~vYHzO z%zb=o=@q;%9CUB?D92Yo&(Z2II2TESAAV6f=}IOl|7z<(k$RIyoQ7E>|8$MZvxbjA zM>4I?c|MoEqR*1^)rYWqwp*DXBkjd^*o(qq%7a(4r-FR6qqbtL5+2gxOps3tSuDpT z9X?zcZijP4NehAtj0g9FMCj4dz4klp@C^dh2-J5a7o&QQs5`ix6i>GB9UH}QXMekY z(0_g5eyaMlO3vS^%{ytpq+7y-c5Pb66l(b$;?SV>W?QVna6&f+q8QS%#?570e8@j! zUW+ZFT=G)g8IHemd||U5Z0T)wUmLK^bYaSspO#j}L#&G^)8- z?*@x_y(g(uN&9k-T8nFZGG4*(l)s@>`snf4(a-C{$kp~vI)#p)f;*kH%NLZ>V1{Yp!v4-cpoxLRoL7CVD-O9L84yHB81rtCOs{+n*rTqz(tBK_n*?>!Bc?erJSH zdZM9@x^h-Z9^~e&XWCzkBZtnv7<1Bis;+-A4xnom5Bm)ke=%xnLb2>UTAK)lvb2=+ z-C9mJa9#}Vs)BMTA#Rti*Ku`-Q%Ge;vQk&pHel}(*`jn0ON2?ADqUE6qeq-F8r+uN zf74&lB6>GiW>LWZeFG=>?dTp>D{=Xsbk4NFc;}KTI8AzCe*LcVU>c+%T!E#g-*#J! z1ZQX*F=sqe)xfrRrJe-r0LTQ%XprB(V8Jv3dHIh$FAogfxK6RR|LnS2X@y99vgD$v zSk`Q?B)H#6?)!yj-M1OEJ7RfuKX>Un6uqf?oP*NMK_H4K!n9w@g%~#0sc?9GGKd%r z;1C?qZK*go=13^2tuUbr?eQb8#N00AtfKJ>Jj&reT{f0r+R@HlZXhFVFa^V=L-vW9 zgO8kcSDVZ!6Yb=h2fOwggjjY~6U%jQYiYuV2yKHQd z>X_4_-tsNW&f}w_mg&Cn_j0UXR9HR@s&@<_o(s!QB%7tlGU*=1uzd-#Kxi3-8}60jSHyXub?MW+$XY15Iu5ZW$|Pg9vhSJSB1 z{&4#3c5-E=L})#pO+Ef$tz1EJVtu40mzZ1!D~ zk?0}Y2t0jjWUwBVTc9yliDk60!t+}NxZDRCYuwjpM!IeJMUJuSXq~333!=219(%=|94ZUQ#TlUN1-x_ZaD_!A_- zERL;Do|HZ;W=;lL{JJxp)hoh@44?Zo=!vDbF5PGB!8p%CM#iF0hJes0pd?Pc-?nb_$*{0PiQ|{q0FgD4i*RxS=XlY#qL-qeSNt@Q0>GYsbM>(r2vlKd(LFD!e(z(hu-3ix%S2c zA2OWmo@Paz+D>#FmUS>W&K~gXHU@jRODr#kWg6+Q90Mg2QzJUiZNcp#K+~W32X~)c zct@s)l?yI0DK&PGo=x5@+M{GfP}}wkPxiHJi8pP=me)q_Xb3!&Lv<_50JMA4{2&ft zmu|bu#BeCC;1#j5LDuYQZm;r{73Z&U_i7;~B;W7#a*l#vod@;4BdiHs##dZY5AJUW zMIu@EQ(sKV2lLp|Gcu^b6cY|wN;~(x5Uy<)oV0n4)K>Rv(7HgDzZgteLIFQ@KF>{kvgjWhll@PiRH@)Z zM+fRr=4Qml)@suyM^C;Vop@CMmEbJ|jy z{Y#`-phFTZQ1)1Pe1H9?GcQ)=3~#85*#gG(`HJ!ShurUvVu$o<0p9zCIBER{a0v*S zhbpaED4o(^GU!$nzy8n%mMy6yN=YZ{Al;~$9&gx$;02|;SMB83g$AqSZzPq`{mf)gKeZP4+a6x9c(HYjVhd!b~NOB~4 z@8pBEtkW2x4PRydVO|nP>yBTPP4C82#)g~7N;nXH7x+| zsxzvygYwTu$e&}m%WwWQ%&1@OI=uv4M3!Y^eAaD_Q;?XbHZBpszQX`qwQrSRA|#Eg9e8~)kezFPm?mbJz9XfQHxfH@d8gW%7-Dz`cW&^U(>7Hi*^L4_Ownm2Oc9Nw z&1H~NK?G~_*sy)oy}H;Cqj!PvAppmIYR6V`-z0Y2#hz*Q500gJth{|#ID+dUE3S5r z@c&(8`QQFX_`kcn1jpASBDxNSjTaPKKWx#>Tp9`)cgF3}TWQ);{Qhfeu@Hfb`E`3Z zTd+`f+5Q*fh8C`xk&|h$5l?}PX%GHlFydlhux_*T-4})K!OiSHP}m4ZPC7AfKXQl; zC)_W7g|*Z7nPf-rfg75^m-%3`dQGdv1djv{+x20W%0HB+1EV&8F zlhtJ3B9VHy&-dm?v&BXQIn-{doTBz_4JXCmevdCui^J=pa8G2Vzrvz9b*9?rUQ)V? z`0WJ?#Xcs_*jAU#-jsQ}A*$bYb~~Ut3hW1jf?`RmYLVnxi;+t&N2g~aE2w}?#Zg)&oLXUN=F*ZuZdFBj zofa21oiuI1y(1R}D}IX;Vi553k+q$j!RJR9kLdYZO9{%*d{8U&JHNIfkiE2FWLK7m+-AtS z$X|?aP4?ADid$@h=+A?$v0DdC{SFJ{{kylKvSo~V=UQRRKl74d7lEw1DNwO~4JUuM$Y@R^ZC z0$L|Mltd>LV4CP{F|2p0*-gW!Y$cglus+MZ@Q_uqiLCvYiw*qv(dK=} zpO_}K`KhVJsETO8k+ZCcBzn0`$L1oc4pr86p~XpIIA23gil>l`fh>c8jR8ncPjBY% z@PS0nf(lKnX-u0f>FF&kP3!4_{*7oefFB<1l=Rk0nrBn+O*B=_PppsCl+#CbUW%{p zE;P}drZIH7zS;H;7JF@Am+d(6v?|1A*k8oe)uV!U-#*NkC=yDGW0$ zNg&t{{TF6|^q})_g9#>!MAri3X35x3Ux%|bF$NCjHEOC{d*b=*Z<>=#B`RQnYL$3) z9%=Wa99^S<>7;Bi6(zxrwo57N#TbpB|EHPiUo|#7{nsv3dcpMBKx?e?0lh}~Isq(t zpCoja6>qQn#UT2N(Jmy+v--d5f6xEZ_Z9#CU?75049WIQj=fM2mhk^)?P?@?G4Ss^ z`&=*}aDsi$B7clQJJpAQK_J~DsrjHP>2&v{5RD8J|LzQXf&R=1W0W1g**f=8qCD%{ z+d1gxp^qm)V==RZ)Q(XXma-cgM}Nfkau9q`e=*MGoU_k=dsz0eyaa3i1mCWUA>I$@ zO~*?6(Rfr#Z2zI$30&B|sYi-o#{GWuU{B*cDtWyJciS4%_rFG+*VRuePMcw5s7AmdRX6GH*nyR<-j=6iABwddbKWUnXiB4T{mS$#CyD93Kx+fb= zCFm=yb&NRxqrLJfrk8Ak?$%cye_3XnD?~t9>N9~8i1R-5_5L-eS-<4uRv=);DW-3uL=ky5mDl)XK z%k@Wj7IW7=w{%evLK_dxK!nQDiV@N&N!w;yRE@gr~@y`1Ji?UhM0H#fJkEkJnAEd7W#7K6|dut3NIaR4ul3E;Q8;e_w&{FKbZ~LoGvtRjUREhKW%-yM$vYV z#=mC5N046<^{z-*P;U%6-K1^qhI7M55hUi;(gT^<7$bKy^s7B++M558avpOgY;dLr zw;I{aFsN@#U%~>&6<9&Y*p4EAIt00$(qco{$@>*eeuQ7RqkeKdsMd{U77FB%*Ch!5 zv<7h_;)WTunjjHSdh<;NFSRsIAC5Vc@dDT)0hw3^AnHg{R~(-}jPE6K^S}tEZOl?Q z6M7trm`koW+-K75781?Hdql0Be>%qS zI+LWnHSxiL3+b#=l2(lW*{VpbF^m~&Ri@`DRR!86GQDlj?0XcxtW|GoBGJMi!qn`h z;1tLL5#fZ%L|i>X)MfYis^1^qH71YwJ{B3l^*GaUzpTzTjS1w9+g{hv3&R81lvoQK z;k+sj&4p*97Ez53!jIf`F32dU@sUlou=>`?o&lbi#f2BN$vg%O1(_kBKWz)hX#%c# zHfO>SRVQw@b-he)9pSF3;&N^MUl)&5oD9O+U}ChgrhLEiSvVd2Y{5*yb&$GoRgZKQ z>P(o94{5+3V81tkqM6$1=z1;lOVMsXjOsEuBIf$YN~W7Y4Sd93XuZBGah$Z&3(MzH z{SuScIB(3kqa@q~EUB$~&+CnY~UO zwbt`YOLOLD!?MNkZ?_QNjJ z!RA(zF1--Ah?y}7(!TWd`20k(X0I&J-#Wz-u*olIqHwZsaJ529b^mHDzzh;?B!sN; z!Fk9ypSTXKsuNj+^=A#DxI_gVZC{f%R#&`+Q>&^(Fb+;y`Snxv7@yW<=yC zTir;x!SMNK?^IQs@75E+k%-G@e0TMzO1B6GfbN<{j}LyaZ_^ztff$t@Pp{+@T(sjH zSOLSGr%a)8De??if4WURvkl^vVZW%HhGFuB)17Zu=AdAR^I}d~piZA+UgY^qb6th2iSkQBa4!<;B z{Jl@T9muQvk3ak9bm!-YT`_>6c}l=fav5(&=QWkFzOQXK~WX6OtVE zbGWsw@Z0;uN&E2mC$8*5({H~re(5>R4#1pLzxq{1epf&JAxV$-Gal?P)yCG=PtYiC zj$-M}SaTYNOJccgri1YZY$ZQdwAc7ifZmKnU~UgldtV{%si?H~>$?cm-JqMY3Fx(IA89QF zzq7v;nyguH-GU3mCs+;oXBm)p9h`cZ-J{IP#V+;GFgnNQ7aNDXQ&P!+(94G6As=zH zeLN$_7`@y#5gr<#Ga!dbQv{*6@{G2XnT1spjJsLFPV}IvJp42rn+l*k^PH2Op)irK zSc!mKJ7s{1_8Q!(;SVvfah^wd5H{eAo=_CkEtb(19?vt!EZD$SbIUa0R9PMBR%vN) zWV4aVzD#OrqEZ9auMVEq8WzUYMl@YWM}3-6HhRyqi>0eJZWLUz`o=j*J_AaIpRRTv z3~-^7G|VzbS5N)ivD~xb84k~H0_va7v^R?fsjvlHet8|Ss1j(v1~PM6&SZDu`u-~@ z0ry!(-ne!myK?#g~B8!P>wT)9SNzo z)-r5oUHmi|QGc#NnD^byL=dJomy~am%tFc*GhQh`Ro0Zh(IB4G{wh~Bl!^5qc>H~& zX;!V}M@K_Pbr%oPrB`S}r3FE0pyx@qjJZy@=tWm?wCMcZQp3|ip&{D$v-*o)Rrg{> zb%rP=`A6T#=@^28O8R7xNG~?Y<`jdXUEnZp4zO4(k6Z2O) zQofXJR{?V#M1r$FSQSS;E*W#RMPBWIjm52J1NqgpJ=oZ*OABn&`Fy6}Jf)e1ExapM zfVxSNB*lG?HH@scCqbj6@3lVXrj_;>CC*!qz_Rca=xdpl3~%`sXl!6FfYT4)t%C;t zI~z1D*Svr|fndD#nN;1vjl~o>v)97`4y3QCt45-~Lw8_QfxBwsWQ%RkQG?I|U@ziL zp~=55SO5Kw|156&f6H9_FYe&~)0;aA@5XecgqAV@Wh^sIK6`NdPdhO8*q>9h$>SmA z%~&tbaVFVM3_l%Wv1R!_i$IwZmTz(uQM#p$4e9<^a{Wu;&)skNU8Arqw|m5QK(VRg-d%HBP1X& z=Jo*Q@s-`PG*0VN z{ckx`BT+t8GQYyRHVLj6sPR=9s0i}Ya`*-s<;vHI8U~H<1azkOMAOX+ZTaS37n0Pp zTtY6LEFf;x3OVL$@3#D&i*JCV%ckrE820%f>x5?E&ORLe)-<)vs)CCJ-s**5B)OZl z_Qs;UZPCXv33L@S6wiEPV(K)5b(xB4NgJ5ep3qFM)+{`S8Wlg4%^l$oLyfv2GXtZx z9}!)9_}SU2*C12u;EBG@nOFK-?d(tI_o6`Cz*t>Jd27>uBzgg?$%*PmRrkLQ+r%WV zE#MdwIs2zk8i({O#T{kVX^-KtF5<6t40*zp3|MD#@e34O?)WHw*Nu>foPy^s9}gGl zMdN$>X}1f*=SzW6H90yk^j#O8Ixmh8p+cv}*;84IjzK*z!mpXsG6`*VCJ2pf!ZDfn zbvJgu4bq7{LuoN46{2q}sg|#EAsW20{s(FvQ;xTYLI0nO!hiG0{~}fPe}a?$t55zr zz|Yrd{iM)5O$mU57So|)>-NsCnv2o9gX|r2Y@FC%jJI;f&?PNFW<){ZWxMztjUbXH zzR30bcTMCT+-u=-Tgn@08kl_N3=@cF_sD7~T>yS?GV!7DfunnSp+$ht(pwZT)yYa4 zBNS&Fu+Rev9=V^R2A%xAD%fHdk#N!%$Rv!1UZCEQkL~PDqeoxk4g4VXtZ~%0c6MDI zbiPWo;BtS}F}J{dXgK-874FR_5SK)@2aP$oa8S?2W|Odmb#;Lf{U-x@G&tXWCAGao;YByH(UrdOzUntn&pb z%cUW){`-s4SN*paizD^u=sYn7n~Q1gc~qzNBIX`kcoa01B))!g&fEUU{Ey+@=qF2` z1^;#OgLI!$QP!twu>g?VVFp$_)q>#OzSkrG%na$AOc>#*6q|Hih`QJ|tG+b`HZ;Q( ztH}@H$A0Xm(r`$3lwMOR)f4 zwEA`&P1bi7YlYyqz}OwMqDJ&DhLYT$7dH*_yRZfHKJae|e+#1j7;iK_3xMr^HLsa!BITxGw0k~t$f znl~53yCmxFpq(c3ao5JCQ9ylPot{|hE)&moa-`aZU2!@`JCy$fx@rRHaw4$VKME<_ zIu$>4M;A}o&lKY>iSOaQ3Rg%QZH*DL8v?9@nq6v`S z^@PX?-6%nh+@eBw#(05jY8!|&lhR#>ppfs}S~hG__5v=GLAm|}feBfmO47_nU7h5+ zuDx4#FFDUNe-MnmSNccbp1+HpG^A_=9^V=M;(vJEe+2HGH0$1KRDPyZcwnRzVb4~c zK3Z2=>HP=obOqnk*%fcUcci+G^Ij|sU@_>7X826_j|{T^|E>Q0i~0ZT4eU=V7#E{m zaHfUyXEz`z7Jx=s8D_#r(*Oxz5WD6mU+e<(!um;EjOZ190Ckt<_G+ zi+IoX;5cA9*yVyr?2OFnk`-cnU1aX}gb$h3!LHrtK)9ilMXe{*y_iJ!75gry`NIXJ zyS_`%8<)=}v+LYZqwHQ>L>_BU%Rb682!pp2IAX|+jxhaSWhMW&lZ*dCF2X-u^3PCn z%*vBunN5$td~e6A5{JJSy4F_v=$XxPzq0H8>RuLIb3g8n@uHp&z42>Sjr~`&dF@f} zUyO}fcx4lo>z#NE_Vvxp&VT$eSR)EHVg4wg?g6zm+F;u2&yb3ln>{#rh^}J*3f$iw zKyl4Q)vhz6E#cSw=0q?J@L!B^*gSPM#n@jAxxglLQi3d_E=HieV|9MIc?dvbi`Xtb zqfl^k6WGy=)DeW=9uX=}9&N%! zg_L)Yc+ETz)$4ibdA&CP8F(QJ^j6?UMg0WXRA|2hp7H=Cwotc`6;TU5d5Lpu{g<#`;fB4Q7%RIkX1ve!tRyCQ|Fk( z&N7(LN#1h7jQ&5;`f&9_@M0ud%+qYblu%>+9xZ zz68D!cu&kSH4$^jz3^RWYAnh?s@dm>L%I)$%apF&N1q~mFK9%RmDj&KiM00kNoHNP`%?XyL6r|2GlUcX@h%W;JeF@eHX}TfQqf4*aZKR(=!_8Xg~Vp*ZdTb>taq zpjK(%3=(>x{`fm*(2%=LxVCroRd)VAM^MHEl zKCGz|PcDL8|Hbf7CEy$Ohle;QaNp7AB11ztajZEd75@BGC_535nq2VtsxGdLkJnVwk24%zy*vfs|k5Eqim_{p5vRg5;#%pa-?Fdp*f=!LtzmTAmWCcf%`;0 z^*ISyV)|+_4H#{%G&@klIvoiY=2d0nWtPR`^9*_2@{(cL?1s%rxyP~~g^5mD}N`8J~Ji z?!QMEJh%|+P#HFT=Zdws77-&r2#Grik;`W=tSDJsr8Ca5b4uw1@Vu9xIp04=2L2rJ z$VtC6UU%sa5ZFcr_}(@kr31ilx9lI5?G*OiY#pzDB@0EIv_2J=k=Mz*0&!I=ZF{z# zMJuFhT?kkG@Bry7q`=fPJ|z*{@I1GfbjvX&w`-0wN~bgrNy!>|FE}+Kj1H(o0}NEo zSrye$XyrECw>HZDwSrqz?5}&hVHOuOsAgh_?-(^<1l^{<5TQA|(BWb3eBMfPVQ zX19op{8xo!Tq*kYr!F8@ZfPQvZ=VG;7O-35zdkYd2XOWztc5UJtRFp+ z6=u;RnV&@}d=I&|QpT0jv=4T$9ADa$Ajp=^=upz9g(78A#?r55~dkcY! zoEut+D$U3>&KH`vKt>|xAjnTjgkr}s&`X-+jh~n!y0;0CkzmiJ(d9j6UoDqz*Rn0E zHd^;KyogFMF7pjOuE#OriIhmp#TE4pwx6lq8YYgvTw!m0J^?wCfaPf3gv4V+as%Aj zE!dTP)^IT<=qDX}tPQ$$Kzbye>7b7)O)`2bpD0$x+e{^m%e}P{|C(pdBju@jviA2I6}A{-A`l<6M0>{YHphRVf#bI9 zH=QlPP*D*j$?wtlhst^$*l@&P>{lHk{dy6q*Kb^d!DShq0nK z+fDr?h8?lKvE8<#ya+GvWB$Ms&1Hw17wT?E|9Q|Jwtow>j`3;w4Ta)MD;Y}A1-A-!Wu5sovJ2J_A;Id} z*7+`n*6x1@tHPR~a2^(h0CmptonSr|Fl9L;CO}+NCC$?V^CW7_*ykan&SX_cDAl7mzJ|{+mgIQcR{AHHfrvHtlyRN07h3G6}mE&cehBkz_PPij@ir+Gf#300lC ziTZptVz(BcxsrXWG1M#3z=;qs-Nj+bS2SFnA=Ev*Smh zF|0|b=KA@Hm>gF(lsE(nGP}pWVQYh;BXs ztGpQ`e$<$^Eavp7*+Ne6)5MLPUZ1Jrk?x7;pS-rT&S>s!@}l_kGXuhNpJSh)_5v?! z<2wmfv=~4omV}UZZAAB7ip?<@2b>FI5^??)qoc4V8nOpMkH8mtis{)Rx9ZvD1F0s<|3^?!Z;iEJfCn1K6b5Nh=7zqv;!n zIz3HRS{D)!Cj&_TBCIdXusT&FR=7-x-p9k%rkN$RchXI2R^A;su-maz0N1Kc2L4%KorcT=0t z@U5(0xkKHFQIpP37lLXQTXaj{ozxR>w9$|WuLF~4rXQy5E}(dY*7l;*McCs*mRgUn zN_|gQsl(Q=MI_zOL~6ye)bGvP5l%Q9LM=&&Hp6CI4e$f=5qSz3#zANXC8^IDOnv?y zwz?5w)9y2qtD_K@tnEI6KdHVKqR9HVv zgBL{9F{UevbLw=*?(^@K-F8dcoEOf8AvNb$Orxvidlj4=7T^D3gqh;y@qW}0wutp@ zwmY>hXai?BI3u0cVMDkf+hSiX+s^|DM>5jZua^Q>gEN`>+?S)4P{3QkeWMC!z{$_D z5AHs5(Bn0oMx&6vGCM$u!*+Q_CTS6gGcM++t~~u{eCjq+bFl3JRisjulX0bdjM@mb zv+)AALmWTfl0M)h=aPd_$C7z&jkQ{Ulm2Iw1oL_V5(|I^)2aNz&?G|O){x4fjeU->ImgLE zS(>MmX?yhQ;tnNFs={yLNPFr; z%;^8@s&=%wSv|ljbn8)J;Wb{;@{o`fE zU_@2IY|Fwq_Jxa+;&gow;}#>Et#Wx^1Ai?;B^xq@Lj~n7cQ=lbcGlpC_?~~U9e=v0 zvI)g)brsMS&FZ3!7wM0zIIlgConZegHaA>}{xOYeUnK*A|u zmISd^90p&l8h3=Ip4gsZn>ewNZTNg*<`5nE<)$@_U9-@rVR^)(+zjA%*KMrh31h1s zmba&{!AC@Y>7gQPA$FD8R`+0)D4-?kfBrmFU@ry&#}!qos2`Y2c2-e1d}63gg*(Y~ zWH!b^NhVc3T3NOp-Nk;|Ods{e=-U7rEt)=9F091DR`VKkP`-qsmo zdHX1NStbbG+y3zdbb|PFt~P7U-y9h=Xd8_~jcA`Q_N)wDZ$izOHC57|r{oXY z38Ql0$?U6*bMbuEq{dgYiw0Bf1yOPkg&rGw|3JP3p{$}+VZ-j1uIhY1DeQIFuMwLm zBKmsaC-NrAPEJ|W0^L?N)^*IP;*L;z=WZ#o>m2p6J(DM{p-2!+%7%koNmq|wYTD3B z@<3lWCuuKaCsmX@xpNH6p2``TzV4HGWN65Z6TNJ_zOW6oFuk)pA0Z(jB_!5951+lW zYO`*VOB3BwIUIW^*W{^}cU^$Ed^8x&S0eMVP*2gDXN|Pt63emyMpRi`W&T0A(+|3H zX~_M9LhKd6`Rp$E`eY5(tLy32{?n99w>JpZz0h8=2--gqJ2+^UtpirhPYRX9_Lyy; zvmnSSsr$@Cie*z?E-U#;W|}}{pSFHn>F@Ui>#{KSq2W0=KkF_(n#$rSSJgZ%yM`2B zt@Z~eL43wbW=p0h%2pr(##*L=*{ay#?)BXs-cy5a3`KDXb$5fsz8~2PIGtR(eN5?G zHj)`b`JE~3&KEMuSxY_CEkKx5*iz^2G+mJmiu2$5DNDWj0Z!~*L{7guC6t_r*Whv;n~pg!yD3f@De^7+JnIA*rJM+ijW%>Dj_vf`Ph%+aGxp6n$&zA} zHs;0tgf%o?Z&e1OyT`BqmpzA(vdouAzN>5y3*`}prwW4KBNjB5RXCk)%A%OCJ!v1sdvIg{z`kpB91o zH75(s&tR$cXPl%Nz4n7fuW0*NX_P~xyWIvx_8?3Mh!Fp;yRV}y`VDm~Kh?47xX|Ih zc~8l_@Cv!I)KAMLIeEI*fWg&59QNp^tz1?8J_1lc^k_NEK&xb%Qf^s+Y^&+}&GW`c zPtdIcB5I@Ft9RFUZWuE^$6kk+ntM+WVKb^uApH#xRiiKYA~PRq?W$_ZrWP7#*cN$4 z>f|WNxt!+4y|xJ%9K=8!OJ3}CabeE6&Tp2t(Hm4)t*w*?({~ELCf)0Q%Z@ z*ABk+qO}^BrjbbV!nfV;!_BZkI%x1{GXNqTY(uQIimmaMRL;U8Tq)uMqjPlRkG*Lz z$&39Bwsx`YZKurZTxDxP%S{h4Rdos&(&dl_qoQgb`I8o7VJl7I264&ic^(-*#88vh zqb{LY&`Fk&T?#Q^N)>nQyj36b1XGFRUO6tw86PzL$zgp~{&~NPp$q&4*N5}N;&d)Igz&eQ3dVqJ1O4gs+NXlDyLAmBq(3^u?p7_uTK-;n={Jscri| z-*T8PfaZ3J>?8KHL6Ji^kKwFbm|QMiGny=S|8mn{#||Tvacv)=_hdfxt2)Q|Jzk1R zgVhw`M4c^dAg+=M%a@B&b#5Dp8WM?=VaITCBqzU73fHRmyB)DOl7a3uFCKcQI`(Rm zjUc+5{89$2jOJ2~8G4YL@}U6UT#~Cnu;yNV zIqUw{E(COKFiN{j7z5ka)oI(&^vH}+ z7)D&_5IUM@IzJoE=_)(##a@9w>)n}lu%V^oFKU%$fPri?iGRYW%~VI)9*TCYE~e8aTEFyDH{BZ zyh0zf>@_%oB@KIh-D9EF0*nhs&OComs2)uaqfLO?*O#u@@Z2&%#_@gigJ*;Atu}e> z9L$}GWsfO(KT&x^W0-RQnC6=6Vw<&=pT*$W_hs_RuO}}4Zt}=@*RO_QR7lF^v?%aR z2*PrKt*S*;?KJ-dIRidlW_;4;s9imh@Q-qN4YeuWnP1cN7`F}2RAl-lXys&L*%Pf& zEhZSHl;y$F>{)xIixH=a3H4gv1!d~BNggWs7>9jO1cb7f|lrK_6E2b-|C**S%^wu!;0o(+OSj8H<(D(HDfu!YY3z^!VdWz+415O_0lKqu8iWb@AS5gN<2vzmEtN#cZ! zMYcVlKC7%5>!5WWbj_kl-}^gIld%8k19xQY%9O$RdPlFd;-pyKBiaxRKG2z=%ORq@ z5s=q6$eGYu>Y9^+zVa5GXV~&%6^mJ9iKJbIex->cY@pF6u|cz#P7)pH&_9Gd2-J46kb`Z#Hzrf@@73hx`szK|_bQLn8~M`;n~g`rKps|Htnx}JY;{8fE#UOoMnl-q}DSGs;oJrzm~viRt! z@g)Wwa*Df*HYX1pR+YxeirAPyiH=Lqz;&Y%v?tseEe)}-!bWKM+>|mSk{@V(_?y5L z+n>EE{lKD8OZI(MQHCx1Z10vLrV9F-^ILCZ)eGMSUHU%f!NI*PHgsrbP2=ml(9HSn zTS?z$6X6V%K-Q@BQ>f5khdeAW{5DDj&cMq`XGJKJMti8DbaE=o)PyH(q0w@B31d2C7raEAS;+%!? zZNgc083Rp-_@|J2a`Z&vr^|78TP>+wnofN0x=8y@Ps)7pp#xr~N%fqMrnjFgm$3vj z#n)bu`1AXeK=m+meRWs#Iavok~F@gDzC$! zx9()P&F|p7{3iX#Kb+itN&y<0t9kat4y}H#jh{wTJ-@af+E`B*wHL#l+X`e)=uX^%2z4U%}ENbPd#O4vi-)JL2MZfq7ripb2$|g+>0b!$pc>&;n47X)mv@pXAL|2rlqQDHOne;q5q+tuee-Bz6ZCtx0K%xla!M}ZrZ4)*;}%oRX;AFZ;i|${4}(+Em8NR z{HKeSZ-cPriGFI);u7}x6FyL%GzNSu{X^Fy7wZMT7U*&=mJF9T)H3s3BD zt}K^%4RjC@$Qx!i43R~i77nY5bFUPGd9Y$~O`E5Uk13hBEC3(;Nuva~slt?*maQ^C zs&QN*w$jDSkLBFveZrzm?%E>APHU;(7il%ybim9OJFvw`hNO0}3e}x}S@}B*kF>pa z7}`vE|E;bs+T6h^zG~PbGN=0fP%&)O;SPty*k9TA56W6jLM3SfEYX^HKgh^+Mmy(= z@r&9D;JZr4|(qJ`eX1{F#wOb?2PlzB&i_J~|-q%In##v0t4HE&aBy zkAzb!-F)>|mW_MaG+X1wcQwWSs0}_(1_e?m`4T)P`Q9(^`Kj}DrePM;w?A3fRCe)n zd-Y1Ew7DXqBBId^QBDGS!)hTgMhktd;rErFW@s{{z|KQE>PfOYZg!Q;L2W$8gm2e_ z5LK1=G+j#bKvcvrGkB`Mfb?WfAZ5&8XFDhp|Da}qcdWSr>7)M!Q$EBNHx>9^yN@~U zDRhZx>Rc7GX&$XeNCtaG3ml`^YjB#Pi`{me=fSHtiuBpPn;lEU#r2H(@I9uC4yIJ$ z6%zdpj3E+@xPpOaXWPwdNw`dnQY$%H+`$SQllDcB3|P?X0_=UW9=;kiEmmtM{`i=a zi|Pd23DlTnR14k_xwRo7La^`{&EF6AVdmQ@idAg#}s!P9obSPI3(X2P5snx+6Y?Oj-m(8`?EtN zLgbK3jev<1+A!KnA9twVDUQ#$W>@5GoWGsL%J1Q257)LI0fTg|t3lL|+oM#F%9aT# zT&PB%sa7|6BT;A!d+<(v5u}t8s5P7?zdyS^!#0$k+SMX;JP$lw;tD+MXfdx$q7EMm zsh#k|@1$?zPURRqp{}dYMWeOlQkv>H)x}Q;ef?;U@YK8vmo~V3*G@D!Z+~idS<*c- zyv>(#x51D#nBDQ0q1{}B+Aj5-RXfRJJqMl4vg+NhhHi4!F;{pWK9e ztKXZ4*z{mb<40t9xVCuiSrc~>tYSJ>%9%108&kH5*F^}`mO;goPkkyQYgt#d9DjaP zncjI{brAjrd2aRYXhTAlVDRn0eN{_0RG&(fkX!nb?76|(9N9{o32qlAi40DKElkV__6;SsZJ232sR&Q9-2CCP0u}uBlRcZwf%=OmtzZ)Y z?+g2cE-a0gA50dK);KKdTP^xena{M|SoNQfD2@7eGsMXoDo;DHHo6sQb(Bx+0rnK0 zCjc<7{o5p?;KV2qMi}ZF12;~>fzNDD$zb?DMmggSr+n)0F^s0kzv#w=AK;6|;vHB+ zc{gY39Y5XN1lX_r5CApRkKb1kru)V)J4OQ@VX$)SpmF@3K$elM zbFJbqZ~OJf!UY{4eMVnYQQ6qqWR-Q5K<7Xsoy#ptn|Y{q!sa*`H=VyRt7l3Ep_MTe zZ*_i|>xZeSwvZN~tGgVx>n~~6n!{A>lH4N>B!nn# zHJ8q!oeyVK+;sO+vRYhT3PEjtE_=ojWD0NW|DNQ8W60fP5m7okY#$gUKBW>H&57QV z0nN$`>4s=%+rFJw1}+5G%?qsy?%{0jcXYdB^e?au`_9nkKxUKex+|J)b=h@D(&mxM9tm4ijE&{&BcHG7cg zmzA_RH|);~1(G}aojweDSVX_qRui-s{w=dO33c~RtmR4tHOGqdB(adwaYwM$Sf$^2 zCcIQ}0lLX7ETx&u7H95l^=vz|ZERV~yhRUf+Va9304-ekoc56~qPl>w=YG){IaOs7 z>j>ZyrYKRl6*{=Nkx+OBE0fiw$r!tg9vz}O%zH!v%iU{U@uqt?xUMOpMu^P_t50BH zxzU(DiE7L|V@N~3uWN&6sv6QB&;tTCFkctQ5w_=Ot&sV8pAuOkMvn-IBPyH2)G-jB5V|pIy0^K8{Wko%4WF@RBTomYTcd5qBn4#WGJ)SD^5faXNuMzTMe4QI z2bF9=PsNE6#>ZF1B26L=+av;IPt#%phdXdn0V5pY*0x$Mjr2GO z302mc1OWp$%bPk1LKIiHxhr#ln=~CwN-tn~IEWyNw^l43-pn%?xV@M4fK%|&Pb{9j z5~}9z98IRSjt0^AvK`GNzpdT2?b%y2L6RqY%c$*wAtbe_K0}v7OzjHPxbxWS0(?-) zfW1kR(5KWQ$P*Gp748{WT>uXZ1nhgU=Z^ag^4p<_VK7E@>`}O9uP;0=s!UnljVaqO z`l;jBJ$NGIa$>1>qf09b9lV@FUtzkOt>Ky6CD)QEaolJ)SiKHJ`!sdK8lhUM^&m=x zZnL}I9LNjnTylw;(YGC|_cA7M6y>WBl&5k^JcUJF))mLJEzix86eyowNl85LXvzF7Eq4T+$uu)t->Cm*=#`d&8XKdi9%6S2 zznTFkY)yRd7HJHliS7}m8A59EBKVNRJ)!$vnr-< z#^m|#+IiK{?6P*JeXlfPbPKSEJ`kqm3k7(o=d@ZX);acD_>8H{Ab+2eJ*>Sv8Gh)gZ|O&9+dadO{*FB}&ijJPt5bthzHQCt_OzNbPfP z44k2^ZCQZfhAjIAky(m&uzuP%%ZeREhvi;R>kkywv#o_li$$)PWq9w|cB8jNzhqt< znLIW}(tTtxz=`chS;ktrADxvvzyK5tv>@I-v#71#=X7fIw5~p=Zfimai+Un_zcN<* zJ3!_i44L6(Q2*qRO$c@IdL<#GF;g3qglR?6Tw z2NKOLR5Ktfv_BukL$XdJweguTJy;|uwu8LDtbmqs3p@J*h^JWGN*Hqc`e4OccWjoT zYVqv+kpx>wd;g0=e%I~ig`?(a7meEI|HN2Vg8udMs~^pbMT2Nl^{RtdfA947h4`Pe zh;P*wy`5*toq%2^cZ?pVR7XY`YXchW-E1!lbKKsqiq)0)XxNwGPkik}S3@|Jm~ zi@6t6?*sG^DqPX&+7F!YF>4B!E@M1=2hGc03ge^^U;d zn=GVul1q7tSG1>~Ws{Vg!eZ|E2jzV}ZbF_#qDlLy2dA=U??KN~#shuJME%FNLhy7l z3Dl)`p&_Xznd`=AoXV~-9*^C{9h95w_^WT#}uZMQnK zH_zRhB;EI2e#RCx^_~rKufK&e{*FH;lQwWY(>96SJhqOGhH|gtd#$U$ae5I zsB&sod?C)}@yI(vqb4)+GR2F0y<-jG8v706W7+u8aezlW;iHz73)bb%*B_JP2o)RL*=S?@rwM>zo>6EaB&$N z4n;#YGo9x0ZLOU@OfF=-C~%fap{7eHYVR*^x$O=5J>!Hudb=y@gEdF z3{C$HOosCPee%b@$ZWtl`wPy)(G5VM9fiBEf~!6~wpW-d22^<}b7wL;M_XFh8IXa4T*vElDA z`0qK#-*c?L$HKqI!hdxvT>p#gA5c5;&ymf?DaunYtK6ZN+zDeVhR(CFKz2pUmOG&a zc45i7t2UaEIbq~Fhb8+lrNhxW4Au%iKFL3|zZfSZ4ff@x>|Sb51c%lVJS6iB=}Ex24ZD zk*&~IXP%Uy;!M(;R~na*s7D>A7Y${D4-2n%uxL{mWeCRX;Mur+v+L({j8*}*sQqlC zl{Lkxd6!=qJ`3GT$J72*gVs_&0hc){EpO?*L+yEZAwdradYUH$d)jjAr&504Tq02p z12;YCoT*@XTl|qFLdF{F2Cp2|m#)@(5HBTV=_7{5X5LmKV+s#HL~WBo^haH}l9XbL zg%!(~;O~U8%w#LittX}=IF;e)5h2LY51vvC{O4Hli&!b1`Cu@(rK$Z3*7A?f6-v%0 zpTR{lDFHOvy2f_5#-5e`PON)$7v{+Z5F^|lGl`EDYyUt9iQFLEbNL?eXlL2?&qx}! z;xOuY=p6?s-tRfVHsDcnm*6TZ*t%$}2O=W{sJBcS80(1;I?3g8ofe#i!F-Wk3T;dE zi{nRol_eA7N6_+zsFs$yBsgbLn&Kh2yk_?oxCK@YyJa~lKLVdlnQk>F{t&en9+V1! zJX?PTwqK_$*GS`S<$)?}O>czXyEda?3DCShkHP^JyEZG}W}C@8(&37K14IE~GX$IJ znshR46Sd&EF|-I+;!?wpOqta(LNXJs>JVB@S~o{}^`iZ3Yq!4TfchR+P<6ERv!XN3 zyt~2tgBH%LfO}uyd0W~da&`Xv;@V?hKwPZ6b9*YzQ}1rCdKcLOZMmSxrD&H`jWbF7 z_SBi8ndObg$F+_~gZkE-7ZfVZhIdP%g3+Q>!}c` zx(LtNkG~02nwQCPm^mU<)`t^kL~=yABSrDd4o+Rr@k>csW zud6HVkk``E!m1tK5c&s&9XiCEVj5xf-k1$sN&Tc}bAl-(h{82Zm0rC`NjX=8ADA?l zOY-RV1IK5fMs-{;$ZG`&OfYXOWqEO|h%{OO_oW=i0K{)}0)Dz4x@^n8ifkk5a7EDRCKn) zD5T@ivaxG+Y}ydG_9jJg8EDE^D&*y5ysVISc(b_tkAFTX`0V(*|9;J3IVA{a{McZi z?ZTCvB@@WiiHfryO7{B==?yWiH06z~Xzwlq6c=YQZv*f$GLd;OYl%iz4uONs7Ivj& z;!$|=o(}(GBH3tL%uI#6rDb;-3M&uyokFU&e+O4i=-zO&5en++B8#Rj7b84c+Cof~ zO}AS1jqM)9iJlPG`k*OmCYHBhTO#K3Yrr}3D=9Vz2VlqsHle4wZ`3T-IXfA~31$R!+G@FHSI7O5cvXrsf^yh7_1Za9(Kr6d8N<$rrngP`wd0wv+lXcXFxxJ z({tp@L+?E>Bq9S$K|N` z2WmTiP&^$1w@u{>LlQbjVPr9XP~vL%7_By6uzuLpk z*jcv0@1rb}k-qqe{$!iAA*VQ6^6#X>d-9&60KGtxL6#;A5%(#|4r9aqh^FwjrC4^@ zFW(zMMUaN@kA=d<+ZU>}(h*Z7jjAN~MfrU~^D;@j>2x1H%f}kZ_1n|)vou|dpsFU| z>SjXV4gFQ$Kr7MbVDMZR~;hVG1{N)OUy={-nh;4_{3t%O;l_6JtnB5=S9iRfy18K}HH zm%}RiD)EhBZ1!I-OiCAn-mn=*N=}$QH#uDb`KE`VP00g(mvTzFEZt-bMT&zX4342Q zKfh)!gI?1Oc{=F~2s>p=4)f0A>Rx7b%wJL5NAHuJb#gNAFUyN~lJdGnnNLRxzkA`f!VQ9i(x86Mp4m@n1Md$rk)Q8w4_A_Bdl z71#zOQHg(ASBJC4g!`3z#W9wfklk`}(PAHtEn2UKN`-7pMH-FAmzWeN(wm3s6vRy^ zUrcslF)TY+)7xfSrTjrDdEej>d&8F7eX8&B#W|#@ecWJ=oO^fig%^x#5nNQJVHeyi z3?x_`G)}gZwd*JS1RZ%w(;@ORkf)e43E5K>w*6$>#dRUF4&PK!d+vs0XaKs>Q2N$} zx#7w9Q*;9Ib$c;kj$b&?2^`?!HA#HS{szSz#R|t>^poP}vTFrwnd*N~2Dbm8+~Wq_ zD~EpZW%eHIo>vWt9sgaNR%#hbTm!*VInysx5wM?QV7PbhU24%o; z>$pP&VT*t(d)wtAERIFHNdU&3`%OkX?HxDG&WagKuxd}nywGk-Ka$sFCh^g}((W*| zbcwcO?kesse8ZG=(p@x`-|Y0hd^fq4PnRD<(Oqd!iw{o)(DmcfaS2h^ukqk&YGf_TJVYPU{dWw-#%3fzZp9 z+Y}P^7RYt8H!}xllnG6g90fIo&)37hu9-FDS!ZQh;4mzyrQugGHpIBW9 zYV@MztU~kVWourGvW~re%L#eP%;Pt%GnDBwEKQ~3q-{RVlD~Gv*xnywo7?@3D!Fy`gR&h{`Zz1#($K(1LG_?B5g{isAU=!}@$Gl?0s$xB>W%`qGcj zYO~h1;3SH$QD|;RCtwgmUEifM=Ft{3^H^8M@m(SExhJ0akLX&G(k8z_J2GJcQ}><` zfy*t&VTDULNj@=}le5Oh%mX{}WB}l@<0w*AmL*S>QGlOW$2HE#s?j)20#+GNWgns~ zuI2|u?Fz}tnQbOzW83Z)-Y+?L`jg;l2UT`Mfo2qCcxJEGj!) z8DzM!5N)sDgXSvJ+|TUt5V%oRX`CHBUrnp2#dgdrsOEHYsOm)G(qx3Us|J z_HjMaGwdpaMgY+vj$Q-}Q9{4HthZgogMaar;vrN&6xHP$62F>CHIYbfLC;pHa~p!z z&2gE~fqlw*i{4Z29-8%|Npwe(5!;qGykQa#Omd%E(qY8)ruq5(ZtGVq?hHXg_|^PN z+EP}PxsB~|M5m}_;+CtEV%F7i^@NvP*$aTbb3@ZSuOpOn?5ggxIo;58vE(hUQ~*GP zq0(Dq!v4Jz>tx}=E@_>n@vo(aHBj?Y8H+dMsG{Ff@5+AmTx?rDiD@$Hl&J1Ia&fy# zS2zh7W5WF!$flvtfWVYrY6|V2Ry8q*o+s`p5)`tFapSdZ=qYAQ5@JBO-+B|f4mfFF zN2;Sjz_0=B*;O8i$!T=&y#q{t#YJ**J|9D1vxSzKJ?Nb+y@_gcrvM=P2t&$M82fW_i6x zdFenL9L{5QSwR@{u%F7~cz&RN#y*jdj7M83##YKQ%BZy%c*>GhAuuwM^Gv>JgaA;s zMR2gD`Mj2zx6|C_z(ilSP;L;`8JsPcr4=n-XQxu{2APUqkSPHx#7rJ7z`rnWs5N^p zn6d~i_8#H&r&cT_MIxQ<;+xG&b#uOD+#DVaq_3)n4Ugw21RJOe(<)SJhyr^s6@GnR zyJU9LLc`jyCT)sfh@3g{&)JwKIlYl)TO`@`lEEchj8;%XG z!T9mBlv*Wjy!*?~k4*04bZ)o#sDz0-)`9>tWMRU6L{~lupx}{v3Enj^@Yj`pX5 z6mV7c)3{0f4>gf`bJ;+J%?6eTYX2b2udzLoS4=k*dX0{jy0+G$0)m9D>t2#&{(&A` z8z4H{5$0Xu^?U2C@EF5kj`zAJ3T{3Uv+?6}5n!vAGr{kdT9O5Aeq2!|)>Pvx&25=? zqhV9?c1r*V$>vrzGBko+Yc$o54xf&b#pk;!HvpC3G?rzTh-RcPRw)RR)!}ggPD69Q zm3{WVt;8A51_uCy4T+ua{}-sN9E_wK}a9+B)L)hbqGL9b&bRT zW)E4k-pI)jE%7`j{^B?!x-5_sB54{drwwqXK5P+ctP$uXtKW~=8viXeIi!#oI8Kd~ z=-r-0q=3#Bf3QpECb5f$G}mEdwYDk4z?dC{pAR_f7pE_G!<(z+PTEGk>JSW+J@>yk zkg(;G|RXn#;H)jM_s)rrhg&MQ28^W*s$J!IzJG+RVylygeTjqULvwobcX=2u7ui>=0Q zHX!W7SV*Kn4A9hIbE0r$wi9e98BW?_62ix*juUdf|7Sc-7HCW-0Obne5|Ua>52` zbLH;(r!wKDfXZWIch)vLeEcC6w-wti#t)z`!+^P7k-Z(?!Vns*jiH4o%~U#iyJTx- zI`}DV{2jQ$yQiU0(F*TDLoxJ+vI&o9eR5~0z{HmgFZGdH{#UbT1Q6`d^O;4-;7FQ9 ztzxPIW3*X~}#>D6C$8=Pp3d-oK7PCk%o^XoL7PQXBICkR}uo<3Vg)PrfQPa!SY+y4h&px0a#RydyY#k>`uYaN{cPp5 zuPr$|9I2$Zh>Cb}r-_2-^=G~muL4ld68L|vT4MXyi@re@=z;NZcq@I00o=?{*1T6% zpg?DWD9)<%C($iB-4Yh}?C7ZW8(16j&K#okXY_D8wOkxWC0-WnX+p@<_|iY# zq2|)<4@*Z64T>@!CBJ2_>HkB3i(| zP9|UZM}Fm|5BG3MlTF&h#=@MI7Hp4SaeUwG#Rb9V>$t7Og*8#U*72OVDPw12{gjbM z2X5wP@c8D5L~bIIFguY$O%XYhM1FFcvcP%fOQ{q=^~WhVH$ejKbi_G);8R+y?${l*9bKGEJ)%kZ+TGJrv z+mS4uK4}q7?#d%wvAbPm>ekn}md-AeOHP->{4VMgKaB*h_>6v)LShCmmcKPm$tWVw z?x=|#7Y@!Yo@Ja#{nl2#Ni+6?wOofmbake}eu7(w&z_^5{Qezi_u%@<-QQHKjU3*- zMA&o7y6qnrk+JgsM(*za$>aT%(+z0+@fTMenE2J;9~AyuqhN8Y_MaZ6C{GTR)KH$_ z9`O8y)BV}?KbY!>1^WJ1tti54xIN#p_63GI$E7%)XkA_qG}um%n) z*v8_P_*U7nZzhAKN*}%6#XrY|8r8&pa5YV+rC`!erFcD@Bl%uP&`Rg5JEF=8HP92X zF)&ZU#kdTJeRt)K&%$c?s@x<4&YG1pa3vaxlA%wW_s!wd>cgg{bSQeoT9x+qndb~s zMC=|buH+)AFZayCQ)EhI&d*VHA?qa{41P{JqdqZ|=Hn|ODFZ0feZ4cKq;z)m{87#y zy!Dek@di6^aY9VZboh{E{lq63l8{M={kfKt)r~O8bh>&%t44;PIo>ysY&x-Cr6e^^ zre7mZt-9-CQnCp??~|XDwnTO*Iw(b~;NAMmy0Z2#vA|*p*V}OQr7#6_cENb-m$g${ zZ;Ri4Y}C5W(mtVA?>?hE1sm{gPs~+e8_%b}Oyk2HAaRVIXKFPC04YwK zBXM^h$cB}S!==-30lVSriXF8fABZ`<1Xa1NDt0zoL`tVO1>4x<4`9j}eUnyMG! ze^6f9&ZE6+YlDs`*X=)A)*sX(-~q3nInVG7jb5n18ZmC-z3x+s0Hk0Ow!7!JkbBEvs~4sG;1E$iDM9kfshOD|&%c!=$uX zOnC%#d4_AFyklvZFg4J#zLv>}EU4rX1R)xXiP3X|3@L)WJZQB;7Iasoc%qMa{ILDE zJUvW+J~sVTP(!X>?Nfdaxp%T|)wM;OwalRcD!Ur#hR&XXEC?JbCHIWsL#3Up8(nUJ z)``IZ(WN|72EMoZumd-391w$b=WUaJ&igHmF6gd--$8duR%WmlLlWB5;>+6-cY#IB zp3Qyetje=E>`^pL8Hjx0xK2yqS61N{eT7f`%`-J+G9T-_#h&6lG_XDBxYZ9>tz*rC zLpzuFKs%c4#$rJ6&*#L|k-EJLbX z>Uytwb@N8j+TZvz%2Hw4LBk_UNWhW?Zx_c*e=Y%f(-ZjNm+y8>vrt+xUN3vxcY0fv zWNj`vS2>wOrPLnH_29FJh?Ie1CelQ+F}u2XA_E{genN665JNb*{v)l$54tsWOmsGy zGxlinA&#k!jzb4lG^ka^ET=m_Uun#5S^-~M@=%GOWeVm`%cu899JyP&2FY1wm3W-} z-XI~YqpCHHq@gnoG_*C-QT+HVAF*Kd?4G+~2Itc;{ir1j{=XjbK89JmnZmQ{8LFhw zFx#nui-pn;)OajR&hR%97SHcOdAv4*u-1%<>_XZ3^qIjBgX*1Kc4e23s-qD~)SEKj zb}E(dthx#IdNymM3|rnG6ul{Tix77g$RBZxw;x)t4Mgw2wAtM`edUE z=t@<1YAWNQ?=`pMSW&y<-)V;I9RN!{7Q|mCscSy}5s%ndd}m<31l}7vB+%DDNWA?n^^)l00h(*|Z(?L@ z=_!0zlNp?OF?xPHuNe5DdnWx!#sdZA5!SpnH;#o};O-}pzJ6rS^fY?lGZWyWmPL?2 z^tY#debHt1M<=BY2NgJN>-B}gTF-m1LU1t#aeeT+k0~2ui5w^~{BciR>g#J^V=E&; z{@e#1j>uNf^6E4GV0ggs{&AYCSWxdHLGmuwWFIqXiQ@F<*UeX9qI)N#1XZ*q&#rkE zm+-tjCLj0rXZZDn(nok|5!Bw?O6hfUgq(x;wRD=#g0I;6jki~Uc zdNpXZY{r7wDXcI>vyIFfew5)LqrOTRY(fB}K!w@tE{N{@`pP@&6=XIi3~tN3;xu(U z@+3E|6c8Nme)FlyLgZ;By%bpk@4HP0Ak(dcr2^?>&iMJ~)b1IDdg_pJi4x`!9*eys z(!5=jo-iD%VnXQ5LU=E@H%86yR$5-Zm}7i;>YP1i%0aR}y3$%EVL)mu@iYT3xlx8N zDV6(puKsX0bCL%-U+FZxp=%=ao$9^!&;8%;Zi6E>>%)4>bR1h{TP;mZj`llxn9ZxG zN$Iu2qlh}0vGJo2mA@`J-Lip_x5At{#!DzIm01%@_O%S;*y#9E%b!N42?l&coTHc< z724)@UpAMBxK55Iu~bA>eyT3J`zjJw`8u6J*IoT4FfGx{H`Q?VSbgHc50N3VQ8ook zd2Y3F6~l`k+}kMjPEh8;zI3`1>tlQkS4O!u_GPigxRnSbK_h>9rNrt*%;8bYzAj#S zgCH%tWQ5``^REc_=lz$Nq1%?~;E(Dy`}bSH*i{0}sH7mxD z-O={+g^T%|-mOsA+Lu_{%7HIXWa<;Xetv#uUyxrEf>A~TC)d?i>#Bp~BKEll*8KoF z#H4%NtOCh`vmG%Q@L)C*Q#)!Ok8F9f-H6d-j_RK&JdED9j5-0BPL2n-yD9zxYpZ0c z>)Fn6<;6n!%zE027@D-)yeq}A-xP9N{>TgP)7N5QSEM+HJf1lO3rNfVV8hJEH zoNiaQ_?^%kmGY76@Wa;3YYBz%thmX$y+e^OGKrh?(*ii9*)^d-nl-V;b$F>M+R2>0 z#)4IjnI+3m*LcG&b1sejxLH|Vf8H>)iGkjr4#vKy&`nB#LSD=Lydpd{{`&`9j+uFb z{dx~1rF+f?JXQkHXiK&y9wxk>qw4%)EYaTxhEA(#KfR0Q2E4{2FW2>ZJLB>F2?KFe z`A~QT%2S@I|6vOIUzz*TNsOjC9efY3?`|LHj1sps zcs5V(`9Moa@rfd+>b`R3p}An>HrM{vddB*nKgVRnV7o7}!E{JLUPt@;d=?Em4D7w= z&Akvqo{v5^e+I$+egk%JAnf@3Z~3i%Grvh98+8~tK!5?ppZGg| z(?`fg!a$M%zd+__Z&ap z>9Xsbvu91vEr>|e6q;8Ey!H~gku%y_0yi&5TT7!2(a|>kX!i-;-yAIvMhk?|0$~If z2**R}Pp#Reb=qm-BmZu1z5N@lk7q^H{`w%6Dm(4_{C$ODb>F^U-oxi7`~H1<_4V)k zrQhbgekVG2@wRfqyX~G2gyZZbJAYbzyB{}qF7VdQ=evH@y%Z`hxbf}F>sTw`)viAr W7{t.exports=JSON.parse('{"title":"Tutorials","slug":"/category/tutorials-1","permalink":"/category/tutorials-1","navigation":{"previous":{"title":"Tutorial 5: How to verify a BSV20 token","permalink":"/tokens/tutorials/how-to-verify-a-BSV20-transaction"},"next":{"title":"Tutorial 1: Hello World","permalink":"/tutorials/hello-world"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[8150],{3775:t=>{t.exports=JSON.parse('{"title":"Tutorials","slug":"/category/tutorials-1","permalink":"/category/tutorials-1","navigation":{"previous":{"title":"Tutorial 4: Ordinal Lock","permalink":"/tokens/tutorials/ordinal-lock"},"next":{"title":"Tutorial 1: Hello World","permalink":"/tutorials/hello-world"}}}')}}]); \ No newline at end of file diff --git a/assets/js/56514474.7d9143e7.js b/assets/js/56514474.7d9143e7.js deleted file mode 100644 index 0a4c222b7..000000000 --- a/assets/js/56514474.7d9143e7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[6067],{3905:(t,e,n)=>{n.d(e,{Zo:()=>c,kt:()=>f});var r=n(7294);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var s=r.createContext({}),p=function(t){var e=r.useContext(s),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},c=function(t){var e=p(t.components);return r.createElement(s.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},d=r.forwardRef((function(t,e){var n=t.components,o=t.mdxType,a=t.originalType,s=t.parentName,c=l(t,["components","mdxType","originalType","parentName"]),d=p(n),f=o,k=d["".concat(s,".").concat(f)]||d[f]||u[f]||a;return n?r.createElement(k,i(i({ref:e},c),{},{components:n})):r.createElement(k,i({ref:e},c))}));function f(t,e){var n=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in e)hasOwnProperty.call(e,s)&&(l[s]=e[s]);l.originalType=t,l.mdxType="string"==typeof t?t:o,i[1]=l;for(var p=2;p{n.r(e),n.d(e,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const a={sidebar_position:5},i="Tutorial 5: How to verify a BSV20 token",l={unversionedId:"tokens/tutorials/how-to-verify-a-BSV20-transaction",id:"tokens/tutorials/how-to-verify-a-BSV20-transaction",title:"Tutorial 5: How to verify a BSV20 token",description:"Overview",source:"@site/docs/tokens/tutorials/how-to-verify-a-BSV20-transaction.md",sourceDirName:"tokens/tutorials",slug:"/tokens/tutorials/how-to-verify-a-BSV20-transaction",permalink:"/tokens/tutorials/how-to-verify-a-BSV20-transaction",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Tutorial 4: Ordinal Lock",permalink:"/tokens/tutorials/ordinal-lock"},next:{title:"Tutorials",permalink:"/category/tutorials-1"}},s={},p=[{value:"Overview",id:"overview",level:2},{value:"The BSV20 plugin",id:"the-bsv20-plugin",level:2}],c={toc:p};function u(t){let{components:e,...a}=t;return(0,o.kt)("wrapper",(0,r.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"tutorial-5-how-to-verify-a-bsv20-token"},"Tutorial 5: How to verify a BSV20 token"),(0,o.kt)("h2",{id:"overview"},"Overview"),(0,o.kt)("p",null,"In this tutorial, we will go over how to use ",(0,o.kt)("a",{parentName:"p",href:"https://whatsonchain.com/"},"whatsonchain")," to verify a BSV20 token."),(0,o.kt)("h2",{id:"the-bsv20-plugin"},"The BSV20 plugin"),(0,o.kt)("p",null,"For any transaction, whatsonchain can be opened via the following url:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"https://whatsonchain.com/tx/{hash}\n")),(0,o.kt)("p",null,"We open whatsonchain with a bsv20 v2",(0,o.kt)("sup",null,"1")," transaction ",(0,o.kt)("a",{parentName:"p",href:"https://whatsonchain.com/tx/2c499c1c15924e04cc009ddc2efe2b16bb8492483b13f514f9689cd7effdd48e"},"2c499c1c15924e04cc009ddc2efe2b16bb8492483b13f514f9689cd7effdd48e"),". After opening whatsonchain you will see the BSV20 plugin:"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8487).Z,width:"1927",height:"348"})),(0,o.kt)("p",null,"Click on the plugin and you will see:"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(1482).Z,width:"1771",height:"1296"})),(0,o.kt)("p",null,"According to the plugin we can see the following information:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"id:")," token id"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"op:")," operation in bsv20 terms"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"amount:")," bsv20 token amount held by the utxo"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"owner:")," bsv20 token owner"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Non-BSV20 input:"),": the input does not contain BSV20 tokens"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Non-BSV20 output:"),": the output does not contain BSV20 tokens")),(0,o.kt)("p",null,"We can also see the status of bsv20 token:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"validated:")," Contains a valid bsv20 token that has been verified"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"pending:")," Contains an unverified valid bsv20 token"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"invalid:")," Contains an invalid bsv20 token")),(0,o.kt)("p",null,"If the transaction is a token deployment transaction, we will see:"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2319).Z,width:"1768",height:"630"})),(0,o.kt)("p",null,"A token deployment transaction does not contain any BSV20 token input. But it has other fields:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"symbol:")," the symbol of the token"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"decimals:")," set decimal precision, defaults to ",(0,o.kt)("inlineCode",{parentName:"li"},"0"),". This is different from BRC20 which defaults to 18.")),(0,o.kt)("hr",null),(0,o.kt)("p",null,"[1]"," Also supports bsv20 v1"))}u.isMDXComponent=!0},8487:(t,e,n)=>{n.d(e,{Z:()=>r});const r=n.p+"assets/images/bsv20-plugin_1-d24d5932ab342f141af354d71f3fb003.png"},1482:(t,e,n)=>{n.d(e,{Z:()=>r});const r=n.p+"assets/images/bsv20-plugin_2-be73ffaef8a60181e1d93fd73776aa24.png"},2319:(t,e,n)=>{n.d(e,{Z:()=>r});const r=n.p+"assets/images/bsv20-plugin_3-dcfcde9712acfce3a180edd9bab1a4ef.png"}}]); \ No newline at end of file diff --git a/assets/js/572d3f0b.313df141.js b/assets/js/572d3f0b.313df141.js deleted file mode 100644 index e59c6ba83..000000000 --- a/assets/js/572d3f0b.313df141.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[6325],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(n),m=a,h=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,s(s({ref:t},p),{},{components:n})):r.createElement(h,s({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,s[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:2},s="Non Funglible Tokens - NFTs",i={unversionedId:"tokens/nft/nft",id:"tokens/nft/nft",title:"Non Funglible Tokens - NFTs",description:"To create a smart contract that will carry an NFT, have your smart contract extend the OrdinalNFT class:",source:"@site/docs/tokens/nft/nft.md",sourceDirName:"tokens/nft",slug:"/tokens/nft/",permalink:"/tokens/nft/",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"The Official sCrypt 1Sat Ordinals SDK",permalink:"/tokens/"},next:{title:"Transfer Existing NFT to a Smart Contract",permalink:"/tokens/nft/existing"}},c={},l=[{value:"Inscribe",id:"inscribe",level:2},{value:"Transfer",id:"transfer",level:2}],p={toc:l};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"non-funglible-tokens---nfts"},"Non Funglible Tokens - NFTs"),(0,a.kt)("p",null,"To create a smart contract that will carry an NFT, have your smart contract extend the ",(0,a.kt)("inlineCode",{parentName:"p"},"OrdinalNFT")," class:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'import { method, prop, assert, ByteString, sha256, Sha256 } from "scrypt-ts";\nimport { OrdinalNFT } from "scrypt-ord";\n\nexport class HashLockNFT extends OrdinalNFT {\n @prop()\n hash: Sha256;\n\n constructor(hash: Sha256) {\n super();\n // Important: Call `init` after the `super()` statement.\n this.init(...arguments);\n this.hash = hash;\n }\n\n @method()\n public unlock(message: ByteString) {\n assert(this.hash === sha256(message), "hashes are not equal");\n }\n}\n')),(0,a.kt)("p",null,"The contract above represents an NFT that can be unlocked / transferred by providing the secret pre-image of a hash value.\nEach constructor extending the ",(0,a.kt)("inlineCode",{parentName:"p"},"OrdinalNFT")," class must also call the instances ",(0,a.kt)("inlineCode",{parentName:"p"},"init")," method and pass the constructors arguments. It is important to call this function ",(0,a.kt)("strong",{parentName:"p"},"after")," the call to ",(0,a.kt)("inlineCode",{parentName:"p"},"super"),"."),(0,a.kt)("h2",{id:"inscribe"},"Inscribe"),(0,a.kt)("p",null,"The following code demonstrates how deploy / inscribe the NFT contract:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'HashLockNFT.loadArtifact();\n\nconst text = "Hello sCrypt and 1Sat Ordinals";\n\nconst message = toByteString(\'secret string\', true);\nconst hash = sha256(message);\n\nconst instance = new HashLockNFT(hash);\n\nconst signer = getDefaultSigner();\nawait instance.connect(signer);\n\nconst inscriptionTx = await instance.inscribeText(text);\nconsole.log("Inscribed NFT: ", inscriptionTx.id);\n')),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"inscribeText")," first inscribes the locking script with the specified text and then deploys the contract."),(0,a.kt)("p",null,"Among text the inscription can contain many other types of data. Here's how you can conveniently inscribe an image:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'// ...\n\nconst bb = readFileSync(join(__dirname, "..", "..", "logo.png")).toString("base64");\n\nconst tx = await instance.inscribeImage(bb, ContentType.PNG);\nconsole.log("Inscribed NFT: ", tx.id);\n')),(0,a.kt)("p",null,"In fact the data type can be arbitrary. It only depends on the Ordinals wallet you're using to support that data type."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'const tx = await instance.inscribe({\n content: `your content in hex`,\n contentType: `your contentType`,\n});\nconsole.log("Inscribed NFT: ", tx.id);\n')),(0,a.kt)("p",null,"The value ",(0,a.kt)("inlineCode",{parentName:"p"},"contentType")," must be a MIME-type string. The ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/scrypt-ord/blob/master/src/contentType.ts"},(0,a.kt)("inlineCode",{parentName:"a"},"ContentType"))," object contains common MIME-types."),(0,a.kt)("h2",{id:"transfer"},"Transfer"),(0,a.kt)("p",null,"You can easily transfer a deployed NFT to an Ordinals address by passing a ",(0,a.kt)("inlineCode",{parentName:"p"},"transfer")," value via the method call parameters. "),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"OrdiNFTP2PKH")," is a ",(0,a.kt)("a",{parentName:"p",href:"https://learnmeabitcoin.com/guide/p2pkh"},"P2PKH")," contract for holding ordinals NFTs. Like a normal P2PKH contract, you need an address to instantiate it."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'// ... deploy code from above\n\nconst { tx: transferTx } = await instance.methods.unlock(\n message, \n {\n transfer: new OrdiNFTP2PKH(\n Addr(recipientAddress.toByteString())\n ),\n }\n);\n\nconsole.log("Transferred NFT: ", transferTx.id);\n')),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"transfer")," parameter can be any single instance of a contract that extends ",(0,a.kt)("inlineCode",{parentName:"p"},"OrdinalNFT"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/572d3f0b.52d8c6b0.js b/assets/js/572d3f0b.52d8c6b0.js new file mode 100644 index 000000000..6a4806988 --- /dev/null +++ b/assets/js/572d3f0b.52d8c6b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[6325],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(n),m=a,h=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(h,s(s({ref:t},p),{},{components:n})):r.createElement(h,s({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,s[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:2},s="Non Fungible Tokens - NFTs",i={unversionedId:"tokens/nft/nft",id:"tokens/nft/nft",title:"Non Fungible Tokens - NFTs",description:"To create a smart contract that will carry an NFT, have your smart contract extend the OrdinalNFT class:",source:"@site/docs/tokens/nft/nft.md",sourceDirName:"tokens/nft",slug:"/tokens/nft/",permalink:"/tokens/nft/",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"The Official sCrypt 1Sat Ordinals SDK",permalink:"/tokens/"},next:{title:"Transfer Existing NFT to a Smart Contract",permalink:"/tokens/nft/existing"}},c={},l=[{value:"Inscribe",id:"inscribe",level:2},{value:"Transfer",id:"transfer",level:2}],p={toc:l};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"non-fungible-tokens---nfts"},"Non Fungible Tokens - NFTs"),(0,a.kt)("p",null,"To create a smart contract that will carry an NFT, have your smart contract extend the ",(0,a.kt)("inlineCode",{parentName:"p"},"OrdinalNFT")," class:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'import { method, prop, assert, ByteString, sha256, Sha256 } from "scrypt-ts";\nimport { OrdinalNFT } from "scrypt-ord";\n\nexport class HashLockNFT extends OrdinalNFT {\n @prop()\n hash: Sha256;\n\n constructor(hash: Sha256) {\n super();\n // Important: Call `init` after the `super()` statement.\n this.init(...arguments);\n this.hash = hash;\n }\n\n @method()\n public unlock(message: ByteString) {\n assert(this.hash === sha256(message), "hashes are not equal");\n }\n}\n')),(0,a.kt)("p",null,"The contract above represents an NFT that can be unlocked / transferred by providing the secret pre-image of a hash value.\nEach constructor extending the ",(0,a.kt)("inlineCode",{parentName:"p"},"OrdinalNFT")," class must also call the instances ",(0,a.kt)("inlineCode",{parentName:"p"},"init")," method and pass the constructors arguments. It is important to call this function ",(0,a.kt)("strong",{parentName:"p"},"after")," the call to ",(0,a.kt)("inlineCode",{parentName:"p"},"super"),"."),(0,a.kt)("h2",{id:"inscribe"},"Inscribe"),(0,a.kt)("p",null,"The following code demonstrates how deploy / inscribe the NFT contract:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'HashLockNFT.loadArtifact();\n\nconst text = "Hello sCrypt and 1Sat Ordinals";\n\nconst message = toByteString(\'secret string\', true);\nconst hash = sha256(message);\n\nconst instance = new HashLockNFT(hash);\n\nconst signer = getDefaultSigner();\nawait instance.connect(signer);\n\nconst inscriptionTx = await instance.inscribeText(text);\nconsole.log("Inscribed NFT: ", inscriptionTx.id);\n')),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"inscribeText")," first inscribes the locking script with the specified text and then deploys the contract."),(0,a.kt)("p",null,"Among text the inscription can contain many other types of data. Here's how you can conveniently inscribe an image:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'// ...\n\nconst bb = readFileSync(join(__dirname, "..", "..", "logo.png")).toString("base64");\n\nconst tx = await instance.inscribeImage(bb, ContentType.PNG);\nconsole.log("Inscribed NFT: ", tx.id);\n')),(0,a.kt)("p",null,"In fact the data type can be arbitrary. It only depends on the Ordinals wallet you're using to support that data type."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'const tx = await instance.inscribe({\n content: `your content in hex`,\n contentType: `your contentType`,\n});\nconsole.log("Inscribed NFT: ", tx.id);\n')),(0,a.kt)("p",null,"The value ",(0,a.kt)("inlineCode",{parentName:"p"},"contentType")," must be a MIME-type string. The ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/scrypt-ord/blob/master/src/contentType.ts"},(0,a.kt)("inlineCode",{parentName:"a"},"ContentType"))," object contains common MIME-types."),(0,a.kt)("h2",{id:"transfer"},"Transfer"),(0,a.kt)("p",null,"You can easily transfer a deployed NFT to an Ordinals address by passing a ",(0,a.kt)("inlineCode",{parentName:"p"},"transfer")," value via the method call parameters. "),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"OrdiNFTP2PKH")," is a ",(0,a.kt)("a",{parentName:"p",href:"https://learnmeabitcoin.com/guide/p2pkh"},"P2PKH")," contract for holding ordinals NFTs. Like a normal P2PKH contract, you need an address to instantiate it."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'// ... deploy code from above\n\nconst { tx: transferTx } = await instance.methods.unlock(\n message, \n {\n transfer: new OrdiNFTP2PKH(\n Addr(recipientAddress.toByteString())\n ),\n }\n);\n\nconsole.log("Transferred NFT: ", transferTx.id);\n')),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"transfer")," parameter can be any single instance of a contract that extends ",(0,a.kt)("inlineCode",{parentName:"p"},"OrdinalNFT"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c2dbd7a.39c9ffff.js b/assets/js/6c2dbd7a.39c9ffff.js deleted file mode 100644 index 2100709af..000000000 --- a/assets/js/6c2dbd7a.39c9ffff.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[6857],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=p(n),m=a,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,s[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:1},s="The Official sCrypt 1Sat Ordinals SDK",i={unversionedId:"tokens/tokens",id:"tokens/tokens",title:"The Official sCrypt 1Sat Ordinals SDK",description:"sCrypt offers its official 1Sat Ordinals SDK named scrypt-ord.",source:"@site/docs/tokens/tokens.md",sourceDirName:"tokens",slug:"/tokens/",permalink:"/tokens/",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"How to Build an Oracle Service",permalink:"/advanced/how-to-build-an-oracle-service"},next:{title:"Non Funglible Tokens - NFTs",permalink:"/tokens/nft/"}},l={},p=[{value:"Installation",id:"installation",level:2},{value:"Base Classes",id:"base-classes",level:2},{value:"OrdiProvider",id:"ordiprovider",level:2}],c={toc:p};function u(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"the-official-scrypt-1sat-ordinals-sdk"},"The Official sCrypt 1Sat Ordinals SDK"),(0,a.kt)("p",null,"sCrypt offers its official ",(0,a.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/"},"1Sat Ordinals")," SDK named ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/scrypt-ord"},(0,a.kt)("inlineCode",{parentName:"a"},"scrypt-ord")),"."),(0,a.kt)("p",null,"The SDK offers an easy to use interface for deploying and transferring 1Sat Ordinals and augmenting them with the power of sCrypt smart contracts."),(0,a.kt)("p",null,"It facilitates the development of smart contracts for both non-fungible tokens (NFTs) and fungible tokens (FTs).\nYou can also inscribe NFT's and BSV20 at ",(0,a.kt)("a",{parentName:"p",href:"https://inscribe.scrypt.io"},"sCrypt"),"\nand a video guide on how to inscribe directly can be found at ",(0,a.kt)("a",{parentName:"p",href:"https://youtu.be/IsNINX3pqKI?si=gcnhbKN-sP-7mPJ5"},"YouTube"),"."),(0,a.kt)("h2",{id:"installation"},"Installation"),(0,a.kt)("p",null,"It is recommended that you ",(0,a.kt)("a",{parentName:"p",href:"/installation#the-scrypt-cli-tool"},"create an sCrypt project")," using our CLI tool. Once you have the project set up, simply run the following command:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"npm i scrypt-ord\n")),(0,a.kt)("h2",{id:"base-classes"},"Base Classes"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"scrypt-ord")," provides base classes that can be extended with custom smart contract functionality. Unlike the ",(0,a.kt)("inlineCode",{parentName:"p"},"SmartContract")," class, which you would typically extend for a regular sCrypt smart contract, here you should extend these base classes to integrate your smart contract with 1Sat ordinals functionality."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Non-fungible tokens (NFTs):")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"OrdinalNFT"))),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Fungible tokens (FTs):")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"BSV20V1")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"BSV20V2"))),(0,a.kt)("p",null,"There are also pre-made classes that represent standard 1Sat transfers using the widely employed ",(0,a.kt)("inlineCode",{parentName:"p"},"P2PKH")," mechanism:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"OrdiNFTP2PKH")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"BSV20V1P2PKH")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"BSV20V2P2PKH"))),(0,a.kt)("p",null,"Suppose you wish to lock an ordinal token using a custom hash puzzle contract, you would define the smart contract class as shown below:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"class HashLockNFT extends OrdinalNFT {\n @prop()\n hash: Sha256\n\n constructor(hash: Sha256) {\n super()\n this.init(...arguments)\n this.hash = hash\n }\n\n @method()\n public unlock(message: ByteString) {\n assert(this.hash == sha256(message), 'hashes are not equal')\n }\n}\n")),(0,a.kt)("p",null,"For a deeper exploration, please refer to the respective subsections:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/tokens/nft/"},"Non-Fungible Tokens (NFTs)")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/tokens/ft/"},"Fungible Tokens (FTs)"))),(0,a.kt)("h2",{id:"ordiprovider"},(0,a.kt)("inlineCode",{parentName:"h2"},"OrdiProvider")),(0,a.kt)("p",null,"When you use sCrypt 1Sat Ordinals SDK, we recommend that you use ",(0,a.kt)("inlineCode",{parentName:"p"},"OrdiProvider")," as the ",(0,a.kt)("a",{parentName:"p",href:"/how-to-deploy-and-call-a-contract/#provider"},"provider"),". This allows your transaction to be indexed instantly, instead of waiting for it to be mined into a block."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"export function getDefaultSigner(): TestWallet {\n return new TestWallet(\n myPrivateKey,\n new OrdiProvider(bsv.Networks.mainnet)\n )\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c2dbd7a.df04a4c9.js b/assets/js/6c2dbd7a.df04a4c9.js new file mode 100644 index 000000000..faa652fa1 --- /dev/null +++ b/assets/js/6c2dbd7a.df04a4c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[6857],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=p(n),m=a,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,s[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:1},s="The Official sCrypt 1Sat Ordinals SDK",i={unversionedId:"tokens/tokens",id:"tokens/tokens",title:"The Official sCrypt 1Sat Ordinals SDK",description:"sCrypt offers its official 1Sat Ordinals SDK named scrypt-ord.",source:"@site/docs/tokens/tokens.md",sourceDirName:"tokens",slug:"/tokens/",permalink:"/tokens/",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"How to Build an Oracle Service",permalink:"/advanced/how-to-build-an-oracle-service"},next:{title:"Non Fungible Tokens - NFTs",permalink:"/tokens/nft/"}},l={},p=[{value:"Installation",id:"installation",level:2},{value:"Base Classes",id:"base-classes",level:2},{value:"OrdiProvider",id:"ordiprovider",level:2}],c={toc:p};function u(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"the-official-scrypt-1sat-ordinals-sdk"},"The Official sCrypt 1Sat Ordinals SDK"),(0,a.kt)("p",null,"sCrypt offers its official ",(0,a.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/"},"1Sat Ordinals")," SDK named ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/scrypt-ord"},(0,a.kt)("inlineCode",{parentName:"a"},"scrypt-ord")),"."),(0,a.kt)("p",null,"The SDK offers an easy to use interface for deploying and transferring 1Sat Ordinals and augmenting them with the power of sCrypt smart contracts."),(0,a.kt)("p",null,"It facilitates the development of smart contracts for both non-fungible tokens (NFTs) and fungible tokens (FTs).\nYou can also inscribe NFT's and BSV20 at ",(0,a.kt)("a",{parentName:"p",href:"https://inscribe.scrypt.io"},"sCrypt"),"\nand a video guide on how to inscribe directly can be found at ",(0,a.kt)("a",{parentName:"p",href:"https://youtu.be/IsNINX3pqKI?si=gcnhbKN-sP-7mPJ5"},"YouTube"),"."),(0,a.kt)("h2",{id:"installation"},"Installation"),(0,a.kt)("p",null,"It is recommended that you ",(0,a.kt)("a",{parentName:"p",href:"/installation#the-scrypt-cli-tool"},"create an sCrypt project")," using our CLI tool. Once you have the project set up, simply run the following command:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"npm i scrypt-ord\n")),(0,a.kt)("h2",{id:"base-classes"},"Base Classes"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"scrypt-ord")," provides base classes that can be extended with custom smart contract functionality. Unlike the ",(0,a.kt)("inlineCode",{parentName:"p"},"SmartContract")," class, which you would typically extend for a regular sCrypt smart contract, here you should extend these base classes to integrate your smart contract with 1Sat ordinals functionality."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Non-fungible tokens (NFTs):")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"OrdinalNFT"))),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Fungible tokens (FTs):")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"BSV20V1")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"BSV20V2"))),(0,a.kt)("p",null,"There are also pre-made classes that represent standard 1Sat transfers using the widely employed ",(0,a.kt)("inlineCode",{parentName:"p"},"P2PKH")," mechanism:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"OrdiNFTP2PKH")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"BSV20V1P2PKH")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"BSV20V2P2PKH"))),(0,a.kt)("p",null,"Suppose you wish to lock an ordinal token using a custom hash puzzle contract, you would define the smart contract class as shown below:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"class HashLockNFT extends OrdinalNFT {\n @prop()\n hash: Sha256\n\n constructor(hash: Sha256) {\n super()\n this.init(...arguments)\n this.hash = hash\n }\n\n @method()\n public unlock(message: ByteString) {\n assert(this.hash == sha256(message), 'hashes are not equal')\n }\n}\n")),(0,a.kt)("p",null,"For a deeper exploration, please refer to the respective subsections:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/tokens/nft/"},"Non-Fungible Tokens (NFTs)")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/tokens/ft/"},"Fungible Tokens (FTs)"))),(0,a.kt)("h2",{id:"ordiprovider"},(0,a.kt)("inlineCode",{parentName:"h2"},"OrdiProvider")),(0,a.kt)("p",null,"When you use sCrypt 1Sat Ordinals SDK, we recommend that you use ",(0,a.kt)("inlineCode",{parentName:"p"},"OrdiProvider")," as the ",(0,a.kt)("a",{parentName:"p",href:"/how-to-deploy-and-call-a-contract/#provider"},"provider"),". This allows your transaction to be indexed instantly, instead of waiting for it to be mined into a block."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"export function getDefaultSigner(): TestWallet {\n return new TestWallet(\n myPrivateKey,\n new OrdiProvider(bsv.Networks.mainnet)\n )\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/910cd6a4.32a18f12.js b/assets/js/910cd6a4.32a18f12.js deleted file mode 100644 index 62c9862f0..000000000 --- a/assets/js/910cd6a4.32a18f12.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[2],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=l(n),m=a,h=d["".concat(c,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={title:"Transfer Existing FT to a Smart Contract",sidebar_position:1},i=void 0,s={unversionedId:"tokens/ft/existing",id:"tokens/ft/existing",title:"Transfer Existing FT to a Smart Contract",description:"Suppose you'd like to unlock existing UTXOs that carry a FT to a smart contract.",source:"@site/docs/tokens/ft/existing.md",sourceDirName:"tokens/ft",slug:"/tokens/ft/existing",permalink:"/tokens/ft/existing",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Transfer Existing FT to a Smart Contract",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Funglible Tokens - FTs",permalink:"/tokens/ft/"},next:{title:"Multiple Inputs with Different Contracts",permalink:"/tokens/ft/multiple"}},c={},l=[{value:"Handling Change",id:"handling-change",level:2}],u={toc:l};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Suppose you'd like to unlock existing UTXOs that carry a FT to a smart contract."),(0,a.kt)("p",null,"If you would like to unlock a single specific UTXO, you can do the following:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"HashLockFT.loadArtifact();\n...\n// Initialize recipient smart contract.\nconst message = toByteString('super secret', true);\nconst hash = sha256(message);\nconst recipient = new HashLockFT(tick, max, lim, dec, hash);\nawait recipient.connect(getDefaultSigner());\n\n// Create P2PKH object from an UTXO\n// NOTE: You can not use BSV20V2P2PKH.getLatestInstance for BSV-20, it only works for NFTs.\nconst utxo: UTXO = ...\nconst p2pkh = BSV20V2P2PKH.fromUTXO(utxo);\nawait p2pkh.connect(getDefaultSigner());\n\n// Unlock it and transfer the FTs carried by it.\nconst { tx: transferTx } = await p2pkh.methods.unlock(\n (sigResps) => findSig(sigResps, `yourPubKey`),\n PubKey(`yourPubKey`.toByteString()),\n {\n transfer: recipient,\n pubKeyOrAddrToSign: `yourPubKey`,\n } as OrdiMethodCallOptions\n);\n\nconsole.log(\"Transferred FT: \", transferTx.id);\n")),(0,a.kt)("p",null,"Alternatively, you can unlock multiple FT UTXOs and send them to a smart contract. Using the ",(0,a.kt)("inlineCode",{parentName:"p"},"getBSV20")," function you can simply fetch FT UTXOs for a given Ordinal wallet address."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'// ... initialize recipient smart contract\n\n// Fetch FT UTXOs for given Ordinal address.\n// NOTE: You can not use BSV20V2P2PKH.getLatestInstance for BSV-20, it only works for NFTs.\nconst bsv20P2PKHs = await BSV20V2P2PKH.getBSV20(tokenId, `your ordinal address`);\n\nawait Promise.all(bsv20P2PKHs.map((p) => p.connect(signer)));\n\n// Construct recipient smart contract(s)\nconst recipients: Array = [\n {\n instance: new HashLockFTV2(tokenId, amount, dec, sha256(message)),\n amt: 6n,\n },\n];\n\n// Transfer\nconst { tx, nexts } = await BSV20V2P2PKH.transfer(\n bsv20P2PKHs,\n signer,\n recipients\n);\n\nconsole.log("Transferred FT: ", transferTx.id);\n')),(0,a.kt)("h2",{id:"handling-change"},"Handling Change"),(0,a.kt)("p",null,"Note, how the mechanism above is very similar to a regular Bitcoin transfer. If the FT amount from the inputs exceeds the recipients amount, the leftover will be transferred back to the Ordinal address as change."),(0,a.kt)("p",null,"You can customize the address using the method call option ",(0,a.kt)("inlineCode",{parentName:"p"},"tokenChangeAddress"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"const { tx: transferTx } = await p2pkh.methods.unlock(\n (sigResps) => findSig(sigResps, `yourPubKey`),\n PubKey(`yourPubKey`.toByteString()),\n {\n transfer: recipient,\n pubKeyOrAddrToSign: `yourPubKey`,\n tokenChangeAddress: yourOrdinalAddress\n } as OrdiMethodCallOptions\n)\n")),(0,a.kt)("p",null,"You can also skip change altogether by using the ",(0,a.kt)("inlineCode",{parentName:"p"},"skipTokenChange")," option. But be careful! Any leftover tokens will be considered ",(0,a.kt)("strong",{parentName:"p"},"burned")," in this case:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"const { tx: transferTx } = await p2pkh.methods.unlock(\n (sigResps) => findSig(sigResps, `yourPubKey`),\n PubKey(`yourPubKey`.toByteString()),\n {\n transfer: recipient,\n pubKeyOrAddrToSign: `yourPubKey`,\n skipTokenChange: true\n } as OrdiMethodCallOptions\n)\n")),(0,a.kt)("h1",{id:"buildstateoutputft"},(0,a.kt)("inlineCode",{parentName:"h1"},"buildStateOutputFT")),(0,a.kt)("p",null,"Any instance of ",(0,a.kt)("inlineCode",{parentName:"p"},"BSV20V1")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"BSV20V2")," contains the ",(0,a.kt)("inlineCode",{parentName:"p"},"buildStateOutputFT")," method. Unlike the regular ",(0,a.kt)("inlineCode",{parentName:"p"},"buildStateOutput")," method, this method inscribes the subsequent amount with an appropriate ",(0,a.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/bsv20#transfer-all-modes"},"BSV-20 transfer inscription"),". The method takes the number of tokens to be transferred to the subsequent output as an argument."),(0,a.kt)("p",null,"Below is an example of an FT counter contract:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"class CounterFTV2 extends BSV20V2 {\n\n @prop(true)\n counter: bigint\n\n constructor(id: ByteString, sym: ByteString, max: bigint, dec: bigint, counter: bigint) {\n super(id, sym, max, dec)\n this.init(...arguments)\n this.counter = counter\n }\n\n @method(SigHash.ANYONECANPAY_SINGLE)\n public inc(tokenAmt: bigint) {\n this.counter++\n\n const outputs = this.buildStateOutputFT(tokenAmt)\n\n assert(\n this.ctx.hashOutputs == hash256(outputs),\n 'hashOutputs check failed'\n )\n }\n\n}\n")),(0,a.kt)("p",null,"Each iteration will contain the number of tokens that was passed via ",(0,a.kt)("inlineCode",{parentName:"p"},"tokenAmt"),". Note that this amount cannot be larger than the amount in the previous iteration. If the amount is less than in the previous iteration, the remaining tokens will be returned as change."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/910cd6a4.b922dc52.js b/assets/js/910cd6a4.b922dc52.js new file mode 100644 index 000000000..c2c0cead8 --- /dev/null +++ b/assets/js/910cd6a4.b922dc52.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[2],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=l(n),m=a,h=d["".concat(c,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={title:"Transfer Existing FT to a Smart Contract",sidebar_position:1},i=void 0,s={unversionedId:"tokens/ft/existing",id:"tokens/ft/existing",title:"Transfer Existing FT to a Smart Contract",description:"Suppose you'd like to unlock existing UTXOs that carry a FT to a smart contract.",source:"@site/docs/tokens/ft/existing.md",sourceDirName:"tokens/ft",slug:"/tokens/ft/existing",permalink:"/tokens/ft/existing",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Transfer Existing FT to a Smart Contract",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Fungible Tokens - FTs",permalink:"/tokens/ft/"},next:{title:"Multiple Inputs with Different Contracts",permalink:"/tokens/ft/multiple"}},c={},l=[{value:"Handling Change",id:"handling-change",level:2}],u={toc:l};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Suppose you'd like to unlock existing UTXOs that carry a FT to a smart contract."),(0,a.kt)("p",null,"If you would like to unlock a single specific UTXO, you can do the following:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"HashLockFT.loadArtifact();\n...\n// Initialize recipient smart contract.\nconst message = toByteString('super secret', true);\nconst hash = sha256(message);\nconst recipient = new HashLockFT(tick, max, lim, dec, hash);\nawait recipient.connect(getDefaultSigner());\n\n// Create P2PKH object from an UTXO\n// NOTE: You can not use BSV20V2P2PKH.getLatestInstance for BSV-20, it only works for NFTs.\nconst utxo: UTXO = ...\nconst p2pkh = BSV20V2P2PKH.fromUTXO(utxo);\nawait p2pkh.connect(getDefaultSigner());\n\n// Unlock it and transfer the FTs carried by it.\nconst { tx: transferTx } = await p2pkh.methods.unlock(\n (sigResps) => findSig(sigResps, `yourPubKey`),\n PubKey(`yourPubKey`.toByteString()),\n {\n transfer: recipient,\n pubKeyOrAddrToSign: `yourPubKey`,\n } as OrdiMethodCallOptions\n);\n\nconsole.log(\"Transferred FT: \", transferTx.id);\n")),(0,a.kt)("p",null,"Alternatively, you can unlock multiple FT UTXOs and send them to a smart contract. Using the ",(0,a.kt)("inlineCode",{parentName:"p"},"getBSV20")," function you can simply fetch FT UTXOs for a given Ordinal wallet address."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},'// ... initialize recipient smart contract\n\n// Fetch FT UTXOs for given Ordinal address.\n// NOTE: You can not use BSV20V2P2PKH.getLatestInstance for BSV-20, it only works for NFTs.\nconst bsv20P2PKHs = await BSV20V2P2PKH.getBSV20(tokenId, `your ordinal address`);\n\nawait Promise.all(bsv20P2PKHs.map((p) => p.connect(signer)));\n\n// Construct recipient smart contract(s)\nconst recipients: Array = [\n {\n instance: new HashLockFTV2(tokenId, amount, dec, sha256(message)),\n amt: 6n,\n },\n];\n\n// Transfer\nconst { tx, nexts } = await BSV20V2P2PKH.transfer(\n bsv20P2PKHs,\n signer,\n recipients\n);\n\nconsole.log("Transferred FT: ", transferTx.id);\n')),(0,a.kt)("h2",{id:"handling-change"},"Handling Change"),(0,a.kt)("p",null,"Note, how the mechanism above is very similar to a regular Bitcoin transfer. If the FT amount from the inputs exceeds the recipients amount, the leftover will be transferred back to the Ordinal address as change."),(0,a.kt)("p",null,"You can customize the address using the method call option ",(0,a.kt)("inlineCode",{parentName:"p"},"tokenChangeAddress"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"const { tx: transferTx } = await p2pkh.methods.unlock(\n (sigResps) => findSig(sigResps, `yourPubKey`),\n PubKey(`yourPubKey`.toByteString()),\n {\n transfer: recipient,\n pubKeyOrAddrToSign: `yourPubKey`,\n tokenChangeAddress: yourOrdinalAddress\n } as OrdiMethodCallOptions\n)\n")),(0,a.kt)("p",null,"You can also skip change altogether by using the ",(0,a.kt)("inlineCode",{parentName:"p"},"skipTokenChange")," option. But be careful! Any leftover tokens will be considered ",(0,a.kt)("strong",{parentName:"p"},"burned")," in this case:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"const { tx: transferTx } = await p2pkh.methods.unlock(\n (sigResps) => findSig(sigResps, `yourPubKey`),\n PubKey(`yourPubKey`.toByteString()),\n {\n transfer: recipient,\n pubKeyOrAddrToSign: `yourPubKey`,\n skipTokenChange: true\n } as OrdiMethodCallOptions\n)\n")),(0,a.kt)("h1",{id:"buildstateoutputft"},(0,a.kt)("inlineCode",{parentName:"h1"},"buildStateOutputFT")),(0,a.kt)("p",null,"Any instance of ",(0,a.kt)("inlineCode",{parentName:"p"},"BSV20V1")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"BSV20V2")," contains the ",(0,a.kt)("inlineCode",{parentName:"p"},"buildStateOutputFT")," method. Unlike the regular ",(0,a.kt)("inlineCode",{parentName:"p"},"buildStateOutput")," method, this method inscribes the subsequent amount with an appropriate ",(0,a.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/bsv20#transfer-all-modes"},"BSV-20 transfer inscription"),". The method takes the number of tokens to be transferred to the subsequent output as an argument."),(0,a.kt)("p",null,"Below is an example of an FT counter contract:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"class CounterFTV2 extends BSV20V2 {\n\n @prop(true)\n counter: bigint\n\n constructor(id: ByteString, sym: ByteString, max: bigint, dec: bigint, counter: bigint) {\n super(id, sym, max, dec)\n this.init(...arguments)\n this.counter = counter\n }\n\n @method(SigHash.ANYONECANPAY_SINGLE)\n public inc(tokenAmt: bigint) {\n this.counter++\n\n const outputs = this.buildStateOutputFT(tokenAmt)\n\n assert(\n this.ctx.hashOutputs == hash256(outputs),\n 'hashOutputs check failed'\n )\n }\n\n}\n")),(0,a.kt)("p",null,"Each iteration will contain the number of tokens that was passed via ",(0,a.kt)("inlineCode",{parentName:"p"},"tokenAmt"),". Note that this amount cannot be larger than the amount in the previous iteration. If the amount is less than in the previous iteration, the remaining tokens will be returned as change."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9277e5e6.6983506e.js b/assets/js/9277e5e6.6983506e.js new file mode 100644 index 000000000..22233cdfe --- /dev/null +++ b/assets/js/9277e5e6.6983506e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[2997],{3905:(t,n,e)=>{e.d(n,{Zo:()=>p,kt:()=>m});var r=e(7294);function a(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function o(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,r)}return e}function i(t){for(var n=1;n=0||(a[e]=t[e]);return a}(t,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(a[e]=t[e])}return a}var c=r.createContext({}),l=function(t){var n=r.useContext(c),e=n;return t&&(e="function"==typeof t?t(n):i(i({},n),t)),e},p=function(t){var n=l(t.components);return r.createElement(c.Provider,{value:n},t.children)},u={inlineCode:"code",wrapper:function(t){var n=t.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(t,n){var e=t.components,a=t.mdxType,o=t.originalType,c=t.parentName,p=s(t,["components","mdxType","originalType","parentName"]),d=l(e),m=a,f=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return e?r.createElement(f,i(i({ref:n},p),{},{components:e})):r.createElement(f,i({ref:n},p))}));function m(t,n){var e=arguments,a=n&&n.mdxType;if("string"==typeof t||a){var o=e.length,i=new Array(o);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=t,s.mdxType="string"==typeof t?t:a,i[1]=s;for(var l=2;l{e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=e(7462),a=(e(7294),e(3905));const o={title:"Multiple Inputs with Different Contracts",sidebar_position:2},i=void 0,s={unversionedId:"tokens/ft/multiple",id:"tokens/ft/multiple",title:"Multiple Inputs with Different Contracts",description:"Suppose we would like to unlock FTs within a single transaction that are located in different smart contracts. We can utilize the same technique demonstrated in the section for calling multiple contract instances.",source:"@site/docs/tokens/ft/multiple.md",sourceDirName:"tokens/ft",slug:"/tokens/ft/multiple",permalink:"/tokens/ft/multiple",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Multiple Inputs with Different Contracts",sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Transfer Existing FT to a Smart Contract",permalink:"/tokens/ft/existing"},next:{title:"View BSV20 Token Transactions",permalink:"/tokens/ft/how-to-verify-a-BSV20-transaction"}},c={},l=[],p={toc:l};function u(t){let{components:n,...e}=t;return(0,a.kt)("wrapper",(0,r.Z)({},p,e,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Suppose we would like to unlock FTs within a single transaction that are located in different smart contracts. We can utilize the same technique demonstrated in the ",(0,a.kt)("a",{parentName:"p",href:"/advanced/how-to-call-multiple-contracts"},"section for calling multiple contract instances"),"."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"// One sender is regular bsv-20 P2PKH.\nconst sender0 = BSV20V2P2PKH.fromUTXO(utxo)\nawait sender0.connect(signer)\n\n// Second sender is a hash lock contract.\nconst sender1 = HashLockFTV2.fromUTXO(utxo)\nawait sender1.connect(signer)\n\n// Recipient will be a single hash lock contract.\nconst recipientAmt = 6n\nconst recipients: Array = [\n {\n instance: new HashLockFTV2(\n tokenId,\n amount,\n dec,\n sha256(toByteString('next super secret', true))\n ),\n amt: recipientAmt,\n },\n];\n\nconst totalTokenAmt = sender0.getAmt() + sender1.getAmt()\nconst tokenChangeAmt = totalTokenAmt - recipientAmt\n\nconst ordPubKey = await signer.getDefaultPubKey()\n\nsender0.bindTxBuilder(\n 'unlock',\n async (\n current: BSV20V2P2PKH,\n options: OrdiMethodCallOptions\n ): Promise => {\n const tx = new bsv.Transaction()\n const nexts: StatefulNext[] = []\n\n for (let i = 0; i < recipients.length; i++) {\n const receiver = recipients[i]\n\n if (receiver.instance instanceof BSV20V2) {\n receiver.instance.setAmt(receiver.amt)\n } else {\n throw new Error('Unsupported receiver, only BSV-20!')\n }\n\n tx.addOutput(\n new bsv.Transaction.Output({\n script: receiver.instance.lockingScript,\n satoshis: 1,\n })\n )\n\n nexts.push({\n instance: receiver.instance,\n balance: 1,\n atOutputIndex: i,\n })\n }\n\n if (tokenChangeAmt > 0n) {\n const p2pkh = new BSV20V2P2PKH(\n tokenId,\n amount,\n dec,\n Addr(ordPubKey.toAddress().toByteString())\n )\n\n p2pkh.setAmt(tokenChangeAmt)\n\n tx.addOutput(\n new bsv.Transaction.Output({\n script: p2pkh.lockingScript,\n satoshis: 1,\n })\n )\n\n nexts.push({\n instance: p2pkh,\n balance: 1,\n atOutputIndex: nexts.length,\n })\n }\n\n tx.change(ordPubKey.toAddress())\n\n tx.addInput(current.buildContractInput())\n\n return Promise.resolve({\n tx: tx,\n atInputIndex: 0,\n nexts,\n })\n }\n)\n\nlet partialContractTx = await sender0.methods.unlock(\n (sigResps) => findSig(sigResps, ordPubKey),\n PubKey(ordPubKey.toByteString()),\n {\n pubKeyOrAddrToSign: ordPubKey,\n multiContractCall: true,\n } as OrdiMethodCallOptions\n)\n\nsender1.bindTxBuilder(\n 'unlock',\n async (\n current: HashLockFTV2,\n options: MethodCallOptions\n ): Promise => {\n if (options.partialContractTx) {\n const tx = options.partialContractTx.tx\n tx.addInput(current.buildContractInput())\n\n return Promise.resolve({\n tx: tx,\n atInputIndex: 1,\n nexts: partialContractTx.nexts,\n })\n }\n\n throw new Error('no partialContractTx')\n }\n)\n\npartialContractTx = await sender1.methods.unlock(message1, {\n partialContractTx,\n transfer: recipients,\n pubKeyOrAddrToSign: ordPubKey,\n multiContractCall: true,\n} as OrdiMethodCallOptions)\n\nconst { tx } = await SmartContract.multiContractCall(\n partialContractTx,\n signer\n)\n\nconsole.log('Transfer tx:', tx.id)\n")),(0,a.kt)("p",null,"In the above code, a partial transaction is constructed, which unlocks the first UTXO containing a ",(0,a.kt)("inlineCode",{parentName:"p"},"BSV20V2P2PKH")," instance. The actual contract call doesn't execute yet, as we set the ",(0,a.kt)("inlineCode",{parentName:"p"},"multiContractCall")," flag within the method call parameters."),(0,a.kt)("p",null,"We then feed that partially constructed transaction via the second contract call, which will unlock the ",(0,a.kt)("inlineCode",{parentName:"p"},"HashLockFTV2")," instance. Just like the first call, this call also has the ",(0,a.kt)("inlineCode",{parentName:"p"},"multiContractCall")," flag set."),(0,a.kt)("p",null,"Once the transaction is fully built, we can sign and broadcast it using the ",(0,a.kt)("inlineCode",{parentName:"p"},"SmartContract.multiContractCall")," function."),(0,a.kt)("p",null,"The above code is an example based on v2, but the same can be achieved using v1."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9277e5e6.8e6a9621.js b/assets/js/9277e5e6.8e6a9621.js deleted file mode 100644 index 92de19bd5..000000000 --- a/assets/js/9277e5e6.8e6a9621.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[2997],{3905:(t,n,e)=>{e.d(n,{Zo:()=>u,kt:()=>m});var r=e(7294);function a(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function o(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,r)}return e}function i(t){for(var n=1;n=0||(a[e]=t[e]);return a}(t,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(a[e]=t[e])}return a}var c=r.createContext({}),l=function(t){var n=r.useContext(c),e=n;return t&&(e="function"==typeof t?t(n):i(i({},n),t)),e},u=function(t){var n=l(t.components);return r.createElement(c.Provider,{value:n},t.children)},p={inlineCode:"code",wrapper:function(t){var n=t.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(t,n){var e=t.components,a=t.mdxType,o=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),d=l(e),m=a,f=d["".concat(c,".").concat(m)]||d[m]||p[m]||o;return e?r.createElement(f,i(i({ref:n},u),{},{components:e})):r.createElement(f,i({ref:n},u))}));function m(t,n){var e=arguments,a=n&&n.mdxType;if("string"==typeof t||a){var o=e.length,i=new Array(o);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=t,s.mdxType="string"==typeof t?t:a,i[1]=s;for(var l=2;l{e.r(n),e.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=e(7462),a=(e(7294),e(3905));const o={title:"Multiple Inputs with Different Contracts",sidebar_position:2},i=void 0,s={unversionedId:"tokens/ft/multiple",id:"tokens/ft/multiple",title:"Multiple Inputs with Different Contracts",description:"Suppose we would like to unlock FTs within a single transaction that are located in different smart contracts. We can utilize the same technique demonstrated in the section for calling multiple contract instances.",source:"@site/docs/tokens/ft/multiple.md",sourceDirName:"tokens/ft",slug:"/tokens/ft/multiple",permalink:"/tokens/ft/multiple",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Multiple Inputs with Different Contracts",sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Transfer Existing FT to a Smart Contract",permalink:"/tokens/ft/existing"},next:{title:"Tutorials",permalink:"/category/tutorials"}},c={},l=[],u={toc:l};function p(t){let{components:n,...e}=t;return(0,a.kt)("wrapper",(0,r.Z)({},u,e,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Suppose we would like to unlock FTs within a single transaction that are located in different smart contracts. We can utilize the same technique demonstrated in the ",(0,a.kt)("a",{parentName:"p",href:"/advanced/how-to-call-multiple-contracts"},"section for calling multiple contract instances"),"."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"// One sender is regular bsv-20 P2PKH.\nconst sender0 = BSV20V2P2PKH.fromUTXO(utxo)\nawait sender0.connect(signer)\n\n// Second sender is a hash lock contract.\nconst sender1 = HashLockFTV2.fromUTXO(utxo)\nawait sender1.connect(signer)\n\n// Recipient will be a single hash lock contract.\nconst recipientAmt = 6n\nconst recipients: Array = [\n {\n instance: new HashLockFTV2(\n tokenId,\n amount,\n dec,\n sha256(toByteString('next super secret', true))\n ),\n amt: recipientAmt,\n },\n];\n\nconst totalTokenAmt = sender0.getAmt() + sender1.getAmt()\nconst tokenChangeAmt = totalTokenAmt - recipientAmt\n\nconst ordPubKey = await signer.getDefaultPubKey()\n\nsender0.bindTxBuilder(\n 'unlock',\n async (\n current: BSV20V2P2PKH,\n options: OrdiMethodCallOptions\n ): Promise => {\n const tx = new bsv.Transaction()\n const nexts: StatefulNext[] = []\n\n for (let i = 0; i < recipients.length; i++) {\n const receiver = recipients[i]\n\n if (receiver.instance instanceof BSV20V2) {\n receiver.instance.setAmt(receiver.amt)\n } else {\n throw new Error('Unsupported receiver, only BSV-20!')\n }\n\n tx.addOutput(\n new bsv.Transaction.Output({\n script: receiver.instance.lockingScript,\n satoshis: 1,\n })\n )\n\n nexts.push({\n instance: receiver.instance,\n balance: 1,\n atOutputIndex: i,\n })\n }\n\n if (tokenChangeAmt > 0n) {\n const p2pkh = new BSV20V2P2PKH(\n tokenId,\n amount,\n dec,\n Addr(ordPubKey.toAddress().toByteString())\n )\n\n p2pkh.setAmt(tokenChangeAmt)\n\n tx.addOutput(\n new bsv.Transaction.Output({\n script: p2pkh.lockingScript,\n satoshis: 1,\n })\n )\n\n nexts.push({\n instance: p2pkh,\n balance: 1,\n atOutputIndex: nexts.length,\n })\n }\n\n tx.change(ordPubKey.toAddress())\n\n tx.addInput(current.buildContractInput())\n\n return Promise.resolve({\n tx: tx,\n atInputIndex: 0,\n nexts,\n })\n }\n)\n\nlet partialContractTx = await sender0.methods.unlock(\n (sigResps) => findSig(sigResps, ordPubKey),\n PubKey(ordPubKey.toByteString()),\n {\n pubKeyOrAddrToSign: ordPubKey,\n multiContractCall: true,\n } as OrdiMethodCallOptions\n)\n\nsender1.bindTxBuilder(\n 'unlock',\n async (\n current: HashLockFTV2,\n options: MethodCallOptions\n ): Promise => {\n if (options.partialContractTx) {\n const tx = options.partialContractTx.tx\n tx.addInput(current.buildContractInput())\n\n return Promise.resolve({\n tx: tx,\n atInputIndex: 1,\n nexts: partialContractTx.nexts,\n })\n }\n\n throw new Error('no partialContractTx')\n }\n)\n\npartialContractTx = await sender1.methods.unlock(message1, {\n partialContractTx,\n transfer: recipients,\n pubKeyOrAddrToSign: ordPubKey,\n multiContractCall: true,\n} as OrdiMethodCallOptions)\n\nconst { tx } = await SmartContract.multiContractCall(\n partialContractTx,\n signer\n)\n\nconsole.log('Transfer tx:', tx.id)\n")),(0,a.kt)("p",null,"In the above code, a partial transaction is constructed, which unlocks the first UTXO containing a ",(0,a.kt)("inlineCode",{parentName:"p"},"BSV20V2P2PKH")," instance. The actual contract call doesn't execute yet, as we set the ",(0,a.kt)("inlineCode",{parentName:"p"},"multiContractCall")," flag within the method call parameters."),(0,a.kt)("p",null,"We then feed that partially constructed transaction via the second contract call, which will unlock the ",(0,a.kt)("inlineCode",{parentName:"p"},"HashLockFTV2")," instance. Just like the first call, this call also has the ",(0,a.kt)("inlineCode",{parentName:"p"},"multiContractCall")," flag set."),(0,a.kt)("p",null,"Once the transaction is fully built, we can sign and broadcast it using the ",(0,a.kt)("inlineCode",{parentName:"p"},"SmartContract.multiContractCall")," function."),(0,a.kt)("p",null,"The above code is an example based on v2, but the same can be achieved using v1."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.142d5195.js b/assets/js/935f2afb.142d5195.js new file mode 100644 index 000000000..bd67730c3 --- /dev/null +++ b/assets/js/935f2afb.142d5195.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Overview","href":"/","docId":"overview"},{"type":"link","label":"Installation","href":"/installation","docId":"installation"},{"type":"category","label":"Bitcoin Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"The BSV submodule","href":"/bitcoin-basics/bsv","docId":"bitcoin-basics/bsv"}],"href":"/bitcoin-basics/"},{"type":"category","label":"How to Write a Contract","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ScriptContext","href":"/how-to-write-a-contract/scriptcontext","docId":"how-to-write-a-contract/scriptcontext"},{"type":"link","label":"Stateful Contracts","href":"/how-to-write-a-contract/stateful-contract","docId":"how-to-write-a-contract/stateful-contract"},{"type":"link","label":"Built-ins","href":"/how-to-write-a-contract/built-ins","docId":"how-to-write-a-contract/built-ins"}],"href":"/how-to-write-a-contract/"},{"type":"category","label":"How to Deploy & Call a Contract","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"How to Customize a Contract Tx","href":"/how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx","docId":"how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx"},{"type":"link","label":"Deploy Using CLI","href":"/how-to-deploy-and-call-a-contract/deploy-cli","docId":"how-to-deploy-and-call-a-contract/deploy-cli"},{"type":"link","label":"Faucet","href":"/how-to-deploy-and-call-a-contract/faucet","docId":"how-to-deploy-and-call-a-contract/faucet"},{"type":"link","label":"Interact with a Deployed Contract","href":"/how-to-deploy-and-call-a-contract/call-deployed","docId":"how-to-deploy-and-call-a-contract/call-deployed"}],"href":"/how-to-deploy-and-call-a-contract/"},{"type":"link","label":"How to Test a Contract","href":"/how-to-test-a-contract","docId":"how-to-test-a-contract"},{"type":"link","label":"How to Debug a Contract","href":"/how-to-debug-a-contract","docId":"how-to-debug-a-contract"},{"type":"category","label":"How to Integrate With a Frontend","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"How to integrate DotWallet","href":"/how-to-integrate-a-frontend/how-to-integrate-dotwallet","docId":"how-to-integrate-a-frontend/how-to-integrate-dotwallet"}],"href":"/how-to-integrate-a-frontend/"},{"type":"link","label":"How to Publish a Contract to NPM","href":"/how-to-publish-a-contract","docId":"how-to-publish-a-contract"},{"type":"link","label":"How to Verify a Contract","href":"/how-to-verify-a-contract","docId":"how-to-verify-a-contract"},{"type":"link","label":"sCrypt for Ethereum Developers","href":"/ethereum-devs","docId":"ethereum-devs"},{"type":"category","label":"Advanced","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"How to Integrate sCrypt Service","href":"/advanced/how-to-integrate-scrypt-service","docId":"advanced/how-to-integrate-scrypt-service"},{"type":"link","label":"Sighash Types","href":"/advanced/sighash-type","docId":"advanced/sighash-type"},{"type":"link","label":"How to Debug ScriptContext Failure","href":"/advanced/how-to-debug-scriptcontext","docId":"advanced/how-to-debug-scriptcontext"},{"type":"link","label":"Use Script inside sCrypt","href":"/advanced/inline-asm","docId":"advanced/inline-asm"},{"type":"link","label":"Use Code Separators","href":"/advanced/codeseparator","docId":"advanced/codeseparator"},{"type":"link","label":"How to Add a Provider","href":"/advanced/how-to-add-a-provider","docId":"advanced/how-to-add-a-provider"},{"type":"link","label":"How to Add a Signer","href":"/advanced/how-to-add-a-signer","docId":"advanced/how-to-add-a-signer"},{"type":"link","label":"Call Multiple Contracts in a Single Tx","href":"/advanced/how-to-call-multiple-contracts","docId":"advanced/how-to-call-multiple-contracts"},{"type":"link","label":"Time Lock","href":"/advanced/timeLock","docId":"advanced/timeLock"},{"type":"link","label":"How to Replay a Contract Instance to the Latest State","href":"/advanced/how-to-replay-instance","docId":"advanced/how-to-replay-instance"},{"type":"link","label":"How to Build an Oracle Service","href":"/advanced/how-to-build-an-oracle-service","docId":"advanced/how-to-build-an-oracle-service"}],"href":"/category/advanced"},{"type":"category","label":"Tokens","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Non Fungible Tokens - NFTs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Transfer Existing NFT to a Smart Contract","href":"/tokens/nft/existing","docId":"tokens/nft/existing"}],"href":"/tokens/nft/"},{"type":"category","label":"Fungible Tokens - FTs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Transfer Existing FT to a Smart Contract","href":"/tokens/ft/existing","docId":"tokens/ft/existing"},{"type":"link","label":"Multiple Inputs with Different Contracts","href":"/tokens/ft/multiple","docId":"tokens/ft/multiple"},{"type":"link","label":"View BSV20 Token Transactions","href":"/tokens/ft/how-to-verify-a-BSV20-transaction","docId":"tokens/ft/how-to-verify-a-BSV20-transaction"}],"href":"/tokens/ft/"},{"type":"category","label":"Tutorials","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Tutorial 1: Inscribe Image","href":"/tokens/tutorials/inscribe-image","docId":"tokens/tutorials/inscribe-image"},{"type":"link","label":"Tutorial 2: Mint BSV20 V2 Token","href":"/tokens/tutorials/mint-bsv20-v2","docId":"tokens/tutorials/mint-bsv20-v2"},{"type":"link","label":"Tutorial 3: Mint BSV20 V1 Token","href":"/tokens/tutorials/mint-bsv20-v1","docId":"tokens/tutorials/mint-bsv20-v1"},{"type":"link","label":"Tutorial 4: Ordinal Lock","href":"/tokens/tutorials/ordinal-lock","docId":"tokens/tutorials/ordinal-lock"}],"href":"/category/tutorials"}],"href":"/tokens/"},{"type":"category","label":"Tutorials","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Tutorial 1: Hello World","href":"/tutorials/hello-world","docId":"tutorials/hello-world"},{"type":"link","label":"Tutorial 2: Auction","href":"/tutorials/auction","docId":"tutorials/auction"},{"type":"link","label":"Tutorial 3: Oracle","href":"/tutorials/oracle","docId":"tutorials/oracle"},{"type":"link","label":"Tutorial 4: Tic Tac Toe","href":"/tutorials/tic-tac-toe","docId":"tutorials/tic-tac-toe"},{"type":"link","label":"Tutorial 5: Zero Knowledge Proofs","href":"/tutorials/zkp","docId":"tutorials/zkp"},{"type":"link","label":"Tutorial 6: Voting","href":"/tutorials/voting","docId":"tutorials/voting"},{"type":"link","label":"Tutorial 7: Escrow","href":"/tutorials/escrow","docId":"tutorials/escrow"}],"href":"/category/tutorials-1"},{"type":"link","label":"FAQ","href":"/faq","docId":"faq"},{"type":"category","label":"Reference","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"classes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ActionError","href":"/reference/classes/ActionError","docId":"reference/classes/ActionError"},{"type":"link","label":"BsvApi","href":"/reference/classes/BsvApi","docId":"reference/classes/BsvApi"},{"type":"link","label":"Constants","href":"/reference/classes/Constants","docId":"reference/classes/Constants"},{"type":"link","label":"ContractApi","href":"/reference/classes/ContractApi","docId":"reference/classes/ContractApi"},{"type":"link","label":"DefaultProvider","href":"/reference/classes/DefaultProvider","docId":"reference/classes/DefaultProvider"},{"type":"link","label":"DotwalletSigner","href":"/reference/classes/DotwalletSigner","docId":"reference/classes/DotwalletSigner"},{"type":"link","label":"DummyProvider","href":"/reference/classes/DummyProvider","docId":"reference/classes/DummyProvider"},{"type":"link","label":"FunctionCall","href":"/reference/classes/FunctionCall","docId":"reference/classes/FunctionCall"},{"type":"link","label":"GorillapoolProvider","href":"/reference/classes/GorillapoolProvider","docId":"reference/classes/GorillapoolProvider"},{"type":"link","label":"HashedMap","href":"/reference/classes/HashedMap","docId":"reference/classes/HashedMap"},{"type":"link","label":"HashedSet","href":"/reference/classes/HashedSet","docId":"reference/classes/HashedSet"},{"type":"link","label":"OpCode","href":"/reference/classes/OpCode","docId":"reference/classes/OpCode"},{"type":"link","label":"Provider","href":"/reference/classes/Provider","docId":"reference/classes/Provider"},{"type":"link","label":"ScryptProvider","href":"/reference/classes/ScryptProvider","docId":"reference/classes/ScryptProvider"},{"type":"link","label":"SensibleProvider","href":"/reference/classes/SensibleProvider","docId":"reference/classes/SensibleProvider"},{"type":"link","label":"SensiletSigner","href":"/reference/classes/SensiletSigner","docId":"reference/classes/SensiletSigner"},{"type":"link","label":"SigHash","href":"/reference/classes/SigHash","docId":"reference/classes/SigHash"},{"type":"link","label":"Signer","href":"/reference/classes/Signer","docId":"reference/classes/Signer"},{"type":"link","label":"SmartContract","href":"/reference/classes/SmartContract","docId":"reference/classes/SmartContract"},{"type":"link","label":"SmartContractLib","href":"/reference/classes/SmartContractLib","docId":"reference/classes/SmartContractLib"},{"type":"link","label":"TAALSigner","href":"/reference/classes/TAALSigner","docId":"reference/classes/TAALSigner"},{"type":"link","label":"TaalProvider","href":"/reference/classes/TaalProvider","docId":"reference/classes/TaalProvider"},{"type":"link","label":"TestWallet","href":"/reference/classes/TestWallet","docId":"reference/classes/TestWallet"},{"type":"link","label":"Utils","href":"/reference/classes/Utils","docId":"reference/classes/Utils"},{"type":"link","label":"VarIntReader","href":"/reference/classes/VarIntReader","docId":"reference/classes/VarIntReader"},{"type":"link","label":"VarIntWriter","href":"/reference/classes/VarIntWriter","docId":"reference/classes/VarIntWriter"},{"type":"link","label":"WhatsonchainProvider","href":"/reference/classes/WhatsonchainProvider","docId":"reference/classes/WhatsonchainProvider"},{"type":"link","label":"bsv.Address","href":"/reference/classes/bsv.Address","docId":"reference/classes/bsv.Address"},{"type":"link","label":"bsv.Block","href":"/reference/classes/bsv.Block","docId":"reference/classes/bsv.Block"},{"type":"link","label":"bsv.BlockHeader","href":"/reference/classes/bsv.BlockHeader","docId":"reference/classes/bsv.BlockHeader"},{"type":"link","label":"bsv.ECIES","href":"/reference/classes/bsv.ECIES","docId":"reference/classes/bsv.ECIES"},{"type":"link","label":"bsv.HDPrivateKey","href":"/reference/classes/bsv.HDPrivateKey","docId":"reference/classes/bsv.HDPrivateKey"},{"type":"link","label":"bsv.HDPublicKey","href":"/reference/classes/bsv.HDPublicKey","docId":"reference/classes/bsv.HDPublicKey"},{"type":"link","label":"bsv.MerkleBlock","href":"/reference/classes/bsv.MerkleBlock","docId":"reference/classes/bsv.MerkleBlock"},{"type":"link","label":"bsv.Message","href":"/reference/classes/bsv.Message","docId":"reference/classes/bsv.Message"},{"type":"link","label":"bsv.Mnemonic","href":"/reference/classes/bsv.Mnemonic","docId":"reference/classes/bsv.Mnemonic"},{"type":"link","label":"bsv.Opcode","href":"/reference/classes/bsv.Opcode","docId":"reference/classes/bsv.Opcode"},{"type":"link","label":"bsv.PrivateKey","href":"/reference/classes/bsv.PrivateKey","docId":"reference/classes/bsv.PrivateKey"},{"type":"link","label":"bsv.PublicKey","href":"/reference/classes/bsv.PublicKey","docId":"reference/classes/bsv.PublicKey"},{"type":"link","label":"bsv.Script-1","href":"/reference/classes/bsv.Script-1","docId":"reference/classes/bsv.Script-1"},{"type":"link","label":"bsv.Script.Interpreter-1","href":"/reference/classes/bsv.Script.Interpreter-1","docId":"reference/classes/bsv.Script.Interpreter-1"},{"type":"link","label":"bsv.Transaction-1","href":"/reference/classes/bsv.Transaction-1","docId":"reference/classes/bsv.Transaction-1"},{"type":"link","label":"bsv.Transaction.Input-1","href":"/reference/classes/bsv.Transaction.Input-1","docId":"reference/classes/bsv.Transaction.Input-1"},{"type":"link","label":"bsv.Transaction.Input.PublicKeyHash","href":"/reference/classes/bsv.Transaction.Input.PublicKeyHash","docId":"reference/classes/bsv.Transaction.Input.PublicKeyHash"},{"type":"link","label":"bsv.Transaction.Output","href":"/reference/classes/bsv.Transaction.Output","docId":"reference/classes/bsv.Transaction.Output"},{"type":"link","label":"bsv.Transaction.Signature","href":"/reference/classes/bsv.Transaction.Signature","docId":"reference/classes/bsv.Transaction.Signature"},{"type":"link","label":"bsv.Transaction.UnspentOutput","href":"/reference/classes/bsv.Transaction.UnspentOutput","docId":"reference/classes/bsv.Transaction.UnspentOutput"},{"type":"link","label":"bsv.Unit","href":"/reference/classes/bsv.Unit","docId":"reference/classes/bsv.Unit"},{"type":"link","label":"bsv.crypto.BN","href":"/reference/classes/bsv.crypto.BN","docId":"reference/classes/bsv.crypto.BN"},{"type":"link","label":"bsv.crypto.Point","href":"/reference/classes/bsv.crypto.Point","docId":"reference/classes/bsv.crypto.Point"},{"type":"link","label":"bsv.crypto.Signature","href":"/reference/classes/bsv.crypto.Signature","docId":"reference/classes/bsv.crypto.Signature"},{"type":"link","label":"bsv.encoding.Base58","href":"/reference/classes/bsv.encoding.Base58","docId":"reference/classes/bsv.encoding.Base58"},{"type":"link","label":"bsv.encoding.Base58Check","href":"/reference/classes/bsv.encoding.Base58Check","docId":"reference/classes/bsv.encoding.Base58Check"},{"type":"link","label":"bsv.encoding.BufferReader","href":"/reference/classes/bsv.encoding.BufferReader","docId":"reference/classes/bsv.encoding.BufferReader"},{"type":"link","label":"bsv.encoding.BufferWriter","href":"/reference/classes/bsv.encoding.BufferWriter","docId":"reference/classes/bsv.encoding.BufferWriter"},{"type":"link","label":"bsv.encoding.Varint","href":"/reference/classes/bsv.encoding.Varint","docId":"reference/classes/bsv.encoding.Varint"}]},{"type":"category","label":"enums","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ProviderEvent","href":"/reference/enums/ProviderEvent","docId":"reference/enums/ProviderEvent"},{"type":"link","label":"SignatureHashType","href":"/reference/enums/SignatureHashType","docId":"reference/enums/SignatureHashType"}]},{"type":"category","label":"interfaces","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Artifact","href":"/reference/interfaces/Artifact","docId":"reference/interfaces/Artifact"},{"type":"link","label":"ContractCalledEvent","href":"/reference/interfaces/ContractCalledEvent","docId":"reference/interfaces/ContractCalledEvent"},{"type":"link","label":"ContractTransaction","href":"/reference/interfaces/ContractTransaction","docId":"reference/interfaces/ContractTransaction"},{"type":"link","label":"DefaultProviderOption","href":"/reference/interfaces/DefaultProviderOption","docId":"reference/interfaces/DefaultProviderOption"},{"type":"link","label":"LogConfig","href":"/reference/interfaces/LogConfig","docId":"reference/interfaces/LogConfig"},{"type":"link","label":"MethodCallOptions","href":"/reference/interfaces/MethodCallOptions","docId":"reference/interfaces/MethodCallOptions"},{"type":"link","label":"MethodCallTxBuilder","href":"/reference/interfaces/MethodCallTxBuilder","docId":"reference/interfaces/MethodCallTxBuilder"},{"type":"link","label":"MultiContractCallOptions","href":"/reference/interfaces/MultiContractCallOptions","docId":"reference/interfaces/MultiContractCallOptions"},{"type":"link","label":"MultiContractTransaction","href":"/reference/interfaces/MultiContractTransaction","docId":"reference/interfaces/MultiContractTransaction"},{"type":"link","label":"Outpoint","href":"/reference/interfaces/Outpoint","docId":"reference/interfaces/Outpoint"},{"type":"link","label":"RequestConfig","href":"/reference/interfaces/RequestConfig","docId":"reference/interfaces/RequestConfig"},{"type":"link","label":"ScriptContext","href":"/reference/interfaces/ScriptContext","docId":"reference/interfaces/ScriptContext"},{"type":"link","label":"ScryptConfig","href":"/reference/interfaces/ScryptConfig","docId":"reference/interfaces/ScryptConfig"},{"type":"link","label":"SignTransactionOptions","href":"/reference/interfaces/SignTransactionOptions","docId":"reference/interfaces/SignTransactionOptions"},{"type":"link","label":"SignatureRequest","href":"/reference/interfaces/SignatureRequest","docId":"reference/interfaces/SignatureRequest"},{"type":"link","label":"SignatureResponse","href":"/reference/interfaces/SignatureResponse","docId":"reference/interfaces/SignatureResponse"},{"type":"link","label":"StatefulNext","href":"/reference/interfaces/StatefulNext","docId":"reference/interfaces/StatefulNext"},{"type":"link","label":"SubScription","href":"/reference/interfaces/SubScription","docId":"reference/interfaces/SubScription"},{"type":"link","label":"SubscribeOptions","href":"/reference/interfaces/SubscribeOptions","docId":"reference/interfaces/SubscribeOptions"},{"type":"link","label":"TransactionResponse","href":"/reference/interfaces/TransactionResponse","docId":"reference/interfaces/TransactionResponse"},{"type":"link","label":"TxContext","href":"/reference/interfaces/TxContext","docId":"reference/interfaces/TxContext"},{"type":"link","label":"TxInputRef","href":"/reference/interfaces/TxInputRef","docId":"reference/interfaces/TxInputRef"},{"type":"link","label":"TxOutputRef","href":"/reference/interfaces/TxOutputRef","docId":"reference/interfaces/TxOutputRef"},{"type":"link","label":"UtxoQueryOptions","href":"/reference/interfaces/UtxoQueryOptions","docId":"reference/interfaces/UtxoQueryOptions"},{"type":"link","label":"VerifyResult","href":"/reference/interfaces/VerifyResult","docId":"reference/interfaces/VerifyResult"},{"type":"link","label":"bsv.Networks.Network","href":"/reference/interfaces/bsv.Networks.Network","docId":"reference/interfaces/bsv.Networks.Network"},{"type":"link","label":"bsv.Script.IOpChunk","href":"/reference/interfaces/bsv.Script.IOpChunk","docId":"reference/interfaces/bsv.Script.IOpChunk"},{"type":"link","label":"bsv.Script.Interpreter.InterpretState","href":"/reference/interfaces/bsv.Script.Interpreter.InterpretState","docId":"reference/interfaces/bsv.Script.Interpreter.InterpretState"},{"type":"link","label":"bsv.Transaction.IUnspentOutput","href":"/reference/interfaces/bsv.Transaction.IUnspentOutput","docId":"reference/interfaces/bsv.Transaction.IUnspentOutput"},{"type":"link","label":"bsv.Util","href":"/reference/interfaces/bsv.Util","docId":"reference/interfaces/bsv.Util"},{"type":"link","label":"bsv.crypto.IOpts","href":"/reference/interfaces/bsv.crypto.IOpts","docId":"reference/interfaces/bsv.crypto.IOpts"}]},{"type":"category","label":"modules","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"bsv.Networks","href":"/reference/modules/bsv.Networks","docId":"reference/modules/bsv.Networks"},{"type":"link","label":"bsv.Script.Interpreter","href":"/reference/modules/bsv.Script.Interpreter","docId":"reference/modules/bsv.Script.Interpreter"},{"type":"link","label":"bsv.Script","href":"/reference/modules/bsv.Script","docId":"reference/modules/bsv.Script"},{"type":"link","label":"bsv.Transaction.Input","href":"/reference/modules/bsv.Transaction.Input","docId":"reference/modules/bsv.Transaction.Input"},{"type":"link","label":"bsv.Transaction.Sighash","href":"/reference/modules/bsv.Transaction.Sighash","docId":"reference/modules/bsv.Transaction.Sighash"},{"type":"link","label":"bsv.Transaction","href":"/reference/modules/bsv.Transaction","docId":"reference/modules/bsv.Transaction"},{"type":"link","label":"bsv.crypto.ECDSA","href":"/reference/modules/bsv.crypto.ECDSA","docId":"reference/modules/bsv.crypto.ECDSA"},{"type":"link","label":"bsv.crypto.Hash","href":"/reference/modules/bsv.crypto.Hash","docId":"reference/modules/bsv.crypto.Hash"},{"type":"link","label":"bsv.crypto.Random","href":"/reference/modules/bsv.crypto.Random","docId":"reference/modules/bsv.crypto.Random"},{"type":"link","label":"bsv.crypto","href":"/reference/modules/bsv.crypto","docId":"reference/modules/bsv.crypto"},{"type":"link","label":"bsv.encoding","href":"/reference/modules/bsv.encoding","docId":"reference/modules/bsv.encoding"},{"type":"link","label":"bsv","href":"/reference/modules/bsv","docId":"reference/modules/bsv"}]}],"href":"/reference/"}]},"docs":{"advanced/codeseparator":{"id":"advanced/codeseparator","title":"Use Code Separators","description":"How Code Separators Work","sidebar":"tutorialSidebar"},"advanced/how-to-add-a-provider":{"id":"advanced/how-to-add-a-provider","title":"How to Add a Provider","description":"In the contract testing section, we learned about the Provider class in sCrypt. This class serves as an abstraction of a Bitcoin node, allowing your application to communicate with the Bitcoin network.","sidebar":"tutorialSidebar"},"advanced/how-to-add-a-signer":{"id":"advanced/how-to-add-a-signer","title":"How to Add a Signer","description":"As described in this section, a signer is an abstraction of private keys, which can be used to sign messages and transactions. A simple signer would be a single private key, while a complex signer is a wallet.","sidebar":"tutorialSidebar"},"advanced/how-to-build-an-oracle-service":{"id":"advanced/how-to-build-an-oracle-service","title":"How to Build an Oracle Service","description":"As described in this tutorial, a blockchain oracle is a third-party service or agent that provides external data to a blockchain network. It is a bridge between the blockchain and the external world, enabling smart contracts to access, verify, and incorporate data from outside the blockchain. Specifically, the oracle service provides external data along with a Rabin signature of the data, and the smart contract uses this data and verifies the signature before using it.","sidebar":"tutorialSidebar"},"advanced/how-to-call-multiple-contracts":{"id":"advanced/how-to-call-multiple-contracts","title":"Call Multiple Contracts in a Single Tx","description":"Up to now, we have only shown how to call one smart contract in a transaction. That is, only one input of the tx spends a smart contract UTXO, and the other inputs, if any, spend Pay-to-Public-Key-Hash (P2PKH) UTXOs, which are generally NOT regarded as smart contracts.","sidebar":"tutorialSidebar"},"advanced/how-to-debug-scriptcontext":{"id":"advanced/how-to-debug-scriptcontext","title":"How to Debug ScriptContext Failure","description":"ScriptContext enables the logic of the contract to be executed correctly according to the agreement, and the state of the contract to be propagated correctly.","sidebar":"tutorialSidebar"},"advanced/how-to-integrate-scrypt-service":{"id":"advanced/how-to-integrate-scrypt-service","title":"How to Integrate sCrypt Service","description":"Before interacting with a sCrypt contract, we must create a contract instance representing the latest state of the contract on chain. Such an instance can be created by calling the fromTx method. However, this means your application needs to track and record all contract-related transactions, especially for a stateful contract.","sidebar":"tutorialSidebar"},"advanced/how-to-replay-instance":{"id":"advanced/how-to-replay-instance","title":"How to Replay a Contract Instance to the Latest State","description":"Using sCrypt Service and sCrypt client, we can effortlessly create a contract instance reflecting the latest state as follows:","sidebar":"tutorialSidebar"},"advanced/inline-asm":{"id":"advanced/inline-asm","title":"Use Script inside sCrypt","description":"Script is a low-level language and acts as assembly for the Bitcoin Virtual Machine. Usually, developers do not have to deal with it directly and can use high-level languages like sCrypt. However, there are cases where using script is desirable. For example, customized script is optimized and thus smaller and more efficient than Script generated by sCrypt. Or script is generated using external tools like Baguette and needs to be integrated into sCrypt.","sidebar":"tutorialSidebar"},"advanced/sighash-type":{"id":"advanced/sighash-type","title":"Sighash Types","description":"A signature hash (sighash) flag is used to indicate which part of the transaction is signed by the ECDSA signature. There are mainly two ways to use it in the context of Bitcoin smart contracts.","sidebar":"tutorialSidebar"},"advanced/timeLock":{"id":"advanced/timeLock","title":"Time Lock","description":"Overview","sidebar":"tutorialSidebar"},"bitcoin-basics/bitcoin-basics":{"id":"bitcoin-basics/bitcoin-basics","title":"Bitcoin Basics","description":"If you are new to Bitcoin development, we recommend exploring the resources listed in this section. While not an absolute prerequisite, going over these guides will provide a clearer understanding of key concepts and make it easier to begin developing sCrypt smart contracts.","sidebar":"tutorialSidebar"},"bitcoin-basics/bsv":{"id":"bitcoin-basics/bsv","title":"The BSV submodule","description":"sCrypt exports a submodule named bsv which is an interface that helps you manage low-level things for the Bitcoin blockchain, such as creating key pairs, building, signing and serializing Bitcoin transactions and more.","sidebar":"tutorialSidebar"},"ethereum-devs":{"id":"ethereum-devs","title":"sCrypt for Ethereum Developers","description":"Bitcoin and Ethereum are both layer-1 blockchains with fully programmable smart contracts.","sidebar":"tutorialSidebar"},"faq":{"id":"faq","title":"FAQ","description":"Smart contract call failure","sidebar":"tutorialSidebar"},"how-to-debug-a-contract":{"id":"how-to-debug-a-contract","title":"How to Debug a Contract","description":"Debugging an sCrypt contract is as easy as debugging TypeScript, since it is just TypeScript.","sidebar":"tutorialSidebar"},"how-to-deploy-and-call-a-contract/call-deployed":{"id":"how-to-deploy-and-call-a-contract/call-deployed","title":"Interact with a Deployed Contract","description":"Overview","sidebar":"tutorialSidebar"},"how-to-deploy-and-call-a-contract/deploy-cli":{"id":"how-to-deploy-and-call-a-contract/deploy-cli","title":"Deploy Using CLI","description":"The deploy command allows you to deploy an instance of a smart contract to the blockchain. You can simply run the following command in the root of an sCrypt project:","sidebar":"tutorialSidebar"},"how-to-deploy-and-call-a-contract/faucet":{"id":"how-to-deploy-and-call-a-contract/faucet","title":"Faucet","description":"It is highly recommended to test your contract on the testnet after passing local tests. It ensures that a contract can be successfully deployed and invoked as expected on the blockchain.","sidebar":"tutorialSidebar"},"how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx":{"id":"how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx","title":"How to Customize a Contract Tx","description":"Deployment Tx","sidebar":"tutorialSidebar"},"how-to-deploy-and-call-a-contract/how-to-deploy-and-call-a-contract":{"id":"how-to-deploy-and-call-a-contract/how-to-deploy-and-call-a-contract","title":"How to Deploy & Call a Contract","description":"Core Concepts","sidebar":"tutorialSidebar"},"how-to-integrate-a-frontend/how-to-integrate-a-frontend":{"id":"how-to-integrate-a-frontend/how-to-integrate-a-frontend","title":"How to Integrate With a Frontend","description":"This section will show how to integrate your smart contract to a frontend, so users can interact with it.","sidebar":"tutorialSidebar"},"how-to-integrate-a-frontend/how-to-integrate-dotwallet":{"id":"how-to-integrate-a-frontend/how-to-integrate-dotwallet","title":"How to integrate DotWallet","description":"DotWallet is a lightweight wallet designed to help users easily and securely manage their digital assets. We will show how to integrate it with sCrypt-powered apps.","sidebar":"tutorialSidebar"},"how-to-publish-a-contract":{"id":"how-to-publish-a-contract","title":"How to Publish a Contract to NPM","description":"What is a Smart Contract Library?","sidebar":"tutorialSidebar"},"how-to-test-a-contract":{"id":"how-to-test-a-contract","title":"How to Test a Contract","description":"Before using a smart contract in production, one should always test it carefully, especially because any bug in it may cause real economic losses.","sidebar":"tutorialSidebar"},"how-to-verify-a-contract":{"id":"how-to-verify-a-contract","title":"How to Verify a Contract","description":"You will learn how to verify smart contracts on WhatsOnChain (WoC), a blockchain explorer.","sidebar":"tutorialSidebar"},"how-to-write-a-contract/built-ins":{"id":"how-to-write-a-contract/built-ins","title":"Built-ins","description":"Global Functions","sidebar":"tutorialSidebar"},"how-to-write-a-contract/how-to-write-a-contract":{"id":"how-to-write-a-contract/how-to-write-a-contract","title":"How to Write a Contract","description":"A smart contract is a class that extends the SmartContract base class. A simple example is shown below.","sidebar":"tutorialSidebar"},"how-to-write-a-contract/scriptcontext":{"id":"how-to-write-a-contract/scriptcontext","title":"ScriptContext","description":"In the UTXO model, the context of validating a smart contract is the UTXO containing it and the transaction spending it, including its inputs and outputs. In the following example, when the second of input of transaction tx1 (2 inputs and 2 outputs) is spending the second output of tx0 (3 inputs and 3 outputs), the context for the smart contract in the latter output is roughly the UTXO and tx1 circled in red.","sidebar":"tutorialSidebar"},"how-to-write-a-contract/stateful-contract":{"id":"how-to-write-a-contract/stateful-contract","title":"Stateful Contracts","description":"Overview","sidebar":"tutorialSidebar"},"installation":{"id":"installation","title":"Installation","description":"Prerequisite","sidebar":"tutorialSidebar"},"overview":{"id":"overview","title":"Overview","description":"sCrypt is an embedded Domain Specific Language (eDSL) based on TypeScript for writing smart contracts on Bitcoin SV. Embedded means that it is a language inside another language. sCrypt is strictly a subset of TypeScript, so all sCrypt code is valid TypeScript, but not vice versa.","sidebar":"tutorialSidebar"},"reference/classes/ActionError":{"id":"reference/classes/ActionError","title":"ActionError","description":"scrypt-ts / ActionError","sidebar":"tutorialSidebar"},"reference/classes/bsv.Address":{"id":"reference/classes/bsv.Address","title":"bsv.Address","description":"scrypt-ts / bsv / Address","sidebar":"tutorialSidebar"},"reference/classes/bsv.Block":{"id":"reference/classes/bsv.Block","title":"bsv.Block","description":"scrypt-ts / bsv / Block","sidebar":"tutorialSidebar"},"reference/classes/bsv.BlockHeader":{"id":"reference/classes/bsv.BlockHeader","title":"bsv.BlockHeader","description":"scrypt-ts / bsv / BlockHeader","sidebar":"tutorialSidebar"},"reference/classes/bsv.crypto.BN":{"id":"reference/classes/bsv.crypto.BN","title":"bsv.crypto.BN","description":"scrypt-ts / bsv / crypto / BN","sidebar":"tutorialSidebar"},"reference/classes/bsv.crypto.Point":{"id":"reference/classes/bsv.crypto.Point","title":"bsv.crypto.Point","description":"scrypt-ts / bsv / crypto / Point","sidebar":"tutorialSidebar"},"reference/classes/bsv.crypto.Signature":{"id":"reference/classes/bsv.crypto.Signature","title":"bsv.crypto.Signature","description":"scrypt-ts / bsv / crypto / Signature","sidebar":"tutorialSidebar"},"reference/classes/bsv.ECIES":{"id":"reference/classes/bsv.ECIES","title":"bsv.ECIES","description":"scrypt-ts / bsv / ECIES","sidebar":"tutorialSidebar"},"reference/classes/bsv.encoding.Base58":{"id":"reference/classes/bsv.encoding.Base58","title":"bsv.encoding.Base58","description":"scrypt-ts / bsv / encoding / Base58","sidebar":"tutorialSidebar"},"reference/classes/bsv.encoding.Base58Check":{"id":"reference/classes/bsv.encoding.Base58Check","title":"bsv.encoding.Base58Check","description":"scrypt-ts / bsv / encoding / Base58Check","sidebar":"tutorialSidebar"},"reference/classes/bsv.encoding.BufferReader":{"id":"reference/classes/bsv.encoding.BufferReader","title":"bsv.encoding.BufferReader","description":"scrypt-ts / bsv / encoding / BufferReader","sidebar":"tutorialSidebar"},"reference/classes/bsv.encoding.BufferWriter":{"id":"reference/classes/bsv.encoding.BufferWriter","title":"bsv.encoding.BufferWriter","description":"scrypt-ts / bsv / encoding / BufferWriter","sidebar":"tutorialSidebar"},"reference/classes/bsv.encoding.Varint":{"id":"reference/classes/bsv.encoding.Varint","title":"bsv.encoding.Varint","description":"scrypt-ts / bsv / encoding / Varint","sidebar":"tutorialSidebar"},"reference/classes/bsv.HDPrivateKey":{"id":"reference/classes/bsv.HDPrivateKey","title":"bsv.HDPrivateKey","description":"scrypt-ts / bsv / HDPrivateKey","sidebar":"tutorialSidebar"},"reference/classes/bsv.HDPublicKey":{"id":"reference/classes/bsv.HDPublicKey","title":"bsv.HDPublicKey","description":"scrypt-ts / bsv / HDPublicKey","sidebar":"tutorialSidebar"},"reference/classes/bsv.MerkleBlock":{"id":"reference/classes/bsv.MerkleBlock","title":"bsv.MerkleBlock","description":"scrypt-ts / bsv / MerkleBlock","sidebar":"tutorialSidebar"},"reference/classes/bsv.Message":{"id":"reference/classes/bsv.Message","title":"bsv.Message","description":"scrypt-ts / bsv / Message","sidebar":"tutorialSidebar"},"reference/classes/bsv.Mnemonic":{"id":"reference/classes/bsv.Mnemonic","title":"bsv.Mnemonic","description":"scrypt-ts / bsv / Mnemonic","sidebar":"tutorialSidebar"},"reference/classes/bsv.Opcode":{"id":"reference/classes/bsv.Opcode","title":"bsv.Opcode","description":"scrypt-ts / bsv / Opcode","sidebar":"tutorialSidebar"},"reference/classes/bsv.PrivateKey":{"id":"reference/classes/bsv.PrivateKey","title":"bsv.PrivateKey","description":"scrypt-ts / bsv / PrivateKey","sidebar":"tutorialSidebar"},"reference/classes/bsv.PublicKey":{"id":"reference/classes/bsv.PublicKey","title":"bsv.PublicKey","description":"scrypt-ts / bsv / PublicKey","sidebar":"tutorialSidebar"},"reference/classes/bsv.Script-1":{"id":"reference/classes/bsv.Script-1","title":"bsv.Script-1","description":"scrypt-ts / bsv / Script","sidebar":"tutorialSidebar"},"reference/classes/bsv.Script.Interpreter-1":{"id":"reference/classes/bsv.Script.Interpreter-1","title":"bsv.Script.Interpreter-1","description":"scrypt-ts / bsv / Script / Interpreter","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction-1":{"id":"reference/classes/bsv.Transaction-1","title":"bsv.Transaction-1","description":"scrypt-ts / bsv / Transaction","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction.Input-1":{"id":"reference/classes/bsv.Transaction.Input-1","title":"bsv.Transaction.Input-1","description":"scrypt-ts / bsv / Transaction / Input","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction.Input.PublicKeyHash":{"id":"reference/classes/bsv.Transaction.Input.PublicKeyHash","title":"bsv.Transaction.Input.PublicKeyHash","description":"scrypt-ts / bsv / Transaction / Input / PublicKeyHash","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction.Output":{"id":"reference/classes/bsv.Transaction.Output","title":"bsv.Transaction.Output","description":"scrypt-ts / bsv / Transaction / Output","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction.Signature":{"id":"reference/classes/bsv.Transaction.Signature","title":"bsv.Transaction.Signature","description":"scrypt-ts / bsv / Transaction / Signature","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction.UnspentOutput":{"id":"reference/classes/bsv.Transaction.UnspentOutput","title":"bsv.Transaction.UnspentOutput","description":"scrypt-ts / bsv / Transaction / UnspentOutput","sidebar":"tutorialSidebar"},"reference/classes/bsv.Unit":{"id":"reference/classes/bsv.Unit","title":"bsv.Unit","description":"scrypt-ts / bsv / Unit","sidebar":"tutorialSidebar"},"reference/classes/BsvApi":{"id":"reference/classes/BsvApi","title":"BsvApi","description":"scrypt-ts / BsvApi","sidebar":"tutorialSidebar"},"reference/classes/Constants":{"id":"reference/classes/Constants","title":"Constants","description":"scrypt-ts / Constants","sidebar":"tutorialSidebar"},"reference/classes/ContractApi":{"id":"reference/classes/ContractApi","title":"ContractApi","description":"scrypt-ts / ContractApi","sidebar":"tutorialSidebar"},"reference/classes/DefaultProvider":{"id":"reference/classes/DefaultProvider","title":"DefaultProvider","description":"scrypt-ts / DefaultProvider","sidebar":"tutorialSidebar"},"reference/classes/DotwalletSigner":{"id":"reference/classes/DotwalletSigner","title":"DotwalletSigner","description":"scrypt-ts / DotwalletSigner","sidebar":"tutorialSidebar"},"reference/classes/DummyProvider":{"id":"reference/classes/DummyProvider","title":"DummyProvider","description":"scrypt-ts / DummyProvider","sidebar":"tutorialSidebar"},"reference/classes/FunctionCall":{"id":"reference/classes/FunctionCall","title":"FunctionCall","description":"scrypt-ts / FunctionCall","sidebar":"tutorialSidebar"},"reference/classes/GorillapoolProvider":{"id":"reference/classes/GorillapoolProvider","title":"GorillapoolProvider","description":"scrypt-ts / GorillapoolProvider","sidebar":"tutorialSidebar"},"reference/classes/HashedMap":{"id":"reference/classes/HashedMap","title":"HashedMap","description":"scrypt-ts / HashedMap","sidebar":"tutorialSidebar"},"reference/classes/HashedSet":{"id":"reference/classes/HashedSet","title":"HashedSet","description":"scrypt-ts / HashedSet","sidebar":"tutorialSidebar"},"reference/classes/OpCode":{"id":"reference/classes/OpCode","title":"OpCode","description":"scrypt-ts / OpCode","sidebar":"tutorialSidebar"},"reference/classes/Provider":{"id":"reference/classes/Provider","title":"Provider","description":"scrypt-ts / Provider","sidebar":"tutorialSidebar"},"reference/classes/ScryptProvider":{"id":"reference/classes/ScryptProvider","title":"ScryptProvider","description":"scrypt-ts / ScryptProvider","sidebar":"tutorialSidebar"},"reference/classes/SensibleProvider":{"id":"reference/classes/SensibleProvider","title":"SensibleProvider","description":"scrypt-ts / SensibleProvider","sidebar":"tutorialSidebar"},"reference/classes/SensiletSigner":{"id":"reference/classes/SensiletSigner","title":"SensiletSigner","description":"scrypt-ts / SensiletSigner","sidebar":"tutorialSidebar"},"reference/classes/SigHash":{"id":"reference/classes/SigHash","title":"SigHash","description":"scrypt-ts / SigHash","sidebar":"tutorialSidebar"},"reference/classes/Signer":{"id":"reference/classes/Signer","title":"Signer","description":"scrypt-ts / Signer","sidebar":"tutorialSidebar"},"reference/classes/SmartContract":{"id":"reference/classes/SmartContract","title":"SmartContract","description":"scrypt-ts / SmartContract","sidebar":"tutorialSidebar"},"reference/classes/SmartContractLib":{"id":"reference/classes/SmartContractLib","title":"SmartContractLib","description":"scrypt-ts / SmartContractLib","sidebar":"tutorialSidebar"},"reference/classes/TaalProvider":{"id":"reference/classes/TaalProvider","title":"TaalProvider","description":"scrypt-ts / TaalProvider","sidebar":"tutorialSidebar"},"reference/classes/TAALSigner":{"id":"reference/classes/TAALSigner","title":"TAALSigner","description":"scrypt-ts / TAALSigner","sidebar":"tutorialSidebar"},"reference/classes/TestWallet":{"id":"reference/classes/TestWallet","title":"TestWallet","description":"scrypt-ts / TestWallet","sidebar":"tutorialSidebar"},"reference/classes/Utils":{"id":"reference/classes/Utils","title":"Utils","description":"scrypt-ts / Utils","sidebar":"tutorialSidebar"},"reference/classes/VarIntReader":{"id":"reference/classes/VarIntReader","title":"VarIntReader","description":"scrypt-ts / VarIntReader","sidebar":"tutorialSidebar"},"reference/classes/VarIntWriter":{"id":"reference/classes/VarIntWriter","title":"VarIntWriter","description":"scrypt-ts / VarIntWriter","sidebar":"tutorialSidebar"},"reference/classes/WhatsonchainProvider":{"id":"reference/classes/WhatsonchainProvider","title":"WhatsonchainProvider","description":"scrypt-ts / WhatsonchainProvider","sidebar":"tutorialSidebar"},"reference/enums/ProviderEvent":{"id":"reference/enums/ProviderEvent","title":"ProviderEvent","description":"scrypt-ts / ProviderEvent","sidebar":"tutorialSidebar"},"reference/enums/SignatureHashType":{"id":"reference/enums/SignatureHashType","title":"SignatureHashType","description":"scrypt-ts / SignatureHashType","sidebar":"tutorialSidebar"},"reference/interfaces/Artifact":{"id":"reference/interfaces/Artifact","title":"Artifact","description":"scrypt-ts / Artifact","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.crypto.IOpts":{"id":"reference/interfaces/bsv.crypto.IOpts","title":"bsv.crypto.IOpts","description":"scrypt-ts / bsv / crypto / IOpts","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.Networks.Network":{"id":"reference/interfaces/bsv.Networks.Network","title":"bsv.Networks.Network","description":"scrypt-ts / bsv / Networks / Network","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.Script.Interpreter.InterpretState":{"id":"reference/interfaces/bsv.Script.Interpreter.InterpretState","title":"bsv.Script.Interpreter.InterpretState","description":"scrypt-ts / bsv / Script / Interpreter / InterpretState","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.Script.IOpChunk":{"id":"reference/interfaces/bsv.Script.IOpChunk","title":"bsv.Script.IOpChunk","description":"scrypt-ts / bsv / Script / IOpChunk","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.Transaction.IUnspentOutput":{"id":"reference/interfaces/bsv.Transaction.IUnspentOutput","title":"bsv.Transaction.IUnspentOutput","description":"scrypt-ts / bsv / Transaction / IUnspentOutput","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.Util":{"id":"reference/interfaces/bsv.Util","title":"bsv.Util","description":"scrypt-ts / bsv / Util","sidebar":"tutorialSidebar"},"reference/interfaces/ContractCalledEvent":{"id":"reference/interfaces/ContractCalledEvent","title":"ContractCalledEvent","description":"scrypt-ts / ContractCalledEvent","sidebar":"tutorialSidebar"},"reference/interfaces/ContractTransaction":{"id":"reference/interfaces/ContractTransaction","title":"ContractTransaction","description":"scrypt-ts / ContractTransaction","sidebar":"tutorialSidebar"},"reference/interfaces/DefaultProviderOption":{"id":"reference/interfaces/DefaultProviderOption","title":"DefaultProviderOption","description":"scrypt-ts / DefaultProviderOption","sidebar":"tutorialSidebar"},"reference/interfaces/LogConfig":{"id":"reference/interfaces/LogConfig","title":"LogConfig","description":"scrypt-ts / LogConfig","sidebar":"tutorialSidebar"},"reference/interfaces/MethodCallOptions":{"id":"reference/interfaces/MethodCallOptions","title":"MethodCallOptions","description":"scrypt-ts / MethodCallOptions","sidebar":"tutorialSidebar"},"reference/interfaces/MethodCallTxBuilder":{"id":"reference/interfaces/MethodCallTxBuilder","title":"MethodCallTxBuilder","description":"scrypt-ts / MethodCallTxBuilder","sidebar":"tutorialSidebar"},"reference/interfaces/MultiContractCallOptions":{"id":"reference/interfaces/MultiContractCallOptions","title":"MultiContractCallOptions","description":"scrypt-ts / MultiContractCallOptions","sidebar":"tutorialSidebar"},"reference/interfaces/MultiContractTransaction":{"id":"reference/interfaces/MultiContractTransaction","title":"MultiContractTransaction","description":"scrypt-ts / MultiContractTransaction","sidebar":"tutorialSidebar"},"reference/interfaces/Outpoint":{"id":"reference/interfaces/Outpoint","title":"Outpoint","description":"scrypt-ts / Outpoint","sidebar":"tutorialSidebar"},"reference/interfaces/RequestConfig":{"id":"reference/interfaces/RequestConfig","title":"RequestConfig","description":"scrypt-ts / RequestConfig","sidebar":"tutorialSidebar"},"reference/interfaces/ScriptContext":{"id":"reference/interfaces/ScriptContext","title":"ScriptContext","description":"scrypt-ts / ScriptContext","sidebar":"tutorialSidebar"},"reference/interfaces/ScryptConfig":{"id":"reference/interfaces/ScryptConfig","title":"ScryptConfig","description":"scrypt-ts / ScryptConfig","sidebar":"tutorialSidebar"},"reference/interfaces/SignatureRequest":{"id":"reference/interfaces/SignatureRequest","title":"SignatureRequest","description":"scrypt-ts / SignatureRequest","sidebar":"tutorialSidebar"},"reference/interfaces/SignatureResponse":{"id":"reference/interfaces/SignatureResponse","title":"SignatureResponse","description":"scrypt-ts / SignatureResponse","sidebar":"tutorialSidebar"},"reference/interfaces/SignTransactionOptions":{"id":"reference/interfaces/SignTransactionOptions","title":"SignTransactionOptions","description":"scrypt-ts / SignTransactionOptions","sidebar":"tutorialSidebar"},"reference/interfaces/StatefulNext":{"id":"reference/interfaces/StatefulNext","title":"StatefulNext","description":"scrypt-ts / StatefulNext","sidebar":"tutorialSidebar"},"reference/interfaces/SubscribeOptions":{"id":"reference/interfaces/SubscribeOptions","title":"SubscribeOptions","description":"scrypt-ts / SubscribeOptions","sidebar":"tutorialSidebar"},"reference/interfaces/SubScription":{"id":"reference/interfaces/SubScription","title":"SubScription","description":"scrypt-ts / SubScription","sidebar":"tutorialSidebar"},"reference/interfaces/TransactionResponse":{"id":"reference/interfaces/TransactionResponse","title":"TransactionResponse","description":"scrypt-ts / TransactionResponse","sidebar":"tutorialSidebar"},"reference/interfaces/TxContext":{"id":"reference/interfaces/TxContext","title":"TxContext","description":"scrypt-ts / TxContext","sidebar":"tutorialSidebar"},"reference/interfaces/TxInputRef":{"id":"reference/interfaces/TxInputRef","title":"TxInputRef","description":"scrypt-ts / TxInputRef","sidebar":"tutorialSidebar"},"reference/interfaces/TxOutputRef":{"id":"reference/interfaces/TxOutputRef","title":"TxOutputRef","description":"scrypt-ts / TxOutputRef","sidebar":"tutorialSidebar"},"reference/interfaces/UtxoQueryOptions":{"id":"reference/interfaces/UtxoQueryOptions","title":"UtxoQueryOptions","description":"scrypt-ts / UtxoQueryOptions","sidebar":"tutorialSidebar"},"reference/interfaces/VerifyResult":{"id":"reference/interfaces/VerifyResult","title":"VerifyResult","description":"scrypt-ts / VerifyResult","sidebar":"tutorialSidebar"},"reference/modules/bsv":{"id":"reference/modules/bsv","title":"bsv","description":"scrypt-ts / bsv","sidebar":"tutorialSidebar"},"reference/modules/bsv.crypto":{"id":"reference/modules/bsv.crypto","title":"bsv.crypto","description":"scrypt-ts / bsv / crypto","sidebar":"tutorialSidebar"},"reference/modules/bsv.crypto.ECDSA":{"id":"reference/modules/bsv.crypto.ECDSA","title":"bsv.crypto.ECDSA","description":"scrypt-ts / bsv / crypto / ECDSA","sidebar":"tutorialSidebar"},"reference/modules/bsv.crypto.Hash":{"id":"reference/modules/bsv.crypto.Hash","title":"bsv.crypto.Hash","description":"scrypt-ts / bsv / crypto / Hash","sidebar":"tutorialSidebar"},"reference/modules/bsv.crypto.Random":{"id":"reference/modules/bsv.crypto.Random","title":"bsv.crypto.Random","description":"scrypt-ts / bsv / crypto / Random","sidebar":"tutorialSidebar"},"reference/modules/bsv.encoding":{"id":"reference/modules/bsv.encoding","title":"bsv.encoding","description":"scrypt-ts / bsv / encoding","sidebar":"tutorialSidebar"},"reference/modules/bsv.Networks":{"id":"reference/modules/bsv.Networks","title":"bsv.Networks","description":"scrypt-ts / bsv / Networks","sidebar":"tutorialSidebar"},"reference/modules/bsv.Script":{"id":"reference/modules/bsv.Script","title":"bsv.Script","description":"scrypt-ts / bsv / Script","sidebar":"tutorialSidebar"},"reference/modules/bsv.Script.Interpreter":{"id":"reference/modules/bsv.Script.Interpreter","title":"bsv.Script.Interpreter","description":"scrypt-ts / bsv / Script / Interpreter","sidebar":"tutorialSidebar"},"reference/modules/bsv.Transaction":{"id":"reference/modules/bsv.Transaction","title":"bsv.Transaction","description":"scrypt-ts / bsv / Transaction","sidebar":"tutorialSidebar"},"reference/modules/bsv.Transaction.Input":{"id":"reference/modules/bsv.Transaction.Input","title":"bsv.Transaction.Input","description":"scrypt-ts / bsv / Transaction / Input","sidebar":"tutorialSidebar"},"reference/modules/bsv.Transaction.Sighash":{"id":"reference/modules/bsv.Transaction.Sighash","title":"bsv.Transaction.Sighash","description":"scrypt-ts / bsv / Transaction / Sighash","sidebar":"tutorialSidebar"},"reference/README":{"id":"reference/README","title":"README","description":"scrypt-ts","sidebar":"tutorialSidebar"},"tokens/ft/existing":{"id":"tokens/ft/existing","title":"Transfer Existing FT to a Smart Contract","description":"Suppose you\'d like to unlock existing UTXOs that carry a FT to a smart contract.","sidebar":"tutorialSidebar"},"tokens/ft/ft":{"id":"tokens/ft/ft","title":"Fungible Tokens - FTs","description":"Just like NFTs, scrypt-ord also supports fungible tokens. Under the hood it utilizes the bsv-20 protocol.","sidebar":"tutorialSidebar"},"tokens/ft/how-to-verify-a-BSV20-transaction":{"id":"tokens/ft/how-to-verify-a-BSV20-transaction","title":"View BSV20 Token Transactions","description":"You can use WhatsOnChain to view a BSV20 token transaction, using our open source BSV20 plugin.","sidebar":"tutorialSidebar"},"tokens/ft/multiple":{"id":"tokens/ft/multiple","title":"Multiple Inputs with Different Contracts","description":"Suppose we would like to unlock FTs within a single transaction that are located in different smart contracts. We can utilize the same technique demonstrated in the section for calling multiple contract instances.","sidebar":"tutorialSidebar"},"tokens/nft/existing":{"id":"tokens/nft/existing","title":"Transfer Existing NFT to a Smart Contract","description":"Suppose you would like to transfer an existing NFT that was already inscribed in the past, which is typically locked using a P2PKH lock.","sidebar":"tutorialSidebar"},"tokens/nft/nft":{"id":"tokens/nft/nft","title":"Non Fungible Tokens - NFTs","description":"To create a smart contract that will carry an NFT, have your smart contract extend the OrdinalNFT class:","sidebar":"tutorialSidebar"},"tokens/tokens":{"id":"tokens/tokens","title":"The Official sCrypt 1Sat Ordinals SDK","description":"sCrypt offers its official 1Sat Ordinals SDK named scrypt-ord.","sidebar":"tutorialSidebar"},"tokens/tutorials/inscribe-image":{"id":"tokens/tutorials/inscribe-image","title":"Tutorial 1: Inscribe Image","description":"Overview","sidebar":"tutorialSidebar"},"tokens/tutorials/mint-bsv20-v1":{"id":"tokens/tutorials/mint-bsv20-v1","title":"Tutorial 3: Mint BSV20 V1 Token","description":"Overview","sidebar":"tutorialSidebar"},"tokens/tutorials/mint-bsv20-v2":{"id":"tokens/tutorials/mint-bsv20-v2","title":"Tutorial 2: Mint BSV20 V2 Token","description":"Overview","sidebar":"tutorialSidebar"},"tokens/tutorials/ordinal-lock":{"id":"tokens/tutorials/ordinal-lock","title":"Tutorial 4: Ordinal Lock","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/auction":{"id":"tutorials/auction","title":"Tutorial 2: Auction","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/escrow":{"id":"tutorials/escrow","title":"Tutorial 7: Escrow","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/hello-world":{"id":"tutorials/hello-world","title":"Tutorial 1: Hello World","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/oracle":{"id":"tutorials/oracle","title":"Tutorial 3: Oracle","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/tic-tac-toe":{"id":"tutorials/tic-tac-toe","title":"Tutorial 4: Tic Tac Toe","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/voting":{"id":"tutorials/voting","title":"Tutorial 6: Voting","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/zkp":{"id":"tutorials/zkp","title":"Tutorial 5: Zero Knowledge Proofs","description":"Overview","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.9e2103d2.js b/assets/js/935f2afb.9e2103d2.js deleted file mode 100644 index 107f0fca6..000000000 --- a/assets/js/935f2afb.9e2103d2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Overview","href":"/","docId":"overview"},{"type":"link","label":"Installation","href":"/installation","docId":"installation"},{"type":"category","label":"Bitcoin Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"The BSV submodule","href":"/bitcoin-basics/bsv","docId":"bitcoin-basics/bsv"}],"href":"/bitcoin-basics/"},{"type":"category","label":"How to Write a Contract","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ScriptContext","href":"/how-to-write-a-contract/scriptcontext","docId":"how-to-write-a-contract/scriptcontext"},{"type":"link","label":"Stateful Contracts","href":"/how-to-write-a-contract/stateful-contract","docId":"how-to-write-a-contract/stateful-contract"},{"type":"link","label":"Built-ins","href":"/how-to-write-a-contract/built-ins","docId":"how-to-write-a-contract/built-ins"}],"href":"/how-to-write-a-contract/"},{"type":"category","label":"How to Deploy & Call a Contract","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"How to Customize a Contract Tx","href":"/how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx","docId":"how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx"},{"type":"link","label":"Deploy Using CLI","href":"/how-to-deploy-and-call-a-contract/deploy-cli","docId":"how-to-deploy-and-call-a-contract/deploy-cli"},{"type":"link","label":"Faucet","href":"/how-to-deploy-and-call-a-contract/faucet","docId":"how-to-deploy-and-call-a-contract/faucet"},{"type":"link","label":"Interact with a Deployed Contract","href":"/how-to-deploy-and-call-a-contract/call-deployed","docId":"how-to-deploy-and-call-a-contract/call-deployed"}],"href":"/how-to-deploy-and-call-a-contract/"},{"type":"link","label":"How to Test a Contract","href":"/how-to-test-a-contract","docId":"how-to-test-a-contract"},{"type":"link","label":"How to Debug a Contract","href":"/how-to-debug-a-contract","docId":"how-to-debug-a-contract"},{"type":"category","label":"How to Integrate With a Frontend","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"How to integrate DotWallet","href":"/how-to-integrate-a-frontend/how-to-integrate-dotwallet","docId":"how-to-integrate-a-frontend/how-to-integrate-dotwallet"}],"href":"/how-to-integrate-a-frontend/"},{"type":"link","label":"How to Publish a Contract to NPM","href":"/how-to-publish-a-contract","docId":"how-to-publish-a-contract"},{"type":"link","label":"How to Verify a Contract","href":"/how-to-verify-a-contract","docId":"how-to-verify-a-contract"},{"type":"link","label":"sCrypt for Ethereum Developers","href":"/ethereum-devs","docId":"ethereum-devs"},{"type":"category","label":"Advanced","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"How to Integrate sCrypt Service","href":"/advanced/how-to-integrate-scrypt-service","docId":"advanced/how-to-integrate-scrypt-service"},{"type":"link","label":"Sighash Types","href":"/advanced/sighash-type","docId":"advanced/sighash-type"},{"type":"link","label":"How to Debug ScriptContext Failure","href":"/advanced/how-to-debug-scriptcontext","docId":"advanced/how-to-debug-scriptcontext"},{"type":"link","label":"Use Script inside sCrypt","href":"/advanced/inline-asm","docId":"advanced/inline-asm"},{"type":"link","label":"Use Code Separators","href":"/advanced/codeseparator","docId":"advanced/codeseparator"},{"type":"link","label":"How to Add a Provider","href":"/advanced/how-to-add-a-provider","docId":"advanced/how-to-add-a-provider"},{"type":"link","label":"How to Add a Signer","href":"/advanced/how-to-add-a-signer","docId":"advanced/how-to-add-a-signer"},{"type":"link","label":"Call Multiple Contracts in a Single Tx","href":"/advanced/how-to-call-multiple-contracts","docId":"advanced/how-to-call-multiple-contracts"},{"type":"link","label":"Time Lock","href":"/advanced/timeLock","docId":"advanced/timeLock"},{"type":"link","label":"How to Replay a Contract Instance to the Latest State","href":"/advanced/how-to-replay-instance","docId":"advanced/how-to-replay-instance"},{"type":"link","label":"How to Build an Oracle Service","href":"/advanced/how-to-build-an-oracle-service","docId":"advanced/how-to-build-an-oracle-service"}],"href":"/category/advanced"},{"type":"category","label":"Tokens","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Non Funglible Tokens - NFTs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Transfer Existing NFT to a Smart Contract","href":"/tokens/nft/existing","docId":"tokens/nft/existing"}],"href":"/tokens/nft/"},{"type":"category","label":"Funglible Tokens - FTs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Transfer Existing FT to a Smart Contract","href":"/tokens/ft/existing","docId":"tokens/ft/existing"},{"type":"link","label":"Multiple Inputs with Different Contracts","href":"/tokens/ft/multiple","docId":"tokens/ft/multiple"}],"href":"/tokens/ft/"},{"type":"category","label":"Tutorials","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Tutorial 1: Inscribe Image","href":"/tokens/tutorials/inscribe-image","docId":"tokens/tutorials/inscribe-image"},{"type":"link","label":"Tutorial 2: Mint BSV20 V2 Token","href":"/tokens/tutorials/mint-bsv20-v2","docId":"tokens/tutorials/mint-bsv20-v2"},{"type":"link","label":"Tutorial 3: Mint BSV20 V1 Token","href":"/tokens/tutorials/mint-bsv20-v1","docId":"tokens/tutorials/mint-bsv20-v1"},{"type":"link","label":"Tutorial 4: Ordinal Lock","href":"/tokens/tutorials/ordinal-lock","docId":"tokens/tutorials/ordinal-lock"},{"type":"link","label":"Tutorial 5: How to verify a BSV20 token","href":"/tokens/tutorials/how-to-verify-a-BSV20-transaction","docId":"tokens/tutorials/how-to-verify-a-BSV20-transaction"}],"href":"/category/tutorials"}],"href":"/tokens/"},{"type":"category","label":"Tutorials","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Tutorial 1: Hello World","href":"/tutorials/hello-world","docId":"tutorials/hello-world"},{"type":"link","label":"Tutorial 2: Auction","href":"/tutorials/auction","docId":"tutorials/auction"},{"type":"link","label":"Tutorial 3: Oracle","href":"/tutorials/oracle","docId":"tutorials/oracle"},{"type":"link","label":"Tutorial 4: Tic Tac Toe","href":"/tutorials/tic-tac-toe","docId":"tutorials/tic-tac-toe"},{"type":"link","label":"Tutorial 5: Zero Knowledge Proofs","href":"/tutorials/zkp","docId":"tutorials/zkp"},{"type":"link","label":"Tutorial 6: Voting","href":"/tutorials/voting","docId":"tutorials/voting"},{"type":"link","label":"Tutorial 7: Escrow","href":"/tutorials/escrow","docId":"tutorials/escrow"}],"href":"/category/tutorials-1"},{"type":"link","label":"FAQ","href":"/faq","docId":"faq"},{"type":"category","label":"Reference","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"classes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ActionError","href":"/reference/classes/ActionError","docId":"reference/classes/ActionError"},{"type":"link","label":"BsvApi","href":"/reference/classes/BsvApi","docId":"reference/classes/BsvApi"},{"type":"link","label":"Constants","href":"/reference/classes/Constants","docId":"reference/classes/Constants"},{"type":"link","label":"ContractApi","href":"/reference/classes/ContractApi","docId":"reference/classes/ContractApi"},{"type":"link","label":"DefaultProvider","href":"/reference/classes/DefaultProvider","docId":"reference/classes/DefaultProvider"},{"type":"link","label":"DotwalletSigner","href":"/reference/classes/DotwalletSigner","docId":"reference/classes/DotwalletSigner"},{"type":"link","label":"DummyProvider","href":"/reference/classes/DummyProvider","docId":"reference/classes/DummyProvider"},{"type":"link","label":"FunctionCall","href":"/reference/classes/FunctionCall","docId":"reference/classes/FunctionCall"},{"type":"link","label":"GorillapoolProvider","href":"/reference/classes/GorillapoolProvider","docId":"reference/classes/GorillapoolProvider"},{"type":"link","label":"HashedMap","href":"/reference/classes/HashedMap","docId":"reference/classes/HashedMap"},{"type":"link","label":"HashedSet","href":"/reference/classes/HashedSet","docId":"reference/classes/HashedSet"},{"type":"link","label":"OpCode","href":"/reference/classes/OpCode","docId":"reference/classes/OpCode"},{"type":"link","label":"Provider","href":"/reference/classes/Provider","docId":"reference/classes/Provider"},{"type":"link","label":"ScryptProvider","href":"/reference/classes/ScryptProvider","docId":"reference/classes/ScryptProvider"},{"type":"link","label":"SensibleProvider","href":"/reference/classes/SensibleProvider","docId":"reference/classes/SensibleProvider"},{"type":"link","label":"SensiletSigner","href":"/reference/classes/SensiletSigner","docId":"reference/classes/SensiletSigner"},{"type":"link","label":"SigHash","href":"/reference/classes/SigHash","docId":"reference/classes/SigHash"},{"type":"link","label":"Signer","href":"/reference/classes/Signer","docId":"reference/classes/Signer"},{"type":"link","label":"SmartContract","href":"/reference/classes/SmartContract","docId":"reference/classes/SmartContract"},{"type":"link","label":"SmartContractLib","href":"/reference/classes/SmartContractLib","docId":"reference/classes/SmartContractLib"},{"type":"link","label":"TAALSigner","href":"/reference/classes/TAALSigner","docId":"reference/classes/TAALSigner"},{"type":"link","label":"TaalProvider","href":"/reference/classes/TaalProvider","docId":"reference/classes/TaalProvider"},{"type":"link","label":"TestWallet","href":"/reference/classes/TestWallet","docId":"reference/classes/TestWallet"},{"type":"link","label":"Utils","href":"/reference/classes/Utils","docId":"reference/classes/Utils"},{"type":"link","label":"VarIntReader","href":"/reference/classes/VarIntReader","docId":"reference/classes/VarIntReader"},{"type":"link","label":"VarIntWriter","href":"/reference/classes/VarIntWriter","docId":"reference/classes/VarIntWriter"},{"type":"link","label":"WhatsonchainProvider","href":"/reference/classes/WhatsonchainProvider","docId":"reference/classes/WhatsonchainProvider"},{"type":"link","label":"bsv.Address","href":"/reference/classes/bsv.Address","docId":"reference/classes/bsv.Address"},{"type":"link","label":"bsv.Block","href":"/reference/classes/bsv.Block","docId":"reference/classes/bsv.Block"},{"type":"link","label":"bsv.BlockHeader","href":"/reference/classes/bsv.BlockHeader","docId":"reference/classes/bsv.BlockHeader"},{"type":"link","label":"bsv.ECIES","href":"/reference/classes/bsv.ECIES","docId":"reference/classes/bsv.ECIES"},{"type":"link","label":"bsv.HDPrivateKey","href":"/reference/classes/bsv.HDPrivateKey","docId":"reference/classes/bsv.HDPrivateKey"},{"type":"link","label":"bsv.HDPublicKey","href":"/reference/classes/bsv.HDPublicKey","docId":"reference/classes/bsv.HDPublicKey"},{"type":"link","label":"bsv.MerkleBlock","href":"/reference/classes/bsv.MerkleBlock","docId":"reference/classes/bsv.MerkleBlock"},{"type":"link","label":"bsv.Message","href":"/reference/classes/bsv.Message","docId":"reference/classes/bsv.Message"},{"type":"link","label":"bsv.Mnemonic","href":"/reference/classes/bsv.Mnemonic","docId":"reference/classes/bsv.Mnemonic"},{"type":"link","label":"bsv.Opcode","href":"/reference/classes/bsv.Opcode","docId":"reference/classes/bsv.Opcode"},{"type":"link","label":"bsv.PrivateKey","href":"/reference/classes/bsv.PrivateKey","docId":"reference/classes/bsv.PrivateKey"},{"type":"link","label":"bsv.PublicKey","href":"/reference/classes/bsv.PublicKey","docId":"reference/classes/bsv.PublicKey"},{"type":"link","label":"bsv.Script-1","href":"/reference/classes/bsv.Script-1","docId":"reference/classes/bsv.Script-1"},{"type":"link","label":"bsv.Script.Interpreter-1","href":"/reference/classes/bsv.Script.Interpreter-1","docId":"reference/classes/bsv.Script.Interpreter-1"},{"type":"link","label":"bsv.Transaction-1","href":"/reference/classes/bsv.Transaction-1","docId":"reference/classes/bsv.Transaction-1"},{"type":"link","label":"bsv.Transaction.Input-1","href":"/reference/classes/bsv.Transaction.Input-1","docId":"reference/classes/bsv.Transaction.Input-1"},{"type":"link","label":"bsv.Transaction.Input.PublicKeyHash","href":"/reference/classes/bsv.Transaction.Input.PublicKeyHash","docId":"reference/classes/bsv.Transaction.Input.PublicKeyHash"},{"type":"link","label":"bsv.Transaction.Output","href":"/reference/classes/bsv.Transaction.Output","docId":"reference/classes/bsv.Transaction.Output"},{"type":"link","label":"bsv.Transaction.Signature","href":"/reference/classes/bsv.Transaction.Signature","docId":"reference/classes/bsv.Transaction.Signature"},{"type":"link","label":"bsv.Transaction.UnspentOutput","href":"/reference/classes/bsv.Transaction.UnspentOutput","docId":"reference/classes/bsv.Transaction.UnspentOutput"},{"type":"link","label":"bsv.Unit","href":"/reference/classes/bsv.Unit","docId":"reference/classes/bsv.Unit"},{"type":"link","label":"bsv.crypto.BN","href":"/reference/classes/bsv.crypto.BN","docId":"reference/classes/bsv.crypto.BN"},{"type":"link","label":"bsv.crypto.Point","href":"/reference/classes/bsv.crypto.Point","docId":"reference/classes/bsv.crypto.Point"},{"type":"link","label":"bsv.crypto.Signature","href":"/reference/classes/bsv.crypto.Signature","docId":"reference/classes/bsv.crypto.Signature"},{"type":"link","label":"bsv.encoding.Base58","href":"/reference/classes/bsv.encoding.Base58","docId":"reference/classes/bsv.encoding.Base58"},{"type":"link","label":"bsv.encoding.Base58Check","href":"/reference/classes/bsv.encoding.Base58Check","docId":"reference/classes/bsv.encoding.Base58Check"},{"type":"link","label":"bsv.encoding.BufferReader","href":"/reference/classes/bsv.encoding.BufferReader","docId":"reference/classes/bsv.encoding.BufferReader"},{"type":"link","label":"bsv.encoding.BufferWriter","href":"/reference/classes/bsv.encoding.BufferWriter","docId":"reference/classes/bsv.encoding.BufferWriter"},{"type":"link","label":"bsv.encoding.Varint","href":"/reference/classes/bsv.encoding.Varint","docId":"reference/classes/bsv.encoding.Varint"}]},{"type":"category","label":"enums","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ProviderEvent","href":"/reference/enums/ProviderEvent","docId":"reference/enums/ProviderEvent"},{"type":"link","label":"SignatureHashType","href":"/reference/enums/SignatureHashType","docId":"reference/enums/SignatureHashType"}]},{"type":"category","label":"interfaces","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Artifact","href":"/reference/interfaces/Artifact","docId":"reference/interfaces/Artifact"},{"type":"link","label":"ContractCalledEvent","href":"/reference/interfaces/ContractCalledEvent","docId":"reference/interfaces/ContractCalledEvent"},{"type":"link","label":"ContractTransaction","href":"/reference/interfaces/ContractTransaction","docId":"reference/interfaces/ContractTransaction"},{"type":"link","label":"DefaultProviderOption","href":"/reference/interfaces/DefaultProviderOption","docId":"reference/interfaces/DefaultProviderOption"},{"type":"link","label":"LogConfig","href":"/reference/interfaces/LogConfig","docId":"reference/interfaces/LogConfig"},{"type":"link","label":"MethodCallOptions","href":"/reference/interfaces/MethodCallOptions","docId":"reference/interfaces/MethodCallOptions"},{"type":"link","label":"MethodCallTxBuilder","href":"/reference/interfaces/MethodCallTxBuilder","docId":"reference/interfaces/MethodCallTxBuilder"},{"type":"link","label":"MultiContractCallOptions","href":"/reference/interfaces/MultiContractCallOptions","docId":"reference/interfaces/MultiContractCallOptions"},{"type":"link","label":"MultiContractTransaction","href":"/reference/interfaces/MultiContractTransaction","docId":"reference/interfaces/MultiContractTransaction"},{"type":"link","label":"Outpoint","href":"/reference/interfaces/Outpoint","docId":"reference/interfaces/Outpoint"},{"type":"link","label":"RequestConfig","href":"/reference/interfaces/RequestConfig","docId":"reference/interfaces/RequestConfig"},{"type":"link","label":"ScriptContext","href":"/reference/interfaces/ScriptContext","docId":"reference/interfaces/ScriptContext"},{"type":"link","label":"ScryptConfig","href":"/reference/interfaces/ScryptConfig","docId":"reference/interfaces/ScryptConfig"},{"type":"link","label":"SignTransactionOptions","href":"/reference/interfaces/SignTransactionOptions","docId":"reference/interfaces/SignTransactionOptions"},{"type":"link","label":"SignatureRequest","href":"/reference/interfaces/SignatureRequest","docId":"reference/interfaces/SignatureRequest"},{"type":"link","label":"SignatureResponse","href":"/reference/interfaces/SignatureResponse","docId":"reference/interfaces/SignatureResponse"},{"type":"link","label":"StatefulNext","href":"/reference/interfaces/StatefulNext","docId":"reference/interfaces/StatefulNext"},{"type":"link","label":"SubScription","href":"/reference/interfaces/SubScription","docId":"reference/interfaces/SubScription"},{"type":"link","label":"SubscribeOptions","href":"/reference/interfaces/SubscribeOptions","docId":"reference/interfaces/SubscribeOptions"},{"type":"link","label":"TransactionResponse","href":"/reference/interfaces/TransactionResponse","docId":"reference/interfaces/TransactionResponse"},{"type":"link","label":"TxContext","href":"/reference/interfaces/TxContext","docId":"reference/interfaces/TxContext"},{"type":"link","label":"TxInputRef","href":"/reference/interfaces/TxInputRef","docId":"reference/interfaces/TxInputRef"},{"type":"link","label":"TxOutputRef","href":"/reference/interfaces/TxOutputRef","docId":"reference/interfaces/TxOutputRef"},{"type":"link","label":"UtxoQueryOptions","href":"/reference/interfaces/UtxoQueryOptions","docId":"reference/interfaces/UtxoQueryOptions"},{"type":"link","label":"VerifyResult","href":"/reference/interfaces/VerifyResult","docId":"reference/interfaces/VerifyResult"},{"type":"link","label":"bsv.Networks.Network","href":"/reference/interfaces/bsv.Networks.Network","docId":"reference/interfaces/bsv.Networks.Network"},{"type":"link","label":"bsv.Script.IOpChunk","href":"/reference/interfaces/bsv.Script.IOpChunk","docId":"reference/interfaces/bsv.Script.IOpChunk"},{"type":"link","label":"bsv.Script.Interpreter.InterpretState","href":"/reference/interfaces/bsv.Script.Interpreter.InterpretState","docId":"reference/interfaces/bsv.Script.Interpreter.InterpretState"},{"type":"link","label":"bsv.Transaction.IUnspentOutput","href":"/reference/interfaces/bsv.Transaction.IUnspentOutput","docId":"reference/interfaces/bsv.Transaction.IUnspentOutput"},{"type":"link","label":"bsv.Util","href":"/reference/interfaces/bsv.Util","docId":"reference/interfaces/bsv.Util"},{"type":"link","label":"bsv.crypto.IOpts","href":"/reference/interfaces/bsv.crypto.IOpts","docId":"reference/interfaces/bsv.crypto.IOpts"}]},{"type":"category","label":"modules","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"bsv.Networks","href":"/reference/modules/bsv.Networks","docId":"reference/modules/bsv.Networks"},{"type":"link","label":"bsv.Script.Interpreter","href":"/reference/modules/bsv.Script.Interpreter","docId":"reference/modules/bsv.Script.Interpreter"},{"type":"link","label":"bsv.Script","href":"/reference/modules/bsv.Script","docId":"reference/modules/bsv.Script"},{"type":"link","label":"bsv.Transaction.Input","href":"/reference/modules/bsv.Transaction.Input","docId":"reference/modules/bsv.Transaction.Input"},{"type":"link","label":"bsv.Transaction.Sighash","href":"/reference/modules/bsv.Transaction.Sighash","docId":"reference/modules/bsv.Transaction.Sighash"},{"type":"link","label":"bsv.Transaction","href":"/reference/modules/bsv.Transaction","docId":"reference/modules/bsv.Transaction"},{"type":"link","label":"bsv.crypto.ECDSA","href":"/reference/modules/bsv.crypto.ECDSA","docId":"reference/modules/bsv.crypto.ECDSA"},{"type":"link","label":"bsv.crypto.Hash","href":"/reference/modules/bsv.crypto.Hash","docId":"reference/modules/bsv.crypto.Hash"},{"type":"link","label":"bsv.crypto.Random","href":"/reference/modules/bsv.crypto.Random","docId":"reference/modules/bsv.crypto.Random"},{"type":"link","label":"bsv.crypto","href":"/reference/modules/bsv.crypto","docId":"reference/modules/bsv.crypto"},{"type":"link","label":"bsv.encoding","href":"/reference/modules/bsv.encoding","docId":"reference/modules/bsv.encoding"},{"type":"link","label":"bsv","href":"/reference/modules/bsv","docId":"reference/modules/bsv"}]}],"href":"/reference/"}]},"docs":{"advanced/codeseparator":{"id":"advanced/codeseparator","title":"Use Code Separators","description":"How Code Separators Work","sidebar":"tutorialSidebar"},"advanced/how-to-add-a-provider":{"id":"advanced/how-to-add-a-provider","title":"How to Add a Provider","description":"In the contract testing section, we learned about the Provider class in sCrypt. This class serves as an abstraction of a Bitcoin node, allowing your application to communicate with the Bitcoin network.","sidebar":"tutorialSidebar"},"advanced/how-to-add-a-signer":{"id":"advanced/how-to-add-a-signer","title":"How to Add a Signer","description":"As described in this section, a signer is an abstraction of private keys, which can be used to sign messages and transactions. A simple signer would be a single private key, while a complex signer is a wallet.","sidebar":"tutorialSidebar"},"advanced/how-to-build-an-oracle-service":{"id":"advanced/how-to-build-an-oracle-service","title":"How to Build an Oracle Service","description":"As described in this tutorial, a blockchain oracle is a third-party service or agent that provides external data to a blockchain network. It is a bridge between the blockchain and the external world, enabling smart contracts to access, verify, and incorporate data from outside the blockchain. Specifically, the oracle service provides external data along with a Rabin signature of the data, and the smart contract uses this data and verifies the signature before using it.","sidebar":"tutorialSidebar"},"advanced/how-to-call-multiple-contracts":{"id":"advanced/how-to-call-multiple-contracts","title":"Call Multiple Contracts in a Single Tx","description":"Up to now, we have only shown how to call one smart contract in a transaction. That is, only one input of the tx spends a smart contract UTXO, and the other inputs, if any, spend Pay-to-Public-Key-Hash (P2PKH) UTXOs, which are generally NOT regarded as smart contracts.","sidebar":"tutorialSidebar"},"advanced/how-to-debug-scriptcontext":{"id":"advanced/how-to-debug-scriptcontext","title":"How to Debug ScriptContext Failure","description":"ScriptContext enables the logic of the contract to be executed correctly according to the agreement, and the state of the contract to be propagated correctly.","sidebar":"tutorialSidebar"},"advanced/how-to-integrate-scrypt-service":{"id":"advanced/how-to-integrate-scrypt-service","title":"How to Integrate sCrypt Service","description":"Before interacting with a sCrypt contract, we must create a contract instance representing the latest state of the contract on chain. Such an instance can be created by calling the fromTx method. However, this means your application needs to track and record all contract-related transactions, especially for a stateful contract.","sidebar":"tutorialSidebar"},"advanced/how-to-replay-instance":{"id":"advanced/how-to-replay-instance","title":"How to Replay a Contract Instance to the Latest State","description":"Using sCrypt Service and sCrypt client, we can effortlessly create a contract instance reflecting the latest state as follows:","sidebar":"tutorialSidebar"},"advanced/inline-asm":{"id":"advanced/inline-asm","title":"Use Script inside sCrypt","description":"Script is a low-level language and acts as assembly for the Bitcoin Virtual Machine. Usually, developers do not have to deal with it directly and can use high-level languages like sCrypt. However, there are cases where using script is desirable. For example, customized script is optimized and thus smaller and more efficient than Script generated by sCrypt. Or script is generated using external tools like Baguette and needs to be integrated into sCrypt.","sidebar":"tutorialSidebar"},"advanced/sighash-type":{"id":"advanced/sighash-type","title":"Sighash Types","description":"A signature hash (sighash) flag is used to indicate which part of the transaction is signed by the ECDSA signature. There are mainly two ways to use it in the context of Bitcoin smart contracts.","sidebar":"tutorialSidebar"},"advanced/timeLock":{"id":"advanced/timeLock","title":"Time Lock","description":"Overview","sidebar":"tutorialSidebar"},"bitcoin-basics/bitcoin-basics":{"id":"bitcoin-basics/bitcoin-basics","title":"Bitcoin Basics","description":"If you are new to Bitcoin development, we recommend exploring the resources listed in this section. While not an absolute prerequisite, going over these guides will provide a clearer understanding of key concepts and make it easier to begin developing sCrypt smart contracts.","sidebar":"tutorialSidebar"},"bitcoin-basics/bsv":{"id":"bitcoin-basics/bsv","title":"The BSV submodule","description":"sCrypt exports a submodule named bsv which is an interface that helps you manage low-level things for the Bitcoin blockchain, such as creating key pairs, building, signing and serializing Bitcoin transactions and more.","sidebar":"tutorialSidebar"},"ethereum-devs":{"id":"ethereum-devs","title":"sCrypt for Ethereum Developers","description":"Bitcoin and Ethereum are both layer-1 blockchains with fully programmable smart contracts.","sidebar":"tutorialSidebar"},"faq":{"id":"faq","title":"FAQ","description":"Smart contract call failure","sidebar":"tutorialSidebar"},"how-to-debug-a-contract":{"id":"how-to-debug-a-contract","title":"How to Debug a Contract","description":"Debugging an sCrypt contract is as easy as debugging TypeScript, since it is just TypeScript.","sidebar":"tutorialSidebar"},"how-to-deploy-and-call-a-contract/call-deployed":{"id":"how-to-deploy-and-call-a-contract/call-deployed","title":"Interact with a Deployed Contract","description":"Overview","sidebar":"tutorialSidebar"},"how-to-deploy-and-call-a-contract/deploy-cli":{"id":"how-to-deploy-and-call-a-contract/deploy-cli","title":"Deploy Using CLI","description":"The deploy command allows you to deploy an instance of a smart contract to the blockchain. You can simply run the following command in the root of an sCrypt project:","sidebar":"tutorialSidebar"},"how-to-deploy-and-call-a-contract/faucet":{"id":"how-to-deploy-and-call-a-contract/faucet","title":"Faucet","description":"It is highly recommended to test your contract on the testnet after passing local tests. It ensures that a contract can be successfully deployed and invoked as expected on the blockchain.","sidebar":"tutorialSidebar"},"how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx":{"id":"how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx","title":"How to Customize a Contract Tx","description":"Deployment Tx","sidebar":"tutorialSidebar"},"how-to-deploy-and-call-a-contract/how-to-deploy-and-call-a-contract":{"id":"how-to-deploy-and-call-a-contract/how-to-deploy-and-call-a-contract","title":"How to Deploy & Call a Contract","description":"Core Concepts","sidebar":"tutorialSidebar"},"how-to-integrate-a-frontend/how-to-integrate-a-frontend":{"id":"how-to-integrate-a-frontend/how-to-integrate-a-frontend","title":"How to Integrate With a Frontend","description":"This section will show how to integrate your smart contract to a frontend, so users can interact with it.","sidebar":"tutorialSidebar"},"how-to-integrate-a-frontend/how-to-integrate-dotwallet":{"id":"how-to-integrate-a-frontend/how-to-integrate-dotwallet","title":"How to integrate DotWallet","description":"DotWallet is a lightweight wallet designed to help users easily and securely manage their digital assets. We will show how to integrate it with sCrypt-powered apps.","sidebar":"tutorialSidebar"},"how-to-publish-a-contract":{"id":"how-to-publish-a-contract","title":"How to Publish a Contract to NPM","description":"What is a Smart Contract Library?","sidebar":"tutorialSidebar"},"how-to-test-a-contract":{"id":"how-to-test-a-contract","title":"How to Test a Contract","description":"Before using a smart contract in production, one should always test it carefully, especially because any bug in it may cause real economic losses.","sidebar":"tutorialSidebar"},"how-to-verify-a-contract":{"id":"how-to-verify-a-contract","title":"How to Verify a Contract","description":"You will learn how to verify smart contracts on WhatsOnChain (WoC), a blockchain explorer.","sidebar":"tutorialSidebar"},"how-to-write-a-contract/built-ins":{"id":"how-to-write-a-contract/built-ins","title":"Built-ins","description":"Global Functions","sidebar":"tutorialSidebar"},"how-to-write-a-contract/how-to-write-a-contract":{"id":"how-to-write-a-contract/how-to-write-a-contract","title":"How to Write a Contract","description":"A smart contract is a class that extends the SmartContract base class. A simple example is shown below.","sidebar":"tutorialSidebar"},"how-to-write-a-contract/scriptcontext":{"id":"how-to-write-a-contract/scriptcontext","title":"ScriptContext","description":"In the UTXO model, the context of validating a smart contract is the UTXO containing it and the transaction spending it, including its inputs and outputs. In the following example, when the second of input of transaction tx1 (2 inputs and 2 outputs) is spending the second output of tx0 (3 inputs and 3 outputs), the context for the smart contract in the latter output is roughly the UTXO and tx1 circled in red.","sidebar":"tutorialSidebar"},"how-to-write-a-contract/stateful-contract":{"id":"how-to-write-a-contract/stateful-contract","title":"Stateful Contracts","description":"Overview","sidebar":"tutorialSidebar"},"installation":{"id":"installation","title":"Installation","description":"Prerequisite","sidebar":"tutorialSidebar"},"overview":{"id":"overview","title":"Overview","description":"sCrypt is an embedded Domain Specific Language (eDSL) based on TypeScript for writing smart contracts on Bitcoin SV. Embedded means that it is a language inside another language. sCrypt is strictly a subset of TypeScript, so all sCrypt code is valid TypeScript, but not vice versa.","sidebar":"tutorialSidebar"},"reference/classes/ActionError":{"id":"reference/classes/ActionError","title":"ActionError","description":"scrypt-ts / ActionError","sidebar":"tutorialSidebar"},"reference/classes/bsv.Address":{"id":"reference/classes/bsv.Address","title":"bsv.Address","description":"scrypt-ts / bsv / Address","sidebar":"tutorialSidebar"},"reference/classes/bsv.Block":{"id":"reference/classes/bsv.Block","title":"bsv.Block","description":"scrypt-ts / bsv / Block","sidebar":"tutorialSidebar"},"reference/classes/bsv.BlockHeader":{"id":"reference/classes/bsv.BlockHeader","title":"bsv.BlockHeader","description":"scrypt-ts / bsv / BlockHeader","sidebar":"tutorialSidebar"},"reference/classes/bsv.crypto.BN":{"id":"reference/classes/bsv.crypto.BN","title":"bsv.crypto.BN","description":"scrypt-ts / bsv / crypto / BN","sidebar":"tutorialSidebar"},"reference/classes/bsv.crypto.Point":{"id":"reference/classes/bsv.crypto.Point","title":"bsv.crypto.Point","description":"scrypt-ts / bsv / crypto / Point","sidebar":"tutorialSidebar"},"reference/classes/bsv.crypto.Signature":{"id":"reference/classes/bsv.crypto.Signature","title":"bsv.crypto.Signature","description":"scrypt-ts / bsv / crypto / Signature","sidebar":"tutorialSidebar"},"reference/classes/bsv.ECIES":{"id":"reference/classes/bsv.ECIES","title":"bsv.ECIES","description":"scrypt-ts / bsv / ECIES","sidebar":"tutorialSidebar"},"reference/classes/bsv.encoding.Base58":{"id":"reference/classes/bsv.encoding.Base58","title":"bsv.encoding.Base58","description":"scrypt-ts / bsv / encoding / Base58","sidebar":"tutorialSidebar"},"reference/classes/bsv.encoding.Base58Check":{"id":"reference/classes/bsv.encoding.Base58Check","title":"bsv.encoding.Base58Check","description":"scrypt-ts / bsv / encoding / Base58Check","sidebar":"tutorialSidebar"},"reference/classes/bsv.encoding.BufferReader":{"id":"reference/classes/bsv.encoding.BufferReader","title":"bsv.encoding.BufferReader","description":"scrypt-ts / bsv / encoding / BufferReader","sidebar":"tutorialSidebar"},"reference/classes/bsv.encoding.BufferWriter":{"id":"reference/classes/bsv.encoding.BufferWriter","title":"bsv.encoding.BufferWriter","description":"scrypt-ts / bsv / encoding / BufferWriter","sidebar":"tutorialSidebar"},"reference/classes/bsv.encoding.Varint":{"id":"reference/classes/bsv.encoding.Varint","title":"bsv.encoding.Varint","description":"scrypt-ts / bsv / encoding / Varint","sidebar":"tutorialSidebar"},"reference/classes/bsv.HDPrivateKey":{"id":"reference/classes/bsv.HDPrivateKey","title":"bsv.HDPrivateKey","description":"scrypt-ts / bsv / HDPrivateKey","sidebar":"tutorialSidebar"},"reference/classes/bsv.HDPublicKey":{"id":"reference/classes/bsv.HDPublicKey","title":"bsv.HDPublicKey","description":"scrypt-ts / bsv / HDPublicKey","sidebar":"tutorialSidebar"},"reference/classes/bsv.MerkleBlock":{"id":"reference/classes/bsv.MerkleBlock","title":"bsv.MerkleBlock","description":"scrypt-ts / bsv / MerkleBlock","sidebar":"tutorialSidebar"},"reference/classes/bsv.Message":{"id":"reference/classes/bsv.Message","title":"bsv.Message","description":"scrypt-ts / bsv / Message","sidebar":"tutorialSidebar"},"reference/classes/bsv.Mnemonic":{"id":"reference/classes/bsv.Mnemonic","title":"bsv.Mnemonic","description":"scrypt-ts / bsv / Mnemonic","sidebar":"tutorialSidebar"},"reference/classes/bsv.Opcode":{"id":"reference/classes/bsv.Opcode","title":"bsv.Opcode","description":"scrypt-ts / bsv / Opcode","sidebar":"tutorialSidebar"},"reference/classes/bsv.PrivateKey":{"id":"reference/classes/bsv.PrivateKey","title":"bsv.PrivateKey","description":"scrypt-ts / bsv / PrivateKey","sidebar":"tutorialSidebar"},"reference/classes/bsv.PublicKey":{"id":"reference/classes/bsv.PublicKey","title":"bsv.PublicKey","description":"scrypt-ts / bsv / PublicKey","sidebar":"tutorialSidebar"},"reference/classes/bsv.Script-1":{"id":"reference/classes/bsv.Script-1","title":"bsv.Script-1","description":"scrypt-ts / bsv / Script","sidebar":"tutorialSidebar"},"reference/classes/bsv.Script.Interpreter-1":{"id":"reference/classes/bsv.Script.Interpreter-1","title":"bsv.Script.Interpreter-1","description":"scrypt-ts / bsv / Script / Interpreter","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction-1":{"id":"reference/classes/bsv.Transaction-1","title":"bsv.Transaction-1","description":"scrypt-ts / bsv / Transaction","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction.Input-1":{"id":"reference/classes/bsv.Transaction.Input-1","title":"bsv.Transaction.Input-1","description":"scrypt-ts / bsv / Transaction / Input","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction.Input.PublicKeyHash":{"id":"reference/classes/bsv.Transaction.Input.PublicKeyHash","title":"bsv.Transaction.Input.PublicKeyHash","description":"scrypt-ts / bsv / Transaction / Input / PublicKeyHash","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction.Output":{"id":"reference/classes/bsv.Transaction.Output","title":"bsv.Transaction.Output","description":"scrypt-ts / bsv / Transaction / Output","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction.Signature":{"id":"reference/classes/bsv.Transaction.Signature","title":"bsv.Transaction.Signature","description":"scrypt-ts / bsv / Transaction / Signature","sidebar":"tutorialSidebar"},"reference/classes/bsv.Transaction.UnspentOutput":{"id":"reference/classes/bsv.Transaction.UnspentOutput","title":"bsv.Transaction.UnspentOutput","description":"scrypt-ts / bsv / Transaction / UnspentOutput","sidebar":"tutorialSidebar"},"reference/classes/bsv.Unit":{"id":"reference/classes/bsv.Unit","title":"bsv.Unit","description":"scrypt-ts / bsv / Unit","sidebar":"tutorialSidebar"},"reference/classes/BsvApi":{"id":"reference/classes/BsvApi","title":"BsvApi","description":"scrypt-ts / BsvApi","sidebar":"tutorialSidebar"},"reference/classes/Constants":{"id":"reference/classes/Constants","title":"Constants","description":"scrypt-ts / Constants","sidebar":"tutorialSidebar"},"reference/classes/ContractApi":{"id":"reference/classes/ContractApi","title":"ContractApi","description":"scrypt-ts / ContractApi","sidebar":"tutorialSidebar"},"reference/classes/DefaultProvider":{"id":"reference/classes/DefaultProvider","title":"DefaultProvider","description":"scrypt-ts / DefaultProvider","sidebar":"tutorialSidebar"},"reference/classes/DotwalletSigner":{"id":"reference/classes/DotwalletSigner","title":"DotwalletSigner","description":"scrypt-ts / DotwalletSigner","sidebar":"tutorialSidebar"},"reference/classes/DummyProvider":{"id":"reference/classes/DummyProvider","title":"DummyProvider","description":"scrypt-ts / DummyProvider","sidebar":"tutorialSidebar"},"reference/classes/FunctionCall":{"id":"reference/classes/FunctionCall","title":"FunctionCall","description":"scrypt-ts / FunctionCall","sidebar":"tutorialSidebar"},"reference/classes/GorillapoolProvider":{"id":"reference/classes/GorillapoolProvider","title":"GorillapoolProvider","description":"scrypt-ts / GorillapoolProvider","sidebar":"tutorialSidebar"},"reference/classes/HashedMap":{"id":"reference/classes/HashedMap","title":"HashedMap","description":"scrypt-ts / HashedMap","sidebar":"tutorialSidebar"},"reference/classes/HashedSet":{"id":"reference/classes/HashedSet","title":"HashedSet","description":"scrypt-ts / HashedSet","sidebar":"tutorialSidebar"},"reference/classes/OpCode":{"id":"reference/classes/OpCode","title":"OpCode","description":"scrypt-ts / OpCode","sidebar":"tutorialSidebar"},"reference/classes/Provider":{"id":"reference/classes/Provider","title":"Provider","description":"scrypt-ts / Provider","sidebar":"tutorialSidebar"},"reference/classes/ScryptProvider":{"id":"reference/classes/ScryptProvider","title":"ScryptProvider","description":"scrypt-ts / ScryptProvider","sidebar":"tutorialSidebar"},"reference/classes/SensibleProvider":{"id":"reference/classes/SensibleProvider","title":"SensibleProvider","description":"scrypt-ts / SensibleProvider","sidebar":"tutorialSidebar"},"reference/classes/SensiletSigner":{"id":"reference/classes/SensiletSigner","title":"SensiletSigner","description":"scrypt-ts / SensiletSigner","sidebar":"tutorialSidebar"},"reference/classes/SigHash":{"id":"reference/classes/SigHash","title":"SigHash","description":"scrypt-ts / SigHash","sidebar":"tutorialSidebar"},"reference/classes/Signer":{"id":"reference/classes/Signer","title":"Signer","description":"scrypt-ts / Signer","sidebar":"tutorialSidebar"},"reference/classes/SmartContract":{"id":"reference/classes/SmartContract","title":"SmartContract","description":"scrypt-ts / SmartContract","sidebar":"tutorialSidebar"},"reference/classes/SmartContractLib":{"id":"reference/classes/SmartContractLib","title":"SmartContractLib","description":"scrypt-ts / SmartContractLib","sidebar":"tutorialSidebar"},"reference/classes/TaalProvider":{"id":"reference/classes/TaalProvider","title":"TaalProvider","description":"scrypt-ts / TaalProvider","sidebar":"tutorialSidebar"},"reference/classes/TAALSigner":{"id":"reference/classes/TAALSigner","title":"TAALSigner","description":"scrypt-ts / TAALSigner","sidebar":"tutorialSidebar"},"reference/classes/TestWallet":{"id":"reference/classes/TestWallet","title":"TestWallet","description":"scrypt-ts / TestWallet","sidebar":"tutorialSidebar"},"reference/classes/Utils":{"id":"reference/classes/Utils","title":"Utils","description":"scrypt-ts / Utils","sidebar":"tutorialSidebar"},"reference/classes/VarIntReader":{"id":"reference/classes/VarIntReader","title":"VarIntReader","description":"scrypt-ts / VarIntReader","sidebar":"tutorialSidebar"},"reference/classes/VarIntWriter":{"id":"reference/classes/VarIntWriter","title":"VarIntWriter","description":"scrypt-ts / VarIntWriter","sidebar":"tutorialSidebar"},"reference/classes/WhatsonchainProvider":{"id":"reference/classes/WhatsonchainProvider","title":"WhatsonchainProvider","description":"scrypt-ts / WhatsonchainProvider","sidebar":"tutorialSidebar"},"reference/enums/ProviderEvent":{"id":"reference/enums/ProviderEvent","title":"ProviderEvent","description":"scrypt-ts / ProviderEvent","sidebar":"tutorialSidebar"},"reference/enums/SignatureHashType":{"id":"reference/enums/SignatureHashType","title":"SignatureHashType","description":"scrypt-ts / SignatureHashType","sidebar":"tutorialSidebar"},"reference/interfaces/Artifact":{"id":"reference/interfaces/Artifact","title":"Artifact","description":"scrypt-ts / Artifact","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.crypto.IOpts":{"id":"reference/interfaces/bsv.crypto.IOpts","title":"bsv.crypto.IOpts","description":"scrypt-ts / bsv / crypto / IOpts","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.Networks.Network":{"id":"reference/interfaces/bsv.Networks.Network","title":"bsv.Networks.Network","description":"scrypt-ts / bsv / Networks / Network","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.Script.Interpreter.InterpretState":{"id":"reference/interfaces/bsv.Script.Interpreter.InterpretState","title":"bsv.Script.Interpreter.InterpretState","description":"scrypt-ts / bsv / Script / Interpreter / InterpretState","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.Script.IOpChunk":{"id":"reference/interfaces/bsv.Script.IOpChunk","title":"bsv.Script.IOpChunk","description":"scrypt-ts / bsv / Script / IOpChunk","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.Transaction.IUnspentOutput":{"id":"reference/interfaces/bsv.Transaction.IUnspentOutput","title":"bsv.Transaction.IUnspentOutput","description":"scrypt-ts / bsv / Transaction / IUnspentOutput","sidebar":"tutorialSidebar"},"reference/interfaces/bsv.Util":{"id":"reference/interfaces/bsv.Util","title":"bsv.Util","description":"scrypt-ts / bsv / Util","sidebar":"tutorialSidebar"},"reference/interfaces/ContractCalledEvent":{"id":"reference/interfaces/ContractCalledEvent","title":"ContractCalledEvent","description":"scrypt-ts / ContractCalledEvent","sidebar":"tutorialSidebar"},"reference/interfaces/ContractTransaction":{"id":"reference/interfaces/ContractTransaction","title":"ContractTransaction","description":"scrypt-ts / ContractTransaction","sidebar":"tutorialSidebar"},"reference/interfaces/DefaultProviderOption":{"id":"reference/interfaces/DefaultProviderOption","title":"DefaultProviderOption","description":"scrypt-ts / DefaultProviderOption","sidebar":"tutorialSidebar"},"reference/interfaces/LogConfig":{"id":"reference/interfaces/LogConfig","title":"LogConfig","description":"scrypt-ts / LogConfig","sidebar":"tutorialSidebar"},"reference/interfaces/MethodCallOptions":{"id":"reference/interfaces/MethodCallOptions","title":"MethodCallOptions","description":"scrypt-ts / MethodCallOptions","sidebar":"tutorialSidebar"},"reference/interfaces/MethodCallTxBuilder":{"id":"reference/interfaces/MethodCallTxBuilder","title":"MethodCallTxBuilder","description":"scrypt-ts / MethodCallTxBuilder","sidebar":"tutorialSidebar"},"reference/interfaces/MultiContractCallOptions":{"id":"reference/interfaces/MultiContractCallOptions","title":"MultiContractCallOptions","description":"scrypt-ts / MultiContractCallOptions","sidebar":"tutorialSidebar"},"reference/interfaces/MultiContractTransaction":{"id":"reference/interfaces/MultiContractTransaction","title":"MultiContractTransaction","description":"scrypt-ts / MultiContractTransaction","sidebar":"tutorialSidebar"},"reference/interfaces/Outpoint":{"id":"reference/interfaces/Outpoint","title":"Outpoint","description":"scrypt-ts / Outpoint","sidebar":"tutorialSidebar"},"reference/interfaces/RequestConfig":{"id":"reference/interfaces/RequestConfig","title":"RequestConfig","description":"scrypt-ts / RequestConfig","sidebar":"tutorialSidebar"},"reference/interfaces/ScriptContext":{"id":"reference/interfaces/ScriptContext","title":"ScriptContext","description":"scrypt-ts / ScriptContext","sidebar":"tutorialSidebar"},"reference/interfaces/ScryptConfig":{"id":"reference/interfaces/ScryptConfig","title":"ScryptConfig","description":"scrypt-ts / ScryptConfig","sidebar":"tutorialSidebar"},"reference/interfaces/SignatureRequest":{"id":"reference/interfaces/SignatureRequest","title":"SignatureRequest","description":"scrypt-ts / SignatureRequest","sidebar":"tutorialSidebar"},"reference/interfaces/SignatureResponse":{"id":"reference/interfaces/SignatureResponse","title":"SignatureResponse","description":"scrypt-ts / SignatureResponse","sidebar":"tutorialSidebar"},"reference/interfaces/SignTransactionOptions":{"id":"reference/interfaces/SignTransactionOptions","title":"SignTransactionOptions","description":"scrypt-ts / SignTransactionOptions","sidebar":"tutorialSidebar"},"reference/interfaces/StatefulNext":{"id":"reference/interfaces/StatefulNext","title":"StatefulNext","description":"scrypt-ts / StatefulNext","sidebar":"tutorialSidebar"},"reference/interfaces/SubscribeOptions":{"id":"reference/interfaces/SubscribeOptions","title":"SubscribeOptions","description":"scrypt-ts / SubscribeOptions","sidebar":"tutorialSidebar"},"reference/interfaces/SubScription":{"id":"reference/interfaces/SubScription","title":"SubScription","description":"scrypt-ts / SubScription","sidebar":"tutorialSidebar"},"reference/interfaces/TransactionResponse":{"id":"reference/interfaces/TransactionResponse","title":"TransactionResponse","description":"scrypt-ts / TransactionResponse","sidebar":"tutorialSidebar"},"reference/interfaces/TxContext":{"id":"reference/interfaces/TxContext","title":"TxContext","description":"scrypt-ts / TxContext","sidebar":"tutorialSidebar"},"reference/interfaces/TxInputRef":{"id":"reference/interfaces/TxInputRef","title":"TxInputRef","description":"scrypt-ts / TxInputRef","sidebar":"tutorialSidebar"},"reference/interfaces/TxOutputRef":{"id":"reference/interfaces/TxOutputRef","title":"TxOutputRef","description":"scrypt-ts / TxOutputRef","sidebar":"tutorialSidebar"},"reference/interfaces/UtxoQueryOptions":{"id":"reference/interfaces/UtxoQueryOptions","title":"UtxoQueryOptions","description":"scrypt-ts / UtxoQueryOptions","sidebar":"tutorialSidebar"},"reference/interfaces/VerifyResult":{"id":"reference/interfaces/VerifyResult","title":"VerifyResult","description":"scrypt-ts / VerifyResult","sidebar":"tutorialSidebar"},"reference/modules/bsv":{"id":"reference/modules/bsv","title":"bsv","description":"scrypt-ts / bsv","sidebar":"tutorialSidebar"},"reference/modules/bsv.crypto":{"id":"reference/modules/bsv.crypto","title":"bsv.crypto","description":"scrypt-ts / bsv / crypto","sidebar":"tutorialSidebar"},"reference/modules/bsv.crypto.ECDSA":{"id":"reference/modules/bsv.crypto.ECDSA","title":"bsv.crypto.ECDSA","description":"scrypt-ts / bsv / crypto / ECDSA","sidebar":"tutorialSidebar"},"reference/modules/bsv.crypto.Hash":{"id":"reference/modules/bsv.crypto.Hash","title":"bsv.crypto.Hash","description":"scrypt-ts / bsv / crypto / Hash","sidebar":"tutorialSidebar"},"reference/modules/bsv.crypto.Random":{"id":"reference/modules/bsv.crypto.Random","title":"bsv.crypto.Random","description":"scrypt-ts / bsv / crypto / Random","sidebar":"tutorialSidebar"},"reference/modules/bsv.encoding":{"id":"reference/modules/bsv.encoding","title":"bsv.encoding","description":"scrypt-ts / bsv / encoding","sidebar":"tutorialSidebar"},"reference/modules/bsv.Networks":{"id":"reference/modules/bsv.Networks","title":"bsv.Networks","description":"scrypt-ts / bsv / Networks","sidebar":"tutorialSidebar"},"reference/modules/bsv.Script":{"id":"reference/modules/bsv.Script","title":"bsv.Script","description":"scrypt-ts / bsv / Script","sidebar":"tutorialSidebar"},"reference/modules/bsv.Script.Interpreter":{"id":"reference/modules/bsv.Script.Interpreter","title":"bsv.Script.Interpreter","description":"scrypt-ts / bsv / Script / Interpreter","sidebar":"tutorialSidebar"},"reference/modules/bsv.Transaction":{"id":"reference/modules/bsv.Transaction","title":"bsv.Transaction","description":"scrypt-ts / bsv / Transaction","sidebar":"tutorialSidebar"},"reference/modules/bsv.Transaction.Input":{"id":"reference/modules/bsv.Transaction.Input","title":"bsv.Transaction.Input","description":"scrypt-ts / bsv / Transaction / Input","sidebar":"tutorialSidebar"},"reference/modules/bsv.Transaction.Sighash":{"id":"reference/modules/bsv.Transaction.Sighash","title":"bsv.Transaction.Sighash","description":"scrypt-ts / bsv / Transaction / Sighash","sidebar":"tutorialSidebar"},"reference/README":{"id":"reference/README","title":"README","description":"scrypt-ts","sidebar":"tutorialSidebar"},"tokens/ft/existing":{"id":"tokens/ft/existing","title":"Transfer Existing FT to a Smart Contract","description":"Suppose you\'d like to unlock existing UTXOs that carry a FT to a smart contract.","sidebar":"tutorialSidebar"},"tokens/ft/ft":{"id":"tokens/ft/ft","title":"Funglible Tokens - FTs","description":"Just like NFTs, scrypt-ord also supports fungible tokens. Under the hood it utilizes the bsv-20 protocol.","sidebar":"tutorialSidebar"},"tokens/ft/multiple":{"id":"tokens/ft/multiple","title":"Multiple Inputs with Different Contracts","description":"Suppose we would like to unlock FTs within a single transaction that are located in different smart contracts. We can utilize the same technique demonstrated in the section for calling multiple contract instances.","sidebar":"tutorialSidebar"},"tokens/nft/existing":{"id":"tokens/nft/existing","title":"Transfer Existing NFT to a Smart Contract","description":"Suppose you would like to transfer an existing NFT that was already inscribed in the past, which is typically locked using a P2PKH lock.","sidebar":"tutorialSidebar"},"tokens/nft/nft":{"id":"tokens/nft/nft","title":"Non Funglible Tokens - NFTs","description":"To create a smart contract that will carry an NFT, have your smart contract extend the OrdinalNFT class:","sidebar":"tutorialSidebar"},"tokens/tokens":{"id":"tokens/tokens","title":"The Official sCrypt 1Sat Ordinals SDK","description":"sCrypt offers its official 1Sat Ordinals SDK named scrypt-ord.","sidebar":"tutorialSidebar"},"tokens/tutorials/how-to-verify-a-BSV20-transaction":{"id":"tokens/tutorials/how-to-verify-a-BSV20-transaction","title":"Tutorial 5: How to verify a BSV20 token","description":"Overview","sidebar":"tutorialSidebar"},"tokens/tutorials/inscribe-image":{"id":"tokens/tutorials/inscribe-image","title":"Tutorial 1: Inscribe Image","description":"Overview","sidebar":"tutorialSidebar"},"tokens/tutorials/mint-bsv20-v1":{"id":"tokens/tutorials/mint-bsv20-v1","title":"Tutorial 3: Mint BSV20 V1 Token","description":"Overview","sidebar":"tutorialSidebar"},"tokens/tutorials/mint-bsv20-v2":{"id":"tokens/tutorials/mint-bsv20-v2","title":"Tutorial 2: Mint BSV20 V2 Token","description":"Overview","sidebar":"tutorialSidebar"},"tokens/tutorials/ordinal-lock":{"id":"tokens/tutorials/ordinal-lock","title":"Tutorial 4: Ordinal Lock","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/auction":{"id":"tutorials/auction","title":"Tutorial 2: Auction","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/escrow":{"id":"tutorials/escrow","title":"Tutorial 7: Escrow","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/hello-world":{"id":"tutorials/hello-world","title":"Tutorial 1: Hello World","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/oracle":{"id":"tutorials/oracle","title":"Tutorial 3: Oracle","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/tic-tac-toe":{"id":"tutorials/tic-tac-toe","title":"Tutorial 4: Tic Tac Toe","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/voting":{"id":"tutorials/voting","title":"Tutorial 6: Voting","description":"Overview","sidebar":"tutorialSidebar"},"tutorials/zkp":{"id":"tutorials/zkp","title":"Tutorial 5: Zero Knowledge Proofs","description":"Overview","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a5c7ba44.1d2881a9.js b/assets/js/a5c7ba44.1d2881a9.js new file mode 100644 index 000000000..cafa907bc --- /dev/null +++ b/assets/js/a5c7ba44.1d2881a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[7062],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>u});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),h=l(n),u=r,m=h["".concat(c,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,i(i({ref:t},p),{},{components:n})):a.createElement(m,i({ref:t},p))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=n(7462),r=(n(7294),n(3905));const o={sidebar_position:3},i="Fungible Tokens - FTs",s={unversionedId:"tokens/ft/ft",id:"tokens/ft/ft",title:"Fungible Tokens - FTs",description:"Just like NFTs, scrypt-ord also supports fungible tokens. Under the hood it utilizes the bsv-20 protocol.",source:"@site/docs/tokens/ft/ft.md",sourceDirName:"tokens/ft",slug:"/tokens/ft/",permalink:"/tokens/ft/",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Transfer Existing NFT to a Smart Contract",permalink:"/tokens/nft/existing"},next:{title:"Transfer Existing FT to a Smart Contract",permalink:"/tokens/ft/existing"}},c={},l=[{value:"v1",id:"v1",level:2},{value:"Deployment",id:"deployment",level:3},{value:"Mint and Transfer",id:"mint-and-transfer",level:3},{value:"v2",id:"v2",level:2},{value:"Deploy+Mint",id:"deploymint",level:3},{value:"Transfer",id:"transfer",level:3}],p={toc:l};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"fungible-tokens---fts"},"Fungible Tokens - FTs"),(0,r.kt)("p",null,"Just like NFTs, ",(0,r.kt)("inlineCode",{parentName:"p"},"scrypt-ord")," also supports fungible tokens. Under the hood it utilizes the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/bsv20"},(0,r.kt)("inlineCode",{parentName:"a"},"bsv-20")," protocol"),"."),(0,r.kt)("p",null,"BSV-20 is a protocol for creating fungible tokens on the Bitcoin SV blockchain. Fungible tokens are interchangeable with each other, and can be used to represent a variety of assets, such as currencies, securities, and in-game items."),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"scrypt-ord")," supports both v1 and v2 of the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV-20")," FT protocol."),(0,r.kt)("h2",{id:"v1"},"v1"),(0,r.kt)("p",null,"Tokens utilizing the first version of the ",(0,r.kt)("inlineCode",{parentName:"p"},"bsv-20")," must be initialized by a ",(0,r.kt)("strong",{parentName:"p"},"deployment")," inscription, which specifies the token's ticker symbol, amount and mint limit. For more information, refer to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/bsv20#v1-mint-first-is-first-mode"},"1Sat docs"),"."),(0,r.kt)("p",null,"To create a v1 token smart contract, have it extend the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V1")," class:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"class HashLockFT extends BSV20V1 {\n @prop()\n hash: Sha256\n\n constructor(tick: ByteString, max: bigint, lim: bigint, dec: bigint, hash: Sha256) {\n super(tick, max, lim, dec)\n this.init(...arguments)\n this.hash = hash\n }\n\n @method()\n public unlock(message: ByteString) {\n assert(this.hash == sha256(message), 'hashes are not equal')\n }\n}\n")),(0,r.kt)("p",null,"As you can see above, the constructor of contract extending the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V1")," takes as parameters all of the needed information for the token deployment, succeeded by other parameters needed you use for your contract (",(0,r.kt)("inlineCode",{parentName:"p"},"hash")," in this particular example).\nEach constructor extending the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V1")," class must also call the instances ",(0,r.kt)("inlineCode",{parentName:"p"},"init")," method and pass the constructors arguments. It is important to call this function ",(0,r.kt)("strong",{parentName:"p"},"after")," the call to ",(0,r.kt)("inlineCode",{parentName:"p"},"super"),"."),(0,r.kt)("h3",{id:"deployment"},"Deployment"),(0,r.kt)("p",null,"Here's an example of how you would deploy the new FT:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},'HashLockFT.loadArtifact();\n\nconst tick = toByteString("DOGE", true);\nconst max = 100000n;\nconst lim = max / 10n;\nconst dec = 0n\n\nconst hashLock = new HashLockFT(\n tick,\n max,\n lim,\n dec,\n sha256(toByteString("secret0", true))\n);\nawait hashLock.connect(getDefaultSigner());\nawait hashLock.deployToken();\n')),(0,r.kt)("h3",{id:"mint-and-transfer"},"Mint and Transfer"),(0,r.kt)("p",null,"Once the deployment transaction was successfully broadcast, the token is ready for minting."),(0,r.kt)("p",null,"Here's how you can mint some amount:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},'// Minting\nconst amt = 1000n;\nconst mintTx = await hashLock.mint(amt);\nconsole.log("Minted tx: ", mintTx.id);\n')),(0,r.kt)("p",null,"Note, that if the amount exceeds the limit set above, or the token was already wholely minted, the transaction won't be considered valid by 1Sat indexers."),(0,r.kt)("p",null,"The minted amount can then be transferred by calling the contract, as in ",(0,r.kt)("a",{parentName:"p",href:"/how-to-deploy-and-call-a-contract/#contract-call"},"regular sCrypt contracts"),":"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},'// Transfer\nfor (let i = 0; i < 3; i++) {\n // The recipient contract.\n // Because this particular contract doesn\'t enforce subsequent outputs,\n // it could be any other contract or just a P2PKH.\n const receiver = new HashLockFT(\n tick,\n max,\n lim,\n dec,\n sha256(toByteString(`secret${i + 1}`, true))\n );\n const recipients: Array = [\n {\n instance: receiver,\n amt: 10n,\n },\n ];\n\n // Unlock and transfer.\n const { tx } = await hashLock.methods.unlock(\n toByteString(`secret:${i}`, true),\n {\n transfer: recipients,\n }\n );\n console.log("Transfer tx: ", tx.id);\n \n // Update instance for next iteration.\n hashLock = recipients[0].instance as HashLockFT;\n}\n')),(0,r.kt)("p",null,"Note that the new recipient smart contract instance is passed as a parameter named ",(0,r.kt)("inlineCode",{parentName:"p"},"transfer")," during the call to the deployed instance. The ",(0,r.kt)("inlineCode",{parentName:"p"},"transfer")," parameter is an array of contract instances that extend ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V1"),"."),(0,r.kt)("h2",{id:"v2"},"v2"),(0,r.kt)("p",null,"Version 2 of the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV-20")," token protocol simplifies the process of minting a new fungible token. In this version, the deployment and minting are done within a single transaction. Unlike v1, v2 lacks a token ticker field. The token is identified by an ",(0,r.kt)("inlineCode",{parentName:"p"},"id")," field, which is the transaction id and output index where the token was minted, in the form of ",(0,r.kt)("inlineCode",{parentName:"p"},"_"),"."),(0,r.kt)("p",null,"Please refer to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/bsv20#new-in-v2-tickerless-mode"},"official 1Sat documentation")," for more info."),(0,r.kt)("p",null,"To create a v2 token smart contract, have it extend the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V2")," class:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"class HashLockFTV2 extends BSV20V2 {\n @prop()\n hash: Sha256\n\n constructor(id: ByteString, sym: ByteString, max: bigint, dec: bigint, hash: Sha256) {\n super(id, sym, max, dec)\n this.init(...arguments)\n this.hash = hash\n }\n\n @method()\n public unlock(message: ByteString) {\n assert(this.hash == sha256(message), 'hashes are not equal')\n }\n}\n")),(0,r.kt)("h3",{id:"deploymint"},"Deploy+Mint"),(0,r.kt)("p",null,"In v1, tokens are deployed and minted in separate transactions, but in v2, all tokens are deployed and minted in one transactions. Here's an example of how you would deploy the new v2 FT:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"HashLockFTV2.loadArtifact()\n\nconst sym = toByteString('sCrypt', true)\nconst max = 10000n // Whole token amount.\nconst dec = 0n // Decimal precision.\n\n// Since we cannot know the id of the token deployment transaction at the time of deployment, the id is empty.\nhashLock = new HashLockFTV2(\n toByteString(''),\n sym,\n max,\n dec,\n sha256(toByteString('super secret', true))\n)\nawait hashLock.connect(getDefaultSigner())\n\ntokenId = await hashLock.deployToken()\nconsole.log('token id: ', tokenId)\n")),(0,r.kt)("p",null,"v2 supports adding additional meta information when deploying token, such as:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const tokenId = await hashLock.deployToken({\n icon: \"/content/\"\n})\nconsole.log('token id: ', tokenId)\n")),(0,r.kt)("p",null,"The whole token supply is minted within the first transaction, and whoever can unlock the deployment UTXO will gain full control of the whole supply. Additionally, the smart contract itself can enforce rules for the distribution of the tokens."),(0,r.kt)("h3",{id:"transfer"},"Transfer"),(0,r.kt)("p",null,"The minted amount can be transferred by invoking the contract, similar to ",(0,r.kt)("a",{parentName:"p",href:"/how-to-deploy-and-call-a-contract/#contract-call"},"standard sCrypt contracts"),":"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},'// Transfer\nfor (let i = 0; i < 3; i++) {\n // The recipient contract.\n // Because this particular contract doesn\'t enforce subsequent outputs,\n // it could be any other contract or just a P2PKH.\n const receiver = new HashLockFTV2(\n toByteString(tokenId, true),\n sym,\n max,\n dec,\n sha256(toByteString(`secret${i + 1}`, true))\n );\n const recipients: Array = [\n {\n instance: receiver,\n amt: 10n,\n },\n ];\n\n // Unlock and transfer.\n const { tx } = await hashLock.methods.unlock(\n toByteString(`secret:${i}`, true),\n {\n transfer: recipients,\n }\n );\n console.log("Transfer tx: ", tx.id);\n \n // Update instance for next iteration.\n hashLock = recipients[0].instance as HashLockFTV2;\n}\n')),(0,r.kt)("p",null,"The new recipient smart contract instance is provided as a ",(0,r.kt)("inlineCode",{parentName:"p"},"transfer")," parameter when calling the deployed instance. The ",(0,r.kt)("inlineCode",{parentName:"p"},"transfer")," parameter consists of an array of contract instances derived from ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V2"),"."),(0,r.kt)("hr",null))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a5c7ba44.2a8b4ad9.js b/assets/js/a5c7ba44.2a8b4ad9.js deleted file mode 100644 index e470f01ee..000000000 --- a/assets/js/a5c7ba44.2a8b4ad9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[7062],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>u});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),h=l(n),u=r,m=h["".concat(c,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,i(i({ref:t},p),{},{components:n})):a.createElement(m,i({ref:t},p))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:r,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=n(7462),r=(n(7294),n(3905));const o={sidebar_position:3},i="Funglible Tokens - FTs",s={unversionedId:"tokens/ft/ft",id:"tokens/ft/ft",title:"Funglible Tokens - FTs",description:"Just like NFTs, scrypt-ord also supports fungible tokens. Under the hood it utilizes the bsv-20 protocol.",source:"@site/docs/tokens/ft/ft.md",sourceDirName:"tokens/ft",slug:"/tokens/ft/",permalink:"/tokens/ft/",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Transfer Existing NFT to a Smart Contract",permalink:"/tokens/nft/existing"},next:{title:"Transfer Existing FT to a Smart Contract",permalink:"/tokens/ft/existing"}},c={},l=[{value:"v1",id:"v1",level:2},{value:"Deployment",id:"deployment",level:3},{value:"Mint and Transfer",id:"mint-and-transfer",level:3},{value:"v2",id:"v2",level:2},{value:"Deploy+Mint",id:"deploymint",level:3},{value:"Transfer",id:"transfer",level:3}],p={toc:l};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"funglible-tokens---fts"},"Funglible Tokens - FTs"),(0,r.kt)("p",null,"Just like NFTs, ",(0,r.kt)("inlineCode",{parentName:"p"},"scrypt-ord")," also supports fungible tokens. Under the hood it utilizes the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/bsv20"},(0,r.kt)("inlineCode",{parentName:"a"},"bsv-20")," protocol"),"."),(0,r.kt)("p",null,"BSV-20 is a protocol for creating fungible tokens on the Bitcoin SV blockchain. Fungible tokens are interchangeable with each other, and can be used to represent a variety of assets, such as currencies, securities, and in-game items."),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"scrypt-ord")," supports both v1 and v2 of the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV-20")," FT protocol."),(0,r.kt)("h2",{id:"v1"},"v1"),(0,r.kt)("p",null,"Tokens utilizing the first version of the ",(0,r.kt)("inlineCode",{parentName:"p"},"bsv-20")," must be initialized by a ",(0,r.kt)("strong",{parentName:"p"},"deployment")," inscription, which specifies the token's ticker symbol, amount and mint limit. For more information, refer to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/bsv20#v1-mint-first-is-first-mode"},"1Sat docs"),"."),(0,r.kt)("p",null,"To create a v1 token smart contract, have it extend the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V1")," class:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"class HashLockFT extends BSV20V1 {\n @prop()\n hash: Sha256\n\n constructor(tick: ByteString, max: bigint, lim: bigint, dec: bigint, hash: Sha256) {\n super(tick, max, lim, dec)\n this.init(...arguments)\n this.hash = hash\n }\n\n @method()\n public unlock(message: ByteString) {\n assert(this.hash == sha256(message), 'hashes are not equal')\n }\n}\n")),(0,r.kt)("p",null,"As you can see above, the constructor of contract extending the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V1")," takes as parameters all of the needed information for the token deployment, succeeded by other parameters needed you use for your contract (",(0,r.kt)("inlineCode",{parentName:"p"},"hash")," in this particular example).\nEach constructor extending the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V1")," class must also call the instances ",(0,r.kt)("inlineCode",{parentName:"p"},"init")," method and pass the constructors arguments. It is important to call this function ",(0,r.kt)("strong",{parentName:"p"},"after")," the call to ",(0,r.kt)("inlineCode",{parentName:"p"},"super"),"."),(0,r.kt)("h3",{id:"deployment"},"Deployment"),(0,r.kt)("p",null,"Here's an example of how you would deploy the new FT:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},'HashLockFT.loadArtifact();\n\nconst tick = toByteString("DOGE", true);\nconst max = 100000n;\nconst lim = max / 10n;\nconst dec = 0n\n\nconst hashLock = new HashLockFT(\n tick,\n max,\n lim,\n dec,\n sha256(toByteString("secret0", true))\n);\nawait hashLock.connect(getDefaultSigner());\nawait hashLock.deployToken();\n')),(0,r.kt)("h3",{id:"mint-and-transfer"},"Mint and Transfer"),(0,r.kt)("p",null,"Once the deployment transaction was successfully broadcast, the token is ready for minting."),(0,r.kt)("p",null,"Here's how you can mint some amount:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},'// Minting\nconst amt = 1000n;\nconst mintTx = await hashLock.mint(amt);\nconsole.log("Minted tx: ", mintTx.id);\n')),(0,r.kt)("p",null,"Note, that if the amount exceeds the limit set above, or the token was already wholely minted, the transaction won't be considered valid by 1Sat indexers."),(0,r.kt)("p",null,"The minted amount can then be transferred by calling the contract, as in ",(0,r.kt)("a",{parentName:"p",href:"/how-to-deploy-and-call-a-contract/#contract-call"},"regular sCrypt contracts"),":"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},'// Transfer\nfor (let i = 0; i < 3; i++) {\n // The recipient contract.\n // Because this particular contract doesn\'t enforce subsequent outputs,\n // it could be any other contract or just a P2PKH.\n const receiver = new HashLockFT(\n tick,\n max,\n lim,\n dec,\n sha256(toByteString(`secret${i + 1}`, true))\n );\n const recipients: Array = [\n {\n instance: receiver,\n amt: 10n,\n },\n ];\n\n // Unlock and transfer.\n const { tx } = await hashLock.methods.unlock(\n toByteString(`secret:${i}`, true),\n {\n transfer: recipients,\n }\n );\n console.log("Transfer tx: ", tx.id);\n \n // Update instance for next iteration.\n hashLock = recipients[0].instance as HashLockFT;\n}\n')),(0,r.kt)("p",null,"Note that the new recipient smart contract instance is passed as a parameter named ",(0,r.kt)("inlineCode",{parentName:"p"},"transfer")," during the call to the deployed instance. The ",(0,r.kt)("inlineCode",{parentName:"p"},"transfer")," parameter is an array of contract instances that extend ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V1"),"."),(0,r.kt)("h2",{id:"v2"},"v2"),(0,r.kt)("p",null,"Version 2 of the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV-20")," token protocol simplifies the process of minting a new fungible token. In this version, the deployment and minting are done within a single transaction. Unlike v1, v2 lacks a token ticker field. The token is identified by an ",(0,r.kt)("inlineCode",{parentName:"p"},"id")," field, which is the transaction id and output index where the token was minted, in the form of ",(0,r.kt)("inlineCode",{parentName:"p"},"_"),"."),(0,r.kt)("p",null,"Please refer to the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/bsv20#new-in-v2-tickerless-mode"},"official 1Sat documentation")," for more info."),(0,r.kt)("p",null,"To create a v2 token smart contract, have it extend the ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V2")," class:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"class HashLockFTV2 extends BSV20V2 {\n @prop()\n hash: Sha256\n\n constructor(id: ByteString, sym: ByteString, max: bigint, dec: bigint, hash: Sha256) {\n super(id, sym, max, dec)\n this.init(...arguments)\n this.hash = hash\n }\n\n @method()\n public unlock(message: ByteString) {\n assert(this.hash == sha256(message), 'hashes are not equal')\n }\n}\n")),(0,r.kt)("h3",{id:"deploymint"},"Deploy+Mint"),(0,r.kt)("p",null,"In v1, tokens are deployed and minted in separate transactions, but in v2, all tokens are deployed and minted in one transactions. Here's an example of how you would deploy the new v2 FT:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"HashLockFTV2.loadArtifact()\n\nconst sym = toByteString('sCrypt', true)\nconst max = 10000n // Whole token amount.\nconst dec = 0n // Decimal precision.\n\n// Since we cannot know the id of the token deployment transaction at the time of deployment, the id is empty.\nhashLock = new HashLockFTV2(\n toByteString(''),\n sym,\n max,\n dec,\n sha256(toByteString('super secret', true))\n)\nawait hashLock.connect(getDefaultSigner())\n\ntokenId = await hashLock.deployToken()\nconsole.log('token id: ', tokenId)\n")),(0,r.kt)("p",null,"v2 supports adding additional meta information when deploying token, such as:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const tokenId = await hashLock.deployToken({\n icon: \"/content/\"\n})\nconsole.log('token id: ', tokenId)\n")),(0,r.kt)("p",null,"The whole token supply is minted within the first transaction, and whoever can unlock the deployment UTXO will gain full control of the whole supply. Additionally, the smart contract itself can enforce rules for the distribution of the tokens."),(0,r.kt)("h3",{id:"transfer"},"Transfer"),(0,r.kt)("p",null,"The minted amount can be transferred by invoking the contract, similar to ",(0,r.kt)("a",{parentName:"p",href:"/how-to-deploy-and-call-a-contract/#contract-call"},"standard sCrypt contracts"),":"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},'// Transfer\nfor (let i = 0; i < 3; i++) {\n // The recipient contract.\n // Because this particular contract doesn\'t enforce subsequent outputs,\n // it could be any other contract or just a P2PKH.\n const receiver = new HashLockFTV2(\n toByteString(tokenId, true),\n sym,\n max,\n dec,\n sha256(toByteString(`secret${i + 1}`, true))\n );\n const recipients: Array = [\n {\n instance: receiver,\n amt: 10n,\n },\n ];\n\n // Unlock and transfer.\n const { tx } = await hashLock.methods.unlock(\n toByteString(`secret:${i}`, true),\n {\n transfer: recipients,\n }\n );\n console.log("Transfer tx: ", tx.id);\n \n // Update instance for next iteration.\n hashLock = recipients[0].instance as HashLockFTV2;\n}\n')),(0,r.kt)("p",null,"The new recipient smart contract instance is provided as a ",(0,r.kt)("inlineCode",{parentName:"p"},"transfer")," parameter when calling the deployed instance. The ",(0,r.kt)("inlineCode",{parentName:"p"},"transfer")," parameter consists of an array of contract instances derived from ",(0,r.kt)("inlineCode",{parentName:"p"},"BSV20V2"),"."),(0,r.kt)("hr",null))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/db37e9c8.418f2faf.js b/assets/js/db37e9c8.418f2faf.js deleted file mode 100644 index fbf428e47..000000000 --- a/assets/js/db37e9c8.418f2faf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[8567],{3905:(t,e,n)=>{n.d(e,{Zo:()=>u,kt:()=>h});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var c=r.createContext({}),l=function(t){var e=r.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},u=function(t){var e=l(t.components);return r.createElement(c.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},d=r.forwardRef((function(t,e){var n=t.components,a=t.mdxType,o=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),d=l(n),h=a,f=d["".concat(c,".").concat(h)]||d[h]||p[h]||o;return n?r.createElement(f,i(i({ref:e},u),{},{components:n})):r.createElement(f,i({ref:e},u))}));function h(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:a,i[1]=s;for(var l=2;l{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={title:"Transfer Existing NFT to a Smart Contract",sidebar_position:1},i=void 0,s={unversionedId:"tokens/nft/existing",id:"tokens/nft/existing",title:"Transfer Existing NFT to a Smart Contract",description:"Suppose you would like to transfer an existing NFT that was already inscribed in the past, which is typically locked using a P2PKH lock.",source:"@site/docs/tokens/nft/existing.md",sourceDirName:"tokens/nft",slug:"/tokens/nft/existing",permalink:"/tokens/nft/existing",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Transfer Existing NFT to a Smart Contract",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Non Funglible Tokens - NFTs",permalink:"/tokens/nft/"},next:{title:"Funglible Tokens - FTs",permalink:"/tokens/ft/"}},c={},l=[],u={toc:l};function p(t){let{components:e,...n}=t;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Suppose you would like to transfer an existing NFT that was already inscribed in the past, which is typically locked using a ",(0,a.kt)("inlineCode",{parentName:"p"},"P2PKH")," lock.\nYou can fetch all the needed data for the transfer by either using ",(0,a.kt)("inlineCode",{parentName:"p"},"fromUTXO")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"getLatestInstance"),". The former takes the deployed NFT's current UTXO, while the latter takes the NFT's ",(0,a.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/readme/terms#origin"},"origin"),"."),(0,a.kt)("p",null,"If the deployed NFT is locked using a regular ",(0,a.kt)("inlineCode",{parentName:"p"},"P2PKH")," you may unlock it like the following:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"const outpoint = '036718e5c603169b9981a55f276adfa7b5d024616ac95e048b05a81258ea2388_0';\n\n// Create a P2PKH object from a UTXO\nconst utxo: UTXO = await OneSatApis.fetchUTXOByOutpoint(outpoint);\nconst p2pkh = OrdiNFTP2PKH.fromUTXO(utxo);\n// Alternatively, create a P2PKH from an origin\nconst p2pkh = await OrdiNFTP2PKH.getLatestInstance(outpoint);\n\n// Construct recipient smart contract\nconst message = toByteString('super secret', true);\nconst hash = sha256(message);\nconst recipient = new HashLockNFT(hash);\nawait recipient.connect(getDefaultSigner());\n\n// Unlock deployed NFT and send it to the recipient hash lock contract\nawait p2pkh.connect(getDefaultSigner());\n\nconst { tx: transferTx } = await p2pkh.methods.unlock(\n (sigResps) => findSig(sigResps, `yourPubKey`),\n PubKey(`yourPubKey`.toByteString()),\n {\n transfer: recipient,\n pubKeyOrAddrToSign: `yourPubKey`,\n } as OrdiMethodCallOptions\n);\n\nconsole.log(\"Transferred NFT: \", transferTx.id);\n")),(0,a.kt)("p",null,"Alternatively, if the NFT is locked using a smart contract, i.e. ",(0,a.kt)("inlineCode",{parentName:"p"},"HashLockNFT"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"HashLockNFT.loadArtifact();\n\n// Retrieve `HashLockNFT` instance holding the NFT\nconst nft = await HashLockNFT.getLatestInstance(outpoint);\nawait nft.connect(getDefaultSigner());\n\nconst hash = sha256(toByteString('next super secret', true));\nconst recipient = new HashLockNFT(hash);\nawait recipient.connect(getDefaultSigner());\n\n// Send NFT to recipient\nconst { tx: transferTx } = await nft.methods.unlock(\n toByteString('super secret', true),\n {\n transfer: recipient,\n }\n);\n\nconsole.log(\"Transferred NFT: \", transferTx.id);\n")),(0,a.kt)("h1",{id:"buildstateoutputft"},(0,a.kt)("inlineCode",{parentName:"h1"},"buildStateOutputFT")),(0,a.kt)("p",null,"Any instance of an ",(0,a.kt)("inlineCode",{parentName:"p"},"OrdinalNFT")," contains the ",(0,a.kt)("inlineCode",{parentName:"p"},"buildStateOutputNFT")," method. In contrast to the regular ",(0,a.kt)("inlineCode",{parentName:"p"},"buildStateOutput")," method, this method also removes any inscription data that might be included in the smart contract's locking script. This is necessary because, within a stateful smart contract, we don't want the next iteration to re-inscribe the ordinal. Additionally, the ",(0,a.kt)("inlineCode",{parentName:"p"},"buildStateOutputNFT")," method doesn't require a satoshi amount argument, as the amount is always 1 satoshi."),(0,a.kt)("p",null,"Below is an example of an ordinal counter contract:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"class CounterNFT extends OrdinalNFT {\n\n @prop(true)\n counter: bigint\n\n constructor(counter: bigint) {\n super()\n this.init(counter)\n this.counter = counter\n }\n\n @method()\n public incOnchain() {\n this.counter++\n \n ...\n\n let outputs = this.buildStateOutputNFT() // Does not include inscription in the next iteration.\n outputs += this.buildChangeOutput()\n assert(\n this.ctx.hashOutputs == hash256(outputs),\n 'hashOutputs check failed'\n )\n }\n\n}\n")),(0,a.kt)("p",null,"See the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/scrypt-ord/blob/master/tests/contracts/counterNFT.ts"},"complete code on GitHub"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/db37e9c8.75bfbb86.js b/assets/js/db37e9c8.75bfbb86.js new file mode 100644 index 000000000..1b4537450 --- /dev/null +++ b/assets/js/db37e9c8.75bfbb86.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[8567],{3905:(t,e,n)=>{n.d(e,{Zo:()=>u,kt:()=>h});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var c=r.createContext({}),l=function(t){var e=r.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},u=function(t){var e=l(t.components);return r.createElement(c.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},d=r.forwardRef((function(t,e){var n=t.components,a=t.mdxType,o=t.originalType,c=t.parentName,u=s(t,["components","mdxType","originalType","parentName"]),d=l(n),h=a,f=d["".concat(c,".").concat(h)]||d[h]||p[h]||o;return n?r.createElement(f,i(i({ref:e},u),{},{components:n})):r.createElement(f,i({ref:e},u))}));function h(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var c in e)hasOwnProperty.call(e,c)&&(s[c]=e[c]);s.originalType=t,s.mdxType="string"==typeof t?t:a,i[1]=s;for(var l=2;l{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={title:"Transfer Existing NFT to a Smart Contract",sidebar_position:1},i=void 0,s={unversionedId:"tokens/nft/existing",id:"tokens/nft/existing",title:"Transfer Existing NFT to a Smart Contract",description:"Suppose you would like to transfer an existing NFT that was already inscribed in the past, which is typically locked using a P2PKH lock.",source:"@site/docs/tokens/nft/existing.md",sourceDirName:"tokens/nft",slug:"/tokens/nft/existing",permalink:"/tokens/nft/existing",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Transfer Existing NFT to a Smart Contract",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Non Fungible Tokens - NFTs",permalink:"/tokens/nft/"},next:{title:"Fungible Tokens - FTs",permalink:"/tokens/ft/"}},c={},l=[],u={toc:l};function p(t){let{components:e,...n}=t;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Suppose you would like to transfer an existing NFT that was already inscribed in the past, which is typically locked using a ",(0,a.kt)("inlineCode",{parentName:"p"},"P2PKH")," lock.\nYou can fetch all the needed data for the transfer by either using ",(0,a.kt)("inlineCode",{parentName:"p"},"fromUTXO")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"getLatestInstance"),". The former takes the deployed NFT's current UTXO, while the latter takes the NFT's ",(0,a.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/readme/terms#origin"},"origin"),"."),(0,a.kt)("p",null,"If the deployed NFT is locked using a regular ",(0,a.kt)("inlineCode",{parentName:"p"},"P2PKH")," you may unlock it like the following:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"const outpoint = '036718e5c603169b9981a55f276adfa7b5d024616ac95e048b05a81258ea2388_0';\n\n// Create a P2PKH object from a UTXO\nconst utxo: UTXO = await OneSatApis.fetchUTXOByOutpoint(outpoint);\nconst p2pkh = OrdiNFTP2PKH.fromUTXO(utxo);\n// Alternatively, create a P2PKH from an origin\nconst p2pkh = await OrdiNFTP2PKH.getLatestInstance(outpoint);\n\n// Construct recipient smart contract\nconst message = toByteString('super secret', true);\nconst hash = sha256(message);\nconst recipient = new HashLockNFT(hash);\nawait recipient.connect(getDefaultSigner());\n\n// Unlock deployed NFT and send it to the recipient hash lock contract\nawait p2pkh.connect(getDefaultSigner());\n\nconst { tx: transferTx } = await p2pkh.methods.unlock(\n (sigResps) => findSig(sigResps, `yourPubKey`),\n PubKey(`yourPubKey`.toByteString()),\n {\n transfer: recipient,\n pubKeyOrAddrToSign: `yourPubKey`,\n } as OrdiMethodCallOptions\n);\n\nconsole.log(\"Transferred NFT: \", transferTx.id);\n")),(0,a.kt)("p",null,"Alternatively, if the NFT is locked using a smart contract, i.e. ",(0,a.kt)("inlineCode",{parentName:"p"},"HashLockNFT"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"HashLockNFT.loadArtifact();\n\n// Retrieve `HashLockNFT` instance holding the NFT\nconst nft = await HashLockNFT.getLatestInstance(outpoint);\nawait nft.connect(getDefaultSigner());\n\nconst hash = sha256(toByteString('next super secret', true));\nconst recipient = new HashLockNFT(hash);\nawait recipient.connect(getDefaultSigner());\n\n// Send NFT to recipient\nconst { tx: transferTx } = await nft.methods.unlock(\n toByteString('super secret', true),\n {\n transfer: recipient,\n }\n);\n\nconsole.log(\"Transferred NFT: \", transferTx.id);\n")),(0,a.kt)("h1",{id:"buildstateoutputft"},(0,a.kt)("inlineCode",{parentName:"h1"},"buildStateOutputFT")),(0,a.kt)("p",null,"Any instance of an ",(0,a.kt)("inlineCode",{parentName:"p"},"OrdinalNFT")," contains the ",(0,a.kt)("inlineCode",{parentName:"p"},"buildStateOutputNFT")," method. In contrast to the regular ",(0,a.kt)("inlineCode",{parentName:"p"},"buildStateOutput")," method, this method also removes any inscription data that might be included in the smart contract's locking script. This is necessary because, within a stateful smart contract, we don't want the next iteration to re-inscribe the ordinal. Additionally, the ",(0,a.kt)("inlineCode",{parentName:"p"},"buildStateOutputNFT")," method doesn't require a satoshi amount argument, as the amount is always 1 satoshi."),(0,a.kt)("p",null,"Below is an example of an ordinal counter contract:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-ts"},"class CounterNFT extends OrdinalNFT {\n\n @prop(true)\n counter: bigint\n\n constructor(counter: bigint) {\n super()\n this.init(counter)\n this.counter = counter\n }\n\n @method()\n public incOnchain() {\n this.counter++\n \n ...\n\n let outputs = this.buildStateOutputNFT() // Does not include inscription in the next iteration.\n outputs += this.buildChangeOutput()\n assert(\n this.ctx.hashOutputs == hash256(outputs),\n 'hashOutputs check failed'\n )\n }\n\n}\n")),(0,a.kt)("p",null,"See the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/scrypt-ord/blob/master/tests/contracts/counterNFT.ts"},"complete code on GitHub"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f7fb2808.b531e3eb.js b/assets/js/f7fb2808.b531e3eb.js deleted file mode 100644 index 12ae8e807..000000000 --- a/assets/js/f7fb2808.b531e3eb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[4421],{8862:t=>{t.exports=JSON.parse('{"title":"Tutorials","slug":"/category/tutorials","permalink":"/category/tutorials","navigation":{"previous":{"title":"Multiple Inputs with Different Contracts","permalink":"/tokens/ft/multiple"},"next":{"title":"Tutorial 1: Inscribe Image","permalink":"/tokens/tutorials/inscribe-image"}}}')}}]); \ No newline at end of file diff --git a/assets/js/f7fb2808.de138704.js b/assets/js/f7fb2808.de138704.js new file mode 100644 index 000000000..3038c1fc0 --- /dev/null +++ b/assets/js/f7fb2808.de138704.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[4421],{8862:t=>{t.exports=JSON.parse('{"title":"Tutorials","slug":"/category/tutorials","permalink":"/category/tutorials","navigation":{"previous":{"title":"View BSV20 Token Transactions","permalink":"/tokens/ft/how-to-verify-a-BSV20-transaction"},"next":{"title":"Tutorial 1: Inscribe Image","permalink":"/tokens/tutorials/inscribe-image"}}}')}}]); \ No newline at end of file diff --git a/assets/js/f8498202.2d59e4f3.js b/assets/js/f8498202.2d59e4f3.js new file mode 100644 index 000000000..31f04428c --- /dev/null +++ b/assets/js/f8498202.2d59e4f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[4440],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),c=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(o.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,o=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=c(n),h=r,m=u["".concat(o,".").concat(h)]||u[h]||p[h]||s;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const s={sidebar_position:4},i="Tutorial 4: Ordinal Lock",l={unversionedId:"tokens/tutorials/ordinal-lock",id:"tokens/tutorials/ordinal-lock",title:"Tutorial 4: Ordinal Lock",description:"Overview",source:"@site/docs/tokens/tutorials/ordinal-lock.md",sourceDirName:"tokens/tutorials",slug:"/tokens/tutorials/ordinal-lock",permalink:"/tokens/tutorials/ordinal-lock",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Tutorial 3: Mint BSV20 V1 Token",permalink:"/tokens/tutorials/mint-bsv20-v1"},next:{title:"Tutorials",permalink:"/category/tutorials-1"}},o={},c=[{value:"Overview",id:"overview",level:2},{value:"Contract",id:"contract",level:2},{value:"Constructor",id:"constructor",level:3},{value:"Methods",id:"methods",level:3},{value:"Frontend",id:"frontend",level:2},{value:"Setup Project",id:"setup-project",level:3},{value:"Install the sCrypt SDK",id:"install-the-scrypt-sdk",level:3},{value:"Compile Contract",id:"compile-contract",level:3},{value:"Load Contract Artifact",id:"load-contract-artifact",level:3},{value:"Connect Signer to OrdiProvider",id:"connect-signer-to-ordiprovider",level:3},{value:"Integrate Wallet",id:"integrate-wallet",level:3},{value:"Load Ordinals",id:"load-ordinals",level:3},{value:"List an Ordinal",id:"list-an-ordinal",level:3},{value:"Buy an Ordinal",id:"buy-an-ordinal",level:3},{value:"Use Panda Wallet",id:"use-panda-wallet",level:2},{value:"Load Ordinals",id:"load-ordinals-1",level:3},{value:"List an Ordinal",id:"list-an-ordinal-1",level:3},{value:"Buy an Ordinal",id:"buy-an-ordinal-1",level:3},{value:"Conclusion",id:"conclusion",level:2}],d={toc:c};function p(e){let{components:t,...s}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"tutorial-4-ordinal-lock"},"Tutorial 4: Ordinal Lock"),(0,r.kt)("h2",{id:"overview"},"Overview"),(0,r.kt)("p",null,"In this tutorial, we will go over how to use ",(0,r.kt)("a",{parentName:"p",href:"https://scrypt.io/"},"sCrypt")," to build a full-stack dApp on Bitcoin to sell ",(0,r.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/"},"1Sat Ordinals"),", including the smart contract and an interactive front-end."),(0,r.kt)("h2",{id:"contract"},"Contract"),(0,r.kt)("p",null,"The contract ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/scrypt-ord/blob/master/tests/contracts/ordinalLock.ts"},"OrdinalLock")," allows an ordinal to be offered up for sale on a decentralized marketplace. These listings can be purchased by anyone who is able to pay the requested price. Listings can also be cancelled by the person who listed them."),(0,r.kt)("p",null,"To record the seller and price, we need to add two properties to the contract."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"export class OrdinalLock extends OrdinalNFT {\n @prop()\n seller: PubKey\n\n @prop()\n amount: bigint\n \n ...\n}\n")),(0,r.kt)("h3",{id:"constructor"},"Constructor"),(0,r.kt)("p",null,"Initialize all the ",(0,r.kt)("inlineCode",{parentName:"p"},"@prop")," properties in the constructor."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"constructor(seller: PubKey, amount: bigint) {\n super()\n this.init(...arguments)\n this.seller = seller\n this.amount = amount\n}\n")),(0,r.kt)("h3",{id:"methods"},"Methods"),(0,r.kt)("p",null,"The public method ",(0,r.kt)("inlineCode",{parentName:"p"},"purchase")," only needs to confine the transaction's outputs to contain:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"transfer ordinal to the buyer"),(0,r.kt)("li",{parentName:"ul"},"payment to the seller")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"@method()\npublic purchase(receiver: Addr) {\n const outputs =\n Utils.buildAddressOutput(receiver, 1n) + // ordinal to the buyer\n Utils.buildAddressOutput(hash160(this.seller), this.amount) + // fund to the seller\n this.buildChangeOutput()\n assert(this.ctx.hashOutputs == hash256(outputs), 'hashOutputs check failed')\n}\n")),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/scrypt-ord/blob/master/tests/contracts/ordinalLock.ts"},"final complete code")," is as follows:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import { Addr, prop, method, Utils, hash256, assert, ContractTransaction, bsv, PubKey, hash160, Sig, SigHash } from 'scrypt-ts'\nimport { OrdiMethodCallOptions, OrdinalNFT } from '../scrypt-ord'\n\nexport class OrdinalLock extends OrdinalNFT {\n @prop()\n seller: PubKey\n\n @prop()\n amount: bigint\n\n constructor(seller: PubKey, amount: bigint) {\n super()\n this.init(...arguments)\n this.seller = seller\n this.amount = amount\n }\n\n @method()\n public purchase(receiver: Addr) {\n const outputs =\n Utils.buildAddressOutput(receiver, 1n) + // ordinal to the buyer\n Utils.buildAddressOutput(hash160(this.seller), this.amount) + // fund to the seller\n this.buildChangeOutput()\n assert(\n this.ctx.hashOutputs == hash256(outputs),\n 'hashOutputs check failed'\n )\n }\n\n @method(SigHash.ANYONECANPAY_SINGLE)\n public cancel(sig: Sig) {\n assert(this.checkSig(sig, this.seller), 'seller signature check failed')\n const outputs = Utils.buildAddressOutput(hash160(this.seller), 1n) // ordinal back to the seller\n assert(\n this.ctx.hashOutputs == hash256(outputs),\n 'hashOutputs check failed'\n )\n }\n\n static async buildTxForPurchase(\n current: OrdinalLock,\n options: OrdiMethodCallOptions,\n receiver: Addr\n ): Promise {\n const defaultAddress = await current.signer.getDefaultAddress()\n const tx = new bsv.Transaction()\n .addInput(current.buildContractInput())\n .addOutput(\n new bsv.Transaction.Output({\n script: bsv.Script.fromHex(\n Utils.buildAddressScript(receiver)\n ),\n satoshis: 1,\n })\n )\n .addOutput(\n new bsv.Transaction.Output({\n script: bsv.Script.fromHex(\n Utils.buildAddressScript(hash160(current.seller))\n ),\n satoshis: Number(current.amount),\n })\n )\n .change(options.changeAddress || defaultAddress)\n return {\n tx,\n atInputIndex: 0,\n nexts: [],\n }\n }\n\n static async buildTxForCancel(\n current: OrdinalLock,\n options: OrdiMethodCallOptions\n ): Promise {\n const defaultAddress = await current.signer.getDefaultAddress()\n const tx = new bsv.Transaction()\n .addInput(current.buildContractInput())\n .addOutput(\n new bsv.Transaction.Output({\n script: bsv.Script.fromHex(\n Utils.buildAddressScript(hash160(current.seller))\n ),\n satoshis: 1,\n })\n )\n .change(options.changeAddress || defaultAddress)\n return {\n tx,\n atInputIndex: 0,\n nexts: [],\n }\n }\n}\n")),(0,r.kt)("p",null,"Note the customized calling method ",(0,r.kt)("inlineCode",{parentName:"p"},"buildTxForPurchase")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"buildTxForCancel")," ensure the ordinal is in the first input and goes to the first output, which is also a 1sat output."),(0,r.kt)("h2",{id:"frontend"},"Frontend"),(0,r.kt)("p",null,"We will add a frontend to the ",(0,r.kt)("inlineCode",{parentName:"p"},"OrdinalLock")," smart contract accroding to this ",(0,r.kt)("a",{parentName:"p",href:"/how-to-integrate-a-frontend/"},"guide"),"."),(0,r.kt)("h3",{id:"setup-project"},"Setup Project"),(0,r.kt)("p",null,"The front-end will be created using ",(0,r.kt)("a",{parentName:"p",href:"https://create-react-app.dev/"},"Create React App"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npx create-react-app ordinal-lock-demo --template typescript\n")),(0,r.kt)("h3",{id:"install-the-scrypt-sdk"},"Install the sCrypt SDK"),(0,r.kt)("p",null,"The sCrypt SDK enables you to easily compile, test, deploy, and call contracts."),(0,r.kt)("p",null,"Use the ",(0,r.kt)("inlineCode",{parentName:"p"},"scrypt-cli")," command line to install the SDK."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd ordinal-lock-demo\nnpm i scrypt-ord\nnpx scrypt-cli init\n")),(0,r.kt)("p",null,"This command will create a contract under ",(0,r.kt)("inlineCode",{parentName:"p"},"src/contracts"),". Replace the file with the contract written ",(0,r.kt)("a",{parentName:"p",href:"#final-code"},"above"),"."),(0,r.kt)("h3",{id:"compile-contract"},"Compile Contract"),(0,r.kt)("p",null,"Compile the contract with the following command: "),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npx scrypt-cli compile\n")),(0,r.kt)("p",null,"This command will generate a contract artifact file under ",(0,r.kt)("inlineCode",{parentName:"p"},"artifacts"),"."),(0,r.kt)("h3",{id:"load-contract-artifact"},"Load Contract Artifact"),(0,r.kt)("p",null,"Before writing the front-end code, we need to load the contract artifact in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/index.tsx"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import { OrdinalLock } from './contracts/ordinalLock'\nimport artifact from '../artifacts/ordinalLock.json'\nOrdinalLock.loadArtifact(artifact)\n")),(0,r.kt)("h3",{id:"connect-signer-to-ordiprovider"},"Connect Signer to ",(0,r.kt)("inlineCode",{parentName:"h3"},"OrdiProvider")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const provider = new OrdiProvider();\nconst signer = new SensiletSigner(provider);\n")),(0,r.kt)("h3",{id:"integrate-wallet"},"Integrate Wallet"),(0,r.kt)("p",null,"Use ",(0,r.kt)("inlineCode",{parentName:"p"},"requestAuth")," method of ",(0,r.kt)("inlineCode",{parentName:"p"},"signer")," to request access to the wallet."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"// request authentication\nconst { isAuthenticated, error } = await signer.requestAuth();\nif (!isAuthenticated) {\n // something went wrong, throw an Error with `error` message\n throw new Error(error);\n}\n\n// authenticated\n// ...\n")),(0,r.kt)("h3",{id:"load-ordinals"},"Load Ordinals"),(0,r.kt)("p",null,"After a user connect wallet, we can get the his address. Call the ",(0,r.kt)("a",{parentName:"p",href:"https://v3.ordinals.gorillapool.io/api/docs/"},"1Sat Ordinals API")," to retrieve ordinals on this address."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"useEffect(() => {\n loadCollections()\n}, [connectedAddress])\n\nfunction loadCollections() {\n if (connectedAddress) {\n const url = `https://v3.ordinals.gorillapool.io/api/txos/address/${connectedAddress.toString()}/unspent?bsv20=false`\n fetch(url).then(r => r.json()).then(r => r.filter(e => e.origin.data.insc.file.type !== 'application/bsv-20')).then(r => setCollections(r)) }\n}\n")),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(7312).Z,width:"2880",height:"1752"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(5517).Z,width:"2880",height:"1750"})),(0,r.kt)("h3",{id:"list-an-ordinal"},"List an Ordinal"),(0,r.kt)("p",null,"For each ordinal in the collection list, we can click the ",(0,r.kt)("inlineCode",{parentName:"p"},"Sell")," button to list it after filling in the selling price, in satoshis. Sell an ordinal means we need to create a contract instance, and then transfer the ordinal into it. Afterwards, the ordinal is under the control of the contract, meaning it can be bought by anyone paying the price to the seller."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"async function sell() {\n const signer = new SensiletSigner(new OrdiProvider())\n const publicKey = await signer.getDefaultPubKey()\n\n const instance = new OrdinalLock(PubKey(toHex(publicKey)), amount)\n await instance.connect(signer)\n\n const inscriptionUtxo = await parseUtxo(txid, vout)\n const inscriptionP2PKH = OrdiNFTP2PKH.fromUTXO(inscriptionUtxo)\n await inscriptionP2PKH.connect(signer)\n\n const { tx } = await inscriptionP2PKH.methods.unlock(\n (sigResps) => findSig(sigResps, publicKey),\n PubKey(toHex(publicKey)),\n {\n transfer: instance, // <---- \n pubKeyOrAddrToSign: publicKey,\n } as OrdiMethodCallOptions\n )\n}\n")),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://lucid.app/publicSegments/view/50527d66-0710-4658-b8db-b615d60232f8/image.png",alt:null})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8965).Z,width:"2880",height:"1750"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8375).Z,width:"2880",height:"1750"})),(0,r.kt)("h3",{id:"buy-an-ordinal"},"Buy an Ordinal"),(0,r.kt)("p",null,"To buy an ordinal that is on sale, we only need to call the contract public method ",(0,r.kt)("inlineCode",{parentName:"p"},"purchase"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"async function buy() {\n const signer = new SensiletSigner(new OrdiProvider())\n const address = await signer.getDefaultAddress()\n const { tx } = await instance.methods.purchase(Addr(address.toByteString()))\n}\n")),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://lucid.app/publicSegments/view/0b52243b-bdbc-4a13-b5b6-9386be80e155/image.png",alt:null})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8099).Z,width:"2880",height:"1750"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8831).Z,width:"2880",height:"1750"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(7657).Z,width:"2880",height:"1750"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(7083).Z,width:"2880",height:"1750"})),(0,r.kt)("h2",{id:"use-panda-wallet"},"Use Panda Wallet"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/Panda-Wallet/panda-wallet"},"Panda Wallet")," is an open-source and non-custodial web3 wallet for BSV and ",(0,r.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/"},"1Sat Ordinals"),". This wallet allows users to have full control over their funds, providing security and independence in managing their assets."),(0,r.kt)("p",null,"To support Panda Wallet in the dApp, we simply replace all the ",(0,r.kt)("inlineCode",{parentName:"p"},"SensiletSigner")," with ",(0,r.kt)("inlineCode",{parentName:"p"},"PandaSigner"),", that's all."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},'import { PandaSigner } from "scrypt-ts/dist/bsv/signers/panda-signer"\n')),(0,r.kt)("p",null,"Different from other ",(0,r.kt)("a",{parentName:"p",href:"/how-to-deploy-and-call-a-contract/#signer"},"signers"),", we can get two addresses from ",(0,r.kt)("inlineCode",{parentName:"p"},"PandaSigner")," after the user authorizes the connect action:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"getDefaultAddress()"),", the address for sending and receiving BSV, paying transaction fees, etc. The same as other signers."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"getOrdAddress()"),", the address for receiving Ordinals ",(0,r.kt)("strong",{parentName:"li"},"only"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const [connectedPayAddress, setConnectedPayAddress] = useState(undefined)\nconst [connectedOrdiAddress, setConnectedOrdiAddress] = useState(undefined) \n...\nasync function connect() {\n const signer = new PandaSigner(new OrdiProvider()) // <---- use `PandaSigner`\n const { isAuthenticated, error } = await signer.requestAuth()\n if (!isAuthenticated) {\n throw new Error(`Unauthenticated: ${error}`)\n }\n setConnectedPayAddress(await signer.getDefaultAddress()) // <----\n setConnectedOrdiAddress(await signer.getOrdAddress()) // <----\n}\n")),(0,r.kt)("h3",{id:"load-ordinals-1"},"Load Ordinals"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8515).Z,width:"2880",height:"1750"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(6479).Z,width:"2880",height:"1752"})),(0,r.kt)("h3",{id:"list-an-ordinal-1"},"List an Ordinal"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8738).Z,width:"2880",height:"1752"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(3965).Z,width:"2880",height:"1748"})),(0,r.kt)("h3",{id:"buy-an-ordinal-1"},"Buy an Ordinal"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(7087).Z,width:"2880",height:"1752"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(4851).Z,width:"2880",height:"1752"})),(0,r.kt)("h2",{id:"conclusion"},"Conclusion"),(0,r.kt)("p",null,"Congratulations! You have successfully completed a full-stack dApp that can sell 1Sat Ordinals on Bitcoin."),(0,r.kt)("p",null,"The full example repo can be found ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/ordinal-lock-demo"},"here"),"."))}p.isMDXComponent=!0},8099:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/buy1-0cca34ece542fab6f2681485fd602e1b.png"},8831:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/buy2-520cf27a5dc308e0f6823f61a1844e08.png"},7657:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/buy3-f25e3059d0ef019132bd634528f7b71c.png"},7083:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/buy4-8d286427b76802c0be1e4fda7cb7217d.png"},7312:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/load1-bb1f4c54b02b4f3179f17b1dff13a847.png"},5517:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/load2-56db013c94c63eefd6a7840ea119b580.png"},7087:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-buy1-760d3cfc34c6b3b71317f1d94ee25d4d.png"},4851:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-buy2-b0485d04c8a45b8023adfab6adf60973.png"},8515:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-load1-ed689b87b5c3ceb624784955bbe406e7.png"},6479:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-load2-739539800f9f58fcc14ae48753544fc0.png"},8738:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-sell1-d66738e7347241df7974429445559efb.png"},3965:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-sell2-6c50f63a5ad9677bd47408cf10afc3bf.png"},8965:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/sell1-05b4faee211f41647fecb4b83e4c98f2.png"},8375:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/sell2-3bac875c5790de2b6997a7139621c6b7.png"}}]); \ No newline at end of file diff --git a/assets/js/f8498202.fe249a7b.js b/assets/js/f8498202.fe249a7b.js deleted file mode 100644 index 179ad694f..000000000 --- a/assets/js/f8498202.fe249a7b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[4440],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),c=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(o.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,o=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=c(n),h=r,m=u["".concat(o,".").concat(h)]||u[h]||p[h]||s;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const s={sidebar_position:4},i="Tutorial 4: Ordinal Lock",l={unversionedId:"tokens/tutorials/ordinal-lock",id:"tokens/tutorials/ordinal-lock",title:"Tutorial 4: Ordinal Lock",description:"Overview",source:"@site/docs/tokens/tutorials/ordinal-lock.md",sourceDirName:"tokens/tutorials",slug:"/tokens/tutorials/ordinal-lock",permalink:"/tokens/tutorials/ordinal-lock",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Tutorial 3: Mint BSV20 V1 Token",permalink:"/tokens/tutorials/mint-bsv20-v1"},next:{title:"Tutorial 5: How to verify a BSV20 token",permalink:"/tokens/tutorials/how-to-verify-a-BSV20-transaction"}},o={},c=[{value:"Overview",id:"overview",level:2},{value:"Contract",id:"contract",level:2},{value:"Constructor",id:"constructor",level:3},{value:"Methods",id:"methods",level:3},{value:"Frontend",id:"frontend",level:2},{value:"Setup Project",id:"setup-project",level:3},{value:"Install the sCrypt SDK",id:"install-the-scrypt-sdk",level:3},{value:"Compile Contract",id:"compile-contract",level:3},{value:"Load Contract Artifact",id:"load-contract-artifact",level:3},{value:"Connect Signer to OrdiProvider",id:"connect-signer-to-ordiprovider",level:3},{value:"Integrate Wallet",id:"integrate-wallet",level:3},{value:"Load Ordinals",id:"load-ordinals",level:3},{value:"List an Ordinal",id:"list-an-ordinal",level:3},{value:"Buy an Ordinal",id:"buy-an-ordinal",level:3},{value:"Use Panda Wallet",id:"use-panda-wallet",level:2},{value:"Load Ordinals",id:"load-ordinals-1",level:3},{value:"List an Ordinal",id:"list-an-ordinal-1",level:3},{value:"Buy an Ordinal",id:"buy-an-ordinal-1",level:3},{value:"Conclusion",id:"conclusion",level:2}],d={toc:c};function p(e){let{components:t,...s}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"tutorial-4-ordinal-lock"},"Tutorial 4: Ordinal Lock"),(0,r.kt)("h2",{id:"overview"},"Overview"),(0,r.kt)("p",null,"In this tutorial, we will go over how to use ",(0,r.kt)("a",{parentName:"p",href:"https://scrypt.io/"},"sCrypt")," to build a full-stack dApp on Bitcoin to sell ",(0,r.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/"},"1Sat Ordinals"),", including the smart contract and an interactive front-end."),(0,r.kt)("h2",{id:"contract"},"Contract"),(0,r.kt)("p",null,"The contract ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/scrypt-ord/blob/master/tests/contracts/ordinalLock.ts"},"OrdinalLock")," allows an ordinal to be offered up for sale on a decentralized marketplace. These listings can be purchased by anyone who is able to pay the requested price. Listings can also be cancelled by the person who listed them."),(0,r.kt)("p",null,"To record the seller and price, we need to add two properties to the contract."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"export class OrdinalLock extends OrdinalNFT {\n @prop()\n seller: PubKey\n\n @prop()\n amount: bigint\n \n ...\n}\n")),(0,r.kt)("h3",{id:"constructor"},"Constructor"),(0,r.kt)("p",null,"Initialize all the ",(0,r.kt)("inlineCode",{parentName:"p"},"@prop")," properties in the constructor."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"constructor(seller: PubKey, amount: bigint) {\n super()\n this.init(...arguments)\n this.seller = seller\n this.amount = amount\n}\n")),(0,r.kt)("h3",{id:"methods"},"Methods"),(0,r.kt)("p",null,"The public method ",(0,r.kt)("inlineCode",{parentName:"p"},"purchase")," only needs to confine the transaction's outputs to contain:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"transfer ordinal to the buyer"),(0,r.kt)("li",{parentName:"ul"},"payment to the seller")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"@method()\npublic purchase(receiver: Addr) {\n const outputs =\n Utils.buildAddressOutput(receiver, 1n) + // ordinal to the buyer\n Utils.buildAddressOutput(hash160(this.seller), this.amount) + // fund to the seller\n this.buildChangeOutput()\n assert(this.ctx.hashOutputs == hash256(outputs), 'hashOutputs check failed')\n}\n")),(0,r.kt)("p",null,"The ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/scrypt-ord/blob/master/tests/contracts/ordinalLock.ts"},"final complete code")," is as follows:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import { Addr, prop, method, Utils, hash256, assert, ContractTransaction, bsv, PubKey, hash160, Sig, SigHash } from 'scrypt-ts'\nimport { OrdiMethodCallOptions, OrdinalNFT } from '../scrypt-ord'\n\nexport class OrdinalLock extends OrdinalNFT {\n @prop()\n seller: PubKey\n\n @prop()\n amount: bigint\n\n constructor(seller: PubKey, amount: bigint) {\n super()\n this.init(...arguments)\n this.seller = seller\n this.amount = amount\n }\n\n @method()\n public purchase(receiver: Addr) {\n const outputs =\n Utils.buildAddressOutput(receiver, 1n) + // ordinal to the buyer\n Utils.buildAddressOutput(hash160(this.seller), this.amount) + // fund to the seller\n this.buildChangeOutput()\n assert(\n this.ctx.hashOutputs == hash256(outputs),\n 'hashOutputs check failed'\n )\n }\n\n @method(SigHash.ANYONECANPAY_SINGLE)\n public cancel(sig: Sig) {\n assert(this.checkSig(sig, this.seller), 'seller signature check failed')\n const outputs = Utils.buildAddressOutput(hash160(this.seller), 1n) // ordinal back to the seller\n assert(\n this.ctx.hashOutputs == hash256(outputs),\n 'hashOutputs check failed'\n )\n }\n\n static async buildTxForPurchase(\n current: OrdinalLock,\n options: OrdiMethodCallOptions,\n receiver: Addr\n ): Promise {\n const defaultAddress = await current.signer.getDefaultAddress()\n const tx = new bsv.Transaction()\n .addInput(current.buildContractInput())\n .addOutput(\n new bsv.Transaction.Output({\n script: bsv.Script.fromHex(\n Utils.buildAddressScript(receiver)\n ),\n satoshis: 1,\n })\n )\n .addOutput(\n new bsv.Transaction.Output({\n script: bsv.Script.fromHex(\n Utils.buildAddressScript(hash160(current.seller))\n ),\n satoshis: Number(current.amount),\n })\n )\n .change(options.changeAddress || defaultAddress)\n return {\n tx,\n atInputIndex: 0,\n nexts: [],\n }\n }\n\n static async buildTxForCancel(\n current: OrdinalLock,\n options: OrdiMethodCallOptions\n ): Promise {\n const defaultAddress = await current.signer.getDefaultAddress()\n const tx = new bsv.Transaction()\n .addInput(current.buildContractInput())\n .addOutput(\n new bsv.Transaction.Output({\n script: bsv.Script.fromHex(\n Utils.buildAddressScript(hash160(current.seller))\n ),\n satoshis: 1,\n })\n )\n .change(options.changeAddress || defaultAddress)\n return {\n tx,\n atInputIndex: 0,\n nexts: [],\n }\n }\n}\n")),(0,r.kt)("p",null,"Note the customized calling method ",(0,r.kt)("inlineCode",{parentName:"p"},"buildTxForPurchase")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"buildTxForCancel")," ensure the ordinal is in the first input and goes to the first output, which is also a 1sat output."),(0,r.kt)("h2",{id:"frontend"},"Frontend"),(0,r.kt)("p",null,"We will add a frontend to the ",(0,r.kt)("inlineCode",{parentName:"p"},"OrdinalLock")," smart contract accroding to this ",(0,r.kt)("a",{parentName:"p",href:"/how-to-integrate-a-frontend/"},"guide"),"."),(0,r.kt)("h3",{id:"setup-project"},"Setup Project"),(0,r.kt)("p",null,"The front-end will be created using ",(0,r.kt)("a",{parentName:"p",href:"https://create-react-app.dev/"},"Create React App"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npx create-react-app ordinal-lock-demo --template typescript\n")),(0,r.kt)("h3",{id:"install-the-scrypt-sdk"},"Install the sCrypt SDK"),(0,r.kt)("p",null,"The sCrypt SDK enables you to easily compile, test, deploy, and call contracts."),(0,r.kt)("p",null,"Use the ",(0,r.kt)("inlineCode",{parentName:"p"},"scrypt-cli")," command line to install the SDK."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd ordinal-lock-demo\nnpm i scrypt-ord\nnpx scrypt-cli init\n")),(0,r.kt)("p",null,"This command will create a contract under ",(0,r.kt)("inlineCode",{parentName:"p"},"src/contracts"),". Replace the file with the contract written ",(0,r.kt)("a",{parentName:"p",href:"#final-code"},"above"),"."),(0,r.kt)("h3",{id:"compile-contract"},"Compile Contract"),(0,r.kt)("p",null,"Compile the contract with the following command: "),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npx scrypt-cli compile\n")),(0,r.kt)("p",null,"This command will generate a contract artifact file under ",(0,r.kt)("inlineCode",{parentName:"p"},"artifacts"),"."),(0,r.kt)("h3",{id:"load-contract-artifact"},"Load Contract Artifact"),(0,r.kt)("p",null,"Before writing the front-end code, we need to load the contract artifact in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/index.tsx"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"import { OrdinalLock } from './contracts/ordinalLock'\nimport artifact from '../artifacts/ordinalLock.json'\nOrdinalLock.loadArtifact(artifact)\n")),(0,r.kt)("h3",{id:"connect-signer-to-ordiprovider"},"Connect Signer to ",(0,r.kt)("inlineCode",{parentName:"h3"},"OrdiProvider")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const provider = new OrdiProvider();\nconst signer = new SensiletSigner(provider);\n")),(0,r.kt)("h3",{id:"integrate-wallet"},"Integrate Wallet"),(0,r.kt)("p",null,"Use ",(0,r.kt)("inlineCode",{parentName:"p"},"requestAuth")," method of ",(0,r.kt)("inlineCode",{parentName:"p"},"signer")," to request access to the wallet."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"// request authentication\nconst { isAuthenticated, error } = await signer.requestAuth();\nif (!isAuthenticated) {\n // something went wrong, throw an Error with `error` message\n throw new Error(error);\n}\n\n// authenticated\n// ...\n")),(0,r.kt)("h3",{id:"load-ordinals"},"Load Ordinals"),(0,r.kt)("p",null,"After a user connect wallet, we can get the his address. Call the ",(0,r.kt)("a",{parentName:"p",href:"https://v3.ordinals.gorillapool.io/api/docs/"},"1Sat Ordinals API")," to retrieve ordinals on this address."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"useEffect(() => {\n loadCollections()\n}, [connectedAddress])\n\nfunction loadCollections() {\n if (connectedAddress) {\n const url = `https://v3.ordinals.gorillapool.io/api/txos/address/${connectedAddress.toString()}/unspent?bsv20=false`\n fetch(url).then(r => r.json()).then(r => r.filter(e => e.origin.data.insc.file.type !== 'application/bsv-20')).then(r => setCollections(r)) }\n}\n")),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(7312).Z,width:"2880",height:"1752"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(5517).Z,width:"2880",height:"1750"})),(0,r.kt)("h3",{id:"list-an-ordinal"},"List an Ordinal"),(0,r.kt)("p",null,"For each ordinal in the collection list, we can click the ",(0,r.kt)("inlineCode",{parentName:"p"},"Sell")," button to list it after filling in the selling price, in satoshis. Sell an ordinal means we need to create a contract instance, and then transfer the ordinal into it. Afterwards, the ordinal is under the control of the contract, meaning it can be bought by anyone paying the price to the seller."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"async function sell() {\n const signer = new SensiletSigner(new OrdiProvider())\n const publicKey = await signer.getDefaultPubKey()\n\n const instance = new OrdinalLock(PubKey(toHex(publicKey)), amount)\n await instance.connect(signer)\n\n const inscriptionUtxo = await parseUtxo(txid, vout)\n const inscriptionP2PKH = OrdiNFTP2PKH.fromUTXO(inscriptionUtxo)\n await inscriptionP2PKH.connect(signer)\n\n const { tx } = await inscriptionP2PKH.methods.unlock(\n (sigResps) => findSig(sigResps, publicKey),\n PubKey(toHex(publicKey)),\n {\n transfer: instance, // <---- \n pubKeyOrAddrToSign: publicKey,\n } as OrdiMethodCallOptions\n )\n}\n")),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://lucid.app/publicSegments/view/50527d66-0710-4658-b8db-b615d60232f8/image.png",alt:null})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8965).Z,width:"2880",height:"1750"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8375).Z,width:"2880",height:"1750"})),(0,r.kt)("h3",{id:"buy-an-ordinal"},"Buy an Ordinal"),(0,r.kt)("p",null,"To buy an ordinal that is on sale, we only need to call the contract public method ",(0,r.kt)("inlineCode",{parentName:"p"},"purchase"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"async function buy() {\n const signer = new SensiletSigner(new OrdiProvider())\n const address = await signer.getDefaultAddress()\n const { tx } = await instance.methods.purchase(Addr(address.toByteString()))\n}\n")),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://lucid.app/publicSegments/view/0b52243b-bdbc-4a13-b5b6-9386be80e155/image.png",alt:null})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8099).Z,width:"2880",height:"1750"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8831).Z,width:"2880",height:"1750"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(7657).Z,width:"2880",height:"1750"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(7083).Z,width:"2880",height:"1750"})),(0,r.kt)("h2",{id:"use-panda-wallet"},"Use Panda Wallet"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/Panda-Wallet/panda-wallet"},"Panda Wallet")," is an open-source and non-custodial web3 wallet for BSV and ",(0,r.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/"},"1Sat Ordinals"),". This wallet allows users to have full control over their funds, providing security and independence in managing their assets."),(0,r.kt)("p",null,"To support Panda Wallet in the dApp, we simply replace all the ",(0,r.kt)("inlineCode",{parentName:"p"},"SensiletSigner")," with ",(0,r.kt)("inlineCode",{parentName:"p"},"PandaSigner"),", that's all."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},'import { PandaSigner } from "scrypt-ts/dist/bsv/signers/panda-signer"\n')),(0,r.kt)("p",null,"Different from other ",(0,r.kt)("a",{parentName:"p",href:"/how-to-deploy-and-call-a-contract/#signer"},"signers"),", we can get two addresses from ",(0,r.kt)("inlineCode",{parentName:"p"},"PandaSigner")," after the user authorizes the connect action:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"getDefaultAddress()"),", the address for sending and receiving BSV, paying transaction fees, etc. The same as other signers."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"getOrdAddress()"),", the address for receiving Ordinals ",(0,r.kt)("strong",{parentName:"li"},"only"),".")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const [connectedPayAddress, setConnectedPayAddress] = useState(undefined)\nconst [connectedOrdiAddress, setConnectedOrdiAddress] = useState(undefined) \n...\nasync function connect() {\n const signer = new PandaSigner(new OrdiProvider()) // <---- use `PandaSigner`\n const { isAuthenticated, error } = await signer.requestAuth()\n if (!isAuthenticated) {\n throw new Error(`Unauthenticated: ${error}`)\n }\n setConnectedPayAddress(await signer.getDefaultAddress()) // <----\n setConnectedOrdiAddress(await signer.getOrdAddress()) // <----\n}\n")),(0,r.kt)("h3",{id:"load-ordinals-1"},"Load Ordinals"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8515).Z,width:"2880",height:"1750"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(6479).Z,width:"2880",height:"1752"})),(0,r.kt)("h3",{id:"list-an-ordinal-1"},"List an Ordinal"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8738).Z,width:"2880",height:"1752"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(3965).Z,width:"2880",height:"1748"})),(0,r.kt)("h3",{id:"buy-an-ordinal-1"},"Buy an Ordinal"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(7087).Z,width:"2880",height:"1752"})),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(4851).Z,width:"2880",height:"1752"})),(0,r.kt)("h2",{id:"conclusion"},"Conclusion"),(0,r.kt)("p",null,"Congratulations! You have successfully completed a full-stack dApp that can sell 1Sat Ordinals on Bitcoin."),(0,r.kt)("p",null,"The full example repo can be found ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/ordinal-lock-demo"},"here"),"."))}p.isMDXComponent=!0},8099:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/buy1-0cca34ece542fab6f2681485fd602e1b.png"},8831:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/buy2-520cf27a5dc308e0f6823f61a1844e08.png"},7657:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/buy3-f25e3059d0ef019132bd634528f7b71c.png"},7083:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/buy4-8d286427b76802c0be1e4fda7cb7217d.png"},7312:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/load1-bb1f4c54b02b4f3179f17b1dff13a847.png"},5517:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/load2-56db013c94c63eefd6a7840ea119b580.png"},7087:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-buy1-760d3cfc34c6b3b71317f1d94ee25d4d.png"},4851:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-buy2-b0485d04c8a45b8023adfab6adf60973.png"},8515:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-load1-ed689b87b5c3ceb624784955bbe406e7.png"},6479:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-load2-739539800f9f58fcc14ae48753544fc0.png"},8738:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-sell1-d66738e7347241df7974429445559efb.png"},3965:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/panda-sell2-6c50f63a5ad9677bd47408cf10afc3bf.png"},8965:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/sell1-05b4faee211f41647fecb4b83e4c98f2.png"},8375:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/sell2-3bac875c5790de2b6997a7139621c6b7.png"}}]); \ No newline at end of file diff --git a/assets/js/ffd93812.9b337fa3.js b/assets/js/ffd93812.9b337fa3.js new file mode 100644 index 000000000..cdbe0a7f6 --- /dev/null +++ b/assets/js/ffd93812.9b337fa3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[973],{3905:(t,e,n)=>{n.d(e,{Zo:()=>c,kt:()=>m});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var l=r.createContext({}),p=function(t){var e=r.useContext(l),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},c=function(t){var e=p(t.components);return r.createElement(l.Provider,{value:e},t.children)},u={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},f=r.forwardRef((function(t,e){var n=t.components,a=t.mdxType,o=t.originalType,l=t.parentName,c=s(t,["components","mdxType","originalType","parentName"]),f=p(n),m=a,d=f["".concat(l,".").concat(m)]||f[m]||u[m]||o;return n?r.createElement(d,i(i({ref:e},c),{},{components:n})):r.createElement(d,i({ref:e},c))}));function m(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var o=n.length,i=new Array(o);i[0]=f;var s={};for(var l in e)hasOwnProperty.call(e,l)&&(s[l]=e[l]);s.originalType=t,s.mdxType="string"==typeof t?t:a,i[1]=s;for(var p=2;p{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905));const o={title:"View BSV20 Token Transactions",sidebar_position:3},i=void 0,s={unversionedId:"tokens/ft/how-to-verify-a-BSV20-transaction",id:"tokens/ft/how-to-verify-a-BSV20-transaction",title:"View BSV20 Token Transactions",description:"You can use WhatsOnChain to view a BSV20 token transaction, using our open source BSV20 plugin.",source:"@site/docs/tokens/ft/how-to-verify-a-BSV20-transaction.md",sourceDirName:"tokens/ft",slug:"/tokens/ft/how-to-verify-a-BSV20-transaction",permalink:"/tokens/ft/how-to-verify-a-BSV20-transaction",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"View BSV20 Token Transactions",sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Multiple Inputs with Different Contracts",permalink:"/tokens/ft/multiple"},next:{title:"Tutorials",permalink:"/category/tutorials"}},l={},p=[{value:"Transfer",id:"transfer",level:2},{value:"Deploy / Mint",id:"deploy--mint",level:2}],c={toc:p};function u(t){let{components:e,...o}=t;return(0,a.kt)("wrapper",(0,r.Z)({},c,o,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"You can use ",(0,a.kt)("a",{parentName:"p",href:"https://whatsonchain.com/"},"WhatsOnChain")," to view a BSV20 token transaction, using our open source ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/sCrypt-Inc/bsv20-plugin"},"BSV20 plugin"),"."),(0,a.kt)("p",null,"A transaction can be viewed in WhatsOnChain via the following url:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"https://whatsonchain.com/tx/{txid}\n")),(0,a.kt)("p",null,"If it is a ",(0,a.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/bsv20"},"BSV20")," transaction like ",(0,a.kt)("a",{parentName:"p",href:"https://whatsonchain.com/tx/2c499c1c15924e04cc009ddc2efe2b16bb8492483b13f514f9689cd7effdd48e"},"this"),", you can click on the BSV20 plugin to see its details.\n",(0,a.kt)("img",{src:n(8487).Z,width:"2734",height:"1794"})),(0,a.kt)("h2",{id:"transfer"},"Transfer"),(0,a.kt)("p",null,"In the plugin, we can see the following information:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"id:")," token id"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"op:")," operation in bsv20 terms"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"amount:")," bsv20 token amount held by the utxo"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"owner:")," bsv20 token owner (only applies to P2PKH)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Non-BSV20 input:"),": the input does not contain BSV20 tokens"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Non-BSV20 output:"),": the output does not contain BSV20 tokens")),(0,a.kt)("p",null,"We can also see the status of tokens at the top:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"validated:")," valid tokens that has been verified"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"pending:")," valid tokens that has yet to be verified"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"invalid:")," invalid tokens.")),(0,a.kt)("h2",{id:"deploy--mint"},"Deploy / Mint"),(0,a.kt)("p",null,"If the transaction is a token deployment transaction, we will see something similar to:"),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(1482).Z,width:"1768",height:"630"})),(0,a.kt)("p",null,"The transaction does not contain any BSV20 token input and it has other fields:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"symbol:")," the symbol of the token"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"decimals:")," decimal precision, defaults to ",(0,a.kt)("inlineCode",{parentName:"li"},"0"),". This is different from BRC20 which defaults to 18.")),(0,a.kt)("hr",null),(0,a.kt)("p",null,"[1]"," We support both BSV20 v1 and ",(0,a.kt)("a",{parentName:"p",href:"https://docs.1satordinals.com/bsv20#new-in-v2-tickerless-mode"},"v2"),"."))}u.isMDXComponent=!0},8487:(t,e,n)=>{n.d(e,{Z:()=>r});const r=n.p+"assets/images/bsv20-plugin_1-2cf9b6b5ecc61831fa404b853bfb4128.png"},1482:(t,e,n)=>{n.d(e,{Z:()=>r});const r=n.p+"assets/images/bsv20-plugin_2-dcfcde9712acfce3a180edd9bab1a4ef.png"}}]); \ No newline at end of file diff --git a/assets/js/main.115671e8.js b/assets/js/main.115671e8.js new file mode 100644 index 000000000..ea6777dd4 --- /dev/null +++ b/assets/js/main.115671e8.js @@ -0,0 +1,2 @@ +/*! For license information please see main.115671e8.js.LICENSE.txt */ +(self.webpackChunkscrypt_docs=self.webpackChunkscrypt_docs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),s=n(6887);const l={"01e59a88":[()=>n.e(7738).then(n.bind(n,3553)),"@site/docs/tutorials/tic-tac-toe.md",3553],"03e490ce":[()=>n.e(2462).then(n.bind(n,3164)),"@site/docs/reference/interfaces/SubscribeOptions.md",3164],"0480b142":[()=>n.e(836).then(n.bind(n,3584)),"@site/docs/faq.md",3584],"06de43e0":[()=>n.e(1567).then(n.bind(n,429)),"@site/docs/reference/modules/bsv.Networks.md",429],"07109bdf":[()=>n.e(2006).then(n.t.bind(n,7085,19)),"/github/workspace/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"0ccfb315":[()=>n.e(2328).then(n.bind(n,2502)),"@site/docs/reference/interfaces/TxInputRef.md",2502],"10d519e3":[()=>n.e(2217).then(n.bind(n,9252)),"@site/docs/reference/classes/bsv.ECIES.md",9252],"138eedef":[()=>n.e(8881).then(n.bind(n,8008)),"@site/docs/reference/classes/bsv.HDPublicKey.md",8008],"14155be4":[()=>n.e(1217).then(n.bind(n,7792)),"@site/docs/reference/interfaces/SignTransactionOptions.md",7792],"14b44c09":[()=>n.e(462).then(n.bind(n,2083)),"@site/docs/reference/classes/bsv.crypto.Point.md",2083],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,4228)),"@theme/DocCategoryGeneratedIndexPage",4228],"1788e182":[()=>n.e(2813).then(n.bind(n,7560)),"@site/docs/how-to-integrate-a-frontend/how-to-integrate-a-frontend.md",7560],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,5824)),"@theme/DocItem",5824],"17a77d31":[()=>n.e(6240).then(n.bind(n,6326)),"@site/docs/reference/classes/bsv.Transaction.Input-1.md",6326],"17b1a180":[()=>n.e(7839).then(n.bind(n,8623)),"@site/docs/reference/classes/bsv.encoding.Base58.md",8623],"19eca43a":[()=>n.e(9100).then(n.bind(n,7855)),"@site/docs/reference/classes/DefaultProvider.md",7855],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,3044)),"@theme/SearchPage",3044],"1a54843f":[()=>n.e(8150).then(n.t.bind(n,3775,19)),"~docs/default/category-tutorialsidebar-category-tutorials-1-91c.json",3775],"1a6f2b55":[()=>n.e(1689).then(n.bind(n,7937)),"@site/docs/reference/classes/bsv.Unit.md",7937],"1b1e1a52":[()=>n.e(8e3).then(n.bind(n,1689)),"@site/docs/advanced/inline-asm.md",1689],"1b23cebc":[()=>n.e(4030).then(n.bind(n,8261)),"@site/docs/reference/classes/bsv.Transaction.UnspentOutput.md",8261],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1cb1071b":[()=>n.e(1316).then(n.bind(n,9755)),"@site/docs/reference/classes/Constants.md",9755],"1db64337":[()=>n.e(1372).then(n.bind(n,6777)),"@site/docs/overview.md",6777],"205159e4":[()=>n.e(8151).then(n.bind(n,6885)),"@site/docs/reference/modules/bsv.crypto.md",6885],"2594e5e6":[()=>n.e(6938).then(n.bind(n,3744)),"@site/docs/reference/interfaces/MethodCallOptions.md",3744],"26d5742a":[()=>n.e(7097).then(n.bind(n,2776)),"@site/docs/reference/modules/bsv.Transaction.Sighash.md",2776],"27431a05":[()=>n.e(6308).then(n.bind(n,3506)),"@site/docs/reference/enums/SignatureHashType.md",3506],"2920d9d5":[()=>n.e(8929).then(n.bind(n,7698)),"@site/docs/how-to-write-a-contract/scriptcontext.md",7698],"2ab2aa69":[()=>n.e(2807).then(n.bind(n,384)),"@site/docs/tutorials/oracle.md",384],"2d3d592f":[()=>n.e(8380).then(n.bind(n,6081)),"@site/docs/reference/classes/bsv.crypto.Signature.md",6081],"313836b0":[()=>n.e(4564).then(n.bind(n,2501)),"@site/docs/reference/interfaces/SignatureResponse.md",2501],"31d8d510":[()=>n.e(8413).then(n.bind(n,2610)),"@site/docs/reference/interfaces/bsv.crypto.IOpts.md",2610],"331ef79c":[()=>n.e(2895).then(n.bind(n,7621)),"@site/docs/reference/modules/bsv.crypto.ECDSA.md",7621],"33426d98":[()=>n.e(5065).then(n.bind(n,2329)),"@site/docs/reference/classes/ScryptProvider.md",2329],"33a4e2e3":[()=>n.e(3542).then(n.bind(n,1692)),"@site/docs/reference/classes/DotwalletSigner.md",1692],"3658c897":[()=>n.e(6091).then(n.bind(n,3971)),"@site/docs/reference/classes/bsv.Address.md",3971],"3666a527":[()=>n.e(9615).then(n.bind(n,8589)),"@site/docs/how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx.md",8589],"38b1c6c6":[()=>n.e(3690).then(n.bind(n,8958)),"@site/docs/advanced/how-to-build-an-oracle-service.md",8958],"3b8c55ea":[()=>n.e(3217).then(n.bind(n,9250)),"@site/docs/installation.md",9250],"3bac039d":[()=>n.e(4734).then(n.bind(n,9306)),"@site/docs/tokens/tutorials/inscribe-image.md",9306],"3d41d66e":[()=>n.e(5330).then(n.bind(n,7487)),"@site/docs/reference/interfaces/MethodCallTxBuilder.md",7487],"3d8a8d1b":[()=>n.e(1168).then(n.bind(n,2177)),"@site/docs/reference/classes/WhatsonchainProvider.md",2177],"3ff43f10":[()=>n.e(5294).then(n.t.bind(n,6086,19)),"~docs/default/category-tutorialsidebar-category-advanced-263.json",6086],"419555a2":[()=>n.e(1712).then(n.bind(n,7597)),"@site/docs/reference/classes/bsv.crypto.BN.md",7597],"440910b0":[()=>n.e(7944).then(n.bind(n,3377)),"@site/docs/reference/classes/bsv.BlockHeader.md",3377],"45c8a2be":[()=>n.e(4661).then(n.bind(n,4619)),"@site/docs/advanced/how-to-add-a-signer.md",4619],"47d5ee98":[()=>n.e(8005).then(n.bind(n,8293)),"@site/docs/reference/modules/bsv.Script.md",8293],"4ace2938":[()=>n.e(4709).then(n.bind(n,8974)),"@site/docs/reference/interfaces/ContractCalledEvent.md",8974],"4af4b6e8":[()=>n.e(1826).then(n.bind(n,3614)),"@site/docs/reference/classes/GorillapoolProvider.md",3614],"4c37cee5":[()=>n.e(2441).then(n.bind(n,4909)),"@site/docs/advanced/sighash-type.md",4909],"4d00a19e":[()=>n.e(966).then(n.bind(n,4660)),"@site/docs/reference/classes/bsv.encoding.Base58Check.md",4660],"4d48c635":[()=>n.e(4759).then(n.t.bind(n,3769,19)),"/github/workspace/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"4e65a820":[()=>n.e(7966).then(n.bind(n,1318)),"@site/docs/how-to-deploy-and-call-a-contract/deploy-cli.md",1318],"50b48b43":[()=>n.e(6384).then(n.bind(n,8692)),"@site/docs/tokens/tutorials/mint-bsv20-v2.md",8692],"51cfe601":[()=>n.e(6201).then(n.bind(n,7818)),"@site/docs/reference/modules/bsv.crypto.Random.md",7818],"51d1dba0":[()=>n.e(1636).then(n.bind(n,7954)),"@site/docs/how-to-deploy-and-call-a-contract/call-deployed.md",7954],"54547e85":[()=>n.e(9404).then(n.bind(n,3170)),"@site/docs/tutorials/hello-world.md",3170],"5455d950":[()=>n.e(5120).then(n.bind(n,2774)),"@site/docs/reference/classes/bsv.HDPrivateKey.md",2774],55201687:[()=>n.e(5994).then(n.bind(n,7419)),"@site/docs/reference/interfaces/bsv.Script.Interpreter.InterpretState.md",7419],"5637ccf6":[()=>n.e(5020).then(n.bind(n,4598)),"@site/docs/tokens/tutorials/mint-bsv20-v1.md",4598],"56b58987":[()=>n.e(3040).then(n.bind(n,5046)),"@site/docs/reference/interfaces/MultiContractCallOptions.md",5046],"56d75774":[()=>n.e(4088).then(n.t.bind(n,5745,19)),"/github/workspace/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"572d3f0b":[()=>n.e(6325).then(n.bind(n,6112)),"@site/docs/tokens/nft/nft.md",6112],"5ba26743":[()=>n.e(3841).then(n.bind(n,1953)),"@site/docs/reference/interfaces/StatefulNext.md",1953],"5e70887e":[()=>n.e(9147).then(n.bind(n,9980)),"@site/docs/reference/classes/bsv.encoding.BufferWriter.md",9980],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"61e13606":[()=>n.e(3808).then(n.bind(n,8214)),"@site/docs/reference/interfaces/TxContext.md",8214],"6484c565":[()=>n.e(7147).then(n.bind(n,6740)),"@site/docs/reference/interfaces/bsv.Networks.Network.md",6740],66540400:[()=>n.e(5937).then(n.bind(n,5183)),"@site/docs/reference/classes/SmartContract.md",5183],"67ff73b9":[()=>n.e(2317).then(n.bind(n,4790)),"@site/docs/reference/interfaces/ScryptConfig.md",4790],"6958f4b4":[()=>n.e(6341).then(n.bind(n,3878)),"@site/docs/how-to-test-a-contract.md",3878],"69c71146":[()=>n.e(6364).then(n.bind(n,1819)),"@site/docs/ethereum-devs.md",1819],"6c2dbd7a":[()=>n.e(6857).then(n.bind(n,6029)),"@site/docs/tokens/tokens.md",6029],"6d1a890e":[()=>n.e(9442).then(n.bind(n,5869)),"@site/docs/advanced/codeseparator.md",5869],"6d80b1c2":[()=>n.e(8203).then(n.bind(n,5841)),"@site/docs/reference/classes/SigHash.md",5841],"6eaa7f88":[()=>n.e(7154).then(n.bind(n,4616)),"@site/docs/advanced/how-to-replay-instance.md",4616],"6ed84bca":[()=>n.e(100).then(n.bind(n,9151)),"@site/docs/reference/interfaces/MultiContractTransaction.md",9151],"70db8588":[()=>n.e(21).then(n.bind(n,183)),"@site/docs/reference/interfaces/ScriptContext.md",183],"7225f144":[()=>n.e(208).then(n.bind(n,1731)),"@site/docs/reference/classes/HashedMap.md",1731],"727923c4":[()=>n.e(3732).then(n.bind(n,7974)),"@site/docs/reference/classes/bsv.Script.Interpreter-1.md",7974],"7381381c":[()=>n.e(7701).then(n.bind(n,2767)),"@site/docs/reference/classes/Signer.md",2767],"73e21f82":[()=>n.e(275).then(n.bind(n,1277)),"@site/docs/advanced/how-to-call-multiple-contracts.md",1277],"74e275e2":[()=>n.e(1112).then(n.bind(n,8920)),"@site/docs/how-to-deploy-and-call-a-contract/faucet.md",8920],"74f9bace":[()=>n.e(8142).then(n.bind(n,3568)),"@site/docs/reference/classes/bsv.Transaction.Output.md",3568],"77dda5d6":[()=>n.e(2018).then(n.bind(n,3242)),"@site/docs/how-to-publish-a-contract.md",3242],"787f7b6d":[()=>n.e(8245).then(n.bind(n,9412)),"@site/docs/reference/interfaces/bsv.Script.IOpChunk.md",9412],"7b430b5d":[()=>n.e(4568).then(n.bind(n,8510)),"@site/docs/reference/classes/VarIntWriter.md",8510],"7c4be5dd":[()=>n.e(589).then(n.bind(n,7176)),"@site/docs/reference/classes/DummyProvider.md",7176],"7d4560fc":[()=>n.e(8944).then(n.bind(n,6250)),"@site/docs/reference/classes/TAALSigner.md",6250],"7fde2f23":[()=>n.e(8062).then(n.bind(n,292)),"@site/docs/reference/interfaces/UtxoQueryOptions.md",292],"80d01892":[()=>n.e(3139).then(n.bind(n,9894)),"@site/docs/reference/classes/TaalProvider.md",9894],"82e67270":[()=>n.e(3204).then(n.bind(n,3681)),"@site/docs/reference/classes/Provider.md",3681],"83e3cb0c":[()=>n.e(4428).then(n.bind(n,4093)),"@site/docs/reference/modules/bsv.Transaction.Input.md",4093],"83f962c1":[()=>n.e(3826).then(n.bind(n,8656)),"@site/docs/reference/classes/SensiletSigner.md",8656],"83fb1adc":[()=>n.e(1220).then(n.bind(n,370)),"@site/docs/reference/interfaces/bsv.Util.md",370],"862d9758":[()=>n.e(5636).then(n.bind(n,2010)),"@site/docs/reference/interfaces/TxOutputRef.md",2010],"874dec39":[()=>n.e(3317).then(n.bind(n,6165)),"@site/docs/reference/modules/bsv.crypto.Hash.md",6165],"879ebe09":[()=>n.e(2185).then(n.bind(n,2302)),"@site/docs/reference/modules/bsv.Script.Interpreter.md",2302],"8e2eb00b":[()=>n.e(6297).then(n.bind(n,4343)),"@site/docs/how-to-write-a-contract/stateful-contract.md",4343],"910cd6a4":[()=>n.e(2).then(n.bind(n,2728)),"@site/docs/tokens/ft/existing.md",2728],"912ef652":[()=>n.e(2287).then(n.bind(n,9379)),"@site/docs/reference/modules/bsv.Transaction.md",9379],"924f1c1c":[()=>n.e(4560).then(n.bind(n,2942)),"@site/docs/reference/classes/bsv.Transaction-1.md",2942],"9277e5e6":[()=>n.e(2997).then(n.bind(n,3552)),"@site/docs/tokens/ft/multiple.md",3552],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9b05ebac":[()=>n.e(7945).then(n.bind(n,4450)),"@site/docs/reference/classes/bsv.Transaction.Input.PublicKeyHash.md",4450],"9bd2e2d8":[()=>n.e(3392).then(n.bind(n,8636)),"@site/docs/reference/README.md",8636],"9bda8f72":[()=>n.e(3016).then(n.bind(n,6545)),"@site/docs/reference/interfaces/ContractTransaction.md",6545],"9e9f554b":[()=>n.e(2106).then(n.bind(n,9460)),"@site/docs/reference/modules/bsv.encoding.md",9460],"9fc92457":[()=>n.e(980).then(n.bind(n,2412)),"@site/docs/reference/classes/VarIntReader.md",2412],"9fcad7a3":[()=>n.e(2890).then(n.bind(n,4676)),"@site/docs/reference/classes/bsv.Block.md",4676],"9fea62fb":[()=>n.e(4337).then(n.bind(n,1005)),"@site/docs/reference/classes/bsv.Message.md",1005],a1bc6bc5:[()=>n.e(7333).then(n.bind(n,827)),"@site/docs/reference/classes/Utils.md",827],a5c7ba44:[()=>n.e(7062).then(n.bind(n,9475)),"@site/docs/tokens/ft/ft.md",9475],a7d37132:[()=>n.e(2894).then(n.bind(n,3182)),"@site/docs/reference/interfaces/Outpoint.md",3182],a7e31d84:[()=>n.e(3012).then(n.bind(n,7198)),"@site/docs/reference/classes/BsvApi.md",7198],ad5627e3:[()=>n.e(9968).then(n.bind(n,8351)),"@site/docs/reference/classes/TestWallet.md",8351],adc4c70f:[()=>n.e(7653).then(n.bind(n,4842)),"@site/docs/how-to-deploy-and-call-a-contract/how-to-deploy-and-call-a-contract.md",4842],b16c2f66:[()=>n.e(4346).then(n.bind(n,4520)),"@site/docs/advanced/timeLock.md",4520],b40963c8:[()=>n.e(5700).then(n.bind(n,6185)),"@site/docs/how-to-debug-a-contract.md",6185],b47ebff3:[()=>n.e(704).then(n.bind(n,7945)),"@site/docs/reference/interfaces/DefaultProviderOption.md",7945],b6325b43:[()=>n.e(8241).then(n.bind(n,2203)),"@site/docs/reference/classes/HashedSet.md",2203],b7851e83:[()=>n.e(4617).then(n.bind(n,639)),"@site/docs/how-to-write-a-contract/built-ins.md",639],b7e6597b:[()=>n.e(6672).then(n.bind(n,9571)),"@site/docs/advanced/how-to-integrate-scrypt-service.md",9571],b99126ff:[()=>n.e(4141).then(n.bind(n,8694)),"@site/docs/reference/classes/bsv.Transaction.Signature.md",8694],bb7a85de:[()=>n.e(351).then(n.bind(n,2786)),"@site/docs/how-to-integrate-a-frontend/how-to-integrate-dotwallet.md",2786],bffcfebc:[()=>n.e(2133).then(n.bind(n,2959)),"@site/docs/reference/classes/bsv.Mnemonic.md",2959],c023801b:[()=>n.e(2828).then(n.bind(n,3493)),"@site/docs/reference/interfaces/TransactionResponse.md",3493],c138b1fa:[()=>n.e(4831).then(n.bind(n,2731)),"@site/docs/reference/modules/bsv.md",2731],c186e46b:[()=>n.e(6138).then(n.bind(n,2652)),"@site/src/pages/overview.js",2652],c29255d2:[()=>n.e(4089).then(n.bind(n,9175)),"@site/docs/advanced/how-to-debug-scriptcontext.md",9175],c2959c58:[()=>n.e(3831).then(n.bind(n,2609)),"@site/docs/reference/classes/bsv.PublicKey.md",2609],c49c0ac4:[()=>n.e(5032).then(n.bind(n,2764)),"@site/docs/reference/classes/bsv.PrivateKey.md",2764],c5a48ac7:[()=>n.e(6647).then(n.bind(n,6182)),"@site/docs/bitcoin-basics/bitcoin-basics.md",6182],ca2c86a8:[()=>n.e(1403).then(n.bind(n,8989)),"@site/docs/tutorials/auction.md",8989],cb43a3ec:[()=>n.e(5090).then(n.bind(n,448)),"@site/docs/reference/interfaces/SignatureRequest.md",448],cef480a7:[()=>n.e(2653).then(n.bind(n,9414)),"@site/docs/reference/interfaces/LogConfig.md",9414],d17b93f5:[()=>n.e(1033).then(n.bind(n,230)),"@site/docs/bitcoin-basics/bsv.md",230],d795c046:[()=>n.e(8790).then(n.bind(n,5825)),"@site/docs/reference/classes/SmartContractLib.md",5825],db37e9c8:[()=>n.e(8567).then(n.bind(n,5937)),"@site/docs/tokens/nft/existing.md",5937],db986b04:[()=>n.e(1811).then(n.bind(n,1298)),"@site/docs/reference/classes/OpCode.md",1298],dc5aa0c6:[()=>n.e(9318).then(n.bind(n,3017)),"@site/docs/reference/classes/bsv.MerkleBlock.md",3017],dcd4f12c:[()=>n.e(9268).then(n.bind(n,5412)),"@site/docs/reference/classes/bsv.Opcode.md",5412],dd80477d:[()=>n.e(3689).then(n.bind(n,8726)),"@site/docs/advanced/how-to-add-a-provider.md",8726],e37cbbfc:[()=>n.e(7139).then(n.bind(n,2165)),"@site/docs/tutorials/escrow.md",2165],e38e2f24:[()=>n.e(4855).then(n.bind(n,1764)),"@site/docs/reference/interfaces/RequestConfig.md",1764],e3a53a02:[()=>n.e(8455).then(n.bind(n,9251)),"@site/docs/reference/interfaces/bsv.Transaction.IUnspentOutput.md",9251],e4e10033:[()=>n.e(759).then(n.bind(n,2489)),"@site/docs/reference/interfaces/VerifyResult.md",2489],e525704c:[()=>n.e(666).then(n.bind(n,651)),"@site/docs/reference/classes/SensibleProvider.md",651],e74d5bd3:[()=>n.e(9016).then(n.bind(n,4629)),"@site/docs/reference/classes/bsv.Script-1.md",4629],e97527cd:[()=>n.e(9322).then(n.bind(n,865)),"@site/docs/reference/interfaces/SubScription.md",865],ec4bed84:[()=>n.e(7105).then(n.bind(n,8425)),"@site/docs/tutorials/voting.md",8425],ee294475:[()=>n.e(8182).then(n.bind(n,5692)),"@site/docs/reference/interfaces/Artifact.md",5692],f0ad07a9:[()=>n.e(9517).then(n.bind(n,8267)),"@site/docs/how-to-verify-a-contract.md",8267],f0d18cf5:[()=>n.e(284).then(n.bind(n,188)),"@site/docs/reference/classes/ContractApi.md",188],f1af8fb8:[()=>n.e(6387).then(n.bind(n,3712)),"@site/docs/reference/classes/ActionError.md",3712],f5fbe228:[()=>n.e(2705).then(n.bind(n,1713)),"@site/docs/reference/classes/FunctionCall.md",1713],f7fb2808:[()=>n.e(4421).then(n.t.bind(n,8862,19)),"~docs/default/category-tutorialsidebar-category-tutorials-b01.json",8862],f8498202:[()=>n.e(4440).then(n.bind(n,3595)),"@site/docs/tokens/tutorials/ordinal-lock.md",3595],fa011ef2:[()=>n.e(4999).then(n.bind(n,3386)),"@site/docs/reference/enums/ProviderEvent.md",3386],fa01f05c:[()=>n.e(2969).then(n.bind(n,8978)),"@site/docs/how-to-write-a-contract/how-to-write-a-contract.md",8978],fd8c99ae:[()=>n.e(3525).then(n.bind(n,1810)),"@site/docs/reference/classes/bsv.encoding.Varint.md",1810],fe61ad06:[()=>n.e(7719).then(n.bind(n,8141)),"@site/docs/tutorials/zkp.md",8141],ff282309:[()=>n.e(9348).then(n.bind(n,1404)),"@site/docs/reference/classes/bsv.encoding.BufferReader.md",1404],ffd93812:[()=>n.e(973).then(n.bind(n,9607)),"@site/docs/tokens/ft/how-to-verify-a-BSV20-transaction.md",9607]};function c(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(9670),d=n(226);function f(e,t){if("*"===e)return i()({loading:c,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=s[`${e}-${t}`],f={},p=[],m=[],h=(0,u.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=l[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:c,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const s=n.split(".");s.slice(0,-1).forEach((e=>{o=o[e]})),o[s[s.length-1]]=a}));const s=i.__comp;delete i.__comp;const l=i.__context;return delete i.__context,r.createElement(d.z,{value:l},r.createElement(s,(0,a.Z)({},i,n)))}})}const p=[{path:"/overview",component:f("/overview","775"),exact:!0},{path:"/search",component:f("/search","10f"),exact:!0},{path:"/",component:f("/","447"),routes:[{path:"/",component:f("/","dc5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/codeseparator",component:f("/advanced/codeseparator","4c2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/how-to-add-a-provider",component:f("/advanced/how-to-add-a-provider","bd3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/how-to-add-a-signer",component:f("/advanced/how-to-add-a-signer","e82"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/how-to-build-an-oracle-service",component:f("/advanced/how-to-build-an-oracle-service","7e1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/how-to-call-multiple-contracts",component:f("/advanced/how-to-call-multiple-contracts","cb2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/how-to-debug-scriptcontext",component:f("/advanced/how-to-debug-scriptcontext","cf6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/how-to-integrate-scrypt-service",component:f("/advanced/how-to-integrate-scrypt-service","250"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/how-to-replay-instance",component:f("/advanced/how-to-replay-instance","b3e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/inline-asm",component:f("/advanced/inline-asm","968"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/sighash-type",component:f("/advanced/sighash-type","dd9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/advanced/timeLock",component:f("/advanced/timeLock","c71"),exact:!0,sidebar:"tutorialSidebar"},{path:"/bitcoin-basics/",component:f("/bitcoin-basics/","364"),exact:!0,sidebar:"tutorialSidebar"},{path:"/bitcoin-basics/bsv",component:f("/bitcoin-basics/bsv","339"),exact:!0,sidebar:"tutorialSidebar"},{path:"/category/advanced",component:f("/category/advanced","5f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/category/tutorials",component:f("/category/tutorials","6d7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/category/tutorials-1",component:f("/category/tutorials-1","d08"),exact:!0,sidebar:"tutorialSidebar"},{path:"/ethereum-devs",component:f("/ethereum-devs","aea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/faq",component:f("/faq","204"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-debug-a-contract",component:f("/how-to-debug-a-contract","e00"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-deploy-and-call-a-contract/",component:f("/how-to-deploy-and-call-a-contract/","c9a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-deploy-and-call-a-contract/call-deployed",component:f("/how-to-deploy-and-call-a-contract/call-deployed","a5f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-deploy-and-call-a-contract/deploy-cli",component:f("/how-to-deploy-and-call-a-contract/deploy-cli","d4b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-deploy-and-call-a-contract/faucet",component:f("/how-to-deploy-and-call-a-contract/faucet","40f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx",component:f("/how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx","dd8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-integrate-a-frontend/",component:f("/how-to-integrate-a-frontend/","fc3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-integrate-a-frontend/how-to-integrate-dotwallet",component:f("/how-to-integrate-a-frontend/how-to-integrate-dotwallet","6dc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-publish-a-contract",component:f("/how-to-publish-a-contract","884"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-test-a-contract",component:f("/how-to-test-a-contract","5b9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-verify-a-contract",component:f("/how-to-verify-a-contract","c41"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-write-a-contract/",component:f("/how-to-write-a-contract/","d64"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-write-a-contract/built-ins",component:f("/how-to-write-a-contract/built-ins","58b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-write-a-contract/scriptcontext",component:f("/how-to-write-a-contract/scriptcontext","07f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/how-to-write-a-contract/stateful-contract",component:f("/how-to-write-a-contract/stateful-contract","3ea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/installation",component:f("/installation","2e7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/",component:f("/reference/","a0f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/ActionError",component:f("/reference/classes/ActionError","e70"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Address",component:f("/reference/classes/bsv.Address","9b3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Block",component:f("/reference/classes/bsv.Block","b5d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.BlockHeader",component:f("/reference/classes/bsv.BlockHeader","5ab"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.crypto.BN",component:f("/reference/classes/bsv.crypto.BN","155"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.crypto.Point",component:f("/reference/classes/bsv.crypto.Point","cdd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.crypto.Signature",component:f("/reference/classes/bsv.crypto.Signature","94c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.ECIES",component:f("/reference/classes/bsv.ECIES","264"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.encoding.Base58",component:f("/reference/classes/bsv.encoding.Base58","950"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.encoding.Base58Check",component:f("/reference/classes/bsv.encoding.Base58Check","1e5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.encoding.BufferReader",component:f("/reference/classes/bsv.encoding.BufferReader","3c0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.encoding.BufferWriter",component:f("/reference/classes/bsv.encoding.BufferWriter","f7a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.encoding.Varint",component:f("/reference/classes/bsv.encoding.Varint","30d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.HDPrivateKey",component:f("/reference/classes/bsv.HDPrivateKey","6b4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.HDPublicKey",component:f("/reference/classes/bsv.HDPublicKey","ca3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.MerkleBlock",component:f("/reference/classes/bsv.MerkleBlock","4a4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Message",component:f("/reference/classes/bsv.Message","6e1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Mnemonic",component:f("/reference/classes/bsv.Mnemonic","d30"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Opcode",component:f("/reference/classes/bsv.Opcode","778"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.PrivateKey",component:f("/reference/classes/bsv.PrivateKey","414"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.PublicKey",component:f("/reference/classes/bsv.PublicKey","753"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Script-1",component:f("/reference/classes/bsv.Script-1","f77"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Script.Interpreter-1",component:f("/reference/classes/bsv.Script.Interpreter-1","3f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Transaction-1",component:f("/reference/classes/bsv.Transaction-1","5a5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Transaction.Input-1",component:f("/reference/classes/bsv.Transaction.Input-1","415"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Transaction.Input.PublicKeyHash",component:f("/reference/classes/bsv.Transaction.Input.PublicKeyHash","3af"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Transaction.Output",component:f("/reference/classes/bsv.Transaction.Output","75b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Transaction.Signature",component:f("/reference/classes/bsv.Transaction.Signature","38a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Transaction.UnspentOutput",component:f("/reference/classes/bsv.Transaction.UnspentOutput","dfa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/bsv.Unit",component:f("/reference/classes/bsv.Unit","c37"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/BsvApi",component:f("/reference/classes/BsvApi","e86"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/Constants",component:f("/reference/classes/Constants","9b9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/ContractApi",component:f("/reference/classes/ContractApi","a00"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/DefaultProvider",component:f("/reference/classes/DefaultProvider","70f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/DotwalletSigner",component:f("/reference/classes/DotwalletSigner","7ad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/DummyProvider",component:f("/reference/classes/DummyProvider","6c3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/FunctionCall",component:f("/reference/classes/FunctionCall","d8b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/GorillapoolProvider",component:f("/reference/classes/GorillapoolProvider","5d8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/HashedMap",component:f("/reference/classes/HashedMap","998"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/HashedSet",component:f("/reference/classes/HashedSet","42d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/OpCode",component:f("/reference/classes/OpCode","d91"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/Provider",component:f("/reference/classes/Provider","0b7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/ScryptProvider",component:f("/reference/classes/ScryptProvider","536"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/SensibleProvider",component:f("/reference/classes/SensibleProvider","840"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/SensiletSigner",component:f("/reference/classes/SensiletSigner","806"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/SigHash",component:f("/reference/classes/SigHash","82d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/Signer",component:f("/reference/classes/Signer","554"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/SmartContract",component:f("/reference/classes/SmartContract","2ba"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/SmartContractLib",component:f("/reference/classes/SmartContractLib","628"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/TaalProvider",component:f("/reference/classes/TaalProvider","1c1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/TAALSigner",component:f("/reference/classes/TAALSigner","d37"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/TestWallet",component:f("/reference/classes/TestWallet","266"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/Utils",component:f("/reference/classes/Utils","934"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/VarIntReader",component:f("/reference/classes/VarIntReader","c9a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/VarIntWriter",component:f("/reference/classes/VarIntWriter","ff2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/classes/WhatsonchainProvider",component:f("/reference/classes/WhatsonchainProvider","2b8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/enums/ProviderEvent",component:f("/reference/enums/ProviderEvent","c17"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/enums/SignatureHashType",component:f("/reference/enums/SignatureHashType","566"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/Artifact",component:f("/reference/interfaces/Artifact","a55"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/bsv.crypto.IOpts",component:f("/reference/interfaces/bsv.crypto.IOpts","b99"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/bsv.Networks.Network",component:f("/reference/interfaces/bsv.Networks.Network","e11"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/bsv.Script.Interpreter.InterpretState",component:f("/reference/interfaces/bsv.Script.Interpreter.InterpretState","d69"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/bsv.Script.IOpChunk",component:f("/reference/interfaces/bsv.Script.IOpChunk","8c1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/bsv.Transaction.IUnspentOutput",component:f("/reference/interfaces/bsv.Transaction.IUnspentOutput","1ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/bsv.Util",component:f("/reference/interfaces/bsv.Util","345"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/ContractCalledEvent",component:f("/reference/interfaces/ContractCalledEvent","b8e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/ContractTransaction",component:f("/reference/interfaces/ContractTransaction","21b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/DefaultProviderOption",component:f("/reference/interfaces/DefaultProviderOption","011"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/LogConfig",component:f("/reference/interfaces/LogConfig","bc4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/MethodCallOptions",component:f("/reference/interfaces/MethodCallOptions","5be"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/MethodCallTxBuilder",component:f("/reference/interfaces/MethodCallTxBuilder","a9c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/MultiContractCallOptions",component:f("/reference/interfaces/MultiContractCallOptions","37a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/MultiContractTransaction",component:f("/reference/interfaces/MultiContractTransaction","fb0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/Outpoint",component:f("/reference/interfaces/Outpoint","bf4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/RequestConfig",component:f("/reference/interfaces/RequestConfig","062"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/ScriptContext",component:f("/reference/interfaces/ScriptContext","a1e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/ScryptConfig",component:f("/reference/interfaces/ScryptConfig","bbc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/SignatureRequest",component:f("/reference/interfaces/SignatureRequest","de4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/SignatureResponse",component:f("/reference/interfaces/SignatureResponse","0da"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/SignTransactionOptions",component:f("/reference/interfaces/SignTransactionOptions","cec"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/StatefulNext",component:f("/reference/interfaces/StatefulNext","42f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/SubscribeOptions",component:f("/reference/interfaces/SubscribeOptions","39a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/SubScription",component:f("/reference/interfaces/SubScription","429"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/TransactionResponse",component:f("/reference/interfaces/TransactionResponse","b64"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/TxContext",component:f("/reference/interfaces/TxContext","cda"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/TxInputRef",component:f("/reference/interfaces/TxInputRef","dbc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/TxOutputRef",component:f("/reference/interfaces/TxOutputRef","656"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/UtxoQueryOptions",component:f("/reference/interfaces/UtxoQueryOptions","db2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/interfaces/VerifyResult",component:f("/reference/interfaces/VerifyResult","201"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv",component:f("/reference/modules/bsv","420"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.crypto",component:f("/reference/modules/bsv.crypto","56a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.crypto.ECDSA",component:f("/reference/modules/bsv.crypto.ECDSA","018"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.crypto.Hash",component:f("/reference/modules/bsv.crypto.Hash","540"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.crypto.Random",component:f("/reference/modules/bsv.crypto.Random","b3c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.encoding",component:f("/reference/modules/bsv.encoding","c5f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.Networks",component:f("/reference/modules/bsv.Networks","729"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.Script",component:f("/reference/modules/bsv.Script","5fd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.Script.Interpreter",component:f("/reference/modules/bsv.Script.Interpreter","d66"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.Transaction",component:f("/reference/modules/bsv.Transaction","651"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.Transaction.Input",component:f("/reference/modules/bsv.Transaction.Input","b96"),exact:!0,sidebar:"tutorialSidebar"},{path:"/reference/modules/bsv.Transaction.Sighash",component:f("/reference/modules/bsv.Transaction.Sighash","a67"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/",component:f("/tokens/","c8f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/ft/",component:f("/tokens/ft/","a0c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/ft/existing",component:f("/tokens/ft/existing","7d5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/ft/how-to-verify-a-BSV20-transaction",component:f("/tokens/ft/how-to-verify-a-BSV20-transaction","7eb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/ft/multiple",component:f("/tokens/ft/multiple","844"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/nft/",component:f("/tokens/nft/","a60"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/nft/existing",component:f("/tokens/nft/existing","70b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/tutorials/inscribe-image",component:f("/tokens/tutorials/inscribe-image","704"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/tutorials/mint-bsv20-v1",component:f("/tokens/tutorials/mint-bsv20-v1","7ce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/tutorials/mint-bsv20-v2",component:f("/tokens/tutorials/mint-bsv20-v2","d12"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tokens/tutorials/ordinal-lock",component:f("/tokens/tutorials/ordinal-lock","158"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tutorials/auction",component:f("/tutorials/auction","2ba"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tutorials/escrow",component:f("/tutorials/escrow","22d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tutorials/hello-world",component:f("/tutorials/hello-world","4e8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tutorials/oracle",component:f("/tutorials/oracle","34c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tutorials/tic-tac-toe",component:f("/tutorials/tic-tac-toe","4db"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tutorials/voting",component:f("/tutorials/voting","28b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tutorials/zkp",component:f("/tutorials/zkp","736"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"*",component:f("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},9383:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(5742),h=n(2263),b=n(4996),g=n(6668),v=n(833),y=n(4711),w=n(9727),S=n(3320),k=n(197);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,u.TH)();return e+(0,b.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,g.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(k.Z,{tag:S.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8934),P=n(8940);function O(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{var r;const a=(null==(r=t.default)?void 0:r[e])??t[e];return null==a?void 0:a(...n)}));return()=>a.forEach((e=>null==e?void 0:e()))}const R=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(a&&function(e){const{hash:t}=e;if(t){const e=decodeURIComponent(t.substring(1)),n=document.getElementById(e);null==n||n.scrollIntoView()}else window.scrollTo(0,0)}(n),O("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function L(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class I extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?O("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=O("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(R,{previousLocation:this.previousLocation,location:t},r.createElement(u.AW,{location:t,render:()=>e}))}}const N=I,D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function F(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n

\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[B]=!1}),[]),r.createElement(r.Fragment,null,!s.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,F(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?r.createElement(j,null):null}function z(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,b.Z)(e),{htmlLang:s,direction:l}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:s,dir:l}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var $=n(4763);function H(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return r.createElement($.Z,null,r.createElement(P.M,null,r.createElement(A.t,null,r.createElement(f,null,r.createElement(z,null),r.createElement(_,null),r.createElement(U,null),r.createElement(N,{location:T(t)},e)))))}var q=n(6887);const G=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var r;if("undefined"==typeof document)return void n();const a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=()=>t(),a.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??(null==(r=document.getElementsByName("script")[0])?void 0:r.parentNode);null==o||o.appendChild(a)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Z=n(9670);const V=new Set,W=new Set,K=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!V.has(e))(e))return!1;V.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Z.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),L(e))},Q=Object.freeze(Y);if(s.Z.canUseDOM){window.docusaurus=Q;const e=a.hydrate;L(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"overview","docs":[{"id":"advanced/codeseparator","path":"/advanced/codeseparator","sidebar":"tutorialSidebar"},{"id":"advanced/how-to-add-a-provider","path":"/advanced/how-to-add-a-provider","sidebar":"tutorialSidebar"},{"id":"advanced/how-to-add-a-signer","path":"/advanced/how-to-add-a-signer","sidebar":"tutorialSidebar"},{"id":"advanced/how-to-build-an-oracle-service","path":"/advanced/how-to-build-an-oracle-service","sidebar":"tutorialSidebar"},{"id":"advanced/how-to-call-multiple-contracts","path":"/advanced/how-to-call-multiple-contracts","sidebar":"tutorialSidebar"},{"id":"advanced/how-to-debug-scriptcontext","path":"/advanced/how-to-debug-scriptcontext","sidebar":"tutorialSidebar"},{"id":"advanced/how-to-integrate-scrypt-service","path":"/advanced/how-to-integrate-scrypt-service","sidebar":"tutorialSidebar"},{"id":"advanced/how-to-replay-instance","path":"/advanced/how-to-replay-instance","sidebar":"tutorialSidebar"},{"id":"advanced/inline-asm","path":"/advanced/inline-asm","sidebar":"tutorialSidebar"},{"id":"advanced/sighash-type","path":"/advanced/sighash-type","sidebar":"tutorialSidebar"},{"id":"advanced/timeLock","path":"/advanced/timeLock","sidebar":"tutorialSidebar"},{"id":"bitcoin-basics/bitcoin-basics","path":"/bitcoin-basics/","sidebar":"tutorialSidebar"},{"id":"bitcoin-basics/bsv","path":"/bitcoin-basics/bsv","sidebar":"tutorialSidebar"},{"id":"ethereum-devs","path":"/ethereum-devs","sidebar":"tutorialSidebar"},{"id":"faq","path":"/faq","sidebar":"tutorialSidebar"},{"id":"how-to-debug-a-contract","path":"/how-to-debug-a-contract","sidebar":"tutorialSidebar"},{"id":"how-to-deploy-and-call-a-contract/call-deployed","path":"/how-to-deploy-and-call-a-contract/call-deployed","sidebar":"tutorialSidebar"},{"id":"how-to-deploy-and-call-a-contract/deploy-cli","path":"/how-to-deploy-and-call-a-contract/deploy-cli","sidebar":"tutorialSidebar"},{"id":"how-to-deploy-and-call-a-contract/faucet","path":"/how-to-deploy-and-call-a-contract/faucet","sidebar":"tutorialSidebar"},{"id":"how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx","path":"/how-to-deploy-and-call-a-contract/how-to-customize-a-contract-tx","sidebar":"tutorialSidebar"},{"id":"how-to-deploy-and-call-a-contract/how-to-deploy-and-call-a-contract","path":"/how-to-deploy-and-call-a-contract/","sidebar":"tutorialSidebar"},{"id":"how-to-integrate-a-frontend/how-to-integrate-a-frontend","path":"/how-to-integrate-a-frontend/","sidebar":"tutorialSidebar"},{"id":"how-to-integrate-a-frontend/how-to-integrate-dotwallet","path":"/how-to-integrate-a-frontend/how-to-integrate-dotwallet","sidebar":"tutorialSidebar"},{"id":"how-to-publish-a-contract","path":"/how-to-publish-a-contract","sidebar":"tutorialSidebar"},{"id":"how-to-test-a-contract","path":"/how-to-test-a-contract","sidebar":"tutorialSidebar"},{"id":"how-to-verify-a-contract","path":"/how-to-verify-a-contract","sidebar":"tutorialSidebar"},{"id":"how-to-write-a-contract/built-ins","path":"/how-to-write-a-contract/built-ins","sidebar":"tutorialSidebar"},{"id":"how-to-write-a-contract/how-to-write-a-contract","path":"/how-to-write-a-contract/","sidebar":"tutorialSidebar"},{"id":"how-to-write-a-contract/scriptcontext","path":"/how-to-write-a-contract/scriptcontext","sidebar":"tutorialSidebar"},{"id":"how-to-write-a-contract/stateful-contract","path":"/how-to-write-a-contract/stateful-contract","sidebar":"tutorialSidebar"},{"id":"installation","path":"/installation","sidebar":"tutorialSidebar"},{"id":"overview","path":"/","sidebar":"tutorialSidebar"},{"id":"reference/classes/ActionError","path":"/reference/classes/ActionError","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Address","path":"/reference/classes/bsv.Address","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Block","path":"/reference/classes/bsv.Block","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.BlockHeader","path":"/reference/classes/bsv.BlockHeader","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.crypto.BN","path":"/reference/classes/bsv.crypto.BN","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.crypto.Point","path":"/reference/classes/bsv.crypto.Point","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.crypto.Signature","path":"/reference/classes/bsv.crypto.Signature","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.ECIES","path":"/reference/classes/bsv.ECIES","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.encoding.Base58","path":"/reference/classes/bsv.encoding.Base58","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.encoding.Base58Check","path":"/reference/classes/bsv.encoding.Base58Check","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.encoding.BufferReader","path":"/reference/classes/bsv.encoding.BufferReader","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.encoding.BufferWriter","path":"/reference/classes/bsv.encoding.BufferWriter","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.encoding.Varint","path":"/reference/classes/bsv.encoding.Varint","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.HDPrivateKey","path":"/reference/classes/bsv.HDPrivateKey","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.HDPublicKey","path":"/reference/classes/bsv.HDPublicKey","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.MerkleBlock","path":"/reference/classes/bsv.MerkleBlock","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Message","path":"/reference/classes/bsv.Message","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Mnemonic","path":"/reference/classes/bsv.Mnemonic","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Opcode","path":"/reference/classes/bsv.Opcode","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.PrivateKey","path":"/reference/classes/bsv.PrivateKey","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.PublicKey","path":"/reference/classes/bsv.PublicKey","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Script-1","path":"/reference/classes/bsv.Script-1","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Script.Interpreter-1","path":"/reference/classes/bsv.Script.Interpreter-1","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Transaction-1","path":"/reference/classes/bsv.Transaction-1","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Transaction.Input-1","path":"/reference/classes/bsv.Transaction.Input-1","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Transaction.Input.PublicKeyHash","path":"/reference/classes/bsv.Transaction.Input.PublicKeyHash","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Transaction.Output","path":"/reference/classes/bsv.Transaction.Output","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Transaction.Signature","path":"/reference/classes/bsv.Transaction.Signature","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Transaction.UnspentOutput","path":"/reference/classes/bsv.Transaction.UnspentOutput","sidebar":"tutorialSidebar"},{"id":"reference/classes/bsv.Unit","path":"/reference/classes/bsv.Unit","sidebar":"tutorialSidebar"},{"id":"reference/classes/BsvApi","path":"/reference/classes/BsvApi","sidebar":"tutorialSidebar"},{"id":"reference/classes/Constants","path":"/reference/classes/Constants","sidebar":"tutorialSidebar"},{"id":"reference/classes/ContractApi","path":"/reference/classes/ContractApi","sidebar":"tutorialSidebar"},{"id":"reference/classes/DefaultProvider","path":"/reference/classes/DefaultProvider","sidebar":"tutorialSidebar"},{"id":"reference/classes/DotwalletSigner","path":"/reference/classes/DotwalletSigner","sidebar":"tutorialSidebar"},{"id":"reference/classes/DummyProvider","path":"/reference/classes/DummyProvider","sidebar":"tutorialSidebar"},{"id":"reference/classes/FunctionCall","path":"/reference/classes/FunctionCall","sidebar":"tutorialSidebar"},{"id":"reference/classes/GorillapoolProvider","path":"/reference/classes/GorillapoolProvider","sidebar":"tutorialSidebar"},{"id":"reference/classes/HashedMap","path":"/reference/classes/HashedMap","sidebar":"tutorialSidebar"},{"id":"reference/classes/HashedSet","path":"/reference/classes/HashedSet","sidebar":"tutorialSidebar"},{"id":"reference/classes/OpCode","path":"/reference/classes/OpCode","sidebar":"tutorialSidebar"},{"id":"reference/classes/Provider","path":"/reference/classes/Provider","sidebar":"tutorialSidebar"},{"id":"reference/classes/ScryptProvider","path":"/reference/classes/ScryptProvider","sidebar":"tutorialSidebar"},{"id":"reference/classes/SensibleProvider","path":"/reference/classes/SensibleProvider","sidebar":"tutorialSidebar"},{"id":"reference/classes/SensiletSigner","path":"/reference/classes/SensiletSigner","sidebar":"tutorialSidebar"},{"id":"reference/classes/SigHash","path":"/reference/classes/SigHash","sidebar":"tutorialSidebar"},{"id":"reference/classes/Signer","path":"/reference/classes/Signer","sidebar":"tutorialSidebar"},{"id":"reference/classes/SmartContract","path":"/reference/classes/SmartContract","sidebar":"tutorialSidebar"},{"id":"reference/classes/SmartContractLib","path":"/reference/classes/SmartContractLib","sidebar":"tutorialSidebar"},{"id":"reference/classes/TaalProvider","path":"/reference/classes/TaalProvider","sidebar":"tutorialSidebar"},{"id":"reference/classes/TAALSigner","path":"/reference/classes/TAALSigner","sidebar":"tutorialSidebar"},{"id":"reference/classes/TestWallet","path":"/reference/classes/TestWallet","sidebar":"tutorialSidebar"},{"id":"reference/classes/Utils","path":"/reference/classes/Utils","sidebar":"tutorialSidebar"},{"id":"reference/classes/VarIntReader","path":"/reference/classes/VarIntReader","sidebar":"tutorialSidebar"},{"id":"reference/classes/VarIntWriter","path":"/reference/classes/VarIntWriter","sidebar":"tutorialSidebar"},{"id":"reference/classes/WhatsonchainProvider","path":"/reference/classes/WhatsonchainProvider","sidebar":"tutorialSidebar"},{"id":"reference/enums/ProviderEvent","path":"/reference/enums/ProviderEvent","sidebar":"tutorialSidebar"},{"id":"reference/enums/SignatureHashType","path":"/reference/enums/SignatureHashType","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/Artifact","path":"/reference/interfaces/Artifact","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/bsv.crypto.IOpts","path":"/reference/interfaces/bsv.crypto.IOpts","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/bsv.Networks.Network","path":"/reference/interfaces/bsv.Networks.Network","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/bsv.Script.Interpreter.InterpretState","path":"/reference/interfaces/bsv.Script.Interpreter.InterpretState","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/bsv.Script.IOpChunk","path":"/reference/interfaces/bsv.Script.IOpChunk","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/bsv.Transaction.IUnspentOutput","path":"/reference/interfaces/bsv.Transaction.IUnspentOutput","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/bsv.Util","path":"/reference/interfaces/bsv.Util","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/ContractCalledEvent","path":"/reference/interfaces/ContractCalledEvent","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/ContractTransaction","path":"/reference/interfaces/ContractTransaction","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/DefaultProviderOption","path":"/reference/interfaces/DefaultProviderOption","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/LogConfig","path":"/reference/interfaces/LogConfig","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/MethodCallOptions","path":"/reference/interfaces/MethodCallOptions","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/MethodCallTxBuilder","path":"/reference/interfaces/MethodCallTxBuilder","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/MultiContractCallOptions","path":"/reference/interfaces/MultiContractCallOptions","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/MultiContractTransaction","path":"/reference/interfaces/MultiContractTransaction","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/Outpoint","path":"/reference/interfaces/Outpoint","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/RequestConfig","path":"/reference/interfaces/RequestConfig","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/ScriptContext","path":"/reference/interfaces/ScriptContext","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/ScryptConfig","path":"/reference/interfaces/ScryptConfig","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/SignatureRequest","path":"/reference/interfaces/SignatureRequest","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/SignatureResponse","path":"/reference/interfaces/SignatureResponse","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/SignTransactionOptions","path":"/reference/interfaces/SignTransactionOptions","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/StatefulNext","path":"/reference/interfaces/StatefulNext","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/SubscribeOptions","path":"/reference/interfaces/SubscribeOptions","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/SubScription","path":"/reference/interfaces/SubScription","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/TransactionResponse","path":"/reference/interfaces/TransactionResponse","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/TxContext","path":"/reference/interfaces/TxContext","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/TxInputRef","path":"/reference/interfaces/TxInputRef","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/TxOutputRef","path":"/reference/interfaces/TxOutputRef","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/UtxoQueryOptions","path":"/reference/interfaces/UtxoQueryOptions","sidebar":"tutorialSidebar"},{"id":"reference/interfaces/VerifyResult","path":"/reference/interfaces/VerifyResult","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv","path":"/reference/modules/bsv","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.crypto","path":"/reference/modules/bsv.crypto","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.crypto.ECDSA","path":"/reference/modules/bsv.crypto.ECDSA","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.crypto.Hash","path":"/reference/modules/bsv.crypto.Hash","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.crypto.Random","path":"/reference/modules/bsv.crypto.Random","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.encoding","path":"/reference/modules/bsv.encoding","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.Networks","path":"/reference/modules/bsv.Networks","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.Script","path":"/reference/modules/bsv.Script","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.Script.Interpreter","path":"/reference/modules/bsv.Script.Interpreter","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.Transaction","path":"/reference/modules/bsv.Transaction","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.Transaction.Input","path":"/reference/modules/bsv.Transaction.Input","sidebar":"tutorialSidebar"},{"id":"reference/modules/bsv.Transaction.Sighash","path":"/reference/modules/bsv.Transaction.Sighash","sidebar":"tutorialSidebar"},{"id":"reference/README","path":"/reference/","sidebar":"tutorialSidebar"},{"id":"tokens/ft/existing","path":"/tokens/ft/existing","sidebar":"tutorialSidebar"},{"id":"tokens/ft/ft","path":"/tokens/ft/","sidebar":"tutorialSidebar"},{"id":"tokens/ft/how-to-verify-a-BSV20-transaction","path":"/tokens/ft/how-to-verify-a-BSV20-transaction","sidebar":"tutorialSidebar"},{"id":"tokens/ft/multiple","path":"/tokens/ft/multiple","sidebar":"tutorialSidebar"},{"id":"tokens/nft/existing","path":"/tokens/nft/existing","sidebar":"tutorialSidebar"},{"id":"tokens/nft/nft","path":"/tokens/nft/","sidebar":"tutorialSidebar"},{"id":"tokens/tokens","path":"/tokens/","sidebar":"tutorialSidebar"},{"id":"tokens/tutorials/inscribe-image","path":"/tokens/tutorials/inscribe-image","sidebar":"tutorialSidebar"},{"id":"tokens/tutorials/mint-bsv20-v1","path":"/tokens/tutorials/mint-bsv20-v1","sidebar":"tutorialSidebar"},{"id":"tokens/tutorials/mint-bsv20-v2","path":"/tokens/tutorials/mint-bsv20-v2","sidebar":"tutorialSidebar"},{"id":"tokens/tutorials/ordinal-lock","path":"/tokens/tutorials/ordinal-lock","sidebar":"tutorialSidebar"},{"id":"tutorials/auction","path":"/tutorials/auction","sidebar":"tutorialSidebar"},{"id":"tutorials/escrow","path":"/tutorials/escrow","sidebar":"tutorialSidebar"},{"id":"tutorials/hello-world","path":"/tutorials/hello-world","sidebar":"tutorialSidebar"},{"id":"tutorials/oracle","path":"/tutorials/oracle","sidebar":"tutorialSidebar"},{"id":"tutorials/tic-tac-toe","path":"/tutorials/tic-tac-toe","sidebar":"tutorialSidebar"},{"id":"tutorials/voting","path":"/tutorials/voting","sidebar":"tutorialSidebar"},{"id":"tutorials/zkp","path":"/tutorials/zkp","sidebar":"tutorialSidebar"},{"id":"/category/advanced","path":"/category/advanced","sidebar":"tutorialSidebar"},{"id":"/category/tutorials","path":"/category/tutorials","sidebar":"tutorialSidebar"},{"id":"/category/tutorials-1","path":"/category/tutorials-1","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/","label":"overview"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"2.2.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.2.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.2.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.2.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.2.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.2.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.2.0"}}}'),c={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},u=r.createContext(c);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:c},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7294),a=n(412),o=n(5742),i=n(9889);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function l(e){let{error:t,tryAgain:n}=e;return r.createElement(u,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(i.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const c=e=>r.createElement(l,e);class u extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??c)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(7294),o=n(3727),i=n(8780),s=n(2263),l=n(3919),c=n(412);const u=a.createContext({collectLink:()=>{}});var d=n(4996);function f(e,t){var n;let{isNavLink:f,to:p,href:m,activeClassName:h,isActive:b,"data-noBrokenLinkCheck":g,autoAddBaseUrl:v=!0,...y}=e;const{siteConfig:{trailingSlash:w,baseUrl:S}}=(0,s.Z)(),{withBaseUrl:k}=(0,d.C)(),E=(0,a.useContext)(u),x=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>x.current));const _=p||m;const C=(0,l.Z)(_),T=null==_?void 0:_.replace("pathname://","");let A=void 0!==T?(P=T,v&&(e=>e.startsWith("/"))(P)?k(P):P):void 0;var P;A&&C&&(A=(0,i.applyTrailingSlash)(A,{trailingSlash:w,baseUrl:S}));const O=(0,a.useRef)(!1),R=f?o.OL:o.rU,L=c.Z.canUseIntersectionObserver,I=(0,a.useRef)(),N=()=>{O.current||null==A||(window.docusaurus.preload(A),O.current=!0)};(0,a.useEffect)((()=>(!L&&C&&null!=A&&window.docusaurus.prefetch(A),()=>{L&&I.current&&I.current.disconnect()})),[I,A,L,C]);const D=(null==(n=A)?void 0:n.startsWith("#"))??!1,M=!A||!C||D;return M||g||E.collectLink(A),M?a.createElement("a",(0,r.Z)({ref:x,href:A},_&&!C&&{target:"_blank",rel:"noopener noreferrer"},y)):a.createElement(R,(0,r.Z)({},y,{onMouseEnter:N,onTouchStart:N,innerRef:e=>{x.current=e,L&&e&&C&&(I.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(I.current.unobserve(e),I.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),I.current.observe(e))},to:A},f&&{isActive:b,activeClassName:h}))}const p=a.forwardRef(f)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l,I:()=>s});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0:t[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function l(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const s=i({message:t,id:n});return r.createElement(r.Fragment,null,a(s,o))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>o,Z:()=>i});var r=n(2263),a=n(3919);function o(){const{siteConfig:{baseUrl:e,url:t}}=(0,r.Z)();return{withBaseUrl:(n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)}}function i(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[a,o]=n;const i=r?`${r}.${a}`:a;var s;"object"==typeof(s=o)&&s&&Object.keys(s).length>0?e(o,i):t[i]=o}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...null==n?void 0:n.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>g,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>f,yW:()=>b,gB:()=>h});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function c(e,t){const n=l(e,t),a=null==n?void 0:n.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=null==r?void 0:r[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:l(t.pluginData,n)}}function h(e){return f(e).versions}function b(e){const t=f(e);return s(t)}function g(e){const t=f(e),{pathname:n}=(0,r.TH)();return c(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a="iconExternalLink_nPIU";function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},9889:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Pt});var r=n(7294),a=n(6010),o=n(4763),i=n(833),s=n(7462),l=n(6550),c=n(5999),u=n(5936);const d="docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,l.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,c.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,s.Z)({},e,{href:`#${d}`,onClick:a}),t))}var b=n(5281),g=n(9727);const v="skipToContent_fXgn";function y(){return r.createElement(h,{className:v})}var w=n(6668),S=n(9689);function k(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...l}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 15 15",width:t,height:n},l),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E="closeButton_CVFx";function x(e){return r.createElement("button",(0,s.Z)({type:"button","aria-label":(0,c.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E,e.className)}),r.createElement(k,{width:14,height:14,strokeWidth:3.1}))}const _="content_knG7";function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,s.Z)({},e,{className:(0,a.Z)(_,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T="announcementBar_mb4j",A="announcementBarPlaceholder_vyr4",P="announcementBarClose_gvF7",O="announcementBarContent_xLdY";function R(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,S.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:A}),r.createElement(C,{className:O}),i&&r.createElement(x,{onClick:n,className:P}))}var L=n(2961),I=n(2466);var N=n(902),D=n(3102);const M=r.createContext(null);function B(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,D.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,N.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(M.Provider,{value:n},t)}function F(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function j(){const e=(0,r.useContext)(M);if(!e)throw new N.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,D.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:F(o)})),[a,o,t])}function U(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=j();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var z=n(2949),$=n(2389);function H(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function q(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const G={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Z(e){let{className:t,value:n,onChange:o}=e;const i=(0,$.Z)(),s=(0,c.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,c.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(G.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",G.toggleButton,!i&&G.toggleButtonDisabled),type:"button",onClick:()=>o("dark"===n?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(H,{className:(0,a.Z)(G.toggleIcon,G.lightToggleIcon)}),r.createElement(q,{className:(0,a.Z)(G.toggleIcon,G.darkToggleIcon)})))}const V=r.memo(Z);function W(e){let{className:t}=e;const n=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,z.I)();return n?null:r.createElement(V,{className:t,value:a,onChange:o})}var K=n(1327);function Y(){return r.createElement(K.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,c.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(k,{color:"var(--ifm-color-emphasis-600)"}))}function X(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Y,null),r.createElement(W,{className:"margin-right--md"}),r.createElement(Q,null))}var J=n(9960),ee=n(4996),te=n(3919),ne=n(8022),re=n(9471);function ae(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:l,isDropdownLink:c,prependBaseUrlToHref:u,...d}=e;const f=(0,ee.Z)(a),p=(0,ee.Z)(t),m=(0,ee.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,te.Z)(o),b=l?{dangerouslySetInnerHTML:{__html:l}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(re.Z,c&&{width:12,height:12}))};return o?r.createElement(J.Z,(0,s.Z)({href:u?m:o},d,b)):r.createElement(J.Z,(0,s.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ne.F)(n,t.pathname):t.pathname.startsWith(p)},d,b))}function oe(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ae,(0,s.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ie(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ae,(0,s.Z)({className:(0,a.Z)("menu__link",t)},o)))}function se(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ie:oe;return r.createElement(o,(0,s.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var le=n(6043),ce=n(8596),ue=n(2263);function de(e,t){return e.some((e=>function(e,t){return!!(0,ce.Mg)(e.to,t)||!!(0,ne.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function fe(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const c=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[c]),r.createElement("div",{ref:c,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(ae,(0,s.Z)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},l,{onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),l.children??l.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,n)=>r.createElement(qe,(0,s.Z)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),d(!1);const t=c.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function pe(e){let{items:t,className:n,position:o,onClick:i,...c}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,ue.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),d=de(t,u),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,le.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ae,(0,s.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},c,{onClick:e=>{e.preventDefault(),p()}}),c.children??c.label),r.createElement(le.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(qe,(0,s.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function me(e){let{mobile:t=!1,...n}=e;const a=t?pe:fe;return r.createElement(a,n)}var he=n(4711);function be(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const ge="iconLanguage_nlXk";var ve=n(3935),ye=n(5742),we=n(6177);function Se(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var ke=n(830),Ee=["translations"];function xe(){return xe=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ae="Ctrl";var Pe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Te(e,Ee),i=a.buttonText,s=void 0===i?"Search":i,l=a.buttonAriaLabel,c=void 0===l?"Search":l,u=_e((0,r.useState)(null),2),d=u[0],f=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Ae))}),[]),r.createElement("button",xe({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(ke.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ae?r.createElement(Se,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),Oe=n(3320);const Re={button:{buttonText:(0,c.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,c.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,c.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,c.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,c.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,c.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,c.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,c.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,c.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,c.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,c.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,c.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,c.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,c.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,c.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,c.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,c.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,c.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,c.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,c.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,c.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,c.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,c.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Le=null;function Ie(e){let{hit:t,children:n}=e;return r.createElement(J.Z,{to:t.url},n)}function Ne(e){let{state:t,onClose:n}=e;const{generateSearchPageLink:a}=(0,we.O)();return r.createElement(J.Z,{to:a(t.query),onClick:n},r.createElement(c.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function De(e){var t;let{contextualSearch:a,externalUrlRegex:o,...i}=e;const{siteMetadata:c}=(0,ue.Z)(),u=function(){const{locale:e,tags:t}=(0,Oe._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=(null==(t=i.searchParameters)?void 0:t.facetFilters)??[],f=a?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(u,d):d,p={...i.searchParameters,facetFilters:f},{withBaseUrl:m}=(0,ee.C)(),h=(0,l.k6)(),b=(0,r.useRef)(null),g=(0,r.useRef)(null),[v,y]=(0,r.useState)(!1),[w,S]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Le?Promise.resolve():Promise.all([n.e(6780).then(n.bind(n,6780)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,8894))]).then((e=>{let[{DocSearchModal:t}]=e;Le=t}))),[]),E=(0,r.useCallback)((()=>{k().then((()=>{b.current=document.createElement("div"),document.body.insertBefore(b.current,document.body.firstChild),y(!0)}))}),[k,y]),x=(0,r.useCallback)((()=>{var e;y(!1),null==(e=b.current)||e.remove()}),[y]),_=(0,r.useCallback)((e=>{k().then((()=>{y(!0),S(e.key)}))}),[k,y,S]),C=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ne.F)(o,t)?window.location.href=t:h.push(t)}}).current,T=(0,r.useRef)((e=>e.map((e=>{if((0,ne.F)(o,e.url))return e;const t=new URL(e.url);return{...e,url:m(`${t.pathname}${t.hash}`)}})))).current,A=(0,r.useMemo)((()=>e=>r.createElement(Ne,(0,s.Z)({},e,{onClose:x}))),[x]),P=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",c.docusaurusVersion),e)),[c.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){(27===e.keyCode&&t||"k"===e.key.toLowerCase()&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:v,onOpen:E,onClose:x,onInput:_,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(ye.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${i.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(Pe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:E,ref:g,translations:Re.button}),v&&Le&&b.current&&(0,ve.createPortal)(r.createElement(Le,(0,s.Z)({onClose:x,initialScrollY:window.scrollY,initialQuery:w,navigator:C,transformItems:T,hitComponent:Ie,transformSearchClient:P},i.searchPagePath&&{resultsFooterComponent:A},i,{searchParameters:p,placeholder:Re.placeholder,translations:Re.modal})),b.current))}function Me(){const{siteConfig:e}=(0,ue.Z)();return r.createElement(De,e.themeConfig.algolia)}const Be="searchBox_ZlJk";function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Be)},t)}var je=n(143),Ue=n(2802);var ze=n(373);const $e=e=>e.docs.find((t=>t.id===e.mainDocId));const He={default:se,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,ue.Z)(),f=(0,he.l)(),{search:p,hash:m}=(0,l.TH)(),h=[...n,...u.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],b=t?(0,c.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(me,(0,s.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(be,{className:ge}),b),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(Me,null))},dropdown:me,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const s=i?"li":"div";return r.createElement(s,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,je.Iw)(a),l=(0,Ue.vY)(t,a);return null===l?null:r.createElement(se,(0,s.Z)({exact:!0},o,{isActive:()=>(null==i?void 0:i.path)===l.path||!(null==i||!i.sidebar)&&i.sidebar===l.sidebar,label:n??l.id,to:l.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,je.Iw)(a),l=(0,Ue.oz)(t,a).link;if(!l)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(se,(0,s.Z)({exact:!0},o,{isActive:()=>(null==i?void 0:i.sidebar)===t,label:n??l.label,to:l.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,Ue.lO)(a)[0],l=t??i.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(se,(0,s.Z)({},o,{label:l,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...u}=e;const{search:d,hash:f}=(0,l.TH)(),p=(0,je.Iw)(n),m=(0,je.gB)(n),{savePreferredVersionName:h}=(0,ze.J)(n),b=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??$e(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],g=(0,Ue.lO)(n)[0],v=t&&b.length>1?(0,c.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,y=t&&b.length>1?void 0:$e(g).path;return b.length<=1?r.createElement(se,(0,s.Z)({},u,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(me,(0,s.Z)({},u,{mobile:t,label:v,to:y,items:b,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=He[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,s.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ze(e){return r.createElement("button",(0,s.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(c.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ve(){const e=0===(0,w.L)().navbar.items.length,t=j();return r.createElement(r.Fragment,null,!e&&r.createElement(Ze,{onClick:()=>t.hide()}),t.content)}function We(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(U,{header:r.createElement(X,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ve,null)}):null}const Ke="navbarHideable_m1mJ",Ye="navbarHidden_jGov";function Qe(e){return r.createElement("div",(0,s.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Xe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:s,isNavbarVisible:l}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,I.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:s,className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Ke,!l&&Ye],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(Qe,{onClick:i.toggle}),r.createElement(We,null))}function Je(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,s.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function et(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,c.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(Je,null))}const tt="colorModeToggle_DEke";function nt(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(qe,(0,s.Z)({},e,{key:t})))))}function rt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function at(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(rt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(et,null),r.createElement(Y,null),r.createElement(nt,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(nt,{items:a}),r.createElement(W,{className:tt}),!o&&r.createElement(Fe,null,r.createElement(Me,null)))})}function ot(){return r.createElement(Xe,null,r.createElement(at,null))}function it(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...l}=t,c=(0,ee.Z)(n),u=(0,ee.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(J.Z,(0,s.Z)({className:"footer__link-item"},a?{href:i?u:a}:{to:c},l),o,a&&!(0,te.Z)(a)&&r.createElement(re.Z,null))}function st(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(it,{item:t}))}function lt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(st,{key:t,item:e})))))}function ct(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(lt,{key:t,column:e}))))}function ut(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function dt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(it,{item:t})}function ft(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(dt,{item:e}),t.length!==n+1&&r.createElement(ut,null))))))}function pt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(ct,{columns:t}):r.createElement(ft,{links:t})}var mt=n(941);const ht="footerLogoLink_BH7S";function bt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,ee.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(mt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function gt(e){let{logo:t}=e;return t.href?r.createElement(J.Z,{href:t.href,className:ht,target:t.target},r.createElement(bt,{logo:t})):r.createElement(bt,{logo:t})}function vt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function yt(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function wt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(yt,{style:o,links:n&&n.length>0&&r.createElement(pt,{links:n}),logo:a&&r.createElement(gt,{logo:a}),copyright:t&&r.createElement(vt,{copyright:t})})}const St=r.memo(wt);var kt=n(12);const Et="docusaurus.tab.",xt=r.createContext(void 0);const _t=(0,N.Qc)([z.S,S.pl,function(e){let{children:t}=e;const n=function(){const[e,t]=(0,r.useState)({}),n=(0,r.useCallback)(((e,t)=>{(0,kt.W)(`docusaurus.tab.${e}`).set(t)}),[]);(0,r.useEffect)((()=>{try{const e={};(0,kt._)().forEach((t=>{if(t.startsWith(Et)){const n=t.substring(Et.length);e[n]=(0,kt.W)(t).get()}})),t(e)}catch(e){console.error(e)}}),[]);const a=(0,r.useCallback)(((e,r)=>{t((t=>({...t,[e]:r}))),n(e,r)}),[n]);return(0,r.useMemo)((()=>({tabGroupChoices:e,setTabGroupChoices:a})),[e,a])}();return r.createElement(xt.Provider,{value:n},t)},I.OC,ze.L5,i.VC,function(e){let{children:t}=e;return r.createElement(D.n2,null,r.createElement(L.M,null,r.createElement(B,null,t)))}]);function Ct(e){let{children:t}=e;return r.createElement(_t,null,t)}function Tt(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(c.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(c.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}const At="mainWrapper_z2l0";function Pt(e){const{children:t,noFooter:n,wrapperClassName:s,title:l,description:c}=e;return(0,g.t)(),r.createElement(Ct,null,r.createElement(i.d,{title:l,description:c}),r.createElement(y,null),r.createElement(R,null),r.createElement(ot,null),r.createElement("div",{id:d,className:(0,a.Z)(b.k.wrapper.main,At,s)},r.createElement(o.Z,{fallback:e=>r.createElement(Tt,e)},t)),!n&&r.createElement(St,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(9960),i=n(4996),s=n(2263),l=n(6668),c=n(941);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},s=a.createElement(c.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},s):s}function d(e){const{siteConfig:{title:t}}=(0,s.Z)(),{navbar:{title:n,logo:c}}=(0,l.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)((null==c?void 0:c.href)||"/"),h=n?"":t,b=(null==c?void 0:c.alt)??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,(null==c?void 0:c.target)&&{target:c.target}),c&&a.createElement(u,{logo:c,alt:b,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(5742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7462),a=n(7294),o=n(6010),i=n(2389),s=n(2949);const l={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function c(e){const t=(0,i.Z)(),{colorMode:n}=(0,s.I)(),{sources:c,className:u,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:c[e],alt:d,className:(0,o.Z)(l.themedImage,l[`themedImage--${e}`],u)},f)))))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,z:()=>m});var r=n(7462),a=n(7294),o=n(412);function i(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const s={display:"none",overflow:"hidden",height:"0px"},l={display:"block",overflow:"visible",height:"auto"};function c(e,t){const n=t?s:l;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function u(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=(null==r?void 0:r.duration)??function(e){const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${(null==r?void 0:r.easing)??"ease-in-out"}`,height:`${t}px`}}function i(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return c(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function d(e){if(!o.Z.canUseDOM)return e?s:l}function f(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:s,disableSSRStyle:l}=e;const f=(0,a.useRef)(null);return u({collapsibleRef:f,collapsed:n,animation:o}),a.createElement(t,{ref:f,style:l?void 0:d(n),onTransitionEnd:e=>{"height"===e.propertyName&&(c(f.current,n),null==i||i(n))},className:s},r)}function p(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[s,l]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&l(t)}),[o,t]),o?a.createElement(f,(0,r.Z)({},n,{collapsed:s})):null}function m(e){let{lazy:t,...n}=e;const r=t?p:f;return a.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(2389),o=n(12),i=n(902),s=n(6668);const l=(0,o.W)("docusaurus.announcement.dismiss"),c=(0,o.W)("docusaurus.announcement.id"),u=()=>"true"===l.get(),d=e=>l.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{o(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&d(!1),!r&&u()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>h});var r=n(7294),a=n(412),o=n(902),i=n(12),s=n(6668);const l=r.createContext(void 0),c="theme",u=(0,i.W)(c),d="light",f="dark",p=e=>e===f?f:d;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[o,i]=(0,r.useState)((e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e))(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const l=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(i(t),a&&(e=>{u.set(p(e))})(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f:d:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=u.get();null!==t&&l(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,l]);const m=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||m.current?m.current=window.matchMedia("print").matches:l(null)};return e.addListener(r),()=>e.removeListener(r)}),[l,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:l,get isDarkTheme(){return o===f},setLightTheme(){l(d)},setDarkTheme(){l(f)}})),[o,l])}function h(e){let{children:t}=e;const n=m();return r.createElement(l.Provider,{value:n},t)}function b(){const e=(0,r.useContext)(l);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>g,Oh:()=>w});var r=n(7294),a=n(143),o=n(9935),i=n(6668),s=n(2802),l=n(902),c=n(12);const u=e=>`docs-preferred-version-${e}`,d=(e,t,n)=>{(0,c.W)(u(e),{persistence:t}).set(n)},f=(e,t)=>(0,c.W)(u(e),{persistence:t}).get(),p=(e,t)=>{(0,c.W)(u(e),{persistence:t}).del()};const m=r.createContext(null);function h(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=f(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function b(e){let{children:t}=e;const n=h();return r.createElement(m.Provider,{value:n},t)}function g(e){let{children:t}=e;return s.cE?r.createElement(b,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(m);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=v(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,a._r)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,b:()=>s});var r=n(7294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function s(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function l(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>s,q:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(7294),a=n(3102),o=n(7524),i=n(6550),s=n(902);function l(e){!function(e){const t=(0,i.k6)(),n=(0,s.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(6668);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,c.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1);l((()=>{if(i)return s(!1),!1}));const u=(0,r.useCallback)((()=>{s((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&s(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function f(e){let{children:t}=e;const n=d();return r.createElement(u.Provider,{value:n},t)}function p(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>l,n2:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function l(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=i,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},6177:(e,t,n)=>{"use strict";n.d(t,{O:()=>s});var r=n(7294),a=n(6550),o=n(2263);const i="q";function s(){const e=(0,a.k6)(),{siteConfig:{baseUrl:t}}=(0,o.Z)(),[n,s]=(0,r.useState)("");(0,r.useEffect)((()=>{const e=new URLSearchParams(window.location.search).get(i)??"";s(e)}),[]);return{searchQuery:n,setSearchQuery:(0,r.useCallback)((t=>{const n=new URLSearchParams(window.location.search);t?n.set(i,t):n.delete(i),e.replace({search:n.toString()}),s(t)}),[e]),generateSearchPageLink:(0,r.useCallback)((e=>`${t}search?q=${encodeURIComponent(e)}`),[t])}}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>c});var r=n(7294),a=n(412);const o="desktop",i="mobile",s="ssr";function l(){return a.Z.canUseDOM?window.innerWidth>996?o:i:s}function c(){const[e,t]=(0,r.useState)((()=>l()));return(0,r.useEffect)((()=>{function e(){t(l())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},2802:(e,t,n)=>{"use strict";n.d(t,{MN:()=>x,Wl:()=>m,_F:()=>g,cE:()=>f,jA:()=>h,xz:()=>p,hI:()=>E,lO:()=>w,vY:()=>k,oz:()=>S,s1:()=>y});var r=n(7294),a=n(6550),o=n(8790),i=n(143),s=n(373),l=n(4477),c=n(1116);function u(e){return Array.from(new Set(e))}var d=n(8596);const f=!!i._r;function p(e){const t=(0,l.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,c.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=v({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const b=(e,t)=>void 0!==e&&(0,d.Mg)(e,t);function g(e,t){return"link"===e.type?b(e.href,t):"category"===e.type&&(b(e.href,t)||((e,t)=>e.some((e=>g(e,t))))(e.items,t))}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function y(){var e;const t=(0,c.V)(),{pathname:n}=(0,a.TH)();return!1!==(null==(e=(0,i.gA)())?void 0:e.pluginData.breadcrumbs)&&t?v({sidebarItems:t.items,pathname:n}):null}function w(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>u([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=w(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\n Available sidebar ids are:\n - ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function k(e,t){const n=w(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`DocNavbarItem: couldn't find any doc with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,s=i.find((e=>(0,a.LX)(r.pathname,e)));if(!s)return null;const l=s.sidebar,c=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.H)(i),sidebarName:l,sidebarItems:c}}function x(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(2263);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return null!=e&&e.trim().length?`${e.trim()} ${a} ${n}`:n}},833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>u,VC:()=>p});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),c=n(2128);function u(e){let{title:t,description:n,keywords:a,image:i,children:s}=e;const u=(0,c.p)(t),{withBaseUrl:d}=(0,l.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),s)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),s=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:s},r.createElement(o.Z,null,r.createElement("html",{className:s})),n)}function p(e){let{children:t}=e;const n=s(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>c,Ql:()=>l,i6:()=>s,zX:()=>o});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){var n,r,a;super(),this.name="ReactContextError",this.message=`Hook ${(null==(n=this.stack)||null==(r=n.split("\n")[1])||null==(a=r.match(/at (?:\w+\.)?(?\w+)/))?void 0:a.groups.name)??""} is called outside the <${e}>. ${t??""}`}}function l(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8022:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:`${e}/`)?void 0:t.toLowerCase()};return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>l,RF:()=>d});var r=n(7294),a=n(412),o=n(2389),i=n(902);const s=r.createContext(void 0);function l(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(s.Provider,{value:n},t)}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const u=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(u()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>null==e.current?void 0:e.current()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>l,os:()=>s});var r=n(143),a=n(2263),o=n(373);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),l=(0,o.Oh)();const c=[i,...Object.keys(t).map((function(e){const r=(null==n?void 0:n.activePlugin.pluginId)===e?n.activeVersion:void 0,a=l[e],o=t[e].versions.find((e=>e.isLast));return s(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:c}}},12:(e,t,n)=>{"use strict";n.d(t,{W:()=>s,_:()=>l});const r="localStorage";function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,o||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),o=!0),null}var t}let o=!1;const i={get:()=>null,set:()=>{},del:()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t}}(e);const n=a(null==t?void 0:t.persistence);return null===n?i:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{n.setItem(e,t)}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{n.removeItem(e)}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}}}}function l(e){void 0===e&&(e=r);const t=a(e);if(!t)return[];const n=[];for(let r=0;r{"use strict";n.d(t,{l:()=>o});var r=n(2263),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),s=o===n?e:e.replace(`/${o}/`,"/"),l=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${s}`:`${s}${e}/`}(r)}${l}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>E,q_:()=>P,ob:()=>h,PP:()=>R,Ep:()=>m,Hp:()=>b});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function s(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const l=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=s(t),a=s(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var c=n(8776);function u(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function f(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function h(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function b(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function g(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=h(e,t,f(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),h=l(n),b=0;b{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,o){for(var i,s,l=a(e),c=1;c{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(s+=e.slice(i,p),i=p+d.length,f)s+=f[1];else{var m=e[i],h=n[2],b=n[3],g=n[4],v=n[5],y=n[6],w=n[7];s&&(r.push(s),s="");var S=null!=h&&null!=m&&m!==h,k="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||u,_=g||v;r.push({name:b||o++,prefix:h||"",delimiter:x,optional:E,repeat:k,partial:S,asterisk:!!w,pattern:_?c(_):w?".*":"[^"+l(x)+"]+?"})}}return i{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);E+=k.value.length,k=k.next){var x=k.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(S,E,e,g))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,P=E;for(P+=k.value.length;T>=P;)P+=(k=k.next).value.length;if(E=P-=k.value.length,k.value instanceof a)continue;for(var O=k;O!==t.tail&&(Pd.reach&&(d.reach=N);var D=k.prev;if(L&&(D=l(t,D,L),E+=L.length),c(t,D,C),k=l(t,D,new a(f,b?r.tokenize(R,b):R,y,R)),I&&l(t,k,I),C>1){var M={cause:f+","+m,reach:N};i(e,t,n,k.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function c(e,t,n){for(var r=t.next,a=0;a"+o.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var s=f(/^\{$/,/^\}$/);if(-1===s)continue;for(var l=n;l=0&&p(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function c(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,l(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function u(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,u={},d=l(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=s(i++,r)););return u[n]=a,n})).join(""),n,r),f=Object.keys(u);return i=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,s=o.indexOf(a);if(-1!==s){++i;var l=o.substring(0,s),d=c(u[a]),p=o.substring(s+a.length),m=[];if(l&&m.push(l),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var b=r.content;Array.isArray(b)?e(b):e([b])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var l=i(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(l=i(t[r-1])+l,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",l,null,l)}a.content&&"string"!=typeof a.content&&s(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=o.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],f="string"==typeof c?c:c.content,p=t(r,u),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),b=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),g=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(b),g&&v.push.apply(v,i([g])),"string"==typeof c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var s={},l=e[r];if(l){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in a(t,o),s[t]=!0,n[t])s[i]=!0}t(l.require,c),t(l.optional,c),t(l.modify,c)}n[r]=s,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(l);i=i.map(c),s=(s||[]).map(c);var u=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var f,p=r(l),m=u;a(m);){for(var h in f={},m){var b=l[h];t(b&&b.modify,(function(e){e in d&&(f[e]=!0)}))}for(var g in d)if(!(g in u))for(var v in p(g))if(v in u){f[g]=!0;break}for(var y in m=f)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,s={},l={};function c(e){if(e in s)return s[e];l[e]=!0;var a,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)a=r(e);else{var f=i(u.map((function(e){var t=c(e);return delete l[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return s[e]=a}for(var u in n)c(u);var d=[];for(var f in l)d.push(s[f]);return i(d)}(p,u,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n