tx · HTMNnfxYyTVQ1qEdjrx4LeaSMeHrb12hZRVPDZZXmGdQ

3Mwb8GE6NHaDxJTby35u2sNAEmDQMWYupCn:  -0.02700000 Waves

2023.06.27 18:19 [2641238] smart account 3Mwb8GE6NHaDxJTby35u2sNAEmDQMWYupCn > SELF 0.00000000 Waves

{ "type": 13, "id": "HTMNnfxYyTVQ1qEdjrx4LeaSMeHrb12hZRVPDZZXmGdQ", "fee": 2700000, "feeAssetId": null, "timestamp": 1687879115746, "version": 2, "chainId": 84, "sender": "3Mwb8GE6NHaDxJTby35u2sNAEmDQMWYupCn", "senderPublicKey": "6oJuynzr7rKRYRDWhDrENciDLidQuVGfe82pK7hr5nev", "proofs": [ "4ybEkjyWim88iJJkVavPCVnwobGTgZ3BRhrbeR1yzbcNa8VWWDCHoPz9Zyjb4G6bioknUZAimkUVqqjbMYQcv5du" ], "script": "base64:BgIuCAISCAoGCAgICAgBEgASABIDCgEEEgASAwoBARIAEgMKAQgSAwoBBBIECgIIATMAC3VzZG5Bc3NldElkASC2JinDBPXOU5GkDkt1JC9kjFGx+t+vVCm9SNIdKrKq0QANcHV6emxlQXNzZXRJZAEg8Rr+Jf72mTj0aSrE3+ES1keyxsoOujcJr3dtH46i5WMAC3VzZHRBc3NldElkASAelAcTUnahJZX9yGGogl8Qf986Tym7/JpGP1r9Nk+fkQAOdXNkdFBwdEFzc2V0SWQBIFWx2J9yh4Lv5eNbjawFq2XemkOhLxa7BfMat4el8cUYAA51c2RuQXNzZXRJZFN0cgIsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAAEHB1enpsZUFzc2V0SWRTdHICLEhFQjhRYXc5eHJXcFdzOHRIc2lBVFlHQldEQnRQMlM3a2NQQUxyTXU0M0FTAA51c2R0QXNzZXRJZFN0cgIsMzROOVljRUVUTFduOTNxWVE2NEVzUDF4ODl0U3J1SlU0NFJyRU1TWFhFUEoAEXVzZHRQcHRBc3NldElkU3RyAiw2bVd3ZjltWkJqVmdrQzU0aWRweWFaTFFmQW9zRDkxNHdUOGZHZjJpaVk2MwARcGFyZW50UG9vbEFkZHJlc3MJAQdBZGRyZXNzAQEaAVS+miulreIy8PwSCU0faE7s9FU2XAhpW24ADW1hc3RlckFkZHJlc3MJAQdBZGRyZXNzAQEaAVS+miulreIy8PwSCU0faE7s9FU2XAhpW24ADG1hc3RlclB1YktleQEgOzVNbj+fvvhUnJZEB4BWqy/iE2BFxHvyPxdD9EIFJl0ADGZlZUNvbGxlY3RvcgEaAVS+miulreIy8PwSCU0faE7s9FU2XAhpW24AD3N0YWtpbmdDb250cmFjdAEaAVS+miulreIy8PwSCU0faE7s9FU2XAhpW24AD2NvbnRyb2xDb250cmFjdAEaAVRxMeRz2ZfCPIZSIYxXcLdguVwX0z4UxUwBDXRyeUdldEludGVnZXIBA2tleQQHJG1hdGNoMAkAmggCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABDHRyeUdldEJpbmFyeQEDa2V5BAckbWF0Y2gwCQCcCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwBQFiAQABDHRyeUdldFN0cmluZwEDa2V5BAckbWF0Y2gwCQCdCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWIFByRtYXRjaDAFAWICAAEOZ2V0QXNzZXRTdHJpbmcBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA2AQBBQFiAgVXQVZFUwENZ2V0QXNzZXRCeXRlcwEKYXNzZXRJZFN0cgMJAAACBQphc3NldElkU3RyAgVXQVZFUwUEdW5pdAkA2QQBBQphc3NldElkU3RyARNhZGRBc3NldEJ5dGVzVG9MaXN0AgVhY2N1bQRpdGVtCQDNCAIFBWFjY3VtCQENZ2V0QXNzZXRCeXRlcwEFBGl0ZW0BFGFkZEFzc2V0V2VpZ2h0VG9MaXN0AgVhY2N1bQRpdGVtCQDNCAIFBWFjY3VtCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdzdGF0aWNfCQEOZ2V0QXNzZXRTdHJpbmcBBQRpdGVtAgdfd2VpZ2h0ARZhZGRBc3NldERlY2ltYWxzVG9MaXN0AgVhY2N1bQRpdGVtCQDNCAIFBWFjY3VtCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdzdGF0aWNfCQEOZ2V0QXNzZXRTdHJpbmcBBQRpdGVtAglfZGVjaW1hbHMBE2FkZEFzc2V0U2NhbGVUb0xpc3QCBWFjY3VtBGl0ZW0JAM0IAgUFYWNjdW0JAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICB3N0YXRpY18JAQ5nZXRBc3NldFN0cmluZwEFBGl0ZW0CBl9zY2FsZQEMYWRkSW50VG9MaXN0AgVhY2N1bQRpdGVtCQDNCAIFBWFjY3VtCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0AAVQJAQ10cnlHZXRJbnRlZ2VyAQITc3RhdGljX3Rva2Vuc0Ftb3VudAAIYXNzZXRJZHMKAAIkbAkAtQkCCQEMdHJ5R2V0U3RyaW5nAQIPc3RhdGljX3Rva2VuSWRzAgEsCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARNhZGRBc3NldEJ5dGVzVG9MaXN0AgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAA1Bc3NldHNXZWlnaHRzCgACJGwFCGFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARRhZGRBc3NldFdlaWdodFRvTGlzdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgAIRGVjaW1hbHMKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjJfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBFmFkZEFzc2V0RGVjaW1hbHNUb0xpc3QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjJfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYyXzICCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoABlNjYWxlcwoAAiRsBQhhc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmM18xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQETYWRkQXNzZXRTY2FsZVRvTGlzdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmM18yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjNfMgIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgADRmVlCQENdHJ5R2V0SW50ZWdlcgECCnN0YXRpY19mZWUAFUFzc2V0c1dlaWdodHNEZWNpbWFscwAEAAVTY2FsZQCQTgAGU2NhbGU4AIDC1y8ACEZlZVNjYWxlAJBOABFQb29sVG9rZW5EZWNpbWFscwAIAA5Qb29sVG9rZW5TY2FsZQkAbAYACgAABRFQb29sVG9rZW5EZWNpbWFscwAAAAAFBkhBTEZVUAAMZWFybmVkQXNzZXRzBQhhc3NldElkcwEKaXNTaHV0ZG93bgAEByRtYXRjaDAJAJsIAgkBB0FkZHJlc3MBBQ9jb250cm9sQ29udHJhY3QCC2lzX3NodXRkb3duAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAXgFByRtYXRjaDAFAXgHARZnZXRDdXJyZW50VG9rZW5CYWxhbmNlAQl0b2tlblR5cGUEB3Rva2VuSWQJAQ5nZXRBc3NldFN0cmluZwEJAJEDAgUIYXNzZXRJZHMFCXRva2VuVHlwZQkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHZ2xvYmFsXwUHdG9rZW5JZAIIX2JhbGFuY2UBEGNhbGN1bGF0ZVBJc3N1ZWQCBmFtb3VudAd0b2tlbklkBAdQc3VwcGx5CQENdHJ5R2V0SW50ZWdlcgECF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50BAdCYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQd0b2tlbklkAghfYmFsYW5jZQkAbgQFBmFtb3VudAUHUHN1cHBseQUHQmFsYW5jZQUERE9XTgENZ2V0TWluUElzc3VlZAEIcGF5bWVudHMKAQdoYW5kbGVyAgVhY2N1bQdjdXJyZW50BAdQSXNzdWVkCQEQY2FsY3VsYXRlUElzc3VlZAIIBQdjdXJyZW50BmFtb3VudAgFB2N1cnJlbnQHYXNzZXRJZAMJAAACBQdQSXNzdWVkAAAJAAIBAiRvbmUgb2YgdGhlIHRva2VucyBhbW91bnRzIGlzIHRvbyBsb3cDAwkAAAIFBWFjY3VtAAAGCQBmAgUFYWNjdW0FB1BJc3N1ZWQFB1BJc3N1ZWQFBWFjY3VtCgACJGwFCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGY0XzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdoYW5kbGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY0XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNF8yAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARJjYWxjdWxhdGVVc2RuVmFsdWUEB2Fzc2V0SWQGYW1vdW50CGFCYWxhbmNlEGdpdmVuVXNkbkJhbGFuY2UECnVzZG5JblBvb2wJAM8IAgUIYXNzZXRJZHMFC3VzZG5Bc3NldElkBAxwdXp6bGVJblBvb2wJAM8IAgUIYXNzZXRJZHMFDXB1enpsZUFzc2V0SWQECnVzZHRJblBvb2wJAM8IAgUIYXNzZXRJZHMFC3VzZHRBc3NldElkBAt3YXZlc0luUG9vbAkAzwgCBQhhc3NldElkcwUEdW5pdAQLYXNzZXRXZWlnaHQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICB3N0YXRpY18JAQ5nZXRBc3NldFN0cmluZwEFB2Fzc2V0SWQCB193ZWlnaHQEC2ZlZUFzc2V0U3RyCQEMdHJ5R2V0U3RyaW5nAQIPc3RhdGljX2ZlZVRva2VuAwkAAAIFC2ZlZUFzc2V0U3RyBRBwdXp6bGVBc3NldElkU3RyBAxwdXp6bGVXZWlnaHQJAJEDAgUNQXNzZXRzV2VpZ2h0cwkBBXZhbHVlAQkAzwgCBQhhc3NldElkcwUNcHV6emxlQXNzZXRJZAQNcHV6emxlQmFsYW5jZQkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHZ2xvYmFsXwUQcHV6emxlQXNzZXRJZFN0cgIIX2JhbGFuY2UEDmFtb3VudEluUHV6emxlCQBrAwUGYW1vdW50CQBpAgUNcHV6emxlQmFsYW5jZQUMcHV6emxlV2VpZ2h0CQBpAgUIYUJhbGFuY2UFC2Fzc2V0V2VpZ2h0BAtwdXp6bGVQcmljZQkBEUBleHRyTmF0aXZlKDEwNTApAgURcGFyZW50UG9vbEFkZHJlc3MCFmdsb2JhbF9sYXN0UHV6emxlUHJpY2UJAGsDCQBoAgUOYW1vdW50SW5QdXp6bGUFC3B1enpsZVByaWNlAAEFBlNjYWxlOAMJAAACBQtmZWVBc3NldFN0cgUOdXNkdEFzc2V0SWRTdHIECnVzZHRXZWlnaHQJAJEDAgUNQXNzZXRzV2VpZ2h0cwkBBXZhbHVlAQUKdXNkdEluUG9vbAQLdXNkdEJhbGFuY2UJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICB2dsb2JhbF8FDnVzZHRBc3NldElkU3RyAghfYmFsYW5jZQkAawMFBmFtb3VudAkAaQIFC3VzZHRCYWxhbmNlBQp1c2R0V2VpZ2h0CQBpAgUIYUJhbGFuY2UFC2Fzc2V0V2VpZ2h0AwkAAAIFC2ZlZUFzc2V0U3RyBQ51c2RuQXNzZXRJZFN0cgQKdXNkbldlaWdodAkAkQMCBQ1Bc3NldHNXZWlnaHRzCQEFdmFsdWUBCQDPCAIFCGFzc2V0SWRzBQt1c2RuQXNzZXRJZAQLdXNkbkJhbGFuY2UEByRtYXRjaDAFEGdpdmVuVXNkbkJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAF4BQckbWF0Y2gwBRBnaXZlblVzZG5CYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQt1c2RuQXNzZXRJZAIIX2JhbGFuY2UJAGsDBQZhbW91bnQJAGkCCQEFdmFsdWUBBQt1c2RuQmFsYW5jZQUKdXNkbldlaWdodAkAaQIFCGFCYWxhbmNlBQthc3NldFdlaWdodAQLd2F2ZXNXZWlnaHQAuBcECHdCYWxhbmNlCQBpAgkBDXRyeUdldEludGVnZXIBAhRnbG9iYWxfV0FWRVNfYmFsYW5jZQAyCQBrAwUGYW1vdW50CQBpAgUId0JhbGFuY2UFC3dhdmVzV2VpZ2h0CQBpAgUIYUJhbGFuY2UFC2Fzc2V0V2VpZ2h0ARNjaGVja1Rva2Vuc1ZhbGlkaXR5AQhwYXltZW50cwoBCGhhbmRsZXIxAgVhY2N1bQdwYXltZW50CQDNCAIFBWFjY3VtCAUHcGF5bWVudAdhc3NldElkBANpZHMKAAIkbAUIcGF5bWVudHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjRfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGhhbmRsZXIxAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY0XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNF8yAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAwkAAAIFA2lkcwUDaWRzCgEIaGFuZGxlcjICBWFjY3VtB2Fzc2V0SWQDCQECIT0CCQDPCAIFA2lkcwUHYXNzZXRJZAUEdW5pdAkAZAIFBWFjY3VtAAEJAAIBCQCsAgICFGFzc2V0IG5vdCBhdHRhY2hlZDogCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldElkBAZjaGVja3MKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjVfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGhhbmRsZXIyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY1XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNV8yAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAwkAAAIFBmNoZWNrcwUGY2hlY2tzBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgETaGFuZGxlUG9vbFRva2Vuc0FkZAQHUElzc3VlZAhwYXltZW50cwt1c2VyQWRkcmVzcwpuZWVkQ2hhbmdlCgEVZ2V0VG9rZW5QYXltZW50QW1vdW50AQd0b2tlbklkCgEHaGFuZGxlcgIFYWNjdW0HcGF5bWVudAMJAAACCAUHcGF5bWVudAdhc3NldElkBQd0b2tlbklkCAUHcGF5bWVudAZhbW91bnQFBWFjY3VtCgACJGwFCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGY0XzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdoYW5kbGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY0XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNF8yAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCgERaGFuZGxlVG9rZW5DaGFuZ2UCBWFjY3VtB3Rva2VuSWQEAkJrCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQd0b2tlbklkAghfYmFsYW5jZQQHUFN1cHBseQkBDXRyeUdldEludGVnZXIBAhdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAQNdG9rZW5EZWNpbWFscwkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHc3RhdGljXwkBDmdldEFzc2V0U3RyaW5nAQUHdG9rZW5JZAIGX3NjYWxlBAJEawkAbgQJAGUCCQBuBAkAZAIFB1BTdXBwbHkFB1BJc3N1ZWQFDXRva2VuRGVjaW1hbHMFB1BTdXBwbHkFB0NFSUxJTkcFDXRva2VuRGVjaW1hbHMFAkJrBQ10b2tlbkRlY2ltYWxzBQdDRUlMSU5HBA1wYXltZW50QW1vdW50CQEVZ2V0VG9rZW5QYXltZW50QW1vdW50AQUHdG9rZW5JZAQIdG9SZXR1cm4JAGUCAwkBAiE9AgUNcGF5bWVudEFtb3VudAAABQ1wYXltZW50QW1vdW50AAAFAkRrBAF0AwMFCm5lZWRDaGFuZ2UJAGYCBQh0b1JldHVybgAABwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQt1c2VyQWRkcmVzcwUIdG9SZXR1cm4FB3Rva2VuSWQFA25pbAUDbmlsCQDNCAIJAM4IAgUFYWNjdW0FAXQJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIHZ2xvYmFsXwkBDmdldEFzc2V0U3RyaW5nAQUHdG9rZW5JZAIIX2JhbGFuY2UJAGQCBQJCawUCRGsKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjRfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBEWhhbmRsZVRva2VuQ2hhbmdlAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY0XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNF8yAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARZoYW5kbGVQb29sVG9rZW5zUmVkZWVtAglQUmVkZWVtZWQLdXNlckFkZHJlc3MKARFoYW5kbGVUb2tlblJlZGVlbQIFYWNjdW0HdG9rZW5JZAQCQmsJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICB2dsb2JhbF8JAQ5nZXRBc3NldFN0cmluZwEFB3Rva2VuSWQCCF9iYWxhbmNlBAdQU3VwcGx5CQENdHJ5R2V0SW50ZWdlcgECF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50BA10b2tlbkRlY2ltYWxzCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdzdGF0aWNfCQEOZ2V0QXNzZXRTdHJpbmcBBQd0b2tlbklkAgZfc2NhbGUEBmFtb3VudAkAoAMBCQC9AgQJALgCAgkAtgIBBQZTY2FsZTgJAL0CBAkAtgIBCQBlAgUHUFN1cHBseQUJUFJlZGVlbWVkCQC2AgEFBlNjYWxlOAkAtgIBBQdQU3VwcGx5BQdDRUlMSU5HCQC2AgEFAkJrCQC2AgEFBlNjYWxlOAUERE9XTgkAzQgCCQDNCAIFBWFjY3VtCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICB2dsb2JhbF8JAQ5nZXRBc3NldFN0cmluZwEFB3Rva2VuSWQCCF9iYWxhbmNlCQBlAgUCQmsFBmFtb3VudAkBDlNjcmlwdFRyYW5zZmVyAwULdXNlckFkZHJlc3MFBmFtb3VudAUHdG9rZW5JZAoAAiRsBQhhc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmNF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQERaGFuZGxlVG9rZW5SZWRlZW0CBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjRfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGY0XzICCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBEmNhbGN1bGF0ZU91dEFtb3VudAUIQW1vdW50SW4HYXNzZXRJbghhc3NldE91dAlCYWxhbmNlSW4KQmFsYW5jZU91dAQHSW5kZXhJbgkBBXZhbHVlAQkAzwgCBQhhc3NldElkcwUHYXNzZXRJbgQISW5kZXhPdXQJAQV2YWx1ZQEJAM8IAgUIYXNzZXRJZHMFCGFzc2V0T3V0AwkAAAIFB0luZGV4SW4FCEluZGV4T3V0BQhBbW91bnRJbgkAbgQFCkJhbGFuY2VPdXQJAGUCCQBoAgUGU2NhbGU4BQZTY2FsZTgJAKADAQkAdgYJAL0CBAkAtgIBBQlCYWxhbmNlSW4JALYCAQkAaAIFBlNjYWxlOAUGU2NhbGU4CQC2AgEJAGQCBQlCYWxhbmNlSW4FCEFtb3VudEluBQZIQUxGVVAAEAkAtgIBCQBrAwkAkQMCBQ1Bc3NldHNXZWlnaHRzBQdJbmRleEluAJBOCQCRAwIFDUFzc2V0c1dlaWdodHMFCEluZGV4T3V0AAQAEAUHQ0VJTElORwkAaAIFBlNjYWxlOAUGU2NhbGU4BQRET1dOAQ9nZXRUb2tlbkJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBdAUHJG1hdGNoMAkA8AcCBQR0aGlzBQF0CAkA7wcBBQR0aGlzCWF2YWlsYWJsZQEdY2FsY3VsYXRlQ3VycmVudEFzc2V0SW50ZXJlc3QEB2Fzc2V0SWQKYXNzZXRJZFN0cghhQmFsYW5jZRZ0b2tlbkVhcm5pbmdzTGFzdENoZWNrBAt0b3RhbFN0YWtlZAkBDXRyeUdldEludGVnZXIBAhJnbG9iYWxfaW5kZXhTdGFrZWQEFXRva2VuQmFsYW5jZUxhc3RDaGVjawUWdG9rZW5FYXJuaW5nc0xhc3RDaGVjawQTY3VycmVudEJhbGFuY2VEZWx0YQkAZQIJAQ9nZXRUb2tlbkJhbGFuY2UBBQdhc3NldElkBQhhQmFsYW5jZQQUY3VycmVudFRva2VuRWFybmluZ3MDCQBmAgUTY3VycmVudEJhbGFuY2VEZWx0YQUVdG9rZW5CYWxhbmNlTGFzdENoZWNrBRNjdXJyZW50QmFsYW5jZURlbHRhBRV0b2tlbkJhbGFuY2VMYXN0Q2hlY2sEC25ld0Vhcm5pbmdzCQBlAgUUY3VycmVudFRva2VuRWFybmluZ3MFFXRva2VuQmFsYW5jZUxhc3RDaGVjawQLbmV3SW50ZXJlc3QDCQAAAgULdG90YWxTdGFrZWQAAAAACQBrAwULbmV3RWFybmluZ3MFBlNjYWxlOAULdG90YWxTdGFrZWQEEWxhc3RDaGVja0ludGVyZXN0CQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAhFnbG9iYWxfbGFzdENoZWNrXwUKYXNzZXRJZFN0cgIJX2ludGVyZXN0CQBkAgURbGFzdENoZWNrSW50ZXJlc3QFC25ld0ludGVyZXN0AQtjbGFpbVJlc3VsdAEHYWRkcmVzcwQKYWRkcmVzc1N0cgkApQgBBQdhZGRyZXNzBAxwdXp6bGVBbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQkArAICBQphZGRyZXNzU3RyAgxfaW5kZXhTdGFrZWQKAQdoYW5kbGVyAgVhY2N1bQdhc3NldElkBAphc3NldElkU3RyCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldElkBAhhQmFsYW5jZQkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHZ2xvYmFsXwkBDmdldEFzc2V0U3RyaW5nAQUHYXNzZXRJZAIIX2JhbGFuY2UEFnRva2VuRWFybmluZ3NMYXN0Q2hlY2sJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICEWdsb2JhbF9sYXN0Q2hlY2tfBQphc3NldElkU3RyAglfZWFybmluZ3MEFGN1cnJlbnRUb2tlbkludGVyZXN0CQEdY2FsY3VsYXRlQ3VycmVudEFzc2V0SW50ZXJlc3QEBQdhc3NldElkBQphc3NldElkU3RyBQhhQmFsYW5jZQUWdG9rZW5FYXJuaW5nc0xhc3RDaGVjawQUY3VycmVudFRva2VuRWFybmluZ3MJAJYDAQkAzAgCBRZ0b2tlbkVhcm5pbmdzTGFzdENoZWNrCQDMCAIJAGUCCQEPZ2V0VG9rZW5CYWxhbmNlAQUHYXNzZXRJZAUIYUJhbGFuY2UFA25pbAQMcmV3YXJkQW1vdW50CQBrAwUMcHV6emxlQW1vdW50CQBlAgUUY3VycmVudFRva2VuSW50ZXJlc3QJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgIJAKwCAgUKYWRkcmVzc1N0cgILX2xhc3RDaGVja18FCmFzc2V0SWRTdHICCV9pbnRlcmVzdAUGU2NhbGU4BAh0cmFuc2ZlcgMJAAACBQxyZXdhcmRBbW91bnQAAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFB2FkZHJlc3MFDHJld2FyZEFtb3VudAUHYXNzZXRJZAUDbmlsCQCUCgIJAM4IAgkAzggCCAUFYWNjdW0CXzEFCHRyYW5zZmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIRZ2xvYmFsX2xhc3RDaGVja18FCmFzc2V0SWRTdHICCV9lYXJuaW5ncwkAZQIFFGN1cnJlbnRUb2tlbkVhcm5pbmdzBQxyZXdhcmRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAhFnbG9iYWxfbGFzdENoZWNrXwUKYXNzZXRJZFN0cgIJX2ludGVyZXN0BRRjdXJyZW50VG9rZW5JbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUKYWRkcmVzc1N0cgILX2xhc3RDaGVja18FCmFzc2V0SWRTdHICCV9pbnRlcmVzdAUUY3VycmVudFRva2VuSW50ZXJlc3QFA25pbAkAZAIIBQVhY2N1bQJfMgkBEmNhbGN1bGF0ZVVzZG5WYWx1ZQQFB2Fzc2V0SWQFDHJld2FyZEFtb3VudAUIYUJhbGFuY2UFBHVuaXQEBWFjY3VtCgACJGwFDGVhcm5lZEFzc2V0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUDbmlsAAAKAQUkZjRfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB2hhbmRsZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjRfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGY0XzICCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoJAJQKAgkAzggCCAUFYWNjdW0CXzEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUKYWRkcmVzc1N0cgITX2NsYWltZWRSZXdhcmRWYWx1ZQkAZAIJAQ10cnlHZXRJbnRlZ2VyAQkArAICBQphZGRyZXNzU3RyAhNfY2xhaW1lZFJld2FyZFZhbHVlCAUFYWNjdW0CXzIJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUKYWRkcmVzc1N0cgIKX2xhc3RDbGFpbQgFCWxhc3RCbG9jawl0aW1lc3RhbXAFA25pbAgFBWFjY3VtAl8yARBpbmRleFN0YWtlUmVzdWx0AgphZGRyZXNzU3RyBmFtb3VudAQCbGkICQELY2xhaW1SZXN1bHQBCQERQGV4dHJOYXRpdmUoMTA2MikBBQphZGRyZXNzU3RyAl8xCQDOCAIFAmxpCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFCmFkZHJlc3NTdHICDF9pbmRleFN0YWtlZAkAZAIJAQ10cnlHZXRJbnRlZ2VyAQkArAICBQphZGRyZXNzU3RyAgxfaW5kZXhTdGFrZWQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgISZ2xvYmFsX2luZGV4U3Rha2VkCQBkAgkBDXRyeUdldEludGVnZXIBAhJnbG9iYWxfaW5kZXhTdGFrZWQFBmFtb3VudAUDbmlsAQNzdW0CBWFjY3VtAW4JAGQCBQVhY2N1bQkBDXBhcnNlSW50VmFsdWUBBQFuCgFpAQdwcmVJbml0Bgthc3NldElkc1N0cg9hc3NldFdlaWdodHNTdHIOYmFzZVRva2VuSWRTdHIKcG9vbERvbWFpbglwb29sT3duZXIDZmVlBBBwb29sT3duZXJBZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUJcG9vbE93bmVyAwkBCmlzU2h1dGRvd24ACQACAQITY29udHJhY3QgaXMgb24gc3RvcAMJAQIhPQIFBHRoaXMIBQFpBmNhbGxlcgkAAgECCmFkbWluIG9ubHkDCQBmAgkAsQIBBQpwb29sRG9tYWluAA0JAAIBAhV0b28gbGFyZ2UgcG9vbCBkb21haW4DAwkAZgIAMgUDZmVlBgkAZgIFA2ZlZQD0AwkAAgECLWZlZSB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gNTAgYW5kIDUwMCAoMC41LTUlKQMDAwMDCQAAAgkAswkCBQthc3NldElkc1N0cgUQcHV6emxlQXNzZXRJZFN0cgUEdW5pdAkAAAIJALMJAgULYXNzZXRJZHNTdHIFDnVzZG5Bc3NldElkU3RyBQR1bml0BwkAAAIJALMJAgULYXNzZXRJZHNTdHIFDnVzZHRBc3NldElkU3RyBQR1bml0BwkAAAIJALMJAgULYXNzZXRJZHNTdHICBVdBVkVTBQR1bml0BwkAAAIJALMJAgULYXNzZXRJZHNTdHIFEXVzZHRQcHRBc3NldElkU3RyBQR1bml0BwkAAgECS3Bvb2wgbXVzdCBoYXZlIFVTRFQtV1hHLCBVU0RULVBQVCwgVVNETiwgV0FWRVMgb3IgUFVaWkxFIGluIHRoZSBjb21wb3NpdGlvbgQNYXNzZXRJZHNTdHJMaQkAtQkCBQthc3NldElkc1N0cgIBLAQKYXNzZXRJZHNMaQoAAiRsBQ1hc3NldElkc1N0ckxpCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGY0XzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARNhZGRBc3NldEJ5dGVzVG9MaXN0AgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY0XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNF8yAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBBFhc3NldFdlaWdodHNTdHJMaQkAtQkCBQ9hc3NldFdlaWdodHNTdHICASwED2Fzc2V0V2VpZ2h0c1N1bQoAAiRsBRFhc3NldFdlaWdodHNTdHJMaQoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmNV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEDc3VtAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY1XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNV8yAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBAtmZWVBc3NldFN0cgMJAQIhPQIJALMJAgULYXNzZXRJZHNTdHIFDnVzZG5Bc3NldElkU3RyBQR1bml0BQ51c2RuQXNzZXRJZFN0cgMJAQIhPQIJALMJAgULYXNzZXRJZHNTdHICBVdBVkVTBQR1bml0AgVXQVZFUwMJAQIhPQIJALMJAgULYXNzZXRJZHNTdHIFDnVzZHRBc3NldElkU3RyBQR1bml0BQ51c2R0QXNzZXRJZFN0cgMJAQIhPQIJALMJAgULYXNzZXRJZHNTdHIFEHB1enpsZUFzc2V0SWRTdHIFBHVuaXQFEHB1enpsZUFzc2V0SWRTdHIFEXVzZHRQcHRBc3NldElkU3RyCgETYWRkVG9rZW5EYXRhRW50cmllcwIFYWNjdW0IYXNzZXROdW0DCQBnAgUIYXNzZXROdW0JAJADAQUKYXNzZXRJZHNMaQUFYWNjdW0EDWFzc2V0RGVjaW1hbHMEByRtYXRjaDAJAJEDAgUKYXNzZXRJZHNMaQUIYXNzZXROdW0DCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBeAUHJG1hdGNoMAgJAQV2YWx1ZQEJAOwHAQUBeAhkZWNpbWFscwAICQDOCAIFBWFjY3VtCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIHc3RhdGljXwkAkQMCBQ1hc3NldElkc1N0ckxpBQhhc3NldE51bQIGX3NjYWxlCQBsBgAKAAAFDWFzc2V0RGVjaW1hbHMAAAAABQRET1dOCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIHc3RhdGljXwkAkQMCBQ1hc3NldElkc1N0ckxpBQhhc3NldE51bQIJX2RlY2ltYWxzBQ1hc3NldERlY2ltYWxzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIHc3RhdGljXwkAkQMCBQ1hc3NldElkc1N0ckxpBQhhc3NldE51bQIHX3dlaWdodAkBBXZhbHVlAQkAtgkBCQCRAwIFEWFzc2V0V2VpZ2h0c1N0ckxpBQhhc3NldE51bQUDbmlsAwkBAiE9AgUPYXNzZXRXZWlnaHRzU3VtAJBOCQACAQIrc3VtIG9mIHRva2VuIHdlaWdodHMgbXVzdCBiZSBlcXVhbCB0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AgUIRGVjaW1hbHMFBVRva2VuCQCRAwIFDUFzc2V0c1dlaWdodHMFBVRva2VuBRVBc3NldHNXZWlnaHRzRGVjaW1hbHMACAUFRkxPT1IFBlNjYWxlOAoAAiRsBQhwYXltZW50cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFDlBvb2xUb2tlblNjYWxlCgEFJGY0XzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdoYW5kbGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY0XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNF8yAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAwkBCmlzU2h1dGRvd24ACQACAQITY29udHJhY3QgaXMgb24gc3RvcAMJAGYCCQENdHJ5R2V0SW50ZWdlcgECEGdsb2JhbF93YXNJbml0ZWQAAAkAAgECE3Bvb2wgYWxyZWFkeSBpbml0ZWQEEWluaXRpYWxQb29sVG9rZW5zCQEZY2FsY3VsYXRlUG9vbFRva2Vuc0Ftb3VudAEIBQFpCHBheW1lbnRzAwkAAAIFEWluaXRpYWxQb29sVG9rZW5zAAAJAAIBAjJ5b3UgbmVlZCBhIGJpZ2dlciB0b2tlbnMgYW1vdW50IHRvIGxhdW5jaCB0aGUgcG9vbAQOcG9vbFRva2VuSXNzdWUJAMMIBwkArAICAgNQWiAJAQx0cnlHZXRTdHJpbmcBAhFzdGF0aWNfcG9vbERvbWFpbgIdUHV6emxlIFN3YXA6IHBvb2wgaW5kZXggdG9rZW4FEWluaXRpYWxQb29sVG9rZW5zBRFQb29sVG9rZW5EZWNpbWFscwYFBHVuaXQAAAQLcG9vbFRva2VuSWQJALgIAQUOcG9vbFRva2VuSXNzdWUJAM4IAgkBC3ByZXBhcmVMaXN0AAkAzAgCBQ5wb29sVG9rZW5Jc3N1ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQFEWluaXRpYWxQb29sVG9rZW5zCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhBnbG9iYWxfd2FzSW5pdGVkAAEJAMwIAgkBC0JpbmFyeUVudHJ5AgITZ2xvYmFsX3Bvb2xUb2tlbl9pZAULcG9vbFRva2VuSWQJAMwIAgkBC1N0cmluZ0VudHJ5AgIWc3RhdGljX3Bvb2xUb2tlbl9pZFN0cgkBDmdldEFzc2V0U3RyaW5nAQULcG9vbFRva2VuSWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkApQgBCAUBaQZjYWxsZXICDF9pbmRleFN0YWtlZAURaW5pdGlhbFBvb2xUb2tlbnMJAMwIAgkBDEludGVnZXJFbnRyeQICEmdsb2JhbF9pbmRleFN0YWtlZAURaW5pdGlhbFBvb2xUb2tlbnMFA25pbAFpAQ1nZW5lcmF0ZUluZGV4AQpuZWVkQ2hhbmdlAwkBCmlzU2h1dGRvd24ACQACAQITY29udHJhY3QgaXMgb24gc3RvcAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMFAVQJAAIBCQCsAgICO3lvdSBuZWVkIHRvIGF0dGFjaCBhbGwgcG9vbCB0b2tlbnMuIGFtb3VudCBvZiBwb29sIHRva2VuczogCQCkAwEFAVQDCQEBIQEJARNjaGVja1Rva2Vuc1ZhbGlkaXR5AQgFAWkIcGF5bWVudHMJAAIBAhV3cm9uZyBhc3NldHMgYXR0YWNoZWQEB1BJc3N1ZWQJAQ1nZXRNaW5QSXNzdWVkAQgFAWkIcGF5bWVudHMEB3JlaXNzdWUJAQdSZWlzc3VlAwkBEUBleHRyTmF0aXZlKDEwNTcpAQITZ2xvYmFsX3Bvb2xUb2tlbl9pZAUHUElzc3VlZAYEBnJlc3VsdAkBE2hhbmRsZVBvb2xUb2tlbnNBZGQEBQdQSXNzdWVkCAUBaQhwYXltZW50cwgFAWkMb3JpZ2luQ2FsbGVyBQpuZWVkQ2hhbmdlCQCUCgIJAM4IAgUGcmVzdWx0CQDMCAIFB3JlaXNzdWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQdQSXNzdWVkCQEMdHJ5R2V0QmluYXJ5AQITZ2xvYmFsX3Bvb2xUb2tlbl9pZAkAzAgCCQEMSW50ZWdlckVudHJ5AgIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQJAGQCCQENdHJ5R2V0SW50ZWdlcgECF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50BQdQSXNzdWVkBQNuaWwFB1BJc3N1ZWQBaQEKc3Rha2VJbmRleAAECmFkZHJlc3NTdHIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAMJAQppc1NodXRkb3duAAkAAgECE2NvbnRyYWN0IGlzIG9uIHN0b3ADCQECIT0CCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQJAQx0cnlHZXRCaW5hcnkBAhNnbG9iYWxfcG9vbFRva2VuX2lkCQACAQIUd3JvbmcgYXNzZXQgYXR0YWNoZWQJARBpbmRleFN0YWtlUmVzdWx0AgUKYWRkcmVzc1N0cggFA3BtdAZhbW91bnQBaQEMdW5zdGFrZUluZGV4AQxwdXp6bGVBbW91bnQECmFkZHJlc3NTdHIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBA9wdXp6bGVBdmFpbGFibGUJAQ10cnlHZXRJbnRlZ2VyAQkArAICBQphZGRyZXNzU3RyAgxfaW5kZXhTdGFrZWQDCQEKaXNTaHV0ZG93bgAJAAIBAhNjb250cmFjdCBpcyBvbiBzdG9wAwkAZgIFDHB1enpsZUFtb3VudAUPcHV6emxlQXZhaWxhYmxlCQACAQIleW91IGRvbid0IGhhdmUgaW5kZXggdG9rZW5zIGF2YWlsYWJsZQkAzggCCAkBC2NsYWltUmVzdWx0AQgFAWkMb3JpZ2luQ2FsbGVyAl8xCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFCmFkZHJlc3NTdHICDF9pbmRleFN0YWtlZAkAZQIFD3B1enpsZUF2YWlsYWJsZQUMcHV6emxlQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhJnbG9iYWxfaW5kZXhTdGFrZWQJAGUCCQENdHJ5R2V0SW50ZWdlcgECEmdsb2JhbF9pbmRleFN0YWtlZAUMcHV6emxlQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUMcHV6emxlQW1vdW50CQERQGV4dHJOYXRpdmUoMTA1NykBAhNnbG9iYWxfcG9vbFRva2VuX2lkBQNuaWwBaQERY2xhaW1JbmRleFJld2FyZHMAAwkBCmlzU2h1dGRvd24ACQACAQITY29udHJhY3QgaXMgb24gc3RvcAkBC2NsYWltUmVzdWx0AQgFAWkGY2FsbGVyAWkBDWV2YWx1YXRlQ2xhaW0BBHVzZXIJAJQKAgUDbmlsCAkBC2NsYWltUmVzdWx0AQkBEUBleHRyTmF0aXZlKDEwNjIpAQUEdXNlcgJfMgFpAQtyZWRlZW1JbmRleAEMc2VuZFRvT3JpZ2luBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAMJAQIhPQIIBQNwbXQHYXNzZXRJZAkBDHRyeUdldEJpbmFyeQECE2dsb2JhbF9wb29sVG9rZW5faWQJAAIBAh5wbGVhc2UgYXR0YWNoIHBvb2wgc2hhcmUgdG9rZW4DCQEKaXNTaHV0ZG93bgAJAAIBAhNjb250cmFjdCBpcyBvbiBzdG9wBAlQUmVkZWVtZWQIBQNwbXQGYW1vdW50BAZyZXN1bHQJARZoYW5kbGVQb29sVG9rZW5zUmVkZWVtAgUJUFJlZGVlbWVkAwUMc2VuZFRvT3JpZ2luCAUBaQxvcmlnaW5DYWxsZXIIBQFpBmNhbGxlcgkAzggCBQZyZXN1bHQJAMwIAgkBBEJ1cm4CCQEMdHJ5R2V0QmluYXJ5AQITZ2xvYmFsX3Bvb2xUb2tlbl9pZAUJUFJlZGVlbWVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAkAZQIJAQ10cnlHZXRJbnRlZ2VyAQIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQFCVBSZWRlZW1lZAUDbmlsAWkBBHN3YXACCGFzc2V0T3V0B21pbmltdW0DCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAiFwbGVhc2UgYXR0YWNoIGV4YWN0bHkgb25lIHBheW1lbnQEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAhBbW91bnRJbgkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEB0Fzc2V0SW4IBQNwbXQHYXNzZXRJZAQIQXNzZXRPdXQJAQ1nZXRBc3NldEJ5dGVzAQUIYXNzZXRPdXQEDmZlZUFzc2V0T3V0U3RyCQEMdHJ5R2V0U3RyaW5nAQIPc3RhdGljX2ZlZVRva2VuBAtmZWVBc3NldE91dAMJAAACBQ5mZWVBc3NldE91dFN0cgIABQt1c2RuQXNzZXRJZAkBDWdldEFzc2V0Qnl0ZXMBBQ5mZWVBc3NldE91dFN0cgQOQXNzZXRJbkJhbGFuY2UJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICB2dsb2JhbF8JAQ5nZXRBc3NldFN0cmluZwEFB0Fzc2V0SW4CCF9iYWxhbmNlBA9Bc3NldE91dEJhbGFuY2UJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICB2dsb2JhbF8FCGFzc2V0T3V0AghfYmFsYW5jZQQLZmVlQW1vdW50SW4JAGsDBQhBbW91bnRJbgUDRmVlBQhGZWVTY2FsZQQNY2xlYW5BbW91bnRJbgkAZQIFCEFtb3VudEluBQtmZWVBbW91bnRJbgQJQW1vdW50T3V0CQESY2FsY3VsYXRlT3V0QW1vdW50BQUNY2xlYW5BbW91bnRJbgUHQXNzZXRJbgUIQXNzZXRPdXQFDkFzc2V0SW5CYWxhbmNlBQ9Bc3NldE91dEJhbGFuY2UEEEFzc2V0T3V0QmFsYW5jZTIJAGUCBQ9Bc3NldE91dEJhbGFuY2UFCUFtb3VudE91dAQPQXNzZXRJbkJhbGFuY2UyCQBkAgUOQXNzZXRJbkJhbGFuY2UFDWNsZWFuQW1vdW50SW4EEmZlZUFzc2V0T3V0QmFsYW5jZQMJAAACBQtmZWVBc3NldE91dAUHQXNzZXRJbgUPQXNzZXRJbkJhbGFuY2UyAwkAAAIFC2ZlZUFzc2V0T3V0BQhBc3NldE91dAUQQXNzZXRPdXRCYWxhbmNlMgkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHZ2xvYmFsXwkBDmdldEFzc2V0U3RyaW5nAQULZmVlQXNzZXRPdXQCCF9iYWxhbmNlBAxmZWVBbW91bnRPdXQJARJjYWxjdWxhdGVPdXRBbW91bnQFBQtmZWVBbW91bnRJbgUHQXNzZXRJbgULZmVlQXNzZXRPdXQFDkFzc2V0SW5CYWxhbmNlBRJmZWVBc3NldE91dEJhbGFuY2UDCQBmAgUHbWluaW11bQUJQW1vdW50T3V0CQACAQIpYW1vdW50IHRvIHJlY2lldmUgaXMgbG93ZXIgdGhhbiBnaXZlbiBvbmUDCQAAAgUIQXNzZXRPdXQFB0Fzc2V0SW4JAAIBAhh0aGlzIHN3YXAgaXMgbm90IGFsbG93ZWQDCQBmAgAACQBlAgUPQXNzZXRPdXRCYWxhbmNlBQlBbW91bnRPdXQJAAIBAhtjb250cmFjdCBpcyBvdXQgb2YgcmVzZXJ2ZXMDCQEKaXNTaHV0ZG93bgAJAAIBAhNjb250cmFjdCBpcyBvbiBzdG9wBApjcmVhdG9yRmVlCQBrAwUMZmVlQW1vdW50T3V0AAEACgQLcHJvdG9jb2xGZWUJAGsDBQxmZWVBbW91bnRPdXQABAAKBAxzdGFraW5nVG9wVXADAwkAAAIFC2ZlZUFzc2V0T3V0BQt1c2RuQXNzZXRJZAYJAAACBQtmZWVBc3NldE91dAUNcHV6emxlQXNzZXRJZAkA/QcECQEHQWRkcmVzcwEFD3N0YWtpbmdDb250cmFjdAILdG9wVXBSZXdhcmQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgULZmVlQXNzZXRPdXQFC3Byb3RvY29sRmVlBQNuaWwFBHVuaXQDCQAAAgUMc3Rha2luZ1RvcFVwBQxzdGFraW5nVG9wVXAEDG5ld0JhbGFuY2VJbgUPQXNzZXRJbkJhbGFuY2UyBA1uZXdCYWxhbmNlT3V0CQBlAgUQQXNzZXRPdXRCYWxhbmNlMgMJAAACBQhBc3NldE91dAULZmVlQXNzZXRPdXQFDGZlZUFtb3VudE91dAAABBJuZXdCYWxhbmNlRmVlQXNzZXQDAwkBAiE9AgULZmVlQXNzZXRPdXQFB0Fzc2V0SW4JAQIhPQIFC2ZlZUFzc2V0T3V0BQhBc3NldE91dAcJAGUCBRJmZWVBc3NldE91dEJhbGFuY2UFDGZlZUFtb3VudE91dAUEdW5pdAQNYXNzZXRJbkNoYW5nZQkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQdBc3NldEluAghfYmFsYW5jZQUMbmV3QmFsYW5jZUluBA5hc3NldE91dENoYW5nZQkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdnbG9iYWxfBQhhc3NldE91dAIIX2JhbGFuY2UFDW5ld0JhbGFuY2VPdXQEEWZlZUFzc2V0T3V0Q2hhbmdlAwkBAiE9AgUSbmV3QmFsYW5jZUZlZUFzc2V0BQR1bml0CQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICB2dsb2JhbF8JAQ5nZXRBc3NldFN0cmluZwEFC2ZlZUFzc2V0T3V0AghfYmFsYW5jZQkBBXZhbHVlAQUSbmV3QmFsYW5jZUZlZUFzc2V0CQELU3RyaW5nRW50cnkCAgVoZWxsbwIFd29ybGQEDHZvbHVtZVVwZGF0ZQkBEmNhbGN1bGF0ZVVzZG5WYWx1ZQQFB0Fzc2V0SW4FCEFtb3VudEluBQ5Bc3NldEluQmFsYW5jZQUSZmVlQXNzZXRPdXRCYWxhbmNlCQCUCgIJAM4IAgkAzAgCBQ5hc3NldE91dENoYW5nZQkAzAgCBQ1hc3NldEluQ2hhbmdlCQDMCAIFEWZlZUFzc2V0T3V0Q2hhbmdlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUJQW1vdW50T3V0BQhBc3NldE91dAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBCQEMdHJ5R2V0U3RyaW5nAQIQc3RhdGljX3Bvb2xPd25lcgUKY3JlYXRvckZlZQULZmVlQXNzZXRPdXQJAMwIAgkBDEludGVnZXJFbnRyeQICFGdsb2JhbF9lYXJuZWRCeU93bmVyCQBkAgkBDXRyeUdldEludGVnZXIBAhRnbG9iYWxfZWFybmVkQnlPd25lcgUKY3JlYXRvckZlZQkAzAgCCQEMSW50ZWdlckVudHJ5AgINZ2xvYmFsX3ZvbHVtZQkAZAIJAQ10cnlHZXRJbnRlZ2VyAQINZ2xvYmFsX3ZvbHVtZQUMdm9sdW1lVXBkYXRlBQNuaWwDCQAAAgUMc3Rha2luZ1RvcFVwBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUMZmVlQ29sbGVjdG9yBQtwcm90b2NvbEZlZQULZmVlQXNzZXRPdXQFA25pbAUDbmlsBQlBbW91bnRPdXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkAAwkBCmlzU2h1dGRvd24ABwMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkGCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxtYXN0ZXJQdWJLZXli4way", "height": 2641238, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CrqJi2WVLN7hz63z5HdxsxR8xRiizvpU1S23Nqu8nH1Z Next: EfbaQqEWLNEwVx1dPfgWBZEkNWg7J1dAcxh8XsEUxBRR Diff:
OldNewDifferences
390390 let br = value(indexOf(G, bn))
391391 let bs = value(indexOf(G, bo))
392392 if ((br == bs))
393- then throw("wrong tokens pair")
393+ then bm
394394 else fraction(bq, ((aa * aa) - toInt(pow(fraction(toBigInt(bp), toBigInt((aa * aa)), toBigInt((bp + bm)), HALFUP), 16, toBigInt(fraction(O[br], 10000, O[bs])), 4, 16, CEILING))), (aa * aa), DOWN)
395395 }
396396
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
55
66 let b = base58'HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS'
77
88 let c = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
99
1010 let d = base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
1111
1212 let e = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
1313
1414 let f = "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS"
1515
1616 let g = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
1717
1818 let h = "6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63"
1919
2020 let i = Address(base58'3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy')
2121
2222 let j = Address(base58'3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy')
2323
2424 let k = base58'4z8CKSYQBKkzx7PBb5uBP1YPa6YAHRNTApW1sQVHT5eU'
2525
2626 let l = base58'3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy'
2727
2828 let m = base58'3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy'
2929
3030 let n = base58'3MzEbuBV9st5CMYSdFJgaeSZL5zcaDMjhjR'
3131
3232 func o (p) = {
3333 let q = getInteger(this, p)
3434 if ($isInstanceOf(q, "Int"))
3535 then {
3636 let r = q
3737 r
3838 }
3939 else 0
4040 }
4141
4242
4343 func s (p) = {
4444 let q = getBinary(this, p)
4545 if ($isInstanceOf(q, "ByteVector"))
4646 then {
4747 let r = q
4848 r
4949 }
5050 else base58''
5151 }
5252
5353
5454 func t (p) = {
5555 let q = getString(this, p)
5656 if ($isInstanceOf(q, "String"))
5757 then {
5858 let r = q
5959 r
6060 }
6161 else ""
6262 }
6363
6464
6565 func u (v) = {
6666 let q = v
6767 if ($isInstanceOf(q, "ByteVector"))
6868 then {
6969 let r = q
7070 toBase58String(r)
7171 }
7272 else "WAVES"
7373 }
7474
7575
7676 func w (x) = if ((x == "WAVES"))
7777 then unit
7878 else fromBase58String(x)
7979
8080
8181 func y (z,A) = (z :+ w(A))
8282
8383
8484 func B (z,A) = (z :+ o((("static_" + u(A)) + "_weight")))
8585
8686
8787 func C (z,A) = (z :+ o((("static_" + u(A)) + "_decimals")))
8888
8989
9090 func D (z,A) = (z :+ o((("static_" + u(A)) + "_scale")))
9191
9292
9393 func E (z,A) = (z :+ parseIntValue(A))
9494
9595
9696 let F = o("static_tokensAmount")
9797
9898 let G = {
9999 let H = split(t("static_tokenIds"), ",")
100100 let I = size(H)
101101 let J = nil
102102 func K (L,M) = if ((M >= I))
103103 then L
104104 else y(L, H[M])
105105
106106 func N (L,M) = if ((M >= I))
107107 then L
108108 else throw("List size exceeds 10")
109109
110110 N(K(K(K(K(K(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
111111 }
112112
113113 let O = {
114114 let H = G
115115 let I = size(H)
116116 let J = nil
117117 func P (L,M) = if ((M >= I))
118118 then L
119119 else B(L, H[M])
120120
121121 func Q (L,M) = if ((M >= I))
122122 then L
123123 else throw("List size exceeds 10")
124124
125125 Q(P(P(P(P(P(P(P(P(P(P(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
126126 }
127127
128128 let R = {
129129 let H = G
130130 let I = size(H)
131131 let J = nil
132132 func S (L,M) = if ((M >= I))
133133 then L
134134 else C(L, H[M])
135135
136136 func T (L,M) = if ((M >= I))
137137 then L
138138 else throw("List size exceeds 10")
139139
140140 T(S(S(S(S(S(S(S(S(S(S(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
141141 }
142142
143143 let U = {
144144 let H = G
145145 let I = size(H)
146146 let J = nil
147147 func V (L,M) = if ((M >= I))
148148 then L
149149 else D(L, H[M])
150150
151151 func W (L,M) = if ((M >= I))
152152 then L
153153 else throw("List size exceeds 10")
154154
155155 W(V(V(V(V(V(V(V(V(V(V(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
156156 }
157157
158158 let X = o("static_fee")
159159
160160 let Y = 4
161161
162162 let Z = 10000
163163
164164 let aa = 100000000
165165
166166 let ab = 10000
167167
168168 let ac = 8
169169
170170 let ad = pow(10, 0, ac, 0, 0, HALFUP)
171171
172172 let ae = G
173173
174174 func af () = {
175175 let q = getBoolean(Address(n), "is_shutdown")
176176 if ($isInstanceOf(q, "Boolean"))
177177 then {
178178 let ag = q
179179 ag
180180 }
181181 else false
182182 }
183183
184184
185185 func ah (ai) = {
186186 let aj = u(G[ai])
187187 o((("global_" + aj) + "_balance"))
188188 }
189189
190190
191191 func ak (al,aj) = {
192192 let am = o("global_poolToken_amount")
193193 let an = o((("global_" + u(aj)) + "_balance"))
194194 fraction(al, am, an, DOWN)
195195 }
196196
197197
198198 func ao (ap) = {
199199 func aq (z,ar) = {
200200 let as = ak(ar.amount, ar.assetId)
201201 if ((as == 0))
202202 then throw("one of the tokens amounts is too low")
203203 else if (if ((z == 0))
204204 then true
205205 else (z > as))
206206 then as
207207 else z
208208 }
209209
210210 let H = ap
211211 let I = size(H)
212212 let J = 0
213213 func at (L,M) = if ((M >= I))
214214 then L
215215 else aq(L, H[M])
216216
217217 func au (L,M) = if ((M >= I))
218218 then L
219219 else throw("List size exceeds 10")
220220
221221 au(at(at(at(at(at(at(at(at(at(at(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
222222 }
223223
224224
225225 func av (v,al,aw,ax) = {
226226 let ay = indexOf(G, a)
227227 let az = indexOf(G, b)
228228 let aA = indexOf(G, c)
229229 let aB = indexOf(G, unit)
230230 let aC = o((("static_" + u(v)) + "_weight"))
231231 let aD = t("static_feeToken")
232232 if ((aD == f))
233233 then {
234234 let aE = O[value(indexOf(G, b))]
235235 let aF = o((("global_" + f) + "_balance"))
236236 let aG = fraction(al, (aF / aE), (aw / aC))
237237 let aH = getIntegerValue(i, "global_lastPuzzlePrice")
238238 fraction((aG * aH), 1, aa)
239239 }
240240 else if ((aD == g))
241241 then {
242242 let aI = O[value(aA)]
243243 let aJ = o((("global_" + g) + "_balance"))
244244 fraction(al, (aJ / aI), (aw / aC))
245245 }
246246 else if ((aD == e))
247247 then {
248248 let aK = O[value(indexOf(G, a))]
249249 let aL = {
250250 let q = ax
251251 if ($isInstanceOf(q, "Int"))
252252 then {
253253 let ag = q
254254 ax
255255 }
256256 else o((("global_" + u(a)) + "_balance"))
257257 }
258258 fraction(al, (value(aL) / aK), (aw / aC))
259259 }
260260 else {
261261 let aM = 3000
262262 let aN = (o("global_WAVES_balance") / 50)
263263 fraction(al, (aN / aM), (aw / aC))
264264 }
265265 }
266266
267267
268268 func aO (ap) = {
269269 func aP (z,aQ) = (z :+ aQ.assetId)
270270
271271 let aR = {
272272 let H = ap
273273 let I = size(H)
274274 let J = nil
275275 func at (L,M) = if ((M >= I))
276276 then L
277277 else aP(L, H[M])
278278
279279 func au (L,M) = if ((M >= I))
280280 then L
281281 else throw("List size exceeds 10")
282282
283283 au(at(at(at(at(at(at(at(at(at(at(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
284284 }
285285 if ((aR == aR))
286286 then {
287287 func aS (z,v) = if ((indexOf(aR, v) != unit))
288288 then (z + 1)
289289 else throw(("asset not attached: " + u(v)))
290290
291291 let aT = {
292292 let H = G
293293 let I = size(H)
294294 let J = 0
295295 func aU (L,M) = if ((M >= I))
296296 then L
297297 else aS(L, H[M])
298298
299299 func aV (L,M) = if ((M >= I))
300300 then L
301301 else throw("List size exceeds 10")
302302
303303 aV(aU(aU(aU(aU(aU(aU(aU(aU(aU(aU(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
304304 }
305305 if ((aT == aT))
306306 then true
307307 else throw("Strict value is not equal to itself.")
308308 }
309309 else throw("Strict value is not equal to itself.")
310310 }
311311
312312
313313 func aW (as,ap,aX,aY) = {
314314 func aZ (aj) = {
315315 func aq (z,aQ) = if ((aQ.assetId == aj))
316316 then aQ.amount
317317 else z
318318
319319 let H = ap
320320 let I = size(H)
321321 let J = 0
322322 func at (L,M) = if ((M >= I))
323323 then L
324324 else aq(L, H[M])
325325
326326 func au (L,M) = if ((M >= I))
327327 then L
328328 else throw("List size exceeds 10")
329329
330330 au(at(at(at(at(at(at(at(at(at(at(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
331331 }
332332
333333 func ba (z,aj) = {
334334 let bb = o((("global_" + u(aj)) + "_balance"))
335335 let bc = o("global_poolToken_amount")
336336 let bd = o((("static_" + u(aj)) + "_scale"))
337337 let be = fraction((fraction((bc + as), bd, bc, CEILING) - bd), bb, bd, CEILING)
338338 let bf = aZ(aj)
339339 let bg = ((if ((bf != 0))
340340 then bf
341341 else 0) - be)
342342 let bh = if (if (aY)
343343 then (bg > 0)
344344 else false)
345345 then [ScriptTransfer(aX, bg, aj)]
346346 else nil
347347 ((z ++ bh) :+ IntegerEntry((("global_" + u(aj)) + "_balance"), (bb + be)))
348348 }
349349
350350 let H = G
351351 let I = size(H)
352352 let J = nil
353353 func at (L,M) = if ((M >= I))
354354 then L
355355 else ba(L, H[M])
356356
357357 func au (L,M) = if ((M >= I))
358358 then L
359359 else throw("List size exceeds 10")
360360
361361 au(at(at(at(at(at(at(at(at(at(at(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
362362 }
363363
364364
365365 func bi (bj,aX) = {
366366 func bk (z,aj) = {
367367 let bb = o((("global_" + u(aj)) + "_balance"))
368368 let bc = o("global_poolToken_amount")
369369 let bd = o((("static_" + u(aj)) + "_scale"))
370370 let al = toInt(fraction((toBigInt(aa) - fraction(toBigInt((bc - bj)), toBigInt(aa), toBigInt(bc), CEILING)), toBigInt(bb), toBigInt(aa), DOWN))
371371 ((z :+ IntegerEntry((("global_" + u(aj)) + "_balance"), (bb - al))) :+ ScriptTransfer(aX, al, aj))
372372 }
373373
374374 let H = G
375375 let I = size(H)
376376 let J = nil
377377 func at (L,M) = if ((M >= I))
378378 then L
379379 else bk(L, H[M])
380380
381381 func au (L,M) = if ((M >= I))
382382 then L
383383 else throw("List size exceeds 10")
384384
385385 au(at(at(at(at(at(at(at(at(at(at(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
386386 }
387387
388388
389389 func bl (bm,bn,bo,bp,bq) = {
390390 let br = value(indexOf(G, bn))
391391 let bs = value(indexOf(G, bo))
392392 if ((br == bs))
393- then throw("wrong tokens pair")
393+ then bm
394394 else fraction(bq, ((aa * aa) - toInt(pow(fraction(toBigInt(bp), toBigInt((aa * aa)), toBigInt((bp + bm)), HALFUP), 16, toBigInt(fraction(O[br], 10000, O[bs])), 4, 16, CEILING))), (aa * aa), DOWN)
395395 }
396396
397397
398398 func bt (v) = {
399399 let q = v
400400 if ($isInstanceOf(q, "ByteVector"))
401401 then {
402402 let bh = q
403403 assetBalance(this, bh)
404404 }
405405 else wavesBalance(this).available
406406 }
407407
408408
409409 func bu (v,x,aw,bv) = {
410410 let bw = o("global_indexStaked")
411411 let bx = bv
412412 let by = (bt(v) - aw)
413413 let bz = if ((by > bx))
414414 then by
415415 else bx
416416 let bA = (bz - bx)
417417 let bB = if ((bw == 0))
418418 then 0
419419 else fraction(bA, aa, bw)
420420 let bC = o((("global_lastCheck_" + x) + "_interest"))
421421 (bC + bB)
422422 }
423423
424424
425425 func bD (bE) = {
426426 let bF = toString(bE)
427427 let bG = o((bF + "_indexStaked"))
428428 func aq (z,v) = {
429429 let x = u(v)
430430 let aw = o((("global_" + u(v)) + "_balance"))
431431 let bv = o((("global_lastCheck_" + x) + "_earnings"))
432432 let bH = bu(v, x, aw, bv)
433433 let bz = max([bv, (bt(v) - aw)])
434434 let bI = fraction(bG, (bH - o((((bF + "_lastCheck_") + x) + "_interest"))), aa)
435435 let bJ = if ((bI == 0))
436436 then nil
437437 else [ScriptTransfer(bE, bI, v)]
438438 $Tuple2(((z._1 ++ bJ) ++ [IntegerEntry((("global_lastCheck_" + x) + "_earnings"), (bz - bI)), IntegerEntry((("global_lastCheck_" + x) + "_interest"), bH), IntegerEntry((((bF + "_lastCheck_") + x) + "_interest"), bH)]), (z._2 + av(v, bI, aw, unit)))
439439 }
440440
441441 let z = {
442442 let H = ae
443443 let I = size(H)
444444 let J = $Tuple2(nil, 0)
445445 func at (L,M) = if ((M >= I))
446446 then L
447447 else aq(L, H[M])
448448
449449 func au (L,M) = if ((M >= I))
450450 then L
451451 else throw("List size exceeds 10")
452452
453453 au(at(at(at(at(at(at(at(at(at(at(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
454454 }
455455 $Tuple2((z._1 ++ [IntegerEntry((bF + "_claimedRewardValue"), (o((bF + "_claimedRewardValue")) + z._2)), IntegerEntry((bF + "_lastClaim"), lastBlock.timestamp)]), z._2)
456456 }
457457
458458
459459 func bK (bF,al) = {
460460 let bL = bD(addressFromStringValue(bF))._1
461461 (bL ++ [IntegerEntry((bF + "_indexStaked"), (o((bF + "_indexStaked")) + al)), IntegerEntry("global_indexStaked", (o("global_indexStaked") + al))])
462462 }
463463
464464
465465 func bM (z,bN) = (z + parseIntValue(bN))
466466
467467
468468 @Callable(bO)
469469 func preInit (bP,bQ,bR,bS,bT,bU) = {
470470 let bV = Address(fromBase58String(bT))
471471 if (af())
472472 then throw("contract is on stop")
473473 else if ((this != bO.caller))
474474 then throw("admin only")
475475 else if ((size(bS) > 13))
476476 then throw("too large pool domain")
477477 else if (if ((50 > bU))
478478 then true
479479 else (bU > 500))
480480 then throw("fee value must be between 50 and 500 (0.5-5%)")
481481 else if (if (if (if (if ((indexOf(bP, f) == unit))
482482 then (indexOf(bP, e) == unit)
483483 else false)
484484 then (indexOf(bP, g) == unit)
485485 else false)
486486 then (indexOf(bP, "WAVES") == unit)
487487 else false)
488488 then (indexOf(bP, h) == unit)
489489 else false)
490490 then throw("pool must have USDT-WXG, USDT-PPT, USDN, WAVES or PUZZLE in the composition")
491491 else {
492492 let bW = split(bP, ",")
493493 let bX = {
494494 let H = bW
495495 let I = size(H)
496496 let J = nil
497497 func at (L,M) = if ((M >= I))
498498 then L
499499 else y(L, H[M])
500500
501501 func au (L,M) = if ((M >= I))
502502 then L
503503 else throw("List size exceeds 10")
504504
505505 au(at(at(at(at(at(at(at(at(at(at(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
506506 }
507507 let bY = split(bQ, ",")
508508 let bZ = {
509509 let H = bY
510510 let I = size(H)
511511 let J = 0
512512 func aU (L,M) = if ((M >= I))
513513 then L
514514 else bM(L, H[M])
515515
516516 func aV (L,M) = if ((M >= I))
517517 then L
518518 else throw("List size exceeds 10")
519519
520520 aV(aU(aU(aU(aU(aU(aU(aU(aU(aU(aU(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
521521 }
522522 let aD = if ((indexOf(bP, e) != unit))
523523 then e
524524 else if ((indexOf(bP, "WAVES") != unit))
525525 then "WAVES"
526526 else if ((indexOf(bP, g) != unit))
527527 then g
528528 else if ((indexOf(bP, f) != unit))
529529 then f
530530 else h
531531 func ca (z,cb) = if ((cb >= size(bX)))
532532 then z
533533 else {
534534 let cc = {
535535 let q = bX[cb]
536536 if ($isInstanceOf(q, "ByteVector"))
537537 then {
538538 let ag = q
539539 value(assetInfo(ag)).decimals
540540 }
541541 else 8
542542 }
543543 (z ++ [IntegerEntry((("static_" + bW[cb]) + "_scale"), pow(10, 0, cc, 0, 0, DOWN)), IntegerEntry((("static_" + bW[cb]) + "_decimals"), cc), IntegerEntry((("static_" + bW[cb]) + "_weight"), value(parseInt(bY[cb])))])
544544 }
545545
546546 if ((bZ != 10000))
547547 then throw("sum of token weights must be equal to 10000")
548548 else ({
549549 let H = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
550550 let I = size(H)
551551 let J = nil
552552 func cd (L,M) = if ((M >= I))
553553 then L
554554 else ca(L, H[M])
555555
556556 func ce (L,M) = if ((M >= I))
557557 then L
558558 else throw("List size exceeds 10")
559559
560560 ce(cd(cd(cd(cd(cd(cd(cd(cd(cd(cd(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
561561 } ++ [StringEntry("static_tokenIds", bP), StringEntry("static_feeToken", aD), StringEntry("static_tokenWeights", bQ), IntegerEntry("static_tokensAmount", size(bX)), StringEntry("static_poolDomain", bS), StringEntry("static_baseTokenId", bR), StringEntry("static_poolOwner", bT), IntegerEntry("static_fee", bU)])
562562 }
563563 }
564564
565565
566566
567567 @Callable(bO)
568568 func deInit () = if ((bO.caller != this))
569569 then throw("admin only")
570570 else [IntegerEntry("global_wasInited", 0)]
571571
572572
573573
574574 @Callable(bO)
575575 func init () = {
576576 func cf () = {
577577 func aq (z,bN) = (z :+ IntegerEntry((("global_" + u(bN.assetId)) + "_balance"), bN.amount))
578578
579579 let H = bO.payments
580580 let I = size(H)
581581 let J = nil
582582 func at (L,M) = if ((M >= I))
583583 then L
584584 else aq(L, H[M])
585585
586586 func au (L,M) = if ((M >= I))
587587 then L
588588 else throw("List size exceeds 10")
589589
590590 au(at(at(at(at(at(at(at(at(at(at(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
591591 }
592592
593593 func cg (ap) = {
594594 func aq (z,ch) = {
595595 let v = ch.assetId
596596 func aS (z,bN) = if ((bN == v))
597597 then value(indexOf(G, bN))
598598 else z
599599
600600 let ci = {
601601 let H = G
602602 let I = size(H)
603603 let J = 1
604604 func at (L,M) = if ((M >= I))
605605 then L
606606 else aS(L, H[M])
607607
608608 func au (L,M) = if ((M >= I))
609609 then L
610610 else throw("List size exceeds 10")
611611
612612 au(at(at(at(at(at(at(at(at(at(at(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
613613 }
614614 fraction(z, pow(ch.amount, R[ci], O[ci], Y, 8, FLOOR), aa)
615615 }
616616
617617 let H = ap
618618 let I = size(H)
619619 let J = ad
620620 func at (L,M) = if ((M >= I))
621621 then L
622622 else aq(L, H[M])
623623
624624 func au (L,M) = if ((M >= I))
625625 then L
626626 else throw("List size exceeds 10")
627627
628628 au(at(at(at(at(at(at(at(at(at(at(J, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
629629 }
630630
631631 if (af())
632632 then throw("contract is on stop")
633633 else if ((o("global_wasInited") > 0))
634634 then throw("pool already inited")
635635 else {
636636 let cj = cg(bO.payments)
637637 if ((cj == 0))
638638 then throw("you need a bigger tokens amount to launch the pool")
639639 else {
640640 let ck = Issue(("PZ " + t("static_poolDomain")), "Puzzle Swap: pool index token", cj, ac, true, unit, 0)
641641 let cl = calculateAssetId(ck)
642642 (cf() ++ [ck, IntegerEntry("global_poolToken_amount", cj), IntegerEntry("global_wasInited", 1), BinaryEntry("global_poolToken_id", cl), StringEntry("static_poolToken_idStr", u(cl)), IntegerEntry((toString(bO.caller) + "_indexStaked"), cj), IntegerEntry("global_indexStaked", cj)])
643643 }
644644 }
645645 }
646646
647647
648648
649649 @Callable(bO)
650650 func generateIndex (aY) = if (af())
651651 then throw("contract is on stop")
652652 else if ((size(bO.payments) != F))
653653 then throw(("you need to attach all pool tokens. amount of pool tokens: " + toString(F)))
654654 else if (!(aO(bO.payments)))
655655 then throw("wrong assets attached")
656656 else {
657657 let as = ao(bO.payments)
658658 let cm = Reissue(getBinaryValue("global_poolToken_id"), as, true)
659659 let cn = aW(as, bO.payments, bO.originCaller, aY)
660660 $Tuple2((cn ++ [cm, ScriptTransfer(bO.caller, as, s("global_poolToken_id")), IntegerEntry("global_poolToken_amount", (o("global_poolToken_amount") + as))]), as)
661661 }
662662
663663
664664
665665 @Callable(bO)
666666 func stakeIndex () = {
667667 let bF = toString(bO.originCaller)
668668 let ch = bO.payments[0]
669669 if (af())
670670 then throw("contract is on stop")
671671 else if ((value(ch.assetId) != s("global_poolToken_id")))
672672 then throw("wrong asset attached")
673673 else bK(bF, ch.amount)
674674 }
675675
676676
677677
678678 @Callable(bO)
679679 func unstakeIndex (bG) = {
680680 let bF = toString(bO.originCaller)
681681 let co = o((bF + "_indexStaked"))
682682 if (af())
683683 then throw("contract is on stop")
684684 else if ((bG > co))
685685 then throw("you don't have index tokens available")
686686 else (bD(bO.originCaller)._1 ++ [IntegerEntry((bF + "_indexStaked"), (co - bG)), IntegerEntry("global_indexStaked", (o("global_indexStaked") - bG)), ScriptTransfer(bO.caller, bG, getBinaryValue("global_poolToken_id"))])
687687 }
688688
689689
690690
691691 @Callable(bO)
692692 func claimIndexRewards () = if (af())
693693 then throw("contract is on stop")
694694 else bD(bO.caller)
695695
696696
697697
698698 @Callable(bO)
699699 func evaluateClaim (cp) = $Tuple2(nil, bD(addressFromStringValue(cp))._2)
700700
701701
702702
703703 @Callable(bO)
704704 func redeemIndex (cq) = {
705705 let ch = bO.payments[0]
706706 if ((ch.assetId != s("global_poolToken_id")))
707707 then throw("please attach pool share token")
708708 else if (af())
709709 then throw("contract is on stop")
710710 else {
711711 let bj = ch.amount
712712 let cn = bi(bj, if (cq)
713713 then bO.originCaller
714714 else bO.caller)
715715 (cn ++ [Burn(s("global_poolToken_id"), bj), IntegerEntry("global_poolToken_amount", (o("global_poolToken_amount") - bj))])
716716 }
717717 }
718718
719719
720720
721721 @Callable(bO)
722722 func swap (bo,cr) = if ((size(bO.payments) != 1))
723723 then throw("please attach exactly one payment")
724724 else {
725725 let ch = value(bO.payments[0])
726726 let bm = value(bO.payments[0].amount)
727727 let cs = ch.assetId
728728 let ct = w(bo)
729729 let cu = t("static_feeToken")
730730 let cv = if ((cu == ""))
731731 then a
732732 else w(cu)
733733 let cw = o((("global_" + u(cs)) + "_balance"))
734734 let cx = o((("global_" + bo) + "_balance"))
735735 let cy = fraction(bm, X, ab)
736736 let cz = (bm - cy)
737737 let cA = bl(cz, cs, ct, cw, cx)
738738 let cB = (cx - cA)
739739 let cC = (cw + cz)
740740 let cD = if ((cv == cs))
741741 then cC
742742 else if ((cv == ct))
743743 then cB
744744 else o((("global_" + u(cv)) + "_balance"))
745745 let cE = bl(cy, cs, cv, cw, cD)
746746 if ((cr > cA))
747747 then throw("amount to recieve is lower than given one")
748748 else if ((ct == cs))
749749 then throw("this swap is not allowed")
750750 else if ((0 > (cx - cA)))
751751 then throw("contract is out of reserves")
752752 else if (af())
753753 then throw("contract is on stop")
754754 else {
755755 let cF = fraction(cE, 1, 10)
756756 let cG = fraction(cE, 4, 10)
757757 let cH = if (if ((cv == a))
758758 then true
759759 else (cv == b))
760760 then reentrantInvoke(Address(m), "topUpReward", nil, [AttachedPayment(cv, cG)])
761761 else unit
762762 if ((cH == cH))
763763 then {
764764 let cI = cC
765765 let cJ = (cB - (if ((ct == cv))
766766 then cE
767767 else 0))
768768 let cK = if (if ((cv != cs))
769769 then (cv != ct)
770770 else false)
771771 then (cD - cE)
772772 else unit
773773 let cL = IntegerEntry((("global_" + u(cs)) + "_balance"), cI)
774774 let cM = IntegerEntry((("global_" + bo) + "_balance"), cJ)
775775 let cN = if ((cK != unit))
776776 then IntegerEntry((("global_" + u(cv)) + "_balance"), value(cK))
777777 else StringEntry("hello", "world")
778778 let cO = av(cs, bm, cw, cD)
779779 $Tuple2(([cM, cL, cN, ScriptTransfer(bO.caller, cA, ct), ScriptTransfer(addressFromStringValue(t("static_poolOwner")), cF, cv), IntegerEntry("global_earnedByOwner", (o("global_earnedByOwner") + cF)), IntegerEntry("global_volume", (o("global_volume") + cO))] ++ (if ((cH == unit))
780780 then [ScriptTransfer(Address(l), cG, cv)]
781781 else nil)), cA)
782782 }
783783 else throw("Strict value is not equal to itself.")
784784 }
785785 }
786786
787787
788788 @Verifier(cP)
789789 func cQ () = if (af())
790790 then false
791791 else if (sigVerify(cP.bodyBytes, cP.proofs[0], cP.senderPublicKey))
792792 then true
793793 else sigVerify(cP.bodyBytes, cP.proofs[0], k)
794794

github/deemru/w8io/169f3d6 
145.47 ms