algomintx 2.0.3 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/algomintx.js +1 -1
- package/dist/node/index.cjs +1 -1
- package/package.json +1 -1
- package/dist/263.algomintx.esm.js +0 -2
- package/dist/263.algomintx.esm.js.LICENSE.txt +0 -23
- package/dist/263.algomintx.js +0 -2
- package/dist/263.algomintx.js.LICENSE.txt +0 -23
- package/dist/331.algomintx.esm.js +0 -1
- package/dist/331.algomintx.js +0 -1
- package/dist/42.algomintx.esm.js +0 -2
- package/dist/42.algomintx.esm.js.LICENSE.txt +0 -8
- package/dist/42.algomintx.js +0 -2
- package/dist/42.algomintx.js.LICENSE.txt +0 -32
- package/dist/532.algomintx.esm.js +0 -1
- package/dist/532.algomintx.js +0 -1
- package/dist/790.algomintx.esm.js +0 -1
- package/dist/790.algomintx.js +0 -1
- package/dist/899.algomintx.js +0 -2
- package/dist/899.algomintx.js.LICENSE.txt +0 -23
- package/dist/975.algomintx.esm.js +0 -1
- package/dist/975.algomintx.js +0 -1
- package/dist/algomintx.esm.js +0 -2
- package/dist/algomintx.esm.js.LICENSE.txt +0 -19
package/dist/node/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see index.cjs.LICENSE.txt */
|
|
2
|
-
(()=>{"use strict";var t={698:t=>{t.exports=JSON.parse('{"hints":{"addNFTListing(uint64,string,string,string)byte[]":{"call_config":{"no_op":"CALL"}},"getNFTListing(string,uint64)(string,string,string)":{"read_only":true,"call_config":{"no_op":"CALL"},"structs":{"output":{"name":"Listing","elements":[["seller","string"],["nftPrice","string"],["marketplace","string"]]}}},"removeNFTListing(string,uint64)byte[]":{"call_config":{"no_op":"CALL"}},"contractOptInToNFT(string,uint64)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToContractAndAddListing(uint64,string,string,string)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToContract(string,uint64)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToReceiver(string,uint64,string)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToSeller(string,uint64,string)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToReceiverAndRemoveListing(uint64,string,string)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToSellerAndRemoveListing(uint64,string,string)byte[]":{"call_config":{"no_op":"CALL"}},"fundContract(uint64)void":{"call_config":{"no_op":"CALL"}},"withdrawExcessFunds()void":{"call_config":{"no_op":"CALL"}}},"source":{"approval":"I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAyIDEgOAogICAgYnl0ZWNibG9jayAibGlzdGluZ18iIDB4MTUxZjdjNzUwMDIwIDB4MDAwNgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI3CiAgICAvLyBleHBvcnQgY2xhc3MgQWxnb01pbnRYIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDE5CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydAogICAgcHVzaGJ5dGVzcyAweDU5YmRjMjAwIDB4OWRiODZhOGUgMHg2NzNhZDAwYyAweDE2YTRiNDJlIDB4NWQyYWQyYTAgMHhlMzk4NjY0MCAweGM5MDc5ZTlhIDB4MDYyNDBkZjMgMHg5OGJmOTA2ZCAweGFlZmYwNDBiIDB4NTVkOTUyNWIgMHgxNGVlOGFmYiAvLyBtZXRob2QgImFkZE5GVExpc3RpbmcodWludDY0LHN0cmluZyxzdHJpbmcsc3RyaW5nKWJ5dGVbXSIsIG1ldGhvZCAiZ2V0TkZUTGlzdGluZyhzdHJpbmcsdWludDY0KShzdHJpbmcsc3RyaW5nLHN0cmluZykiLCBtZXRob2QgInJlbW92ZU5GVExpc3Rpbmcoc3RyaW5nLHVpbnQ2NClieXRlW10iLCBtZXRob2QgImNvbnRyYWN0T3B0SW5Ub05GVChzdHJpbmcsdWludDY0KWJ5dGVbXSIsIG1ldGhvZCAidHJhbnNmZXJORlRUb0NvbnRyYWN0QW5kQWRkTGlzdGluZyh1aW50NjQsc3RyaW5nLHN0cmluZyxzdHJpbmcpYnl0ZVtdIiwgbWV0aG9kICJ0cmFuc2Zlck5GVFRvQ29udHJhY3Qoc3RyaW5nLHVpbnQ2NClieXRlW10iLCBtZXRob2QgInRyYW5zZmVyTkZUVG9SZWNlaXZlcihzdHJpbmcsdWludDY0LHN0cmluZylieXRlW10iLCBtZXRob2QgInRyYW5zZmVyTkZUVG9TZWxsZXIoc3RyaW5nLHVpbnQ2NCxzdHJpbmcpYnl0ZVtdIiwgbWV0aG9kICJ0cmFuc2Zlck5GVFRvUmVjZWl2ZXJBbmRSZW1vdmVMaXN0aW5nKHVpbnQ2NCxzdHJpbmcsc3RyaW5nKWJ5dGVbXSIsIG1ldGhvZCAidHJhbnNmZXJORlRUb1NlbGxlckFuZFJlbW92ZUxpc3RpbmcodWludDY0LHN0cmluZyxzdHJpbmcpYnl0ZVtdIiwgbWV0aG9kICJmdW5kQ29udHJhY3QodWludDY0KXZvaWQiLCBtZXRob2QgIndpdGhkcmF3RXhjZXNzRnVuZHMoKXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBhZGRORlRMaXN0aW5nIGdldE5GVExpc3RpbmcgcmVtb3ZlTkZUTGlzdGluZyBjb250cmFjdE9wdEluVG9ORlQgdHJhbnNmZXJORlRUb0NvbnRyYWN0QW5kQWRkTGlzdGluZyB0cmFuc2Zlck5GVFRvQ29udHJhY3QgdHJhbnNmZXJORlRUb1JlY2VpdmVyIHRyYW5zZmVyTkZUVG9TZWxsZXIgdHJhbnNmZXJORlRUb1JlY2VpdmVyQW5kUmVtb3ZlTGlzdGluZyB0cmFuc2Zlck5GVFRvU2VsbGVyQW5kUmVtb3ZlTGlzdGluZyBmdW5kQ29udHJhY3Qgd2l0aGRyYXdFeGNlc3NGdW5kcwogICAgZXJyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxOToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNwogICAgLy8gZXhwb3J0IGNsYXNzIEFsZ29NaW50WCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICAmJgogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBtdXN0IGJlIE5vT3AgJiYgY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjpBbGdvTWludFguYWRkTkZUTGlzdGluZ1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFkZE5GVExpc3Rpbmc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NDIKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICBkdXAKICAgIHVuY292ZXIgMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBkdXAKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NDkKICAgIC8vIGNvbnN0IGxpc3RpbmdLZXkgPSB0aGlzLmJ1aWxkTGlzdGluZ0tleShtYXJrZXRwbGFjZSwgYXNzZXRJZCk7CiAgICB1bmNvdmVyIDYKICAgIGNhbGxzdWIgYnVpbGRMaXN0aW5nS2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjkKICAgIC8vIHByaXZhdGUgbGlzdGluZ3MgPSBCb3hNYXA8Ynl0ZXMsIExpc3Rpbmc+KHsga2V5UHJlZml4OiAibGlzdGluZ18iIH0pOwogICAgYnl0ZWNfMCAvLyAibGlzdGluZ18iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo1MgogICAgLy8gIXRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgICEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo1MS01NAogICAgLy8gYXNzZXJ0KAogICAgLy8gICAhdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICAvLyAgICJBIGxpc3RpbmcgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgTkZUIgogICAgLy8gKTsKICAgIGFzc2VydCAvLyBBIGxpc3RpbmcgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgTkZUCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NTYtNjAKICAgIC8vIGNvbnN0IHZhbHVlID0gbmV3IExpc3RpbmcoewogICAgLy8gICBzZWxsZXI6IG5ldyBhcmM0LlN0cihzZW5kZXJXYWxsZXRBZGRyZXNzKSwKICAgIC8vICAgbmZ0UHJpY2U6IG5ldyBhcmM0LlN0cihuZnRQcmljZSksCiAgICAvLyAgIG1hcmtldHBsYWNlOiBuZXcgYXJjNC5TdHIobWFya2V0cGxhY2UpLAogICAgLy8gfSk7CiAgICBwdXNoaW50IDYgLy8gNgogICAgdW5jb3ZlciA1CiAgICArCiAgICBkdXAKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18yIC8vIDB4MDAwNgogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICB1bmNvdmVyIDQKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgNAogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo2MgogICAgLy8gdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS52YWx1ZSA9IGNsb25lKHZhbHVlKTsKICAgIGRpZyAxCiAgICBib3hfZGVsCiAgICBwb3AKICAgIGJveF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo0MgogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUwMDIwCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NjQKICAgIC8vIHJldHVybiBUeG4udHhJZDsKICAgIHR4biBUeElECiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NDIKICAgIC8vIEBhYmltZXRob2QoKQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC5nZXRORlRMaXN0aW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0TkZUTGlzdGluZzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo2NwogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjY5CiAgICAvLyBjb25zdCBsaXN0aW5nS2V5ID0gdGhpcy5idWlsZExpc3RpbmdLZXkobWFya2V0cGxhY2UsIGFzc2V0SWQpOwogICAgY2FsbHN1YiBidWlsZExpc3RpbmdLZXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gcHJpdmF0ZSBsaXN0aW5ncyA9IEJveE1hcDxieXRlcywgTGlzdGluZz4oeyBrZXlQcmVmaXg6ICJsaXN0aW5nXyIgfSk7CiAgICBieXRlY18wIC8vICJsaXN0aW5nXyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjcyCiAgICAvLyB0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NzEtNzQKICAgIC8vIGFzc2VydCgKICAgIC8vICAgdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICAvLyAgICJObyBhY3RpdmUgbGlzdGluZyBmb3VuZCBmb3IgdGhpcyBORlQiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE5vIGFjdGl2ZSBsaXN0aW5nIGZvdW5kIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjc2CiAgICAvLyByZXR1cm4gY2xvbmUodGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS52YWx1ZSk7CiAgICBib3hfZ2V0CiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo2NwogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC5yZW1vdmVORlRMaXN0aW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKcmVtb3ZlTkZUTGlzdGluZzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo3OQogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjgxCiAgICAvLyBjb25zdCBsaXN0aW5nS2V5ID0gdGhpcy5idWlsZExpc3RpbmdLZXkobWFya2V0cGxhY2UsIGFzc2V0SWQpOwogICAgY2FsbHN1YiBidWlsZExpc3RpbmdLZXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gcHJpdmF0ZSBsaXN0aW5ncyA9IEJveE1hcDxieXRlcywgTGlzdGluZz4oeyBrZXlQcmVmaXg6ICJsaXN0aW5nXyIgfSk7CiAgICBieXRlY18wIC8vICJsaXN0aW5nXyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjg0CiAgICAvLyB0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6ODMtODYKICAgIC8vIGFzc2VydCgKICAgIC8vICAgdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICAvLyAgICJObyBhY3RpdmUgbGlzdGluZyBmb3VuZCBmb3IgdGhpcyBORlQiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE5vIGFjdGl2ZSBsaXN0aW5nIGZvdW5kIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjg4CiAgICAvLyB0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmRlbGV0ZSgpOwogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NzkKICAgIC8vIEBhYmltZXRob2QoKQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1MDAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjkwCiAgICAvLyByZXR1cm4gVHhuLnR4SWQ7CiAgICB0eG4gVHhJRAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjc5CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjpBbGdvTWludFguY29udHJhY3RPcHRJblRvTkZUW3JvdXRpbmddKCkgLT4gdm9pZDoKY29udHJhY3RPcHRJblRvTkZUOgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjk4CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTAwCiAgICAvLyBjb25zdCBsaXN0aW5nS2V5ID0gdGhpcy5idWlsZExpc3RpbmdLZXkobWFya2V0cGxhY2UsIGFzc2V0SWQpOwogICAgc3dhcAogICAgZGlnIDEKICAgIGNhbGxzdWIgYnVpbGRMaXN0aW5nS2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjkKICAgIC8vIHByaXZhdGUgbGlzdGluZ3MgPSBCb3hNYXA8Ynl0ZXMsIExpc3Rpbmc+KHsga2V5UHJlZml4OiAibGlzdGluZ18iIH0pOwogICAgYnl0ZWNfMCAvLyAibGlzdGluZ18iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMDMKICAgIC8vICF0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEwMi0xMDUKICAgIC8vIGFzc2VydCgKICAgIC8vICAgIXRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgLy8gICAiQSBsaXN0aW5nIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIE5GVCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gQSBsaXN0aW5nIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEwNy0xMTQKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMDkKICAgIC8vIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMTEKICAgIC8vIGFzc2V0QW1vdW50OiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBYZmVyQXNzZXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMDctMTEzCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMTIKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEwNy0xMTQKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OTgKICAgIC8vIEBhYmltZXRob2QoKQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1MDAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjExNgogICAgLy8gcmV0dXJuIFR4bi50eElkOwogICAgdHhuIFR4SUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo5OAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo6QWxnb01pbnRYLnRyYW5zZmVyTkZUVG9Db250cmFjdEFuZEFkZExpc3Rpbmdbcm91dGluZ10oKSAtPiB2b2lkOgp0cmFuc2Zlck5GVFRvQ29udHJhY3RBbmRBZGRMaXN0aW5nOgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEyNAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGR1cAogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMzEKICAgIC8vIGNvbnN0IGxpc3RpbmdLZXkgPSB0aGlzLmJ1aWxkTGlzdGluZ0tleShtYXJrZXRwbGFjZSwgYXNzZXRJZCk7CiAgICBkaWcgNgogICAgY2FsbHN1YiBidWlsZExpc3RpbmdLZXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gcHJpdmF0ZSBsaXN0aW5ncyA9IEJveE1hcDxieXRlcywgTGlzdGluZz4oeyBrZXlQcmVmaXg6ICJsaXN0aW5nXyIgfSk7CiAgICBieXRlY18wIC8vICJsaXN0aW5nXyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEzNAogICAgLy8gIXRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgICEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMzMtMTM2CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgICF0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIC8vICAgIkEgbGlzdGluZyBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBORlQiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIEEgbGlzdGluZyBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBORlQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMzgtMTQ1CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTQwCiAgICAvLyBhc3NldFJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTQyCiAgICAvLyBhc3NldEFtb3VudDogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICB1bmNvdmVyIDcKICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMzgtMTQ0CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNDMKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEzOC0xNDUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTQ3LTE1MQogICAgLy8gY29uc3QgdmFsdWUgPSBuZXcgTGlzdGluZyh7CiAgICAvLyAgIHNlbGxlcjogbmV3IGFyYzQuU3RyKHNlbmRlcldhbGxldEFkZHJlc3MpLAogICAgLy8gICBuZnRQcmljZTogbmV3IGFyYzQuU3RyKG5mdFByaWNlKSwKICAgIC8vICAgbWFya2V0cGxhY2U6IG5ldyBhcmM0LlN0cihtYXJrZXRwbGFjZSksCiAgICAvLyB9KTsKICAgIHB1c2hpbnQgNiAvLyA2CiAgICB1bmNvdmVyIDUKICAgICsKICAgIGR1cAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzIgLy8gMHgwMDA2CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIHVuY292ZXIgNAogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciA0CiAgICBjb25jYXQKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE1MwogICAgLy8gdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS52YWx1ZSA9IGNsb25lKHZhbHVlKTsKICAgIGRpZyAxCiAgICBib3hfZGVsCiAgICBwb3AKICAgIGJveF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMjQKICAgIC8vIEBhYmltZXRob2QoKQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1MDAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE1NQogICAgLy8gcmV0dXJuIFR4bi50eElkOwogICAgdHhuIFR4SUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMjQKICAgIC8vIEBhYmltZXRob2QoKQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC50cmFuc2Zlck5GVFRvQ29udHJhY3Rbcm91dGluZ10oKSAtPiB2b2lkOgp0cmFuc2Zlck5GVFRvQ29udHJhY3Q6CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTYxCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTYzCiAgICAvLyBjb25zdCBsaXN0aW5nS2V5ID0gdGhpcy5idWlsZExpc3RpbmdLZXkobWFya2V0cGxhY2UsIGFzc2V0SWQpOwogICAgc3dhcAogICAgZGlnIDEKICAgIGNhbGxzdWIgYnVpbGRMaXN0aW5nS2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjkKICAgIC8vIHByaXZhdGUgbGlzdGluZ3MgPSBCb3hNYXA8Ynl0ZXMsIExpc3Rpbmc+KHsga2V5UHJlZml4OiAibGlzdGluZ18iIH0pOwogICAgYnl0ZWNfMCAvLyAibGlzdGluZ18iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNjYKICAgIC8vICF0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE2NS0xNjgKICAgIC8vIGFzc2VydCgKICAgIC8vICAgIXRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgLy8gICAiQSBsaXN0aW5nIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIE5GVCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gQSBsaXN0aW5nIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE3MC0xNzcKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNzIKICAgIC8vIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNzQKICAgIC8vIGFzc2V0QW1vdW50OiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBYZmVyQXNzZXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNzAtMTc2CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNzUKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE3MC0xNzcKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTYxCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NTAwMjAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNzkKICAgIC8vIHJldHVybiBUeG4udHhJZDsKICAgIHR4biBUeElECiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTYxCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjpBbGdvTWludFgudHJhbnNmZXJORlRUb1JlY2VpdmVyW3JvdXRpbmddKCkgLT4gdm9pZDoKdHJhbnNmZXJORlRUb1JlY2VpdmVyOgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE4MgogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE4OAogICAgLy8gY29uc3QgbGlzdGluZ0tleSA9IHRoaXMuYnVpbGRMaXN0aW5nS2V5KG1hcmtldHBsYWNlLCBhc3NldElkKTsKICAgIHVuY292ZXIgMgogICAgZGlnIDIKICAgIGNhbGxzdWIgYnVpbGRMaXN0aW5nS2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjkKICAgIC8vIHByaXZhdGUgbGlzdGluZ3MgPSBCb3hNYXA8Ynl0ZXMsIExpc3Rpbmc+KHsga2V5UHJlZml4OiAibGlzdGluZ18iIH0pOwogICAgYnl0ZWNfMCAvLyAibGlzdGluZ18iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxOTEKICAgIC8vIHRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxOTAtMTkzCiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIHRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgLy8gICAiTm8gYWN0aXZlIGxpc3RpbmcgZm91bmQgZm9yIHRoaXMgTkZUIgogICAgLy8gKTsKICAgIGFzc2VydCAvLyBObyBhY3RpdmUgbGlzdGluZyBmb3VuZCBmb3IgdGhpcyBORlQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxOTUKICAgIC8vIGNvbnN0IGxpc3RpbmcgPSBjbG9uZSh0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLnZhbHVlKTsKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE5OAogICAgLy8gbGlzdGluZy5zZWxsZXIgPT09IG5ldyBhcmM0LlN0cihzZWxsZXJXYWxsZXRBZGRyZXNzKSwKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgaW50Y18xIC8vIDIKICAgIGV4dHJhY3RfdWludDE2CiAgICBzdWJzdHJpbmczCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE5Ny0yMDAKICAgIC8vIGFzc2VydCgKICAgIC8vICAgbGlzdGluZy5zZWxsZXIgPT09IG5ldyBhcmM0LlN0cihzZWxsZXJXYWxsZXRBZGRyZXNzKSwKICAgIC8vICAgIlNlbGxlciB3YWxsZXQgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gU2VsbGVyIHdhbGxldCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjAyLTIwOQogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDEsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjA0CiAgICAvLyBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIwNgogICAgLy8gYXNzZXRBbW91bnQ6IDEsCiAgICBpbnRjXzIgLy8gMQogICAgaXR4bl9maWVsZCBBc3NldEFtb3VudAogICAgaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIwMi0yMDgKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgICAgeGZlckFzc2V0OiBhc3NldElkLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAxLAogICAgLy8gICAgIGZlZTogMCwKICAgIC8vICAgfSkKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjA3CiAgICAvLyBmZWU6IDAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMDItMjA5CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMSwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTgyCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NTAwMjAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMTEKICAgIC8vIHJldHVybiBUeG4udHhJZDsKICAgIHR4biBUeElECiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTgyCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjpBbGdvTWludFgudHJhbnNmZXJORlRUb1NlbGxlcltyb3V0aW5nXSgpIC0+IHZvaWQ6CnRyYW5zZmVyTkZUVG9TZWxsZXI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjE0CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjIwCiAgICAvLyBjb25zdCBsaXN0aW5nS2V5ID0gdGhpcy5idWlsZExpc3RpbmdLZXkobWFya2V0cGxhY2UsIGFzc2V0SWQpOwogICAgdW5jb3ZlciAyCiAgICBkaWcgMgogICAgY2FsbHN1YiBidWlsZExpc3RpbmdLZXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gcHJpdmF0ZSBsaXN0aW5ncyA9IEJveE1hcDxieXRlcywgTGlzdGluZz4oeyBrZXlQcmVmaXg6ICJsaXN0aW5nXyIgfSk7CiAgICBieXRlY18wIC8vICJsaXN0aW5nXyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIyMwogICAgLy8gdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIyMi0yMjUKICAgIC8vIGFzc2VydCgKICAgIC8vICAgdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICAvLyAgICJObyBhY3RpdmUgbGlzdGluZyBmb3VuZCBmb3IgdGhpcyBORlQiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE5vIGFjdGl2ZSBsaXN0aW5nIGZvdW5kIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIyNwogICAgLy8gY29uc3QgbGlzdGluZyA9IGNsb25lKHRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkudmFsdWUpOwogICAgYm94X2dldAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjMwCiAgICAvLyBsaXN0aW5nLnNlbGxlciA9PT0gbmV3IGFyYzQuU3RyKHNlbGxlcldhbGxldEFkZHJlc3MpLAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAxCiAgICBpbnRjXzEgLy8gMgogICAgZXh0cmFjdF91aW50MTYKICAgIHN1YnN0cmluZzMKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjI5LTIzMgogICAgLy8gYXNzZXJ0KAogICAgLy8gICBsaXN0aW5nLnNlbGxlciA9PT0gbmV3IGFyYzQuU3RyKHNlbGxlcldhbGxldEFkZHJlc3MpLAogICAgLy8gICAiU2VsbGVyIHdhbGxldCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoIgogICAgLy8gKTsKICAgIGFzc2VydCAvLyBTZWxsZXIgd2FsbGV0IGFkZHJlc3MgZG9lcyBub3QgbWF0Y2gKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMzQtMjQxCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMSwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMzYKICAgIC8vIGFzc2V0UmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICB0eG4gU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjM4CiAgICAvLyBhc3NldEFtb3VudDogMSwKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjM0LTI0MAogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDEsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMzkKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIzNC0yNDEKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgICAgeGZlckFzc2V0OiBhc3NldElkLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAxLAogICAgLy8gICAgIGZlZTogMCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9zdWJtaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMTQKICAgIC8vIEBhYmltZXRob2QoKQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1MDAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI0MwogICAgLy8gcmV0dXJuIFR4bi50eElkOwogICAgdHhuIFR4SUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMTQKICAgIC8vIEBhYmltZXRob2QoKQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC50cmFuc2Zlck5GVFRvUmVjZWl2ZXJBbmRSZW1vdmVMaXN0aW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKdHJhbnNmZXJORlRUb1JlY2VpdmVyQW5kUmVtb3ZlTGlzdGluZzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNTAKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZHVwCiAgICBleHRyYWN0IDIgMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI1NgogICAgLy8gY29uc3QgbGlzdGluZ0tleSA9IHRoaXMuYnVpbGRMaXN0aW5nS2V5KG1hcmtldHBsYWNlLCBhc3NldElkKTsKICAgIGRpZyAzCiAgICBjYWxsc3ViIGJ1aWxkTGlzdGluZ0tleQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI5CiAgICAvLyBwcml2YXRlIGxpc3RpbmdzID0gQm94TWFwPGJ5dGVzLCBMaXN0aW5nPih7IGtleVByZWZpeDogImxpc3RpbmdfIiB9KTsKICAgIGJ5dGVjXzAgLy8gImxpc3RpbmdfIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjU5CiAgICAvLyB0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjU4LTI2MQogICAgLy8gYXNzZXJ0KAogICAgLy8gICB0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIC8vICAgIk5vIGFjdGl2ZSBsaXN0aW5nIGZvdW5kIGZvciB0aGlzIE5GVCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gTm8gYWN0aXZlIGxpc3RpbmcgZm91bmQgZm9yIHRoaXMgTkZUCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjYzCiAgICAvLyBjb25zdCBsaXN0aW5nID0gY2xvbmUodGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS52YWx1ZSk7CiAgICBkdXAKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI2NgogICAgLy8gbGlzdGluZy5zZWxsZXIgPT09IG5ldyBhcmM0LlN0cihzZWxsZXJXYWxsZXRBZGRyZXNzKSwKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgaW50Y18xIC8vIDIKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMgogICAgY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgdW5jb3ZlciA0CiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI2NS0yNjgKICAgIC8vIGFzc2VydCgKICAgIC8vICAgbGlzdGluZy5zZWxsZXIgPT09IG5ldyBhcmM0LlN0cihzZWxsZXJXYWxsZXRBZGRyZXNzKSwKICAgIC8vICAgIlNlbGxlciB3YWxsZXQgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gU2VsbGVyIHdhbGxldCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjcxCiAgICAvLyBsaXN0aW5nLm1hcmtldHBsYWNlID09PSBuZXcgYXJjNC5TdHIobWFya2V0cGxhY2UpLAogICAgZHVwCiAgICBwdXNoaW50IDQgLy8gNAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAxCiAgICBsZW4KICAgIHN1YnN0cmluZzMKICAgIHVuY292ZXIgMgogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNzAtMjczCiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIGxpc3RpbmcubWFya2V0cGxhY2UgPT09IG5ldyBhcmM0LlN0cihtYXJrZXRwbGFjZSksCiAgICAvLyAgICJNYXJrZXRwbGFjZSBkb2VzIG5vdCBtYXRjaCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gTWFya2V0cGxhY2UgZG9lcyBub3QgbWF0Y2gKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNzUtMjgyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMSwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNzcKICAgIC8vIGFzc2V0UmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICB0eG4gU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6Mjc5CiAgICAvLyBhc3NldEFtb3VudDogMSwKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICB1bmNvdmVyIDIKICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNzUtMjgxCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMSwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI4MAogICAgLy8gZmVlOiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6Mjc1LTI4MgogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDEsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI4NAogICAgLy8gdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5kZWxldGUoKTsKICAgIGJveF9kZWwKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI1MAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUwMDIwCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6Mjg2CiAgICAvLyByZXR1cm4gVHhuLnR4SWQ7CiAgICB0eG4gVHhJRAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI1MAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo6QWxnb01pbnRYLnRyYW5zZmVyTkZUVG9TZWxsZXJBbmRSZW1vdmVMaXN0aW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKdHJhbnNmZXJORlRUb1NlbGxlckFuZFJlbW92ZUxpc3Rpbmc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6Mjg5CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGR1cAogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOTUKICAgIC8vIGNvbnN0IGxpc3RpbmdLZXkgPSB0aGlzLmJ1aWxkTGlzdGluZ0tleShtYXJrZXRwbGFjZSwgYXNzZXRJZCk7CiAgICBkaWcgMwogICAgY2FsbHN1YiBidWlsZExpc3RpbmdLZXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gcHJpdmF0ZSBsaXN0aW5ncyA9IEJveE1hcDxieXRlcywgTGlzdGluZz4oeyBrZXlQcmVmaXg6ICJsaXN0aW5nXyIgfSk7CiAgICBieXRlY18wIC8vICJsaXN0aW5nXyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI5OAogICAgLy8gdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI5Ny0zMDAKICAgIC8vIGFzc2VydCgKICAgIC8vICAgdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICAvLyAgICJObyBhY3RpdmUgbGlzdGluZyBmb3VuZCBmb3IgdGhpcyBORlQiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE5vIGFjdGl2ZSBsaXN0aW5nIGZvdW5kIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMwMgogICAgLy8gY29uc3QgbGlzdGluZyA9IGNsb25lKHRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkudmFsdWUpOwogICAgZHVwCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMDUKICAgIC8vIGxpc3Rpbmcuc2VsbGVyID09PSBuZXcgYXJjNC5TdHIoc2VsbGVyV2FsbGV0QWRkcmVzcyksCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDEKICAgIGludGNfMSAvLyAyCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDIKICAgIGNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHVuY292ZXIgNAogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMDQtMzA3CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIGxpc3Rpbmcuc2VsbGVyID09PSBuZXcgYXJjNC5TdHIoc2VsbGVyV2FsbGV0QWRkcmVzcyksCiAgICAvLyAgICJTZWxsZXIgd2FsbGV0IGFkZHJlc3MgZG9lcyBub3QgbWF0Y2giCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIFNlbGxlciB3YWxsZXQgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMxMAogICAgLy8gbGlzdGluZy5tYXJrZXRwbGFjZSA9PT0gbmV3IGFyYzQuU3RyKG1hcmtldHBsYWNlKSwKICAgIGR1cAogICAgcHVzaGludCA0IC8vIDQKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgbGVuCiAgICBzdWJzdHJpbmczCiAgICB1bmNvdmVyIDIKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzA5LTMxMgogICAgLy8gYXNzZXJ0KAogICAgLy8gICBsaXN0aW5nLm1hcmtldHBsYWNlID09PSBuZXcgYXJjNC5TdHIobWFya2V0cGxhY2UpLAogICAgLy8gICAiTWFya2V0cGxhY2UgZG9lcyBub3QgbWF0Y2giCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE1hcmtldHBsYWNlIGRvZXMgbm90IG1hdGNoCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzE0LTMyMQogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDEsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzE2CiAgICAvLyBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMxOAogICAgLy8gYXNzZXRBbW91bnQ6IDEsCiAgICBpbnRjXzIgLy8gMQogICAgaXR4bl9maWVsZCBBc3NldEFtb3VudAogICAgdW5jb3ZlciAyCiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzE0LTMyMAogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDEsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMTkKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMxNC0zMjEKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgICAgeGZlckFzc2V0OiBhc3NldElkLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAxLAogICAgLy8gICAgIGZlZTogMCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9zdWJtaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMjMKICAgIC8vIHRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZGVsZXRlKCk7CiAgICBib3hfZGVsCiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyODkKICAgIC8vIEBhYmltZXRob2QoKQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1MDAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMyNQogICAgLy8gcmV0dXJuIFR4bi50eElkOwogICAgdHhuIFR4SUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyODkKICAgIC8vIEBhYmltZXRob2QoKQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC5mdW5kQ29udHJhY3Rbcm91dGluZ10oKSAtPiB2b2lkOgpmdW5kQ29udHJhY3Q6CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzMzCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMzYKICAgIC8vIFR4bi5zZW5kZXIgPT09IEdsb2JhbC5jcmVhdG9yQWRkcmVzcywKICAgIHR4biBTZW5kZXIKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMzUtMzM4CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIFR4bi5zZW5kZXIgPT09IEdsb2JhbC5jcmVhdG9yQWRkcmVzcywKICAgIC8vICAgIk9ubHkgY29udHJhY3QgY3JlYXRvciBjYW4gZnVuZCB0aGUgY29udHJhY3QiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE9ubHkgY29udHJhY3QgY3JlYXRvciBjYW4gZnVuZCB0aGUgY29udHJhY3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNDAtMzQ2CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBhbW91bnQ6IGFtb3VudCwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzQzCiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNDAtMzQ1CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBhbW91bnQ6IGFtb3VudCwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgaW50Y18yIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNDQKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjM0MC0zNDYKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIGFtb3VudDogYW1vdW50LAogICAgLy8gICAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzMzCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC53aXRoZHJhd0V4Y2Vzc0Z1bmRzW3JvdXRpbmddKCkgLT4gdm9pZDoKd2l0aGRyYXdFeGNlc3NGdW5kczoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNTIKICAgIC8vIFR4bi5zZW5kZXIgPT09IEdsb2JhbC5jcmVhdG9yQWRkcmVzcywKICAgIHR4biBTZW5kZXIKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNTEtMzU0CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIFR4bi5zZW5kZXIgPT09IEdsb2JhbC5jcmVhdG9yQWRkcmVzcywKICAgIC8vICAgIk9ubHkgY29udHJhY3QgY3JlYXRvciBjYW4gd2l0aGRyYXcgZnVuZHMiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE9ubHkgY29udHJhY3QgY3JlYXRvciBjYW4gd2l0aGRyYXcgZnVuZHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNTcKICAgIC8vIEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLmJhbGFuY2UgLSBNSU5fQkFMQU5DRQogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICBwdXNoaW50IDEwMDAwMCAvLyAxMDAwMDAKICAgIC0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNjItMzY4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBhbW91bnQ6IGFtb3VudFRvV2l0aGRyYXcsCiAgICAvLyAgICAgcmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzY1CiAgICAvLyByZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIHR4biBTZW5kZXIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzYyLTM2NwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgYW1vdW50OiBhbW91bnRUb1dpdGhkcmF3LAogICAgLy8gICAgIHJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgLy8gICAgIGZlZTogMCwKICAgIC8vICAgfSkKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzY2CiAgICAvLyBmZWU6IDAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNjItMzY4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBhbW91bnQ6IGFtb3VudFRvV2l0aGRyYXcsCiAgICAvLyAgICAgcmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjM0OQogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjpBbGdvTWludFguYnVpbGRMaXN0aW5nS2V5KG1hcmtldHBsYWNlOiBieXRlcywgYXNzZXRJZDogdWludDY0KSAtPiBieXRlczoKYnVpbGRMaXN0aW5nS2V5OgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMxCiAgICAvLyBwcml2YXRlIGJ1aWxkTGlzdGluZ0tleShtYXJrZXRwbGFjZTogc3RyaW5nLCBhc3NldElkOiB1aW50NjQpOiBieXRlcyB7CiAgICBwcm90byAyIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMgogICAgLy8gY29uc3QgbWFya2V0cGxhY2VCeXRlcyA9IG5ldyBhcmM0LlN0cihtYXJrZXRwbGFjZSkuYnl0ZXM7CiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzQKICAgIC8vIGNvbnN0IGFzc2V0SWRCeXRlcyA9IG5ldyBhcmM0LlVpbnQ2NChhc3NldElkKS5ieXRlczsKICAgIGZyYW1lX2RpZyAtMQogICAgaXRvYgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyByZXR1cm4gb3AuY29uY2F0KG9wLmNvbmNhdChtYXJrZXRwbGFjZUJ5dGVzLCBzZXBhcmF0b3IpLCBhc3NldElkQnl0ZXMpOwogICAgc3dhcAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBjb25zdCBzZXBhcmF0b3IgPSBuZXcgYXJjNC5TdHIoIl8iKS5ieXRlczsKICAgIHB1c2hieXRlcyAweDAwMDE1ZgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyByZXR1cm4gb3AuY29uY2F0KG9wLmNvbmNhdChtYXJrZXRwbGFjZUJ5dGVzLCBzZXBhcmF0b3IpLCBhc3NldElkQnl0ZXMpOwogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHJldHN1Ygo=","clear":"I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg=="},"state":{"global":{"num_byte_slices":0,"num_uints":0},"local":{"num_byte_slices":0,"num_uints":0}},"schema":{"global":{"declared":{},"reserved":{}},"local":{"declared":{},"reserved":{}}},"contract":{"name":"AlgoMintX","methods":[{"name":"addNFTListing","args":[{"type":"uint64","name":"assetId"},{"type":"string","name":"senderWalletAddress"},{"type":"string","name":"nftPrice"},{"type":"string","name":"marketplace"}],"readonly":false,"returns":{"type":"byte[]"},"desc":"\\nBox only methods"},{"name":"getNFTListing","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"}],"readonly":true,"returns":{"type":"(string,string,string)"}},{"name":"removeNFTListing","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"}],"readonly":false,"returns":{"type":"byte[]"}},{"name":"contractOptInToNFT","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"}],"readonly":false,"returns":{"type":"byte[]"},"desc":"\\nNFT methods"},{"name":"transferNFTToContractAndAddListing","args":[{"type":"uint64","name":"assetId"},{"type":"string","name":"senderWalletAddress"},{"type":"string","name":"nftPrice"},{"type":"string","name":"marketplace"}],"readonly":false,"returns":{"type":"byte[]"},"desc":"Records a listing and opt-ins the contract to the asset.\\nEscrow is completed by a user-signed asset transfer in the same atomic group\\n(mirrors AlgoStakeX stake: app call + outer asset transfer)."},{"name":"transferNFTToContract","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"}],"readonly":false,"returns":{"type":"byte[]"},"desc":"Opt-in only. Pair with a user-signed asset transfer in the same atomic group."},{"name":"transferNFTToReceiver","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"},{"type":"string","name":"sellerWalletAddress"}],"readonly":false,"returns":{"type":"byte[]"}},{"name":"transferNFTToSeller","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"},{"type":"string","name":"sellerWalletAddress"}],"readonly":false,"returns":{"type":"byte[]"}},{"name":"transferNFTToReceiverAndRemoveListing","args":[{"type":"uint64","name":"assetId"},{"type":"string","name":"sellerWalletAddress"},{"type":"string","name":"marketplace"}],"readonly":false,"returns":{"type":"byte[]"},"desc":"\\nNFT + Box methods"},{"name":"transferNFTToSellerAndRemoveListing","args":[{"type":"uint64","name":"assetId"},{"type":"string","name":"sellerWalletAddress"},{"type":"string","name":"marketplace"}],"readonly":false,"returns":{"type":"byte[]"}},{"name":"fundContract","args":[{"type":"uint64","name":"amount"}],"readonly":false,"returns":{"type":"void"},"desc":"\\nMisc methods"},{"name":"withdrawExcessFunds","args":[],"readonly":false,"returns":{"type":"void"}}],"networks":{}},"bare_call_config":{"no_op":"CREATE"}}')}},e={};function n(a){var i=e[a];if(void 0!==i)return i.exports;var r=e[a]={exports:{}};return t[a](r,r.exports,n),r.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var a in e)n.o(e,a)&&!n.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};n.d(a,{default:()=>cn});const i=require("algosdk");var r=n.n(i),o=new(require("events").EventEmitter);o.setMaxListeners(20);const s=o;function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function g(t){return function(t){if(Array.isArray(t))return l(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return l(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=Array(e);n<e;n++)a[n]=t[n];return a}function u(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,d(a.key),a)}}function d(t){var e=function(t){if("object"!=c(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:e+""}var I=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return e=t,n=[{key:"validateRequired",value:function(t,e){if(null==t)throw new Error("".concat(e," is required"));return t}},{key:"validateString",value:function(e,n){if(t.validateRequired(e,n),"string"!=typeof e)throw new Error("".concat(n," must be a string"));if(0===e.trim().length)throw new Error("".concat(n," cannot be empty"));return e}},{key:"validateEnum",value:function(e,n,a){if(t.validateString(e,n),!a.includes(e))throw new Error("".concat(n," must be one of: ").concat(a.join(", ")));return e}},{key:"validateNumber",value:function(t,e){var n,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null==t)return null!==(n=a.default)&&void 0!==n?n:0;if("number"!=typeof t)throw new Error("".concat(e," must be a number"));if(!Number.isFinite(t))throw new Error("".concat(e," must be a finite number"));if(void 0!==a.min&&t<a.min)throw new Error("".concat(e," must be greater than or equal to ").concat(a.min));if(void 0!==a.max&&t>a.max)throw new Error("".concat(e," must be less than or equal to ").concat(a.max));return t}},{key:"validateBoolean",value:function(t,e){if(null==t)return arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("boolean"!=typeof t)throw new Error("".concat(e," must be a boolean"));return t}},{key:"validateUrl",value:function(e,n){t.validateString(e,n);try{return new URL(e),e}catch(t){throw new Error("".concat(n," must be a valid URL"))}}},{key:"validatePinataServerKey",value:function(e){return t.validateString(e,"Pinata IPFS server key")}},{key:"validatePinataGatewayUrl",value:function(e){if(null==e)return null;var n=t.validateString(e,"Pinata IPFS gateway URL");if(n.startsWith("http://")||n.startsWith("https://"))throw new Error("Pinata IPFS gateway URL must not include http:// or https://");if(n.includes("/"))throw new Error("Pinata IPFS gateway URL must not contain any forward slashes");try{return new URL("https://".concat(n)),n}catch(t){throw new Error("Pinata IPFS gateway URL must be a valid URL")}}},{key:"validateEnvironment",value:function(e){return t.validateEnum(e,"Environment",["testnet","mainnet"])}},{key:"validateMarketplaceType",value:function(e){return t.validateEnum(e,"marketplaceType",["FT","NFT"])}},{key:"validateNamespace",value:function(e){var n=t.validateString(e,"Namespace");if(5!==n.length)throw new Error("Namespace must be exactly 5 characters long");if(!/^[A-Z]+$/.test(n))throw new Error("Namespace must contain only uppercase letters");return n}},{key:"validateRevenueWalletAddress",value:function(e){var n=t.validateString(e,"Revenue wallet address");if(58!==n.length)throw new Error("Revenue wallet address must be 58 characters long");if(!/^[A-Z2-7]{58}$/.test(n))throw new Error("Invalid Algorand wallet address format");return n}},{key:"validateFee",value:function(e,n){return t.validateNumber(e,n,{min:0})}},{key:"validateDisableToast",value:function(e){return t.validateBoolean(e,"disableToast",!1)}},{key:"validateDisableUi",value:function(e){return t.validateBoolean(e,"disableUi",!1)}},{key:"validateMinimizeUILocation",value:function(e){return t.validateEnum(e,"minimizeUILocation",["left","right"])||"right"}},{key:"validateLogo",value:function(e){if(null==e)return null;var n=t.validateString(e,"Logo");if(n.startsWith("http://")||n.startsWith("https://"))return t.validateUrl(n,"Logo");if(n.startsWith("./")||n.startsWith("../")||n.startsWith("/")){if(!/^[./\\a-zA-Z0-9_-]+\.(png|jpg|jpeg|gif|svg|webp)$/i.test(n))throw new Error("Invalid logo file path. Must be a valid image file path");return n}throw new Error("Logo must be either a valid URL or a valid local file path")}},{key:"validateToastLocation",value:function(e){return t.validateEnum(e,"Toast location",["TOP_LEFT","TOP_RIGHT"])}},{key:"validateSupportedMediaFormats",value:function(t){if(!Array.isArray(t))throw new Error("supportedMediaFormats must be an array");var e=["IMAGE","VIDEO","AUDIO"],n=t.filter((function(t){return!e.includes(t)}));if(n.length>0)throw new Error("Invalid media formats: ".concat(n.join(", "),". Valid formats are: ").concat(e.join(", ")));return t}},{key:"validateFileType",value:function(t,e){var n,a,i={IMAGE:["image/jpeg","image/png","image/gif","image/webp","image/svg+xml"],VIDEO:["video/mp4","video/webm","video/ogg","video/quicktime"],AUDIO:["audio/mpeg","audio/wav","audio/ogg","audio/mp4","audio/webm"]},r=e.reduce((function(t,e){return[].concat(g(t),g(i[e]))}),[]),o=t.type||t.mimetype;if(!o||!r.includes(o)){var s=e.map((function(t){return t.toLowerCase()})).join(", ");return{valid:!1,message:"Please upload a supported file type (".concat(s,")")}}var c=null!==(n=t.size)&&void 0!==n?n:t.data instanceof Uint8Array?t.data.byteLength:null===(a=t.data)||void 0===a?void 0:a.length;return null!=c&&c>104857600?{valid:!1,message:"File size must be less than 100MB"}:{valid:!0}}},{key:"sanitizeInput",value:function(t){return(t=(t=(t=(t=t.replace(/<[^>]*>/g,"")).replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"")).replace(/[^a-zA-Z0-9\s.,!?@#$%^&*()_+\-=\[\]{};':"\\|<>\/]/g,"")).replace(/\s+/g," ")).trim()}},{key:"validateNFTName",value:function(t){return t.length<1||t.length>50?{valid:!1,message:"NFT name must be between 1 and 50 characters"}:{valid:!0}}},{key:"validateNFTDescription",value:function(t){return t.length<1||t.length>500?{valid:!1,message:"NFT description must be between 1 and 500 characters"}:{valid:!0}}},{key:"validateFTName",value:function(t){return t.length<1||t.length>50?{valid:!1,message:"FT name must be between 1 and 50 characters"}:{valid:!0}}},{key:"validateFTDescription",value:function(t){return t.length<1||t.length>500?{valid:!1,message:"FT description must be between 1 and 500 characters"}:{valid:!0}}},{key:"validateFTDecimals",value:function(t){if(null==t||""===t)return{valid:!1,message:"Decimals is required"};var e=Number(t);return Number.isInteger(e)?e<0||e>19?{valid:!1,message:"Decimals must be between 0 and 19"}:{valid:!0}:{valid:!1,message:"Decimals must be a whole number"}}},{key:"validateFTTotalSupply",value:function(t){if(null==t||""===t)return{valid:!1,message:"Total supply is required"};var e=Number(t);return Number.isInteger(e)?e<1?{valid:!1,message:"Total supply must be at least 1"}:e>Number.MAX_SAFE_INTEGER?{valid:!1,message:"Total supply is too large"}:{valid:!0}:{valid:!1,message:"Total supply must be a whole number"}}}],null&&u(e.prototype,null),n&&u(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}();function C(t){return C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},C(t)}function h(){h=function(){return e};var t,e={},n=Object.prototype,a=n.hasOwnProperty,i=Object.defineProperty||function(t,e,n){t[e]=n.value},r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function g(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{g({},"")}catch(t){g=function(t,e,n){return t[e]=n}}function l(t,e,n,a){var r=e&&e.prototype instanceof v?e:v,o=Object.create(r.prototype),s=new B(a||[]);return i(o,"_invoke",{value:x(t,n,s)}),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",I="suspendedYield",y="executing",A="completed",m={};function v(){}function b(){}function p(){}var f={};g(f,o,(function(){return this}));var W=Object.getPrototypeOf,G=W&&W(W(X([])));G&&G!==n&&a.call(G,o)&&(f=G);var Y=p.prototype=v.prototype=Object.create(f);function N(t){["next","throw","return"].forEach((function(e){g(t,e,(function(t){return this._invoke(e,t)}))}))}function Z(t,e){function n(i,r,o,s){var c=u(t[i],t,r);if("throw"!==c.type){var g=c.arg,l=g.value;return l&&"object"==C(l)&&a.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,o,s)}),(function(t){n("throw",t,o,s)})):e.resolve(l).then((function(t){g.value=t,o(g)}),(function(t){return n("throw",t,o,s)}))}s(c.arg)}var r;i(this,"_invoke",{value:function(t,a){function i(){return new e((function(e,i){n(t,a,e,i)}))}return r=r?r.then(i,i):i()}})}function x(e,n,a){var i=d;return function(r,o){if(i===y)throw Error("Generator is already running");if(i===A){if("throw"===r)throw o;return{value:t,done:!0}}for(a.method=r,a.arg=o;;){var s=a.delegate;if(s){var c=F(s,a);if(c){if(c===m)continue;return c}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===d)throw i=A,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=y;var g=u(e,n,a);if("normal"===g.type){if(i=a.done?A:I,g.arg===m)continue;return{value:g.arg,done:a.done}}"throw"===g.type&&(i=A,a.method="throw",a.arg=g.arg)}}}function F(e,n){var a=n.method,i=e.iterator[a];if(i===t)return n.delegate=null,"throw"===a&&e.iterator.return&&(n.method="return",n.arg=t,F(e,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),m;var r=u(i,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,m;var o=r.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function w(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function X(e){if(e||""===e){var n=e[o];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,r=function n(){for(;++i<e.length;)if(a.call(e,i))return n.value=e[i],n.done=!1,n;return n.value=t,n.done=!0,n};return r.next=r}}throw new TypeError(C(e)+" is not iterable")}return b.prototype=p,i(Y,"constructor",{value:p,configurable:!0}),i(p,"constructor",{value:b,configurable:!0}),b.displayName=g(p,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===b||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,g(t,c,"GeneratorFunction")),t.prototype=Object.create(Y),t},e.awrap=function(t){return{__await:t}},N(Z.prototype),g(Z.prototype,s,(function(){return this})),e.AsyncIterator=Z,e.async=function(t,n,a,i,r){void 0===r&&(r=Promise);var o=new Z(l(t,n,a,i),r);return e.isGeneratorFunction(n)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},N(Y),g(Y,c,"Generator"),g(Y,o,(function(){return this})),g(Y,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),n=[];for(var a in e)n.push(a);return n.reverse(),function t(){for(;n.length;){var a=n.pop();if(a in e)return t.value=a,t.done=!1,t}return t.done=!0,t}},e.values=X,B.prototype={constructor:B,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(w),!e)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function i(a,i){return s.type="throw",s.arg=e,n.next=a,i&&(n.method="next",n.arg=t),!!i}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var c=a.call(o,"catchLoc"),g=a.call(o,"finallyLoc");if(c&&g){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!g)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var r=i;break}}r&&("break"===t||"continue"===t)&&r.tryLoc<=e&&e<=r.finallyLoc&&(r=null);var o=r?r.completion:{};return o.type=t,o.arg=e,r?(this.method="next",this.next=r.finallyLoc,m):this.complete(o)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),m},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),w(n),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var i=a.arg;w(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,a){return this.delegate={iterator:X(e),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=t),m}},e}function y(t,e,n,a,i,r,o){try{var s=t[r](o),c=s.value}catch(t){return void n(t)}s.done?e(c):Promise.resolve(c).then(a,i)}function A(t){return function(){var e=this,n=arguments;return new Promise((function(a,i){var r=t.apply(e,n);function o(t){y(r,a,i,o,s,"next",t)}function s(t){y(r,a,i,o,s,"throw",t)}o(void 0)}))}}function m(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,v(a.key),a)}}function v(t){var e=function(t){if("object"!=C(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=C(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==C(e)?e:e+""}function b(t,e,n){p(t,e),e.set(t,n)}function p(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}function f(t,e){return t.get(G(t,e))}function W(t,e,n){return t.set(G(t,e),n),n}function G(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}var Y=new WeakMap,N=new WeakMap,Z=new WeakMap,x=new WeakMap,F=new WeakMap,L=new WeakMap,w=new WeakMap,B=new WeakMap,X=new WeakMap,R=new WeakMap,k=new WeakSet,z=function(){return t=function t(e,n){var a;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),p(this,a=k),a.add(this),b(this,Y,void 0),b(this,N,void 0),b(this,Z,void 0),b(this,x,void 0),b(this,F,void 0),b(this,L,void 0),b(this,w,void 0),b(this,B,void 0),b(this,X,void 0),b(this,R,void 0),W(Y,this,e),W(N,this,n.disableUi),W(Z,this,n.disableToast),W(x,this,n.logo),W(F,this,n.minimizeUILocation),W(L,this,n.toastLocation),W(w,this,null),W(B,this,n.marketplaceType||"NFT"),W(X,this,null),W(R,this,null)},e=[{key:"initUI",value:function(t){if(!f(N,this)){var e=document.getElementById("algox-sdk-container");e&&e.remove();var n=document.createElement("div");n.id="algox-sdk-container",n.style.display=f(Y,this).isMinimized?"none":"flex";var a='\n <div id="algox-header">\n <div class="header-left">\n '.concat(f(x,this)?'<img src="'.concat(f(x,this),'" alt="AlgoMintX" onerror="this.style.display=\'none\'; this.nextElementSibling.style.display=\'block\';" />'):"",'\n <h3 style="').concat(f(x,this)?"display: none;":"display: block;",'">AlgoMintX</h3>\n </div>\n <div class="header-right">\n <button id="algox-theme-btn" title="Toggle Theme">🌓</button>\n <button id="algox-logout-btn" title="Logout" style="display: none;">⏻</button>\n <button id="algox-minimize-btn" title="Minimize">–</button>\n </div>\n </div>\n \n <div id="algox-wallet-choice">\n <button class="algox-wallet-btn" data-wallet="pera">\n <img src="https://perawallet.s3.amazonaws.com/images/media-kit/logomark-white.svg" alt="Pera Wallet" />\n Connect Pera Wallet\n </button>\n <button class="algox-wallet-btn" data-wallet="defly">\n <img src="https://docs.defly.app/~gitbook/image?url=https%3A%2F%2F2700986753-files.gitbook.io%2F~%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fcollections%252FWDbwYIFtoiPa3JoJufCw%252Ficon%252FbQUUOW6VhH6vKR0XH7UB%252Flogo-notext-whiteonblack.png%3Falt%3Dmedia%26token%3D7d62c65b-fd29-47b6-a83b-162caac2fc8f&width=32&dpr=2&quality=100&sign=952138fe&sv=2" alt="Defly Wallet" />\n Connect Defly Wallet\n </button>\n </div>'),i="NFT"===f(B,this),r="FT"===f(B,this),o='\n <div id="algox-mintx-content">\n <div class="algox-tabs-container">\n <button class="algox-tab-nav-btn" id="algox-tab-prev">‹</button>\n <div class="algox-tabs-wrapper">\n <div class="algox-tabs-track">\n '.concat(i?'<button class="algox-tab-btn active" data-tab="nft">Mint NFT</button>':"","\n ").concat(r?'<button class="algox-tab-btn'.concat(i?"":" active",'" data-tab="ft">Mint FT</button>'):"",'\n </div>\n </div>\n <button class="algox-tab-nav-btn" id="algox-tab-next">›</button>\n </div>\n\n <div class="algox-tab-content">\n ').concat(i?'<div id="algox-nft-tab" class="algox-tab-pane active">\n <div id="algox-mintx-nft-form">\n <input type="text" id="algox-mintx-nft-name" placeholder="NFT Name" />\n <textarea id="algox-mintx-nft-description" placeholder="NFT Description"></textarea>\n <input type="file" id="algox-mintx-nft-file" accept="image/*,video/*" />\n <button id="algox-mintx-mint-btn" title="Mint NFT">Mint NFT</button>\n <button id="algox-mintx-reset-btn">Mint another NFT</button>\n <div id="algox-mintx-messages" title="Click to copy"></div>\n </div>\n </div>':"","\n ").concat(r?'<div id="algox-ft-tab" class="algox-tab-pane'.concat(i?"":" active",'">\n <div id="algox-mintx-ft-content">\n <input type="text" id="algox-mintx-ft-name" placeholder="Token Name" />\n <textarea id="algox-mintx-ft-description" placeholder="Token Description"></textarea>\n <input type="number" id="algox-mintx-ft-decimals" placeholder="Decimals (0 - 19)" min="0" max="19" step="1" />\n <input type="number" id="algox-mintx-ft-supply" placeholder="Total Supply" min="1" step="1" />\n <label class="algox-mintx-ft-file-label" for="algox-mintx-ft-file">Token Icon (optional)</label>\n <input type="file" id="algox-mintx-ft-file" accept="image/*" />\n <button id="algox-mintx-ft-mint-btn" title="Mint FT">Mint FT</button>\n <button id="algox-mintx-ft-reset-btn">Mint another FT</button>\n <div id="algox-mintx-ft-messages" title="Click to copy"></div>\n </div>\n </div>'):"","\n </div>\n </div>"),s=f(x,this)?"":'\n <div id="algox-footer">\n <span>AlgoMintX crafted with ❤️ by <a href="https://ibhagyesh.com/" target="_blank" rel="noopener noreferrer">ibhagyesh</a></span>\n </div>',c='\n <div id="algox-wallet-address" title="Click to copy connected wallet address"></div>\n '.concat(s,'\n\n <div id="algox-loading-overlay">\n <div id="algox-loader"></div>\n <div id="algox-processing-message"></div>\n </div>');n.innerHTML=a+o+c,document.body.appendChild(n);var g=document.getElementById("algox-minimized-btn");g&&g.remove();var l=document.createElement("button");l.id="algox-minimized-btn",l.innerHTML=f(x,this)?'<img src="'.concat(f(x,this),'" alt="AMX" onerror="this.style.display=\'none\'; this.nextElementSibling.style.display=\'block\';" /><span style="display: none;">AMX</span>'):"AMX",document.body.appendChild(l),this.applyTheme(),this.setupThemeListener(),G(k,this,M).call(this,t),G(k,this,V).call(this,t),this.setupToastContainer()}}},{key:"showSDKUI",value:function(){f(N,this)||(f(Y,this)&&f(Y,this).account?(document.getElementById("algox-sdk-container").style.display="flex",document.getElementById("algox-header").style.display="flex",document.getElementById("algox-logout-btn").style.display="contents",document.getElementById("algox-wallet-choice").style.display="none",document.getElementById("algox-mintx-content").style.display="flex",this.updateWalletAddressBar(),f(Y,this).isMinimized?this.minimizeSDK(!0):this.maximizeSDK(!0)):this.resetToLoginUI())}},{key:"resetToLoginUI",value:function(){f(N,this)||(this.clearMessage(),this.clearFTMessage(),this.updateWalletAddressBar(),document.getElementById("algox-sdk-container").style.display="flex",document.getElementById("algox-header").style.display="flex",document.getElementById("algox-logout-btn").style.display="none",document.getElementById("algox-wallet-choice").style.display="flex",document.getElementById("algox-mintx-content").style.display="none",f(Y,this).isMinimized?this.minimizeSDK(!0):this.maximizeSDK(!0))}},{key:"updateWalletAddressBar",value:function(){if(!f(N,this)){var t=document.getElementById("algox-wallet-address");t&&(f(Y,this).account?(t.innerText=f(Y,this).account,t.style.display="block"):(t.innerText="",t.style.display="none"))}}},{key:"setupToastContainer",value:function(){if(!f(Z,this)&&!f(N,this)){var t=document.getElementById("algox-toast-container");t||((t=document.createElement("div")).id="algox-toast-container",t.className="TOP_LEFT"===f(L,this)?"top-left":"top-right",document.body.appendChild(t))}}},{key:"showToast",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info";if(s.emit("toast:show",{message:t,type:e}),!f(Z,this)&&!f(N,this)){var n="algox-toast",a=document.getElementById(n);a&&a.remove();var i=document.createElement("div");i.id=n;var r=document.createElement("div");r.className="toast-content",r.innerText=t;var o=document.createElement("button");o.className="toast-close",o.innerHTML="×",o.onclick=function(){i.style.opacity="0",i.addEventListener("transitionend",(function(){return i.remove()}),{once:!0})},i.appendChild(r),i.appendChild(o),i.classList.add("error"===e?"error":"success"===e?"success":"warning"===e?"warning":"info"),i.classList.add(f(L,this).toLowerCase().replace("_","-")),document.body.appendChild(i),requestAnimationFrame((function(){i.style.opacity="1"})),setTimeout((function(){return o.onclick()}),3500)}}},{key:"showLoadingOverlay",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Processing...";if(!f(N,this)){var e=document.getElementById("algox-loading-overlay"),n=document.getElementById("algox-minimized-btn"),a=document.getElementById("algox-processing-message");e&&a&&(a.textContent=t,W(w,this,t),"dark"===f(Y,this).theme?e.classList.add("dark-theme"):e.classList.remove("dark-theme"),requestAnimationFrame((function(){e.classList.add("visible"),n&&n.classList.add("processing")})))}}},{key:"hideLoadingOverlay",value:function(){if(!f(N,this)){var t=document.getElementById("algox-loading-overlay"),e=document.getElementById("algox-minimized-btn");t?requestAnimationFrame((function(){t.classList.remove("visible"),e&&e.classList.remove("processing")})):e&&e.classList.remove("processing")}}},{key:"updateLoadingMessage",value:function(t){if(!f(N,this)){var e=document.getElementById("algox-processing-message");e&&(e.textContent=t,W(w,this,t))}}},{key:"getSystemTheme",value:function(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}},{key:"setupThemeListener",value:function(){var t=this;f(N,this)||window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",(function(e){var n=localStorage.getItem("amx");if(n)try{JSON.parse(n).theme||(f(Y,t).theme=e.matches?"dark":"light",t.saveUIState(),t.applyTheme())}catch(t){console.error("Failed to parse saved state:",t)}}))}},{key:"applyTheme",value:function(){if(!f(N,this)){var t=document.getElementById("algox-sdk-container"),e=document.getElementById("algox-minimized-btn");t&&("dark"===f(Y,this).theme?(t.classList.add("dark-theme"),e&&e.classList.add("dark-theme")):(t.classList.remove("dark-theme"),e&&e.classList.remove("dark-theme")))}}},{key:"saveUIState",value:function(){f(N,this)||localStorage.setItem("axs",JSON.stringify({minimized:f(Y,this).isMinimized,theme:f(Y,this).theme}))}},{key:"minimizeSDK",value:function(t){if(!f(N,this)&&(t||!f(Y,this).isMinimized)){var e=document.getElementById("algox-sdk-container"),n=document.getElementById("algox-minimized-btn");e&&n&&(n.style.right="right"===f(F,this)?"20px":"auto",n.style.left="left"===f(F,this)?"20px":"auto",e.classList.add("minimizing"),n.style.display="block",setTimeout((function(){e.style.display="none",e.classList.remove("minimizing"),n.classList.add("showing")}),300),f(Y,this).isMinimized=!0,this.saveUIState(),s.emit("window:size:minimized",{minimized:f(Y,this).isMinimized}))}}},{key:"maximizeSDK",value:function(t){if(!f(N,this)&&(t||f(Y,this).isMinimized)){var e=document.getElementById("algox-sdk-container"),n=document.getElementById("algox-minimized-btn");e&&n&&(n.classList.remove("showing"),n.classList.add("hiding"),setTimeout((function(){n.style.display="none",n.classList.remove("hiding"),e.style.display="flex",e.classList.add("maximizing"),setTimeout((function(){e.classList.remove("maximizing")}),300)}),200),f(Y,this).isMinimized=!1,this.saveUIState(),s.emit("window:size:maximized",{minimized:f(Y,this).isMinimized}))}}},{key:"setupNFTInputValidation",value:function(t){var e=this;if(!f(N,this)){var n=document.getElementById("algox-mintx-nft-name"),a=document.getElementById("algox-mintx-nft-description"),i=document.getElementById("algox-mintx-nft-file"),r={IMAGE:"image/jpeg,image/png,image/gif,image/webp,image/svg+xml",VIDEO:"video/mp4,video/webm,video/ogg,video/quicktime",AUDIO:"audio/mpeg,audio/wav,audio/ogg,audio/mp4,audio/webm"},o=t.getSupportedMediaFormats().map((function(t){return r[t]})).join(",");i.setAttribute("accept",o),n.addEventListener("input",(function(n){if(n.target.value.length>50)return n.target.value=n.target.value.slice(0,50),void e.showToast("NFT name cannot exceed 50 characters","error");if(n.target.value.includes("<")||n.target.value.includes(">")){var a=t.sanitizeInput(n.target.value);a!==n.target.value&&(n.target.value=a)}e.validateMintButton()})),a.addEventListener("input",(function(n){if(n.target.value.length>500)return n.target.value=n.target.value.slice(0,500),void e.showToast("NFT description cannot exceed 500 characters","error");if(n.target.value.includes("<")||n.target.value.includes(">")){var a=t.sanitizeInput(n.target.value);a!==n.target.value&&(n.target.value=a)}e.validateMintButton()})),i.addEventListener("change",(function(n){var a=n.target.files[0];if(a){var i=t.validateFileType(a);i.valid||(e.showToast(i.message,"error"),n.target.value=""),e.validateMintButton()}else e.validateMintButton()})),n.addEventListener("paste",(function(n){n.preventDefault();var a=(n.clipboardData||window.clipboardData).getData("text"),i=a.slice(0,50),r=t.sanitizeInput(i);n.target.value=r,a.length>50&&e.showToast("NFT name cannot exceed 50 characters","error"),e.validateMintButton()})),a.addEventListener("paste",(function(n){n.preventDefault();var a=(n.clipboardData||window.clipboardData).getData("text"),i=a.slice(0,500),r=t.sanitizeInput(i);n.target.value=r,a.length>500&&e.showToast("NFT description cannot exceed 500 characters","error"),e.validateMintButton()})),this.validateMintButton()}}},{key:"validateMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-mint-btn"),e=document.getElementById("algox-mintx-nft-name"),n=document.getElementById("algox-mintx-nft-description"),a=document.getElementById("algox-mintx-nft-file"),i=e.value.trim().length>0,r=n.value.trim().length>0,o=a.files.length>0;t.disabled=!(i&&r&&o)}}},{key:"clearMessage",value:function(){f(N,this)||f(X,this)&&(f(X,this).innerText="",f(X,this).style.display="none",f(X,this).style.cursor="pointer")}},{key:"resetNFTDetails",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-nft-name"),e=document.getElementById("algox-mintx-nft-description"),n=document.getElementById("algox-mintx-nft-file"),a=document.getElementById("algox-mintx-mint-btn"),i=document.getElementById("algox-mintx-reset-btn");t.value="",e.value="",n.value="",a.style.display="block",i.style.display="none",a.disabled=!0,this.clearMessage(),this.validateMintButton()}}},{key:"updateMessage",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pointer";f(N,this)||f(X,this)&&(f(X,this).innerText=t,f(X,this).style.display="block",f(X,this).style.cursor=e)}},{key:"disableMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-mint-btn"),e=document.getElementById("algox-logout-btn");t&&(t.disabled=!0),e&&(e.disabled=!0)}}},{key:"enableMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-mint-btn"),e=document.getElementById("algox-logout-btn");t&&(t.disabled=!1),e&&(e.disabled=!1)}}},{key:"showResetButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-mint-btn"),e=document.getElementById("algox-mintx-reset-btn");t&&(t.style.display="none"),e&&(e.style.display="block")}}},{key:"setupFTInputValidation",value:function(t){var e=this;if(!f(N,this)){var n=document.getElementById("algox-mintx-ft-name"),a=document.getElementById("algox-mintx-ft-description"),i=document.getElementById("algox-mintx-ft-decimals"),r=document.getElementById("algox-mintx-ft-supply"),o=document.getElementById("algox-mintx-ft-file");n.addEventListener("input",(function(n){if(n.target.value.length>50)return n.target.value=n.target.value.slice(0,50),void e.showToast("Token name cannot exceed 50 characters","error");if(n.target.value.includes("<")||n.target.value.includes(">")){var a=t.sanitizeInput(n.target.value);a!==n.target.value&&(n.target.value=a)}e.validateFTMintButton()})),a.addEventListener("input",(function(n){if(n.target.value.length>500)return n.target.value=n.target.value.slice(0,500),void e.showToast("Token description cannot exceed 500 characters","error");if(n.target.value.includes("<")||n.target.value.includes(">")){var a=t.sanitizeInput(n.target.value);a!==n.target.value&&(n.target.value=a)}e.validateFTMintButton()})),i.addEventListener("input",(function(t){var n=t.target.value.replace(/[^0-9]/g,"");""!==n&&Number(n)>19&&(n="19",e.showToast("Decimals cannot exceed 19","error")),t.target.value=n,e.validateFTMintButton()})),r.addEventListener("input",(function(t){var n=t.target.value.replace(/[^0-9]/g,"");t.target.value=n,e.validateFTMintButton()})),o.addEventListener("change",(function(n){var a=n.target.files[0];if(a){var i=t.validateFileType(a);i.valid||(e.showToast(i.message,"error"),n.target.value="")}e.validateFTMintButton()})),n.addEventListener("paste",(function(n){n.preventDefault();var a=(n.clipboardData||window.clipboardData).getData("text"),i=a.slice(0,50);n.target.value=t.sanitizeInput(i),a.length>50&&e.showToast("Token name cannot exceed 50 characters","error"),e.validateFTMintButton()})),a.addEventListener("paste",(function(n){n.preventDefault();var a=(n.clipboardData||window.clipboardData).getData("text"),i=a.slice(0,500);n.target.value=t.sanitizeInput(i),a.length>500&&e.showToast("Token description cannot exceed 500 characters","error"),e.validateFTMintButton()})),this.validateFTMintButton()}}},{key:"validateFTMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-ft-mint-btn"),e=document.getElementById("algox-mintx-ft-name"),n=document.getElementById("algox-mintx-ft-description"),a=document.getElementById("algox-mintx-ft-decimals"),i=document.getElementById("algox-mintx-ft-supply"),r=e.value.trim().length>0,o=n.value.trim().length>0,s=Number(a.value),c=""!==a.value&&Number.isInteger(s)&&s>=0&&s<=19,g=Number(i.value),l=""!==i.value&&Number.isInteger(g)&&g>=1;t.disabled=!(r&&o&&c&&l)}}},{key:"resetFTDetails",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-ft-name"),e=document.getElementById("algox-mintx-ft-description"),n=document.getElementById("algox-mintx-ft-decimals"),a=document.getElementById("algox-mintx-ft-supply"),i=document.getElementById("algox-mintx-ft-file"),r=document.getElementById("algox-mintx-ft-mint-btn"),o=document.getElementById("algox-mintx-ft-reset-btn");t.value="",e.value="",n.value="",a.value="",i.value="",r.style.display="block",o.style.display="none",r.disabled=!0,this.clearFTMessage(),this.validateFTMintButton()}}},{key:"clearFTMessage",value:function(){f(N,this)||f(R,this)&&(f(R,this).innerText="",f(R,this).style.display="none",f(R,this).style.cursor="pointer")}},{key:"updateFTMessage",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pointer";f(N,this)||f(R,this)&&(f(R,this).innerText=t,f(R,this).style.display="block",f(R,this).style.cursor=e)}},{key:"disableFTMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-ft-mint-btn"),e=document.getElementById("algox-logout-btn");t&&(t.disabled=!0),e&&(e.disabled=!0)}}},{key:"enableFTMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-ft-mint-btn"),e=document.getElementById("algox-logout-btn");t&&(t.disabled=!1),e&&(e.disabled=!1)}}},{key:"showFTResetButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-ft-mint-btn"),e=document.getElementById("algox-mintx-ft-reset-btn");t&&(t.style.display="none"),e&&(e.style.display="block")}}}],e&&m(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function M(t){var e=this;document.getElementById("algox-wallet-choice").addEventListener("click",function(){var e=A(h().mark((function e(n){var a,i,r,o;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r=null===(a=(i=n.target).closest)||void 0===a?void 0:a.call(i,".algox-wallet-btn"))){e.next=5;break}return o=r.getAttribute("data-wallet"),e.next=5,t.onWalletConnect(o);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),document.getElementById("algox-minimized-btn").addEventListener("click",(function(){return t.onMaximize()})),document.getElementById("algox-minimize-btn").addEventListener("click",(function(){return t.onMinimize()})),document.getElementById("algox-logout-btn").addEventListener("click",(function(){return t.onLogout()})),document.getElementById("algox-theme-btn").addEventListener("click",(function(){t.onThemeToggle()})),document.getElementById("algox-wallet-address").addEventListener("click",(function(){f(Y,e).account&&(navigator.clipboard.writeText(f(Y,e).account),e.showToast("Wallet address copied to clipboard","success"))}))}function H(t){var e=document.getElementById("algox-sdk-container"),n=null==e?void 0:e.querySelector(".algox-tabs-container"),a=null==e?void 0:e.querySelector(".algox-tab-content"),i=null==e?void 0:e.querySelector(".algox-tabs-track"),r=null==e?void 0:e.querySelectorAll(".algox-tab-btn"),o=null==e?void 0:e.querySelector("#algox-tab-prev"),s=null==e?void 0:e.querySelector("#algox-tab-next");if(i&&r&&0!==r.length){if(r.length<=1)return n&&(n.style.display="none"),void(a&&(a.style.display="contents"));var c=0,g=r.length;g<=2&&(o&&(o.style.display="none"),s&&(s.style.display="none"));var l=function(){!o||!s||g<=2||(o.disabled=0===c,s.disabled=c>=g-2)},u=function(t){"prev"===t&&c>0?c--:"next"===t&&c<g-2&&c++;var e=-50*c;i.style.transform="translateX(".concat(e,"%)"),l()};r.forEach((function(t){t.addEventListener("click",(function(){var n=t.getAttribute("data-tab");r.forEach((function(t){return t.classList.remove("active")})),t.classList.add("active"),e.querySelectorAll(".algox-tab-pane").forEach((function(t){return t.classList.remove("active")}));var a=e.querySelector("#algox-".concat(n,"-tab"));a&&a.classList.add("active")}))})),null==o||o.addEventListener("click",(function(){return u("prev")})),null==s||s.addEventListener("click",(function(){return u("next")})),l()}}function V(t){var e=this;G(k,this,H).call(this,t),document.getElementById("algox-mintx-mint-btn").addEventListener("click",A(h().mark((function e(){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.onMintNFT();case 2:case"end":return e.stop()}}),e)})))),document.getElementById("algox-mintx-reset-btn").addEventListener("click",(function(){return t.onResetNFT()})),document.getElementById("algox-mintx-ft-mint-btn").addEventListener("click",A(h().mark((function e(){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.onMintFT();case 2:case"end":return e.stop()}}),e)})))),document.getElementById("algox-mintx-ft-reset-btn").addEventListener("click",(function(){return t.onResetFT()})),W(X,this,document.getElementById("algox-mintx-messages")),f(X,this)&&f(X,this).addEventListener("click",(function(){if(f(X,e).innerText&&"Minting NFT... Please wait."!==f(X,e).innerText){var t=f(X,e).innerText.replace("NFT Minted! Transaction ID: ","");navigator.clipboard.writeText(t),e.showToast("Transaction ID copied to clipboard","success");var n="mainnet"===f(Y,e).network?"mainnet":"testnet",a="https://lora.algokit.io/".concat(n,"/transaction/").concat(t);window.open(a,"_blank")}})),W(R,this,document.getElementById("algox-mintx-ft-messages")),f(R,this)&&f(R,this).addEventListener("click",(function(){if(f(R,e).innerText&&"Minting FT... Please wait."!==f(R,e).innerText){var t=f(R,e).innerText.replace("FT Minted! Transaction ID: ","");navigator.clipboard.writeText(t),e.showToast("Transaction ID copied to clipboard","success");var n="mainnet"===f(Y,e).network?"mainnet":"testnet",a="https://lora.algokit.io/".concat(n,"/transaction/").concat(t);window.open(a,"_blank")}}))}function T(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=Array(e);n<e;n++)a[n]=t[n];return a}function j(){return"undefined"!=typeof globalThis&&void 0!==globalThis.window&&void 0!==globalThis.document}var J=new Map;function K(){return j()&&"undefined"!=typeof localStorage?localStorage:{getItem:function(t){return J.has(t)?J.get(t):null},setItem:function(t,e){J.set(t,String(e))},removeItem:function(t){J.delete(t)}}}function Q(t){return Q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Q(t)}function E(){E=function(){return e};var t,e={},n=Object.prototype,a=n.hasOwnProperty,i=Object.defineProperty||function(t,e,n){t[e]=n.value},r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function g(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{g({},"")}catch(t){g=function(t,e,n){return t[e]=n}}function l(t,e,n,a){var r=e&&e.prototype instanceof A?e:A,o=Object.create(r.prototype),s=new L(a||[]);return i(o,"_invoke",{value:N(t,n,s)}),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",I="suspendedYield",C="executing",h="completed",y={};function A(){}function m(){}function v(){}var b={};g(b,o,(function(){return this}));var p=Object.getPrototypeOf,f=p&&p(p(w([])));f&&f!==n&&a.call(f,o)&&(b=f);var W=v.prototype=A.prototype=Object.create(b);function G(t){["next","throw","return"].forEach((function(e){g(t,e,(function(t){return this._invoke(e,t)}))}))}function Y(t,e){function n(i,r,o,s){var c=u(t[i],t,r);if("throw"!==c.type){var g=c.arg,l=g.value;return l&&"object"==Q(l)&&a.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,o,s)}),(function(t){n("throw",t,o,s)})):e.resolve(l).then((function(t){g.value=t,o(g)}),(function(t){return n("throw",t,o,s)}))}s(c.arg)}var r;i(this,"_invoke",{value:function(t,a){function i(){return new e((function(e,i){n(t,a,e,i)}))}return r=r?r.then(i,i):i()}})}function N(e,n,a){var i=d;return function(r,o){if(i===C)throw Error("Generator is already running");if(i===h){if("throw"===r)throw o;return{value:t,done:!0}}for(a.method=r,a.arg=o;;){var s=a.delegate;if(s){var c=Z(s,a);if(c){if(c===y)continue;return c}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===d)throw i=h,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=C;var g=u(e,n,a);if("normal"===g.type){if(i=a.done?h:I,g.arg===y)continue;return{value:g.arg,done:a.done}}"throw"===g.type&&(i=h,a.method="throw",a.arg=g.arg)}}}function Z(e,n){var a=n.method,i=e.iterator[a];if(i===t)return n.delegate=null,"throw"===a&&e.iterator.return&&(n.method="return",n.arg=t,Z(e,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),y;var r=u(i,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,y;var o=r.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,y):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function F(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function w(e){if(e||""===e){var n=e[o];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,r=function n(){for(;++i<e.length;)if(a.call(e,i))return n.value=e[i],n.done=!1,n;return n.value=t,n.done=!0,n};return r.next=r}}throw new TypeError(Q(e)+" is not iterable")}return m.prototype=v,i(W,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:m,configurable:!0}),m.displayName=g(v,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===m||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,g(t,c,"GeneratorFunction")),t.prototype=Object.create(W),t},e.awrap=function(t){return{__await:t}},G(Y.prototype),g(Y.prototype,s,(function(){return this})),e.AsyncIterator=Y,e.async=function(t,n,a,i,r){void 0===r&&(r=Promise);var o=new Y(l(t,n,a,i),r);return e.isGeneratorFunction(n)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},G(W),g(W,c,"Generator"),g(W,o,(function(){return this})),g(W,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),n=[];for(var a in e)n.push(a);return n.reverse(),function t(){for(;n.length;){var a=n.pop();if(a in e)return t.value=a,t.done=!1,t}return t.done=!0,t}},e.values=w,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(F),!e)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function i(a,i){return s.type="throw",s.arg=e,n.next=a,i&&(n.method="next",n.arg=t),!!i}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var c=a.call(o,"catchLoc"),g=a.call(o,"finallyLoc");if(c&&g){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!g)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var r=i;break}}r&&("break"===t||"continue"===t)&&r.tryLoc<=e&&e<=r.finallyLoc&&(r=null);var o=r?r.completion:{};return o.type=t,o.arg=e,r?(this.method="next",this.next=r.finallyLoc,y):this.complete(o)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),F(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var i=a.arg;F(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,a){return this.delegate={iterator:w(e),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=t),y}},e}function S(t,e,n,a,i,r,o){try{var s=t[r](o),c=s.value}catch(t){return void n(t)}s.done?e(c):Promise.resolve(c).then(a,i)}function D(t){return function(){var e=this,n=arguments;return new Promise((function(a,i){var r=t.apply(e,n);function o(t){S(r,a,i,o,s,"next",t)}function s(t){S(r,a,i,o,s,"throw",t)}o(void 0)}))}}function O(t){if(!t)throw new Error("File is required.");if("undefined"!=typeof Blob&&t instanceof Blob)return t;if(null!=t.data&&t.name){var e=t.data instanceof Uint8Array?t.data:Buffer.from(t.data);return new Blob([e],{type:t.type||t.mimetype||"application/octet-stream"})}throw new Error("Invalid file input. Provide a File/Blob in the browser or { data, name, type } in Node.js.")}function P(t){return U.apply(this,arguments)}function U(){return(U=D(E().mark((function t(e){var n;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("function"!=typeof(n=O(e)).arrayBuffer){t.next=3;break}return t.abrupt("return",n.arrayBuffer());case 3:throw new Error("Unable to read file buffer.");case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function _(t){return q.apply(this,arguments)}function q(){return q=D(E().mark((function t(e){var n,a,i;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=new TextEncoder,a=n.encode(e),t.next=4,crypto.subtle.digest("SHA-256",a);case 4:return i=t.sent,t.abrupt("return",new Uint8Array(i));case 6:case"end":return t.stop()}}),t)}))),q.apply(this,arguments)}function $(t){return tt.apply(this,arguments)}function tt(){return(tt=D(E().mark((function t(e){var n,a,i;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,P(e);case 2:return n=t.sent,t.next=5,crypto.subtle.digest("SHA-256",n);case 5:return a=t.sent,i=Array.from(new Uint8Array(a)),t.abrupt("return","sha256-".concat((o=i,"undefined"!=typeof btoa?btoa(String.fromCharCode.apply(String,function(t){if(Array.isArray(t))return T(t)}(r=o)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||function(t,e){if(t){if("string"==typeof t)return T(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?T(t,e):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())):Buffer.from(o).toString("base64"))));case 8:case"end":return t.stop()}var r,o}),t)})))).apply(this,arguments)}function et(t,e){return nt.apply(this,arguments)}function nt(){return(nt=D(E().mark((function t(e,n){var a,i,r,o,s;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=O(e),i=new FormData,j()&&"undefined"!=typeof File&&e instanceof File?i.append("file",e):(r=e.name||(a.type?"upload.".concat(a.type.split("/")[1]||"bin"):"upload.bin"),i.append("file",a,r)),t.next=6,fetch("https://api.pinata.cloud/pinning/pinFileToIPFS",{method:"POST",headers:{Authorization:"Bearer ".concat(n)},body:i});case 6:if((o=t.sent).ok){t.next=9;break}throw new Error("Failed to upload file to IPFS: ".concat(o.status," ").concat(o.statusText));case 9:return t.next=11,o.json();case 11:if((s=t.sent).IpfsHash){t.next=14;break}throw new Error("Pinata did not return an IPFS hash.");case 14:return t.abrupt("return",s.IpfsHash);case 15:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function at(t,e){return it.apply(this,arguments)}function it(){return(it=D(E().mark((function t(e,n){var a,i;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=3,fetch("https://api.pinata.cloud/pinning/pinJSONToIPFS",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(n)},body:JSON.stringify(e)});case 3:if((a=t.sent).ok){t.next=6;break}throw new Error("Failed to upload JSON to IPFS: ".concat(a.status," ").concat(a.statusText));case 6:return t.next=8,a.json();case 8:if((i=t.sent).IpfsHash){t.next=11;break}throw new Error("Pinata did not return an IPFS hash for metadata.");case 11:return t.abrupt("return",i.IpfsHash);case 12:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function rt(t,e){return ot.apply(this,arguments)}function ot(){return(ot=D(E().mark((function t(e,n){var a;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,fetch("https://api.pinata.cloud/pinning/unpin/".concat(e),{method:"DELETE",headers:{Authorization:"Bearer ".concat(n)}});case 3:if((a=t.sent).ok){t.next=6;break}throw new Error("Failed to delete from IPFS: ".concat(a.statusText));case 6:return t.abrupt("return",!0);case 9:throw t.prev=9,t.t0=t.catch(0),console.error("Error deleting from IPFS:",t.t0),t.t0;case 13:case"end":return t.stop()}}),t,null,[[0,9]])})))).apply(this,arguments)}function st(t){return Math.round(1e6*t)}function ct(t){var e=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:null)||"ipfs.io";return t.replace("ipfs://","https://".concat(e,"/ipfs/"))}function gt(t,e){var n=(new TextEncoder).encode("listing_"),a=(new TextEncoder).encode(t),i=(new TextEncoder).encode("_"),o=r().encodeUint64(BigInt(e)),s=n.length+2+a.length+2+i.length+o.length,c=new Uint8Array(s),g=0,l=new DataView(c.buffer);return c.set(n,g),g+=n.length,l.setUint16(g,a.length,!1),g+=2,c.set(a,g),g+=a.length,l.setUint16(g,i.length,!1),g+=2,c.set(i,g),g+=i.length,c.set(o,g),c}function lt(t,e,n){return{appIndex:t,name:gt(e,n)}}function ut(t){try{var e="string"==typeof t?Uint8Array.from(atob(t),(function(t){return t.charCodeAt(0)})):t,n=0;if("listing_"!==(new TextDecoder).decode(e.slice(0,8)))return null;n+=8;var a=new DataView(e.buffer,e.byteOffset,e.byteLength),i=a.getUint16(n,!1);n+=2;var o=(new TextDecoder).decode(e.slice(n,n+i));n+=i;var s=a.getUint16(n,!1);n+=2;var c=(new TextDecoder).decode(e.slice(n,n+s));if(n+=s,"_"!==c)return null;var g=Number(r().decodeUint64(e.slice(n,n+8),"safe"));return{marketplace:o,assetId:String(g)}}catch(t){return console.warn("Failed to decode listing box name",t),null}}function dt(t){return dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dt(t)}function It(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function Ct(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?It(Object(n),!0).forEach((function(e){ht(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):It(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function ht(t,e,n){return(e=Wt(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function yt(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=At(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var a=0,i=function(){};return{s:i,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,o=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return o=t.done,t},e:function(t){s=!0,r=t},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}function At(t,e){if(t){if("string"==typeof t)return mt(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mt(t,e):void 0}}function mt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=Array(e);n<e;n++)a[n]=t[n];return a}function vt(){vt=function(){return e};var t,e={},n=Object.prototype,a=n.hasOwnProperty,i=Object.defineProperty||function(t,e,n){t[e]=n.value},r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function g(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{g({},"")}catch(t){g=function(t,e,n){return t[e]=n}}function l(t,e,n,a){var r=e&&e.prototype instanceof A?e:A,o=Object.create(r.prototype),s=new L(a||[]);return i(o,"_invoke",{value:N(t,n,s)}),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",I="suspendedYield",C="executing",h="completed",y={};function A(){}function m(){}function v(){}var b={};g(b,o,(function(){return this}));var p=Object.getPrototypeOf,f=p&&p(p(w([])));f&&f!==n&&a.call(f,o)&&(b=f);var W=v.prototype=A.prototype=Object.create(b);function G(t){["next","throw","return"].forEach((function(e){g(t,e,(function(t){return this._invoke(e,t)}))}))}function Y(t,e){function n(i,r,o,s){var c=u(t[i],t,r);if("throw"!==c.type){var g=c.arg,l=g.value;return l&&"object"==dt(l)&&a.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,o,s)}),(function(t){n("throw",t,o,s)})):e.resolve(l).then((function(t){g.value=t,o(g)}),(function(t){return n("throw",t,o,s)}))}s(c.arg)}var r;i(this,"_invoke",{value:function(t,a){function i(){return new e((function(e,i){n(t,a,e,i)}))}return r=r?r.then(i,i):i()}})}function N(e,n,a){var i=d;return function(r,o){if(i===C)throw Error("Generator is already running");if(i===h){if("throw"===r)throw o;return{value:t,done:!0}}for(a.method=r,a.arg=o;;){var s=a.delegate;if(s){var c=Z(s,a);if(c){if(c===y)continue;return c}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===d)throw i=h,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=C;var g=u(e,n,a);if("normal"===g.type){if(i=a.done?h:I,g.arg===y)continue;return{value:g.arg,done:a.done}}"throw"===g.type&&(i=h,a.method="throw",a.arg=g.arg)}}}function Z(e,n){var a=n.method,i=e.iterator[a];if(i===t)return n.delegate=null,"throw"===a&&e.iterator.return&&(n.method="return",n.arg=t,Z(e,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),y;var r=u(i,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,y;var o=r.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,y):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function F(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function w(e){if(e||""===e){var n=e[o];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,r=function n(){for(;++i<e.length;)if(a.call(e,i))return n.value=e[i],n.done=!1,n;return n.value=t,n.done=!0,n};return r.next=r}}throw new TypeError(dt(e)+" is not iterable")}return m.prototype=v,i(W,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:m,configurable:!0}),m.displayName=g(v,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===m||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,g(t,c,"GeneratorFunction")),t.prototype=Object.create(W),t},e.awrap=function(t){return{__await:t}},G(Y.prototype),g(Y.prototype,s,(function(){return this})),e.AsyncIterator=Y,e.async=function(t,n,a,i,r){void 0===r&&(r=Promise);var o=new Y(l(t,n,a,i),r);return e.isGeneratorFunction(n)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},G(W),g(W,c,"Generator"),g(W,o,(function(){return this})),g(W,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),n=[];for(var a in e)n.push(a);return n.reverse(),function t(){for(;n.length;){var a=n.pop();if(a in e)return t.value=a,t.done=!1,t}return t.done=!0,t}},e.values=w,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(F),!e)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function i(a,i){return s.type="throw",s.arg=e,n.next=a,i&&(n.method="next",n.arg=t),!!i}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var c=a.call(o,"catchLoc"),g=a.call(o,"finallyLoc");if(c&&g){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!g)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var r=i;break}}r&&("break"===t||"continue"===t)&&r.tryLoc<=e&&e<=r.finallyLoc&&(r=null);var o=r?r.completion:{};return o.type=t,o.arg=e,r?(this.method="next",this.next=r.finallyLoc,y):this.complete(o)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),F(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var i=a.arg;F(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,a){return this.delegate={iterator:w(e),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=t),y}},e}function bt(t,e,n,a,i,r,o){try{var s=t[r](o),c=s.value}catch(t){return void n(t)}s.done?e(c):Promise.resolve(c).then(a,i)}function pt(t){return function(){var e=this,n=arguments;return new Promise((function(a,i){var r=t.apply(e,n);function o(t){bt(r,a,i,o,s,"next",t)}function s(t){bt(r,a,i,o,s,"throw",t)}o(void 0)}))}}function ft(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,Wt(a.key),a)}}function Wt(t){var e=function(t){if("object"!=dt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=dt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==dt(e)?e:e+""}function Gt(t,e,n){Yt(t,e),e.set(t,n)}function Yt(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}function Nt(t,e){return t.get(xt(t,e))}function Zt(t,e,n){return t.set(xt(t,e),n),n}function xt(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}var Ft=n(698),Lt=new(r().ABIContract)({name:Ft.contract.name,methods:Ft.contract.methods}),wt=new WeakMap,Bt=new WeakMap,Xt=new WeakMap,Rt=new WeakMap,kt=new WeakMap,zt=new WeakMap,Mt=new WeakMap,Ht=new WeakMap,Vt=new WeakMap,Tt=new WeakMap,jt=new WeakMap,Jt=new WeakMap,Kt=new WeakMap,Qt=new WeakMap,Et=new WeakMap,St=new WeakMap,Dt=new WeakMap,Ot=new WeakMap,Pt=new WeakMap,Ut=new WeakMap,_t=new WeakMap,qt=new WeakMap,$t=new WeakMap,te=new WeakMap,ee=new WeakMap,ne=new WeakMap,ae=new WeakMap,ie=new WeakMap,re=new WeakMap,oe=new WeakMap,se=new WeakMap,ce=new WeakMap,ge=new WeakMap,le=new WeakMap,ue=new WeakMap,de=new WeakMap,Ie=new WeakMap,Ce=new WeakSet;function he(t){var e=K();e.removeItem("walletconnect"),e.removeItem("DeflyWallet.Wallet"),e.removeItem("PeraWallet.Wallet"),!Nt(Vt,this)&&j()?(alert(t),window.location.reload()):console.error("SDK validation failed:",t)}function ye(){return Ae.apply(this,arguments)}function Ae(){return(Ae=pt(vt().mark((function t(){var e,n,a,i;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(j()){t.next=2;break}return t.abrupt("return",null);case 2:if(Nt(wt,this)){t.next=10;break}return t.next=5,Promise.all([Promise.resolve().then((function(){var t=new Error("Cannot find module '@perawallet/connect'");throw t.code="MODULE_NOT_FOUND",t})),Promise.resolve().then((function(){var t=new Error("Cannot find module '@blockshake/defly-connect'");throw t.code="MODULE_NOT_FOUND",t}))]);case 5:e=t.sent,o=2,n=function(t){if(Array.isArray(t))return t}(r=e)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var a,i,r,o,s=[],c=!0,g=!1;try{if(r=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(s.push(a.value),s.length!==e);c=!0);}catch(t){g=!0,i=t}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(g)throw i}}return s}}(r,o)||At(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),a=n[0].PeraWalletConnect,i=n[1].DeflyWalletConnect,Zt(wt,this,{pera:new a,defly:new i});case 10:return t.abrupt("return",Nt(wt,this));case 11:case"end":return t.stop()}var r,o}),t,this)})))).apply(this,arguments)}function me(t){return ve.apply(this,arguments)}function ve(){return(ve=pt(vt().mark((function t(e){var n,a,i=this;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Nt(Et,this)){t.next=2;break}return t.abrupt("return",e.map((function(t){return t.signTxn(Nt(Et,i).sk)})));case 2:if(Nt(zt,this)){t.next=4;break}throw new Error("No signing method available. Connect with connectWallet(address, mnemonic) or a browser wallet.");case 4:return t.next=6,xt(Ce,this,ye).call(this);case 6:if(null!=(n=t.sent)&&n[Nt(zt,this)]){t.next=9;break}throw new Error("Browser wallet signing is unavailable in this environment.");case 9:return t.next=11,n[Nt(zt,this)].signTransaction([e.map((function(t){return{txn:t,signers:[i.account]}}))]);case 11:return a=t.sent,t.abrupt("return",a);case 13:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function be(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"perform this action";if(!Nt(Bt,this)||!this.account)throw!Nt(Vt,this)&&this.isMinimized&&this.maximizeSDK(!0),new Error("Wallet is not connected. Connect a wallet to ".concat(t,"."))}function pe(t){return(null==t?void 0:t.type)||(null==t?void 0:t.mimetype)||"application/octet-stream"}function fe(){return We.apply(this,arguments)}function We(){return(We=pt(vt().mark((function t(){var e=this;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return Nt(St,this).initUI({onWalletConnect:function(t){return xt(Ce,e,Ne).call(e,t)},onMinimize:function(){return e.minimizeSDK()},onMaximize:function(){return e.maximizeSDK()},onLogout:function(){return xt(Ce,e,xe).call(e)},onThemeToggle:function(){e.theme="light"===e.theme?"dark":"light",Nt(St,e).saveUIState(),Nt(St,e).applyTheme(),s.emit("theme:changed",{theme:e.theme})},onResetNFT:function(){return Nt(St,e).resetNFTDetails()},onMintNFT:function(){return xt(Ce,e,we).call(e)},onResetFT:function(){return Nt(St,e).resetFTDetails()},onMintFT:function(){return xt(Ce,e,Me).call(e)}}),Nt(St,this).setupNFTInputValidation({getSupportedMediaFormats:function(){return Nt(Ie,e)},sanitizeInput:function(t){return I.sanitizeInput(t)},validateFileType:function(t){return I.validateFileType(t,Nt(Ie,e))}}),Nt(St,this).setupFTInputValidation({sanitizeInput:function(t){return I.sanitizeInput(t)},validateFileType:function(t){return I.validateFileType(t,["IMAGE"])}}),t.next=5,xt(Ce,this,Ge).call(this);case 5:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function Ge(){return Ye.apply(this,arguments)}function Ye(){return(Ye=pt(vt().mark((function t(){var e,n,a,i,r,o,c,g;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(j()){t.next=2;break}return t.abrupt("return");case 2:return t.prev=2,(e=K()).getItem("walletconnect"),n=e.getItem("PeraWallet.Wallet"),a=e.getItem("DeflyWallet.Wallet"),i=null,r=null,t.next=11,xt(Ce,this,ye).call(this);case 11:if(o=t.sent){t.next=14;break}return t.abrupt("return");case 14:if(!n){t.next=25;break}return t.prev=15,t.next=18,o.pera.reconnectSession();case 18:(c=t.sent)&&c.length>0&&(i="pera",r=c),t.next=25;break;case 22:t.prev=22,t.t0=t.catch(15),console.log("Failed to reconnect to Pera wallet:",t.t0.message);case 25:if(r||!a){t.next=36;break}return t.prev=26,t.next=29,o.defly.reconnectSession();case 29:(g=t.sent)&&g.length>0&&(i="defly",r=g),t.next=36;break;case 33:t.prev=33,t.t1=t.catch(26),console.log("Failed to reconnect to Defly wallet:",t.t1.message);case 36:r&&r.length>0&&i?(Zt(Bt,this,!0),this.account=r[0],Zt(zt,this,i),Zt(Xt,this,{address:this.account,walletType:i}),Nt(St,this).showToast("Restored connection to ".concat(i," wallet"),"success"),Nt(Vt,this)||Nt(St,this).showSDKUI(),s.emit("wallet:connection:connected",{address:this.account})):Nt(Vt,this)||xt(Ce,this,Le).call(this),t.next=45;break;case 39:t.prev=39,t.t2=t.catch(2),console.error("Failed to restore connection",t.t2),Nt(St,this).showToast("Failed to restore connection!","error"),s.emit("wallet:connection:failed",{error:"Failed to restore connection"}),Nt(Vt,this)||xt(Ce,this,Le).call(this);case 45:case"end":return t.stop()}}),t,this,[[2,39],[15,22],[26,33]])})))).apply(this,arguments)}function Ne(t){return Ze.apply(this,arguments)}function Ze(){return(Ze=pt(vt().mark((function t(e){var n,a,i,r,o,c;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Nt(Rt,this)){t.next=3;break}return Nt(St,this).showToast("A wallet connection is already in progress.","warning"),t.abrupt("return");case 3:if(Nt(kt,this).includes(e)){t.next=6;break}return Nt(St,this).showToast("Unsupported wallet selected.","error"),t.abrupt("return");case 6:if(Nt(St,this).clearMessage(),Zt(zt,this,e),!Nt(Vt,this)&&j()){t.next=10;break}throw new Error("Browser wallet connection requires UI. Use connectWallet(address, mnemonic) in headless mode.");case 10:return document.getElementById("algox-sdk-container").style.display="none",t.next=13,xt(Ce,this,ye).call(this);case 13:return n=t.sent,a=n[e],Zt(Rt,this,!0),t.prev=16,i=a.connect(),r=new Promise((function(t,e){return setTimeout((function(){return e(new Error("Wallet connection timed out."))}),3e4)})),t.next=21,Promise.race([i,r]);case 21:if((o=t.sent)&&0!==o.length){t.next=24;break}throw new Error("Wallet connection declined or no account returned.");case 24:Zt(Bt,this,!0),this.account=o[0],Zt(Xt,this,{address:this.account,walletType:e}),Nt(Vt,this)||Nt(St,this).showSDKUI(),Nt(St,this).showToast("Connected to ".concat(e," wallet"),"success"),s.emit("wallet:connection:connected",{address:this.account}),Zt(Rt,this,!1),t.next=70;break;case 33:if(t.prev=33,t.t0=t.catch(16),"Wallet connection timed out."!==t.t0.message){t.next=44;break}return t.next=38,a.disconnect();case 38:if(!a.killSession){t.next=41;break}return t.next=41,a.killSession();case 41:Nt(Vt,this)?console.error("UI is disabled, skipping wallet connection UI"):window.location.reload(),t.next=70;break;case 44:if(console.error("Failed to connect wallet!",t.t0),Zt(Rt,this,!1),!t.t0.message||!t.t0.message.includes("Session currently connected")){t.next=66;break}return t.prev=47,t.next=50,a.reconnectSession();case 50:if(!((c=t.sent)&&c.length>0)){t.next=61;break}return Zt(Bt,this,!0),this.account=c[0],Zt(zt,this,e),Zt(Xt,this,{address:this.account,walletType:e}),Nt(Vt,this)?console.error("UI is disabled, skipping wallet connection UI"):(Nt(St,this).showSDKUI(),Nt(St,this).updateWalletAddressBar()),Nt(St,this).showToast("Connected to existing ".concat(e," session"),"success"),s.emit("wallet:connection:connected",{address:this.account}),Zt(Rt,this,!1),t.abrupt("return");case 61:t.next=66;break;case 63:t.prev=63,t.t1=t.catch(47),console.error("Failed to reconnect to existing session:",t.t1);case 66:Nt(St,this).showToast("Failed to connect wallet!","error"),s.emit("wallet:connection:failed",{error:"Failed to connect wallet!"}),Zt(Rt,this,!1),Nt(Vt,this)?console.error("UI is disabled, skipping wallet connection UI"):(document.getElementById("algox-sdk-container").style.display="flex",xt(Ce,this,Le).call(this));case 70:case"end":return t.stop()}}),t,this,[[16,33],[47,63]])})))).apply(this,arguments)}function xe(){return Fe.apply(this,arguments)}function Fe(){return Fe=pt(vt().mark((function t(){var e,n,a,i,r=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=r.length>0&&void 0!==r[0]&&r[0],!this.processing){t.next=3;break}return t.abrupt("return");case 3:if(e||Nt(Vt,this)||!j()||"undefined"==typeof confirm){t.next=6;break}if(confirm("Are you sure you want to logout?")){t.next=6;break}return t.abrupt("return");case 6:if(t.prev=6,!Nt(zt,this)||"mnemonic"===Nt(zt,this)){t.next=18;break}return t.next=10,xt(Ce,this,ye).call(this);case 10:if(n=t.sent,!(a=null==n?void 0:n[Nt(zt,this)])){t.next=18;break}return t.next=15,a.disconnect();case 15:if(!a.killSession){t.next=18;break}return t.next=18,a.killSession();case 18:(i=K()).removeItem("walletconnect"),i.removeItem("DeflyWallet.Wallet"),i.removeItem("PeraWallet.Wallet"),t.next=27;break;case 24:t.prev=24,t.t0=t.catch(6),console.error("Failed to disconnect wallet session:",t.t0);case 27:Zt(Et,this,null),s.emit("wallet:connection:disconnected",{address:this.account}),Nt(St,this).showToast("Logged out successfully.","success"),Nt(Vt,this)?(Zt(Bt,this,!1),this.account=null,Zt(Xt,this,null),Zt(zt,this,null)):xt(Ce,this,Le).call(this);case 31:case"end":return t.stop()}}),t,this,[[6,24]])}))),Fe.apply(this,arguments)}function Le(){Zt(Bt,this,!1),this.account=null,Zt(Xt,this,null),Zt(zt,this,null),Nt(St,this).resetToLoginUI()}function we(){return Be.apply(this,arguments)}function Be(){return(Be=pt(vt().mark((function t(){var e,n,a,i,r,o,c,g,l;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.processing){t.next=2;break}return t.abrupt("return");case 2:if(e=I.sanitizeInput(document.getElementById("algox-mintx-nft-name").value),n=I.sanitizeInput(document.getElementById("algox-mintx-nft-description").value),a=document.getElementById("algox-mintx-nft-file"),(i=I.validateNFTName(e)).valid){t.next=9;break}return Nt(St,this).showToast(i.message,"error"),t.abrupt("return");case 9:if((r=I.validateNFTDescription(n)).valid){t.next=13;break}return Nt(St,this).showToast(r.message,"error"),t.abrupt("return");case 13:if(a.files.length){t.next=16;break}return Nt(St,this).showToast("Please upload a file.","error"),t.abrupt("return");case 16:return Nt(Vt,this)||(Nt(St,this).updateMessage("Minting NFT... Please wait.","default"),Nt(St,this).disableMintButton()),this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),t.prev=20,t.next=23,xt(Ce,this,Xe).call(this,{name:e,description:n,file:a.files[0]});case 23:return o=t.sent,c=o.transactionId,g=o.assetId,Nt(Vt,this)||Nt(St,this).updateMessage("NFT Minted! Transaction ID: ".concat(c),"pointer"),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),Nt(St,this).showToast("NFT Minted Successfully! TxID: ".concat(c),"success"),Nt(Vt,this)||(Nt(St,this).showResetButton(),Nt(St,this).enableMintButton()),t.next=34,this.getNFTMetadata({assetId:g});case 34:l=t.sent,s.emit("nft:mint:success",{transactionId:c,nft:l}),t.next=46;break;case 38:t.prev=38,t.t0=t.catch(20),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),Nt(Vt,this)||Nt(St,this).resetNFTDetails(),Nt(St,this).showToast("Failed to mint NFT!","error"),s.emit("nft:mint:failed",{error:"Failed to mint NFT!"});case 46:case"end":return t.stop()}}),t,this,[[20,38]])})))).apply(this,arguments)}function Xe(t){return Re.apply(this,arguments)}function Re(){return(Re=pt(vt().mark((function t(e){var n,a,i,r,o,s,c,g,l,u,d,I,C;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.name,a=e.description,i=e.file,Nt(Bt,this)&&this.account){t.next=3;break}throw new Error("Wallet is not connected.");case 3:return r=null,o=null,s=0,t.prev=6,s=1,Nt(St,this).updateLoadingMessage("Processing... Step 1: Uploading file to IPFS"),t.next=11,et(i,Nt(oe,this));case 11:return r=t.sent,s=2,Nt(St,this).updateLoadingMessage("Processing... Step 2: Creating metadata"),t.next=16,$(i);case 16:return c=t.sent,g={name:n,description:a,image:"ipfs://".concat(r),image_integrity:c,image_mimetype:xt(Ce,this,pe).call(this,i),decimals:0,standard:"arc3",minted_by:Nt(re,this),marketplace:Nt(ie,this)},s=3,Nt(St,this).updateLoadingMessage("Processing... Step 3: Hashing metadata"),l=JSON.stringify(g),t.next=23,_(l);case 23:return u=t.sent,s=4,Nt(St,this).updateLoadingMessage("Processing... Step 4: Uploading metadata to IPFS"),t.next=28,at(g,Nt(oe,this));case 28:return o=t.sent,s=5,Nt(St,this).updateLoadingMessage("Processing... Open your wallet to continue"),t.next=33,xt(Ce,this,ke).call(this,{metadataIpfsHash:o,assetName:n,metadataHashBuffer:u,total:1,decimals:0});case 33:return d=t.sent,I=d.txid,C=d.assetId,t.abrupt("return",{transactionId:I,assetId:C});case 39:if(t.prev=39,t.t0=t.catch(6),t.prev=41,!(s>=4)){t.next=51;break}if(!o){t.next=46;break}return t.next=46,rt(o,Nt(oe,this));case 46:if(!r){t.next=49;break}return t.next=49,rt(r,Nt(oe,this));case 49:t.next=55;break;case 51:if(!(s>=1)){t.next=55;break}if(!r){t.next=55;break}return t.next=55,rt(r,Nt(oe,this));case 55:t.next=60;break;case 57:t.prev=57,t.t1=t.catch(41),console.error("Failed to cleanup IPFS files:",t.t1);case 60:throw t.t0;case 61:case"end":return t.stop()}}),t,this,[[6,39],[41,57]])})))).apply(this,arguments)}function ke(t){return ze.apply(this,arguments)}function ze(){return(ze=pt(vt().mark((function t(e){var n,a,i,o,s,c,g,l,u,d,I,C,h,y,A,m,v,b;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.metadataIpfsHash,a=e.assetName,i=e.metadataHashBuffer,o=e.total,s=void 0===o?1:o,c=e.decimals,g=void 0===c?0:c,t.next=3,Nt(Mt,this).getTransactionParams().do();case 3:return l=t.sent,u="ipfs://".concat(n,"#arc3"),d=a&&"string"==typeof a&&a.length>0?a.substring(0,32).replace(/[^a-zA-Z0-9 _-]/g,""):"Unnamed Asset",I=r().makeAssetCreateTxnWithSuggestedParamsFromObject({sender:this.account,total:BigInt(s),decimals:g,defaultFrozen:!1,unitName:Nt(ie,this),assetName:d,assetURL:u,assetMetadataHash:i,suggestedParams:l}),C=[I],Nt(de,this)>0&&(h=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ce,this),amount:st(Nt(de,this)),suggestedParams:l}),C.push(h)),C.length>1&&r().assignGroupID(C),t.next=12,xt(Ce,this,me).call(this,C);case 12:return y=t.sent,t.next=15,Nt(Mt,this).sendRawTransaction(y).do();case 15:return A=t.sent,m=A.txid,t.next=19,r().waitForConfirmation(Nt(Mt,this),m,10);case 19:return v=t.sent,b=Number(v.assetIndex),t.abrupt("return",{txid:m,assetId:b});case 22:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function Me(){return He.apply(this,arguments)}function He(){return(He=pt(vt().mark((function t(){var e,n,a,i,r,o,c,g,l,u,d,C,h;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.processing){t.next=2;break}return t.abrupt("return");case 2:if(e=I.sanitizeInput(document.getElementById("algox-mintx-ft-name").value),n=I.sanitizeInput(document.getElementById("algox-mintx-ft-description").value),a=document.getElementById("algox-mintx-ft-decimals").value,i=document.getElementById("algox-mintx-ft-supply").value,r=document.getElementById("algox-mintx-ft-file"),(o=I.validateFTName(e)).valid){t.next=11;break}return Nt(St,this).showToast(o.message,"error"),t.abrupt("return");case 11:if((c=I.validateFTDescription(n)).valid){t.next=15;break}return Nt(St,this).showToast(c.message,"error"),t.abrupt("return");case 15:if((g=I.validateFTDecimals(a)).valid){t.next=19;break}return Nt(St,this).showToast(g.message,"error"),t.abrupt("return");case 19:if((l=I.validateFTTotalSupply(i)).valid){t.next=23;break}return Nt(St,this).showToast(l.message,"error"),t.abrupt("return");case 23:return Nt(Vt,this)||(Nt(St,this).updateFTMessage("Minting FT... Please wait.","default"),Nt(St,this).disableFTMintButton()),this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),t.prev=27,t.next=30,xt(Ce,this,Ve).call(this,{name:e,description:n,decimals:Number(a),totalSupply:Number(i),file:r.files.length?r.files[0]:null});case 30:return u=t.sent,d=u.transactionId,C=u.assetId,Nt(Vt,this)||Nt(St,this).updateFTMessage("FT Minted! Transaction ID: ".concat(d),"pointer"),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),Nt(St,this).showToast("FT Minted Successfully! TxID: ".concat(d),"success"),Nt(Vt,this)||(Nt(St,this).showFTResetButton(),Nt(St,this).enableFTMintButton()),t.next=41,this.getFTMetadata({assetId:C});case 41:h=t.sent,s.emit("ft:mint:success",{transactionId:d,ft:h}),t.next=53;break;case 45:t.prev=45,t.t0=t.catch(27),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),Nt(Vt,this)||Nt(St,this).resetFTDetails(),Nt(St,this).showToast("Failed to mint FT!","error"),s.emit("ft:mint:failed",{error:"Failed to mint FT!"});case 53:case"end":return t.stop()}}),t,this,[[27,45]])})))).apply(this,arguments)}function Ve(t){return Te.apply(this,arguments)}function Te(){return(Te=pt(vt().mark((function t(e){var n,a,i,r,o,s,c,g,l,u,d,I,C,h,y;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.name,a=e.description,i=e.decimals,r=e.totalSupply,o=e.file,Nt(Bt,this)&&this.account){t.next=3;break}throw new Error("Wallet is not connected.");case 3:if(s=null,c=null,g=0,t.prev=6,l={name:n,description:a,decimals:i,standard:"arc3",minted_by:Nt(re,this),marketplace:Nt(ie,this)},!o){t.next=20;break}return g=1,Nt(St,this).updateLoadingMessage("Processing... Step 1: Uploading icon to IPFS"),t.next=13,et(o,Nt(oe,this));case 13:return s=t.sent,t.next=16,$(o);case 16:u=t.sent,l.image="ipfs://".concat(s),l.image_integrity=u,l.image_mimetype=o.type;case 20:return g=2,Nt(St,this).updateLoadingMessage("Processing... Step 2: Creating metadata"),g=3,Nt(St,this).updateLoadingMessage("Processing... Step 3: Hashing metadata"),d=JSON.stringify(l),t.next=27,_(d);case 27:return I=t.sent,g=4,Nt(St,this).updateLoadingMessage("Processing... Step 4: Uploading metadata to IPFS"),t.next=32,at(l,Nt(oe,this));case 32:return c=t.sent,g=5,Nt(St,this).updateLoadingMessage("Processing... Open your wallet to continue"),t.next=37,xt(Ce,this,ke).call(this,{metadataIpfsHash:c,assetName:n,metadataHashBuffer:I,total:r,decimals:i});case 37:return C=t.sent,h=C.txid,y=C.assetId,t.abrupt("return",{transactionId:h,assetId:y});case 43:if(t.prev=43,t.t0=t.catch(6),t.prev=45,!(g>=4)){t.next=55;break}if(!c){t.next=50;break}return t.next=50,rt(c,Nt(oe,this));case 50:if(!s){t.next=53;break}return t.next=53,rt(s,Nt(oe,this));case 53:t.next=59;break;case 55:if(!(g>=1)){t.next=59;break}if(!s){t.next=59;break}return t.next=59,rt(s,Nt(oe,this));case 59:t.next=64;break;case 61:t.prev=61,t.t1=t.catch(45),console.error("Failed to cleanup IPFS files:",t.t1);case 64:throw t.t0;case 65:case"end":return t.stop()}}),t,this,[[6,43],[45,61]])})))).apply(this,arguments)}function je(){return Je.apply(this,arguments)}function Je(){return(Je=pt(vt().mark((function t(){var e,n,a;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e="".concat(Nt(Ot,this),"/v2/applications/").concat(Nt(te,this),"/boxes"),t.next=3,fetch(e);case 3:if((n=t.sent).ok){t.next=6;break}throw new Error("Failed to fetch application boxes: ".concat(n.status));case 6:return t.next=8,n.json();case 8:return a=t.sent,t.abrupt("return",a.boxes||[]);case 10:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function Ke(t,e){return Qe.apply(this,arguments)}function Qe(){return(Qe=pt(vt().mark((function t(e,n){var a,i;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=gt(e,n),t.next=3,Nt(Mt,this).getApplicationBoxByName(Nt(te,this),a).do();case 3:return i=t.sent,t.abrupt("return",(r=i.value,o=void 0,s=void 0,c=void 0,g=void 0,l=void 0,u=void 0,d=void 0,I=void 0,s=new DataView(r.buffer,r.byteOffset,r.byteLength),c=(new TextDecoder).decode(r.slice(8,66)),g=68+s.getUint16(66,!1),l=(new TextDecoder).decode(r.slice(68,g)),o=Number(l),u=Number(o/1e6),I=(d=g+2)+s.getUint16(g,!1),{seller:c,price:u,marketplace:(new TextDecoder).decode(r.slice(d,I))}));case 5:case"end":return t.stop()}var r,o,s,c,g,l,u,d,I}),t,this)})))).apply(this,arguments)}function Ee(){return Se.apply(this,arguments)}function Se(){return Se=pt(vt().mark((function t(){var e,n,a,i,r,o,s=this,c=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=c.length>0&&void 0!==c[0]&&c[0],n=Date.now(),!(!e&&Nt(Pt,this)&&n-Nt(Ut,this)<3e4)){t.next=4;break}return t.abrupt("return",Nt(Pt,this));case 4:return a=[],t.prev=5,t.next=8,xt(Ce,this,je).call(this);case 8:return i=t.sent,r=i.map((function(t){return ut(t.name)})).filter(Boolean),t.next=12,Promise.all(r.map(function(){var t=pt(vt().mark((function t(e){var n,a,i;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.marketplace,a=e.assetId,t.prev=1,t.next=4,xt(Ce,s,Ke).call(s,n,a);case 4:return i=t.sent,t.abrupt("return",{assetId:a,seller:i.seller,price:i.price,marketplace:n});case 8:return t.prev=8,t.t0=t.catch(1),console.warn("Failed to decode listing box:",t.t0),t.abrupt("return",null);case 12:case"end":return t.stop()}}),t,null,[[1,8]])})));return function(e){return t.apply(this,arguments)}}()));case 12:o=t.sent.filter(Boolean),a.push.apply(a,function(t){if(Array.isArray(t))return mt(t)}(g=o)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(g)||At(g)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),t.next=20;break;case 16:throw t.prev=16,t.t0=t.catch(5),console.error("Error fetching all listings:",t.t0.message),t.t0;case 20:return Zt(Pt,this,a),Zt(Ut,this,n),t.abrupt("return",a);case 23:case"end":return t.stop()}var g}),t,this,[[5,16]])}))),Se.apply(this,arguments)}function De(t){return Oe.apply(this,arguments)}function Oe(){return Oe=pt(vt().mark((function t(e){var n,a,i,r,o,s=this,c=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=c.length>1&&void 0!==c[1]&&c[1],a=Date.now(),!(!n&&Nt(_t,this)&&Nt($t,this)===e&&a-Nt(qt,this)<3e4)){t.next=4;break}return t.abrupt("return",Nt(_t,this));case 4:return t.next=6,xt(Ce,this,je).call(this);case 6:return i=t.sent,r=i.map((function(t){return ut(t.name)})).filter((function(t){return t&&t.marketplace===e})),t.next=10,Promise.all(r.map(function(){var t=pt(vt().mark((function t(n){var a,i;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=n.assetId,t.prev=1,t.next=4,xt(Ce,s,Ke).call(s,e,a);case 4:return i=t.sent,t.abrupt("return",{assetId:a,seller:i.seller,price:i.price,marketplace:e});case 8:return t.prev=8,t.t0=t.catch(1),console.warn("Failed to decode listing box:",t.t0),t.abrupt("return",null);case 12:case"end":return t.stop()}}),t,null,[[1,8]])})));return function(e){return t.apply(this,arguments)}}()));case 10:return o=t.sent.filter(Boolean),Zt(_t,this,o),Zt(qt,this,a),Zt($t,this,e),t.abrupt("return",o);case 15:case"end":return t.stop()}}),t,this)}))),Oe.apply(this,arguments)}function Pe(t){return Ue.apply(this,arguments)}function Ue(){return Ue=pt(vt().mark((function t(e){var n,a,i=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:Nt(ie,this),t.prev=1,t.next=4,xt(Ce,this,Ke).call(this,n,e);case 4:return a=t.sent,t.abrupt("return",{assetId:String(e),seller:a.seller,price:a.price,marketplace:n});case 8:return t.prev=8,t.t0=t.catch(1),t.abrupt("return",null);case 11:case"end":return t.stop()}}),t,this,[[1,8]])}))),Ue.apply(this,arguments)}function _e(t){return qe.apply(this,arguments)}function qe(){return(qe=pt(vt().mark((function t(e){var n,a,i,r,o,s;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,xt(Ce,this,je).call(this);case 2:n=t.sent,a=yt(n),t.prev=4,a.s();case 6:if((i=a.n()).done){t.next=23;break}if(r=i.value,(o=ut(r.name))&&o.assetId===String(e)){t.next=11;break}return t.abrupt("continue",21);case 11:return t.prev=11,t.next=14,xt(Ce,this,Ke).call(this,o.marketplace,e);case 14:return s=t.sent,t.abrupt("return",{assetId:String(e),seller:s.seller,price:s.price,marketplace:o.marketplace});case 18:t.prev=18,t.t0=t.catch(11),console.warn("Failed to read listing box value:",t.t0);case 21:t.next=6;break;case 23:t.next=28;break;case 25:t.prev=25,t.t1=t.catch(4),a.e(t.t1);case 28:return t.prev=28,a.f(),t.finish(28);case 31:return t.abrupt("return",null);case 32:case"end":return t.stop()}}),t,this,[[4,25,28,31],[11,18]])})))).apply(this,arguments)}function $e(t){return tn.apply(this,arguments)}function tn(){return(tn=pt(vt().mark((function t(e){var n,a,i,r,o,s,c,g,l,u,d,I,C;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.assetId,a=e.seller,i=e.price,r=e.marketplace,o="".concat(Nt(Dt,this),"/v2/assets/").concat(n),t.next=4,fetch(o);case 4:if((s=t.sent).ok){t.next=7;break}return t.abrupt("return",null);case 7:return t.next=9,s.json();case 9:return c=t.sent,g=c.asset.params,l=Ct(Ct({},g),{},{assetId:n,listing:{seller:a,price:i,marketplace:r}}),t.next=14,xt(Ce,this,on).call(this,l,g);case 14:return u="".concat(Nt(Dt,this),"/v2/assets/").concat(n,"/balances?currency-greater-than=0"),t.next=17,fetch(u);case 17:if(!(d=t.sent).ok){t.next=24;break}return t.next=21,d.json();case 21:I=t.sent,(C=(I.balances||[]).find((function(t){return t.amount>0})))&&(l.currentHolder=C.address);case 24:return t.abrupt("return",l);case 25:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function en(t){return 1===Number(t.total)&&0===Number(t.decimals)}function nn(t){return"NFT"===Nt(ae,this)?xt(Ce,this,en).call(this,t):!xt(Ce,this,en).call(this,t)}function an(t,e){return rn.apply(this,arguments)}function rn(){return(rn=pt(vt().mark((function t(e,n){var a,i,r,o;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(null!=(a=n.url)&&a.startsWith("ipfs://")){t.next=3;break}return t.abrupt("return");case 3:return i=ct(a,Nt(se,this)),t.prev=4,t.next=7,fetch(i);case 7:if((r=t.sent).ok){t.next=10;break}return t.abrupt("return");case 10:return t.next=12,r.json();case 12:o=t.sent,(xt(Ce,this,en).call(this,n)||o.standard)&&(o.image&&o.image.startsWith("ipfs://")&&(o.image=ct(o.image,Nt(se,this))),e.metadata=o),t.next=19;break;case 16:t.prev=16,t.t0=t.catch(4),console.warn("IPFS metadata fetch failed for asset ".concat(e.assetId),t.t0);case 19:case"end":return t.stop()}}),t,this,[[4,16]])})))).apply(this,arguments)}function on(t,e){return sn.apply(this,arguments)}function sn(){return(sn=pt(vt().mark((function t(e,n){var a,i,r,o;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(null!=(a=n.url)&&a.startsWith("ipfs://")){t.next=3;break}return t.abrupt("return");case 3:return i=ct(a,Nt(se,this)),t.prev=4,t.next=7,fetch(i);case 7:if((r=t.sent).ok){t.next=10;break}return t.abrupt("return");case 10:return t.next=12,r.json();case 12:o=t.sent,"NFT"===Nt(ae,this)?0===o.decimals&&o.image_integrity&&o.image_mimetype&&o.standard&&o.image&&o.image.startsWith("ipfs://")&&(o.image=ct(o.image,Nt(se,this)),e.metadata=o):o.standard&&(o.image&&o.image.startsWith("ipfs://")&&(o.image=ct(o.image,Nt(se,this))),e.metadata=o),t.next=19;break;case 16:t.prev=16,t.t0=t.catch(4),console.warn("IPFS metadata fetch failed for asset ".concat(e.assetId),t.t0);case 19:case"end":return t.stop()}}),t,this,[[4,16]])})))).apply(this,arguments)}const cn=function(){return t=function t(e){var n,a=e.env,i=e.disableUi,o=void 0!==i&&i,c=e.disableToast,g=void 0!==c&&c,l=e.toastLocation,u=void 0===l?"TOP_RIGHT":l,d=e.minimizeUILocation,C=void 0===d?"right":d,h=e.logo,y=void 0===h?null:h,A=e.namespace,m=e.pinata_ipfs_server_key,v=e.revenueWalletAddress,b=e.marketplaceType,p=void 0===b?"NFT":b,f=e.pinata_ipfs_gateway_url,W=void 0===f?null:f,G=e.listingFee,Y=void 0===G?0:G,N=e.buyingFee,Z=void 0===N?0:N,x=e.unListingFee,F=void 0===x?0:x,L=e.mintFee,w=void 0===L?0:L,B=e.supportedMediaFormats,X=void 0===B?["IMAGE"]:B;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),Yt(this,n=Ce),n.add(this),Gt(this,wt,void 0),Gt(this,Bt,void 0),Gt(this,Xt,void 0),Gt(this,Rt,void 0),Gt(this,kt,void 0),Gt(this,zt,void 0),Gt(this,Mt,void 0),Gt(this,Ht,void 0),Gt(this,Vt,void 0),Gt(this,Tt,void 0),Gt(this,jt,void 0),Gt(this,Jt,void 0),Gt(this,Kt,void 0),Gt(this,Qt,void 0),Gt(this,Et,void 0),Gt(this,St,void 0),Gt(this,Dt,void 0),Gt(this,Ot,void 0),Gt(this,Pt,void 0),Gt(this,Ut,void 0),Gt(this,_t,void 0),Gt(this,qt,void 0),Gt(this,$t,void 0),Gt(this,te,void 0),Gt(this,ee,void 0),Gt(this,ne,void 0),Gt(this,ae,void 0),Gt(this,ie,void 0),Gt(this,re,void 0),Gt(this,oe,void 0),Gt(this,se,void 0),Gt(this,ce,void 0),Gt(this,ge,void 0),Gt(this,le,void 0),Gt(this,ue,void 0),Gt(this,de,void 0),Gt(this,Ie,void 0);try{if(this.network=I.validateEnvironment(a),Zt(Vt,this,I.validateDisableUi(o)),Zt(Ht,this,I.validateDisableToast(g)),Zt(Qt,this,I.validateToastLocation(u)),Zt(Tt,this,I.validateMinimizeUILocation(C)),Zt(jt,this,I.validateLogo(y)),Zt(ne,this,I.validateNamespace(A)),Zt(oe,this,I.validatePinataServerKey(m)),Zt(ce,this,I.validateRevenueWalletAddress(v)),Zt(ae,this,I.validateMarketplaceType(p)),Zt(se,this,I.validatePinataGatewayUrl(W)),Zt(ge,this,I.validateFee(Y,"Listing fee")),Zt(le,this,I.validateFee(Z,"Buying fee")),Zt(ue,this,I.validateFee(F,"unListingFee fee")),Zt(de,this,I.validateFee(w,"Mint fee")),Zt(Ie,this,I.validateSupportedMediaFormats(X)),Zt(St,this,new z(this,{disableUi:Nt(Vt,this),disableToast:Nt(Ht,this),logo:Nt(jt,this),minimizeUILocation:Nt(Tt,this),toastLocation:Nt(Qt,this),marketplaceType:Nt(ae,this)})),this.processing=!1,this.events=s,Zt(Jt,this,["mainnet","testnet"]),Zt(wt,this,null),Zt(Bt,this,!1),this.account=null,Zt(Xt,this,null),Zt(Rt,this,!1),Zt(kt,this,["pera","defly"]),Zt(zt,this,null),Zt(Mt,this,new(r().Algodv2)("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","mainnet"===this.network?"https://mainnet-api.algonode.cloud":"https://testnet-api.algonode.cloud",443)),Zt(Dt,this,"mainnet"===this.network?"https://mainnet-idx.algonode.cloud":"https://testnet-idx.algonode.cloud"),Zt(Ot,this,"mainnet"===this.network?"https://mainnet-api.algonode.cloud":"https://testnet-api.algonode.cloud"),Zt(Pt,this,null),Zt(Ut,this,0),Zt(_t,this,null),Zt(qt,this,0),Zt($t,this,null),Zt(ie,this,"AMX".concat(Nt(ne,this))),Zt(re,this,"AlgoMintX"),Zt(te,this,(this.network,764970022)),Zt(ee,this,(this.network,"YUS4ATNZYFNBOSN4MYP5BYPJKQNYSYRGU6PFP65ZLWXPWWBLUZYSHWJGUA")),!Nt(Vt,this)&&j()){var R=K().getItem("axs");if(R)try{var k=JSON.parse(R);this.isMinimized=k.minimized||!1,this.theme=k.theme||Nt(St,this).getSystemTheme()}catch(t){this.isMinimized=!1,this.theme=Nt(St,this).getSystemTheme()}else this.isMinimized=!1,this.theme=Nt(St,this).getSystemTheme();Nt(St,this).saveUIState(),xt(Ce,this,fe).call(this)}}catch(t){xt(Ce,this,he).call(this,t.message)}},e=[{key:"minimizeSDK",value:function(t){Nt(St,this).minimizeSDK(t)}},{key:"maximizeSDK",value:function(t){Nt(St,this).maximizeSDK(t)}},{key:"connectWallet",value:(f=pt(vt().mark((function t(e,n){var a,i;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,e&&"string"==typeof e){t.next=3;break}throw new Error("Wallet address is required");case 3:if(58===e.length){t.next=5;break}throw new Error("Wallet address must be 58 characters long");case 5:if(/^[A-Z2-7]{58}$/.test(e)){t.next=7;break}throw new Error("Invalid Algorand wallet address format");case 7:if(n&&"string"==typeof n){t.next=9;break}throw new Error("Wallet mnemonic is required");case 9:if(25===n.trim().split(/\s+/).length){t.next=12;break}throw new Error("Mnemonic must contain 25 words");case 12:if(t.prev=12,("string"==typeof(a=r().mnemonicToSecretKey(n)).addr?a.addr:null!==(i=a.addr)&&void 0!==i&&i.publicKey?r().encodeAddress(a.addr.publicKey):String(a.addr||""))===e){t.next=17;break}throw new Error("Mnemonic does not match the provided wallet address");case 17:t.next=22;break;case 19:throw t.prev=19,t.t0=t.catch(12),new Error(t.t0.message||"Invalid mnemonic");case 22:return Zt(Et,this,a),this.account=e,Zt(Bt,this,!0),Zt(zt,this,"mnemonic"),Zt(Xt,this,{type:"mnemonic",address:e}),s.emit("wallet:connected",{address:e,type:"mnemonic"}),Nt(Vt,this)||Nt(St,this).showSDKUI(),t.abrupt("return",{address:e,type:"mnemonic"});case 32:throw t.prev=32,t.t1=t.catch(0),console.error("Error connecting wallet:",t.t1.message),s.emit("wallet:connection:failed",{error:t.t1.message}),t.t1;case 37:case"end":return t.stop()}}),t,this,[[0,32],[12,19]])}))),function(t,e){return f.apply(this,arguments)})},{key:"disconnectWallet",value:(p=pt(vt().mark((function t(){return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Nt(Bt,this)){t.next=2;break}throw new Error("No wallet is currently connected");case 2:return t.next=4,xt(Ce,this,xe).call(this,!0);case 4:case"end":return t.stop()}}),t,this)}))),function(){return p.apply(this,arguments)})},{key:"mintNFT",value:(b=pt(vt().mark((function t(e){var n,a,i,r,o,c,g,l,u;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.name,a=e.description,i=e.file,xt(Ce,this,be).call(this,"mint an NFT"),"NFT"===Nt(ae,this)){t.next=4;break}throw new Error("This marketplace is configured for FT assets only.");case 4:if(r=I.sanitizeInput(n),o=I.sanitizeInput(a),(c=I.validateNFTName(r)).valid){t.next=9;break}throw new Error(c.message);case 9:if((g=I.validateNFTDescription(o)).valid){t.next=12;break}throw new Error(g.message);case 12:if(i){t.next=14;break}throw new Error("Media file is required.");case 14:if((l=I.validateFileType(i,Nt(Ie,this))).valid){t.next=17;break}throw new Error(l.message);case 17:return this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),t.prev=20,t.next=23,xt(Ce,this,Xe).call(this,{name:r,description:o,file:i});case 23:return u=t.sent,s.emit("nft:mint:success",u),t.abrupt("return",u);case 28:throw t.prev=28,t.t0=t.catch(20),s.emit("nft:mint:failed",{error:t.t0.message}),t.t0;case 32:return t.prev=32,this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),t.finish(32);case 37:case"end":return t.stop()}}),t,this,[[20,28,32,37]])}))),function(t){return b.apply(this,arguments)})},{key:"mintFT",value:(v=pt(vt().mark((function t(e){var n,a,i,r,o,c,g,l,u,d,C,h,y,A;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.name,a=e.description,i=e.decimals,r=e.totalSupply,o=e.file,c=void 0===o?null:o,xt(Ce,this,be).call(this,"mint a fungible token"),"FT"===Nt(ae,this)){t.next=4;break}throw new Error("This marketplace is configured for NFT assets only.");case 4:if(g=I.sanitizeInput(n),l=I.sanitizeInput(a),(u=I.validateFTName(g)).valid){t.next=9;break}throw new Error(u.message);case 9:if((d=I.validateFTDescription(l)).valid){t.next=12;break}throw new Error(d.message);case 12:if((C=I.validateFTDecimals(i)).valid){t.next=15;break}throw new Error(C.message);case 15:if((h=I.validateFTTotalSupply(r)).valid){t.next=18;break}throw new Error(h.message);case 18:if(!c){t.next=22;break}if((y=I.validateFileType(c,["IMAGE"])).valid){t.next=22;break}throw new Error(y.message);case 22:return this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),t.prev=25,t.next=28,xt(Ce,this,Ve).call(this,{name:g,description:l,decimals:Number(i),totalSupply:Number(r),file:c});case 28:return A=t.sent,s.emit("ft:mint:success",A),t.abrupt("return",A);case 33:throw t.prev=33,t.t0=t.catch(25),s.emit("ft:mint:failed",{error:t.t0.message}),t.t0;case 37:return t.prev=37,this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),t.finish(37);case 42:case"end":return t.stop()}}),t,this,[[25,33,37,42]])}))),function(t){return v.apply(this,arguments)})},{key:"getListedNFTs",value:(m=pt(vt().mark((function t(){var e,n,a=this;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,xt(Ce,this,De).call(this,Nt(ie,this));case 3:if(0!==(e=t.sent).length){t.next=6;break}return t.abrupt("return",[]);case 6:return t.next=8,Promise.all(e.map((function(t){return xt(Ce,a,$e).call(a,t)})));case 8:return n=t.sent.filter(Boolean),t.abrupt("return",n.filter((function(t){return xt(Ce,a,nn).call(a,t)})));case 12:throw t.prev=12,t.t0=t.catch(0),console.error("Error fetching listed NFTS",t.t0.message),t.t0;case 16:case"end":return t.stop()}}),t,this,[[0,12]])}))),function(){return m.apply(this,arguments)})},{key:"getMarketplaces",value:(A=pt(vt().mark((function t(){var e,n,a,i,r,o,s,c,g,l,u=this;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,xt(Ce,this,Ee).call(this);case 3:e=t.sent,n={},a=yt(e),t.prev=6,a.s();case 8:if((i=a.n()).done){t.next=22;break}if(r=i.value,o=r.marketplace,s=r.assetId,c=r.price,g=r.seller,o){t.next=13;break}return t.abrupt("continue",20);case 13:n[o]||(n[o]={marketplace:o,namespace:o.startsWith("AMX")?o.slice(3):o,listingCount:0,totalListedValue:0,floorPrice:null,sellers:new Set,assetIds:[]}),(l=n[o]).listingCount+=1,l.totalListedValue+=c,l.floorPrice=null===l.floorPrice?c:Math.min(l.floorPrice,c),g&&l.sellers.add(g),l.assetIds.push(s);case 20:t.next=8;break;case 22:t.next=27;break;case 24:t.prev=24,t.t0=t.catch(6),a.e(t.t0);case 27:return t.prev=27,a.f(),t.finish(27);case 30:return t.abrupt("return",Object.values(n).map((function(t){var e;return{marketplace:t.marketplace,namespace:t.namespace,listingCount:t.listingCount,uniqueSellers:t.sellers.size,totalListedValue:t.totalListedValue,floorPrice:null!==(e=t.floorPrice)&&void 0!==e?e:0,avgPrice:t.listingCount?t.totalListedValue/t.listingCount:0,assetIds:t.assetIds,isCurrentMarketplace:t.marketplace===Nt(ie,u)}})));case 33:throw t.prev=33,t.t1=t.catch(0),console.error("Error fetching marketplaces:",t.t1.message),t.t1;case 37:case"end":return t.stop()}}),t,this,[[0,33],[6,24,27,30]])}))),function(){return A.apply(this,arguments)})},{key:"getMarketplaceCount",value:(y=pt(vt().mark((function t(){var e;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getMarketplaces();case 2:return e=t.sent,t.abrupt("return",e.length);case 4:case"end":return t.stop()}}),t,this)}))),function(){return y.apply(this,arguments)})},{key:"listingStatus",value:(h=pt(vt().mark((function t(e){var n,a,i,r,o=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:Nt(ie,this),t.prev=1,t.next=4,xt(Ce,this,Pe).call(this,e,n);case 4:if(a=t.sent){t.next=7;break}return t.abrupt("return",{marketplace:n,assetId:String(e),exists:!1,listing:null});case 7:return t.abrupt("return",{marketplace:n,assetId:String(e),exists:!0,listing:a});case 10:if(t.prev=10,t.t0=t.catch(1),console.error("Error fetching listing status:",t.t0.message),!(null!==(i=t.t0.message)&&void 0!==i&&i.includes("not found")||null!==(r=t.t0.message)&&void 0!==r&&r.includes("does not exist")||404===t.t0.status)){t.next=15;break}return t.abrupt("return",{marketplace:n,assetId:String(e),exists:!1,listing:null});case 15:throw t.t0;case 16:case"end":return t.stop()}}),t,this,[[1,10]])}))),function(t){return h.apply(this,arguments)})},{key:"getMarketplaceStats",value:(C=pt(vt().mark((function t(){var e,n,a,i,r,o,s,c,g,l,u,d=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=d.length>0&&void 0!==d[0]?d[0]:Nt(ie,this),t.prev=1,t.next=4,xt(Ce,this,De).call(this,e);case 4:n=t.sent,a=n.map((function(t){return{assetId:t.assetId,price:t.price,seller:t.seller}})),i=0,r=null,o=new Set,s=yt(a);try{for(s.s();!(c=s.n()).done;)g=c.value,l=g.price,u=g.seller,i+=l,r=null===r?l:Math.min(r,l),u&&o.add(u)}catch(t){s.e(t)}finally{s.f()}return t.abrupt("return",{marketplace:e,namespace:e.startsWith("AMX")?e.slice(3):e,listingCount:a.length,uniqueSellers:o.size,totalListedValue:i,floorPrice:null!=r?r:0,avgPrice:a.length?i/a.length:0,listings:a});case 14:throw t.prev=14,t.t0=t.catch(1),console.error("Error fetching marketplace stats:",t.t0.message),t.t0;case 18:case"end":return t.stop()}}),t,this,[[1,14]])}))),function(){return C.apply(this,arguments)})},{key:"getMarketplaceData",value:(d=pt(vt().mark((function t(){var e,n,a,i,r,o,s,c,g,l=this,u=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=u.length>0&&void 0!==u[0]?u[0]:Nt(ie,this),t.prev=1,t.next=4,xt(Ce,this,De).call(this,e);case 4:if(0!==(n=t.sent).length){t.next=7;break}throw new Error("Marketplace ".concat(e," not found"));case 7:return t.next=9,Promise.all(n.map((function(t){return xt(Ce,l,$e).call(l,t)})));case 9:return a=t.sent.filter(Boolean),i=new Set,r=new Set,o=0,s=null,a.forEach((function(t){i.add(t.listing.seller),t.currentHolder&&r.add(t.currentHolder),o+=t.listing.price,s=null===s?t.listing.price:Math.min(s,t.listing.price)})),c=a[0],g=c&&1===Number(c.total)&&0===Number(c.decimals)?"NFT":"FT",t.abrupt("return",{marketplace:e,namespace:e.startsWith("AMX")?e.slice(3):e,network:this.network,status:"Active",assetType:g,listings:a,listingCount:a.length,uniqueSellers:i.size,uniqueHolders:r.size,totalListedValue:o,floorPrice:null!=s?s:0,avgPrice:a.length?o/a.length:0});case 20:throw t.prev=20,t.t0=t.catch(1),console.error("Error fetching marketplace data:",t.t0.message),t.t0;case 24:case"end":return t.stop()}}),t,this,[[1,20]])}))),function(){return d.apply(this,arguments)})},{key:"getWalletAssets",value:(u=pt(vt().mark((function t(){var e,n,a,i,r,o,s,c,g,l=this,u=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=(e=u.length>0&&void 0!==u[0]?u[0]:{}).accountId,a=e.marketplaceOnly,i=void 0!==a&&a,t.prev=1,n){t.next=8;break}if(Nt(Bt,this)&&this.account){t.next=6;break}throw this.isMinimized&&this.maximizeSDK(!0),new Error("Wallet is not connected");case 6:t.next=9;break;case 8:I.validateRevenueWalletAddress(n);case 9:return r="".concat(Nt(Dt,this),"/v2/accounts/").concat(n||this.account),t.next=12,fetch(r);case 12:if((o=t.sent).ok){t.next=15;break}throw new Error("Indexer fetch error: ".concat(o.status));case 15:return t.next=17,o.json();case 17:return s=t.sent,c=(s.account.assets||[]).filter((function(t){return t.amount>0})),t.next=21,Promise.all(c.map(function(){var t=pt(vt().mark((function t(e){var n,a,r,o,s,c,g,u,d,I,C,h;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e["asset-id"],a="".concat(Nt(Dt,l),"/v2/assets/").concat(n),t.next=4,fetch(a);case 4:if((r=t.sent).ok){t.next=7;break}return t.abrupt("return",null);case 7:return t.next=9,r.json();case 9:if(o=t.sent,s=o.asset.params,c=xt(Ce,l,en).call(l,s),!i||xt(Ce,l,nn).call(l,s)){t.next=14;break}return t.abrupt("return",null);case 14:return g=Ct(Ct({},s),{},{assetId:n,balance:e.amount,assetType:c?"NFT":"FT"}),t.next=17,xt(Ce,l,an).call(l,g,s);case 17:if(!i){t.next=22;break}return t.next=20,xt(Ce,l,Pe).call(l,n,Nt(ie,l));case 20:(u=t.sent)&&(g.listing={seller:u.seller,price:u.price,marketplace:u.marketplace});case 22:return d="".concat(Nt(Dt,l),"/v2/assets/").concat(n,"/balances?currency-greater-than=0"),t.next=25,fetch(d);case 25:if(!(I=t.sent).ok){t.next=32;break}return t.next=29,I.json();case 29:C=t.sent,(h=(C.balances||[]).find((function(t){return t.amount>0})))&&(g.currentHolder=h.address);case 32:return t.abrupt("return",g);case 33:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()));case 21:return g=t.sent.filter(Boolean),t.abrupt("return",g);case 25:throw t.prev=25,t.t0=t.catch(1),console.error("Error fetching wallet assets:",t.t0.message),t.t0;case 29:case"end":return t.stop()}}),t,this,[[1,25]])}))),function(){return u.apply(this,arguments)})},{key:"getWalletNFTs",value:(l=pt(vt().mark((function t(){var e,n=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getWalletAssets(e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return l.apply(this,arguments)})},{key:"getAssetMetadata",value:(g=pt(vt().mark((function t(e){var n;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.assetId,t.abrupt("return",this.getNFTMetadata({assetId:n}));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return g.apply(this,arguments)})},{key:"getNFTMetadata",value:(c=pt(vt().mark((function t(e){var n,a,i,r,o,s,c,g,l,u,d,I,C,h,y;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.assetId,t.prev=1,i="".concat(Nt(Dt,this),"/v2/assets/").concat(n),t.next=5,fetch(i);case 5:if((r=t.sent).ok){t.next=8;break}throw new Error("Failed to fetch asset data: ".concat(r.status));case 8:return t.next=10,r.json();case 10:return o=t.sent,s=o.asset.params,c=Ct(Ct({},s),{},{assetId:n}),t.next=15,xt(Ce,this,Pe).call(this,n,Nt(ie,this));case 15:if(t.t0=t.sent,t.t0){t.next=20;break}return t.next=19,xt(Ce,this,_e).call(this,n);case 19:t.t0=t.sent;case 20:return(g=t.t0)&&(c.listing={seller:g.seller,price:g.price,marketplace:g.marketplace}),t.next=24,xt(Ce,this,on).call(this,c,s);case 24:return l="".concat(Nt(Dt,this),"/v2/assets/").concat(n,"/balances?currency-greater-than=0"),t.next=27,fetch(l);case 27:if(!(u=t.sent).ok){t.next=33;break}return t.next=31,u.json();case 31:(d=t.sent).balances&&d.balances.length>0&&(I=d.balances.find((function(t){return t.amount>0})))&&(c.currentHolder=I.address);case 33:return C="".concat(Nt(Dt,this),"/v2/transactions?asset-id=").concat(n,"&tx-type=acfg"),t.next=36,fetch(C);case 36:if((h=t.sent).ok){t.next=39;break}throw new Error("Failed to fetch asset config transaction: ".concat(h.status));case 39:return t.next=41,h.json();case 41:return y=t.sent,c.transactionId=null===(a=y.transactions)||void 0===a||null===(a=a[0])||void 0===a?void 0:a.id,t.abrupt("return",c);case 46:throw t.prev=46,t.t1=t.catch(1),console.error("Error fetching NFT metadata:",t.t1.message),t.t1;case 50:case"end":return t.stop()}}),t,this,[[1,46]])}))),function(t){return c.apply(this,arguments)})},{key:"getFTMetadata",value:(o=pt(vt().mark((function t(e){var n;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.assetId,t.abrupt("return",this.getNFTMetadata({assetId:n}));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"listNFT",value:(i=pt(vt().mark((function t(e){var n,a,i,o,c,g,l,u,d,I,C,h,y,A,m,v,b,p,f,W,G;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.assetId,a=e.nftPrice,t.prev=1,this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),Nt(Bt,this)&&this.account||xt(Ce,this,be).call(this,"list an asset"),n&&a){t.next=8;break}throw new Error("Asset ID and price are required");case 8:if(!isNaN(n)&&!isNaN(a)){t.next=10;break}throw new Error("Asset ID and price must be a number.");case 10:return t.next=12,Nt(Mt,this).getAssetByID(n).do();case 12:if(i=t.sent,xt(Ce,this,nn).call(this,i.params)){t.next=15;break}throw new Error("This marketplace only supports ".concat(Nt(ae,this)," assets."));case 15:return o="".concat(Nt(Dt,this),"/v2/accounts/").concat(this.account),t.next=18,fetch(o);case 18:if((c=t.sent).ok){t.next=21;break}throw new Error("Failed to fetch account assets: ".concat(c.status));case 21:return t.next=23,c.json();case 23:if(g=t.sent,l=(g.account.assets||[]).find((function(t){return t["asset-id"]===n&&t.amount>0}))){t.next=27;break}throw new Error("You do not hold this asset in your wallet.");case 27:return u="NFT"===Nt(ae,this)?1:Number(l.amount),t.next=30,Nt(Mt,this).getTransactionParams().do();case 30:return d=t.sent,I=Ct(Ct({},d),{},{flatFee:!0,fee:4e3}),C=lt(Nt(te,this),Nt(ie,this),n),h=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ee,this),amount:1e5,suggestedParams:d}),y=Lt.methods.find((function(t){return"transferNFTToContractAndAddListing"===t.name})),A=r().makeApplicationCallTxnFromObject({sender:this.account,appIndex:Nt(te,this),onComplete:r().OnApplicationComplete.NoOpOC,appArgs:[y.getSelector(),r().ABIType.from("uint64").encode(BigInt(n)),r().ABIType.from("string").encode(this.account),r().ABIType.from("string").encode(st(a).toString()),r().ABIType.from("string").encode(Nt(ie,this))],boxes:[C],foreignAssets:[n],suggestedParams:I}),m=r().makeAssetTransferTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ee,this),amount:BigInt(u),assetIndex:n,suggestedParams:d}),v=[h,A,m],Nt(ge,this)>0&&(b=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ce,this),amount:st(Nt(ge,this)),suggestedParams:d}),v.push(b)),r().assignGroupID(v),t.next=42,xt(Ce,this,me).call(this,v);case 42:return p=t.sent,t.next=45,Nt(Mt,this).sendRawTransaction(p).do();case 45:return f=t.sent,W=f.txid,t.next=49,r().waitForConfirmation(Nt(Mt,this),W,10);case 49:return Zt(Pt,this,null),Zt(_t,this,null),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),t.next=56,this.getNFTMetadata({assetId:n});case 56:return G=t.sent,s.emit("nft:list:success",{nft:G,transactionId:W}),t.abrupt("return",{nft:G,transactionId:W});case 61:throw t.prev=61,t.t0=t.catch(1),console.error("Error listing NFT:",t.t0.message),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),s.emit("nft:list:failed",{error:"Could not list NFT!"}),t.t0;case 69:case"end":return t.stop()}}),t,this,[[1,61]])}))),function(t){return i.apply(this,arguments)})},{key:"unlistNFT",value:(a=pt(vt().mark((function t(e){var n,a,i,o,c,g,l,u,d,I,C,h,y,A;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.assetId,t.prev=1,this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),xt(Ce,this,be).call(this,"unlist an asset"),n){t.next=8;break}throw new Error("Asset ID is required.");case 8:if(!isNaN(n)){t.next=10;break}throw new Error("Asset ID must be a number.");case 10:return t.next=12,this.getNFTMetadata({assetId:n});case 12:if(a=t.sent,xt(Ce,this,nn).call(this,a)){t.next=15;break}throw new Error("This marketplace only supports ".concat(Nt(ae,this)," assets."));case 15:if(a.listing.marketplace===Nt(ie,this)){t.next=17;break}throw new Error("Cannot un-list nft from other marketplace.");case 17:return t.next=19,Nt(Mt,this).getTransactionParams().do();case 19:return i=t.sent,o=Ct(Ct({},i),{},{flatFee:!0,fee:3e3}),c=lt(Nt(te,this),Nt(ie,this),n),g=r().makeAssetTransferTxnWithSuggestedParamsFromObject({sender:this.account,receiver:this.account,amount:0,assetIndex:n,suggestedParams:i}),l=Lt.methods.find((function(t){return"transferNFTToSellerAndRemoveListing"===t.name})),u=r().makeApplicationCallTxnFromObject({sender:this.account,appIndex:Nt(te,this),onComplete:r().OnApplicationComplete.NoOpOC,appArgs:[l.getSelector(),r().ABIType.from("uint64").encode(BigInt(n)),r().ABIType.from("string").encode(this.account),r().ABIType.from("string").encode(Nt(ie,this))],boxes:[c],foreignAssets:[n],suggestedParams:o}),d=[g,u],Nt(ue,this)>0&&(I=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ce,this),amount:st(Nt(ue,this)),suggestedParams:i}),d.push(I)),r().assignGroupID(d),t.next=30,xt(Ce,this,me).call(this,d);case 30:return C=t.sent,t.next=33,Nt(Mt,this).sendRawTransaction(C).do();case 33:return h=t.sent,y=h.txid,t.next=37,r().waitForConfirmation(Nt(Mt,this),y,10);case 37:return Zt(Pt,this,null),Zt(_t,this,null),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),t.next=44,this.getNFTMetadata({assetId:n});case 44:return A=t.sent,s.emit("nft:buy:success",{nft:A,transactionId:y}),t.abrupt("return",{nft:A,transactionId:y});case 49:throw t.prev=49,t.t0=t.catch(1),console.error("Error un-listing NFT:",t.t0.message),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),s.emit("nft:unlist:failed",{error:"Could not unlist NFT!"}),t.t0;case 57:case"end":return t.stop()}}),t,this,[[1,49]])}))),function(t){return a.apply(this,arguments)})},{key:"buyNFT",value:(n=pt(vt().mark((function t(e){var n,a,i,o,c,g,l,u,d,I,C,h,y,A,m;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.assetId,t.prev=1,this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),xt(Ce,this,be).call(this,"buy an asset"),n){t.next=8;break}throw new Error("Asset ID is required.");case 8:if(!isNaN(n)){t.next=10;break}throw new Error("Asset ID must be a number.");case 10:return t.next=12,this.getNFTMetadata({assetId:n});case 12:if(a=t.sent,xt(Ce,this,nn).call(this,a)){t.next=15;break}throw new Error("This marketplace only supports ".concat(Nt(ae,this)," assets."));case 15:if(a.listing.seller!==this.account){t.next=17;break}throw new Error("Seller cannot buy the listed nft.");case 17:if(a.listing.marketplace===Nt(ie,this)){t.next=19;break}throw new Error("Cannot buy nft from other marketplace.");case 19:return t.next=21,Nt(Mt,this).getTransactionParams().do();case 21:return i=t.sent,o=Ct(Ct({},i),{},{flatFee:!0,fee:3e3}),c=lt(Nt(te,this),Nt(ie,this),n),g=r().makeAssetTransferTxnWithSuggestedParamsFromObject({sender:this.account,receiver:this.account,amount:0,assetIndex:n,suggestedParams:i}),l=Lt.methods.find((function(t){return"transferNFTToReceiverAndRemoveListing"===t.name})),u=r().makeApplicationCallTxnFromObject({sender:this.account,appIndex:Nt(te,this),onComplete:r().OnApplicationComplete.NoOpOC,appArgs:[l.getSelector(),r().ABIType.from("uint64").encode(BigInt(n)),r().ABIType.from("string").encode(a.listing.seller),r().ABIType.from("string").encode(Nt(ie,this))],boxes:[c],foreignAssets:[n],suggestedParams:o}),d=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:a.listing.seller,amount:st(a.listing.price),suggestedParams:i}),I=[g,u,d],Nt(le,this)>0&&(C=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ce,this),amount:st(Nt(le,this)),suggestedParams:i}),I.push(C)),r().assignGroupID(I),t.next=33,xt(Ce,this,me).call(this,I);case 33:return h=t.sent,t.next=36,Nt(Mt,this).sendRawTransaction(h).do();case 36:return y=t.sent,A=y.txid,t.next=40,r().waitForConfirmation(Nt(Mt,this),A,10);case 40:return Zt(Pt,this,null),Zt(_t,this,null),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),t.next=47,this.getNFTMetadata({assetId:n});case 47:return m=t.sent,s.emit("nft:buy:success",{nft:m,transactionId:A}),t.abrupt("return",{nft:m,transactionId:A});case 52:throw t.prev=52,t.t0=t.catch(1),console.error("Error buying NFT:",t.t0.message),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),s.emit("nft:buy:failed",{error:"Could not buy NFT!"}),t.t0;case 60:case"end":return t.stop()}}),t,this,[[1,52]])}))),function(t){return n.apply(this,arguments)})}],e&&ft(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n,a,i,o,c,g,l,u,d,C,h,y,A,m,v,b,p,f}();module.exports=a.default})();
|
|
2
|
+
(()=>{"use strict";var t={698:t=>{t.exports=JSON.parse('{"hints":{"addNFTListing(uint64,string,string,string)byte[]":{"call_config":{"no_op":"CALL"}},"getNFTListing(string,uint64)(string,string,string)":{"read_only":true,"call_config":{"no_op":"CALL"},"structs":{"output":{"name":"Listing","elements":[["seller","string"],["nftPrice","string"],["marketplace","string"]]}}},"removeNFTListing(string,uint64)byte[]":{"call_config":{"no_op":"CALL"}},"contractOptInToNFT(string,uint64)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToContractAndAddListing(uint64,string,string,string)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToContract(string,uint64)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToReceiver(string,uint64,string)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToSeller(string,uint64,string)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToReceiverAndRemoveListing(uint64,string,string)byte[]":{"call_config":{"no_op":"CALL"}},"transferNFTToSellerAndRemoveListing(uint64,string,string)byte[]":{"call_config":{"no_op":"CALL"}},"fundContract(uint64)void":{"call_config":{"no_op":"CALL"}},"withdrawExcessFunds()void":{"call_config":{"no_op":"CALL"}}},"source":{"approval":"I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAyIDEgOAogICAgYnl0ZWNibG9jayAibGlzdGluZ18iIDB4MTUxZjdjNzUwMDIwIDB4MDAwNgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI3CiAgICAvLyBleHBvcnQgY2xhc3MgQWxnb01pbnRYIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDE5CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydAogICAgcHVzaGJ5dGVzcyAweDU5YmRjMjAwIDB4OWRiODZhOGUgMHg2NzNhZDAwYyAweDE2YTRiNDJlIDB4NWQyYWQyYTAgMHhlMzk4NjY0MCAweGM5MDc5ZTlhIDB4MDYyNDBkZjMgMHg5OGJmOTA2ZCAweGFlZmYwNDBiIDB4NTVkOTUyNWIgMHgxNGVlOGFmYiAvLyBtZXRob2QgImFkZE5GVExpc3RpbmcodWludDY0LHN0cmluZyxzdHJpbmcsc3RyaW5nKWJ5dGVbXSIsIG1ldGhvZCAiZ2V0TkZUTGlzdGluZyhzdHJpbmcsdWludDY0KShzdHJpbmcsc3RyaW5nLHN0cmluZykiLCBtZXRob2QgInJlbW92ZU5GVExpc3Rpbmcoc3RyaW5nLHVpbnQ2NClieXRlW10iLCBtZXRob2QgImNvbnRyYWN0T3B0SW5Ub05GVChzdHJpbmcsdWludDY0KWJ5dGVbXSIsIG1ldGhvZCAidHJhbnNmZXJORlRUb0NvbnRyYWN0QW5kQWRkTGlzdGluZyh1aW50NjQsc3RyaW5nLHN0cmluZyxzdHJpbmcpYnl0ZVtdIiwgbWV0aG9kICJ0cmFuc2Zlck5GVFRvQ29udHJhY3Qoc3RyaW5nLHVpbnQ2NClieXRlW10iLCBtZXRob2QgInRyYW5zZmVyTkZUVG9SZWNlaXZlcihzdHJpbmcsdWludDY0LHN0cmluZylieXRlW10iLCBtZXRob2QgInRyYW5zZmVyTkZUVG9TZWxsZXIoc3RyaW5nLHVpbnQ2NCxzdHJpbmcpYnl0ZVtdIiwgbWV0aG9kICJ0cmFuc2Zlck5GVFRvUmVjZWl2ZXJBbmRSZW1vdmVMaXN0aW5nKHVpbnQ2NCxzdHJpbmcsc3RyaW5nKWJ5dGVbXSIsIG1ldGhvZCAidHJhbnNmZXJORlRUb1NlbGxlckFuZFJlbW92ZUxpc3RpbmcodWludDY0LHN0cmluZyxzdHJpbmcpYnl0ZVtdIiwgbWV0aG9kICJmdW5kQ29udHJhY3QodWludDY0KXZvaWQiLCBtZXRob2QgIndpdGhkcmF3RXhjZXNzRnVuZHMoKXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBhZGRORlRMaXN0aW5nIGdldE5GVExpc3RpbmcgcmVtb3ZlTkZUTGlzdGluZyBjb250cmFjdE9wdEluVG9ORlQgdHJhbnNmZXJORlRUb0NvbnRyYWN0QW5kQWRkTGlzdGluZyB0cmFuc2Zlck5GVFRvQ29udHJhY3QgdHJhbnNmZXJORlRUb1JlY2VpdmVyIHRyYW5zZmVyTkZUVG9TZWxsZXIgdHJhbnNmZXJORlRUb1JlY2VpdmVyQW5kUmVtb3ZlTGlzdGluZyB0cmFuc2Zlck5GVFRvU2VsbGVyQW5kUmVtb3ZlTGlzdGluZyBmdW5kQ29udHJhY3Qgd2l0aGRyYXdFeGNlc3NGdW5kcwogICAgZXJyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxOToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNwogICAgLy8gZXhwb3J0IGNsYXNzIEFsZ29NaW50WCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICAmJgogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBtdXN0IGJlIE5vT3AgJiYgY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjpBbGdvTWludFguYWRkTkZUTGlzdGluZ1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFkZE5GVExpc3Rpbmc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NDIKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICBkdXAKICAgIHVuY292ZXIgMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBkdXAKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NDkKICAgIC8vIGNvbnN0IGxpc3RpbmdLZXkgPSB0aGlzLmJ1aWxkTGlzdGluZ0tleShtYXJrZXRwbGFjZSwgYXNzZXRJZCk7CiAgICB1bmNvdmVyIDYKICAgIGNhbGxzdWIgYnVpbGRMaXN0aW5nS2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjkKICAgIC8vIHByaXZhdGUgbGlzdGluZ3MgPSBCb3hNYXA8Ynl0ZXMsIExpc3Rpbmc+KHsga2V5UHJlZml4OiAibGlzdGluZ18iIH0pOwogICAgYnl0ZWNfMCAvLyAibGlzdGluZ18iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo1MgogICAgLy8gIXRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgICEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo1MS01NAogICAgLy8gYXNzZXJ0KAogICAgLy8gICAhdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICAvLyAgICJBIGxpc3RpbmcgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgTkZUIgogICAgLy8gKTsKICAgIGFzc2VydCAvLyBBIGxpc3RpbmcgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgTkZUCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NTYtNjAKICAgIC8vIGNvbnN0IHZhbHVlID0gbmV3IExpc3RpbmcoewogICAgLy8gICBzZWxsZXI6IG5ldyBhcmM0LlN0cihzZW5kZXJXYWxsZXRBZGRyZXNzKSwKICAgIC8vICAgbmZ0UHJpY2U6IG5ldyBhcmM0LlN0cihuZnRQcmljZSksCiAgICAvLyAgIG1hcmtldHBsYWNlOiBuZXcgYXJjNC5TdHIobWFya2V0cGxhY2UpLAogICAgLy8gfSk7CiAgICBwdXNoaW50IDYgLy8gNgogICAgdW5jb3ZlciA1CiAgICArCiAgICBkdXAKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18yIC8vIDB4MDAwNgogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICB1bmNvdmVyIDQKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgNAogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo2MgogICAgLy8gdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS52YWx1ZSA9IGNsb25lKHZhbHVlKTsKICAgIGRpZyAxCiAgICBib3hfZGVsCiAgICBwb3AKICAgIGJveF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo0MgogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUwMDIwCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NjQKICAgIC8vIHJldHVybiBUeG4udHhJZDsKICAgIHR4biBUeElECiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NDIKICAgIC8vIEBhYmltZXRob2QoKQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC5nZXRORlRMaXN0aW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0TkZUTGlzdGluZzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo2NwogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjY5CiAgICAvLyBjb25zdCBsaXN0aW5nS2V5ID0gdGhpcy5idWlsZExpc3RpbmdLZXkobWFya2V0cGxhY2UsIGFzc2V0SWQpOwogICAgY2FsbHN1YiBidWlsZExpc3RpbmdLZXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gcHJpdmF0ZSBsaXN0aW5ncyA9IEJveE1hcDxieXRlcywgTGlzdGluZz4oeyBrZXlQcmVmaXg6ICJsaXN0aW5nXyIgfSk7CiAgICBieXRlY18wIC8vICJsaXN0aW5nXyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjcyCiAgICAvLyB0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NzEtNzQKICAgIC8vIGFzc2VydCgKICAgIC8vICAgdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICAvLyAgICJObyBhY3RpdmUgbGlzdGluZyBmb3VuZCBmb3IgdGhpcyBORlQiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE5vIGFjdGl2ZSBsaXN0aW5nIGZvdW5kIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjc2CiAgICAvLyByZXR1cm4gY2xvbmUodGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS52YWx1ZSk7CiAgICBib3hfZ2V0CiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo2NwogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC5yZW1vdmVORlRMaXN0aW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKcmVtb3ZlTkZUTGlzdGluZzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo3OQogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjgxCiAgICAvLyBjb25zdCBsaXN0aW5nS2V5ID0gdGhpcy5idWlsZExpc3RpbmdLZXkobWFya2V0cGxhY2UsIGFzc2V0SWQpOwogICAgY2FsbHN1YiBidWlsZExpc3RpbmdLZXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gcHJpdmF0ZSBsaXN0aW5ncyA9IEJveE1hcDxieXRlcywgTGlzdGluZz4oeyBrZXlQcmVmaXg6ICJsaXN0aW5nXyIgfSk7CiAgICBieXRlY18wIC8vICJsaXN0aW5nXyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjg0CiAgICAvLyB0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6ODMtODYKICAgIC8vIGFzc2VydCgKICAgIC8vICAgdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICAvLyAgICJObyBhY3RpdmUgbGlzdGluZyBmb3VuZCBmb3IgdGhpcyBORlQiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE5vIGFjdGl2ZSBsaXN0aW5nIGZvdW5kIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjg4CiAgICAvLyB0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmRlbGV0ZSgpOwogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6NzkKICAgIC8vIEBhYmltZXRob2QoKQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1MDAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjkwCiAgICAvLyByZXR1cm4gVHhuLnR4SWQ7CiAgICB0eG4gVHhJRAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjc5CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjpBbGdvTWludFguY29udHJhY3RPcHRJblRvTkZUW3JvdXRpbmddKCkgLT4gdm9pZDoKY29udHJhY3RPcHRJblRvTkZUOgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjk4CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTAwCiAgICAvLyBjb25zdCBsaXN0aW5nS2V5ID0gdGhpcy5idWlsZExpc3RpbmdLZXkobWFya2V0cGxhY2UsIGFzc2V0SWQpOwogICAgc3dhcAogICAgZGlnIDEKICAgIGNhbGxzdWIgYnVpbGRMaXN0aW5nS2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjkKICAgIC8vIHByaXZhdGUgbGlzdGluZ3MgPSBCb3hNYXA8Ynl0ZXMsIExpc3Rpbmc+KHsga2V5UHJlZml4OiAibGlzdGluZ18iIH0pOwogICAgYnl0ZWNfMCAvLyAibGlzdGluZ18iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMDMKICAgIC8vICF0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEwMi0xMDUKICAgIC8vIGFzc2VydCgKICAgIC8vICAgIXRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgLy8gICAiQSBsaXN0aW5nIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIE5GVCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gQSBsaXN0aW5nIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEwNy0xMTQKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMDkKICAgIC8vIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMTEKICAgIC8vIGFzc2V0QW1vdW50OiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBYZmVyQXNzZXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMDctMTEzCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMTIKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEwNy0xMTQKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OTgKICAgIC8vIEBhYmltZXRob2QoKQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1MDAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjExNgogICAgLy8gcmV0dXJuIFR4bi50eElkOwogICAgdHhuIFR4SUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo5OAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo6QWxnb01pbnRYLnRyYW5zZmVyTkZUVG9Db250cmFjdEFuZEFkZExpc3Rpbmdbcm91dGluZ10oKSAtPiB2b2lkOgp0cmFuc2Zlck5GVFRvQ29udHJhY3RBbmRBZGRMaXN0aW5nOgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEyNAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGR1cAogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMzEKICAgIC8vIGNvbnN0IGxpc3RpbmdLZXkgPSB0aGlzLmJ1aWxkTGlzdGluZ0tleShtYXJrZXRwbGFjZSwgYXNzZXRJZCk7CiAgICBkaWcgNgogICAgY2FsbHN1YiBidWlsZExpc3RpbmdLZXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gcHJpdmF0ZSBsaXN0aW5ncyA9IEJveE1hcDxieXRlcywgTGlzdGluZz4oeyBrZXlQcmVmaXg6ICJsaXN0aW5nXyIgfSk7CiAgICBieXRlY18wIC8vICJsaXN0aW5nXyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEzNAogICAgLy8gIXRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgICEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMzMtMTM2CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgICF0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIC8vICAgIkEgbGlzdGluZyBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBORlQiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIEEgbGlzdGluZyBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBORlQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMzgtMTQ1CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTQwCiAgICAvLyBhc3NldFJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTQyCiAgICAvLyBhc3NldEFtb3VudDogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICB1bmNvdmVyIDcKICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMzgtMTQ0CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNDMKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjEzOC0xNDUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTQ3LTE1MQogICAgLy8gY29uc3QgdmFsdWUgPSBuZXcgTGlzdGluZyh7CiAgICAvLyAgIHNlbGxlcjogbmV3IGFyYzQuU3RyKHNlbmRlcldhbGxldEFkZHJlc3MpLAogICAgLy8gICBuZnRQcmljZTogbmV3IGFyYzQuU3RyKG5mdFByaWNlKSwKICAgIC8vICAgbWFya2V0cGxhY2U6IG5ldyBhcmM0LlN0cihtYXJrZXRwbGFjZSksCiAgICAvLyB9KTsKICAgIHB1c2hpbnQgNiAvLyA2CiAgICB1bmNvdmVyIDUKICAgICsKICAgIGR1cAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzIgLy8gMHgwMDA2CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIHVuY292ZXIgNAogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciA0CiAgICBjb25jYXQKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE1MwogICAgLy8gdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS52YWx1ZSA9IGNsb25lKHZhbHVlKTsKICAgIGRpZyAxCiAgICBib3hfZGVsCiAgICBwb3AKICAgIGJveF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMjQKICAgIC8vIEBhYmltZXRob2QoKQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1MDAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE1NQogICAgLy8gcmV0dXJuIFR4bi50eElkOwogICAgdHhuIFR4SUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxMjQKICAgIC8vIEBhYmltZXRob2QoKQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC50cmFuc2Zlck5GVFRvQ29udHJhY3Rbcm91dGluZ10oKSAtPiB2b2lkOgp0cmFuc2Zlck5GVFRvQ29udHJhY3Q6CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTYxCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTYzCiAgICAvLyBjb25zdCBsaXN0aW5nS2V5ID0gdGhpcy5idWlsZExpc3RpbmdLZXkobWFya2V0cGxhY2UsIGFzc2V0SWQpOwogICAgc3dhcAogICAgZGlnIDEKICAgIGNhbGxzdWIgYnVpbGRMaXN0aW5nS2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjkKICAgIC8vIHByaXZhdGUgbGlzdGluZ3MgPSBCb3hNYXA8Ynl0ZXMsIExpc3Rpbmc+KHsga2V5UHJlZml4OiAibGlzdGluZ18iIH0pOwogICAgYnl0ZWNfMCAvLyAibGlzdGluZ18iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNjYKICAgIC8vICF0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE2NS0xNjgKICAgIC8vIGFzc2VydCgKICAgIC8vICAgIXRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgLy8gICAiQSBsaXN0aW5nIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIE5GVCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gQSBsaXN0aW5nIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE3MC0xNzcKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNzIKICAgIC8vIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNzQKICAgIC8vIGFzc2V0QW1vdW50OiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBYZmVyQXNzZXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNzAtMTc2CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNzUKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE3MC0xNzcKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTYxCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NTAwMjAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxNzkKICAgIC8vIHJldHVybiBUeG4udHhJZDsKICAgIHR4biBUeElECiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTYxCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjpBbGdvTWludFgudHJhbnNmZXJORlRUb1JlY2VpdmVyW3JvdXRpbmddKCkgLT4gdm9pZDoKdHJhbnNmZXJORlRUb1JlY2VpdmVyOgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE4MgogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE4OAogICAgLy8gY29uc3QgbGlzdGluZ0tleSA9IHRoaXMuYnVpbGRMaXN0aW5nS2V5KG1hcmtldHBsYWNlLCBhc3NldElkKTsKICAgIHVuY292ZXIgMgogICAgZGlnIDIKICAgIGNhbGxzdWIgYnVpbGRMaXN0aW5nS2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjkKICAgIC8vIHByaXZhdGUgbGlzdGluZ3MgPSBCb3hNYXA8Ynl0ZXMsIExpc3Rpbmc+KHsga2V5UHJlZml4OiAibGlzdGluZ18iIH0pOwogICAgYnl0ZWNfMCAvLyAibGlzdGluZ18iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxOTEKICAgIC8vIHRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxOTAtMTkzCiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIHRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZXhpc3RzLAogICAgLy8gICAiTm8gYWN0aXZlIGxpc3RpbmcgZm91bmQgZm9yIHRoaXMgTkZUIgogICAgLy8gKTsKICAgIGFzc2VydCAvLyBObyBhY3RpdmUgbGlzdGluZyBmb3VuZCBmb3IgdGhpcyBORlQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoxOTUKICAgIC8vIGNvbnN0IGxpc3RpbmcgPSBjbG9uZSh0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLnZhbHVlKTsKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE5OAogICAgLy8gbGlzdGluZy5zZWxsZXIgPT09IG5ldyBhcmM0LlN0cihzZWxsZXJXYWxsZXRBZGRyZXNzKSwKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgaW50Y18xIC8vIDIKICAgIGV4dHJhY3RfdWludDE2CiAgICBzdWJzdHJpbmczCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjE5Ny0yMDAKICAgIC8vIGFzc2VydCgKICAgIC8vICAgbGlzdGluZy5zZWxsZXIgPT09IG5ldyBhcmM0LlN0cihzZWxsZXJXYWxsZXRBZGRyZXNzKSwKICAgIC8vICAgIlNlbGxlciB3YWxsZXQgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gU2VsbGVyIHdhbGxldCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjAyLTIwOQogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDEsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjA0CiAgICAvLyBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIwNgogICAgLy8gYXNzZXRBbW91bnQ6IDEsCiAgICBpbnRjXzIgLy8gMQogICAgaXR4bl9maWVsZCBBc3NldEFtb3VudAogICAgaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIwMi0yMDgKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgICAgeGZlckFzc2V0OiBhc3NldElkLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAxLAogICAgLy8gICAgIGZlZTogMCwKICAgIC8vICAgfSkKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjA3CiAgICAvLyBmZWU6IDAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMDItMjA5CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMSwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTgyCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NTAwMjAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMTEKICAgIC8vIHJldHVybiBUeG4udHhJZDsKICAgIHR4biBUeElECiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MTgyCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjpBbGdvTWludFgudHJhbnNmZXJORlRUb1NlbGxlcltyb3V0aW5nXSgpIC0+IHZvaWQ6CnRyYW5zZmVyTkZUVG9TZWxsZXI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjE0CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjIwCiAgICAvLyBjb25zdCBsaXN0aW5nS2V5ID0gdGhpcy5idWlsZExpc3RpbmdLZXkobWFya2V0cGxhY2UsIGFzc2V0SWQpOwogICAgdW5jb3ZlciAyCiAgICBkaWcgMgogICAgY2FsbHN1YiBidWlsZExpc3RpbmdLZXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gcHJpdmF0ZSBsaXN0aW5ncyA9IEJveE1hcDxieXRlcywgTGlzdGluZz4oeyBrZXlQcmVmaXg6ICJsaXN0aW5nXyIgfSk7CiAgICBieXRlY18wIC8vICJsaXN0aW5nXyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIyMwogICAgLy8gdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIyMi0yMjUKICAgIC8vIGFzc2VydCgKICAgIC8vICAgdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICAvLyAgICJObyBhY3RpdmUgbGlzdGluZyBmb3VuZCBmb3IgdGhpcyBORlQiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE5vIGFjdGl2ZSBsaXN0aW5nIGZvdW5kIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIyNwogICAgLy8gY29uc3QgbGlzdGluZyA9IGNsb25lKHRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkudmFsdWUpOwogICAgYm94X2dldAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjMwCiAgICAvLyBsaXN0aW5nLnNlbGxlciA9PT0gbmV3IGFyYzQuU3RyKHNlbGxlcldhbGxldEFkZHJlc3MpLAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAxCiAgICBpbnRjXzEgLy8gMgogICAgZXh0cmFjdF91aW50MTYKICAgIHN1YnN0cmluZzMKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjI5LTIzMgogICAgLy8gYXNzZXJ0KAogICAgLy8gICBsaXN0aW5nLnNlbGxlciA9PT0gbmV3IGFyYzQuU3RyKHNlbGxlcldhbGxldEFkZHJlc3MpLAogICAgLy8gICAiU2VsbGVyIHdhbGxldCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoIgogICAgLy8gKTsKICAgIGFzc2VydCAvLyBTZWxsZXIgd2FsbGV0IGFkZHJlc3MgZG9lcyBub3QgbWF0Y2gKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMzQtMjQxCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMSwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMzYKICAgIC8vIGFzc2V0UmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICB0eG4gU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjM4CiAgICAvLyBhc3NldEFtb3VudDogMSwKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjM0LTI0MAogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDEsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMzkKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjIzNC0yNDEKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgICAgeGZlckFzc2V0OiBhc3NldElkLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAxLAogICAgLy8gICAgIGZlZTogMCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9zdWJtaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMTQKICAgIC8vIEBhYmltZXRob2QoKQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1MDAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI0MwogICAgLy8gcmV0dXJuIFR4bi50eElkOwogICAgdHhuIFR4SUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyMTQKICAgIC8vIEBhYmltZXRob2QoKQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC50cmFuc2Zlck5GVFRvUmVjZWl2ZXJBbmRSZW1vdmVMaXN0aW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKdHJhbnNmZXJORlRUb1JlY2VpdmVyQW5kUmVtb3ZlTGlzdGluZzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNTAKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZHVwCiAgICBleHRyYWN0IDIgMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI1NgogICAgLy8gY29uc3QgbGlzdGluZ0tleSA9IHRoaXMuYnVpbGRMaXN0aW5nS2V5KG1hcmtldHBsYWNlLCBhc3NldElkKTsKICAgIGRpZyAzCiAgICBjYWxsc3ViIGJ1aWxkTGlzdGluZ0tleQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI5CiAgICAvLyBwcml2YXRlIGxpc3RpbmdzID0gQm94TWFwPGJ5dGVzLCBMaXN0aW5nPih7IGtleVByZWZpeDogImxpc3RpbmdfIiB9KTsKICAgIGJ5dGVjXzAgLy8gImxpc3RpbmdfIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjU5CiAgICAvLyB0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjU4LTI2MQogICAgLy8gYXNzZXJ0KAogICAgLy8gICB0aGlzLmxpc3RpbmdzKGxpc3RpbmdLZXkpLmV4aXN0cywKICAgIC8vICAgIk5vIGFjdGl2ZSBsaXN0aW5nIGZvdW5kIGZvciB0aGlzIE5GVCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gTm8gYWN0aXZlIGxpc3RpbmcgZm91bmQgZm9yIHRoaXMgTkZUCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjYzCiAgICAvLyBjb25zdCBsaXN0aW5nID0gY2xvbmUodGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS52YWx1ZSk7CiAgICBkdXAKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI2NgogICAgLy8gbGlzdGluZy5zZWxsZXIgPT09IG5ldyBhcmM0LlN0cihzZWxsZXJXYWxsZXRBZGRyZXNzKSwKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgaW50Y18xIC8vIDIKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMgogICAgY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgdW5jb3ZlciA0CiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI2NS0yNjgKICAgIC8vIGFzc2VydCgKICAgIC8vICAgbGlzdGluZy5zZWxsZXIgPT09IG5ldyBhcmM0LlN0cihzZWxsZXJXYWxsZXRBZGRyZXNzKSwKICAgIC8vICAgIlNlbGxlciB3YWxsZXQgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gU2VsbGVyIHdhbGxldCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MjcxCiAgICAvLyBsaXN0aW5nLm1hcmtldHBsYWNlID09PSBuZXcgYXJjNC5TdHIobWFya2V0cGxhY2UpLAogICAgZHVwCiAgICBwdXNoaW50IDQgLy8gNAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAxCiAgICBsZW4KICAgIHN1YnN0cmluZzMKICAgIHVuY292ZXIgMgogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNzAtMjczCiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIGxpc3RpbmcubWFya2V0cGxhY2UgPT09IG5ldyBhcmM0LlN0cihtYXJrZXRwbGFjZSksCiAgICAvLyAgICJNYXJrZXRwbGFjZSBkb2VzIG5vdCBtYXRjaCIKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gTWFya2V0cGxhY2UgZG9lcyBub3QgbWF0Y2gKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNzUtMjgyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMSwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNzcKICAgIC8vIGFzc2V0UmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICB0eG4gU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6Mjc5CiAgICAvLyBhc3NldEFtb3VudDogMSwKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICB1bmNvdmVyIDIKICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyNzUtMjgxCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRJZCwKICAgIC8vICAgICBhc3NldEFtb3VudDogMSwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI4MAogICAgLy8gZmVlOiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6Mjc1LTI4MgogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDEsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI4NAogICAgLy8gdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5kZWxldGUoKTsKICAgIGJveF9kZWwKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI1MAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUwMDIwCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6Mjg2CiAgICAvLyByZXR1cm4gVHhuLnR4SWQ7CiAgICB0eG4gVHhJRAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI1MAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czo6QWxnb01pbnRYLnRyYW5zZmVyTkZUVG9TZWxsZXJBbmRSZW1vdmVMaXN0aW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKdHJhbnNmZXJORlRUb1NlbGxlckFuZFJlbW92ZUxpc3Rpbmc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6Mjg5CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGR1cAogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOTUKICAgIC8vIGNvbnN0IGxpc3RpbmdLZXkgPSB0aGlzLmJ1aWxkTGlzdGluZ0tleShtYXJrZXRwbGFjZSwgYXNzZXRJZCk7CiAgICBkaWcgMwogICAgY2FsbHN1YiBidWlsZExpc3RpbmdLZXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyOQogICAgLy8gcHJpdmF0ZSBsaXN0aW5ncyA9IEJveE1hcDxieXRlcywgTGlzdGluZz4oeyBrZXlQcmVmaXg6ICJsaXN0aW5nXyIgfSk7CiAgICBieXRlY18wIC8vICJsaXN0aW5nXyIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI5OAogICAgLy8gdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjI5Ny0zMDAKICAgIC8vIGFzc2VydCgKICAgIC8vICAgdGhpcy5saXN0aW5ncyhsaXN0aW5nS2V5KS5leGlzdHMsCiAgICAvLyAgICJObyBhY3RpdmUgbGlzdGluZyBmb3VuZCBmb3IgdGhpcyBORlQiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE5vIGFjdGl2ZSBsaXN0aW5nIGZvdW5kIGZvciB0aGlzIE5GVAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMwMgogICAgLy8gY29uc3QgbGlzdGluZyA9IGNsb25lKHRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkudmFsdWUpOwogICAgZHVwCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMDUKICAgIC8vIGxpc3Rpbmcuc2VsbGVyID09PSBuZXcgYXJjNC5TdHIoc2VsbGVyV2FsbGV0QWRkcmVzcyksCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDEKICAgIGludGNfMSAvLyAyCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDIKICAgIGNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHVuY292ZXIgNAogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMDQtMzA3CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIGxpc3Rpbmcuc2VsbGVyID09PSBuZXcgYXJjNC5TdHIoc2VsbGVyV2FsbGV0QWRkcmVzcyksCiAgICAvLyAgICJTZWxsZXIgd2FsbGV0IGFkZHJlc3MgZG9lcyBub3QgbWF0Y2giCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIFNlbGxlciB3YWxsZXQgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMxMAogICAgLy8gbGlzdGluZy5tYXJrZXRwbGFjZSA9PT0gbmV3IGFyYzQuU3RyKG1hcmtldHBsYWNlKSwKICAgIGR1cAogICAgcHVzaGludCA0IC8vIDQKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgbGVuCiAgICBzdWJzdHJpbmczCiAgICB1bmNvdmVyIDIKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzA5LTMxMgogICAgLy8gYXNzZXJ0KAogICAgLy8gICBsaXN0aW5nLm1hcmtldHBsYWNlID09PSBuZXcgYXJjNC5TdHIobWFya2V0cGxhY2UpLAogICAgLy8gICAiTWFya2V0cGxhY2UgZG9lcyBub3QgbWF0Y2giCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE1hcmtldHBsYWNlIGRvZXMgbm90IG1hdGNoCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzE0LTMyMQogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDEsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzE2CiAgICAvLyBhc3NldFJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMxOAogICAgLy8gYXNzZXRBbW91bnQ6IDEsCiAgICBpbnRjXzIgLy8gMQogICAgaXR4bl9maWVsZCBBc3NldEFtb3VudAogICAgdW5jb3ZlciAyCiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzE0LTMyMAogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0SWQsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDEsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMTkKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMxNC0zMjEKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgICAgeGZlckFzc2V0OiBhc3NldElkLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAxLAogICAgLy8gICAgIGZlZTogMCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9zdWJtaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMjMKICAgIC8vIHRoaXMubGlzdGluZ3MobGlzdGluZ0tleSkuZGVsZXRlKCk7CiAgICBib3hfZGVsCiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyODkKICAgIC8vIEBhYmltZXRob2QoKQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1MDAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMyNQogICAgLy8gcmV0dXJuIFR4bi50eElkOwogICAgdHhuIFR4SUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czoyODkKICAgIC8vIEBhYmltZXRob2QoKQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC5mdW5kQ29udHJhY3Rbcm91dGluZ10oKSAtPiB2b2lkOgpmdW5kQ29udHJhY3Q6CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzMzCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMzYKICAgIC8vIFR4bi5zZW5kZXIgPT09IEdsb2JhbC5jcmVhdG9yQWRkcmVzcywKICAgIHR4biBTZW5kZXIKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMzUtMzM4CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIFR4bi5zZW5kZXIgPT09IEdsb2JhbC5jcmVhdG9yQWRkcmVzcywKICAgIC8vICAgIk9ubHkgY29udHJhY3QgY3JlYXRvciBjYW4gZnVuZCB0aGUgY29udHJhY3QiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE9ubHkgY29udHJhY3QgY3JlYXRvciBjYW4gZnVuZCB0aGUgY29udHJhY3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNDAtMzQ2CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBhbW91bnQ6IGFtb3VudCwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzQzCiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNDAtMzQ1CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBhbW91bnQ6IGFtb3VudCwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgaW50Y18yIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNDQKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjM0MC0zNDYKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIGFtb3VudDogYW1vdW50LAogICAgLy8gICAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzMzCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6OkFsZ29NaW50WC53aXRoZHJhd0V4Y2Vzc0Z1bmRzW3JvdXRpbmddKCkgLT4gdm9pZDoKd2l0aGRyYXdFeGNlc3NGdW5kczoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNTIKICAgIC8vIFR4bi5zZW5kZXIgPT09IEdsb2JhbC5jcmVhdG9yQWRkcmVzcywKICAgIHR4biBTZW5kZXIKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNTEtMzU0CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIFR4bi5zZW5kZXIgPT09IEdsb2JhbC5jcmVhdG9yQWRkcmVzcywKICAgIC8vICAgIk9ubHkgY29udHJhY3QgY3JlYXRvciBjYW4gd2l0aGRyYXcgZnVuZHMiCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIE9ubHkgY29udHJhY3QgY3JlYXRvciBjYW4gd2l0aGRyYXcgZnVuZHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNTcKICAgIC8vIEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLmJhbGFuY2UgLSBNSU5fQkFMQU5DRQogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICBwdXNoaW50IDEwMDAwMCAvLyAxMDAwMDAKICAgIC0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNjItMzY4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBhbW91bnQ6IGFtb3VudFRvV2l0aGRyYXcsCiAgICAvLyAgICAgcmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzY1CiAgICAvLyByZWNlaXZlcjogVHhuLnNlbmRlciwKICAgIHR4biBTZW5kZXIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzYyLTM2NwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgYW1vdW50OiBhbW91bnRUb1dpdGhkcmF3LAogICAgLy8gICAgIHJlY2VpdmVyOiBUeG4uc2VuZGVyLAogICAgLy8gICAgIGZlZTogMCwKICAgIC8vICAgfSkKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzY2CiAgICAvLyBmZWU6IDAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozNjItMzY4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBhbW91bnQ6IGFtb3VudFRvV2l0aGRyYXcsCiAgICAvLyAgICAgcmVjZWl2ZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgICAgZmVlOiAwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjM0OQogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjpBbGdvTWludFguYnVpbGRMaXN0aW5nS2V5KG1hcmtldHBsYWNlOiBieXRlcywgYXNzZXRJZDogdWludDY0KSAtPiBieXRlczoKYnVpbGRMaXN0aW5nS2V5OgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMxCiAgICAvLyBwcml2YXRlIGJ1aWxkTGlzdGluZ0tleShtYXJrZXRwbGFjZTogc3RyaW5nLCBhc3NldElkOiB1aW50NjQpOiBieXRlcyB7CiAgICBwcm90byAyIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9BbGdvTWludFgvY29udHJhY3QuYWxnby50czozMgogICAgLy8gY29uc3QgbWFya2V0cGxhY2VCeXRlcyA9IG5ldyBhcmM0LlN0cihtYXJrZXRwbGFjZSkuYnl0ZXM7CiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvQWxnb01pbnRYL2NvbnRyYWN0LmFsZ28udHM6MzQKICAgIC8vIGNvbnN0IGFzc2V0SWRCeXRlcyA9IG5ldyBhcmM0LlVpbnQ2NChhc3NldElkKS5ieXRlczsKICAgIGZyYW1lX2RpZyAtMQogICAgaXRvYgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyByZXR1cm4gb3AuY29uY2F0KG9wLmNvbmNhdChtYXJrZXRwbGFjZUJ5dGVzLCBzZXBhcmF0b3IpLCBhc3NldElkQnl0ZXMpOwogICAgc3dhcAogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBjb25zdCBzZXBhcmF0b3IgPSBuZXcgYXJjNC5TdHIoIl8iKS5ieXRlczsKICAgIHB1c2hieXRlcyAweDAwMDE1ZgogICAgLy8gc21hcnRfY29udHJhY3RzL0FsZ29NaW50WC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyByZXR1cm4gb3AuY29uY2F0KG9wLmNvbmNhdChtYXJrZXRwbGFjZUJ5dGVzLCBzZXBhcmF0b3IpLCBhc3NldElkQnl0ZXMpOwogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHJldHN1Ygo=","clear":"I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg=="},"state":{"global":{"num_byte_slices":0,"num_uints":0},"local":{"num_byte_slices":0,"num_uints":0}},"schema":{"global":{"declared":{},"reserved":{}},"local":{"declared":{},"reserved":{}}},"contract":{"name":"AlgoMintX","methods":[{"name":"addNFTListing","args":[{"type":"uint64","name":"assetId"},{"type":"string","name":"senderWalletAddress"},{"type":"string","name":"nftPrice"},{"type":"string","name":"marketplace"}],"readonly":false,"returns":{"type":"byte[]"},"desc":"\\nBox only methods"},{"name":"getNFTListing","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"}],"readonly":true,"returns":{"type":"(string,string,string)"}},{"name":"removeNFTListing","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"}],"readonly":false,"returns":{"type":"byte[]"}},{"name":"contractOptInToNFT","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"}],"readonly":false,"returns":{"type":"byte[]"},"desc":"\\nNFT methods"},{"name":"transferNFTToContractAndAddListing","args":[{"type":"uint64","name":"assetId"},{"type":"string","name":"senderWalletAddress"},{"type":"string","name":"nftPrice"},{"type":"string","name":"marketplace"}],"readonly":false,"returns":{"type":"byte[]"},"desc":"Records a listing and opt-ins the contract to the asset.\\nEscrow is completed by a user-signed asset transfer in the same atomic group\\n(mirrors AlgoStakeX stake: app call + outer asset transfer)."},{"name":"transferNFTToContract","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"}],"readonly":false,"returns":{"type":"byte[]"},"desc":"Opt-in only. Pair with a user-signed asset transfer in the same atomic group."},{"name":"transferNFTToReceiver","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"},{"type":"string","name":"sellerWalletAddress"}],"readonly":false,"returns":{"type":"byte[]"}},{"name":"transferNFTToSeller","args":[{"type":"string","name":"marketplace"},{"type":"uint64","name":"assetId"},{"type":"string","name":"sellerWalletAddress"}],"readonly":false,"returns":{"type":"byte[]"}},{"name":"transferNFTToReceiverAndRemoveListing","args":[{"type":"uint64","name":"assetId"},{"type":"string","name":"sellerWalletAddress"},{"type":"string","name":"marketplace"}],"readonly":false,"returns":{"type":"byte[]"},"desc":"\\nNFT + Box methods"},{"name":"transferNFTToSellerAndRemoveListing","args":[{"type":"uint64","name":"assetId"},{"type":"string","name":"sellerWalletAddress"},{"type":"string","name":"marketplace"}],"readonly":false,"returns":{"type":"byte[]"}},{"name":"fundContract","args":[{"type":"uint64","name":"amount"}],"readonly":false,"returns":{"type":"void"},"desc":"\\nMisc methods"},{"name":"withdrawExcessFunds","args":[],"readonly":false,"returns":{"type":"void"}}],"networks":{}},"bare_call_config":{"no_op":"CREATE"}}')}},e={};function n(a){var i=e[a];if(void 0!==i)return i.exports;var r=e[a]={exports:{}};return t[a](r,r.exports,n),r.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var a in e)n.o(e,a)&&!n.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};n.d(a,{default:()=>cn});const i=require("algosdk");var r=n.n(i),o=new(require("events").EventEmitter);o.setMaxListeners(20);const s=o;function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function g(t){return function(t){if(Array.isArray(t))return l(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return l(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=Array(e);n<e;n++)a[n]=t[n];return a}function u(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,d(a.key),a)}}function d(t){var e=function(t){if("object"!=c(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:e+""}var I=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return e=t,n=[{key:"validateRequired",value:function(t,e){if(null==t)throw new Error("".concat(e," is required"));return t}},{key:"validateString",value:function(e,n){if(t.validateRequired(e,n),"string"!=typeof e)throw new Error("".concat(n," must be a string"));if(0===e.trim().length)throw new Error("".concat(n," cannot be empty"));return e}},{key:"validateEnum",value:function(e,n,a){if(t.validateString(e,n),!a.includes(e))throw new Error("".concat(n," must be one of: ").concat(a.join(", ")));return e}},{key:"validateNumber",value:function(t,e){var n,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null==t)return null!==(n=a.default)&&void 0!==n?n:0;if("number"!=typeof t)throw new Error("".concat(e," must be a number"));if(!Number.isFinite(t))throw new Error("".concat(e," must be a finite number"));if(void 0!==a.min&&t<a.min)throw new Error("".concat(e," must be greater than or equal to ").concat(a.min));if(void 0!==a.max&&t>a.max)throw new Error("".concat(e," must be less than or equal to ").concat(a.max));return t}},{key:"validateBoolean",value:function(t,e){if(null==t)return arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("boolean"!=typeof t)throw new Error("".concat(e," must be a boolean"));return t}},{key:"validateUrl",value:function(e,n){t.validateString(e,n);try{return new URL(e),e}catch(t){throw new Error("".concat(n," must be a valid URL"))}}},{key:"validatePinataServerKey",value:function(e){return t.validateString(e,"Pinata IPFS server key")}},{key:"validatePinataGatewayUrl",value:function(e){if(null==e)return null;var n=t.validateString(e,"Pinata IPFS gateway URL");if(n.startsWith("http://")||n.startsWith("https://"))throw new Error("Pinata IPFS gateway URL must not include http:// or https://");if(n.includes("/"))throw new Error("Pinata IPFS gateway URL must not contain any forward slashes");try{return new URL("https://".concat(n)),n}catch(t){throw new Error("Pinata IPFS gateway URL must be a valid URL")}}},{key:"validateEnvironment",value:function(e){return t.validateEnum(e,"Environment",["testnet","mainnet"])}},{key:"validateMarketplaceType",value:function(e){return t.validateEnum(e,"marketplaceType",["FT","NFT"])}},{key:"validateNamespace",value:function(e){var n=t.validateString(e,"Namespace");if(5!==n.length)throw new Error("Namespace must be exactly 5 characters long");if(!/^[A-Z]+$/.test(n))throw new Error("Namespace must contain only uppercase letters");return n}},{key:"validateRevenueWalletAddress",value:function(e){var n=t.validateString(e,"Revenue wallet address");if(58!==n.length)throw new Error("Revenue wallet address must be 58 characters long");if(!/^[A-Z2-7]{58}$/.test(n))throw new Error("Invalid Algorand wallet address format");return n}},{key:"validateFee",value:function(e,n){return t.validateNumber(e,n,{min:0})}},{key:"validateDisableToast",value:function(e){return t.validateBoolean(e,"disableToast",!1)}},{key:"validateDisableUi",value:function(e){return t.validateBoolean(e,"disableUi",!1)}},{key:"validateMinimizeUILocation",value:function(e){return t.validateEnum(e,"minimizeUILocation",["left","right"])||"right"}},{key:"validateLogo",value:function(e){if(null==e)return null;var n=t.validateString(e,"Logo");if(n.startsWith("http://")||n.startsWith("https://"))return t.validateUrl(n,"Logo");if(n.startsWith("./")||n.startsWith("../")||n.startsWith("/")){if(!/^[./\\a-zA-Z0-9_-]+\.(png|jpg|jpeg|gif|svg|webp)$/i.test(n))throw new Error("Invalid logo file path. Must be a valid image file path");return n}throw new Error("Logo must be either a valid URL or a valid local file path")}},{key:"validateToastLocation",value:function(e){return t.validateEnum(e,"Toast location",["TOP_LEFT","TOP_RIGHT"])}},{key:"validateSupportedMediaFormats",value:function(t){if(!Array.isArray(t))throw new Error("supportedMediaFormats must be an array");var e=["IMAGE","VIDEO","AUDIO"],n=t.filter((function(t){return!e.includes(t)}));if(n.length>0)throw new Error("Invalid media formats: ".concat(n.join(", "),". Valid formats are: ").concat(e.join(", ")));return t}},{key:"validateFileType",value:function(t,e){var n,a,i={IMAGE:["image/jpeg","image/png","image/gif","image/webp","image/svg+xml"],VIDEO:["video/mp4","video/webm","video/ogg","video/quicktime"],AUDIO:["audio/mpeg","audio/wav","audio/ogg","audio/mp4","audio/webm"]},r=e.reduce((function(t,e){return[].concat(g(t),g(i[e]))}),[]),o=t.type||t.mimetype;if(!o||!r.includes(o)){var s=e.map((function(t){return t.toLowerCase()})).join(", ");return{valid:!1,message:"Please upload a supported file type (".concat(s,")")}}var c=null!==(n=t.size)&&void 0!==n?n:t.data instanceof Uint8Array?t.data.byteLength:null===(a=t.data)||void 0===a?void 0:a.length;return null!=c&&c>104857600?{valid:!1,message:"File size must be less than 100MB"}:{valid:!0}}},{key:"sanitizeInput",value:function(t){return(t=(t=(t=(t=t.replace(/<[^>]*>/g,"")).replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"")).replace(/[^a-zA-Z0-9\s.,!?@#$%^&*()_+\-=\[\]{};':"\\|<>\/]/g,"")).replace(/\s+/g," ")).trim()}},{key:"validateNFTName",value:function(t){return t.length<1||t.length>50?{valid:!1,message:"NFT name must be between 1 and 50 characters"}:{valid:!0}}},{key:"validateNFTDescription",value:function(t){return t.length<1||t.length>500?{valid:!1,message:"NFT description must be between 1 and 500 characters"}:{valid:!0}}},{key:"validateFTName",value:function(t){return t.length<1||t.length>50?{valid:!1,message:"FT name must be between 1 and 50 characters"}:{valid:!0}}},{key:"validateFTDescription",value:function(t){return t.length<1||t.length>500?{valid:!1,message:"FT description must be between 1 and 500 characters"}:{valid:!0}}},{key:"validateFTDecimals",value:function(t){if(null==t||""===t)return{valid:!1,message:"Decimals is required"};var e=Number(t);return Number.isInteger(e)?e<0||e>19?{valid:!1,message:"Decimals must be between 0 and 19"}:{valid:!0}:{valid:!1,message:"Decimals must be a whole number"}}},{key:"validateFTTotalSupply",value:function(t){if(null==t||""===t)return{valid:!1,message:"Total supply is required"};var e=Number(t);return Number.isInteger(e)?e<1?{valid:!1,message:"Total supply must be at least 1"}:e>Number.MAX_SAFE_INTEGER?{valid:!1,message:"Total supply is too large"}:{valid:!0}:{valid:!1,message:"Total supply must be a whole number"}}}],null&&u(e.prototype,null),n&&u(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}();function C(t){return C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},C(t)}function h(){h=function(){return e};var t,e={},n=Object.prototype,a=n.hasOwnProperty,i=Object.defineProperty||function(t,e,n){t[e]=n.value},r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function g(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{g({},"")}catch(t){g=function(t,e,n){return t[e]=n}}function l(t,e,n,a){var r=e&&e.prototype instanceof v?e:v,o=Object.create(r.prototype),s=new B(a||[]);return i(o,"_invoke",{value:x(t,n,s)}),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",I="suspendedYield",y="executing",A="completed",m={};function v(){}function b(){}function p(){}var f={};g(f,o,(function(){return this}));var W=Object.getPrototypeOf,G=W&&W(W(X([])));G&&G!==n&&a.call(G,o)&&(f=G);var Y=p.prototype=v.prototype=Object.create(f);function N(t){["next","throw","return"].forEach((function(e){g(t,e,(function(t){return this._invoke(e,t)}))}))}function Z(t,e){function n(i,r,o,s){var c=u(t[i],t,r);if("throw"!==c.type){var g=c.arg,l=g.value;return l&&"object"==C(l)&&a.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,o,s)}),(function(t){n("throw",t,o,s)})):e.resolve(l).then((function(t){g.value=t,o(g)}),(function(t){return n("throw",t,o,s)}))}s(c.arg)}var r;i(this,"_invoke",{value:function(t,a){function i(){return new e((function(e,i){n(t,a,e,i)}))}return r=r?r.then(i,i):i()}})}function x(e,n,a){var i=d;return function(r,o){if(i===y)throw Error("Generator is already running");if(i===A){if("throw"===r)throw o;return{value:t,done:!0}}for(a.method=r,a.arg=o;;){var s=a.delegate;if(s){var c=F(s,a);if(c){if(c===m)continue;return c}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===d)throw i=A,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=y;var g=u(e,n,a);if("normal"===g.type){if(i=a.done?A:I,g.arg===m)continue;return{value:g.arg,done:a.done}}"throw"===g.type&&(i=A,a.method="throw",a.arg=g.arg)}}}function F(e,n){var a=n.method,i=e.iterator[a];if(i===t)return n.delegate=null,"throw"===a&&e.iterator.return&&(n.method="return",n.arg=t,F(e,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),m;var r=u(i,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,m;var o=r.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function w(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function B(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function X(e){if(e||""===e){var n=e[o];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,r=function n(){for(;++i<e.length;)if(a.call(e,i))return n.value=e[i],n.done=!1,n;return n.value=t,n.done=!0,n};return r.next=r}}throw new TypeError(C(e)+" is not iterable")}return b.prototype=p,i(Y,"constructor",{value:p,configurable:!0}),i(p,"constructor",{value:b,configurable:!0}),b.displayName=g(p,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===b||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,g(t,c,"GeneratorFunction")),t.prototype=Object.create(Y),t},e.awrap=function(t){return{__await:t}},N(Z.prototype),g(Z.prototype,s,(function(){return this})),e.AsyncIterator=Z,e.async=function(t,n,a,i,r){void 0===r&&(r=Promise);var o=new Z(l(t,n,a,i),r);return e.isGeneratorFunction(n)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},N(Y),g(Y,c,"Generator"),g(Y,o,(function(){return this})),g(Y,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),n=[];for(var a in e)n.push(a);return n.reverse(),function t(){for(;n.length;){var a=n.pop();if(a in e)return t.value=a,t.done=!1,t}return t.done=!0,t}},e.values=X,B.prototype={constructor:B,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(w),!e)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function i(a,i){return s.type="throw",s.arg=e,n.next=a,i&&(n.method="next",n.arg=t),!!i}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var c=a.call(o,"catchLoc"),g=a.call(o,"finallyLoc");if(c&&g){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!g)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var r=i;break}}r&&("break"===t||"continue"===t)&&r.tryLoc<=e&&e<=r.finallyLoc&&(r=null);var o=r?r.completion:{};return o.type=t,o.arg=e,r?(this.method="next",this.next=r.finallyLoc,m):this.complete(o)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),m},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),w(n),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var i=a.arg;w(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,a){return this.delegate={iterator:X(e),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=t),m}},e}function y(t,e,n,a,i,r,o){try{var s=t[r](o),c=s.value}catch(t){return void n(t)}s.done?e(c):Promise.resolve(c).then(a,i)}function A(t){return function(){var e=this,n=arguments;return new Promise((function(a,i){var r=t.apply(e,n);function o(t){y(r,a,i,o,s,"next",t)}function s(t){y(r,a,i,o,s,"throw",t)}o(void 0)}))}}function m(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,v(a.key),a)}}function v(t){var e=function(t){if("object"!=C(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=C(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==C(e)?e:e+""}function b(t,e,n){p(t,e),e.set(t,n)}function p(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}function f(t,e){return t.get(G(t,e))}function W(t,e,n){return t.set(G(t,e),n),n}function G(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}var Y=new WeakMap,N=new WeakMap,Z=new WeakMap,x=new WeakMap,F=new WeakMap,L=new WeakMap,w=new WeakMap,B=new WeakMap,X=new WeakMap,R=new WeakMap,k=new WeakSet,z=function(){return t=function t(e,n){var a;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),p(this,a=k),a.add(this),b(this,Y,void 0),b(this,N,void 0),b(this,Z,void 0),b(this,x,void 0),b(this,F,void 0),b(this,L,void 0),b(this,w,void 0),b(this,B,void 0),b(this,X,void 0),b(this,R,void 0),W(Y,this,e),W(N,this,n.disableUi),W(Z,this,n.disableToast),W(x,this,n.logo),W(F,this,n.minimizeUILocation),W(L,this,n.toastLocation),W(w,this,null),W(B,this,n.marketplaceType||"NFT"),W(X,this,null),W(R,this,null)},e=[{key:"initUI",value:function(t){if(!f(N,this)){var e=document.getElementById("algox-sdk-container");e&&e.remove();var n=document.createElement("div");n.id="algox-sdk-container",n.style.display=f(Y,this).isMinimized?"none":"flex";var a='\n <div id="algox-header">\n <div class="header-left">\n '.concat(f(x,this)?'<img src="'.concat(f(x,this),'" alt="AlgoMintX" onerror="this.style.display=\'none\'; this.nextElementSibling.style.display=\'block\';" />'):"",'\n <h3 style="').concat(f(x,this)?"display: none;":"display: block;",'">AlgoMintX</h3>\n </div>\n <div class="header-right">\n <button id="algox-theme-btn" title="Toggle Theme">🌓</button>\n <button id="algox-logout-btn" title="Logout" style="display: none;">⏻</button>\n <button id="algox-minimize-btn" title="Minimize">–</button>\n </div>\n </div>\n \n <div id="algox-wallet-choice">\n <button class="algox-wallet-btn" data-wallet="pera">\n <img src="https://perawallet.s3.amazonaws.com/images/media-kit/logomark-white.svg" alt="Pera Wallet" />\n Connect Pera Wallet\n </button>\n <button class="algox-wallet-btn" data-wallet="defly">\n <img src="https://docs.defly.app/~gitbook/image?url=https%3A%2F%2F2700986753-files.gitbook.io%2F~%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fcollections%252FWDbwYIFtoiPa3JoJufCw%252Ficon%252FbQUUOW6VhH6vKR0XH7UB%252Flogo-notext-whiteonblack.png%3Falt%3Dmedia%26token%3D7d62c65b-fd29-47b6-a83b-162caac2fc8f&width=32&dpr=2&quality=100&sign=952138fe&sv=2" alt="Defly Wallet" />\n Connect Defly Wallet\n </button>\n </div>'),i="NFT"===f(B,this),r="FT"===f(B,this),o='\n <div id="algox-mintx-content">\n <div class="algox-tabs-container">\n <button class="algox-tab-nav-btn" id="algox-tab-prev">‹</button>\n <div class="algox-tabs-wrapper">\n <div class="algox-tabs-track">\n '.concat(i?'<button class="algox-tab-btn active" data-tab="nft">Mint NFT</button>':"","\n ").concat(r?'<button class="algox-tab-btn'.concat(i?"":" active",'" data-tab="ft">Mint FT</button>'):"",'\n </div>\n </div>\n <button class="algox-tab-nav-btn" id="algox-tab-next">›</button>\n </div>\n\n <div class="algox-tab-content">\n ').concat(i?'<div id="algox-nft-tab" class="algox-tab-pane active">\n <div id="algox-mintx-nft-form">\n <input type="text" id="algox-mintx-nft-name" placeholder="NFT Name" />\n <textarea id="algox-mintx-nft-description" placeholder="NFT Description"></textarea>\n <input type="file" id="algox-mintx-nft-file" accept="image/*,video/*" />\n <button id="algox-mintx-mint-btn" title="Mint NFT">Mint NFT</button>\n <button id="algox-mintx-reset-btn">Mint another NFT</button>\n <div id="algox-mintx-messages" title="Click to copy"></div>\n </div>\n </div>':"","\n ").concat(r?'<div id="algox-ft-tab" class="algox-tab-pane'.concat(i?"":" active",'">\n <div id="algox-mintx-ft-content">\n <input type="text" id="algox-mintx-ft-name" placeholder="Token Name" />\n <textarea id="algox-mintx-ft-description" placeholder="Token Description"></textarea>\n <input type="number" id="algox-mintx-ft-decimals" placeholder="Decimals (0 - 19)" min="0" max="19" step="1" />\n <input type="number" id="algox-mintx-ft-supply" placeholder="Total Supply" min="1" step="1" />\n <label class="algox-mintx-ft-file-label" for="algox-mintx-ft-file">Token Icon (optional)</label>\n <input type="file" id="algox-mintx-ft-file" accept="image/*" />\n <button id="algox-mintx-ft-mint-btn" title="Mint FT">Mint FT</button>\n <button id="algox-mintx-ft-reset-btn">Mint another FT</button>\n <div id="algox-mintx-ft-messages" title="Click to copy"></div>\n </div>\n </div>'):"","\n </div>\n </div>"),s=f(x,this)?"":'\n <div id="algox-footer">\n <span>AlgoMintX crafted with ❤️ by <a href="https://ibhagyesh.com/" target="_blank" rel="noopener noreferrer">ibhagyesh</a></span>\n </div>',c='\n <div id="algox-wallet-address" title="Click to copy connected wallet address"></div>\n '.concat(s,'\n\n <div id="algox-loading-overlay">\n <div id="algox-loader"></div>\n <div id="algox-processing-message"></div>\n </div>');n.innerHTML=a+o+c,document.body.appendChild(n);var g=document.getElementById("algox-minimized-btn");g&&g.remove();var l=document.createElement("button");l.id="algox-minimized-btn",l.innerHTML=f(x,this)?'<img src="'.concat(f(x,this),'" alt="AMX" onerror="this.style.display=\'none\'; this.nextElementSibling.style.display=\'block\';" /><span style="display: none;">AMX</span>'):"AMX",document.body.appendChild(l),this.applyTheme(),this.setupThemeListener(),G(k,this,M).call(this,t),G(k,this,V).call(this,t),this.setupToastContainer()}}},{key:"showSDKUI",value:function(){f(N,this)||(f(Y,this)&&f(Y,this).account?(document.getElementById("algox-sdk-container").style.display="flex",document.getElementById("algox-header").style.display="flex",document.getElementById("algox-logout-btn").style.display="contents",document.getElementById("algox-wallet-choice").style.display="none",document.getElementById("algox-mintx-content").style.display="flex",this.updateWalletAddressBar(),f(Y,this).isMinimized?this.minimizeSDK(!0):this.maximizeSDK(!0)):this.resetToLoginUI())}},{key:"resetToLoginUI",value:function(){f(N,this)||(this.clearMessage(),this.clearFTMessage(),this.updateWalletAddressBar(),document.getElementById("algox-sdk-container").style.display="flex",document.getElementById("algox-header").style.display="flex",document.getElementById("algox-logout-btn").style.display="none",document.getElementById("algox-wallet-choice").style.display="flex",document.getElementById("algox-mintx-content").style.display="none",f(Y,this).isMinimized?this.minimizeSDK(!0):this.maximizeSDK(!0))}},{key:"updateWalletAddressBar",value:function(){if(!f(N,this)){var t=document.getElementById("algox-wallet-address");t&&(f(Y,this).account?(t.innerText=f(Y,this).account,t.style.display="block"):(t.innerText="",t.style.display="none"))}}},{key:"setupToastContainer",value:function(){if(!f(Z,this)&&!f(N,this)){var t=document.getElementById("algox-toast-container");t||((t=document.createElement("div")).id="algox-toast-container",t.className="TOP_LEFT"===f(L,this)?"top-left":"top-right",document.body.appendChild(t))}}},{key:"showToast",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info";if(s.emit("toast:show",{message:t,type:e}),!f(Z,this)&&!f(N,this)){var n="algox-toast",a=document.getElementById(n);a&&a.remove();var i=document.createElement("div");i.id=n;var r=document.createElement("div");r.className="toast-content",r.innerText=t;var o=document.createElement("button");o.className="toast-close",o.innerHTML="×",o.onclick=function(){i.style.opacity="0",i.addEventListener("transitionend",(function(){return i.remove()}),{once:!0})},i.appendChild(r),i.appendChild(o),i.classList.add("error"===e?"error":"success"===e?"success":"warning"===e?"warning":"info"),i.classList.add(f(L,this).toLowerCase().replace("_","-")),document.body.appendChild(i),requestAnimationFrame((function(){i.style.opacity="1"})),setTimeout((function(){return o.onclick()}),3500)}}},{key:"showLoadingOverlay",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Processing...";if(!f(N,this)){var e=document.getElementById("algox-loading-overlay"),n=document.getElementById("algox-minimized-btn"),a=document.getElementById("algox-processing-message");e&&a&&(a.textContent=t,W(w,this,t),"dark"===f(Y,this).theme?e.classList.add("dark-theme"):e.classList.remove("dark-theme"),requestAnimationFrame((function(){e.classList.add("visible"),n&&n.classList.add("processing")})))}}},{key:"hideLoadingOverlay",value:function(){if(!f(N,this)){var t=document.getElementById("algox-loading-overlay"),e=document.getElementById("algox-minimized-btn");t?requestAnimationFrame((function(){t.classList.remove("visible"),e&&e.classList.remove("processing")})):e&&e.classList.remove("processing")}}},{key:"updateLoadingMessage",value:function(t){if(!f(N,this)){var e=document.getElementById("algox-processing-message");e&&(e.textContent=t,W(w,this,t))}}},{key:"getSystemTheme",value:function(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}},{key:"setupThemeListener",value:function(){var t=this;f(N,this)||window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",(function(e){var n=localStorage.getItem("amx");if(n)try{JSON.parse(n).theme||(f(Y,t).theme=e.matches?"dark":"light",t.saveUIState(),t.applyTheme())}catch(t){console.error("Failed to parse saved state:",t)}}))}},{key:"applyTheme",value:function(){if(!f(N,this)){var t=document.getElementById("algox-sdk-container"),e=document.getElementById("algox-minimized-btn");t&&("dark"===f(Y,this).theme?(t.classList.add("dark-theme"),e&&e.classList.add("dark-theme")):(t.classList.remove("dark-theme"),e&&e.classList.remove("dark-theme")))}}},{key:"saveUIState",value:function(){f(N,this)||localStorage.setItem("axs",JSON.stringify({minimized:f(Y,this).isMinimized,theme:f(Y,this).theme}))}},{key:"minimizeSDK",value:function(t){if(!f(N,this)&&(t||!f(Y,this).isMinimized)){var e=document.getElementById("algox-sdk-container"),n=document.getElementById("algox-minimized-btn");e&&n&&(n.style.right="right"===f(F,this)?"20px":"auto",n.style.left="left"===f(F,this)?"20px":"auto",e.classList.add("minimizing"),n.style.display="block",setTimeout((function(){e.style.display="none",e.classList.remove("minimizing"),n.classList.add("showing")}),300),f(Y,this).isMinimized=!0,this.saveUIState(),s.emit("window:size:minimized",{minimized:f(Y,this).isMinimized}))}}},{key:"maximizeSDK",value:function(t){if(!f(N,this)&&(t||f(Y,this).isMinimized)){var e=document.getElementById("algox-sdk-container"),n=document.getElementById("algox-minimized-btn");e&&n&&(n.classList.remove("showing"),n.classList.add("hiding"),setTimeout((function(){n.style.display="none",n.classList.remove("hiding"),e.style.display="flex",e.classList.add("maximizing"),setTimeout((function(){e.classList.remove("maximizing")}),300)}),200),f(Y,this).isMinimized=!1,this.saveUIState(),s.emit("window:size:maximized",{minimized:f(Y,this).isMinimized}))}}},{key:"setupNFTInputValidation",value:function(t){var e=this;if(!f(N,this)){var n=document.getElementById("algox-mintx-nft-name"),a=document.getElementById("algox-mintx-nft-description"),i=document.getElementById("algox-mintx-nft-file"),r={IMAGE:"image/jpeg,image/png,image/gif,image/webp,image/svg+xml",VIDEO:"video/mp4,video/webm,video/ogg,video/quicktime",AUDIO:"audio/mpeg,audio/wav,audio/ogg,audio/mp4,audio/webm"},o=t.getSupportedMediaFormats().map((function(t){return r[t]})).join(",");i.setAttribute("accept",o),n.addEventListener("input",(function(n){if(n.target.value.length>50)return n.target.value=n.target.value.slice(0,50),void e.showToast("NFT name cannot exceed 50 characters","error");if(n.target.value.includes("<")||n.target.value.includes(">")){var a=t.sanitizeInput(n.target.value);a!==n.target.value&&(n.target.value=a)}e.validateMintButton()})),a.addEventListener("input",(function(n){if(n.target.value.length>500)return n.target.value=n.target.value.slice(0,500),void e.showToast("NFT description cannot exceed 500 characters","error");if(n.target.value.includes("<")||n.target.value.includes(">")){var a=t.sanitizeInput(n.target.value);a!==n.target.value&&(n.target.value=a)}e.validateMintButton()})),i.addEventListener("change",(function(n){var a=n.target.files[0];if(a){var i=t.validateFileType(a);i.valid||(e.showToast(i.message,"error"),n.target.value=""),e.validateMintButton()}else e.validateMintButton()})),n.addEventListener("paste",(function(n){n.preventDefault();var a=(n.clipboardData||window.clipboardData).getData("text"),i=a.slice(0,50),r=t.sanitizeInput(i);n.target.value=r,a.length>50&&e.showToast("NFT name cannot exceed 50 characters","error"),e.validateMintButton()})),a.addEventListener("paste",(function(n){n.preventDefault();var a=(n.clipboardData||window.clipboardData).getData("text"),i=a.slice(0,500),r=t.sanitizeInput(i);n.target.value=r,a.length>500&&e.showToast("NFT description cannot exceed 500 characters","error"),e.validateMintButton()})),this.validateMintButton()}}},{key:"validateMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-mint-btn"),e=document.getElementById("algox-mintx-nft-name"),n=document.getElementById("algox-mintx-nft-description"),a=document.getElementById("algox-mintx-nft-file"),i=e.value.trim().length>0,r=n.value.trim().length>0,o=a.files.length>0;t.disabled=!(i&&r&&o)}}},{key:"clearMessage",value:function(){f(N,this)||f(X,this)&&(f(X,this).innerText="",f(X,this).style.display="none",f(X,this).style.cursor="pointer")}},{key:"resetNFTDetails",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-nft-name"),e=document.getElementById("algox-mintx-nft-description"),n=document.getElementById("algox-mintx-nft-file"),a=document.getElementById("algox-mintx-mint-btn"),i=document.getElementById("algox-mintx-reset-btn");t.value="",e.value="",n.value="",a.style.display="block",i.style.display="none",a.disabled=!0,this.clearMessage(),this.validateMintButton()}}},{key:"updateMessage",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pointer";f(N,this)||f(X,this)&&(f(X,this).innerText=t,f(X,this).style.display="block",f(X,this).style.cursor=e)}},{key:"disableMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-mint-btn"),e=document.getElementById("algox-logout-btn");t&&(t.disabled=!0),e&&(e.disabled=!0)}}},{key:"enableMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-mint-btn"),e=document.getElementById("algox-logout-btn");t&&(t.disabled=!1),e&&(e.disabled=!1)}}},{key:"showResetButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-mint-btn"),e=document.getElementById("algox-mintx-reset-btn");t&&(t.style.display="none"),e&&(e.style.display="block")}}},{key:"setupFTInputValidation",value:function(t){var e=this;if(!f(N,this)){var n=document.getElementById("algox-mintx-ft-name"),a=document.getElementById("algox-mintx-ft-description"),i=document.getElementById("algox-mintx-ft-decimals"),r=document.getElementById("algox-mintx-ft-supply"),o=document.getElementById("algox-mintx-ft-file");n.addEventListener("input",(function(n){if(n.target.value.length>50)return n.target.value=n.target.value.slice(0,50),void e.showToast("Token name cannot exceed 50 characters","error");if(n.target.value.includes("<")||n.target.value.includes(">")){var a=t.sanitizeInput(n.target.value);a!==n.target.value&&(n.target.value=a)}e.validateFTMintButton()})),a.addEventListener("input",(function(n){if(n.target.value.length>500)return n.target.value=n.target.value.slice(0,500),void e.showToast("Token description cannot exceed 500 characters","error");if(n.target.value.includes("<")||n.target.value.includes(">")){var a=t.sanitizeInput(n.target.value);a!==n.target.value&&(n.target.value=a)}e.validateFTMintButton()})),i.addEventListener("input",(function(t){var n=t.target.value.replace(/[^0-9]/g,"");""!==n&&Number(n)>19&&(n="19",e.showToast("Decimals cannot exceed 19","error")),t.target.value=n,e.validateFTMintButton()})),r.addEventListener("input",(function(t){var n=t.target.value.replace(/[^0-9]/g,"");t.target.value=n,e.validateFTMintButton()})),o.addEventListener("change",(function(n){var a=n.target.files[0];if(a){var i=t.validateFileType(a);i.valid||(e.showToast(i.message,"error"),n.target.value="")}e.validateFTMintButton()})),n.addEventListener("paste",(function(n){n.preventDefault();var a=(n.clipboardData||window.clipboardData).getData("text"),i=a.slice(0,50);n.target.value=t.sanitizeInput(i),a.length>50&&e.showToast("Token name cannot exceed 50 characters","error"),e.validateFTMintButton()})),a.addEventListener("paste",(function(n){n.preventDefault();var a=(n.clipboardData||window.clipboardData).getData("text"),i=a.slice(0,500);n.target.value=t.sanitizeInput(i),a.length>500&&e.showToast("Token description cannot exceed 500 characters","error"),e.validateFTMintButton()})),this.validateFTMintButton()}}},{key:"validateFTMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-ft-mint-btn"),e=document.getElementById("algox-mintx-ft-name"),n=document.getElementById("algox-mintx-ft-description"),a=document.getElementById("algox-mintx-ft-decimals"),i=document.getElementById("algox-mintx-ft-supply"),r=e.value.trim().length>0,o=n.value.trim().length>0,s=Number(a.value),c=""!==a.value&&Number.isInteger(s)&&s>=0&&s<=19,g=Number(i.value),l=""!==i.value&&Number.isInteger(g)&&g>=1;t.disabled=!(r&&o&&c&&l)}}},{key:"resetFTDetails",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-ft-name"),e=document.getElementById("algox-mintx-ft-description"),n=document.getElementById("algox-mintx-ft-decimals"),a=document.getElementById("algox-mintx-ft-supply"),i=document.getElementById("algox-mintx-ft-file"),r=document.getElementById("algox-mintx-ft-mint-btn"),o=document.getElementById("algox-mintx-ft-reset-btn");t.value="",e.value="",n.value="",a.value="",i.value="",r.style.display="block",o.style.display="none",r.disabled=!0,this.clearFTMessage(),this.validateFTMintButton()}}},{key:"clearFTMessage",value:function(){f(N,this)||f(R,this)&&(f(R,this).innerText="",f(R,this).style.display="none",f(R,this).style.cursor="pointer")}},{key:"updateFTMessage",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"pointer";f(N,this)||f(R,this)&&(f(R,this).innerText=t,f(R,this).style.display="block",f(R,this).style.cursor=e)}},{key:"disableFTMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-ft-mint-btn"),e=document.getElementById("algox-logout-btn");t&&(t.disabled=!0),e&&(e.disabled=!0)}}},{key:"enableFTMintButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-ft-mint-btn"),e=document.getElementById("algox-logout-btn");t&&(t.disabled=!1),e&&(e.disabled=!1)}}},{key:"showFTResetButton",value:function(){if(!f(N,this)){var t=document.getElementById("algox-mintx-ft-mint-btn"),e=document.getElementById("algox-mintx-ft-reset-btn");t&&(t.style.display="none"),e&&(e.style.display="block")}}}],e&&m(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function M(t){var e=this,n=document.getElementById("algox-wallet-choice");n&&n.addEventListener("click",function(){var e=A(h().mark((function e(n){var a,i,r,o;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r=null===(a=(i=n.target).closest)||void 0===a?void 0:a.call(i,".algox-wallet-btn"))){e.next=5;break}return o=r.getAttribute("data-wallet"),e.next=5,t.onWalletConnect(o);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());var a=document.getElementById("algox-minimized-btn");a&&a.addEventListener("click",(function(){return t.onMaximize()}));var i=document.getElementById("algox-minimize-btn");i&&i.addEventListener("click",(function(){return t.onMinimize()}));var r=document.getElementById("algox-logout-btn");r&&r.addEventListener("click",(function(){return t.onLogout()}));var o=document.getElementById("algox-theme-btn");o&&o.addEventListener("click",(function(){t.onThemeToggle()}));var s=document.getElementById("algox-wallet-address");s&&s.addEventListener("click",(function(){f(Y,e).account&&(navigator.clipboard.writeText(f(Y,e).account),e.showToast("Wallet address copied to clipboard","success"))}))}function H(t){var e=document.getElementById("algox-sdk-container"),n=null==e?void 0:e.querySelector(".algox-tabs-container"),a=null==e?void 0:e.querySelector(".algox-tab-content"),i=null==e?void 0:e.querySelector(".algox-tabs-track"),r=null==e?void 0:e.querySelectorAll(".algox-tab-btn"),o=null==e?void 0:e.querySelector("#algox-tab-prev"),s=null==e?void 0:e.querySelector("#algox-tab-next");if(i&&r&&0!==r.length){if(r.length<=1)return n&&(n.style.display="none"),void(a&&(a.style.display="contents"));var c=0,g=r.length;g<=2&&(o&&(o.style.display="none"),s&&(s.style.display="none"));var l=function(){!o||!s||g<=2||(o.disabled=0===c,s.disabled=c>=g-2)},u=function(t){"prev"===t&&c>0?c--:"next"===t&&c<g-2&&c++;var e=-50*c;i.style.transform="translateX(".concat(e,"%)"),l()};r.forEach((function(t){t.addEventListener("click",(function(){var n=t.getAttribute("data-tab");r.forEach((function(t){return t.classList.remove("active")})),t.classList.add("active"),e.querySelectorAll(".algox-tab-pane").forEach((function(t){return t.classList.remove("active")}));var a=e.querySelector("#algox-".concat(n,"-tab"));a&&a.classList.add("active")}))})),null==o||o.addEventListener("click",(function(){return u("prev")})),null==s||s.addEventListener("click",(function(){return u("next")})),l()}}function V(t){var e=this;G(k,this,H).call(this,t),document.getElementById("algox-mintx-mint-btn").addEventListener("click",A(h().mark((function e(){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.onMintNFT();case 2:case"end":return e.stop()}}),e)})))),document.getElementById("algox-mintx-reset-btn").addEventListener("click",(function(){return t.onResetNFT()})),document.getElementById("algox-mintx-ft-mint-btn").addEventListener("click",A(h().mark((function e(){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.onMintFT();case 2:case"end":return e.stop()}}),e)})))),document.getElementById("algox-mintx-ft-reset-btn").addEventListener("click",(function(){return t.onResetFT()})),W(X,this,document.getElementById("algox-mintx-messages")),f(X,this)&&f(X,this).addEventListener("click",(function(){if(f(X,e).innerText&&"Minting NFT... Please wait."!==f(X,e).innerText){var t=f(X,e).innerText.replace("NFT Minted! Transaction ID: ","");navigator.clipboard.writeText(t),e.showToast("Transaction ID copied to clipboard","success");var n="mainnet"===f(Y,e).network?"mainnet":"testnet",a="https://lora.algokit.io/".concat(n,"/transaction/").concat(t);window.open(a,"_blank")}})),W(R,this,document.getElementById("algox-mintx-ft-messages")),f(R,this)&&f(R,this).addEventListener("click",(function(){if(f(R,e).innerText&&"Minting FT... Please wait."!==f(R,e).innerText){var t=f(R,e).innerText.replace("FT Minted! Transaction ID: ","");navigator.clipboard.writeText(t),e.showToast("Transaction ID copied to clipboard","success");var n="mainnet"===f(Y,e).network?"mainnet":"testnet",a="https://lora.algokit.io/".concat(n,"/transaction/").concat(t);window.open(a,"_blank")}}))}function T(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=Array(e);n<e;n++)a[n]=t[n];return a}function j(){return"undefined"!=typeof globalThis&&void 0!==globalThis.window&&void 0!==globalThis.document}var J=new Map;function K(){return j()&&"undefined"!=typeof localStorage?localStorage:{getItem:function(t){return J.has(t)?J.get(t):null},setItem:function(t,e){J.set(t,String(e))},removeItem:function(t){J.delete(t)}}}function Q(t){return Q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Q(t)}function E(){E=function(){return e};var t,e={},n=Object.prototype,a=n.hasOwnProperty,i=Object.defineProperty||function(t,e,n){t[e]=n.value},r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function g(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{g({},"")}catch(t){g=function(t,e,n){return t[e]=n}}function l(t,e,n,a){var r=e&&e.prototype instanceof A?e:A,o=Object.create(r.prototype),s=new L(a||[]);return i(o,"_invoke",{value:N(t,n,s)}),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",I="suspendedYield",C="executing",h="completed",y={};function A(){}function m(){}function v(){}var b={};g(b,o,(function(){return this}));var p=Object.getPrototypeOf,f=p&&p(p(w([])));f&&f!==n&&a.call(f,o)&&(b=f);var W=v.prototype=A.prototype=Object.create(b);function G(t){["next","throw","return"].forEach((function(e){g(t,e,(function(t){return this._invoke(e,t)}))}))}function Y(t,e){function n(i,r,o,s){var c=u(t[i],t,r);if("throw"!==c.type){var g=c.arg,l=g.value;return l&&"object"==Q(l)&&a.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,o,s)}),(function(t){n("throw",t,o,s)})):e.resolve(l).then((function(t){g.value=t,o(g)}),(function(t){return n("throw",t,o,s)}))}s(c.arg)}var r;i(this,"_invoke",{value:function(t,a){function i(){return new e((function(e,i){n(t,a,e,i)}))}return r=r?r.then(i,i):i()}})}function N(e,n,a){var i=d;return function(r,o){if(i===C)throw Error("Generator is already running");if(i===h){if("throw"===r)throw o;return{value:t,done:!0}}for(a.method=r,a.arg=o;;){var s=a.delegate;if(s){var c=Z(s,a);if(c){if(c===y)continue;return c}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===d)throw i=h,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=C;var g=u(e,n,a);if("normal"===g.type){if(i=a.done?h:I,g.arg===y)continue;return{value:g.arg,done:a.done}}"throw"===g.type&&(i=h,a.method="throw",a.arg=g.arg)}}}function Z(e,n){var a=n.method,i=e.iterator[a];if(i===t)return n.delegate=null,"throw"===a&&e.iterator.return&&(n.method="return",n.arg=t,Z(e,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),y;var r=u(i,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,y;var o=r.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,y):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function F(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function w(e){if(e||""===e){var n=e[o];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,r=function n(){for(;++i<e.length;)if(a.call(e,i))return n.value=e[i],n.done=!1,n;return n.value=t,n.done=!0,n};return r.next=r}}throw new TypeError(Q(e)+" is not iterable")}return m.prototype=v,i(W,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:m,configurable:!0}),m.displayName=g(v,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===m||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,g(t,c,"GeneratorFunction")),t.prototype=Object.create(W),t},e.awrap=function(t){return{__await:t}},G(Y.prototype),g(Y.prototype,s,(function(){return this})),e.AsyncIterator=Y,e.async=function(t,n,a,i,r){void 0===r&&(r=Promise);var o=new Y(l(t,n,a,i),r);return e.isGeneratorFunction(n)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},G(W),g(W,c,"Generator"),g(W,o,(function(){return this})),g(W,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),n=[];for(var a in e)n.push(a);return n.reverse(),function t(){for(;n.length;){var a=n.pop();if(a in e)return t.value=a,t.done=!1,t}return t.done=!0,t}},e.values=w,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(F),!e)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function i(a,i){return s.type="throw",s.arg=e,n.next=a,i&&(n.method="next",n.arg=t),!!i}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var c=a.call(o,"catchLoc"),g=a.call(o,"finallyLoc");if(c&&g){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!g)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var r=i;break}}r&&("break"===t||"continue"===t)&&r.tryLoc<=e&&e<=r.finallyLoc&&(r=null);var o=r?r.completion:{};return o.type=t,o.arg=e,r?(this.method="next",this.next=r.finallyLoc,y):this.complete(o)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),F(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var i=a.arg;F(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,a){return this.delegate={iterator:w(e),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=t),y}},e}function S(t,e,n,a,i,r,o){try{var s=t[r](o),c=s.value}catch(t){return void n(t)}s.done?e(c):Promise.resolve(c).then(a,i)}function D(t){return function(){var e=this,n=arguments;return new Promise((function(a,i){var r=t.apply(e,n);function o(t){S(r,a,i,o,s,"next",t)}function s(t){S(r,a,i,o,s,"throw",t)}o(void 0)}))}}function O(t){if(!t)throw new Error("File is required.");if("undefined"!=typeof Blob&&t instanceof Blob)return t;if(null!=t.data&&t.name){var e=t.data instanceof Uint8Array?t.data:Buffer.from(t.data);return new Blob([e],{type:t.type||t.mimetype||"application/octet-stream"})}throw new Error("Invalid file input. Provide a File/Blob in the browser or { data, name, type } in Node.js.")}function P(t){return U.apply(this,arguments)}function U(){return(U=D(E().mark((function t(e){var n;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("function"!=typeof(n=O(e)).arrayBuffer){t.next=3;break}return t.abrupt("return",n.arrayBuffer());case 3:throw new Error("Unable to read file buffer.");case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function _(t){return q.apply(this,arguments)}function q(){return q=D(E().mark((function t(e){var n,a,i;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=new TextEncoder,a=n.encode(e),t.next=4,crypto.subtle.digest("SHA-256",a);case 4:return i=t.sent,t.abrupt("return",new Uint8Array(i));case 6:case"end":return t.stop()}}),t)}))),q.apply(this,arguments)}function $(t){return tt.apply(this,arguments)}function tt(){return(tt=D(E().mark((function t(e){var n,a,i;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,P(e);case 2:return n=t.sent,t.next=5,crypto.subtle.digest("SHA-256",n);case 5:return a=t.sent,i=Array.from(new Uint8Array(a)),t.abrupt("return","sha256-".concat((o=i,"undefined"!=typeof btoa?btoa(String.fromCharCode.apply(String,function(t){if(Array.isArray(t))return T(t)}(r=o)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||function(t,e){if(t){if("string"==typeof t)return T(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?T(t,e):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())):Buffer.from(o).toString("base64"))));case 8:case"end":return t.stop()}var r,o}),t)})))).apply(this,arguments)}function et(t,e){return nt.apply(this,arguments)}function nt(){return(nt=D(E().mark((function t(e,n){var a,i,r,o,s;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=O(e),i=new FormData,j()&&"undefined"!=typeof File&&e instanceof File?i.append("file",e):(r=e.name||(a.type?"upload.".concat(a.type.split("/")[1]||"bin"):"upload.bin"),i.append("file",a,r)),t.next=6,fetch("https://api.pinata.cloud/pinning/pinFileToIPFS",{method:"POST",headers:{Authorization:"Bearer ".concat(n)},body:i});case 6:if((o=t.sent).ok){t.next=9;break}throw new Error("Failed to upload file to IPFS: ".concat(o.status," ").concat(o.statusText));case 9:return t.next=11,o.json();case 11:if((s=t.sent).IpfsHash){t.next=14;break}throw new Error("Pinata did not return an IPFS hash.");case 14:return t.abrupt("return",s.IpfsHash);case 15:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function at(t,e){return it.apply(this,arguments)}function it(){return(it=D(E().mark((function t(e,n){var a,i;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=3,fetch("https://api.pinata.cloud/pinning/pinJSONToIPFS",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(n)},body:JSON.stringify(e)});case 3:if((a=t.sent).ok){t.next=6;break}throw new Error("Failed to upload JSON to IPFS: ".concat(a.status," ").concat(a.statusText));case 6:return t.next=8,a.json();case 8:if((i=t.sent).IpfsHash){t.next=11;break}throw new Error("Pinata did not return an IPFS hash for metadata.");case 11:return t.abrupt("return",i.IpfsHash);case 12:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function rt(t,e){return ot.apply(this,arguments)}function ot(){return(ot=D(E().mark((function t(e,n){var a;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,fetch("https://api.pinata.cloud/pinning/unpin/".concat(e),{method:"DELETE",headers:{Authorization:"Bearer ".concat(n)}});case 3:if((a=t.sent).ok){t.next=6;break}throw new Error("Failed to delete from IPFS: ".concat(a.statusText));case 6:return t.abrupt("return",!0);case 9:throw t.prev=9,t.t0=t.catch(0),console.error("Error deleting from IPFS:",t.t0),t.t0;case 13:case"end":return t.stop()}}),t,null,[[0,9]])})))).apply(this,arguments)}function st(t){return Math.round(1e6*t)}function ct(t){var e=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:null)||"ipfs.io";return t.replace("ipfs://","https://".concat(e,"/ipfs/"))}function gt(t,e){var n=(new TextEncoder).encode("listing_"),a=(new TextEncoder).encode(t),i=(new TextEncoder).encode("_"),o=r().encodeUint64(BigInt(e)),s=n.length+2+a.length+2+i.length+o.length,c=new Uint8Array(s),g=0,l=new DataView(c.buffer);return c.set(n,g),g+=n.length,l.setUint16(g,a.length,!1),g+=2,c.set(a,g),g+=a.length,l.setUint16(g,i.length,!1),g+=2,c.set(i,g),g+=i.length,c.set(o,g),c}function lt(t,e,n){return{appIndex:t,name:gt(e,n)}}function ut(t){try{var e="string"==typeof t?Uint8Array.from(atob(t),(function(t){return t.charCodeAt(0)})):t,n=0;if("listing_"!==(new TextDecoder).decode(e.slice(0,8)))return null;n+=8;var a=new DataView(e.buffer,e.byteOffset,e.byteLength),i=a.getUint16(n,!1);n+=2;var o=(new TextDecoder).decode(e.slice(n,n+i));n+=i;var s=a.getUint16(n,!1);n+=2;var c=(new TextDecoder).decode(e.slice(n,n+s));if(n+=s,"_"!==c)return null;var g=Number(r().decodeUint64(e.slice(n,n+8),"safe"));return{marketplace:o,assetId:String(g)}}catch(t){return console.warn("Failed to decode listing box name",t),null}}function dt(t){return dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dt(t)}function It(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function Ct(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?It(Object(n),!0).forEach((function(e){ht(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):It(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function ht(t,e,n){return(e=Wt(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function yt(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=At(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var a=0,i=function(){};return{s:i,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,o=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return o=t.done,t},e:function(t){s=!0,r=t},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}function At(t,e){if(t){if("string"==typeof t)return mt(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mt(t,e):void 0}}function mt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=Array(e);n<e;n++)a[n]=t[n];return a}function vt(){vt=function(){return e};var t,e={},n=Object.prototype,a=n.hasOwnProperty,i=Object.defineProperty||function(t,e,n){t[e]=n.value},r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function g(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{g({},"")}catch(t){g=function(t,e,n){return t[e]=n}}function l(t,e,n,a){var r=e&&e.prototype instanceof A?e:A,o=Object.create(r.prototype),s=new L(a||[]);return i(o,"_invoke",{value:N(t,n,s)}),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",I="suspendedYield",C="executing",h="completed",y={};function A(){}function m(){}function v(){}var b={};g(b,o,(function(){return this}));var p=Object.getPrototypeOf,f=p&&p(p(w([])));f&&f!==n&&a.call(f,o)&&(b=f);var W=v.prototype=A.prototype=Object.create(b);function G(t){["next","throw","return"].forEach((function(e){g(t,e,(function(t){return this._invoke(e,t)}))}))}function Y(t,e){function n(i,r,o,s){var c=u(t[i],t,r);if("throw"!==c.type){var g=c.arg,l=g.value;return l&&"object"==dt(l)&&a.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,o,s)}),(function(t){n("throw",t,o,s)})):e.resolve(l).then((function(t){g.value=t,o(g)}),(function(t){return n("throw",t,o,s)}))}s(c.arg)}var r;i(this,"_invoke",{value:function(t,a){function i(){return new e((function(e,i){n(t,a,e,i)}))}return r=r?r.then(i,i):i()}})}function N(e,n,a){var i=d;return function(r,o){if(i===C)throw Error("Generator is already running");if(i===h){if("throw"===r)throw o;return{value:t,done:!0}}for(a.method=r,a.arg=o;;){var s=a.delegate;if(s){var c=Z(s,a);if(c){if(c===y)continue;return c}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===d)throw i=h,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=C;var g=u(e,n,a);if("normal"===g.type){if(i=a.done?h:I,g.arg===y)continue;return{value:g.arg,done:a.done}}"throw"===g.type&&(i=h,a.method="throw",a.arg=g.arg)}}}function Z(e,n){var a=n.method,i=e.iterator[a];if(i===t)return n.delegate=null,"throw"===a&&e.iterator.return&&(n.method="return",n.arg=t,Z(e,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),y;var r=u(i,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,y;var o=r.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,y):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function F(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function w(e){if(e||""===e){var n=e[o];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,r=function n(){for(;++i<e.length;)if(a.call(e,i))return n.value=e[i],n.done=!1,n;return n.value=t,n.done=!0,n};return r.next=r}}throw new TypeError(dt(e)+" is not iterable")}return m.prototype=v,i(W,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:m,configurable:!0}),m.displayName=g(v,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===m||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,g(t,c,"GeneratorFunction")),t.prototype=Object.create(W),t},e.awrap=function(t){return{__await:t}},G(Y.prototype),g(Y.prototype,s,(function(){return this})),e.AsyncIterator=Y,e.async=function(t,n,a,i,r){void 0===r&&(r=Promise);var o=new Y(l(t,n,a,i),r);return e.isGeneratorFunction(n)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},G(W),g(W,c,"Generator"),g(W,o,(function(){return this})),g(W,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),n=[];for(var a in e)n.push(a);return n.reverse(),function t(){for(;n.length;){var a=n.pop();if(a in e)return t.value=a,t.done=!1,t}return t.done=!0,t}},e.values=w,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(F),!e)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function i(a,i){return s.type="throw",s.arg=e,n.next=a,i&&(n.method="next",n.arg=t),!!i}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var c=a.call(o,"catchLoc"),g=a.call(o,"finallyLoc");if(c&&g){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!g)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var r=i;break}}r&&("break"===t||"continue"===t)&&r.tryLoc<=e&&e<=r.finallyLoc&&(r=null);var o=r?r.completion:{};return o.type=t,o.arg=e,r?(this.method="next",this.next=r.finallyLoc,y):this.complete(o)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),F(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var i=a.arg;F(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,n,a){return this.delegate={iterator:w(e),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=t),y}},e}function bt(t,e,n,a,i,r,o){try{var s=t[r](o),c=s.value}catch(t){return void n(t)}s.done?e(c):Promise.resolve(c).then(a,i)}function pt(t){return function(){var e=this,n=arguments;return new Promise((function(a,i){var r=t.apply(e,n);function o(t){bt(r,a,i,o,s,"next",t)}function s(t){bt(r,a,i,o,s,"throw",t)}o(void 0)}))}}function ft(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,Wt(a.key),a)}}function Wt(t){var e=function(t){if("object"!=dt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=dt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==dt(e)?e:e+""}function Gt(t,e,n){Yt(t,e),e.set(t,n)}function Yt(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}function Nt(t,e){return t.get(xt(t,e))}function Zt(t,e,n){return t.set(xt(t,e),n),n}function xt(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}var Ft=n(698),Lt=new(r().ABIContract)({name:Ft.contract.name,methods:Ft.contract.methods}),wt=new WeakMap,Bt=new WeakMap,Xt=new WeakMap,Rt=new WeakMap,kt=new WeakMap,zt=new WeakMap,Mt=new WeakMap,Ht=new WeakMap,Vt=new WeakMap,Tt=new WeakMap,jt=new WeakMap,Jt=new WeakMap,Kt=new WeakMap,Qt=new WeakMap,Et=new WeakMap,St=new WeakMap,Dt=new WeakMap,Ot=new WeakMap,Pt=new WeakMap,Ut=new WeakMap,_t=new WeakMap,qt=new WeakMap,$t=new WeakMap,te=new WeakMap,ee=new WeakMap,ne=new WeakMap,ae=new WeakMap,ie=new WeakMap,re=new WeakMap,oe=new WeakMap,se=new WeakMap,ce=new WeakMap,ge=new WeakMap,le=new WeakMap,ue=new WeakMap,de=new WeakMap,Ie=new WeakMap,Ce=new WeakSet;function he(t){var e=K();e.removeItem("walletconnect"),e.removeItem("DeflyWallet.Wallet"),e.removeItem("PeraWallet.Wallet"),!Nt(Vt,this)&&j()?(alert(t),window.location.reload()):console.error("SDK validation failed:",t)}function ye(){return Ae.apply(this,arguments)}function Ae(){return(Ae=pt(vt().mark((function t(){var e,n,a,i;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(j()){t.next=2;break}return t.abrupt("return",null);case 2:if(Nt(wt,this)){t.next=10;break}return t.next=5,Promise.all([Promise.resolve().then((function(){var t=new Error("Cannot find module '@perawallet/connect'");throw t.code="MODULE_NOT_FOUND",t})),Promise.resolve().then((function(){var t=new Error("Cannot find module '@blockshake/defly-connect'");throw t.code="MODULE_NOT_FOUND",t}))]);case 5:e=t.sent,o=2,n=function(t){if(Array.isArray(t))return t}(r=e)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var a,i,r,o,s=[],c=!0,g=!1;try{if(r=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(s.push(a.value),s.length!==e);c=!0);}catch(t){g=!0,i=t}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(g)throw i}}return s}}(r,o)||At(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),a=n[0].PeraWalletConnect,i=n[1].DeflyWalletConnect,Zt(wt,this,{pera:new a,defly:new i});case 10:return t.abrupt("return",Nt(wt,this));case 11:case"end":return t.stop()}var r,o}),t,this)})))).apply(this,arguments)}function me(t){return ve.apply(this,arguments)}function ve(){return(ve=pt(vt().mark((function t(e){var n,a,i=this;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Nt(Et,this)){t.next=2;break}return t.abrupt("return",e.map((function(t){return t.signTxn(Nt(Et,i).sk)})));case 2:if(Nt(zt,this)){t.next=4;break}throw new Error("No signing method available. Connect with connectWallet(address, mnemonic) or a browser wallet.");case 4:return t.next=6,xt(Ce,this,ye).call(this);case 6:if(null!=(n=t.sent)&&n[Nt(zt,this)]){t.next=9;break}throw new Error("Browser wallet signing is unavailable in this environment.");case 9:return t.next=11,n[Nt(zt,this)].signTransaction([e.map((function(t){return{txn:t,signers:[i.account]}}))]);case 11:return a=t.sent,t.abrupt("return",a);case 13:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function be(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"perform this action";if(!Nt(Bt,this)||!this.account)throw!Nt(Vt,this)&&this.isMinimized&&this.maximizeSDK(!0),new Error("Wallet is not connected. Connect a wallet to ".concat(t,"."))}function pe(t){return(null==t?void 0:t.type)||(null==t?void 0:t.mimetype)||"application/octet-stream"}function fe(){return We.apply(this,arguments)}function We(){return(We=pt(vt().mark((function t(){var e=this;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return Nt(St,this).initUI({onWalletConnect:function(t){return xt(Ce,e,Ne).call(e,t)},onMinimize:function(){return e.minimizeSDK()},onMaximize:function(){return e.maximizeSDK()},onLogout:function(){return xt(Ce,e,xe).call(e)},onThemeToggle:function(){e.theme="light"===e.theme?"dark":"light",Nt(St,e).saveUIState(),Nt(St,e).applyTheme(),s.emit("theme:changed",{theme:e.theme})},onResetNFT:function(){return Nt(St,e).resetNFTDetails()},onMintNFT:function(){return xt(Ce,e,we).call(e)},onResetFT:function(){return Nt(St,e).resetFTDetails()},onMintFT:function(){return xt(Ce,e,Me).call(e)}}),Nt(St,this).setupNFTInputValidation({getSupportedMediaFormats:function(){return Nt(Ie,e)},sanitizeInput:function(t){return I.sanitizeInput(t)},validateFileType:function(t){return I.validateFileType(t,Nt(Ie,e))}}),Nt(St,this).setupFTInputValidation({sanitizeInput:function(t){return I.sanitizeInput(t)},validateFileType:function(t){return I.validateFileType(t,["IMAGE"])}}),t.next=5,xt(Ce,this,Ge).call(this);case 5:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function Ge(){return Ye.apply(this,arguments)}function Ye(){return(Ye=pt(vt().mark((function t(){var e,n,a,i,r,o,c,g;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(j()){t.next=2;break}return t.abrupt("return");case 2:return t.prev=2,(e=K()).getItem("walletconnect"),n=e.getItem("PeraWallet.Wallet"),a=e.getItem("DeflyWallet.Wallet"),i=null,r=null,t.next=11,xt(Ce,this,ye).call(this);case 11:if(o=t.sent){t.next=14;break}return t.abrupt("return");case 14:if(!n){t.next=25;break}return t.prev=15,t.next=18,o.pera.reconnectSession();case 18:(c=t.sent)&&c.length>0&&(i="pera",r=c),t.next=25;break;case 22:t.prev=22,t.t0=t.catch(15),console.log("Failed to reconnect to Pera wallet:",t.t0.message);case 25:if(r||!a){t.next=36;break}return t.prev=26,t.next=29,o.defly.reconnectSession();case 29:(g=t.sent)&&g.length>0&&(i="defly",r=g),t.next=36;break;case 33:t.prev=33,t.t1=t.catch(26),console.log("Failed to reconnect to Defly wallet:",t.t1.message);case 36:r&&r.length>0&&i?(Zt(Bt,this,!0),this.account=r[0],Zt(zt,this,i),Zt(Xt,this,{address:this.account,walletType:i}),Nt(St,this).showToast("Restored connection to ".concat(i," wallet"),"success"),Nt(Vt,this)||Nt(St,this).showSDKUI(),s.emit("wallet:connection:connected",{address:this.account})):Nt(Vt,this)||xt(Ce,this,Le).call(this),t.next=45;break;case 39:t.prev=39,t.t2=t.catch(2),console.error("Failed to restore connection",t.t2),Nt(St,this).showToast("Failed to restore connection!","error"),s.emit("wallet:connection:failed",{error:"Failed to restore connection"}),Nt(Vt,this)||xt(Ce,this,Le).call(this);case 45:case"end":return t.stop()}}),t,this,[[2,39],[15,22],[26,33]])})))).apply(this,arguments)}function Ne(t){return Ze.apply(this,arguments)}function Ze(){return(Ze=pt(vt().mark((function t(e){var n,a,i,r,o,c;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Nt(Rt,this)){t.next=3;break}return Nt(St,this).showToast("A wallet connection is already in progress.","warning"),t.abrupt("return");case 3:if(Nt(kt,this).includes(e)){t.next=6;break}return Nt(St,this).showToast("Unsupported wallet selected.","error"),t.abrupt("return");case 6:if(Nt(St,this).clearMessage(),Zt(zt,this,e),!Nt(Vt,this)&&j()){t.next=10;break}throw new Error("Browser wallet connection requires UI. Use connectWallet(address, mnemonic) in headless mode.");case 10:return document.getElementById("algox-sdk-container").style.display="none",t.next=13,xt(Ce,this,ye).call(this);case 13:return n=t.sent,a=n[e],Zt(Rt,this,!0),t.prev=16,i=a.connect(),r=new Promise((function(t,e){return setTimeout((function(){return e(new Error("Wallet connection timed out."))}),3e4)})),t.next=21,Promise.race([i,r]);case 21:if((o=t.sent)&&0!==o.length){t.next=24;break}throw new Error("Wallet connection declined or no account returned.");case 24:Zt(Bt,this,!0),this.account=o[0],Zt(Xt,this,{address:this.account,walletType:e}),Nt(Vt,this)||Nt(St,this).showSDKUI(),Nt(St,this).showToast("Connected to ".concat(e," wallet"),"success"),s.emit("wallet:connection:connected",{address:this.account}),Zt(Rt,this,!1),t.next=70;break;case 33:if(t.prev=33,t.t0=t.catch(16),"Wallet connection timed out."!==t.t0.message){t.next=44;break}return t.next=38,a.disconnect();case 38:if(!a.killSession){t.next=41;break}return t.next=41,a.killSession();case 41:Nt(Vt,this)?console.error("UI is disabled, skipping wallet connection UI"):window.location.reload(),t.next=70;break;case 44:if(console.error("Failed to connect wallet!",t.t0),Zt(Rt,this,!1),!t.t0.message||!t.t0.message.includes("Session currently connected")){t.next=66;break}return t.prev=47,t.next=50,a.reconnectSession();case 50:if(!((c=t.sent)&&c.length>0)){t.next=61;break}return Zt(Bt,this,!0),this.account=c[0],Zt(zt,this,e),Zt(Xt,this,{address:this.account,walletType:e}),Nt(Vt,this)?console.error("UI is disabled, skipping wallet connection UI"):(Nt(St,this).showSDKUI(),Nt(St,this).updateWalletAddressBar()),Nt(St,this).showToast("Connected to existing ".concat(e," session"),"success"),s.emit("wallet:connection:connected",{address:this.account}),Zt(Rt,this,!1),t.abrupt("return");case 61:t.next=66;break;case 63:t.prev=63,t.t1=t.catch(47),console.error("Failed to reconnect to existing session:",t.t1);case 66:Nt(St,this).showToast("Failed to connect wallet!","error"),s.emit("wallet:connection:failed",{error:"Failed to connect wallet!"}),Zt(Rt,this,!1),Nt(Vt,this)?console.error("UI is disabled, skipping wallet connection UI"):(document.getElementById("algox-sdk-container").style.display="flex",xt(Ce,this,Le).call(this));case 70:case"end":return t.stop()}}),t,this,[[16,33],[47,63]])})))).apply(this,arguments)}function xe(){return Fe.apply(this,arguments)}function Fe(){return Fe=pt(vt().mark((function t(){var e,n,a,i,r=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=r.length>0&&void 0!==r[0]&&r[0],!this.processing){t.next=3;break}return t.abrupt("return");case 3:if(e||Nt(Vt,this)||!j()||"undefined"==typeof confirm){t.next=6;break}if(confirm("Are you sure you want to logout?")){t.next=6;break}return t.abrupt("return");case 6:if(t.prev=6,!Nt(zt,this)||"mnemonic"===Nt(zt,this)){t.next=18;break}return t.next=10,xt(Ce,this,ye).call(this);case 10:if(n=t.sent,!(a=null==n?void 0:n[Nt(zt,this)])){t.next=18;break}return t.next=15,a.disconnect();case 15:if(!a.killSession){t.next=18;break}return t.next=18,a.killSession();case 18:(i=K()).removeItem("walletconnect"),i.removeItem("DeflyWallet.Wallet"),i.removeItem("PeraWallet.Wallet"),t.next=27;break;case 24:t.prev=24,t.t0=t.catch(6),console.error("Failed to disconnect wallet session:",t.t0);case 27:Zt(Et,this,null),s.emit("wallet:connection:disconnected",{address:this.account}),Nt(St,this).showToast("Logged out successfully.","success"),Nt(Vt,this)?(Zt(Bt,this,!1),this.account=null,Zt(Xt,this,null),Zt(zt,this,null)):xt(Ce,this,Le).call(this);case 31:case"end":return t.stop()}}),t,this,[[6,24]])}))),Fe.apply(this,arguments)}function Le(){Zt(Bt,this,!1),this.account=null,Zt(Xt,this,null),Zt(zt,this,null),Nt(St,this).resetToLoginUI()}function we(){return Be.apply(this,arguments)}function Be(){return(Be=pt(vt().mark((function t(){var e,n,a,i,r,o,c,g,l;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.processing){t.next=2;break}return t.abrupt("return");case 2:if(e=I.sanitizeInput(document.getElementById("algox-mintx-nft-name").value),n=I.sanitizeInput(document.getElementById("algox-mintx-nft-description").value),a=document.getElementById("algox-mintx-nft-file"),(i=I.validateNFTName(e)).valid){t.next=9;break}return Nt(St,this).showToast(i.message,"error"),t.abrupt("return");case 9:if((r=I.validateNFTDescription(n)).valid){t.next=13;break}return Nt(St,this).showToast(r.message,"error"),t.abrupt("return");case 13:if(a.files.length){t.next=16;break}return Nt(St,this).showToast("Please upload a file.","error"),t.abrupt("return");case 16:return Nt(Vt,this)||(Nt(St,this).updateMessage("Minting NFT... Please wait.","default"),Nt(St,this).disableMintButton()),this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),t.prev=20,t.next=23,xt(Ce,this,Xe).call(this,{name:e,description:n,file:a.files[0]});case 23:return o=t.sent,c=o.transactionId,g=o.assetId,Nt(Vt,this)||Nt(St,this).updateMessage("NFT Minted! Transaction ID: ".concat(c),"pointer"),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),Nt(St,this).showToast("NFT Minted Successfully! TxID: ".concat(c),"success"),Nt(Vt,this)||(Nt(St,this).showResetButton(),Nt(St,this).enableMintButton()),t.next=34,this.getNFTMetadata({assetId:g});case 34:l=t.sent,s.emit("nft:mint:success",{transactionId:c,nft:l}),t.next=46;break;case 38:t.prev=38,t.t0=t.catch(20),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),Nt(Vt,this)||Nt(St,this).resetNFTDetails(),Nt(St,this).showToast("Failed to mint NFT!","error"),s.emit("nft:mint:failed",{error:"Failed to mint NFT!"});case 46:case"end":return t.stop()}}),t,this,[[20,38]])})))).apply(this,arguments)}function Xe(t){return Re.apply(this,arguments)}function Re(){return(Re=pt(vt().mark((function t(e){var n,a,i,r,o,s,c,g,l,u,d,I,C;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.name,a=e.description,i=e.file,Nt(Bt,this)&&this.account){t.next=3;break}throw new Error("Wallet is not connected.");case 3:return r=null,o=null,s=0,t.prev=6,s=1,Nt(St,this).updateLoadingMessage("Processing... Step 1: Uploading file to IPFS"),t.next=11,et(i,Nt(oe,this));case 11:return r=t.sent,s=2,Nt(St,this).updateLoadingMessage("Processing... Step 2: Creating metadata"),t.next=16,$(i);case 16:return c=t.sent,g={name:n,description:a,image:"ipfs://".concat(r),image_integrity:c,image_mimetype:xt(Ce,this,pe).call(this,i),decimals:0,standard:"arc3",minted_by:Nt(re,this),marketplace:Nt(ie,this)},s=3,Nt(St,this).updateLoadingMessage("Processing... Step 3: Hashing metadata"),l=JSON.stringify(g),t.next=23,_(l);case 23:return u=t.sent,s=4,Nt(St,this).updateLoadingMessage("Processing... Step 4: Uploading metadata to IPFS"),t.next=28,at(g,Nt(oe,this));case 28:return o=t.sent,s=5,Nt(St,this).updateLoadingMessage("Processing... Open your wallet to continue"),t.next=33,xt(Ce,this,ke).call(this,{metadataIpfsHash:o,assetName:n,metadataHashBuffer:u,total:1,decimals:0});case 33:return d=t.sent,I=d.txid,C=d.assetId,t.abrupt("return",{transactionId:I,assetId:C});case 39:if(t.prev=39,t.t0=t.catch(6),t.prev=41,!(s>=4)){t.next=51;break}if(!o){t.next=46;break}return t.next=46,rt(o,Nt(oe,this));case 46:if(!r){t.next=49;break}return t.next=49,rt(r,Nt(oe,this));case 49:t.next=55;break;case 51:if(!(s>=1)){t.next=55;break}if(!r){t.next=55;break}return t.next=55,rt(r,Nt(oe,this));case 55:t.next=60;break;case 57:t.prev=57,t.t1=t.catch(41),console.error("Failed to cleanup IPFS files:",t.t1);case 60:throw t.t0;case 61:case"end":return t.stop()}}),t,this,[[6,39],[41,57]])})))).apply(this,arguments)}function ke(t){return ze.apply(this,arguments)}function ze(){return(ze=pt(vt().mark((function t(e){var n,a,i,o,s,c,g,l,u,d,I,C,h,y,A,m,v,b;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.metadataIpfsHash,a=e.assetName,i=e.metadataHashBuffer,o=e.total,s=void 0===o?1:o,c=e.decimals,g=void 0===c?0:c,t.next=3,Nt(Mt,this).getTransactionParams().do();case 3:return l=t.sent,u="ipfs://".concat(n,"#arc3"),d=a&&"string"==typeof a&&a.length>0?a.substring(0,32).replace(/[^a-zA-Z0-9 _-]/g,""):"Unnamed Asset",I=r().makeAssetCreateTxnWithSuggestedParamsFromObject({sender:this.account,total:BigInt(s),decimals:g,defaultFrozen:!1,unitName:Nt(ie,this),assetName:d,assetURL:u,assetMetadataHash:i,suggestedParams:l}),C=[I],Nt(de,this)>0&&(h=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ce,this),amount:st(Nt(de,this)),suggestedParams:l}),C.push(h)),C.length>1&&r().assignGroupID(C),t.next=12,xt(Ce,this,me).call(this,C);case 12:return y=t.sent,t.next=15,Nt(Mt,this).sendRawTransaction(y).do();case 15:return A=t.sent,m=A.txid,t.next=19,r().waitForConfirmation(Nt(Mt,this),m,10);case 19:return v=t.sent,b=Number(v.assetIndex),t.abrupt("return",{txid:m,assetId:b});case 22:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function Me(){return He.apply(this,arguments)}function He(){return(He=pt(vt().mark((function t(){var e,n,a,i,r,o,c,g,l,u,d,C,h;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.processing){t.next=2;break}return t.abrupt("return");case 2:if(e=I.sanitizeInput(document.getElementById("algox-mintx-ft-name").value),n=I.sanitizeInput(document.getElementById("algox-mintx-ft-description").value),a=document.getElementById("algox-mintx-ft-decimals").value,i=document.getElementById("algox-mintx-ft-supply").value,r=document.getElementById("algox-mintx-ft-file"),(o=I.validateFTName(e)).valid){t.next=11;break}return Nt(St,this).showToast(o.message,"error"),t.abrupt("return");case 11:if((c=I.validateFTDescription(n)).valid){t.next=15;break}return Nt(St,this).showToast(c.message,"error"),t.abrupt("return");case 15:if((g=I.validateFTDecimals(a)).valid){t.next=19;break}return Nt(St,this).showToast(g.message,"error"),t.abrupt("return");case 19:if((l=I.validateFTTotalSupply(i)).valid){t.next=23;break}return Nt(St,this).showToast(l.message,"error"),t.abrupt("return");case 23:return Nt(Vt,this)||(Nt(St,this).updateFTMessage("Minting FT... Please wait.","default"),Nt(St,this).disableFTMintButton()),this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),t.prev=27,t.next=30,xt(Ce,this,Ve).call(this,{name:e,description:n,decimals:Number(a),totalSupply:Number(i),file:r.files.length?r.files[0]:null});case 30:return u=t.sent,d=u.transactionId,C=u.assetId,Nt(Vt,this)||Nt(St,this).updateFTMessage("FT Minted! Transaction ID: ".concat(d),"pointer"),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),Nt(St,this).showToast("FT Minted Successfully! TxID: ".concat(d),"success"),Nt(Vt,this)||(Nt(St,this).showFTResetButton(),Nt(St,this).enableFTMintButton()),t.next=41,this.getFTMetadata({assetId:C});case 41:h=t.sent,s.emit("ft:mint:success",{transactionId:d,ft:h}),t.next=53;break;case 45:t.prev=45,t.t0=t.catch(27),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),Nt(Vt,this)||Nt(St,this).resetFTDetails(),Nt(St,this).showToast("Failed to mint FT!","error"),s.emit("ft:mint:failed",{error:"Failed to mint FT!"});case 53:case"end":return t.stop()}}),t,this,[[27,45]])})))).apply(this,arguments)}function Ve(t){return Te.apply(this,arguments)}function Te(){return(Te=pt(vt().mark((function t(e){var n,a,i,r,o,s,c,g,l,u,d,I,C,h,y;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.name,a=e.description,i=e.decimals,r=e.totalSupply,o=e.file,Nt(Bt,this)&&this.account){t.next=3;break}throw new Error("Wallet is not connected.");case 3:if(s=null,c=null,g=0,t.prev=6,l={name:n,description:a,decimals:i,standard:"arc3",minted_by:Nt(re,this),marketplace:Nt(ie,this)},!o){t.next=20;break}return g=1,Nt(St,this).updateLoadingMessage("Processing... Step 1: Uploading icon to IPFS"),t.next=13,et(o,Nt(oe,this));case 13:return s=t.sent,t.next=16,$(o);case 16:u=t.sent,l.image="ipfs://".concat(s),l.image_integrity=u,l.image_mimetype=o.type;case 20:return g=2,Nt(St,this).updateLoadingMessage("Processing... Step 2: Creating metadata"),g=3,Nt(St,this).updateLoadingMessage("Processing... Step 3: Hashing metadata"),d=JSON.stringify(l),t.next=27,_(d);case 27:return I=t.sent,g=4,Nt(St,this).updateLoadingMessage("Processing... Step 4: Uploading metadata to IPFS"),t.next=32,at(l,Nt(oe,this));case 32:return c=t.sent,g=5,Nt(St,this).updateLoadingMessage("Processing... Open your wallet to continue"),t.next=37,xt(Ce,this,ke).call(this,{metadataIpfsHash:c,assetName:n,metadataHashBuffer:I,total:r,decimals:i});case 37:return C=t.sent,h=C.txid,y=C.assetId,t.abrupt("return",{transactionId:h,assetId:y});case 43:if(t.prev=43,t.t0=t.catch(6),t.prev=45,!(g>=4)){t.next=55;break}if(!c){t.next=50;break}return t.next=50,rt(c,Nt(oe,this));case 50:if(!s){t.next=53;break}return t.next=53,rt(s,Nt(oe,this));case 53:t.next=59;break;case 55:if(!(g>=1)){t.next=59;break}if(!s){t.next=59;break}return t.next=59,rt(s,Nt(oe,this));case 59:t.next=64;break;case 61:t.prev=61,t.t1=t.catch(45),console.error("Failed to cleanup IPFS files:",t.t1);case 64:throw t.t0;case 65:case"end":return t.stop()}}),t,this,[[6,43],[45,61]])})))).apply(this,arguments)}function je(){return Je.apply(this,arguments)}function Je(){return(Je=pt(vt().mark((function t(){var e,n,a;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e="".concat(Nt(Ot,this),"/v2/applications/").concat(Nt(te,this),"/boxes"),t.next=3,fetch(e);case 3:if((n=t.sent).ok){t.next=6;break}throw new Error("Failed to fetch application boxes: ".concat(n.status));case 6:return t.next=8,n.json();case 8:return a=t.sent,t.abrupt("return",a.boxes||[]);case 10:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function Ke(t,e){return Qe.apply(this,arguments)}function Qe(){return(Qe=pt(vt().mark((function t(e,n){var a,i;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=gt(e,n),t.next=3,Nt(Mt,this).getApplicationBoxByName(Nt(te,this),a).do();case 3:return i=t.sent,t.abrupt("return",(r=i.value,o=void 0,s=void 0,c=void 0,g=void 0,l=void 0,u=void 0,d=void 0,I=void 0,s=new DataView(r.buffer,r.byteOffset,r.byteLength),c=(new TextDecoder).decode(r.slice(8,66)),g=68+s.getUint16(66,!1),l=(new TextDecoder).decode(r.slice(68,g)),o=Number(l),u=Number(o/1e6),I=(d=g+2)+s.getUint16(g,!1),{seller:c,price:u,marketplace:(new TextDecoder).decode(r.slice(d,I))}));case 5:case"end":return t.stop()}var r,o,s,c,g,l,u,d,I}),t,this)})))).apply(this,arguments)}function Ee(){return Se.apply(this,arguments)}function Se(){return Se=pt(vt().mark((function t(){var e,n,a,i,r,o,s=this,c=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=c.length>0&&void 0!==c[0]&&c[0],n=Date.now(),!(!e&&Nt(Pt,this)&&n-Nt(Ut,this)<3e4)){t.next=4;break}return t.abrupt("return",Nt(Pt,this));case 4:return a=[],t.prev=5,t.next=8,xt(Ce,this,je).call(this);case 8:return i=t.sent,r=i.map((function(t){return ut(t.name)})).filter(Boolean),t.next=12,Promise.all(r.map(function(){var t=pt(vt().mark((function t(e){var n,a,i;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.marketplace,a=e.assetId,t.prev=1,t.next=4,xt(Ce,s,Ke).call(s,n,a);case 4:return i=t.sent,t.abrupt("return",{assetId:a,seller:i.seller,price:i.price,marketplace:n});case 8:return t.prev=8,t.t0=t.catch(1),console.warn("Failed to decode listing box:",t.t0),t.abrupt("return",null);case 12:case"end":return t.stop()}}),t,null,[[1,8]])})));return function(e){return t.apply(this,arguments)}}()));case 12:o=t.sent.filter(Boolean),a.push.apply(a,function(t){if(Array.isArray(t))return mt(t)}(g=o)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(g)||At(g)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),t.next=20;break;case 16:throw t.prev=16,t.t0=t.catch(5),console.error("Error fetching all listings:",t.t0.message),t.t0;case 20:return Zt(Pt,this,a),Zt(Ut,this,n),t.abrupt("return",a);case 23:case"end":return t.stop()}var g}),t,this,[[5,16]])}))),Se.apply(this,arguments)}function De(t){return Oe.apply(this,arguments)}function Oe(){return Oe=pt(vt().mark((function t(e){var n,a,i,r,o,s=this,c=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=c.length>1&&void 0!==c[1]&&c[1],a=Date.now(),!(!n&&Nt(_t,this)&&Nt($t,this)===e&&a-Nt(qt,this)<3e4)){t.next=4;break}return t.abrupt("return",Nt(_t,this));case 4:return t.next=6,xt(Ce,this,je).call(this);case 6:return i=t.sent,r=i.map((function(t){return ut(t.name)})).filter((function(t){return t&&t.marketplace===e})),t.next=10,Promise.all(r.map(function(){var t=pt(vt().mark((function t(n){var a,i;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=n.assetId,t.prev=1,t.next=4,xt(Ce,s,Ke).call(s,e,a);case 4:return i=t.sent,t.abrupt("return",{assetId:a,seller:i.seller,price:i.price,marketplace:e});case 8:return t.prev=8,t.t0=t.catch(1),console.warn("Failed to decode listing box:",t.t0),t.abrupt("return",null);case 12:case"end":return t.stop()}}),t,null,[[1,8]])})));return function(e){return t.apply(this,arguments)}}()));case 10:return o=t.sent.filter(Boolean),Zt(_t,this,o),Zt(qt,this,a),Zt($t,this,e),t.abrupt("return",o);case 15:case"end":return t.stop()}}),t,this)}))),Oe.apply(this,arguments)}function Pe(t){return Ue.apply(this,arguments)}function Ue(){return Ue=pt(vt().mark((function t(e){var n,a,i=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:Nt(ie,this),t.prev=1,t.next=4,xt(Ce,this,Ke).call(this,n,e);case 4:return a=t.sent,t.abrupt("return",{assetId:String(e),seller:a.seller,price:a.price,marketplace:n});case 8:return t.prev=8,t.t0=t.catch(1),t.abrupt("return",null);case 11:case"end":return t.stop()}}),t,this,[[1,8]])}))),Ue.apply(this,arguments)}function _e(t){return qe.apply(this,arguments)}function qe(){return(qe=pt(vt().mark((function t(e){var n,a,i,r,o,s;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,xt(Ce,this,je).call(this);case 2:n=t.sent,a=yt(n),t.prev=4,a.s();case 6:if((i=a.n()).done){t.next=23;break}if(r=i.value,(o=ut(r.name))&&o.assetId===String(e)){t.next=11;break}return t.abrupt("continue",21);case 11:return t.prev=11,t.next=14,xt(Ce,this,Ke).call(this,o.marketplace,e);case 14:return s=t.sent,t.abrupt("return",{assetId:String(e),seller:s.seller,price:s.price,marketplace:o.marketplace});case 18:t.prev=18,t.t0=t.catch(11),console.warn("Failed to read listing box value:",t.t0);case 21:t.next=6;break;case 23:t.next=28;break;case 25:t.prev=25,t.t1=t.catch(4),a.e(t.t1);case 28:return t.prev=28,a.f(),t.finish(28);case 31:return t.abrupt("return",null);case 32:case"end":return t.stop()}}),t,this,[[4,25,28,31],[11,18]])})))).apply(this,arguments)}function $e(t){return tn.apply(this,arguments)}function tn(){return(tn=pt(vt().mark((function t(e){var n,a,i,r,o,s,c,g,l,u,d,I,C;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.assetId,a=e.seller,i=e.price,r=e.marketplace,o="".concat(Nt(Dt,this),"/v2/assets/").concat(n),t.next=4,fetch(o);case 4:if((s=t.sent).ok){t.next=7;break}return t.abrupt("return",null);case 7:return t.next=9,s.json();case 9:return c=t.sent,g=c.asset.params,l=Ct(Ct({},g),{},{assetId:n,listing:{seller:a,price:i,marketplace:r}}),t.next=14,xt(Ce,this,on).call(this,l,g);case 14:return u="".concat(Nt(Dt,this),"/v2/assets/").concat(n,"/balances?currency-greater-than=0"),t.next=17,fetch(u);case 17:if(!(d=t.sent).ok){t.next=24;break}return t.next=21,d.json();case 21:I=t.sent,(C=(I.balances||[]).find((function(t){return t.amount>0})))&&(l.currentHolder=C.address);case 24:return t.abrupt("return",l);case 25:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function en(t){return 1===Number(t.total)&&0===Number(t.decimals)}function nn(t){return"NFT"===Nt(ae,this)?xt(Ce,this,en).call(this,t):!xt(Ce,this,en).call(this,t)}function an(t,e){return rn.apply(this,arguments)}function rn(){return(rn=pt(vt().mark((function t(e,n){var a,i,r,o;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(null!=(a=n.url)&&a.startsWith("ipfs://")){t.next=3;break}return t.abrupt("return");case 3:return i=ct(a,Nt(se,this)),t.prev=4,t.next=7,fetch(i);case 7:if((r=t.sent).ok){t.next=10;break}return t.abrupt("return");case 10:return t.next=12,r.json();case 12:o=t.sent,(xt(Ce,this,en).call(this,n)||o.standard)&&(o.image&&o.image.startsWith("ipfs://")&&(o.image=ct(o.image,Nt(se,this))),e.metadata=o),t.next=19;break;case 16:t.prev=16,t.t0=t.catch(4),console.warn("IPFS metadata fetch failed for asset ".concat(e.assetId),t.t0);case 19:case"end":return t.stop()}}),t,this,[[4,16]])})))).apply(this,arguments)}function on(t,e){return sn.apply(this,arguments)}function sn(){return(sn=pt(vt().mark((function t(e,n){var a,i,r,o;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(null!=(a=n.url)&&a.startsWith("ipfs://")){t.next=3;break}return t.abrupt("return");case 3:return i=ct(a,Nt(se,this)),t.prev=4,t.next=7,fetch(i);case 7:if((r=t.sent).ok){t.next=10;break}return t.abrupt("return");case 10:return t.next=12,r.json();case 12:o=t.sent,"NFT"===Nt(ae,this)?0===o.decimals&&o.image_integrity&&o.image_mimetype&&o.standard&&o.image&&o.image.startsWith("ipfs://")&&(o.image=ct(o.image,Nt(se,this)),e.metadata=o):o.standard&&(o.image&&o.image.startsWith("ipfs://")&&(o.image=ct(o.image,Nt(se,this))),e.metadata=o),t.next=19;break;case 16:t.prev=16,t.t0=t.catch(4),console.warn("IPFS metadata fetch failed for asset ".concat(e.assetId),t.t0);case 19:case"end":return t.stop()}}),t,this,[[4,16]])})))).apply(this,arguments)}const cn=function(){return t=function t(e){var n,a=e.env,i=e.disableUi,o=void 0!==i&&i,c=e.disableToast,g=void 0!==c&&c,l=e.toastLocation,u=void 0===l?"TOP_RIGHT":l,d=e.minimizeUILocation,C=void 0===d?"right":d,h=e.logo,y=void 0===h?null:h,A=e.namespace,m=e.pinata_ipfs_server_key,v=e.revenueWalletAddress,b=e.marketplaceType,p=void 0===b?"NFT":b,f=e.pinata_ipfs_gateway_url,W=void 0===f?null:f,G=e.listingFee,Y=void 0===G?0:G,N=e.buyingFee,Z=void 0===N?0:N,x=e.unListingFee,F=void 0===x?0:x,L=e.mintFee,w=void 0===L?0:L,B=e.supportedMediaFormats,X=void 0===B?["IMAGE"]:B;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),Yt(this,n=Ce),n.add(this),Gt(this,wt,void 0),Gt(this,Bt,void 0),Gt(this,Xt,void 0),Gt(this,Rt,void 0),Gt(this,kt,void 0),Gt(this,zt,void 0),Gt(this,Mt,void 0),Gt(this,Ht,void 0),Gt(this,Vt,void 0),Gt(this,Tt,void 0),Gt(this,jt,void 0),Gt(this,Jt,void 0),Gt(this,Kt,void 0),Gt(this,Qt,void 0),Gt(this,Et,void 0),Gt(this,St,void 0),Gt(this,Dt,void 0),Gt(this,Ot,void 0),Gt(this,Pt,void 0),Gt(this,Ut,void 0),Gt(this,_t,void 0),Gt(this,qt,void 0),Gt(this,$t,void 0),Gt(this,te,void 0),Gt(this,ee,void 0),Gt(this,ne,void 0),Gt(this,ae,void 0),Gt(this,ie,void 0),Gt(this,re,void 0),Gt(this,oe,void 0),Gt(this,se,void 0),Gt(this,ce,void 0),Gt(this,ge,void 0),Gt(this,le,void 0),Gt(this,ue,void 0),Gt(this,de,void 0),Gt(this,Ie,void 0);try{if(this.network=I.validateEnvironment(a),Zt(Vt,this,I.validateDisableUi(o)),Zt(Ht,this,I.validateDisableToast(g)),Zt(Qt,this,I.validateToastLocation(u)),Zt(Tt,this,I.validateMinimizeUILocation(C)),Zt(jt,this,I.validateLogo(y)),Zt(ne,this,I.validateNamespace(A)),Zt(oe,this,I.validatePinataServerKey(m)),Zt(ce,this,I.validateRevenueWalletAddress(v)),Zt(ae,this,I.validateMarketplaceType(p)),Zt(se,this,I.validatePinataGatewayUrl(W)),Zt(ge,this,I.validateFee(Y,"Listing fee")),Zt(le,this,I.validateFee(Z,"Buying fee")),Zt(ue,this,I.validateFee(F,"unListingFee fee")),Zt(de,this,I.validateFee(w,"Mint fee")),Zt(Ie,this,I.validateSupportedMediaFormats(X)),Zt(St,this,new z(this,{disableUi:Nt(Vt,this),disableToast:Nt(Ht,this),logo:Nt(jt,this),minimizeUILocation:Nt(Tt,this),toastLocation:Nt(Qt,this),marketplaceType:Nt(ae,this)})),this.processing=!1,this.events=s,Zt(Jt,this,["mainnet","testnet"]),Zt(wt,this,null),Zt(Bt,this,!1),this.account=null,Zt(Xt,this,null),Zt(Rt,this,!1),Zt(kt,this,["pera","defly"]),Zt(zt,this,null),Zt(Mt,this,new(r().Algodv2)("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","mainnet"===this.network?"https://mainnet-api.algonode.cloud":"https://testnet-api.algonode.cloud",443)),Zt(Dt,this,"mainnet"===this.network?"https://mainnet-idx.algonode.cloud":"https://testnet-idx.algonode.cloud"),Zt(Ot,this,"mainnet"===this.network?"https://mainnet-api.algonode.cloud":"https://testnet-api.algonode.cloud"),Zt(Pt,this,null),Zt(Ut,this,0),Zt(_t,this,null),Zt(qt,this,0),Zt($t,this,null),Zt(ie,this,"AMX".concat(Nt(ne,this))),Zt(re,this,"AlgoMintX"),Zt(te,this,(this.network,764970022)),Zt(ee,this,(this.network,"YUS4ATNZYFNBOSN4MYP5BYPJKQNYSYRGU6PFP65ZLWXPWWBLUZYSHWJGUA")),!Nt(Vt,this)&&j()){var R=K().getItem("axs");if(R)try{var k=JSON.parse(R);this.isMinimized=k.minimized||!1,this.theme=k.theme||Nt(St,this).getSystemTheme()}catch(t){this.isMinimized=!1,this.theme=Nt(St,this).getSystemTheme()}else this.isMinimized=!1,this.theme=Nt(St,this).getSystemTheme();Nt(St,this).saveUIState(),xt(Ce,this,fe).call(this)}}catch(t){xt(Ce,this,he).call(this,t.message)}},e=[{key:"minimizeSDK",value:function(t){Nt(St,this).minimizeSDK(t)}},{key:"maximizeSDK",value:function(t){Nt(St,this).maximizeSDK(t)}},{key:"connectWallet",value:(f=pt(vt().mark((function t(e,n){var a,i;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,e&&"string"==typeof e){t.next=3;break}throw new Error("Wallet address is required");case 3:if(58===e.length){t.next=5;break}throw new Error("Wallet address must be 58 characters long");case 5:if(/^[A-Z2-7]{58}$/.test(e)){t.next=7;break}throw new Error("Invalid Algorand wallet address format");case 7:if(n&&"string"==typeof n){t.next=9;break}throw new Error("Wallet mnemonic is required");case 9:if(25===n.trim().split(/\s+/).length){t.next=12;break}throw new Error("Mnemonic must contain 25 words");case 12:if(t.prev=12,("string"==typeof(a=r().mnemonicToSecretKey(n)).addr?a.addr:null!==(i=a.addr)&&void 0!==i&&i.publicKey?r().encodeAddress(a.addr.publicKey):String(a.addr||""))===e){t.next=17;break}throw new Error("Mnemonic does not match the provided wallet address");case 17:t.next=22;break;case 19:throw t.prev=19,t.t0=t.catch(12),new Error(t.t0.message||"Invalid mnemonic");case 22:return Zt(Et,this,a),this.account=e,Zt(Bt,this,!0),Zt(zt,this,"mnemonic"),Zt(Xt,this,{type:"mnemonic",address:e}),s.emit("wallet:connected",{address:e,type:"mnemonic"}),Nt(Vt,this)||Nt(St,this).showSDKUI(),t.abrupt("return",{address:e,type:"mnemonic"});case 32:throw t.prev=32,t.t1=t.catch(0),console.error("Error connecting wallet:",t.t1.message),s.emit("wallet:connection:failed",{error:t.t1.message}),t.t1;case 37:case"end":return t.stop()}}),t,this,[[0,32],[12,19]])}))),function(t,e){return f.apply(this,arguments)})},{key:"disconnectWallet",value:(p=pt(vt().mark((function t(){return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Nt(Bt,this)){t.next=2;break}throw new Error("No wallet is currently connected");case 2:return t.next=4,xt(Ce,this,xe).call(this,!0);case 4:case"end":return t.stop()}}),t,this)}))),function(){return p.apply(this,arguments)})},{key:"mintNFT",value:(b=pt(vt().mark((function t(e){var n,a,i,r,o,c,g,l,u;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.name,a=e.description,i=e.file,xt(Ce,this,be).call(this,"mint an NFT"),"NFT"===Nt(ae,this)){t.next=4;break}throw new Error("This marketplace is configured for FT assets only.");case 4:if(r=I.sanitizeInput(n),o=I.sanitizeInput(a),(c=I.validateNFTName(r)).valid){t.next=9;break}throw new Error(c.message);case 9:if((g=I.validateNFTDescription(o)).valid){t.next=12;break}throw new Error(g.message);case 12:if(i){t.next=14;break}throw new Error("Media file is required.");case 14:if((l=I.validateFileType(i,Nt(Ie,this))).valid){t.next=17;break}throw new Error(l.message);case 17:return this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),t.prev=20,t.next=23,xt(Ce,this,Xe).call(this,{name:r,description:o,file:i});case 23:return u=t.sent,s.emit("nft:mint:success",u),t.abrupt("return",u);case 28:throw t.prev=28,t.t0=t.catch(20),s.emit("nft:mint:failed",{error:t.t0.message}),t.t0;case 32:return t.prev=32,this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),t.finish(32);case 37:case"end":return t.stop()}}),t,this,[[20,28,32,37]])}))),function(t){return b.apply(this,arguments)})},{key:"mintFT",value:(v=pt(vt().mark((function t(e){var n,a,i,r,o,c,g,l,u,d,C,h,y,A;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.name,a=e.description,i=e.decimals,r=e.totalSupply,o=e.file,c=void 0===o?null:o,xt(Ce,this,be).call(this,"mint a fungible token"),"FT"===Nt(ae,this)){t.next=4;break}throw new Error("This marketplace is configured for NFT assets only.");case 4:if(g=I.sanitizeInput(n),l=I.sanitizeInput(a),(u=I.validateFTName(g)).valid){t.next=9;break}throw new Error(u.message);case 9:if((d=I.validateFTDescription(l)).valid){t.next=12;break}throw new Error(d.message);case 12:if((C=I.validateFTDecimals(i)).valid){t.next=15;break}throw new Error(C.message);case 15:if((h=I.validateFTTotalSupply(r)).valid){t.next=18;break}throw new Error(h.message);case 18:if(!c){t.next=22;break}if((y=I.validateFileType(c,["IMAGE"])).valid){t.next=22;break}throw new Error(y.message);case 22:return this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),t.prev=25,t.next=28,xt(Ce,this,Ve).call(this,{name:g,description:l,decimals:Number(i),totalSupply:Number(r),file:c});case 28:return A=t.sent,s.emit("ft:mint:success",A),t.abrupt("return",A);case 33:throw t.prev=33,t.t0=t.catch(25),s.emit("ft:mint:failed",{error:t.t0.message}),t.t0;case 37:return t.prev=37,this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),t.finish(37);case 42:case"end":return t.stop()}}),t,this,[[25,33,37,42]])}))),function(t){return v.apply(this,arguments)})},{key:"getListedNFTs",value:(m=pt(vt().mark((function t(){var e,n,a=this;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,xt(Ce,this,De).call(this,Nt(ie,this));case 3:if(0!==(e=t.sent).length){t.next=6;break}return t.abrupt("return",[]);case 6:return t.next=8,Promise.all(e.map((function(t){return xt(Ce,a,$e).call(a,t)})));case 8:return n=t.sent.filter(Boolean),t.abrupt("return",n.filter((function(t){return xt(Ce,a,nn).call(a,t)})));case 12:throw t.prev=12,t.t0=t.catch(0),console.error("Error fetching listed NFTS",t.t0.message),t.t0;case 16:case"end":return t.stop()}}),t,this,[[0,12]])}))),function(){return m.apply(this,arguments)})},{key:"getMarketplaces",value:(A=pt(vt().mark((function t(){var e,n,a,i,r,o,s,c,g,l,u=this;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,xt(Ce,this,Ee).call(this);case 3:e=t.sent,n={},a=yt(e),t.prev=6,a.s();case 8:if((i=a.n()).done){t.next=22;break}if(r=i.value,o=r.marketplace,s=r.assetId,c=r.price,g=r.seller,o){t.next=13;break}return t.abrupt("continue",20);case 13:n[o]||(n[o]={marketplace:o,namespace:o.startsWith("AMX")?o.slice(3):o,listingCount:0,totalListedValue:0,floorPrice:null,sellers:new Set,assetIds:[]}),(l=n[o]).listingCount+=1,l.totalListedValue+=c,l.floorPrice=null===l.floorPrice?c:Math.min(l.floorPrice,c),g&&l.sellers.add(g),l.assetIds.push(s);case 20:t.next=8;break;case 22:t.next=27;break;case 24:t.prev=24,t.t0=t.catch(6),a.e(t.t0);case 27:return t.prev=27,a.f(),t.finish(27);case 30:return t.abrupt("return",Object.values(n).map((function(t){var e;return{marketplace:t.marketplace,namespace:t.namespace,listingCount:t.listingCount,uniqueSellers:t.sellers.size,totalListedValue:t.totalListedValue,floorPrice:null!==(e=t.floorPrice)&&void 0!==e?e:0,avgPrice:t.listingCount?t.totalListedValue/t.listingCount:0,assetIds:t.assetIds,isCurrentMarketplace:t.marketplace===Nt(ie,u)}})));case 33:throw t.prev=33,t.t1=t.catch(0),console.error("Error fetching marketplaces:",t.t1.message),t.t1;case 37:case"end":return t.stop()}}),t,this,[[0,33],[6,24,27,30]])}))),function(){return A.apply(this,arguments)})},{key:"getMarketplaceCount",value:(y=pt(vt().mark((function t(){var e;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getMarketplaces();case 2:return e=t.sent,t.abrupt("return",e.length);case 4:case"end":return t.stop()}}),t,this)}))),function(){return y.apply(this,arguments)})},{key:"listingStatus",value:(h=pt(vt().mark((function t(e){var n,a,i,r,o=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:Nt(ie,this),t.prev=1,t.next=4,xt(Ce,this,Pe).call(this,e,n);case 4:if(a=t.sent){t.next=7;break}return t.abrupt("return",{marketplace:n,assetId:String(e),exists:!1,listing:null});case 7:return t.abrupt("return",{marketplace:n,assetId:String(e),exists:!0,listing:a});case 10:if(t.prev=10,t.t0=t.catch(1),console.error("Error fetching listing status:",t.t0.message),!(null!==(i=t.t0.message)&&void 0!==i&&i.includes("not found")||null!==(r=t.t0.message)&&void 0!==r&&r.includes("does not exist")||404===t.t0.status)){t.next=15;break}return t.abrupt("return",{marketplace:n,assetId:String(e),exists:!1,listing:null});case 15:throw t.t0;case 16:case"end":return t.stop()}}),t,this,[[1,10]])}))),function(t){return h.apply(this,arguments)})},{key:"getMarketplaceStats",value:(C=pt(vt().mark((function t(){var e,n,a,i,r,o,s,c,g,l,u,d=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=d.length>0&&void 0!==d[0]?d[0]:Nt(ie,this),t.prev=1,t.next=4,xt(Ce,this,De).call(this,e);case 4:n=t.sent,a=n.map((function(t){return{assetId:t.assetId,price:t.price,seller:t.seller}})),i=0,r=null,o=new Set,s=yt(a);try{for(s.s();!(c=s.n()).done;)g=c.value,l=g.price,u=g.seller,i+=l,r=null===r?l:Math.min(r,l),u&&o.add(u)}catch(t){s.e(t)}finally{s.f()}return t.abrupt("return",{marketplace:e,namespace:e.startsWith("AMX")?e.slice(3):e,listingCount:a.length,uniqueSellers:o.size,totalListedValue:i,floorPrice:null!=r?r:0,avgPrice:a.length?i/a.length:0,listings:a});case 14:throw t.prev=14,t.t0=t.catch(1),console.error("Error fetching marketplace stats:",t.t0.message),t.t0;case 18:case"end":return t.stop()}}),t,this,[[1,14]])}))),function(){return C.apply(this,arguments)})},{key:"getMarketplaceData",value:(d=pt(vt().mark((function t(){var e,n,a,i,r,o,s,c,g,l=this,u=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=u.length>0&&void 0!==u[0]?u[0]:Nt(ie,this),t.prev=1,t.next=4,xt(Ce,this,De).call(this,e);case 4:if(0!==(n=t.sent).length){t.next=7;break}throw new Error("Marketplace ".concat(e," not found"));case 7:return t.next=9,Promise.all(n.map((function(t){return xt(Ce,l,$e).call(l,t)})));case 9:return a=t.sent.filter(Boolean),i=new Set,r=new Set,o=0,s=null,a.forEach((function(t){i.add(t.listing.seller),t.currentHolder&&r.add(t.currentHolder),o+=t.listing.price,s=null===s?t.listing.price:Math.min(s,t.listing.price)})),c=a[0],g=c&&1===Number(c.total)&&0===Number(c.decimals)?"NFT":"FT",t.abrupt("return",{marketplace:e,namespace:e.startsWith("AMX")?e.slice(3):e,network:this.network,status:"Active",assetType:g,listings:a,listingCount:a.length,uniqueSellers:i.size,uniqueHolders:r.size,totalListedValue:o,floorPrice:null!=s?s:0,avgPrice:a.length?o/a.length:0});case 20:throw t.prev=20,t.t0=t.catch(1),console.error("Error fetching marketplace data:",t.t0.message),t.t0;case 24:case"end":return t.stop()}}),t,this,[[1,20]])}))),function(){return d.apply(this,arguments)})},{key:"getWalletAssets",value:(u=pt(vt().mark((function t(){var e,n,a,i,r,o,s,c,g,l=this,u=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=(e=u.length>0&&void 0!==u[0]?u[0]:{}).accountId,a=e.marketplaceOnly,i=void 0!==a&&a,t.prev=1,n){t.next=8;break}if(Nt(Bt,this)&&this.account){t.next=6;break}throw this.isMinimized&&this.maximizeSDK(!0),new Error("Wallet is not connected");case 6:t.next=9;break;case 8:I.validateRevenueWalletAddress(n);case 9:return r="".concat(Nt(Dt,this),"/v2/accounts/").concat(n||this.account),t.next=12,fetch(r);case 12:if((o=t.sent).ok){t.next=15;break}throw new Error("Indexer fetch error: ".concat(o.status));case 15:return t.next=17,o.json();case 17:return s=t.sent,c=(s.account.assets||[]).filter((function(t){return t.amount>0})),t.next=21,Promise.all(c.map(function(){var t=pt(vt().mark((function t(e){var n,a,r,o,s,c,g,u,d,I,C,h;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e["asset-id"],a="".concat(Nt(Dt,l),"/v2/assets/").concat(n),t.next=4,fetch(a);case 4:if((r=t.sent).ok){t.next=7;break}return t.abrupt("return",null);case 7:return t.next=9,r.json();case 9:if(o=t.sent,s=o.asset.params,c=xt(Ce,l,en).call(l,s),!i||xt(Ce,l,nn).call(l,s)){t.next=14;break}return t.abrupt("return",null);case 14:return g=Ct(Ct({},s),{},{assetId:n,balance:e.amount,assetType:c?"NFT":"FT"}),t.next=17,xt(Ce,l,an).call(l,g,s);case 17:if(!i){t.next=22;break}return t.next=20,xt(Ce,l,Pe).call(l,n,Nt(ie,l));case 20:(u=t.sent)&&(g.listing={seller:u.seller,price:u.price,marketplace:u.marketplace});case 22:return d="".concat(Nt(Dt,l),"/v2/assets/").concat(n,"/balances?currency-greater-than=0"),t.next=25,fetch(d);case 25:if(!(I=t.sent).ok){t.next=32;break}return t.next=29,I.json();case 29:C=t.sent,(h=(C.balances||[]).find((function(t){return t.amount>0})))&&(g.currentHolder=h.address);case 32:return t.abrupt("return",g);case 33:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()));case 21:return g=t.sent.filter(Boolean),t.abrupt("return",g);case 25:throw t.prev=25,t.t0=t.catch(1),console.error("Error fetching wallet assets:",t.t0.message),t.t0;case 29:case"end":return t.stop()}}),t,this,[[1,25]])}))),function(){return u.apply(this,arguments)})},{key:"getWalletNFTs",value:(l=pt(vt().mark((function t(){var e,n=arguments;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=n.length>0&&void 0!==n[0]?n[0]:{},t.abrupt("return",this.getWalletAssets(e));case 2:case"end":return t.stop()}}),t,this)}))),function(){return l.apply(this,arguments)})},{key:"getAssetMetadata",value:(g=pt(vt().mark((function t(e){var n;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.assetId,t.abrupt("return",this.getNFTMetadata({assetId:n}));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return g.apply(this,arguments)})},{key:"getNFTMetadata",value:(c=pt(vt().mark((function t(e){var n,a,i,r,o,s,c,g,l,u,d,I,C,h,y;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.assetId,t.prev=1,i="".concat(Nt(Dt,this),"/v2/assets/").concat(n),t.next=5,fetch(i);case 5:if((r=t.sent).ok){t.next=8;break}throw new Error("Failed to fetch asset data: ".concat(r.status));case 8:return t.next=10,r.json();case 10:return o=t.sent,s=o.asset.params,c=Ct(Ct({},s),{},{assetId:n}),t.next=15,xt(Ce,this,Pe).call(this,n,Nt(ie,this));case 15:if(t.t0=t.sent,t.t0){t.next=20;break}return t.next=19,xt(Ce,this,_e).call(this,n);case 19:t.t0=t.sent;case 20:return(g=t.t0)&&(c.listing={seller:g.seller,price:g.price,marketplace:g.marketplace}),t.next=24,xt(Ce,this,on).call(this,c,s);case 24:return l="".concat(Nt(Dt,this),"/v2/assets/").concat(n,"/balances?currency-greater-than=0"),t.next=27,fetch(l);case 27:if(!(u=t.sent).ok){t.next=33;break}return t.next=31,u.json();case 31:(d=t.sent).balances&&d.balances.length>0&&(I=d.balances.find((function(t){return t.amount>0})))&&(c.currentHolder=I.address);case 33:return C="".concat(Nt(Dt,this),"/v2/transactions?asset-id=").concat(n,"&tx-type=acfg"),t.next=36,fetch(C);case 36:if((h=t.sent).ok){t.next=39;break}throw new Error("Failed to fetch asset config transaction: ".concat(h.status));case 39:return t.next=41,h.json();case 41:return y=t.sent,c.transactionId=null===(a=y.transactions)||void 0===a||null===(a=a[0])||void 0===a?void 0:a.id,t.abrupt("return",c);case 46:throw t.prev=46,t.t1=t.catch(1),console.error("Error fetching NFT metadata:",t.t1.message),t.t1;case 50:case"end":return t.stop()}}),t,this,[[1,46]])}))),function(t){return c.apply(this,arguments)})},{key:"getFTMetadata",value:(o=pt(vt().mark((function t(e){var n;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.assetId,t.abrupt("return",this.getNFTMetadata({assetId:n}));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"listNFT",value:(i=pt(vt().mark((function t(e){var n,a,i,o,c,g,l,u,d,I,C,h,y,A,m,v,b,p,f,W,G;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.assetId,a=e.nftPrice,t.prev=1,this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),Nt(Bt,this)&&this.account||xt(Ce,this,be).call(this,"list an asset"),n&&a){t.next=8;break}throw new Error("Asset ID and price are required");case 8:if(!isNaN(n)&&!isNaN(a)){t.next=10;break}throw new Error("Asset ID and price must be a number.");case 10:return t.next=12,Nt(Mt,this).getAssetByID(n).do();case 12:if(i=t.sent,xt(Ce,this,nn).call(this,i.params)){t.next=15;break}throw new Error("This marketplace only supports ".concat(Nt(ae,this)," assets."));case 15:return o="".concat(Nt(Dt,this),"/v2/accounts/").concat(this.account),t.next=18,fetch(o);case 18:if((c=t.sent).ok){t.next=21;break}throw new Error("Failed to fetch account assets: ".concat(c.status));case 21:return t.next=23,c.json();case 23:if(g=t.sent,l=(g.account.assets||[]).find((function(t){return t["asset-id"]===n&&t.amount>0}))){t.next=27;break}throw new Error("You do not hold this asset in your wallet.");case 27:return u="NFT"===Nt(ae,this)?1:Number(l.amount),t.next=30,Nt(Mt,this).getTransactionParams().do();case 30:return d=t.sent,I=Ct(Ct({},d),{},{flatFee:!0,fee:4e3}),C=lt(Nt(te,this),Nt(ie,this),n),h=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ee,this),amount:1e5,suggestedParams:d}),y=Lt.methods.find((function(t){return"transferNFTToContractAndAddListing"===t.name})),A=r().makeApplicationCallTxnFromObject({sender:this.account,appIndex:Nt(te,this),onComplete:r().OnApplicationComplete.NoOpOC,appArgs:[y.getSelector(),r().ABIType.from("uint64").encode(BigInt(n)),r().ABIType.from("string").encode(this.account),r().ABIType.from("string").encode(st(a).toString()),r().ABIType.from("string").encode(Nt(ie,this))],boxes:[C],foreignAssets:[n],suggestedParams:I}),m=r().makeAssetTransferTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ee,this),amount:BigInt(u),assetIndex:n,suggestedParams:d}),v=[h,A,m],Nt(ge,this)>0&&(b=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ce,this),amount:st(Nt(ge,this)),suggestedParams:d}),v.push(b)),r().assignGroupID(v),t.next=42,xt(Ce,this,me).call(this,v);case 42:return p=t.sent,t.next=45,Nt(Mt,this).sendRawTransaction(p).do();case 45:return f=t.sent,W=f.txid,t.next=49,r().waitForConfirmation(Nt(Mt,this),W,10);case 49:return Zt(Pt,this,null),Zt(_t,this,null),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),t.next=56,this.getNFTMetadata({assetId:n});case 56:return G=t.sent,s.emit("nft:list:success",{nft:G,transactionId:W}),t.abrupt("return",{nft:G,transactionId:W});case 61:throw t.prev=61,t.t0=t.catch(1),console.error("Error listing NFT:",t.t0.message),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),s.emit("nft:list:failed",{error:"Could not list NFT!"}),t.t0;case 69:case"end":return t.stop()}}),t,this,[[1,61]])}))),function(t){return i.apply(this,arguments)})},{key:"unlistNFT",value:(a=pt(vt().mark((function t(e){var n,a,i,o,c,g,l,u,d,I,C,h,y,A;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.assetId,t.prev=1,this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),xt(Ce,this,be).call(this,"unlist an asset"),n){t.next=8;break}throw new Error("Asset ID is required.");case 8:if(!isNaN(n)){t.next=10;break}throw new Error("Asset ID must be a number.");case 10:return t.next=12,this.getNFTMetadata({assetId:n});case 12:if(a=t.sent,xt(Ce,this,nn).call(this,a)){t.next=15;break}throw new Error("This marketplace only supports ".concat(Nt(ae,this)," assets."));case 15:if(a.listing.marketplace===Nt(ie,this)){t.next=17;break}throw new Error("Cannot un-list nft from other marketplace.");case 17:return t.next=19,Nt(Mt,this).getTransactionParams().do();case 19:return i=t.sent,o=Ct(Ct({},i),{},{flatFee:!0,fee:3e3}),c=lt(Nt(te,this),Nt(ie,this),n),g=r().makeAssetTransferTxnWithSuggestedParamsFromObject({sender:this.account,receiver:this.account,amount:0,assetIndex:n,suggestedParams:i}),l=Lt.methods.find((function(t){return"transferNFTToSellerAndRemoveListing"===t.name})),u=r().makeApplicationCallTxnFromObject({sender:this.account,appIndex:Nt(te,this),onComplete:r().OnApplicationComplete.NoOpOC,appArgs:[l.getSelector(),r().ABIType.from("uint64").encode(BigInt(n)),r().ABIType.from("string").encode(this.account),r().ABIType.from("string").encode(Nt(ie,this))],boxes:[c],foreignAssets:[n],suggestedParams:o}),d=[g,u],Nt(ue,this)>0&&(I=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ce,this),amount:st(Nt(ue,this)),suggestedParams:i}),d.push(I)),r().assignGroupID(d),t.next=30,xt(Ce,this,me).call(this,d);case 30:return C=t.sent,t.next=33,Nt(Mt,this).sendRawTransaction(C).do();case 33:return h=t.sent,y=h.txid,t.next=37,r().waitForConfirmation(Nt(Mt,this),y,10);case 37:return Zt(Pt,this,null),Zt(_t,this,null),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),t.next=44,this.getNFTMetadata({assetId:n});case 44:return A=t.sent,s.emit("nft:buy:success",{nft:A,transactionId:y}),t.abrupt("return",{nft:A,transactionId:y});case 49:throw t.prev=49,t.t0=t.catch(1),console.error("Error un-listing NFT:",t.t0.message),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),s.emit("nft:unlist:failed",{error:"Could not unlist NFT!"}),t.t0;case 57:case"end":return t.stop()}}),t,this,[[1,49]])}))),function(t){return a.apply(this,arguments)})},{key:"buyNFT",value:(n=pt(vt().mark((function t(e){var n,a,i,o,c,g,l,u,d,I,C,h,y,A,m;return vt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.assetId,t.prev=1,this.processing=!0,Nt(St,this).showLoadingOverlay("Processing..."),s.emit("sdk:processing:started",{processing:this.processing}),xt(Ce,this,be).call(this,"buy an asset"),n){t.next=8;break}throw new Error("Asset ID is required.");case 8:if(!isNaN(n)){t.next=10;break}throw new Error("Asset ID must be a number.");case 10:return t.next=12,this.getNFTMetadata({assetId:n});case 12:if(a=t.sent,xt(Ce,this,nn).call(this,a)){t.next=15;break}throw new Error("This marketplace only supports ".concat(Nt(ae,this)," assets."));case 15:if(a.listing.seller!==this.account){t.next=17;break}throw new Error("Seller cannot buy the listed nft.");case 17:if(a.listing.marketplace===Nt(ie,this)){t.next=19;break}throw new Error("Cannot buy nft from other marketplace.");case 19:return t.next=21,Nt(Mt,this).getTransactionParams().do();case 21:return i=t.sent,o=Ct(Ct({},i),{},{flatFee:!0,fee:3e3}),c=lt(Nt(te,this),Nt(ie,this),n),g=r().makeAssetTransferTxnWithSuggestedParamsFromObject({sender:this.account,receiver:this.account,amount:0,assetIndex:n,suggestedParams:i}),l=Lt.methods.find((function(t){return"transferNFTToReceiverAndRemoveListing"===t.name})),u=r().makeApplicationCallTxnFromObject({sender:this.account,appIndex:Nt(te,this),onComplete:r().OnApplicationComplete.NoOpOC,appArgs:[l.getSelector(),r().ABIType.from("uint64").encode(BigInt(n)),r().ABIType.from("string").encode(a.listing.seller),r().ABIType.from("string").encode(Nt(ie,this))],boxes:[c],foreignAssets:[n],suggestedParams:o}),d=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:a.listing.seller,amount:st(a.listing.price),suggestedParams:i}),I=[g,u,d],Nt(le,this)>0&&(C=r().makePaymentTxnWithSuggestedParamsFromObject({sender:this.account,receiver:Nt(ce,this),amount:st(Nt(le,this)),suggestedParams:i}),I.push(C)),r().assignGroupID(I),t.next=33,xt(Ce,this,me).call(this,I);case 33:return h=t.sent,t.next=36,Nt(Mt,this).sendRawTransaction(h).do();case 36:return y=t.sent,A=y.txid,t.next=40,r().waitForConfirmation(Nt(Mt,this),A,10);case 40:return Zt(Pt,this,null),Zt(_t,this,null),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),t.next=47,this.getNFTMetadata({assetId:n});case 47:return m=t.sent,s.emit("nft:buy:success",{nft:m,transactionId:A}),t.abrupt("return",{nft:m,transactionId:A});case 52:throw t.prev=52,t.t0=t.catch(1),console.error("Error buying NFT:",t.t0.message),this.processing=!1,Nt(St,this).hideLoadingOverlay(),s.emit("sdk:processing:stopped",{processing:this.processing}),s.emit("nft:buy:failed",{error:"Could not buy NFT!"}),t.t0;case 60:case"end":return t.stop()}}),t,this,[[1,52]])}))),function(t){return n.apply(this,arguments)})}],e&&ft(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n,a,i,o,c,g,l,u,d,C,h,y,A,m,v,b,p,f}();module.exports=a.default})();
|