tx · 4xywBKP5PNVxYfCzvzWiAYkzdUtQmzuKRVtWZoWcHg3V

3MvRWw2FPEimFCTGtK7qY9uAJbM7XJ4ZfJS:  -0.28000000 Waves

2023.04.19 12:26 [2541257] smart account 3MvRWw2FPEimFCTGtK7qY9uAJbM7XJ4ZfJS > SELF 0.00000000 Waves

{ "type": 13, "id": "4xywBKP5PNVxYfCzvzWiAYkzdUtQmzuKRVtWZoWcHg3V", "fee": 28000000, "feeAssetId": null, "timestamp": 1681896433075, "version": 2, "chainId": 84, "sender": "3MvRWw2FPEimFCTGtK7qY9uAJbM7XJ4ZfJS", "senderPublicKey": "HP8sssVq1866F7CaPQJwgFrt6fsqhQjKwM84cL1wjD2a", "proofs": [ "42osrwgZRUhLe9XcH7P4GzjK3dyqB2ajkcaJDvzHSKMQNH9tVk1HoVX4exgJxLwTppzfxvVPDXqJSBXGiCGNPXeF" ], "script": "base64:BgJaCAISBQoDCAEIEgMKAQgSBQoDCAEIEgMKAQgSBAoCCAESAwoBCBIOCgwICAgBBBEYGBEBARgSCgoICAgIAQQIARgSDgoMCAgIAQQYGBgYGAEYEgcKBQgIAQEBQgAHU0ZfUE9PTAICU0YAB1dYX1BPT0wCAldYAAdDQVBfRkVFAgNjYXAACExPQU5fRkVFAgRsb2FuAAtOT19MT0FOX0ZFRQIGbm9Mb2FuAAZTQ0FMRTgAgMLXLwAHU0NBTEUxMACAyK+gJQAKRkVFX1NDQUxFNgDAhD0AFGtTRlBvb2xBQXNzZXRCYWxhbmNlAg9BX2Fzc2V0X2JhbGFuY2UAFGtTRlBvb2xCQXNzZXRCYWxhbmNlAg9CX2Fzc2V0X2JhbGFuY2UAD2tTRlBvb2xBQXNzZXRJZAIKQV9hc3NldF9pZAAPa1NGUG9vbEJBc3NldElkAgpCX2Fzc2V0X2lkAA5rU0ZQb29sU2hhcmVJZAIOc2hhcmVfYXNzZXRfaWQACmtTRlBvb2xGZWUCCmNvbW1pc3Npb24ADWtVc2VyUG9zaXRpb24CDl91c2VyX3Bvc2l0aW9uABFrVXNlckJvcnJvd0Ftb3VudAIcX3VzZXJfcG9zaXRpb25fYm9ycm93X2Ftb3VudAASa1VzZXJCb3Jyb3dBc3NldElkAh5fdXNlcl9wb3NpdGlvbl9ib3Jyb3dfYXNzZXRfaWQAEGtVc2VyUG9zaXRpb25OdW0CFV91c2VyX3Bvc2l0aW9uX251bWJlcgAVa1VzZXJQb3NpdGlvbkludGVyZXN0AhdfdXNlcl9wb3NpdGlvbl9pbnRlcmVzdAAKa1Bvb2xUb3RhbAILX3Bvb2xfdG90YWwADWtQb29sSW50ZXJlc3QCDl9wb29sX2ludGVyZXN0ABVrQXhseUluRmVlV2l0aG91dExvYW4CFl9heGx5X2ZlZV93aXRob3V0X2xvYW4AEmtBeGx5SW5GZWVXaXRoTG9hbgITX2F4bHlfZmVlX3dpdGhfbG9hbgALa0F4bHlDYXBGZWUCDV9heGx5X2ZlZV9jYXAACmtSZXF1ZXN0SWQCC19yZXF1ZXN0X2lkAAxrUmVxdWVzdEl0ZXICDXJlcXVlc3RzX2l0ZXIABWtQb29sAgVwb29sXwAOa1Bvb2xDYXBDaGFuZ2UCEF9wb29sX2NhcF9jaGFuZ2UACWtNb25leUJveAIOYXhseV9tb25leV9ib3gADmtTRkZhcm1pbmdBZGRyAhNzd29wZmlfZmFybWluZ19hZGRyAAxrTGVuZFNlcnZpY2UCEWxlbmRfc2VydmljZV9hZGRyAAxrUHJpY2VPcmFjbGUCDHByaWNlX29yYWNsZQALa0V4Q29udHJhY3QCEWV4Y2hhbmdlX2NvbnRyYWN0AA9rV3hTd2FwQ29udHJhY3QCEHd4X3N3YXBfY29udHJhY3QACG1vbmV5Qm94CQEHQWRkcmVzcwEJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFCWtNb25leUJveAIYTm8gYXhseSBtb25leUJveCBhZGRyZXNzAApleENvbnRyYWN0CQEHQWRkcmVzcwEJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFC2tFeENvbnRyYWN0AhxObyBleGNoYW5nZSBjb250cmFjdCBhZGRyZXNzAA9wcmljZU9yYWNsZUFkZHIJAQdBZGRyZXNzAQkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUMa1ByaWNlT3JhY2xlAhdObyBwcmljZSBvcmFjbGUgYWRkcmVzcwAOd3hTd2FwQ29udHJhY3QJAQdBZGRyZXNzAQkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUPa1d4U3dhcENvbnRyYWN0AhJObyB3eCBzd2FwIGFkZHJlc3MABlNXT1BJRAEgNAETVo5gRuJ+W6m4AUeC57EAJhKbduROS6KgfJxt7oEABFdYSUQBIMZSHoFO6m7jPMCXsA5fLPJq6e2dsobRmkJ4qGB9PhuxAQppc1NlbGZDYWxsAQFpAwkAAAIIBQFpBmNhbGxlcgUEdGhpcwUEdW5pdAkAAgECK09ubHkgY29udHJhY3QgaXRzZWxmIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24BDmFjY291bnRCYWxhbmNlAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwCQDwBwIFBHRoaXMFAmlkAwkAAQIFByRtYXRjaDACBFVuaXQEBXdhdmVzBQckbWF0Y2gwCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkAAgECC01hdGNoIGVycm9yAQ1nZXRTRlBvb2xEYXRhAQhwb29sQWRkcgkAlwoFCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUIcG9vbEFkZHIFD2tTRlBvb2xBQXNzZXRJZAIZQ2FuJ3QgZ2V0IHBvb2wgQSBhc3NldCBpZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFCHBvb2xBZGRyBQ9rU0ZQb29sQkFzc2V0SWQCGUNhbid0IGdldCBwb29sIEIgYXNzZXQgaWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQhwb29sQWRkcgUUa1NGUG9vbEFBc3NldEJhbGFuY2UCHkNhbid0IGdldCBwb29sIEEgYXNzZXQgYmFsYW5jZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFCHBvb2xBZGRyBRRrU0ZQb29sQkFzc2V0QmFsYW5jZQIeQ2FuJ3QgZ2V0IHBvb2wgQiBhc3NldCBiYWxhbmNlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUIcG9vbEFkZHIFDmtTRlBvb2xTaGFyZUlkAhhDYW4ndCBnZXQgc2hhcmUgYXNzZXQgaWQBDWdldFdYUG9vbERhdGEBCHBvb2xBZGRyBANjZmcKAAFACQD8BwQFCHBvb2xBZGRyAhxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZBQNuaWwFA25pbAMJAAECBQFAAglMaXN0W0FueV0FAUAJAAIBCQCsAgIJAAMBBQFAAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0DCQAAAgUDY2ZnBQNjZmcJAJcKBQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCgABQAkAkQMCBQNjZmcABAMJAAECBQFAAgZTdHJpbmcFAUAFBHVuaXQCGUNhbid0IGdldCBwb29sIEEgYXNzZXQgaWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgoAAUAJAJEDAgUDY2ZnAAUDCQABAgUBQAIGU3RyaW5nBQFABQR1bml0AhlDYW4ndCBnZXQgcG9vbCBCIGFzc2V0IGlkAAAAAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCgABQAkAkQMCBQNjZmcAAwMJAAECBQFAAgZTdHJpbmcFAUAFBHVuaXQCGkNhbid0IGdldCBwb29sIExQIGFzc2V0IGlkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQtnZXRQb29sRGF0YQIIcG9vbEFkZHIEdHlwZQMJAAACBQR0eXBlBQdTRl9QT09MCQENZ2V0U0ZQb29sRGF0YQEFCHBvb2xBZGRyAwkAAAIFBHR5cGUFB1dYX1BPT0wJAQ1nZXRXWFBvb2xEYXRhAQUIcG9vbEFkZHIJAAIBAg9Xcm9uZyBwb29sIHR5cGUBEWdldFBvb2xUb3RhbFNoYXJlAQRwb29sCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUEcG9vbAUKa1Bvb2xUb3RhbAAAARhnZXROZXdVc2VyUG9zaXRpb25OdW1iZXICBHBvb2wEdXNlcgkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUQa1VzZXJQb3NpdGlvbk51bQAAAAEBCmdldEF4bHlGZWUCBHBvb2wHZmVlVHlwZQMJAAACBQdmZWVUeXBlAgNjYXAJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgUEcG9vbAULa0F4bHlDYXBGZWUDCQAAAgUHZmVlVHlwZQIEbG9hbgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQRwb29sBRJrQXhseUluRmVlV2l0aExvYW4DCQAAAgUHZmVlVHlwZQIGbm9Mb2FuCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFBHBvb2wFFWtBeGx5SW5GZWVXaXRob3V0TG9hbgkAAgECDldyb25nIGZlZSB0eXBlARBnZXRTRkZhcm1pbmdBZGRyAAkBB0FkZHJlc3MBCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQ5rU0ZGYXJtaW5nQWRkcgIdQ2FuJ3QgZ2V0IHN3b3BmaSBmYXJtaW5nIGFkZHIBEGdldFdYRmFybWluZ0FkZHIBCHBvb2xBZGRyBAlmQ29udHJhY3QJAQdBZGRyZXNzAQkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUIcG9vbEFkZHICEyVzX19mYWN0b3J5Q29udHJhY3QCIkNhbid0IGdldCBXWCBmYWN0b3J5IGNvbnRyYWN0IGFkZHIECmZhY3Ryb3lDZmcJALUJAgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFCWZDb250cmFjdAIRJXNfX2ZhY3RvcnlDb25maWcCGENhbid0IGdldCBXWCBmYWN0b3J5IGNmZwICX18JAQdBZGRyZXNzAQkA2QQBCQCRAwIFCmZhY3Ryb3lDZmcAAQEOZ2V0TGVuZFNydkFkZHIACQEHQWRkcmVzcwEJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFDGtMZW5kU2VydmljZQIbQ2FuJ3QgZ2V0IGxlbmQgc2VydmljZSBhZGRyAQxhc3NldElkVG9TdHIBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAJANgEAQUCaWQDCQABAgUHJG1hdGNoMAIEVW5pdAQFd2F2ZXMFByRtYXRjaDACBVdBVkVTCQACAQILTWF0Y2ggZXJyb3IBDmFzc2V0SWRGcm9tU3RyAQdhc3NldElkAwkAAAIFB2Fzc2V0SWQCBVdBVkVTBQR1bml0CQDZBAEFB2Fzc2V0SWQBEGdldEFzc2V0RGVjaW1hbHMBB2Fzc2V0SWQDCQAAAgUHYXNzZXRJZAIFV0FWRVMACAQHJG1hdGNoMAkA7AcBCQDZBAEFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIZGVjaW1hbHMJAAIBAhBDYW4ndCBmaW5kIGFzc2V0AQ9yZXBsZW5pc2hTd29wRmkJBHBvb2wHZmVlVHlwZQRwbXRBCXBtdEFzc2V0QQRwbXRCCXBtdEFzc2V0QgRiYWxBBGJhbEIHc2hhcmVJZAQSc2hhcmVCYWxhbmNlQmVmb3JlCQEOYWNjb3VudEJhbGFuY2UBCQDZBAEFB3NoYXJlSWQDCQAAAgUSc2hhcmVCYWxhbmNlQmVmb3JlBRJzaGFyZUJhbGFuY2VCZWZvcmUECHBvb2xBZGRyCQEHQWRkcmVzcwEJANkEAQUEcG9vbAQGcmF0aW9BCQBrAwUGU0NBTEU4BQRwbXRBBQRiYWxBBAZyYXRpb0IJAGsDBQZTQ0FMRTgFBHBtdEIFBGJhbEIECyR0MDYzOTc2Njg5AwkAZgIFBnJhdGlvQgUGcmF0aW9BBANwbXQJAG4EBQRiYWxCBQZyYXRpb0EFBlNDQUxFOAUHQ0VJTElORwkAlgoEBQRwbXRBBQNwbXQJAGUCBQRwbXRCBQNwbXQFCXBtdEFzc2V0QgQDcG10CQBuBAUEYmFsQQUGcmF0aW9CBQZTQ0FMRTgFB0NFSUxJTkcJAJYKBAUDcG10BQRwbXRCCQBlAgUEcG10QQUDcG10BQlwbXRBc3NldEEECnBtdEFtb3VudEEIBQskdDA2Mzk3NjY4OQJfMQQKcG10QW1vdW50QggFCyR0MDYzOTc2Njg5Al8yBAZjaGFuZ2UIBQskdDA2Mzk3NjY4OQJfMwQNY2hhbmdlQXNzZXRJZAgFCyR0MDYzOTc2Njg5Al80BARpbnYxAwMJAGYCBQpwbXRBbW91bnRBAAAJAGYCBQpwbXRBbW91bnRCAAAHBAhwYXltZW50cwkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDmFzc2V0SWRGcm9tU3RyAQUJcG10QXNzZXRBBQpwbXRBbW91bnRBCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEOYXNzZXRJZEZyb21TdHIBBQlwbXRBc3NldEIFCnBtdEFtb3VudEIFA25pbAkA/AcEBQhwb29sQWRkcgIMY2FsbEZ1bmN0aW9uCQDMCAICFnJlcGxlbmlzaFdpdGhUd29Ub2tlbnMJAMwIAgkAzAgCAgVmYWxzZQkAzAgCAgEwBQNuaWwFA25pbAUIcGF5bWVudHMAAAMJAAACBQRpbnYxBQRpbnYxBARpbnYyAwkAZgIFBmNoYW5nZQAABAhwYXltZW50cwkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDmFzc2V0SWRGcm9tU3RyAQUNY2hhbmdlQXNzZXRJZAUGY2hhbmdlBQNuaWwEBHZhcnMJAMwIAgIBMAkAzAgCAgVmYWxzZQkAzAgCAgEwBQNuaWwJAPwHBAUIcG9vbEFkZHICDGNhbGxGdW5jdGlvbgkAzAgCAhVyZXBsZW5pc2hXaXRoT25lVG9rZW4JAMwIAgUEdmFycwUDbmlsBQhwYXltZW50cwAAAwkAAAIFBGludjIFBGludjIEEXNoYXJlQmFsYW5jZUFmdGVyCQEOYWNjb3VudEJhbGFuY2UBCQDZBAEFB3NoYXJlSWQEC3RvdGFsU3Rha2VkCQBlAgURc2hhcmVCYWxhbmNlQWZ0ZXIFEnNoYXJlQmFsYW5jZUJlZm9yZQQNYXhseUZlZUFtb3VudAkAawMFC3RvdGFsU3Rha2VkCQEKZ2V0QXhseUZlZQIFBHBvb2wFB2ZlZVR5cGUFCkZFRV9TQ0FMRTYEEXVzZXJTaGFyZUZvclN0YWtlCQBlAgULdG90YWxTdGFrZWQFDWF4bHlGZWVBbW91bnQDCQBnAgAABRF1c2VyU2hhcmVGb3JTdGFrZQkAAgECKGFtb3VudCBvZiBzdGFrZWQgc2hhcmV0b2tlbnMgbXVzdCBiZSA+IDAEBGludjMJAPwHBAkBEGdldFNGRmFybWluZ0FkZHIAAg9sb2NrU2hhcmVUb2tlbnMJAMwIAgUEcG9vbAkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQdzaGFyZUlkBRF1c2VyU2hhcmVGb3JTdGFrZQUDbmlsAwkAAAIFBGludjMFBGludjMJAJQKAgURdXNlclNoYXJlRm9yU3Rha2UFDWF4bHlGZWVBbW91bnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BC3JlcGxlbmlzaFdYBwRwb29sB2ZlZVR5cGUEcG10QQlwbXRBc3NldEEEcG10QglwbXRBc3NldEIHc2hhcmVJZAQIcG9vbEFkZHIJAQdBZGRyZXNzAQkA2QQBBQRwb29sBAskdDA4MTQwODk4OQMDCQBmAgUEcG10QQAACQBmAgUEcG10QgAABwQKZXZhbFB1dEluQQkAtQkCCgABQAkA/AcEBQhwb29sQWRkcgIgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkJAMwIAgUEcG10QQUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nAgJfXwMJAAACBQpldmFsUHV0SW5BBQpldmFsUHV0SW5BBApldmFsUHV0SW5CCQC1CQIKAAFACQD8BwQFCHBvb2xBZGRyAh9ldmFsdWF0ZVB1dEJ5UHJpY2VBc3NldFJFQURPTkxZCQDMCAIFBHBtdEIFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwICX18DCQAAAgUKZXZhbFB1dEluQgUKZXZhbFB1dEluQgQFbHBJbkEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpldmFsUHV0SW5BAAEEBWxwSW5CCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKZXZhbFB1dEluQgABAwkAZgIFBWxwSW5CBQVscEluQQQGcG10SW5CCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKZXZhbFB1dEluQQAICQCWCgQFBHBtdEEFBnBtdEluQgkAZQIFBHBtdEIFBnBtdEluQgUJcG10QXNzZXRCBAZwbXRJbkEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpldmFsUHV0SW5CAAcJAJYKBAUGcG10SW5BBQRwbXRCCQBlAgUEcG10QQUGcG10SW5BBQlwbXRBc3NldEEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQBmAgUEcG10QQAACQCWCgQFBHBtdEEFBHBtdEIFBHBtdEEFCXBtdEFzc2V0QQMJAGYCBQRwbXRCAAAJAJYKBAUEcG10QQUEcG10QgUEcG10QgUJcG10QXNzZXRCCQACAQIQcG10cyBtdXN0IGJlID4gMAQKcG10QW1vdW50QQgFCyR0MDgxNDA4OTg5Al8xBApwbXRBbW91bnRCCAULJHQwODE0MDg5ODkCXzIEBmNoYW5nZQgFCyR0MDgxNDA4OTg5Al8zBA1jaGFuZ2VBc3NldElkCAULJHQwODE0MDg5ODkCXzQEEnNoYXJlQmFsYW5jZUJlZm9yZQkBDmFjY291bnRCYWxhbmNlAQkA2QQBBQdzaGFyZUlkAwkAAAIFEnNoYXJlQmFsYW5jZUJlZm9yZQUSc2hhcmVCYWxhbmNlQmVmb3JlBARpbnYxAwMJAGYCBQpwbXRBbW91bnRBAAAJAGYCBQpwbXRBbW91bnRCAAAHBAhwYXltZW50cwkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDmFzc2V0SWRGcm9tU3RyAQUJcG10QXNzZXRBBQpwbXRBbW91bnRBCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEOYXNzZXRJZEZyb21TdHIBBQlwbXRBc3NldEIFCnBtdEFtb3VudEIFA25pbAkA/AcEBQhwb29sQWRkcgIDcHV0CQDMCAIAwIQ9CQDMCAIHBQNuaWwFCHBheW1lbnRzAAADCQAAAgUEaW52MQUEaW52MQQEaW52MgMJAGYCBQZjaGFuZ2UAAAQIcGF5bWVudHMJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ5hc3NldElkRnJvbVN0cgEFDWNoYW5nZUFzc2V0SWQFBmNoYW5nZQUDbmlsCQD8BwQFCHBvb2xBZGRyAglwdXRPbmVUa24JAMwIAgAACQDMCAIHBQNuaWwFCHBheW1lbnRzAAADCQAAAgUEaW52MgUEaW52MgQRc2hhcmVCYWxhbmNlQWZ0ZXIJAQ5hY2NvdW50QmFsYW5jZQEJANkEAQUHc2hhcmVJZAQLdG90YWxTdGFrZWQJAGUCBRFzaGFyZUJhbGFuY2VBZnRlcgUSc2hhcmVCYWxhbmNlQmVmb3JlBA1heGx5RmVlQW1vdW50CQBrAwULdG90YWxTdGFrZWQJAQpnZXRBeGx5RmVlAgUEcG9vbAUHZmVlVHlwZQUKRkVFX1NDQUxFNgQRdXNlclNoYXJlRm9yU3Rha2UJAGUCBQt0b3RhbFN0YWtlZAUNYXhseUZlZUFtb3VudAMJAGcCAAAFEXVzZXJTaGFyZUZvclN0YWtlCQACAQIoYW1vdW50IG9mIHN0YWtlZCBzaGFyZXRva2VucyBtdXN0IGJlID4gMAQEaW52MwkA/AcECQEQZ2V0V1hGYXJtaW5nQWRkcgEFCHBvb2xBZGRyAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFB3NoYXJlSWQFEXVzZXJTaGFyZUZvclN0YWtlBQNuaWwDCQAAAgUEaW52MwUEaW52MwkAlAoCBRF1c2VyU2hhcmVGb3JTdGFrZQUNYXhseUZlZUFtb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEQcmVwbGVuaXNoRW50cmllcwcEcG9vbAR1c2VyDHN0YWtlZEFtb3VudA1heGx5RmVlQW1vdW50BnBvc051bQdzaGFyZUlkBHR5cGUEC3RvdGFsQW1vdW50CQERZ2V0UG9vbFRvdGFsU2hhcmUBBQRwb29sBA9jdXJQb29sSW50ZXJlc3QJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgUEcG9vbAUNa1Bvb2xJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBQprUG9vbFRvdGFsCQBkAgULdG90YWxBbW91bnQFDHN0YWtlZEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXICAV8JAKQDAQUGcG9zTnVtBQ1rVXNlclBvc2l0aW9uBQxzdGFrZWRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyAgFfCQCkAwEFBnBvc051bQUVa1VzZXJQb3NpdGlvbkludGVyZXN0BQ9jdXJQb29sSW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFEGtVc2VyUG9zaXRpb25OdW0FBnBvc051bQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQhtb25leUJveAUNYXhseUZlZUFtb3VudAkA2QQBBQdzaGFyZUlkBQNuaWwBC2NsYWltRmFybWVkAgR0eXBlBHBvb2wDCQAAAgUEdHlwZQUHU0ZfUE9PTAQJYmFsQmVmb3JlCQEOYWNjb3VudEJhbGFuY2UBBQZTV09QSUQDCQAAAgUJYmFsQmVmb3JlBQliYWxCZWZvcmUEA2ludgkA/AcECQEQZ2V0U0ZGYXJtaW5nQWRkcgACBWNsYWltCQDMCAIFBHBvb2wFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52BAhiYWxBZnRlcgkBDmFjY291bnRCYWxhbmNlAQUGU1dPUElECQCUCgIJAGUCBQhiYWxBZnRlcgUJYmFsQmVmb3JlBQZTV09QSUQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUEdHlwZQUHV1hfUE9PTAQJYmFsQmVmb3JlCQEOYWNjb3VudEJhbGFuY2UBBQRXWElEAwkAAAIFCWJhbEJlZm9yZQUJYmFsQmVmb3JlBANpbnYJAPwHBAkBEGdldFdYRmFybWluZ0FkZHIBCQEHQWRkcmVzcwEJANkEAQUEcG9vbAIHY2xhaW1XWAkAzAgCBQRwb29sBQNuaWwFA25pbAMJAAACBQNpbnYFA2ludgQIYmFsQWZ0ZXIJAQ5hY2NvdW50QmFsYW5jZQEFBFdYSUQJAJQKAgkAZQIFCGJhbEFmdGVyBQliYWxCZWZvcmUFBFdYSUQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAg9Xcm9uZyBwb29sIHR5cGUBDmV4Y2hhbmdlS2VlcGVyCgd0b1Rva2VuCXBtdEFtb3VudAhwbXRBc3NldAlhbW91bnRzSW4JYWRkcmVzc2VzD2Fzc2V0c1RvUmVjZWl2ZQtlc3RSZWNlaXZlZBFzbGlwcGFnZVRvbGVyYW5jZQttaW5SZWNlaXZlZAdvcHRpb25zBBJ0b2tlbkJhbGFuY2VCZWZvcmUJAQ5hY2NvdW50QmFsYW5jZQEJAQ5hc3NldElkRnJvbVN0cgEFB3RvVG9rZW4DCQAAAgUSdG9rZW5CYWxhbmNlQmVmb3JlBRJ0b2tlbkJhbGFuY2VCZWZvcmUEA2ludgkA/AcEBQpleENvbnRyYWN0AgRzd2FwCQDMCAIFCWFtb3VudHNJbgkAzAgCBQlhZGRyZXNzZXMJAMwIAgUPYXNzZXRzVG9SZWNlaXZlCQDMCAIFC2VzdFJlY2VpdmVkCQDMCAIFEXNsaXBwYWdlVG9sZXJhbmNlCQDMCAIFC21pblJlY2VpdmVkCQDMCAIFB29wdGlvbnMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUIcG10QXNzZXQFCXBtdEFtb3VudAUDbmlsAwkAAAIFA2ludgUDaW52CQBlAgkBDmFjY291bnRCYWxhbmNlAQkBDmFzc2V0SWRGcm9tU3RyAQUHdG9Ub2tlbgUSdG9rZW5CYWxhbmNlQmVmb3JlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ5leGNoYW5nZVBhenpsZQYHdG9Ub2tlbglwbXRBbW91bnQIcG10QXNzZXQJcm91dGVzU3RyDG1pblRvUmVjZWl2ZQdvcHRpb25zBBJ0b2tlbkJhbGFuY2VCZWZvcmUJAQ5hY2NvdW50QmFsYW5jZQEJAQ5hc3NldElkRnJvbVN0cgEFB3RvVG9rZW4DCQAAAgUSdG9rZW5CYWxhbmNlQmVmb3JlBRJ0b2tlbkJhbGFuY2VCZWZvcmUEA2ludgkA/AcEBQpleENvbnRyYWN0AgpwdXp6bGVTd2FwCQDMCAIFCXJvdXRlc1N0cgkAzAgCBQxtaW5Ub1JlY2VpdmUJAMwIAgUHb3B0aW9ucwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQhwbXRBc3NldAUJcG10QW1vdW50BQNuaWwDCQAAAgUDaW52BQNpbnYJAGUCCQEOYWNjb3VudEJhbGFuY2UBCQEOYXNzZXRJZEZyb21TdHIBBQd0b1Rva2VuBRJ0b2tlbkJhbGFuY2VCZWZvcmUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDmV4Y2hhbmdlU3dvcEZpCgd0b1Rva2VuCXBtdEFtb3VudAhwbXRBc3NldApleGNoYW5nZXJzDmV4Y2hhbmdlcnNUeXBlBWFyZ3MxBWFyZ3MyEXJvdXRpbmdBc3NldHNLZXlzEm1pbkFtb3VudFRvUmVjZWl2ZQdvcHRpb25zBBJ0b2tlbkJhbGFuY2VCZWZvcmUJAQ5hY2NvdW50QmFsYW5jZQEJAQ5hc3NldElkRnJvbVN0cgEFB3RvVG9rZW4DCQAAAgUSdG9rZW5CYWxhbmNlQmVmb3JlBRJ0b2tlbkJhbGFuY2VCZWZvcmUEA2ludgkA/AcEBQpleENvbnRyYWN0Agpzd29wZmlTd2FwCQDMCAIFCmV4Y2hhbmdlcnMJAMwIAgUOZXhjaGFuZ2Vyc1R5cGUJAMwIAgUFYXJnczEJAMwIAgUFYXJnczIJAMwIAgURcm91dGluZ0Fzc2V0c0tleXMJAMwIAgUSbWluQW1vdW50VG9SZWNlaXZlCQDMCAIFB29wdGlvbnMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUIcG10QXNzZXQFCXBtdEFtb3VudAUDbmlsAwkAAAIFA2ludgUDaW52CQBlAgkBDmFjY291bnRCYWxhbmNlAQkBDmFzc2V0SWRGcm9tU3RyAQUHdG9Ub2tlbgUSdG9rZW5CYWxhbmNlQmVmb3JlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQpjYXBpdGFsaXplBARwb29sBHR5cGUHdG9rZW5JZAt0b2tlbkFtb3VudAQIcG9vbEFkZHIJAQdBZGRyZXNzAQkA2QQBBQRwb29sBA0kdDAxMzE5MDEzMjY4CQELZ2V0UG9vbERhdGECBQhwb29sQWRkcgUEdHlwZQQDQUlkCAUNJHQwMTMxOTAxMzI2OAJfMQQDQklkCAUNJHQwMTMxOTAxMzI2OAJfMgQEYmFsQQgFDSR0MDEzMTkwMTMyNjgCXzMEBGJhbEIIBQ0kdDAxMzE5MDEzMjY4Al80BAdzaGFyZUlkCAUNJHQwMTMxOTAxMzI2OAJfNQQNJHQwMTMyNzExMzM1MQMJAAACBQd0b2tlbklkBQNBSWQJAJQKAgULdG9rZW5BbW91bnQAAAkAlAoCAAAFC3Rva2VuQW1vdW50BARwbXRBCAUNJHQwMTMyNzExMzM1MQJfMQQEcG10QggFDSR0MDEzMjcxMTMzNTECXzIEDSR0MDEzMzU0MTM3MTUDCQAAAgUEdHlwZQUHU0ZfUE9PTAkBD3JlcGxlbmlzaFN3b3BGaQkFBHBvb2wFB0NBUF9GRUUFBHBtdEEFA0FJZAUEcG10QgUDQklkBQRiYWxBBQRiYWxCBQdzaGFyZUlkCQELcmVwbGVuaXNoV1gHBQRwb29sBQdDQVBfRkVFBQRwbXRBBQNBSWQFBHBtdEIFA0JJZAUHc2hhcmVJZAQMc3Rha2VkQW1vdW50CAUNJHQwMTMzNTQxMzcxNQJfMQQHYXhseUZlZQgFDSR0MDEzMzU0MTM3MTUCXzIED2N1clBvb2xJbnRlcmVzdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBHBvb2wFDWtQb29sSW50ZXJlc3QAAAQQdG90YWxTaGFyZUFtb3VudAkBEWdldFBvb2xUb3RhbFNoYXJlAQUEcG9vbAQLbmV3SW50ZXJlc3QJAGQCBQ9jdXJQb29sSW50ZXJlc3QJAGsDBQxzdGFrZWRBbW91bnQFB1NDQUxFMTAFEHRvdGFsU2hhcmVBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUNa1Bvb2xJbnRlcmVzdAULbmV3SW50ZXJlc3QJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUIbW9uZXlCb3gFB2F4bHlGZWUJANkEAQUHc2hhcmVJZAUDbmlsARJleGNoYW5nZURpcmVjdGx5U0YHBHBvb2wIYXNzZXRJZEEIYXNzZXRJZEIEYmFsQQRiYWxCEGFtb3VudFRva2VuVG9HZXQPYXNzZXRUb2tlblRvR2V0BAhwb29sQWRkcgkBB0FkZHJlc3MBCQDZBAEFBHBvb2wECWZlZVNjYWxlNgDAhD0EA2ZlZQkBEUBleHRyTmF0aXZlKDEwNTApAgUIcG9vbEFkZHIFCmtTRlBvb2xGZWUEDGFtbnRHZXROb0ZlZQkAawMFEGFtb3VudFRva2VuVG9HZXQFCWZlZVNjYWxlNgkAZQIFCWZlZVNjYWxlNgUDZmVlBA0kdDAxNDQwODE0Njk2AwkAAAIFD2Fzc2V0VG9rZW5Ub0dldAUIYXNzZXRJZEEEC2Ftb3VudFRvUGF5CQBrAwUEYmFsQQUMYW1udEdldE5vRmVlCQBlAgUEYmFsQgUMYW1udEdldE5vRmVlCQCUCgIFC2Ftb3VudFRvUGF5BQhhc3NldElkQgQLYW1vdW50VG9QYXkJAGsDBQRiYWxCBQxhbW50R2V0Tm9GZWUJAGUCBQRiYWxBBQxhbW50R2V0Tm9GZWUJAJQKAgULYW1vdW50VG9QYXkFCGFzc2V0SWRBBAthbW91bnRUb1BheQgFDSR0MDE0NDA4MTQ2OTYCXzEECmFzc2V0VG9QYXkIBQ0kdDAxNDQwODE0Njk2Al8yCQD8BwQFCHBvb2xBZGRyAgxjYWxsRnVuY3Rpb24JAMwIAgIIZXhjaGFuZ2UJAMwIAgkAzAgCAgExBQNuaWwFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDmFzc2V0SWRGcm9tU3RyAQUKYXNzZXRUb1BheQULYW1vdW50VG9QYXkFA25pbAESZXhjaGFuZ2VEaXJlY3RseVdYBwRwb29sCGFzc2V0SWRBCGFzc2V0SWRCBGJhbEEEYmFsQhBhbW91bnRUb2tlblRvR2V0D2Fzc2V0VG9rZW5Ub0dldAQIcG9vbEFkZHIJAQdBZGRyZXNzAQkA2QQBBQRwb29sBAVwckZlZQkBEUBleHRyTmF0aXZlKDEwNTApAgUOd3hTd2FwQ29udHJhY3QCDyVzX19wcm90b2NvbEZlZQQEcEZlZQkBEUBleHRyTmF0aXZlKDEwNTApAgUOd3hTd2FwQ29udHJhY3QCCyVzX19wb29sRmVlBAhmZWVTY2FsZQkAtgIBAIDC1y8EDSR0MDE1MTc1MTU0ODMDCQAAAgUPYXNzZXRUb2tlblRvR2V0BQhhc3NldElkQQQLYW1vdW50VG9QYXkJAGsDBQRiYWxBBRBhbW91bnRUb2tlblRvR2V0CQBlAgUEYmFsQgUQYW1vdW50VG9rZW5Ub0dldAkAlAoCBQthbW91bnRUb1BheQUIYXNzZXRJZEIEC2Ftb3VudFRvUGF5CQBrAwUEYmFsQgUQYW1vdW50VG9rZW5Ub0dldAkAZQIFBGJhbEEFEGFtb3VudFRva2VuVG9HZXQJAJQKAgULYW1vdW50VG9QYXkFCGFzc2V0SWRBBAthbW91bnRUb1BheQgFDSR0MDE1MTc1MTU0ODMCXzEECmFzc2V0VG9QYXkIBQ0kdDAxNTE3NTE1NDgzAl8yBBJhbW91bnRUb1BheVdpdGhGZWUJAKADAQkAvAIDCQC2AgEFC2Ftb3VudFRvUGF5BQhmZWVTY2FsZQkAuAICBQhmZWVTY2FsZQkAtgIBCQBkAgUFcHJGZWUFBHBGZWUJAPwHBAUOd3hTd2FwQ29udHJhY3QCBHN3YXAJAMwIAgABCQDMCAIFD2Fzc2V0VG9rZW5Ub0dldAkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDmFzc2V0SWRGcm9tU3RyAQUKYXNzZXRUb1BheQUSYW1vdW50VG9QYXlXaXRoRmVlBQNuaWwBEGV4Y2hhbmdlRGlyZWN0bHkIBHR5cGUEcG9vbAhhc3NldElkQQhhc3NldElkQgRiYWxBBGJhbEIQYW1vdW50VG9rZW5Ub0dldA9hc3NldFRva2VuVG9HZXQDCQAAAgUEdHlwZQUHU0ZfUE9PTAkBEmV4Y2hhbmdlRGlyZWN0bHlTRgcFBHBvb2wFCGFzc2V0SWRBBQhhc3NldElkQgUEYmFsQQUEYmFsQgUQYW1vdW50VG9rZW5Ub0dldAUPYXNzZXRUb2tlblRvR2V0CQESZXhjaGFuZ2VEaXJlY3RseVdYBwUEcG9vbAUIYXNzZXRJZEEFCGFzc2V0SWRCBQRiYWxBBQRiYWxCBRBhbW91bnRUb2tlblRvR2V0BQ9hc3NldFRva2VuVG9HZXQBEndpdGhkcmF3QW1vdW50Q2FsYwQEcG9vbA91c2VyQ2FuV2l0aGRyYXcEZGVidAtib3Jyb3dBc3NldAQIcG9vbEFkZHIJAQdBZGRyZXNzAQkA2QQBBQRwb29sBAVwVHlwZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMJAKwCAgUFa1Bvb2wFBHBvb2wCDFVua25vd24gcG9vbAQNJHQwMTYzNDgxNjQxNQkBC2dldFBvb2xEYXRhAgUIcG9vbEFkZHIFBXBUeXBlBAhhc3NldElkQQgFDSR0MDE2MzQ4MTY0MTUCXzEECGFzc2V0SWRCCAUNJHQwMTYzNDgxNjQxNQJfMgQEYmFsQQgFDSR0MDE2MzQ4MTY0MTUCXzMEBGJhbEIIBQ0kdDAxNjM0ODE2NDE1Al80BAtjQmFsQUJlZm9yZQkBDmFjY291bnRCYWxhbmNlAQkBDmFzc2V0SWRGcm9tU3RyAQUIYXNzZXRJZEEDCQAAAgULY0JhbEFCZWZvcmUFC2NCYWxBQmVmb3JlBAtjQmFsQkJlZm9yZQkBDmFjY291bnRCYWxhbmNlAQkBDmFzc2V0SWRGcm9tU3RyAQUIYXNzZXRJZEIDCQAAAgULY0JhbEJCZWZvcmUFC2NCYWxCQmVmb3JlBANpbnYDCQAAAgUFcFR5cGUFB1NGX1BPT0wJAPwHBAUIcG9vbEFkZHICDGNhbGxGdW5jdGlvbgkAzAgCAgh3aXRoZHJhdwkAzAgCCQDMCAIJAKQDAQUPdXNlckNhbldpdGhkcmF3BQNuaWwFA25pbAUDbmlsAwkAAAIFBXBUeXBlBQdXWF9QT09MCQD8BwQFCHBvb2xBZGRyAg11bnN0YWtlQW5kR2V0CQDMCAIFD3VzZXJDYW5XaXRoZHJhdwUDbmlsBQNuaWwJAAIBAhNXcm9uZyBwb3NpdGlvbiB0eXBlAwkAAAIFA2ludgUDaW52BApjQmFsQUFmdGVyCQEOYWNjb3VudEJhbGFuY2UBCQEOYXNzZXRJZEZyb21TdHIBBQhhc3NldElkQQQKY0JhbEJBZnRlcgkBDmFjY291bnRCYWxhbmNlAQkBDmFzc2V0SWRGcm9tU3RyAQUIYXNzZXRJZEIEDSR0MDE2OTI3MTcwMTYJAJQKAgkAZQIFCmNCYWxBQWZ0ZXIFC2NCYWxBQmVmb3JlCQBlAgUKY0JhbEJBZnRlcgULY0JhbEJCZWZvcmUEDXRva2Vuc0Ftb3VudEEIBQ0kdDAxNjkyNzE3MDE2Al8xBA10b2tlbnNBbW91bnRCCAUNJHQwMTY5MjcxNzAxNgJfMgQNJHQwMTcwMTkxNzcxNQMJAGYCBQRkZWJ0AAAEDWFtb3VudFRvR2V0RXgDAwkAAAIFC2JvcnJvd0Fzc2V0BQhhc3NldElkQQkAZgIFBGRlYnQFDXRva2Vuc0Ftb3VudEEHCQBlAgUEZGVidAUNdG9rZW5zQW1vdW50QQMDCQAAAgULYm9ycm93QXNzZXQFCGFzc2V0SWRCCQBmAgUEZGVidAUNdG9rZW5zQW1vdW50QgcJAGUCBQRkZWJ0BQ10b2tlbnNBbW91bnRCAAAEBWV4SW52AwkAZgIFDWFtb3VudFRvR2V0RXgAAAkBEGV4Y2hhbmdlRGlyZWN0bHkIBQVwVHlwZQUEcG9vbAUIYXNzZXRJZEEFCGFzc2V0SWRCBQRiYWxBBQRiYWxCBQ1hbW91bnRUb0dldEV4BQtib3Jyb3dBc3NldAAAAwkAAAIFBWV4SW52BQVleEludgQPY0JhbEFBZnRlclJlcGF5CQEOYWNjb3VudEJhbGFuY2UBCQEOYXNzZXRJZEZyb21TdHIBBQhhc3NldElkQQQPY0JhbEJBZnRlclJlcGF5CQEOYWNjb3VudEJhbGFuY2UBCQEOYXNzZXRJZEZyb21TdHIBBQhhc3NldElkQgkAlAoCCQBlAgUPY0JhbEFBZnRlclJlcGF5BQtjQmFsQUJlZm9yZQkAZQIFD2NCYWxCQWZ0ZXJSZXBheQULY0JhbEJCZWZvcmUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJQKAgUNdG9rZW5zQW1vdW50QQUNdG9rZW5zQW1vdW50QgQNdG9Vc2VyQW1vdW50QQgFDSR0MDE3MDE5MTc3MTUCXzEEDXRvVXNlckFtb3VudEIIBQ0kdDAxNzAxOTE3NzE1Al8yCQCWCgQFDXRvVXNlckFtb3VudEEFCGFzc2V0SWRBBQ10b1VzZXJBbW91bnRCBQhhc3NldElkQgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgoBaQERcmVwbGVuaXNoUkVBRE9OTFkDBHBvb2wIbGV2ZXJhZ2UNYm9ycm93QXNzZXRJZAMDCQBmAgBkBQhsZXZlcmFnZQYJAGYCBQhsZXZlcmFnZQCsAgkAAgECH0xldmVyYWdlIGNhbid0IGJlIDwxMDAgYW5kID4zMDAEBHR5cGUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzCQCsAgIFBWtQb29sBQRwb29sAhJQb29sIGlzIG5vdCBpbml0ZWQEDSR0MDE4MDc4MTgxNjcJAQtnZXRQb29sRGF0YQIJAQdBZGRyZXNzAQkA2QQBBQRwb29sBQR0eXBlBANBSWQIBQ0kdDAxODA3ODE4MTY3Al8xBANCSWQIBQ0kdDAxODA3ODE4MTY3Al8yBARiYWxBCAUNJHQwMTgwNzgxODE2NwJfMwQEYmFsQggFDSR0MDE4MDc4MTgxNjcCXzQEB3NoYXJlSWQIBQ0kdDAxODA3ODE4MTY3Al81BA0kdDAxODE3MDE4ODA3AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAgMJAQIhPQIJAQxhc3NldElkVG9TdHIBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFA0FJZAkAAgECFVdyb25nIHBheW1lbnQgYXNzZXQgQQMJAQIhPQIJAQxhc3NldElkVG9TdHIBCAkAkQMCCAUBaQhwYXltZW50cwABB2Fzc2V0SWQFA0JJZAkAAgECFVdyb25nIHBheW1lbnQgYXNzZXQgQgkAlgoECAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUDQUlkCAkAkQMCCAUBaQhwYXltZW50cwABBmFtb3VudAUDQklkAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQMJAAACCQEMYXNzZXRJZFRvU3RyAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNBSWQJAJYKBAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFA0FJZAAABQNCSWQDCQAAAgkBDGFzc2V0SWRUb1N0cgEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDQklkCQCWCgQAAAUDQUlkCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUDQklkCQACAQINV3JvbmcgcGF5bWVudAkAAgECHE9uZSBvciB0d28gcGF5bWVudHMgZXhwZWN0ZWQEBHBtdEEIBQ0kdDAxODE3MDE4ODA3Al8xBAlwbXRBc3NldEEIBQ0kdDAxODE3MDE4ODA3Al8yBARwbXRCCAUNJHQwMTgxNzAxODgwNwJfMwQJcG10QXNzZXRCCAUNJHQwMTgxNzAxODgwNwJfNAQNJHQwMTg4MTAyMDMzNQMJAGYCBQhsZXZlcmFnZQBkBAdkUHJpY2VBCAoAAUAJAPwHBAUPcHJpY2VPcmFjbGVBZGRyAglnZXRUV0FQNjAJAMwIAgUJcG10QXNzZXRBCQDMCAIHBQNuaWwFA25pbAMJAAECBQFAAgooSW50LCBJbnQpBQFACQACAQkArAICCQADAQUBQAIfIGNvdWxkbid0IGJlIGNhc3QgdG8gKEludCwgSW50KQJfMQQHZFByaWNlQggKAAFACQD8BwQFD3ByaWNlT3JhY2xlQWRkcgIJZ2V0VFdBUDYwCQDMCAIFCXBtdEFzc2V0QgkAzAgCBwUDbmlsBQNuaWwDCQABAgUBQAIKKEludCwgSW50KQUBQAkAAgEJAKwCAgkAAwEFAUACHyBjb3VsZG4ndCBiZSBjYXN0IHRvIChJbnQsIEludCkCXzEEDHBheWRJbkRvbGxhcgkAZAIJAGsDBQdkUHJpY2VBBQRwbXRBCQBsBgAKAAAJARBnZXRBc3NldERlY2ltYWxzAQUJcG10QXNzZXRBAAAAAAUERE9XTgkAawMFB2RQcmljZUIFBHBtdEIJAGwGAAoAAAkBEGdldEFzc2V0RGVjaW1hbHMBBQlwbXRBc3NldEIAAAAABQRET1dOBAxib3Jyb3dBbW91bnQJAGsDBQxwYXlkSW5Eb2xsYXIJAGUCBQhsZXZlcmFnZQBkAGQEB3JlcXVlc3QJALkJAgkAzAgCBQR0eXBlCQDMCAIJAKUIAQgFAWkGY2FsbGVyCQDMCAIFBHBvb2wJAMwIAgkApAMBBQRwbXRBCQDMCAIFCXBtdEFzc2V0QQkAzAgCCQCkAwEFBHBtdEIJAMwIAgUJcG10QXNzZXRCCQDMCAIJAKQDAQUEYmFsQQkAzAgCCQCkAwEFBGJhbEIJAMwIAgUHc2hhcmVJZAkAzAgCBQ1ib3Jyb3dBc3NldElkCQDMCAIJAKQDAQUMYm9ycm93QW1vdW50CQDMCAIJAKQDAQABBQNuaWwCASwEDG5ld1JlcXVlc3RJZAoAAUAJAPwHBAUEdGhpcwIQY3JlYXRlTmV3UmVxdWVzdAkAzAgCBQdyZXF1ZXN0BQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQDCQAAAgUMbmV3UmVxdWVzdElkBQxuZXdSZXF1ZXN0SWQEBGFyZ3MJAMwIAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfCQCkAwEAAQkAzAgCBQdzaGFyZUlkCQDMCAIFDWJvcnJvd0Fzc2V0SWQJAMwIAgUMYm9ycm93QW1vdW50CQDMCAIJAKUIAQUEdGhpcwkAzAgCAhlyZXBsZW5pc2hGcm9tTGFuZFJlYWRPbmx5CQDMCAIJAKQDAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBQxuZXdSZXF1ZXN0SWQCGENhbid0IGNyZWF0ZSBuZXcgcmVxdWVzdAUDbmlsBANpbnYJAP0HBAkBDmdldExlbmRTcnZBZGRyAAINZmxhc2hQb3NpdGlvbgUEYXJncwUDbmlsAwkAAAIFA2ludgUDaW52AwkAAAIFDWJvcnJvd0Fzc2V0SWQFCXBtdEFzc2V0QQkAlgoECQBkAgUEcG10QQUMYm9ycm93QW1vdW50BQRwbXRCBQhMT0FOX0ZFRQUMYm9ycm93QW1vdW50CQCWCgQFBHBtdEEJAGQCBQRwbXRCBQxib3Jyb3dBbW91bnQFCExPQU5fRkVFBQxib3Jyb3dBbW91bnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJYKBAUEcG10QQUEcG10QgULTk9fTE9BTl9GRUUAAAQIcGF5bWVudEEIBQ0kdDAxODgxMDIwMzM1Al8xBAhwYXltZW50QggFDSR0MDE4ODEwMjAzMzUCXzIEB2ZlZVR5cGUIBQ0kdDAxODgxMDIwMzM1Al8zBAxib3Jyb3dBbW91bnQIBQ0kdDAxODgxMDIwMzM1Al80BA0kdDAyMDMzODIwNzMyAwkAAAIFBHR5cGUFB1NGX1BPT0wJAQ9yZXBsZW5pc2hTd29wRmkJBQRwb29sBQdmZWVUeXBlBQhwYXltZW50QQUJcG10QXNzZXRBBQhwYXltZW50QgUJcG10QXNzZXRCBQRiYWxBBQRiYWxCBQdzaGFyZUlkCQELcmVwbGVuaXNoV1gHBQRwb29sBQdmZWVUeXBlBQRwbXRBBQlwbXRBc3NldEEFBHBtdEIFCXBtdEFzc2V0QgUHc2hhcmVJZAQKdXNlclN0YWtlZAgFDSR0MDIwMzM4MjA3MzICXzEEB2F4bHlGZWUIBQ0kdDAyMDMzODIwNzMyAl8yBA0kdDAyMDczNTIwODYwCQESd2l0aGRyYXdBbW91bnRDYWxjBAUEcG9vbAUKdXNlclN0YWtlZAUMYm9ycm93QW1vdW50BQ1ib3Jyb3dBc3NldElkAwkAAAIFDSR0MDIwNzM1MjA4NjAFDSR0MDIwNzM1MjA4NjAECGFzc2V0SWRCCAUNJHQwMjA3MzUyMDg2MAJfNAQNdG9Vc2VyQW1vdW50QggFDSR0MDIwNzM1MjA4NjACXzMECGFzc2V0SWRBCAUNJHQwMjA3MzUyMDg2MAJfMgQNdG9Vc2VyQW1vdW50QQgFDSR0MDIwNzM1MjA4NjACXzEJAJQKAgUDbmlsCQDMCAIFCnVzZXJTdGFrZWQJAMwIAgUNdG9Vc2VyQW1vdW50QQkAzAgCBQ10b1VzZXJBbW91bnRCBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEZcmVwbGVuaXNoRnJvbUxhbmRSZWFkT25seQEJcmVxdWVzdElkCQCUCgIFA25pbADnVgFpAQlyZXBsZW5pc2gDBHBvb2wIbGV2ZXJhZ2UNYm9ycm93QXNzZXRJZAMDCQBmAgBkBQhsZXZlcmFnZQYJAGYCBQhsZXZlcmFnZQCsAgkAAgECH0xldmVyYWdlIGNhbid0IGJlIDwxMDAgYW5kID4zMDAEBHR5cGUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzCQCsAgIFBWtQb29sBQRwb29sAhJQb29sIGlzIG5vdCBpbml0ZWQEDSR0MDIxMzAyMjEzOTEJAQtnZXRQb29sRGF0YQIJAQdBZGRyZXNzAQkA2QQBBQRwb29sBQR0eXBlBANBSWQIBQ0kdDAyMTMwMjIxMzkxAl8xBANCSWQIBQ0kdDAyMTMwMjIxMzkxAl8yBARiYWxBCAUNJHQwMjEzMDIyMTM5MQJfMwQEYmFsQggFDSR0MDIxMzAyMjEzOTECXzQEB3NoYXJlSWQIBQ0kdDAyMTMwMjIxMzkxAl81BA0kdDAyMTM5NDIyMDMxAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAgMJAQIhPQIJAQxhc3NldElkVG9TdHIBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFA0FJZAkAAgECFVdyb25nIHBheW1lbnQgYXNzZXQgQQMJAQIhPQIJAQxhc3NldElkVG9TdHIBCAkAkQMCCAUBaQhwYXltZW50cwABB2Fzc2V0SWQFA0JJZAkAAgECFVdyb25nIHBheW1lbnQgYXNzZXQgQgkAlgoECAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUDQUlkCAkAkQMCCAUBaQhwYXltZW50cwABBmFtb3VudAUDQklkAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQMJAAACCQEMYXNzZXRJZFRvU3RyAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNBSWQJAJYKBAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFA0FJZAAABQNCSWQDCQAAAgkBDGFzc2V0SWRUb1N0cgEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDQklkCQCWCgQAAAUDQUlkCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUDQklkCQACAQINV3JvbmcgcGF5bWVudAkAAgECHE9uZSBvciB0d28gcGF5bWVudHMgZXhwZWN0ZWQEBHBtdEEIBQ0kdDAyMTM5NDIyMDMxAl8xBAlwbXRBc3NldEEIBQ0kdDAyMTM5NDIyMDMxAl8yBARwbXRCCAUNJHQwMjEzOTQyMjAzMQJfMwQJcG10QXNzZXRCCAUNJHQwMjEzOTQyMjAzMQJfNAQJbmV3UG9zTnVtCQEYZ2V0TmV3VXNlclBvc2l0aW9uTnVtYmVyAgUEcG9vbAkApQgBCAUBaQZjYWxsZXIDCQBmAgUIbGV2ZXJhZ2UAZAQHZFByaWNlQQgKAAFACQD8BwQFD3ByaWNlT3JhY2xlQWRkcgIJZ2V0VFdBUDYwCQDMCAIFCXBtdEFzc2V0QQkAzAgCBwUDbmlsBQNuaWwDCQABAgUBQAIKKEludCwgSW50KQUBQAkAAgEJAKwCAgkAAwEFAUACHyBjb3VsZG4ndCBiZSBjYXN0IHRvIChJbnQsIEludCkCXzEEB2RQcmljZUIICgABQAkA/AcEBQ9wcmljZU9yYWNsZUFkZHICCWdldFRXQVA2MAkAzAgCBQlwbXRBc3NldEIJAMwIAgcFA25pbAUDbmlsAwkAAQIFAUACCihJbnQsIEludCkFAUAJAAIBCQCsAgIJAAMBBQFAAh8gY291bGRuJ3QgYmUgY2FzdCB0byAoSW50LCBJbnQpAl8xBAxwYXlkSW5Eb2xsYXIJAGQCCQBrAwUHZFByaWNlQQUEcG10QQkAbAYACgAACQEQZ2V0QXNzZXREZWNpbWFscwEFCXBtdEFzc2V0QQAAAAAFBERPV04JAGsDBQdkUHJpY2VCBQRwbXRCCQBsBgAKAAAJARBnZXRBc3NldERlY2ltYWxzAQUJcG10QXNzZXRCAAAAAAUERE9XTgQMYm9ycm93QW1vdW50CQBrAwUMcGF5ZEluRG9sbGFyCQBlAgUIbGV2ZXJhZ2UAZABkBAdyZXF1ZXN0CQC5CQIJAMwIAgUEdHlwZQkAzAgCCQClCAEIBQFpBmNhbGxlcgkAzAgCBQRwb29sCQDMCAIJAKQDAQUEcG10QQkAzAgCBQlwbXRBc3NldEEJAMwIAgkApAMBBQRwbXRCCQDMCAIFCXBtdEFzc2V0QgkAzAgCCQCkAwEFBGJhbEEJAMwIAgkApAMBBQRiYWxCCQDMCAIFB3NoYXJlSWQJAMwIAgUNYm9ycm93QXNzZXRJZAkAzAgCCQCkAwEFDGJvcnJvd0Ftb3VudAkAzAgCCQCkAwEFCW5ld1Bvc051bQUDbmlsAgEsBAxuZXdSZXF1ZXN0SWQKAAFACQD8BwQFBHRoaXMCEGNyZWF0ZU5ld1JlcXVlc3QJAMwIAgUHcmVxdWVzdAUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AwkAAAIFDG5ld1JlcXVlc3RJZAUMbmV3UmVxdWVzdElkBARhcmdzCQDMCAIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgIBXwkApAMBBQluZXdQb3NOdW0JAMwIAgUHc2hhcmVJZAkAzAgCBQ1ib3Jyb3dBc3NldElkCQDMCAIFDGJvcnJvd0Ftb3VudAkAzAgCCQClCAEFBHRoaXMJAMwIAgIRcmVwbGVuaXNoRnJvbUxhbmQJAMwIAgkApAMBCQETdmFsdWVPckVycm9yTWVzc2FnZQIFDG5ld1JlcXVlc3RJZAIYQ2FuJ3QgY3JlYXRlIG5ldyByZXF1ZXN0BQNuaWwEA2ludgkA/QcECQEOZ2V0TGVuZFNydkFkZHIAAg1mbGFzaFBvc2l0aW9uBQRhcmdzBQNuaWwDCQAAAgUDaW52BQNpbnYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQNJHQwMjMzNzIyMzc2MwMJAAACBQR0eXBlBQdTRl9QT09MCQEPcmVwbGVuaXNoU3dvcEZpCQUEcG9vbAULTk9fTE9BTl9GRUUFBHBtdEEFCXBtdEFzc2V0QQUEcG10QgUJcG10QXNzZXRCBQRiYWxBBQRiYWxCBQdzaGFyZUlkCQELcmVwbGVuaXNoV1gHBQRwb29sBQtOT19MT0FOX0ZFRQUEcG10QQUJcG10QXNzZXRBBQRwbXRCBQlwbXRBc3NldEIFB3NoYXJlSWQECnVzZXJTdGFrZWQIBQ0kdDAyMzM3MjIzNzYzAl8xBAdheGx5RmVlCAUNJHQwMjMzNzIyMzc2MwJfMgkBEHJlcGxlbmlzaEVudHJpZXMHBQRwb29sCQClCAEIBQFpBmNhbGxlcgUKdXNlclN0YWtlZAUHYXhseUZlZQUJbmV3UG9zTnVtBQdzaGFyZUlkBQR0eXBlAWkBEXJlcGxlbmlzaEZyb21MYW5kAQlyZXF1ZXN0SWQEB3JlcXVlc3QJALUJAgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMJAKwCAgUJcmVxdWVzdElkBQprUmVxdWVzdElkCQCsAgICE05vIHJlcXVlc3Qgd2l0aCBpZCAFCXJlcXVlc3RJZAIBLAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECEldyb25nIHBheW1lbnQgc2l6ZQMDCQECIT0CCQEMYXNzZXRJZFRvU3RyAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQCRAwIFB3JlcXVlc3QACgYJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUHcmVxdWVzdAALCQACAQINV3JvbmcgcGF5bWVudAQEcG10QQMJAAACCQCRAwIFB3JlcXVlc3QABAkBDGFzc2V0SWRUb1N0cgEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQdyZXF1ZXN0AAMICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUHcmVxdWVzdAADBARwbXRCAwkAAAIJAJEDAgUHcmVxdWVzdAAGCQEMYXNzZXRJZFRvU3RyAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFB3JlcXVlc3QABQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQdyZXF1ZXN0AAMEBHBvb2wJAJEDAgUHcmVxdWVzdAACBAR1c2VyCQCRAwIFB3JlcXVlc3QAAQQHc2hhcmVJZAkAkQMCBQdyZXF1ZXN0AAkEBnBvc051bQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFB3JlcXVlc3QADAQNJHQwMjQ3MjEyNTIzNgMJAAACCQCRAwIFB3JlcXVlc3QAAAUHU0ZfUE9PTAkBD3JlcGxlbmlzaFN3b3BGaQkFBHBvb2wFCExPQU5fRkVFBQRwbXRBCQCRAwIFB3JlcXVlc3QABAUEcG10QgkAkQMCBQdyZXF1ZXN0AAYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQdyZXF1ZXN0AAcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQdyZXF1ZXN0AAgFB3NoYXJlSWQDCQAAAgkAkQMCBQdyZXF1ZXN0AAAFB1dYX1BPT0wJAQtyZXBsZW5pc2hXWAcFBHBvb2wFCExPQU5fRkVFBQRwbXRBCQCRAwIFB3JlcXVlc3QABAUEcG10QgkAkQMCBQdyZXF1ZXN0AAYFB3NoYXJlSWQJAAIBAhJXcm9uZyByZXF1ZXN0IHR5cGUECnVzZXJTdGFrZWQIBQ0kdDAyNDcyMTI1MjM2Al8xBAdheGx5RmVlCAUNJHQwMjQ3MjEyNTIzNgJfMgQNYm9ycm93RW50cmllcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAJEDAgUHcmVxdWVzdAACAgFfCQCRAwIFB3JlcXVlc3QAAQIBXwkAkQMCBQdyZXF1ZXN0AAwFEWtVc2VyQm9ycm93QW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkAkQMCBQdyZXF1ZXN0AAICAV8JAJEDAgUHcmVxdWVzdAABAgFfCQCRAwIFB3JlcXVlc3QADAUSa1VzZXJCb3Jyb3dBc3NldElkCQCRAwIFB3JlcXVlc3QACgUDbmlsBAdlbnRyaWVzCQEQcmVwbGVuaXNoRW50cmllcwcFBHBvb2wFBHVzZXIFCnVzZXJTdGFrZWQFB2F4bHlGZWUFBnBvc051bQUHc2hhcmVJZAkAkQMCBQdyZXF1ZXN0AAAJAJQKAgkAzQgCCQDOCAIFB2VudHJpZXMFDWJvcnJvd0VudHJpZXMJAQtEZWxldGVFbnRyeQEJAKwCAgUJcmVxdWVzdElkBQprUmVxdWVzdElkBQp1c2VyU3Rha2VkAWkBCHdpdGhkcmF3AgRwb29sBXBvc0lkBAR1c2VyCQClCAEIBQFpBmNhbGxlcgQHcEFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyAgFfCQCkAwEFBXBvc0lkBQ1rVXNlclBvc2l0aW9uAhBVbmtub3duIHBvc2l0aW9uBAx1c2VySW50ZXJlc3QJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyAgFfCQCkAwEFBXBvc0lkBRVrVXNlclBvc2l0aW9uSW50ZXJlc3QEC3Bvb2xJbnRlcnN0CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFBHBvb2wFDWtQb29sSW50ZXJlc3QEDnBvb2xUb3RhbFNoYXJlCQERZ2V0UG9vbFRvdGFsU2hhcmUBBQRwb29sBA91c2VyQ2FuV2l0aGRyYXcJAGQCBQdwQW1vdW50CQBrAwUHcEFtb3VudAkAZQIFC3Bvb2xJbnRlcnN0BQx1c2VySW50ZXJlc3QFB1NDQUxFMTAECHVzZXJBZGRyCQEHQWRkcmVzcwEJANkEAQUEdXNlcgQMYm9ycm93QW1vdW50CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgIBXwkApAMBBQVwb3NJZAURa1VzZXJCb3Jyb3dBbW91bnQEC2JvcnJvd0Fzc2V0CQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgIBXwkApAMBBQVwb3NJZAUSa1VzZXJCb3Jyb3dBc3NldElkBARkZWJ0AwkAZgIFDGJvcnJvd0Ftb3VudAAACgABQAkA/AcECQEOZ2V0TGVuZFNydkFkZHIAAgxnZXRBc3NldERlYnQJAMwIAgcJAMwIAgkArAICCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyAgFfCQCkAwEFBXBvc0lkCQDMCAIFC2JvcnJvd0Fzc2V0BQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQAAAQNJHQwMjY2NDMyNjc2MwkBEndpdGhkcmF3QW1vdW50Q2FsYwQFBHBvb2wFD3VzZXJDYW5XaXRoZHJhdwUEZGVidAULYm9ycm93QXNzZXQDCQAAAgUNJHQwMjY2NDMyNjc2MwUNJHQwMjY2NDMyNjc2MwQIYXNzZXRJZEIIBQ0kdDAyNjY0MzI2NzYzAl80BA10b1VzZXJBbW91bnRCCAUNJHQwMjY2NDMyNjc2MwJfMwQIYXNzZXRJZEEIBQ0kdDAyNjY0MzI2NzYzAl8yBA10b1VzZXJBbW91bnRBCAUNJHQwMjY2NDMyNjc2MwJfMQQLY2xvc2VEYnRJbnYDCQBmAgUEZGVidAAACQD8BwQJAQ5nZXRMZW5kU3J2QWRkcgACCHJlcGF5Rm9yCQDMCAIJAKwCAgkArAICBQR1c2VyAgFfCQCkAwEFBXBvc0lkBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ5hc3NldElkRnJvbVN0cgEFC2JvcnJvd0Fzc2V0BQRkZWJ0BQNuaWwAAAMJAAACBQtjbG9zZURidEludgULY2xvc2VEYnRJbnYJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXICAV8JAKQDAQUFcG9zSWQFDWtVc2VyUG9zaXRpb24JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXICAV8JAKQDAQUFcG9zSWQFFWtVc2VyUG9zaXRpb25JbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBQprUG9vbFRvdGFsCQBlAgUOcG9vbFRvdGFsU2hhcmUFD3VzZXJDYW5XaXRoZHJhdwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQh1c2VyQWRkcgUNdG9Vc2VyQW1vdW50QQkBDmFzc2V0SWRGcm9tU3RyAQUIYXNzZXRJZEEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUIdXNlckFkZHIFDXRvVXNlckFtb3VudEIJAQ5hc3NldElkRnJvbVN0cgEFCGFzc2V0SWRCBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEQY3JlYXRlTmV3UmVxdWVzdAEGcGFyYW1zCQELdmFsdWVPckVsc2UCCQEKaXNTZWxmQ2FsbAEFAWkEDG5ld1JlcXVlc3RJZAkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUMa1JlcXVlc3RJdGVyAAAAAQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkApAMBBQxuZXdSZXF1ZXN0SWQFCmtSZXF1ZXN0SWQFBnBhcmFtcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUMa1JlcXVlc3RJdGVyBQxuZXdSZXF1ZXN0SWQFA25pbAUMbmV3UmVxdWVzdElkAWkBEmNhcGl0YWxpemVFeEtlZXBlcgwEcG9vbAR0eXBlCXRva2VuVG9JZBBhbW91bnRUb0V4Y2hhbmdlBWNsYWltCWFtb3VudHNJbglhZGRyZXNzZXMPYXNzZXRzVG9SZWNlaXZlC2VzdFJlY2VpdmVkEXNsaXBwYWdlVG9sZXJhbmNlC21pblJlY2VpdmVkB29wdGlvbnMEDSR0MDI4MDYwMjgyNTQDBQVjbGFpbQkBC2NsYWltRmFybWVkAgUEdHlwZQUEcG9vbAQMY2xhaW1lZEFzc2V0AwkAAAIFBHR5cGUFB1NGX1BPT0wFBlNXT1BJRAUEV1hJRAkAlAoCBRBhbW91bnRUb0V4Y2hhbmdlBQxjbGFpbWVkQXNzZXQEDWNsYWltZWRBbW91bnQIBQ0kdDAyODA2MDI4MjU0Al8xBAxjbGFpbWVkQXNzZXQIBQ0kdDAyODA2MDI4MjU0Al8yBA9leGNoYW5nZWRBbW91bnQJAQ5leGNoYW5nZUtlZXBlcgoFCXRva2VuVG9JZAUQYW1vdW50VG9FeGNoYW5nZQUMY2xhaW1lZEFzc2V0BQlhbW91bnRzSW4FCWFkZHJlc3NlcwUPYXNzZXRzVG9SZWNlaXZlBQtlc3RSZWNlaXZlZAURc2xpcHBhZ2VUb2xlcmFuY2UFC21pblJlY2VpdmVkBQdvcHRpb25zBAZjaGFuZ2UJAGUCBQ1jbGFpbWVkQW1vdW50BRBhbW91bnRUb0V4Y2hhbmdlBAtjaGFuZ2VFbnRyeQMJAGYCBQZjaGFuZ2UAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBQ5rUG9vbENhcENoYW5nZQkAZAIFBmNoYW5nZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBHBvb2wFDmtQb29sQ2FwQ2hhbmdlAAAFA25pbAUDbmlsCQDOCAIJAQpjYXBpdGFsaXplBAUEcG9vbAUEdHlwZQUJdG9rZW5Ub0lkBQ9leGNoYW5nZWRBbW91bnQFC2NoYW5nZUVudHJ5AWkBEmNhcGl0YWxpemVFeFBhenpsZQgEcG9vbAR0eXBlCXRva2VuVG9JZBBhbW91bnRUb0V4Y2hhbmdlBWNsYWltCXJvdXRlc1N0cgxtaW5Ub1JlY2VpdmUHb3B0aW9ucwQNJHQwMjg5MTAyOTEwNAMFBWNsYWltCQELY2xhaW1GYXJtZWQCBQR0eXBlBQRwb29sBAxjbGFpbWVkQXNzZXQDCQAAAgUEdHlwZQUHU0ZfUE9PTAUGU1dPUElEBQRXWElECQCUCgIFEGFtb3VudFRvRXhjaGFuZ2UFDGNsYWltZWRBc3NldAQNY2xhaW1lZEFtb3VudAgFDSR0MDI4OTEwMjkxMDQCXzEEDGNsYWltZWRBc3NldAgFDSR0MDI4OTEwMjkxMDQCXzIED2V4Y2hhbmdlZEFtb3VudAkBDmV4Y2hhbmdlUGF6emxlBgUJdG9rZW5Ub0lkBRBhbW91bnRUb0V4Y2hhbmdlBQxjbGFpbWVkQXNzZXQFCXJvdXRlc1N0cgUMbWluVG9SZWNlaXZlBQdvcHRpb25zBAZjaGFuZ2UJAGUCBQ1jbGFpbWVkQW1vdW50BRBhbW91bnRUb0V4Y2hhbmdlBAtjaGFuZ2VFbnRyeQMJAGYCBQZjaGFuZ2UAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBQ5rUG9vbENhcENoYW5nZQkAZAIFBmNoYW5nZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBHBvb2wFDmtQb29sQ2FwQ2hhbmdlAAAFA25pbAUDbmlsCQDOCAIJAQpjYXBpdGFsaXplBAUEcG9vbAUEdHlwZQUJdG9rZW5Ub0lkBQ9leGNoYW5nZWRBbW91bnQFC2NoYW5nZUVudHJ5AWkBEmNhcGl0YWxpemVFeFN3b3BGaQwEcG9vbAR0eXBlCXRva2VuVG9JZBBhbW91bnRUb0V4Y2hhbmdlBWNsYWltCmV4Y2hhbmdlcnMOZXhjaGFuZ2Vyc1R5cGUFYXJnczEFYXJnczIRcm91dGluZ0Fzc2V0c0tleXMSbWluQW1vdW50VG9SZWNlaXZlB29wdGlvbnMEDSR0MDI5ODI3MzAwMjEDBQVjbGFpbQkBC2NsYWltRmFybWVkAgUEdHlwZQUEcG9vbAQMY2xhaW1lZEFzc2V0AwkAAAIFBHR5cGUFB1NGX1BPT0wFBlNXT1BJRAUEV1hJRAkAlAoCBRBhbW91bnRUb0V4Y2hhbmdlBQxjbGFpbWVkQXNzZXQEDWNsYWltZWRBbW91bnQIBQ0kdDAyOTgyNzMwMDIxAl8xBAxjbGFpbWVkQXNzZXQIBQ0kdDAyOTgyNzMwMDIxAl8yBA9leGNoYW5nZWRBbW91bnQJAQ5leGNoYW5nZVN3b3BGaQoFCXRva2VuVG9JZAUQYW1vdW50VG9FeGNoYW5nZQUMY2xhaW1lZEFzc2V0BQpleGNoYW5nZXJzBQ5leGNoYW5nZXJzVHlwZQUFYXJnczEFBWFyZ3MyBRFyb3V0aW5nQXNzZXRzS2V5cwUSbWluQW1vdW50VG9SZWNlaXZlBQdvcHRpb25zBAZjaGFuZ2UJAGUCBQ1jbGFpbWVkQW1vdW50BRBhbW91bnRUb0V4Y2hhbmdlBAtjaGFuZ2VFbnRyeQMJAGYCBQZjaGFuZ2UAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBQ5rUG9vbENhcENoYW5nZQkAZAIFBmNoYW5nZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBHBvb2wFDmtQb29sQ2FwQ2hhbmdlAAAFA25pbAUDbmlsCQDOCAIJAQpjYXBpdGFsaXplBAUEcG9vbAUEdHlwZQUJdG9rZW5Ub0lkBQ9leGNoYW5nZWRBbW91bnQFC2NoYW5nZUVudHJ5AWkBC2luaXROZXdQb29sBQR0eXBlCHBvb2xBZGRyC2luRmVlTm9Mb2FuCWluRmVlTG9hbgZjYXBGZWUDAwkBAiE9AgUEdHlwZQUHU0ZfUE9PTAkBAiE9AgUEdHlwZQUHV1hfUE9PTAcJAAIBAgpXcm9uZyB0eXBlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFCHBvb2xBZGRyBRVrQXhseUluRmVlV2l0aG91dExvYW4FC2luRmVlTm9Mb2FuCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFCHBvb2xBZGRyBRJrQXhseUluRmVlV2l0aExvYW4FCWluRmVlTG9hbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQhwb29sQWRkcgULa0F4bHlDYXBGZWUFBmNhcEZlZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQhwb29sQWRkcgUNa1Bvb2xJbnRlcmVzdAAACQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUFa1Bvb2wFCHBvb2xBZGRyBQR0eXBlBQNuaWwBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5xfQ7ZA==", "height": 2541257, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8iUSH9DbjP1fqRFbK55QmorkUukNSmYzqKfjGHZpLu8N Next: 39TFbC5mtxkszWZnZGrJZdY5VTSohx4Hbh2QmrWm16oU Diff:
OldNewDifferences
648648
649649
650650 @Callable(P)
651-func replenishFromLandReadOnly (cS) = nil
651+func replenishFromLandReadOnly (cS) = $Tuple2(nil, 11111)
652652
653653
654654
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "SF"
55
66 let b = "WX"
77
88 let c = "cap"
99
1010 let d = "loan"
1111
1212 let e = "noLoan"
1313
1414 let f = 100000000
1515
1616 let g = 10000000000
1717
1818 let h = 1000000
1919
2020 let i = "A_asset_balance"
2121
2222 let j = "B_asset_balance"
2323
2424 let k = "A_asset_id"
2525
2626 let l = "B_asset_id"
2727
2828 let m = "share_asset_id"
2929
3030 let n = "commission"
3131
3232 let o = "_user_position"
3333
3434 let p = "_user_position_borrow_amount"
3535
3636 let q = "_user_position_borrow_asset_id"
3737
3838 let r = "_user_position_number"
3939
4040 let s = "_user_position_interest"
4141
4242 let t = "_pool_total"
4343
4444 let u = "_pool_interest"
4545
4646 let v = "_axly_fee_without_loan"
4747
4848 let w = "_axly_fee_with_loan"
4949
5050 let x = "_axly_fee_cap"
5151
5252 let y = "_request_id"
5353
5454 let z = "requests_iter"
5555
5656 let A = "pool_"
5757
5858 let B = "_pool_cap_change"
5959
6060 let C = "axly_money_box"
6161
6262 let D = "swopfi_farming_addr"
6363
6464 let E = "lend_service_addr"
6565
6666 let F = "price_oracle"
6767
6868 let G = "exchange_contract"
6969
7070 let H = "wx_swap_contract"
7171
7272 let I = Address(fromBase58String(valueOrErrorMessage(getString(this, C), "No axly moneyBox address")))
7373
7474 let J = Address(fromBase58String(valueOrErrorMessage(getString(this, G), "No exchange contract address")))
7575
7676 let K = Address(fromBase58String(valueOrErrorMessage(getString(this, F), "No price oracle address")))
7777
7878 let L = Address(fromBase58String(valueOrErrorMessage(getString(this, H), "No wx swap address")))
7979
8080 let M = base58'4W19ndijcc2CsQa9HGW2dfXKTVXhnneWWttxXrtjPmEp'
8181
8282 let N = base58'EMAMLxDnv3xiz8RXg8Btj33jcEw3wLczL3JKYYmuubpc'
8383
8484 func O (P) = if ((P.caller == this))
8585 then unit
8686 else throw("Only contract itself can call this function")
8787
8888
8989 func Q (R) = {
9090 let S = R
9191 if ($isInstanceOf(S, "ByteVector"))
9292 then {
9393 let T = S
9494 assetBalance(this, T)
9595 }
9696 else if ($isInstanceOf(S, "Unit"))
9797 then {
9898 let U = S
9999 wavesBalance(this).available
100100 }
101101 else throw("Match error")
102102 }
103103
104104
105105 func V (W) = $Tuple5(valueOrErrorMessage(getString(W, k), "Can't get pool A asset id"), valueOrErrorMessage(getString(W, l), "Can't get pool B asset id"), valueOrErrorMessage(getInteger(W, i), "Can't get pool A asset balance"), valueOrErrorMessage(getInteger(W, j), "Can't get pool B asset balance"), valueOrErrorMessage(getString(W, m), "Can't get share asset id"))
106106
107107
108108 func X (W) = {
109109 let Y = {
110110 let Z = invoke(W, "getPoolConfigWrapperREADONLY", nil, nil)
111111 if ($isInstanceOf(Z, "List[Any]"))
112112 then Z
113113 else throw(($getType(Z) + " couldn't be cast to List[Any]"))
114114 }
115115 if ((Y == Y))
116116 then $Tuple5(valueOrErrorMessage({
117117 let Z = Y[4]
118118 if ($isInstanceOf(Z, "String"))
119119 then Z
120120 else unit
121121 }, "Can't get pool A asset id"), valueOrErrorMessage({
122122 let Z = Y[5]
123123 if ($isInstanceOf(Z, "String"))
124124 then Z
125125 else unit
126126 }, "Can't get pool B asset id"), 0, 0, valueOrErrorMessage({
127127 let Z = Y[3]
128128 if ($isInstanceOf(Z, "String"))
129129 then Z
130130 else unit
131131 }, "Can't get pool LP asset id"))
132132 else throw("Strict value is not equal to itself.")
133133 }
134134
135135
136136 func aa (W,ab) = if ((ab == a))
137137 then V(W)
138138 else if ((ab == b))
139139 then X(W)
140140 else throw("Wrong pool type")
141141
142142
143143 func ac (ad) = valueOrElse(getInteger(this, (ad + t)), 0)
144144
145145
146146 func ae (ad,af) = (valueOrElse(getInteger(this, (((ad + "_") + af) + r)), 0) + 1)
147147
148148
149149 func ag (ad,ah) = if ((ah == "cap"))
150150 then getIntegerValue(this, (ad + x))
151151 else if ((ah == "loan"))
152152 then getIntegerValue(this, (ad + w))
153153 else if ((ah == "noLoan"))
154154 then getIntegerValue(this, (ad + v))
155155 else throw("Wrong fee type")
156156
157157
158158 func ai () = Address(fromBase58String(valueOrErrorMessage(getString(this, D), "Can't get swopfi farming addr")))
159159
160160
161161 func aj (W) = {
162162 let ak = Address(fromBase58String(valueOrErrorMessage(getString(W, "%s__factoryContract"), "Can't get WX factory contract addr")))
163163 let al = split(valueOrErrorMessage(getString(ak, "%s__factoryConfig"), "Can't get WX factory cfg"), "__")
164164 Address(fromBase58String(al[1]))
165165 }
166166
167167
168168 func am () = Address(fromBase58String(valueOrErrorMessage(getString(this, E), "Can't get lend service addr")))
169169
170170
171171 func an (R) = {
172172 let S = R
173173 if ($isInstanceOf(S, "ByteVector"))
174174 then {
175175 let T = S
176176 toBase58String(T)
177177 }
178178 else if ($isInstanceOf(S, "Unit"))
179179 then {
180180 let U = S
181181 "WAVES"
182182 }
183183 else throw("Match error")
184184 }
185185
186186
187187 func ao (R) = if ((R == "WAVES"))
188188 then unit
189189 else fromBase58String(R)
190190
191191
192192 func ap (R) = if ((R == "WAVES"))
193193 then 8
194194 else {
195195 let S = assetInfo(fromBase58String(R))
196196 if ($isInstanceOf(S, "Asset"))
197197 then {
198198 let aq = S
199199 aq.decimals
200200 }
201201 else throw("Can't find asset")
202202 }
203203
204204
205205 func ar (ad,ah,as,at,au,av,aw,ax,ay) = {
206206 let az = Q(fromBase58String(ay))
207207 if ((az == az))
208208 then {
209209 let W = Address(fromBase58String(ad))
210210 let aA = fraction(f, as, aw)
211211 let aB = fraction(f, au, ax)
212212 let aC = if ((aB > aA))
213213 then {
214214 let aD = fraction(ax, aA, f, CEILING)
215215 $Tuple4(as, aD, (au - aD), av)
216216 }
217217 else {
218218 let aD = fraction(aw, aB, f, CEILING)
219219 $Tuple4(aD, au, (as - aD), at)
220220 }
221221 let aE = aC._1
222222 let aF = aC._2
223223 let aG = aC._3
224224 let aH = aC._4
225225 let aI = if (if ((aE > 0))
226226 then (aF > 0)
227227 else false)
228228 then {
229229 let aJ = [AttachedPayment(ao(at), aE), AttachedPayment(ao(av), aF)]
230230 invoke(W, "callFunction", ["replenishWithTwoTokens", ["false", "0"]], aJ)
231231 }
232232 else 0
233233 if ((aI == aI))
234234 then {
235235 let aK = if ((aG > 0))
236236 then {
237237 let aJ = [AttachedPayment(ao(aH), aG)]
238238 let aL = ["0", "false", "0"]
239239 invoke(W, "callFunction", ["replenishWithOneToken", aL], aJ)
240240 }
241241 else 0
242242 if ((aK == aK))
243243 then {
244244 let aM = Q(fromBase58String(ay))
245245 let aN = (aM - az)
246246 let aO = fraction(aN, ag(ad, ah), h)
247247 let aP = (aN - aO)
248248 if ((0 >= aP))
249249 then throw("amount of staked sharetokens must be > 0")
250250 else {
251251 let aQ = invoke(ai(), "lockShareTokens", [ad, 0], [AttachedPayment(fromBase58String(ay), aP)])
252252 if ((aQ == aQ))
253253 then $Tuple2(aP, aO)
254254 else throw("Strict value is not equal to itself.")
255255 }
256256 }
257257 else throw("Strict value is not equal to itself.")
258258 }
259259 else throw("Strict value is not equal to itself.")
260260 }
261261 else throw("Strict value is not equal to itself.")
262262 }
263263
264264
265265 func aR (ad,ah,as,at,au,av,ay) = {
266266 let W = Address(fromBase58String(ad))
267267 let aS = if (if ((as > 0))
268268 then (au > 0)
269269 else false)
270270 then {
271271 let aT = split({
272272 let Z = invoke(W, "evaluatePutByAmountAssetREADONLY", [as], nil)
273273 if ($isInstanceOf(Z, "String"))
274274 then Z
275275 else throw(($getType(Z) + " couldn't be cast to String"))
276276 }, "__")
277277 if ((aT == aT))
278278 then {
279279 let aU = split({
280280 let Z = invoke(W, "evaluatePutByPriceAssetREADONLY", [au], nil)
281281 if ($isInstanceOf(Z, "String"))
282282 then Z
283283 else throw(($getType(Z) + " couldn't be cast to String"))
284284 }, "__")
285285 if ((aU == aU))
286286 then {
287287 let aV = parseIntValue(aT[1])
288288 let aW = parseIntValue(aU[1])
289289 if ((aW > aV))
290290 then {
291291 let aX = parseIntValue(aT[8])
292292 $Tuple4(as, aX, (au - aX), av)
293293 }
294294 else {
295295 let aY = parseIntValue(aU[7])
296296 $Tuple4(aY, au, (as - aY), at)
297297 }
298298 }
299299 else throw("Strict value is not equal to itself.")
300300 }
301301 else throw("Strict value is not equal to itself.")
302302 }
303303 else if ((as > 0))
304304 then $Tuple4(as, au, as, at)
305305 else if ((au > 0))
306306 then $Tuple4(as, au, au, av)
307307 else throw("pmts must be > 0")
308308 let aE = aS._1
309309 let aF = aS._2
310310 let aG = aS._3
311311 let aH = aS._4
312312 let az = Q(fromBase58String(ay))
313313 if ((az == az))
314314 then {
315315 let aI = if (if ((aE > 0))
316316 then (aF > 0)
317317 else false)
318318 then {
319319 let aJ = [AttachedPayment(ao(at), aE), AttachedPayment(ao(av), aF)]
320320 invoke(W, "put", [1000000, false], aJ)
321321 }
322322 else 0
323323 if ((aI == aI))
324324 then {
325325 let aK = if ((aG > 0))
326326 then {
327327 let aJ = [AttachedPayment(ao(aH), aG)]
328328 invoke(W, "putOneTkn", [0, false], aJ)
329329 }
330330 else 0
331331 if ((aK == aK))
332332 then {
333333 let aM = Q(fromBase58String(ay))
334334 let aN = (aM - az)
335335 let aO = fraction(aN, ag(ad, ah), h)
336336 let aP = (aN - aO)
337337 if ((0 >= aP))
338338 then throw("amount of staked sharetokens must be > 0")
339339 else {
340340 let aQ = invoke(aj(W), "stake", nil, [AttachedPayment(fromBase58String(ay), aP)])
341341 if ((aQ == aQ))
342342 then $Tuple2(aP, aO)
343343 else throw("Strict value is not equal to itself.")
344344 }
345345 }
346346 else throw("Strict value is not equal to itself.")
347347 }
348348 else throw("Strict value is not equal to itself.")
349349 }
350350 else throw("Strict value is not equal to itself.")
351351 }
352352
353353
354354 func aZ (ad,af,ba,aO,bb,ay,ab) = {
355355 let bc = ac(ad)
356356 let bd = getIntegerValue(this, (ad + u))
357357 [IntegerEntry((ad + t), (bc + ba)), IntegerEntry((((((ad + "_") + af) + "_") + toString(bb)) + o), ba), IntegerEntry((((((ad + "_") + af) + "_") + toString(bb)) + s), bd), IntegerEntry((((ad + "_") + af) + r), bb), ScriptTransfer(I, aO, fromBase58String(ay))]
358358 }
359359
360360
361361 func be (ab,ad) = if ((ab == a))
362362 then {
363363 let bf = Q(M)
364364 if ((bf == bf))
365365 then {
366366 let bg = invoke(ai(), "claim", [ad], nil)
367367 if ((bg == bg))
368368 then {
369369 let bh = Q(M)
370370 $Tuple2((bh - bf), M)
371371 }
372372 else throw("Strict value is not equal to itself.")
373373 }
374374 else throw("Strict value is not equal to itself.")
375375 }
376376 else if ((ab == b))
377377 then {
378378 let bf = Q(N)
379379 if ((bf == bf))
380380 then {
381381 let bg = invoke(aj(Address(fromBase58String(ad))), "claimWX", [ad], nil)
382382 if ((bg == bg))
383383 then {
384384 let bh = Q(N)
385385 $Tuple2((bh - bf), N)
386386 }
387387 else throw("Strict value is not equal to itself.")
388388 }
389389 else throw("Strict value is not equal to itself.")
390390 }
391391 else throw("Wrong pool type")
392392
393393
394394 func bi (bj,bk,bl,bm,bn,bo,bp,bq,br,bs) = {
395395 let bt = Q(ao(bj))
396396 if ((bt == bt))
397397 then {
398398 let bg = invoke(J, "swap", [bm, bn, bo, bp, bq, br, bs], [AttachedPayment(bl, bk)])
399399 if ((bg == bg))
400400 then (Q(ao(bj)) - bt)
401401 else throw("Strict value is not equal to itself.")
402402 }
403403 else throw("Strict value is not equal to itself.")
404404 }
405405
406406
407407 func bu (bj,bk,bl,bv,bw,bs) = {
408408 let bt = Q(ao(bj))
409409 if ((bt == bt))
410410 then {
411411 let bg = invoke(J, "puzzleSwap", [bv, bw, bs], [AttachedPayment(bl, bk)])
412412 if ((bg == bg))
413413 then (Q(ao(bj)) - bt)
414414 else throw("Strict value is not equal to itself.")
415415 }
416416 else throw("Strict value is not equal to itself.")
417417 }
418418
419419
420420 func bx (bj,bk,bl,by,bz,bA,bB,bC,bD,bs) = {
421421 let bt = Q(ao(bj))
422422 if ((bt == bt))
423423 then {
424424 let bg = invoke(J, "swopfiSwap", [by, bz, bA, bB, bC, bD, bs], [AttachedPayment(bl, bk)])
425425 if ((bg == bg))
426426 then (Q(ao(bj)) - bt)
427427 else throw("Strict value is not equal to itself.")
428428 }
429429 else throw("Strict value is not equal to itself.")
430430 }
431431
432432
433433 func bE (ad,ab,bF,bG) = {
434434 let W = Address(fromBase58String(ad))
435435 let bH = aa(W, ab)
436436 let bI = bH._1
437437 let bJ = bH._2
438438 let aw = bH._3
439439 let ax = bH._4
440440 let ay = bH._5
441441 let bK = if ((bF == bI))
442442 then $Tuple2(bG, 0)
443443 else $Tuple2(0, bG)
444444 let as = bK._1
445445 let au = bK._2
446446 let bL = if ((ab == a))
447447 then ar(ad, c, as, bI, au, bJ, aw, ax, ay)
448448 else aR(ad, c, as, bI, au, bJ, ay)
449449 let ba = bL._1
450450 let bM = bL._2
451451 let bd = valueOrElse(getInteger(this, (ad + u)), 0)
452452 let bN = ac(ad)
453453 let bO = (bd + fraction(ba, g, bN))
454454 [IntegerEntry((ad + u), bO), ScriptTransfer(I, bM, fromBase58String(ay))]
455455 }
456456
457457
458458 func bP (ad,bQ,bR,aw,ax,bS,bT) = {
459459 let W = Address(fromBase58String(ad))
460460 let bU = 1000000
461461 let bV = getIntegerValue(W, n)
462462 let bW = fraction(bS, bU, (bU - bV))
463463 let bX = if ((bT == bQ))
464464 then {
465465 let bY = fraction(aw, bW, (ax - bW))
466466 $Tuple2(bY, bR)
467467 }
468468 else {
469469 let bY = fraction(ax, bW, (aw - bW))
470470 $Tuple2(bY, bQ)
471471 }
472472 let bY = bX._1
473473 let bZ = bX._2
474474 invoke(W, "callFunction", ["exchange", ["1"]], [AttachedPayment(ao(bZ), bY)])
475475 }
476476
477477
478478 func ca (ad,bQ,bR,aw,ax,bS,bT) = {
479479 let W = Address(fromBase58String(ad))
480480 let cb = getIntegerValue(L, "%s__protocolFee")
481481 let cc = getIntegerValue(L, "%s__poolFee")
482482 let cd = toBigInt(100000000)
483483 let ce = if ((bT == bQ))
484484 then {
485485 let bY = fraction(aw, bS, (ax - bS))
486486 $Tuple2(bY, bR)
487487 }
488488 else {
489489 let bY = fraction(ax, bS, (aw - bS))
490490 $Tuple2(bY, bQ)
491491 }
492492 let bY = ce._1
493493 let bZ = ce._2
494494 let cf = toInt(fraction(toBigInt(bY), cd, (cd - toBigInt((cb + cc)))))
495495 invoke(L, "swap", [1, bT, toString(this)], [AttachedPayment(ao(bZ), cf)])
496496 }
497497
498498
499499 func cg (ab,ad,bQ,bR,aw,ax,bS,bT) = if ((ab == a))
500500 then bP(ad, bQ, bR, aw, ax, bS, bT)
501501 else ca(ad, bQ, bR, aw, ax, bS, bT)
502502
503503
504504 func ch (ad,ci,cj,ck) = {
505505 let W = Address(fromBase58String(ad))
506506 let cl = valueOrErrorMessage(getString(this, (A + ad)), "Unknown pool")
507507 let cm = aa(W, cl)
508508 let bQ = cm._1
509509 let bR = cm._2
510510 let aw = cm._3
511511 let ax = cm._4
512512 let cn = Q(ao(bQ))
513513 if ((cn == cn))
514514 then {
515515 let co = Q(ao(bR))
516516 if ((co == co))
517517 then {
518518 let bg = if ((cl == a))
519519 then invoke(W, "callFunction", ["withdraw", [toString(ci)]], nil)
520520 else if ((cl == b))
521521 then invoke(W, "unstakeAndGet", [ci], nil)
522522 else throw("Wrong position type")
523523 if ((bg == bg))
524524 then {
525525 let cp = Q(ao(bQ))
526526 let cq = Q(ao(bR))
527527 let cr = $Tuple2((cp - cn), (cq - co))
528528 let cs = cr._1
529529 let ct = cr._2
530530 let cu = if ((cj > 0))
531531 then {
532532 let cv = if (if ((ck == bQ))
533533 then (cj > cs)
534534 else false)
535535 then (cj - cs)
536536 else if (if ((ck == bR))
537537 then (cj > ct)
538538 else false)
539539 then (cj - ct)
540540 else 0
541541 let cw = if ((cv > 0))
542542 then cg(cl, ad, bQ, bR, aw, ax, cv, ck)
543543 else 0
544544 if ((cw == cw))
545545 then {
546546 let cx = Q(ao(bQ))
547547 let cy = Q(ao(bR))
548548 $Tuple2((cx - cn), (cy - co))
549549 }
550550 else throw("Strict value is not equal to itself.")
551551 }
552552 else $Tuple2(cs, ct)
553553 let cz = cu._1
554554 let cA = cu._2
555555 $Tuple4(cz, bQ, cA, bR)
556556 }
557557 else throw("Strict value is not equal to itself.")
558558 }
559559 else throw("Strict value is not equal to itself.")
560560 }
561561 else throw("Strict value is not equal to itself.")
562562 }
563563
564564
565565 @Callable(P)
566566 func replenishREADONLY (ad,cB,cC) = if (if ((100 > cB))
567567 then true
568568 else (cB > 300))
569569 then throw("Leverage can't be <100 and >300")
570570 else {
571571 let ab = valueOrErrorMessage(getString(this, (A + ad)), "Pool is not inited")
572572 let cD = aa(Address(fromBase58String(ad)), ab)
573573 let bI = cD._1
574574 let bJ = cD._2
575575 let aw = cD._3
576576 let ax = cD._4
577577 let ay = cD._5
578578 let cE = if ((size(P.payments) == 2))
579579 then if ((an(P.payments[0].assetId) != bI))
580580 then throw("Wrong payment asset A")
581581 else if ((an(P.payments[1].assetId) != bJ))
582582 then throw("Wrong payment asset B")
583583 else $Tuple4(P.payments[0].amount, bI, P.payments[1].amount, bJ)
584584 else if ((size(P.payments) == 1))
585585 then if ((an(P.payments[0].assetId) == bI))
586586 then $Tuple4(P.payments[0].amount, bI, 0, bJ)
587587 else if ((an(P.payments[0].assetId) == bJ))
588588 then $Tuple4(0, bI, P.payments[0].amount, bJ)
589589 else throw("Wrong payment")
590590 else throw("One or two payments expected")
591591 let as = cE._1
592592 let at = cE._2
593593 let au = cE._3
594594 let av = cE._4
595595 let cF = if ((cB > 100))
596596 then {
597597 let cG = ( let Z = invoke(K, "getTWAP60", [at, false], nil)
598598 if ($isInstanceOf(Z, "(Int, Int)"))
599599 then Z
600600 else throw(($getType(Z) + " couldn't be cast to (Int, Int)")))._1
601601 let cH = ( let Z = invoke(K, "getTWAP60", [av, false], nil)
602602 if ($isInstanceOf(Z, "(Int, Int)"))
603603 then Z
604604 else throw(($getType(Z) + " couldn't be cast to (Int, Int)")))._1
605605 let cI = (fraction(cG, as, pow(10, 0, ap(at), 0, 0, DOWN)) + fraction(cH, au, pow(10, 0, ap(av), 0, 0, DOWN)))
606606 let cJ = fraction(cI, (cB - 100), 100)
607607 let cK = makeString([ab, toString(P.caller), ad, toString(as), at, toString(au), av, toString(aw), toString(ax), ay, cC, toString(cJ), toString(1)], ",")
608608 let cL = {
609609 let Z = invoke(this, "createNewRequest", [cK], nil)
610610 if ($isInstanceOf(Z, "Int"))
611611 then Z
612612 else throw(($getType(Z) + " couldn't be cast to Int"))
613613 }
614614 if ((cL == cL))
615615 then {
616616 let cM = [((toString(P.caller) + "_") + toString(1)), ay, cC, cJ, toString(this), "replenishFromLandReadOnly", toString(valueOrErrorMessage(cL, "Can't create new request"))]
617617 let bg = reentrantInvoke(am(), "flashPosition", cM, nil)
618618 if ((bg == bg))
619619 then if ((cC == at))
620620 then $Tuple4((as + cJ), au, d, cJ)
621621 else $Tuple4(as, (au + cJ), d, cJ)
622622 else throw("Strict value is not equal to itself.")
623623 }
624624 else throw("Strict value is not equal to itself.")
625625 }
626626 else $Tuple4(as, au, e, 0)
627627 let cN = cF._1
628628 let cO = cF._2
629629 let ah = cF._3
630630 let cJ = cF._4
631631 let cP = if ((ab == a))
632632 then ar(ad, ah, cN, at, cO, av, aw, ax, ay)
633633 else aR(ad, ah, as, at, au, av, ay)
634634 let cQ = cP._1
635635 let bM = cP._2
636636 let cR = ch(ad, cQ, cJ, cC)
637637 if ((cR == cR))
638638 then {
639639 let bR = cR._4
640640 let cA = cR._3
641641 let bQ = cR._2
642642 let cz = cR._1
643643 $Tuple2(nil, [cQ, cz, cA])
644644 }
645645 else throw("Strict value is not equal to itself.")
646646 }
647647
648648
649649
650650 @Callable(P)
651-func replenishFromLandReadOnly (cS) = nil
651+func replenishFromLandReadOnly (cS) = $Tuple2(nil, 11111)
652652
653653
654654
655655 @Callable(P)
656656 func replenish (ad,cB,cC) = if (if ((100 > cB))
657657 then true
658658 else (cB > 300))
659659 then throw("Leverage can't be <100 and >300")
660660 else {
661661 let ab = valueOrErrorMessage(getString(this, (A + ad)), "Pool is not inited")
662662 let cT = aa(Address(fromBase58String(ad)), ab)
663663 let bI = cT._1
664664 let bJ = cT._2
665665 let aw = cT._3
666666 let ax = cT._4
667667 let ay = cT._5
668668 let cU = if ((size(P.payments) == 2))
669669 then if ((an(P.payments[0].assetId) != bI))
670670 then throw("Wrong payment asset A")
671671 else if ((an(P.payments[1].assetId) != bJ))
672672 then throw("Wrong payment asset B")
673673 else $Tuple4(P.payments[0].amount, bI, P.payments[1].amount, bJ)
674674 else if ((size(P.payments) == 1))
675675 then if ((an(P.payments[0].assetId) == bI))
676676 then $Tuple4(P.payments[0].amount, bI, 0, bJ)
677677 else if ((an(P.payments[0].assetId) == bJ))
678678 then $Tuple4(0, bI, P.payments[0].amount, bJ)
679679 else throw("Wrong payment")
680680 else throw("One or two payments expected")
681681 let as = cU._1
682682 let at = cU._2
683683 let au = cU._3
684684 let av = cU._4
685685 let cV = ae(ad, toString(P.caller))
686686 if ((cB > 100))
687687 then {
688688 let cG = ( let Z = invoke(K, "getTWAP60", [at, false], nil)
689689 if ($isInstanceOf(Z, "(Int, Int)"))
690690 then Z
691691 else throw(($getType(Z) + " couldn't be cast to (Int, Int)")))._1
692692 let cH = ( let Z = invoke(K, "getTWAP60", [av, false], nil)
693693 if ($isInstanceOf(Z, "(Int, Int)"))
694694 then Z
695695 else throw(($getType(Z) + " couldn't be cast to (Int, Int)")))._1
696696 let cI = (fraction(cG, as, pow(10, 0, ap(at), 0, 0, DOWN)) + fraction(cH, au, pow(10, 0, ap(av), 0, 0, DOWN)))
697697 let cJ = fraction(cI, (cB - 100), 100)
698698 let cK = makeString([ab, toString(P.caller), ad, toString(as), at, toString(au), av, toString(aw), toString(ax), ay, cC, toString(cJ), toString(cV)], ",")
699699 let cL = {
700700 let Z = invoke(this, "createNewRequest", [cK], nil)
701701 if ($isInstanceOf(Z, "Int"))
702702 then Z
703703 else throw(($getType(Z) + " couldn't be cast to Int"))
704704 }
705705 if ((cL == cL))
706706 then {
707707 let cM = [((toString(P.caller) + "_") + toString(cV)), ay, cC, cJ, toString(this), "replenishFromLand", toString(valueOrErrorMessage(cL, "Can't create new request"))]
708708 let bg = reentrantInvoke(am(), "flashPosition", cM, nil)
709709 if ((bg == bg))
710710 then nil
711711 else throw("Strict value is not equal to itself.")
712712 }
713713 else throw("Strict value is not equal to itself.")
714714 }
715715 else {
716716 let cW = if ((ab == a))
717717 then ar(ad, e, as, at, au, av, aw, ax, ay)
718718 else aR(ad, e, as, at, au, av, ay)
719719 let cQ = cW._1
720720 let bM = cW._2
721721 aZ(ad, toString(P.caller), cQ, bM, cV, ay, ab)
722722 }
723723 }
724724
725725
726726
727727 @Callable(P)
728728 func replenishFromLand (cS) = {
729729 let cK = split(valueOrErrorMessage(getString(this, (cS + y)), ("No request with id " + cS)), ",")
730730 if ((size(P.payments) != 1))
731731 then throw("Wrong payment size")
732732 else if (if ((an(P.payments[0].assetId) != cK[10]))
733733 then true
734734 else (P.payments[0].amount != parseIntValue(cK[11])))
735735 then throw("Wrong payment")
736736 else {
737737 let as = if ((cK[4] == an(P.payments[0].assetId)))
738738 then (parseIntValue(cK[3]) + P.payments[0].amount)
739739 else parseIntValue(cK[3])
740740 let au = if ((cK[6] == an(P.payments[0].assetId)))
741741 then (parseIntValue(cK[5]) + P.payments[0].amount)
742742 else parseIntValue(cK[3])
743743 let ad = cK[2]
744744 let af = cK[1]
745745 let ay = cK[9]
746746 let bb = parseIntValue(cK[12])
747747 let cX = if ((cK[0] == a))
748748 then ar(ad, d, as, cK[4], au, cK[6], parseIntValue(cK[7]), parseIntValue(cK[8]), ay)
749749 else if ((cK[0] == b))
750750 then aR(ad, d, as, cK[4], au, cK[6], ay)
751751 else throw("Wrong request type")
752752 let cQ = cX._1
753753 let bM = cX._2
754754 let cY = [IntegerEntry((((((cK[2] + "_") + cK[1]) + "_") + cK[12]) + p), P.payments[0].amount), StringEntry((((((cK[2] + "_") + cK[1]) + "_") + cK[12]) + q), cK[10])]
755755 let cZ = aZ(ad, af, cQ, bM, bb, ay, cK[0])
756756 $Tuple2(((cZ ++ cY) :+ DeleteEntry((cS + y))), cQ)
757757 }
758758 }
759759
760760
761761
762762 @Callable(P)
763763 func withdraw (ad,da) = {
764764 let af = toString(P.caller)
765765 let db = valueOrErrorMessage(getInteger(this, (((((ad + "_") + af) + "_") + toString(da)) + o)), "Unknown position")
766766 let dc = getIntegerValue(this, (((((ad + "_") + af) + "_") + toString(da)) + s))
767767 let dd = getIntegerValue(this, (ad + u))
768768 let de = ac(ad)
769769 let ci = (db + fraction(db, (dd - dc), g))
770770 let df = Address(fromBase58String(af))
771771 let cJ = getIntegerValue(this, (((((ad + "_") + af) + "_") + toString(da)) + p))
772772 let ck = getStringValue(this, (((((ad + "_") + af) + "_") + toString(da)) + q))
773773 let cj = if ((cJ > 0))
774774 then {
775775 let Z = invoke(am(), "getAssetDebt", [false, ((((ad + "_") + af) + "_") + toString(da)), ck], nil)
776776 if ($isInstanceOf(Z, "Int"))
777777 then Z
778778 else throw(($getType(Z) + " couldn't be cast to Int"))
779779 }
780780 else 0
781781 let dg = ch(ad, ci, cj, ck)
782782 if ((dg == dg))
783783 then {
784784 let bR = dg._4
785785 let cA = dg._3
786786 let bQ = dg._2
787787 let cz = dg._1
788788 let dh = if ((cj > 0))
789789 then invoke(am(), "repayFor", [((af + "_") + toString(da))], [AttachedPayment(ao(ck), cj)])
790790 else 0
791791 if ((dh == dh))
792792 then [DeleteEntry((((((ad + "_") + af) + "_") + toString(da)) + o)), DeleteEntry((((((ad + "_") + af) + "_") + toString(da)) + s)), IntegerEntry((ad + t), (de - ci)), ScriptTransfer(df, cz, ao(bQ)), ScriptTransfer(df, cA, ao(bR))]
793793 else throw("Strict value is not equal to itself.")
794794 }
795795 else throw("Strict value is not equal to itself.")
796796 }
797797
798798
799799
800800 @Callable(P)
801801 func createNewRequest (di) = valueOrElse(O(P), {
802802 let cL = (valueOrElse(getInteger(this, z), 0) + 1)
803803 $Tuple2([StringEntry((toString(cL) + y), di), IntegerEntry(z, cL)], cL)
804804 })
805805
806806
807807
808808 @Callable(P)
809809 func capitalizeExKeeper (ad,ab,dj,dk,dl,bm,bn,bo,bp,bq,br,bs) = {
810810 let dm = if (dl)
811811 then be(ab, ad)
812812 else {
813813 let dn = if ((ab == a))
814814 then M
815815 else N
816816 $Tuple2(dk, dn)
817817 }
818818 let do = dm._1
819819 let dn = dm._2
820820 let dp = bi(dj, dk, dn, bm, bn, bo, bp, bq, br, bs)
821821 let aG = (do - dk)
822822 let dq = if ((aG > 0))
823823 then [IntegerEntry((ad + B), (aG + valueOrElse(getInteger(this, (ad + B)), 0)))]
824824 else nil
825825 (bE(ad, ab, dj, dp) ++ dq)
826826 }
827827
828828
829829
830830 @Callable(P)
831831 func capitalizeExPazzle (ad,ab,dj,dk,dl,bv,bw,bs) = {
832832 let dr = if (dl)
833833 then be(ab, ad)
834834 else {
835835 let dn = if ((ab == a))
836836 then M
837837 else N
838838 $Tuple2(dk, dn)
839839 }
840840 let do = dr._1
841841 let dn = dr._2
842842 let dp = bu(dj, dk, dn, bv, bw, bs)
843843 let aG = (do - dk)
844844 let dq = if ((aG > 0))
845845 then [IntegerEntry((ad + B), (aG + valueOrElse(getInteger(this, (ad + B)), 0)))]
846846 else nil
847847 (bE(ad, ab, dj, dp) ++ dq)
848848 }
849849
850850
851851
852852 @Callable(P)
853853 func capitalizeExSwopFi (ad,ab,dj,dk,dl,by,bz,bA,bB,bC,bD,bs) = {
854854 let ds = if (dl)
855855 then be(ab, ad)
856856 else {
857857 let dn = if ((ab == a))
858858 then M
859859 else N
860860 $Tuple2(dk, dn)
861861 }
862862 let do = ds._1
863863 let dn = ds._2
864864 let dp = bx(dj, dk, dn, by, bz, bA, bB, bC, bD, bs)
865865 let aG = (do - dk)
866866 let dq = if ((aG > 0))
867867 then [IntegerEntry((ad + B), (aG + valueOrElse(getInteger(this, (ad + B)), 0)))]
868868 else nil
869869 (bE(ad, ab, dj, dp) ++ dq)
870870 }
871871
872872
873873
874874 @Callable(P)
875875 func initNewPool (ab,W,dt,du,dv) = if (if ((ab != a))
876876 then (ab != b)
877877 else false)
878878 then throw("Wrong type")
879879 else [IntegerEntry((W + v), dt), IntegerEntry((W + w), du), IntegerEntry((W + x), dv), IntegerEntry((W + u), 0), StringEntry((A + W), ab)]
880880
881881
882882 @Verifier(dw)
883883 func dx () = sigVerify(dw.bodyBytes, dw.proofs[0], dw.senderPublicKey)
884884

github/deemru/w8io/873ac7e 
94.70 ms