tx · 9rzB6GGAFMAuJ1jLX4VbRdJGtrGjhMRCLz1cKKGkETws

3NBPx1Fciu3JQNEGZ21jSnTdutLNGGBUSXh:  -0.03900000 Waves

2024.12.15 02:28 [3414917] smart account 3NBPx1Fciu3JQNEGZ21jSnTdutLNGGBUSXh > SELF 0.00000000 Waves

{ "type": 13, "id": "9rzB6GGAFMAuJ1jLX4VbRdJGtrGjhMRCLz1cKKGkETws", "fee": 3900000, "feeAssetId": null, "timestamp": 1734218937829, "version": 2, "chainId": 84, "sender": "3NBPx1Fciu3JQNEGZ21jSnTdutLNGGBUSXh", "senderPublicKey": "3QtfC1XbLZXdeawMDeSERy9vvjUmj1XYd2GFmrvx7pWQ", "proofs": [ "3UHfZTMWLDpyYKtiMrEkNyaAt2vrtwKzNjdCcCnBb37YVtjda8bsuC86VS6C6gcTKDZ8ABrwwCjtJruv546XdC5s" ], "script": "base64:BgJbCAISABIECgIICBIDCgEEEgMKAQESABIFCgMIAQQSABIDCgEBEgASBAoCCAESABIDCgEIEgMKAQgSBAoCCAESAwoBCBIECgIIBBIAEgMKAQgSABIAEgASAwoBAZABAANTRVACAl9fAAVNVUxUNgDAhD0ABU1VTFQ3AICt4gQABU1VTFQ4AIDC1y8ABk1VTFQxNACAgOmDsd4WAApEQVlfTUlMTElTAIC4mSkAFVVTRFQyQUNSRVNfTVVMVElQTElFUgAKABNPTkVfUEVSQ0VOVF9ESVZJU09SAGQADFJBTkRPTV9ERUxBWQACABRORlRfQ0hFU1RfUFJJQ0VfVVNEVADAlrECAAVjaGFpbgkAyQECCQDKAQIIBQR0aGlzBWJ5dGVzAAEAAQAXREFJTFlfUFJPTU9fU1RBUlRfQkxPQ0sEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAgO+RAgMJAAACAQFUBQckbWF0Y2gwAMCm0AEJAAIBAg1Vbmtub3duIGNoYWluABVEQUlMWV9QUk9NT19FTkRfQkxPQ0sEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAoNuTAgMJAAACAQFUBQckbWF0Y2gwAOCS0gEJAAIBAg1Vbmtub3duIGNoYWluAApEQVlfQkxPQ0tTBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAKALAwkAAAIBAVQFByRtYXRjaDAAPAkAAgECDVVua25vd24gY2hhaW4AC1dFRUtfQkxPQ0tTBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAOBOAwkAAAIBAVQFByRtYXRjaDAAtAEJAAIBAg1Vbmtub3duIGNoYWluAApWUkZfT0ZGU0VUBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAAADCQAAAgEBVAUHJG1hdGNoMACQ+UUJAAIBAg1Vbmtub3duIGNoYWluAAt1c2R0QXNzZXRJZAQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kDCQAAAgEBVAUHJG1hdGNoMAEgVbHYn3KHgu/l41uNrAWrZd6aQ6EvFrsF8xq3h6XxxRgJAAIBAg1Vbmtub3duIGNoYWluABZkZWZhdWx0UmVzdDJBZGRyZXNzU3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUEZ3WXRhOGJpRXozMXpwZUZlNURKSzh3RTV0clNwUVZGOAMJAAACAQFUBQckbWF0Y2gwAiMzTjdVdVlhcjYyNjRQNThGQmhWV0tQUUFoNFl1YTJoZ25ndgkAAgECDVVua25vd24gY2hhaW4ADmFyYml0cmFnZURlbGF5BAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwBQpEQVlfTUlMTElTAwkAAAIBAVQFByRtYXRjaDAA4NQDCQACAQINVW5rbm93biBjaGFpbgAVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUExuY1h0UzFVODNENmNRYkZEM0g4ckJIUExnenhTRktaMQMJAAACAQFUBQckbWF0Y2gwAiMzTkRDeUJHNXE4NUp1YVJpaWdVZUV0YWlueWpDUVQzWHBabQkAAgECDVVua25vd24gY2hhaW4BD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAABBJZHhDZmdBY3JlczJEYXBwAAEADUlkeENmZ1dsZ0RhcHAAAgAUSWR4Q2ZnSW52ZXN0RnVuZERhcHAABQAQSWR4Q2ZnTWFya2V0RGFwcAAGAQprZXlSZXN0Q2ZnAAIOJXNfX3Jlc3RDb25maWcBD2tleVJlc3QyQWRkcmVzcwACDSVzX19yZXN0MkFkZHIBEXJlYWRSZXN0Q2ZnT3JGYWlsAQRyZXN0CQC8CQIJAQ9nZXRTdHJpbmdPckZhaWwCBQRyZXN0CQEKa2V5UmVzdENmZwAFA1NFUAEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAghyZXN0MkNmZwNpZHgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFCHJlc3QyQ2ZnBQNpZHgJAKwCAgIqUmVzdCBjZmcgZG9lc24ndCBjb250YWluIGFkZHJlc3MgYXQgaW5kZXggCQCkAwEFA2lkeAANcmVzdDJDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEPa2V5UmVzdDJBZGRyZXNzAAUWZGVmYXVsdFJlc3QyQWRkcmVzc1N0cgAIcmVzdDJDZmcJARFyZWFkUmVzdENmZ09yRmFpbAEFDXJlc3QyQ29udHJhY3QADmFjcmVzMkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFEElkeENmZ0FjcmVzMkRhcHAAC3dsZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFDUlkeENmZ1dsZ0RhcHAAEmludmVzdEZ1bmRDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRRJZHhDZmdJbnZlc3RGdW5kRGFwcAAObWFya2V0Q29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQhyZXN0MkNmZwUQSWR4Q2ZnTWFya2V0RGFwcAATb2xkQWNyZXNDb250cmFjdEtleQIQb2xkQWNyZXNDb250cmFjdAEKa2V5QmxvY2tlZAACEGNvbnRyYWN0c0Jsb2NrZWQBFWtleUxhc3RXZWVrVHhJZEJ5VXNlcgEEYWRkcgkArAICAhNsYXN0V2Vla1R4SWRCeVVzZXJfBQRhZGRyARRrZXlDdXJXZWVrVHhJZEJ5VXNlcgEEYWRkcgkArAICAhJjdXJXZWVrVHhJZEJ5VXNlcl8FBGFkZHIBCWtleUNvbW1pdAEHYWRkcmVzcwkArAICAg9maW5pc2hCbG9ja0Zvcl8FB2FkZHJlc3MADXdsZ0Fzc2V0SWRLZXkCC3dsZ19hc3NldElkAAp3bGdBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgULd2xnQ29udHJhY3QFDXdsZ0Fzc2V0SWRLZXkCGFdMR09MRCBpcyBub3QgaXNzdWVkIHlldAAUYWNyZXNJc3N1ZWRBbW91bnRLZXkCEWFjcmVzSXNzdWVkQW1vdW50AA9hY3Jlc0Fzc2V0SWRLZXkCDGFjcmVzQXNzZXRJZAAMYWNyZXNBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgUOYWNyZXMyQ29udHJhY3QFD2FjcmVzQXNzZXRJZEtleQIXQUNSRVMgaXMgbm90IGlzc3VlZCB5ZXQBGGtleUFjcmVzU3Rha2VkVGltZUJ5VXNlcgEEYWRkcgkArAICAhZhY3Jlc1N0YWtlZFRpbWVCeVVzZXJfBQRhZGRyARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBCW93bmVyQWRkcgkArAICAhNzdGFrZWRMYW5kc0J5T3duZXJfBQlvd25lckFkZHIBFGtleVN0YWtlZER1Y2tCeU93bmVyAQlvd25lckFkZHIJAKwCAgISc3Rha2VkRHVja0J5T3duZXJfBQlvd25lckFkZHIBHmtleVN0YWtlZFRpbWVCeUFzc2V0SWRBbmRPd25lcgIHYXNzZXRJZARhZGRyCQCsAgIJAKwCAgkArAICAgNzdF8FB2Fzc2V0SWQCAV8FBGFkZHIBFGtleVN0YWtlZE5GVHNCeU93bmVyAQlvd25lckFkZHIJAKwCAgISc3Rha2VkTkZUc0J5T3duZXJfBQlvd25lckFkZHIBEWtleVVzZXJQcm9tb0FjcmVzAQdhZGRyZXNzCQCsAgICC3Byb21vQWNyZXNfBQdhZGRyZXNzARNrZXlVc2VyUHJvbW9UaWNrZXRzAQdhZGRyZXNzCQCsAgICDXByb21vVGlja2V0c18FB2FkZHJlc3MAFGtleVRvdGFsUHJvbW9UaWNrZXRzAhF0b3RhbFByb21vVGlja2V0cwALa2V5UHJvbW9NYXACCHByb21vTWFwARRrZXlQcm9tb1JvdW5kV2lubmVycwEDZGF5CQCsAgICDWRhaWx5V2lubmVyc18JAKQDAQUDZGF5ABJwcm9tb0F3YXJkUGVyUm91bmQJAMwIAgAACQDMCAIAgMq17gEJAMwIAgCAwtcvCQDMCAIAgMLXLwkAzAgCAIDC1y8JAMwIAgCAwtcvBQNuaWwBBWFzSW50AQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACA0ludAQBbgUHJG1hdGNoMAUBbgkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEMYXNUdXBsZTVJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAhkoSW50LCBJbnQsIEludCwgSW50LCBJbnQpBAF0BQckbWF0Y2gwBQF0CQACAQIrZmFpbCB0byBjYXN0IGludG8gKEludCwgSW50LCBJbnQsIEludCwgSW50KQEMYXNUdXBsZTRJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAhQoSW50LCBJbnQsIEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECJmZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCwgSW50LCBJbnQpAQxhc1R1cGxlM0ludHMBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACDyhJbnQsIEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECIWZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCwgSW50KQEMYXNUdXBsZTJJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgooSW50LCBJbnQpBAF0BQckbWF0Y2gwBQF0CQACAQIcZmFpbCB0byBjYXN0IGludG8gKEludCwgSW50KQEKZml4ZWRQb2ludAIDdmFsCGRlY2ltYWxzBAZ0ZW5Qb3cJAGwGAAoAAAUIZGVjaW1hbHMAAAAABQRET1dOBAdsb3dQYXJ0CQCkAwEJAGoCBQN2YWwFBnRlblBvdwQGemVyb2VzCQCwAgIJAKQDAQUGdGVuUG93CQBkAgABCQCxAgEFB2xvd1BhcnQJAKwCAgkArAICCQCsAgIJAKQDAQkAaQIFA3ZhbAUGdGVuUG93AgEuBQZ6ZXJvZXMFB2xvd1BhcnQBD2dldFJhbmRvbU51bWJlcgMIbWF4VmFsdWUEc2FsdAdlbnRyb3B5AwkAZwIAAAUIbWF4VmFsdWUJAAIBAhZtYXhWYWx1ZSBzaG91bGQgYmUgPiAwBApyYW5kb21IYXNoCQDUFgEJAMsBAgUEc2FsdAUHZW50cm9weQkAagIJALEJAQUKcmFuZG9tSGFzaAUIbWF4VmFsdWUBBHBhZEwCA3ZhbANsZW4EBHZhbFMJAKQDAQUDdmFsBAZ6ZXJvZXMJALACAgkApAMBCQBsBgAKAAAJAGUCBQNsZW4JALECAQUEdmFsUwAAAAAFBERPV04AAQkArAICBQZ6ZXJvZXMFBHZhbFMAA002XwDAhD0AA004XwCAwtcvAA93bGdJc3N1ZWRBbXRLZXkCEHdsZ19pc3N1ZWRBbW91bnQADnpiSXNzdWVkQW10S2V5AhJ6YmlsbF9pc3N1ZWRBbW91bnQBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQRhZGRyCQCsAgICGGFjcmVzU3Rha2VkQW1vdW50QnlVc2VyXwUEYWRkcgEVa2V5RmFybWluZ1Bvd2VyQnlVc2VyAQRhZGRyCQCsAgICE2Zhcm1pbmdQb3dlckJ5VXNlcl8FBGFkZHIAEmFjcmVzU3Rha2RUb3RhbEtleQIWYWNyZXNTdGFrZWRBbW91bnRUb3RhbAAUdG90YWxGYXJtaW5nUG93ZXJLZXkCEXRvdGFsRmFybWluZ1Bvd2VyAAtNQVhfV0xfTkZUUwADAAxNQVhfQVJLX05GVFMAAQANQVJLX05GVF9CT05VUwCIJwAXTUFYX05GVFNfU1RBS0VEX0JZX1VTRVIABAARa2V5TmZ0VG90YWxJc3N1ZWQCDm5mdFRvdGFsSXNzdWVkABFrZXlOZnRUb3RhbEJ1cm5lZAIObmZ0VG90YWxCdXJuZWQAE2tleVdsTmZ0VG90YWxTdGFrZWQCEFdsTmZ0VG90YWxTdGFrZWQAFGtleUFya05mdFRvdGFsU3Rha2VkAhFBcmtOZnRUb3RhbFN0YWtlZAEVa2V5TmZ0TnVtYmVyQnlBc3NldElkAQdhc3NldElkCQCsAgICE25mdE51bWJlckJ5QXNzZXRJZF8FB2Fzc2V0SWQBEmtleVVzZXJXbE5mdE51bWJlcgEEYWRkcgkArAICAhB1c2VyV2xOZnROdW1iZXJfBQRhZGRyARNrZXlVc2VyQXJrTmZ0TnVtYmVyAQRhZGRyCQCsAgICEXVzZXJBcmtOZnROdW1iZXJfBQRhZGRyARBrZXlVc2VyRnVsbEJvbnVzAQRhZGRyCQCsAgICDnVzZXJGdWxsQm9udXNfBQRhZGRyAApsZXZlbEFjcmVzCQDMCAIAAAkAzAgCAAoJAMwIAgAUCQDMCAIAKAkAzAgCAFAJAMwIAgCWAQkAzAgCAPoBCQDMCAIAkAMJAMwIAgC8BQkAzAgCAOgHBQNuaWwBD2dldExldmVsQnlBY3JlcwEFYWNyZXMEA2FjcgkAaQIJAGQCBQVhY3JlcwD/wdcvBQNNOF8KAQdjaGVja2VyAgNhY2MEaXRlbQMJAGcCBQRpdGVtBQNhY3IFA2FjYwkAZAIFA2FjYwABCgACJGwFCmxldmVsQWNyZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB2NoZWNrZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBFmdldEZhcm1pbmdQb3dlckJ5QWNyZXMBBWFjcmVzCQBoAgkAaAIFBWFjcmVzABQJAGQCCQEPZ2V0TGV2ZWxCeUFjcmVzAQUFYWNyZXMABAEeZ2V0RmFybWluZ1Bvd2VyQnlBY3Jlc0FuZEJvbnVzAgVhY3JlcwZib251czYECm5vdEJvbnVzZWQJARZnZXRGYXJtaW5nUG93ZXJCeUFjcmVzAQUFYWNyZXMJAJQKAgkAawMFCm5vdEJvbnVzZWQJAGQCBQNNNl8FBmJvbnVzNgUDTTZfBQpub3RCb251c2VkAAt0ZWFtQWRkcktleQIIdGVhbUFkZHIBGWtleUxhc3RXbGdUcmFkZVRpbWVCeVVzZXIBBGFkZHIJAKwCAgIQbGFzdEFyYlRpbWVVc2VyXwUEYWRkcgART0xEX1NUQUtJTkdfREVBREwAgPnjm7kyABRNQVhfTEFORFNfVE9fQ09OVkVSVAAOABRrZXlMYXN0QWNyZXNTZWxsVGltZQIRbGFzdEFjcmVzU2VsbFRpbWUAEGtleUxhc3RMaW1pdExlZnQCDWxhc3RMaW1pdExlZnQABW5hbWVzCQDMCAICC0dvbGQgc2hvdmVsCQDMCAICB1BpY2theGUJAMwIAgIOU2FudGEncyBtaXR0ZW4FA25pbAAMZGVzY3JpcHRpb25zCQDMCAICFlJld2FyZCBmb3IgZWFybHkgYmlyZHMJAMwIAgITSW5jcmVhc2VzIEZhcm1Qb3dlcgkAzAgCAhVOZXcgWWVhciBwcm9tbyByZXdhcmQFA25pbAAOaWR4RGVzY3JTaG92ZWwAAAAPaWR4RGVzY3JQaWNrYXhlAAEADmlkeERlc2NyTWl0dGVuAAIAEHJhcml0eVRocmVzaG9sZHMJAMwIAgAFCQDMCAIACgkAzAgCABQFA25pbAANaWR4VGhyZXNob2xkQwAAAA1pZHhUaHJlc2hvbGRVAAEADWlkeFRocmVzaG9sZEwAAgAFbmFtZXoJAMwIAgIGU0hPVkVMCQDMCAICB1BJQ0tBWEUJAMwIAgIGTUlUVEVOBQNuaWwADWlkeE5hbWVTaG92ZWwAAAAOaWR4TmFtZVBpY2theGUAAQANaWR4TmFtZU1pdHRlbgACAAtjb250ZW50S2V5egkAzAgCAg9jb250ZW50UGlja2F4ZUMJAMwIAgIPY29udGVudFBpY2theGVVCQDMCAICD2NvbnRlbnRQaWNrYXhlTAkAzAgCAg9jb250ZW50UGlja2F4ZUUJAMwIAgIOY29udGVudFNob3ZlbFAJAMwIAgIOY29udGVudE1pdHRlblAFA25pbAAHaWR4S2V5QwAAAAhpZHhLZXlTUAAEAAhpZHhLZXlNUAAFAAtyYXJpdHlOYW1lcwkAzAgCAgZDb21tb24JAMwIAgIIVW5jb21tb24JAMwIAgIJTGVnZW5kYXJ5CQDMCAICBEVwaWMJAMwIAgIFUHJvbW8FA25pbAAKaWR4UmFyaXR5QwAAAAppZHhSYXJpdHlVAAEACmlkeFJhcml0eUwAAgAKaWR4UmFyaXR5RQADAAppZHhSYXJpdHlQAAQAC2NvbGxlY3Rpb256CQDMCAICDURpZ2dpbmcgdG9vbHMJAMwIAgIOTmV3IFllYXIgZ2lmdHMFA25pbAAKaWR4Q29sbERpZwAAAA5pZHhDb2xsTmV3WWVhcgABAApib251c1R5cGV6CQDMCAICCUZhcm1Qb3dlcgUDbmlsAA5pZHhCb251c1R5cGVGcAAAAQZwcm9sb2cBAWkDAwkBAiE9AggFAWkMb3JpZ2luQ2FsbGVyBQ1yZXN0MkNvbnRyYWN0CQELdmFsdWVPckVsc2UCCQCgCAEJAQprZXlCbG9ja2VkAAcHCQACAQIfQ29udHJhY3RzIGFyZSB1bmRlciBtYWludGVuYW5jZQQEYWRkcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEBHdlZWsJAGkCBQZoZWlnaHQFC1dFRUtfQkxPQ0tTBAtsYXN0V2Vla0tleQkBFWtleUxhc3RXZWVrVHhJZEJ5VXNlcgEFBGFkZHIEEmxhc3RXZWVrVHhJZEJ5VXNlcgkAoggBBQtsYXN0V2Vla0tleQQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAN3dHgJAKwCAgkArAICCQCkAwEFBHdlZWsCAV8FBHR4SWQECmN1cldlZWtLZXkJARRrZXlDdXJXZWVrVHhJZEJ5VXNlcgEFBGFkZHIDCQEJaXNEZWZpbmVkAQUSbGFzdFdlZWtUeElkQnlVc2VyBApsYXN0V2Vla1R4CQC1CQIJAQV2YWx1ZQEFEmxhc3RXZWVrVHhJZEJ5VXNlcgIBXwMJAAACCQCRAwIFCmxhc3RXZWVrVHgAAAkApAMBBQR3ZWVrCQDMCAIJAQtTdHJpbmdFbnRyeQIFC2xhc3RXZWVrS2V5BQN3dHgJAMwIAgkBC1N0cmluZ0VudHJ5AgUKY3VyV2Vla0tleQUDd3R4BQNuaWwDCQAAAgkAkQMCBQpsYXN0V2Vla1R4AAAJAKQDAQkAZQIFBHdlZWsAAQkAzAgCCQELU3RyaW5nRW50cnkCBQpjdXJXZWVrS2V5BQN3dHgFA25pbAQRY3VyV2Vla1R4SWRCeVVzZXIJARFAZXh0ck5hdGl2ZSgxMDU4KQEFCmN1cldlZWtLZXkECWN1cldlZWtUeAkAtQkCBRFjdXJXZWVrVHhJZEJ5VXNlcgIBXwMJAAACCQCRAwIFCWN1cldlZWtUeAAACQCkAwEFBHdlZWsJAMwIAgkBC1N0cmluZ0VudHJ5AgUKY3VyV2Vla0tleQUDd3R4BQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgULbGFzdFdlZWtLZXkFEWN1cldlZWtUeElkQnlVc2VyCQDMCAIJAQtTdHJpbmdFbnRyeQIFCmN1cldlZWtLZXkFA3d0eAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIFC2xhc3RXZWVrS2V5BQN3dHgJAMwIAgkBC1N0cmluZ0VudHJ5AgUKY3VyV2Vla0tleQUDd3R4BQNuaWwBFGNyZWF0ZU5mdERlc2NyQ3VzdG9tCAdjb250S2V5CW5mdFNlcmlhbApjb2xsZWN0aW9uBG5hbWUFZGVzY3IGcmFyaXR5BWJvbnVzCWJvbnVzVHlwZQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIieyJ1cmwiOiAiaHR0cHM6Ly93YXZlc2xhbmRzLmNvbSIsIAIPImNvbnRlbnRLZXkiOiAiBQdjb250S2V5AgMiLCACCiJudW1iZXIiOiAJAKQDAQUJbmZ0U2VyaWFsAgIsIAIPImNvbGxlY3Rpb24iOiAiBQpjb2xsZWN0aW9uAgMiLCACCSJuYW1lIjogIgUEbmFtZQIDIiwgAhAiZGVzY3JpcHRpb24iOiAiBQVkZXNjcgIDIiwgAgkicmFyZSI6ICIFBnJhcml0eQIDIiwgAgkiYm9udXMiOiAJAKQDAQUFYm9udXMCAiwgAg4iYm9udXNUeXBlIjogIgUJYm9udXNUeXBlAgIifQEOaXNzdWVOZnRDdXN0b20IB25hbWVJZHgKY29udEtleUlkeAdjb2xsSWR4CXJhcml0eUlkeAlib251c1BlcmMIZGVzY3JJZHgMYm9udXNUeXBlSWR4BGFkZHIECW5mdFNlcmlhbAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRFrZXlOZnRUb3RhbElzc3VlZAAABAZyYXJpdHkJAJEDAgULcmFyaXR5TmFtZXMFCXJhcml0eUlkeAQEbmFtZQkArAICCQCsAgIJAKwCAgkAkQMCBQVuYW1legUHbmFtZUlkeAIBLQkArwICBQZyYXJpdHkAAQkApAMBBQlib251c1BlcmMEBWlzc3VlCQDCCAUFBG5hbWUJARRjcmVhdGVOZnREZXNjckN1c3RvbQgJAJEDAgULY29udGVudEtleXoFCmNvbnRLZXlJZHgFCW5mdFNlcmlhbAkAkQMCBQtjb2xsZWN0aW9uegUHY29sbElkeAkAkQMCBQVuYW1lcwUHbmFtZUlkeAkAkQMCBQxkZXNjcmlwdGlvbnMFCGRlc2NySWR4CQCRAwIFC3Jhcml0eU5hbWVzBQlyYXJpdHlJZHgFCWJvbnVzUGVyYwkAkQMCBQpib251c1R5cGV6BQxib251c1R5cGVJZHgAAQAABwQKbmZ0QXNzZXRJZAkAuAgBBQVpc3N1ZQkAlAoCCQDMCAIFBWlzc3VlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlOZnRUb3RhbElzc3VlZAkAZAIFCW5mdFNlcmlhbAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5TmZ0TnVtYmVyQnlBc3NldElkAQkA2AQBBQpuZnRBc3NldElkBQluZnRTZXJpYWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUEYWRkcgABBQpuZnRBc3NldElkBQNuaWwFCm5mdEFzc2V0SWQBEmJvbnVzQnlEZXNjcmlwdGlvbgEFZGVzY3IDCQEBIQEJAQhjb250YWlucwIFBWRlc2NyAhgiYm9udXNUeXBlIjogIkZhcm1Qb3dlciIJAAIBCQCsAgICFk5GVCBpcyBub3Qgc3VwcG9ydGVkOiAFBWRlc2NyBAhib251c1N0cgkAkQMCCQC8CQIJAJEDAgkAvAkCBQVkZXNjcgIIImJvbnVzIjoAAQIBLAAACQENcGFyc2VJbnRWYWx1ZQEJALACAgUIYm9udXNTdHIJAGQCCQELdmFsdWVPckVsc2UCCQC3CQIFCGJvbnVzU3RyAgEgAP///////////wEAAQEWcmFyaXR5SWR4QnlEZXNjcmlwcmlvbgEFZGVzY3IDCQEBIQEJAQhjb250YWlucwIFBWRlc2NyAgYicmFyZSIJAAIBCQCsAgICFk5GVCBpcyBub3Qgc3VwcG9ydGVkOiAFBWRlc2NyBAlyYXJpdHlTdHIJAJEDAgkAvAkCCQCRAwIJALwJAgkAkQMCCQC8CQIFBWRlc2NyAgYicmFyZSIAAQIBLAAAAgEiAAEJAQV2YWx1ZQEJAM8IAgULcmFyaXR5TmFtZXMFCXJhcml0eVN0cgEZc3Rha2VVbnN0YWtlQWNyZXNJbnRlcm5hbAMDYW10B2FkZHJlc3MKYm9udXNEZWx0YQMDCQAAAgUDYW10AAAJAAACBQpib251c0RlbHRhAAAHCQACAQINTm90aGluZyB0byBkbwQJd2xnUmVzdWx0CQD8BwQFC3dsZ0NvbnRyYWN0AhJvblN0YWtlVW5zdGFrZUxhbmQJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwDCQAAAgUJd2xnUmVzdWx0BQl3bGdSZXN1bHQEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAEB3RpbWVLZXkJARhrZXlBY3Jlc1N0YWtlZFRpbWVCeVVzZXIBBQdhZGRyZXNzBAlhbW91bnRLZXkJARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEFB2FkZHJlc3MEDm9sZEFjcmVzQW1vdW50CQELdmFsdWVPckVsc2UCCQCfCAEFCWFtb3VudEtleQAAAwMJAGYCAAAFA2FtdAkAZgIAAAkAZAIFDm9sZEFjcmVzQW1vdW50BQNhbXQHCQACAQkArAICCQCsAgIJAKwCAgIOWW91IGhhdmUgb25seSAJAQpmaXhlZFBvaW50AgUOb2xkQWNyZXNBbW91bnQACAIgIEFDUkVTIHN0YWtlZCwgdHJpZWQgdG8gdW5zdGFrZSAJAQpmaXhlZFBvaW50AgkBAS0BBQNhbXQACAQObmV3QWNyZXNBbW91bnQJAGQCBQ5vbGRBY3Jlc0Ftb3VudAUDYW10BAhvbGRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRJhY3Jlc1N0YWtkVG90YWxLZXkAAAQJdXNlckZwS2V5CQEVa2V5RmFybWluZ1Bvd2VyQnlVc2VyAQUHYWRkcmVzcwQFb2xkRnAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUJdXNlckZwS2V5AAAECGJvbnVzS2V5CQEQa2V5VXNlckZ1bGxCb251cwEFB2FkZHJlc3MECG9sZEJvbnVzCQELdmFsdWVPckVsc2UCCQCaCAIFDmFjcmVzMkNvbnRyYWN0BQhib251c0tleQAAAwMJAGYCAAAFCmJvbnVzRGVsdGEJAGYCAAAJAGQCBQhvbGRCb251cwUKYm9udXNEZWx0YQcJAAIBCQCsAgIJAKwCAgkArAICCQCsAgICDllvdSBoYXZlIG9ubHkgCQEKZml4ZWRQb2ludAIFCG9sZEJvbnVzAAQCHiUgYm9udXMsIGFuZCB0cmllZCB0byB1bnN0YWtlIAkBCmZpeGVkUG9pbnQCCQEBLQEFCmJvbnVzRGVsdGEABAIBJQQLJHQwNjYzMTY3MzAJAR5nZXRGYXJtaW5nUG93ZXJCeUFjcmVzQW5kQm9udXMCBQ5uZXdBY3Jlc0Ftb3VudAkAZAIFCG9sZEJvbnVzBQpib251c0RlbHRhBAxuZXdCb251c2VkRnAIBQskdDA2NjMxNjczMAJfMQQHaWdub3JlZAgFCyR0MDY2MzE2NzMwAl8yBApvbGRUb3RhbEZwCQELdmFsdWVPckVsc2UCCQCfCAEFFHRvdGFsRmFybWluZ1Bvd2VyS2V5AAAEDGFjcmVzQWN0aW9ucwMJAAACBQNhbXQAAAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlhbW91bnRLZXkFDm5ld0FjcmVzQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJhY3Jlc1N0YWtkVG90YWxLZXkJAGQCBQhvbGRUb3RhbAUDYW10BQNuaWwEDGJvbnVzQWN0aW9ucwMJAAACBQpib251c0RlbHRhAAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUIYm9udXNLZXkJAGQCBQhvbGRCb251cwUKYm9udXNEZWx0YQUDbmlsCQCUCgIJAM0IAgkAzQgCCQDNCAIJAM4IAgUMYWNyZXNBY3Rpb25zBQxib251c0FjdGlvbnMJAQxJbnRlZ2VyRW50cnkCBQd0aW1lS2V5CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkBDEludGVnZXJFbnRyeQIFCXVzZXJGcEtleQUMbmV3Qm9udXNlZEZwCQEMSW50ZWdlckVudHJ5AgUUdG90YWxGYXJtaW5nUG93ZXJLZXkJAGUCCQBkAgUKb2xkVG90YWxGcAUMbmV3Qm9udXNlZEZwBQVvbGRGcAUJd2xnUmVzdWx0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQtnZXRXbGdQcmljZQEVdXNkdEJhbGFuY2VDb3JyZWN0aW9uBAxpc3N1ZWRBbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQt3bGdDb250cmFjdAUPd2xnSXNzdWVkQW10S2V5AhhXTEdPTEQgaXMgbm90IGlzc3VlZCB5ZXQEBndsZ1VzZAkA8AcCBQt3bGdDb250cmFjdAULdXNkdEFzc2V0SWQECWFjcmVzMlVzZAkAZQIJAPAHAgUOYWNyZXMyQ29udHJhY3QFC3VzZHRBc3NldElkBRV1c2R0QmFsYW5jZUNvcnJlY3Rpb24ED2ludmVzdEZ1bmRUb3RhbAkAZAIJAPAHAgUSaW52ZXN0RnVuZENvbnRyYWN0BQt1c2R0QXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRJpbnZlc3RGdW5kQ29udHJhY3QFDnpiSXNzdWVkQW10S2V5AAAEDXRvdGFsRnVuZHNVc2QJAGQCCQBkAgUJYWNyZXMyVXNkBQZ3bGdVc2QFD2ludmVzdEZ1bmRUb3RhbAkAawMFDXRvdGFsRnVuZHNVc2QFBU1VTFQ4BQxpc3N1ZWRBbW91bnQBEWdldFN3YXBMaW1pdEFjcmVzAAQGd2xnVXNkCQDwBwIFC3dsZ0NvbnRyYWN0BQt1c2R0QXNzZXRJZAQJYWNyZXMyVXNkCQDwBwIFBHRoaXMFC3VzZHRBc3NldElkBA9pbnZlc3RGdW5kVG90YWwJAGQCCQDwBwIFEmludmVzdEZ1bmRDb250cmFjdAULdXNkdEFzc2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUSaW52ZXN0RnVuZENvbnRyYWN0BQ56Yklzc3VlZEFtdEtleQAABAxkZWZhdWx0TGltaXQJAGkCCQBkAgkAZAIFCWFjcmVzMlVzZAUGd2xnVXNkBQ9pbnZlc3RGdW5kVG90YWwFE09ORV9QRVJDRU5UX0RJVklTT1IEDWxhc3RMaW1pdExlZnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUQa2V5TGFzdExpbWl0TGVmdAUMZGVmYXVsdExpbWl0BAhsYXN0VGltZQkBC3ZhbHVlT3JFbHNlAgkAnwgBBRRrZXlMYXN0QWNyZXNTZWxsVGltZQAABANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wBAxjdXJyZW50TGltaXQJAGQCBQ1sYXN0TGltaXRMZWZ0CQBrAwUMZGVmYXVsdExpbWl0CQBlAgUDbm93BQhsYXN0VGltZQUKREFZX01JTExJUwQNbGltaXRMZWZ0VXNkdAkAlwMBCQDMCAIFDGN1cnJlbnRMaW1pdAkAzAgCBQxkZWZhdWx0TGltaXQFA25pbAkAlAoCCQEMSW50ZWdlckVudHJ5AgUUa2V5TGFzdEFjcmVzU2VsbFRpbWUFA25vdwUNbGltaXRMZWZ0VXNkdAAJYXJrT3JhY2xlCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUEpnWjZBSzFXVkNwZENtRVpwZXNIbWFLdnJRRGRYRzVvZwAJaW5jdWJhdG9yCQELdmFsdWVPckVsc2UCCQCdCAIFCWFya09yYWNsZQIXc3RhdGljX2luY3ViYXRvckFkZHJlc3MCAAAHYnJlZWRlcgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQlhcmtPcmFjbGUCFXN0YXRpY19icmVlZGVyQWRkcmVzcwIAAA90dXJ0bGVJbmN1YmF0b3IJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUJYXJrT3JhY2xlAh1zdGF0aWNfdHVydGxlSW5jdWJhdG9yQWRkcmVzcwIAAA10dXJ0bGVCcmVlZGVyCQELdmFsdWVPckVsc2UCCQCdCAIFCWFya09yYWNsZQIbc3RhdGljX3R1cnRsZUJyZWVkZXJBZGRyZXNzAgAAD2NhbmluZUluY3ViYXRvcgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQlhcmtPcmFjbGUCHXN0YXRpY19jYW5pbmVJbmN1YmF0b3JBZGRyZXNzAgAADWNhbmluZUJyZWVkZXIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUJYXJrT3JhY2xlAhtzdGF0aWNfY2FuaW5lQnJlZWRlckFkZHJlc3MCAAAPZmVsaW5lSW5jdWJhdG9yCQELdmFsdWVPckVsc2UCCQCdCAIFCWFya09yYWNsZQIdc3RhdGljX2ZlbGluZUluY3ViYXRvckFkZHJlc3MCAAANZmVsaW5lQnJlZWRlcgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQlhcmtPcmFjbGUCG3N0YXRpY19mZWxpbmVCcmVlZGVyQWRkcmVzcwIAAA1tdXRhbnRCcmVlZGVyCQELdmFsdWVPckVsc2UCCQCdCAIFCWFya09yYWNsZQIdc3RhdGljX211dGFudEluY3ViYXRvckFkZHJlc3MCAAEPaXNBcmtpbWFsSXNzdWVkAQNuZm8EBmlzc3VlcgkApQgBCAUDbmZvBmlzc3VlcgMDAwMDAwMDAwMJAAACBQVjaGFpbgEBVAkAAAIFBmlzc3VlcgUVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBwYJAAACBQZpc3N1ZXIFCWluY3ViYXRvcgYJAAACBQZpc3N1ZXIFB2JyZWVkZXIGCQAAAgUGaXNzdWVyBQ90dXJ0bGVJbmN1YmF0b3IGCQAAAgUGaXNzdWVyBQ10dXJ0bGVCcmVlZGVyBgkAAAIFBmlzc3VlcgUPY2FuaW5lSW5jdWJhdG9yBgkAAAIFBmlzc3VlcgUNY2FuaW5lQnJlZWRlcgYJAAACBQZpc3N1ZXIFD2ZlbGluZUluY3ViYXRvcgYJAAACBQZpc3N1ZXIFDWZlbGluZUJyZWVkZXIIBQNuZm8EbmFtZQMJAAACBQZpc3N1ZXIFDW11dGFudEJyZWVkZXIIBQNuZm8LZGVzY3JpcHRpb24CAAEQc3Rha2VOZnRJbnRlcm5hbAYEYWRkcgphc3NldElkU3RyBmJvbnVzNgp1c2VyTnVtS2V5C3RvdGFsTnVtS2V5BWxpbWl0BAluZnROdW1iZXIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUKdXNlck51bUtleQAAAwkAZwIFCW5mdE51bWJlcgUFbGltaXQJAAIBCQCsAgIJAKwCAgISWW91IGNhbiBzdGFrZSBtYXggCQCkAwEFBWxpbWl0Ag0gb2Ygc3VjaCBORlRzBA0kdDAxMTAwOTExMDg1CQEZc3Rha2VVbnN0YWtlQWNyZXNJbnRlcm5hbAMAAAUEYWRkcgUGYm9udXM2BAdhY3Rpb25zCAUNJHQwMTEwMDkxMTA4NQJfMQQQd2xnQ2xhaW1lZEFtb3VudAgFDSR0MDExMDA5MTEwODUCXzIJAJQKAgkAzQgCCQDNCAIJAM0IAgUHYWN0aW9ucwkBDEludGVnZXJFbnRyeQIFCnVzZXJOdW1LZXkJAGQCBQluZnROdW1iZXIAAQkBDEludGVnZXJFbnRyeQIFC3RvdGFsTnVtS2V5CQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQt0b3RhbE51bUtleQAAAAEJAQxJbnRlZ2VyRW50cnkCCQEea2V5U3Rha2VkVGltZUJ5QXNzZXRJZEFuZE93bmVyAgUKYXNzZXRJZFN0cgUEYWRkcggFCWxhc3RCbG9jawl0aW1lc3RhbXAFEHdsZ0NsYWltZWRBbW91bnQBDHByb2Nlc3NQcm9tbwMHYWRkcmVzcwNhbXQQc2hvdWxkQ2xlYW5Qcm9tbwMDCQBnAgUGaGVpZ2h0BRdEQUlMWV9QUk9NT19TVEFSVF9CTE9DSwkAZgIFFURBSUxZX1BST01PX0VORF9CTE9DSwUGaGVpZ2h0BwQNcHJvbW9BY3Jlc0tleQkBEWtleVVzZXJQcm9tb0FjcmVzAQUHYWRkcmVzcwQKcHJvbW9BY3JlcwkAZAIDBRBzaG91bGRDbGVhblByb21vAAAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUNcHJvbW9BY3Jlc0tleQAABQNhbXQEB3RpY2tldHMJAGkCBQpwcm9tb0FjcmVzBQVNVUxUOAQKdGlja2V0c0tleQkBE2tleVVzZXJQcm9tb1RpY2tldHMBBQdhZGRyZXNzBAxkZWx0YVRpY2tldHMJAGUCBQd0aWNrZXRzCQELdmFsdWVPckVsc2UCCQCfCAEFCnRpY2tldHNLZXkAAAQMdG90YWxUaWNrZXRzCQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBRRrZXlUb3RhbFByb21vVGlja2V0cwAABQxkZWx0YVRpY2tldHMDAwUQc2hvdWxkQ2xlYW5Qcm9tbwYJAGYCBQxkZWx0YVRpY2tldHMAAAQIcHJvbW9NYXAJAQt2YWx1ZU9yRWxzZQIJAKIIAQULa2V5UHJvbW9NYXACAAQKdXNlclJlY29yZAkArAICCQCsAgIFB2FkZHJlc3MCAToJAQRwYWRMAgUHdGlja2V0cwADBAZuZXdNYXADCQEIY29udGFpbnMCBQhwcm9tb01hcAUHYWRkcmVzcwQIbWFwUGFydHMJAL0JAgUIcHJvbW9NYXAFB2FkZHJlc3MDCQAAAgkAkQMCBQhtYXBQYXJ0cwAAAgAEAXIJALACAgkAkQMCBQhtYXBQYXJ0cwABAAQDCQAAAgUBcgIAAwkAAAIFB3RpY2tldHMAAAIABQp1c2VyUmVjb3JkAwkAAAIFB3RpY2tldHMAAAkAsAICBQFyAAEJAKwCAgUKdXNlclJlY29yZAUBcgQBcgkAsAICCQCRAwIFCG1hcFBhcnRzAAEABAMJAAACBQFyAgADCQAAAgUHdGlja2V0cwAACQCzAgIJAJEDAgUIbWFwUGFydHMAAAABCQCsAgIJAJEDAgUIbWFwUGFydHMAAAUKdXNlclJlY29yZAMJAAACBQd0aWNrZXRzAAAJAKwCAgkAkQMCBQhtYXBQYXJ0cwAACQCwAgIFAXIAAQkArAICCQCsAgIJAJEDAgUIbWFwUGFydHMAAAUKdXNlclJlY29yZAUBcgMJAAACBQd0aWNrZXRzAAAFCHByb21vTWFwAwkAAAIFCHByb21vTWFwAgAFCnVzZXJSZWNvcmQJAKwCAgkArAICBQhwcm9tb01hcAIBXwUKdXNlclJlY29yZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUNcHJvbW9BY3Jlc0tleQUKcHJvbW9BY3JlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUKdGlja2V0c0tleQUHdGlja2V0cwkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5VG90YWxQcm9tb1RpY2tldHMFDHRvdGFsVGlja2V0cwkAzAgCCQELU3RyaW5nRW50cnkCBQtrZXlQcm9tb01hcAUGbmV3TWFwBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFDXByb21vQWNyZXNLZXkFCnByb21vQWNyZXMFA25pbAUDbmlsARVzdGFrZUFjcmVzRm9ySW50ZXJuYWwDB2FkZHJlc3MDYW10EHNob3VsZENsZWFuUHJvbW8EDSR0MDEzOTU0MTQwMzAJARlzdGFrZVVuc3Rha2VBY3Jlc0ludGVybmFsAwUDYW10BQdhZGRyZXNzAAAEB2FjdGlvbnMIBQ0kdDAxMzk1NDE0MDMwAl8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMTM5NTQxNDAzMAJfMgQMcHJvbW9BY3Rpb25zCQEMcHJvY2Vzc1Byb21vAwUHYWRkcmVzcwUDYW10BRBzaG91bGRDbGVhblByb21vCQCUCgIJAM4IAgUHYWN0aW9ucwUMcHJvbW9BY3Rpb25zBRB3bGdDbGFpbWVkQW1vdW50FgFpAQpzYXZlTGFzdFR4AAMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgULd2xnQ29udHJhY3QJAMwIAgUObWFya2V0Q29udHJhY3QFA25pbAgFAWkGY2FsbGVyCQACAQINQWNjZXNzIGRlbmllZAkAlAoCCQEGcHJvbG9nAQUBaQAqAWkBDWNvbnN0cnVjdG9yVjECCXJlc3QyQWRkcg5vbGRBY3JDb250cmFjdAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkBA5vbGRBY3JDb250QWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUOb2xkQWNyQ29udHJhY3QJAMwIAgkBDEludGVnZXJFbnRyeQIFFGFjcmVzSXNzdWVkQW1vdW50S2V5CQERQGV4dHJOYXRpdmUoMTA1MCkCBQ5vbGRBY3JDb250QWRkcgUUYWNyZXNJc3N1ZWRBbW91bnRLZXkJAMwIAgkBC0JpbmFyeUVudHJ5AgUPYWNyZXNBc3NldElkS2V5CQERQGV4dHJOYXRpdmUoMTA1MikCBQ5vbGRBY3JDb250QWRkcgUPYWNyZXNBc3NldElkS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlSZXN0MkFkZHJlc3MABQlyZXN0MkFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgUTb2xkQWNyZXNDb250cmFjdEtleQUOb2xkQWNyQ29udHJhY3QFA25pbAFpAQpzZXRCbG9ja2VkAQlpc0Jsb2NrZWQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCmtleUJsb2NrZWQABQlpc0Jsb2NrZWQFA25pbAFpAQx1bnN0YWtlQWNyZXMBBmFtb3VudAQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDAwkAZwIFBmhlaWdodAUXREFJTFlfUFJPTU9fU1RBUlRfQkxPQ0sJAGYCBRVEQUlMWV9QUk9NT19FTkRfQkxPQ0sFBmhlaWdodAcJAAIBAipZb3UgY2FuJ3QgdW5zdGFrZSBkdXJpbmcgWG1hcyBwcm9tbyBwZXJpb2QDCQBnAgAABQZhbW91bnQJAAIBAhlBbW91bnQgc2hvdWxkIGJlIHBvc2l0aXZlBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBA5hcmJSZWxlYXNlVGltZQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgULd2xnQ29udHJhY3QJARlrZXlMYXN0V2xnVHJhZGVUaW1lQnlVc2VyAQUHYWRkcmVzcwAABQ5hcmJpdHJhZ2VEZWxheQMJAGYCBQ5hcmJSZWxlYXNlVGltZQgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAAIBCQCsAgICLVlvdSB0cmFkZWQgc29tZSBXTEdPTEQsIGNhbm5vdCB1bnN0YWtlIHVudGlsIAkApAMBBQ5hcmJSZWxlYXNlVGltZQQNJHQwMTU2MjUxNTcwNQkBGXN0YWtlVW5zdGFrZUFjcmVzSW50ZXJuYWwDCQEBLQEFBmFtb3VudAUHYWRkcmVzcwAABAdhY3Rpb25zCAUNJHQwMTU2MjUxNTcwNQJfMQQQd2xnQ2xhaW1lZEFtb3VudAgFDSR0MDE1NjI1MTU3MDUCXzIJAJQKAgkAzggCCQDNCAIFB2FjdGlvbnMJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQxhY3Jlc0Fzc2V0SWQFDXByb2xvZ0FjdGlvbnMFEHdsZ0NsYWltZWRBbW91bnQBaQEKc3Rha2VBY3JlcwAEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECImV4YWN0bHkgMSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABANhbXQIBQNwbXQGYW1vdW50AwMJAQEhAQkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAYJAQIhPQIJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAUMYWNyZXNBc3NldElkCQACAQIUQUNSRVMgcGF5bWVudHMgb25seSEEDSR0MDE2MTU2MTYyMzcJARVzdGFrZUFjcmVzRm9ySW50ZXJuYWwDBQdhZGRyZXNzBQNhbXQHBAxzdGFrZUFjdGlvbnMIBQ0kdDAxNjE1NjE2MjM3Al8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMTYxNTYxNjIzNwJfMgkAlAoCCQDOCAIFDHN0YWtlQWN0aW9ucwUNcHJvbG9nQWN0aW9ucwUQd2xnQ2xhaW1lZEFtb3VudAFpAQ1zdGFrZUFjcmVzRm9yAwdhZGRyZXNzA2FtdBBzaG91bGRDbGVhblByb21vAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIRUGVybWlzc2lvbiBkZW5pZWQJARVzdGFrZUFjcmVzRm9ySW50ZXJuYWwDBQdhZGRyZXNzBQNhbXQFEHNob3VsZENsZWFuUHJvbW8BaQEIYnV5QWNyZXMABA1wcm9sb2dBY3Rpb25zCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECImV4YWN0bHkgMSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABAp1c2R0QW1vdW50CAUDcG10BmFtb3VudAMDCQEBIQEJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQGCQECIT0CCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQFC3VzZHRBc3NldElkCQACAQITVVNEVCBwYXltZW50cyBvbmx5IQMJAGYCBQVNVUxUNgUKdXNkdEFtb3VudAkAAgEJAKwCAgkArAICAhZNaW4gcGF5bWVudCBzaG91bGQgYmUgCQEKZml4ZWRQb2ludAIFBU1VTFQ2AAYCBSBVU0RUBAthY3Jlc0Ftb3VudAkAaAIFCnVzZHRBbW91bnQFFVVTRFQyQUNSRVNfTVVMVElQTElFUgQJd2xnQW1vdW50CQBrAwUKdXNkdEFtb3VudAUFTVVMVDgJAQtnZXRXbGdQcmljZQEFCnVzZHRBbW91bnQED29sZEFjcmVzQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQUTb2xkQWNyZXNDb250cmFjdEtleQQDcmVxCQD8BwQFD29sZEFjcmVzQWRkcmVzcwIUcmVxdWVzdEFjcmVzQ2FsbGJhY2sJAMwIAgULYWNyZXNBbW91bnQFA25pbAUDbmlsAwkAAAIFA3JlcQUDcmVxBAl3bGdSZW1haW4JAQVhc0ludAEJAPwHBAULd2xnQ29udHJhY3QCCmJ1cm5XbGdvbGQJAMwIAgUJd2xnQW1vdW50BQNuaWwFA25pbAkAlAoCCQDOCAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQthY3Jlc0Ftb3VudAUMYWNyZXNBc3NldElkBQNuaWwFDXByb2xvZ0FjdGlvbnMFCXdsZ1JlbWFpbgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARBidXlBY3Jlc1JFQURPTkxZAQp1c2R0QW1vdW50BAthY3Jlc0Ftb3VudAkAaAIFCnVzZHRBbW91bnQFFVVTRFQyQUNSRVNfTVVMVElQTElFUgQJd2xnVG9CdXJuCQBrAwUKdXNkdEFtb3VudAUFTVVMVDgJAQtnZXRXbGdQcmljZQEFCnVzZHRBbW91bnQJAJQKAgUDbmlsCQDMCAIFC2FjcmVzQW1vdW50CQDMCAIFBU1VTFQ2CQDMCAIFC2FjcmVzQW1vdW50CQDMCAIFCXdsZ1RvQnVybgUDbmlsAWkBCXNlbGxBY3JlcwAEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIiZXhhY3RseSAxIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQDcG10CQCRAwIIBQFpCHBheW1lbnRzAAAEC2FjcmVzQW1vdW50CAUDcG10BmFtb3VudAMDCQEBIQEJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQGCQECIT0CCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQFDGFjcmVzQXNzZXRJZAkAAgECFEFDUkVTIHBheW1lbnRzIG9ubHkhAwkAZgIFBU1VTFQ3BQthY3Jlc0Ftb3VudAkAAgEJAKwCAgkArAICAhZNaW4gcGF5bWVudCBzaG91bGQgYmUgCQEKZml4ZWRQb2ludAIFBU1VTFQ3AAgCBiBBQ1JFUwQEYWRkcgkApQgBCAUBaQZjYWxsZXIEDSR0MDE4MzA5MTgzNTcJARFnZXRTd2FwTGltaXRBY3JlcwAEC2xpbWl0QWN0aW9uCAUNJHQwMTgzMDkxODM1NwJfMQQHbWF4VXNkdAgFDSR0MDE4MzA5MTgzNTcCXzIECG1heEFjcmVzCQBoAgUHbWF4VXNkdAUVVVNEVDJBQ1JFU19NVUxUSVBMSUVSAwkAZgIFC2FjcmVzQW1vdW50BQhtYXhBY3JlcwkAAgEJAKwCAgkArAICAhFZb3UgY2FuIHNlbGwgbWF4IAkBCmZpeGVkUG9pbnQCBQhtYXhBY3JlcwAIAgYgQUNSRVMECnVzZHRBbW91bnQJAGkCCQBpAgULYWNyZXNBbW91bnQFFVVTRFQyQUNSRVNfTVVMVElQTElFUgACCQCUCgIJAM4IAgkAzAgCBQtsaW1pdEFjdGlvbgkAzAgCCQEMSW50ZWdlckVudHJ5AgUQa2V5TGFzdExpbWl0TGVmdAkAZQIFB21heFVzZHQFCnVzZHRBbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQp1c2R0QW1vdW50BQt1c2R0QXNzZXRJZAUDbmlsBQ1wcm9sb2dBY3Rpb25zBQp1c2R0QW1vdW50AWkBEXNlbGxBY3Jlc1JFQURPTkxZAgdhZGRyZXNzC2FjcmVzQW1vdW50BA0kdDAxODg1MzE4OTAxCQERZ2V0U3dhcExpbWl0QWNyZXMABAtsaW1pdEFjdGlvbggFDSR0MDE4ODUzMTg5MDECXzEEB21heFVzZHQIBQ0kdDAxODg1MzE4OTAxAl8yBAp1c2R0QW1vdW50CQBpAgkAaQIFC2FjcmVzQW1vdW50BRVVU0RUMkFDUkVTX01VTFRJUExJRVIAAgkAlAoCBQNuaWwJAMwIAgUKdXNkdEFtb3VudAkAzAgCBQVNVUxUNwkAzAgCCQBoAgUHbWF4VXNkdAUVVVNEVDJBQ1JFU19NVUxUSVBMSUVSCQDMCAIAAAUDbmlsAWkBEGNvbnZlcnRPbGRTdGFrZXMABA1wcm9sb2dBY3Rpb25zCQEGcHJvbG9nAQUBaQMJAGYCBRFPTERfU1RBS0lOR19ERUFETAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAAIBCQCsAgICD0Rpc2FibGVkIHVudGlsIAkApAMBCQBpAgURT0xEX1NUQUtJTkdfREVBREwA6AcEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQED29sZEFjcmVzQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQUTb2xkQWNyZXNDb250cmFjdEtleQQGYW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFD29sZEFjcmVzQWRkcmVzcwkBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQUHYWRkcmVzcwAABAlnb3RBY3JlczADCQBmAgUGYW1vdW50AAAJAQxhc1R1cGxlMkludHMBCQD8BwQFD29sZEFjcmVzQWRkcmVzcwIUdW5zdGFrZUFjcmVzQ2FsbGJhY2sJAMwIAgUGYW1vdW50CQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsCQCUCgIAAAAABBFvbGRTdGFraW5nQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBAhsYW5kc1N0cgkAnQgCBRFvbGRTdGFraW5nQWRkcmVzcwkBFWtleVN0YWtlZExhbmRzQnlPd25lcgEFB2FkZHJlc3MEC2xhbmRzUmVzdWx0AwkBCWlzRGVmaW5lZAEFCGxhbmRzU3RyBAVsYW5kcwkAvQkCCQEFdmFsdWUBBQhsYW5kc1N0cgIBXwMJAGYCCQCQAwEFBWxhbmRzBRRNQVhfTEFORFNfVE9fQ09OVkVSVAkAAgEJAKwCAgkArAICAhNZb3UgaGF2ZSBtb3JlIHRoYW4gCQCkAwEFFE1BWF9MQU5EU19UT19DT05WRVJUAkcgbGFuZHMgc3Rha2VkLCBwbGVhc2UgY29udGFjdCBzdXBwb3J0LCB3ZSdsbCBwcm9jZXNzIHlvdXIgY2FzZSBtYW51YWxseQoBB29uZUxhbmQCA2FjYwtsYW5kQXNzZXRJZAMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQEAXIJAQxhc1R1cGxlNUludHMBCQD8BwQFEW9sZFN0YWtpbmdBZGRyZXNzAhN1bnN0YWtlTGFuZENhbGxiYWNrCQDMCAIFC2xhbmRBc3NldElkCQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsAwkAAAIFAXIFAXIJAJcKBQkAZAIIBQNhY2MCXzEIBQFyAl8xCQBkAggFA2FjYwJfMggFAXICXzIJAGQCCAUDYWNjAl8zCAUBcgJfMwkAZAIIBQNhY2MCXzQIBQFyAl80CQBkAggFA2FjYwJfNQgFAXICXzUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAnJyCgACJGwFBWxhbmRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlwoFAAAAAAAAAAAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHb25lTGFuZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTQJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAwkAAAIFAnJyBQJycgQIZmluYWxpemUJAPwHBAURb2xkU3Rha2luZ0FkZHJlc3MCHHVuc3Rha2VMYW5kc0ZpbmFsaXplQ2FsbGJhY2sJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwDCQAAAgUIZmluYWxpemUFCGZpbmFsaXplBANyZXEJAPwHBAUPb2xkQWNyZXNBZGRyZXNzAhRyZXF1ZXN0QWNyZXNDYWxsYmFjawkAzAgCCQBkAgkAZAIJAGQCCAUCcnICXzEIBQJycgJfMggFAnJyAl8zCAUCcnICXzQFA25pbAUDbmlsAwkAAAIFA3JlcQUDcmVxBA0kdDAyMTQxNTIxNTU0CQEOaXNzdWVOZnRDdXN0b20IBQ1pZHhOYW1lU2hvdmVsBQhpZHhLZXlTUAUKaWR4Q29sbERpZwUKaWR4UmFyaXR5UAADBQ5pZHhEZXNjclNob3ZlbAUOaWR4Qm9udXNUeXBlRnAIBQFpBmNhbGxlcgQKbmZ0QWN0aW9ucwgFDSR0MDIxNDE1MjE1NTQCXzEECm5mdEFzc2V0SWQIBQ0kdDAyMTQxNTIxNTU0Al8yCQCYCgYIBQJycgJfMQgFAnJyAl8yCAUCcnICXzMIBQJycgJfNAgFAnJyAl81BQpuZnRBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQCYCgYAAAAAAAAAAAAABQNuaWwEC2R1Y2tBc3NldElkCQELdmFsdWVPckVsc2UCCQCdCAIFEW9sZFN0YWtpbmdBZGRyZXNzCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQdhZGRyZXNzAgAECmR1Y2tSZXN1bHQDCQECIT0CBQtkdWNrQXNzZXRJZAIACQEMYXNUdXBsZTNJbnRzAQkA/AcEBRFvbGRTdGFraW5nQWRkcmVzcwITdW5zdGFrZUR1Y2tDYWxsYmFjawkAzAgCBQtkdWNrQXNzZXRJZAkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAkAlQoDAAAAAAAABAF4CQEZc3Rha2VVbnN0YWtlQWNyZXNJbnRlcm5hbAMJAGQCCQBkAgkAZAIJAGQCCQBkAgkAZAIJAGQCCAUJZ290QWNyZXMwAl8xCAULbGFuZHNSZXN1bHQCXzEIBQtsYW5kc1Jlc3VsdAJfMggFC2xhbmRzUmVzdWx0Al8zCAULbGFuZHNSZXN1bHQCXzQIBQpkdWNrUmVzdWx0Al8xCAUKZHVja1Jlc3VsdAJfMggFCmR1Y2tSZXN1bHQCXzMFB2FkZHJlc3MAAAkAlAoCCQDOCAIJAM4IAggFC2xhbmRzUmVzdWx0Al82CAUBeAJfMQUNcHJvbG9nQWN0aW9ucwkAlQoDCAUJZ290QWNyZXMwAl8yCAULbGFuZHNSZXN1bHQCXzUIBQF4Al8yAWkBFHVuc3Rha2VMYW5kc1JFQURPTkxZAQdhZGRyZXNzBBFvbGRTdGFraW5nQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBAhsYW5kc1N0cgkAnQgCBRFvbGRTdGFraW5nQWRkcmVzcwkBFWtleVN0YWtlZExhbmRzQnlPd25lcgEFB2FkZHJlc3MEC2xhbmRzUmVzdWx0AwkBCWlzRGVmaW5lZAEFCGxhbmRzU3RyBAVsYW5kcwkAvQkCCQEFdmFsdWUBBQhsYW5kc1N0cgIBXwoBB29uZUxhbmQCA2FjYwtsYW5kQXNzZXRJZAMJAAACBQtsYW5kQXNzZXRJZAIACQACAQIXbGFuZEFzc2V0SWQgaXMgcmVxdWlyZWQEAXIJAQxhc1R1cGxlNEludHMBCQD8BwQFEW9sZFN0YWtpbmdBZGRyZXNzAhN1bnN0YWtlTGFuZFJFQURPTkxZCQDMCAIFC2xhbmRBc3NldElkCQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsCQCWCgQJAGQCCAUDYWNjAl8xCAUBcgJfMQkAZAIIBQNhY2MCXzIIBQFyAl8yCQBkAggFA2FjYwJfMwgFAXICXzMJAGQCCAUDYWNjAl80CAUBcgJfNAoAAiRsBQVsYW5kcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJYKBAAAAAAAAAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdvbmVMYW5kAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhVMaXN0IHNpemUgZXhjZWVkcyAxMDAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZAkAlgoEAAAAAAAAAAAJAJQKAgUDbmlsBQtsYW5kc1Jlc3VsdAFpARJzdGFrZUFjcmVzQ2FsbGJhY2sBBGFkZHIDCQECIT0CCAUBaQZjYWxsZXIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFFW9sZFN0YWtpbmdDb250cmFjdFN0cgkAAgECEVBlcm1pc3Npb24gZGVuaWVkCQEZc3Rha2VVbnN0YWtlQWNyZXNJbnRlcm5hbAMICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQRhZGRyAAABaQEac2ltdWxhdGVTdGFrZUFjcmVzUkVBRE9OTFkCB2FkZHJlc3MLYWRkZWRBbW91bnQECWFtb3VudEtleQkBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQUHYWRkcmVzcwQObmV3QWNyZXNBbW91bnQJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFCWFtb3VudEtleQAABQthZGRlZEFtb3VudAQIb2xkVG90YWwJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUSYWNyZXNTdGFrZFRvdGFsS2V5AAAECXVzZXJGcEtleQkBFWtleUZhcm1pbmdQb3dlckJ5VXNlcgEFB2FkZHJlc3MEBW9sZEZwCQELdmFsdWVPckVsc2UCCQCfCAEFCXVzZXJGcEtleQAABAl1c2VyQm9udXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARBrZXlVc2VyRnVsbEJvbnVzAQUHYWRkcmVzcwAABA0kdDAyMzgyNTIzOTEyCQEeZ2V0RmFybWluZ1Bvd2VyQnlBY3Jlc0FuZEJvbnVzAgUObmV3QWNyZXNBbW91bnQFCXVzZXJCb251cwQMbmV3Qm9udXNlZEZwCAUNJHQwMjM4MjUyMzkxMgJfMQQHaWdub3JlZAgFDSR0MDIzODI1MjM5MTICXzIECm9sZFRvdGFsRnAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUUdG90YWxGYXJtaW5nUG93ZXJLZXkAAAQKbmV3VG90YWxGcAkAZQIJAGQCBQpvbGRUb3RhbEZwBQxuZXdCb251c2VkRnAFBW9sZEZwCQCUCgIFA25pbAkAzAgCBQVvbGRGcAkAzAgCBQxuZXdCb251c2VkRnAJAMwIAgUKb2xkVG90YWxGcAkAzAgCBQpuZXdUb3RhbEZwBQNuaWwBaQELaXNzdWVQaWNrQzEBCmZvckFkZHJlc3MDCQECIT0CCAUBaQZjYWxsZXIFC3dsZ0NvbnRyYWN0CQACAQIRUGVybWlzc2lvbiBkZW5pZWQJAQ5pc3N1ZU5mdEN1c3RvbQgFDmlkeE5hbWVQaWNrYXhlBQdpZHhLZXlDBQppZHhDb2xsRGlnBQppZHhSYXJpdHlDAAEFD2lkeERlc2NyUGlja2F4ZQUOaWR4Qm9udXNUeXBlRnAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCmZvckFkZHJlc3MBaQEMaXNzdWVNaXR0ZW5QAgpmb3JBZGRyZXNzEHNob3VsZENsZWFuUHJvbW8DCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQNJHQwMjQ1MjgyNDY5OAkBDmlzc3VlTmZ0Q3VzdG9tCAUNaWR4TmFtZU1pdHRlbgUIaWR4S2V5TVAFDmlkeENvbGxOZXdZZWFyBQppZHhSYXJpdHlQAAMFDmlkeERlc2NyTWl0dGVuBQ5pZHhCb251c1R5cGVGcAkBEUBleHRyTmF0aXZlKDEwNjIpAQUKZm9yQWRkcmVzcwQKbmZ0QWN0aW9ucwgFDSR0MDI0NTI4MjQ2OTgCXzEECm5mdEFzc2V0SWQIBQ0kdDAyNDUyODI0Njk4Al8yBAxwcm9tb0FjdGlvbnMJAQxwcm9jZXNzUHJvbW8DBQpmb3JBZGRyZXNzAAAFEHNob3VsZENsZWFuUHJvbW8JAJQKAgkAzggCBQpuZnRBY3Rpb25zBQxwcm9tb0FjdGlvbnMFCm5mdEFzc2V0SWQBaQEIc3Rha2VORlQABA1wcm9sb2dBY3Rpb25zCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECHEV4YWN0bHkgb25lIHBheW1lbnQgcmVxdWlyZWQEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAAAwkBAiE9AggFA3BtdAZhbW91bnQAAQkAAgECJ05GVCB0b2tlbiBzaG91bGQgYmUgYXR0YWNoZWQgYXMgcGF5bWVudAQHYXNzZXRJZAkBBXZhbHVlAQgFA3BtdAdhc3NldElkBAVhc3NldAkBBXZhbHVlAQkA7AcBBQdhc3NldElkBAphc3NldElkU3RyCQDYBAEFB2Fzc2V0SWQEBGFkZHIJAKUIAQgFAWkGY2FsbGVyBAduZnRzS2V5CQEUa2V5U3Rha2VkTkZUc0J5T3duZXIBBQRhZGRyBAduZnRzU3RyCQCiCAEFB25mdHNLZXkEBG5mdHMDCQEJaXNEZWZpbmVkAQUHbmZ0c1N0cgkAvAkCCQEFdmFsdWUBBQduZnRzU3RyAgFfBQNuaWwDCQEPY29udGFpbnNFbGVtZW50AgUEbmZ0cwUKYXNzZXRJZFN0cgkAAgEJAKwCAgIhWW91ciBzdGFrZWQgTkZUcyBhbHJlYWR5IGNvbnRhaW4gBQphc3NldElkU3RyAwkAZwIJAJADAQUEbmZ0cwUXTUFYX05GVFNfU1RBS0VEX0JZX1VTRVIJAAIBCQCsAgIJAKwCAgIZWW91ciBhbHJlYWR5IHN0YWtlZCBtYXggKAkApAMBBRdNQVhfTkZUU19TVEFLRURfQllfVVNFUgIGKSBORlRzBApsaXN0QWN0aW9uCQELU3RyaW5nRW50cnkCBQduZnRzS2V5CQC6CQIJAM0IAgUEbmZ0cwUKYXNzZXRJZFN0cgIBXwMJAAACCAUFYXNzZXQGaXNzdWVyBQR0aGlzBA0kdDAyNTc1MDI1OTQwCQEQc3Rha2VOZnRJbnRlcm5hbAYFBGFkZHIFCmFzc2V0SWRTdHIJAGgCCQESYm9udXNCeURlc2NyaXB0aW9uAQkBBXZhbHVlAQgFBWFzc2V0C2Rlc2NyaXB0aW9uAJBOCQESa2V5VXNlcldsTmZ0TnVtYmVyAQUEYWRkcgUTa2V5V2xOZnRUb3RhbFN0YWtlZAULTUFYX1dMX05GVFMEB2FjdGlvbnMIBQ0kdDAyNTc1MDI1OTQwAl8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMjU3NTAyNTk0MAJfMgkAlAoCCQDNCAIJAM4IAgUNcHJvbG9nQWN0aW9ucwUHYWN0aW9ucwUKbGlzdEFjdGlvbgUQd2xnQ2xhaW1lZEFtb3VudAMJAAACCQEPaXNBcmtpbWFsSXNzdWVkAQUFYXNzZXQCAAkAAgECNE9ubHkgV2F2ZXNMYW5kcyBhbmQgQXJraW1hbHMgTkZUIHRva2VucyBhcmUgYWNjZXB0ZWQEDSR0MDI2MTIxMjYyNzIJARBzdGFrZU5mdEludGVybmFsBgUEYWRkcgUKYXNzZXRJZFN0cgUNQVJLX05GVF9CT05VUwkBE2tleVVzZXJBcmtOZnROdW1iZXIBBQRhZGRyBRRrZXlBcmtOZnRUb3RhbFN0YWtlZAUMTUFYX0FSS19ORlRTBAdhY3Rpb25zCAUNJHQwMjYxMjEyNjI3MgJfMQQQd2xnQ2xhaW1lZEFtb3VudAgFDSR0MDI2MTIxMjYyNzICXzIJAJQKAgkAzQgCCQDOCAIFDXByb2xvZ0FjdGlvbnMFB2FjdGlvbnMFCmxpc3RBY3Rpb24FEHdsZ0NsYWltZWRBbW91bnQBaQEKdW5zdGFrZU5GVAEKYXNzZXRJZFN0cgQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQHYXNzZXRJZAkA2QQBBQphc3NldElkU3RyBARhZGRyCQClCAEIBQFpBmNhbGxlcgQFYXNzZXQJAQV2YWx1ZQEJAOwHAQUHYXNzZXRJZAQHdGltZUtleQkBHmtleVN0YWtlZFRpbWVCeUFzc2V0SWRBbmRPd25lcgIFCmFzc2V0SWRTdHIFBGFkZHIDCQEBIQEJAQlpc0RlZmluZWQBCQCfCAEFB3RpbWVLZXkJAAIBCQCsAgIJAKwCAgIETkZUIAgFBWFzc2V0BG5hbWUCFSBpcyBub3Qgc3Rha2VkIGJ5IHlvdQQHbmZ0c0tleQkBFGtleVN0YWtlZE5GVHNCeU93bmVyAQUEYWRkcgQEbmZ0cwkAvAkCCQELdmFsdWVPckVsc2UCCQCiCAEFB25mdHNLZXkCAAIBXwQDaWR4CQDPCAIFBG5mdHMFCmFzc2V0SWRTdHIDCQEBIQEJAQlpc0RlZmluZWQBBQNpZHgJAAIBCQCsAgICH1lvdXIgc3Rha2VkIE5GVHMgZG9uJ3QgY29udGFpbiAFCmFzc2V0SWRTdHIECmxpc3RBY3Rpb24DCQBmAgkAkAMBBQRuZnRzAAEJAQtTdHJpbmdFbnRyeQIFB25mdHNLZXkJALoJAgkA0QgCBQRuZnRzCQEFdmFsdWUBBQNpZHgCAV8JAQtEZWxldGVFbnRyeQEFB25mdHNLZXkEBGlzV0wJAAACCAUFYXNzZXQGaXNzdWVyBQR0aGlzAwUEaXNXTAQLd2xOZnROdW1iZXIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBEmtleVVzZXJXbE5mdE51bWJlcgEFBGFkZHIAAAQIYm9udXNWYWwJAGgCCQESYm9udXNCeURlc2NyaXB0aW9uAQkBBXZhbHVlAQgFBWFzc2V0C2Rlc2NyaXB0aW9uAJBOBA0kdDAyNzQzNzI3NTE2CQEZc3Rha2VVbnN0YWtlQWNyZXNJbnRlcm5hbAMAAAUEYWRkcgkBAS0BBQhib251c1ZhbAQHYWN0aW9ucwgFDSR0MDI3NDM3Mjc1MTYCXzEEEHdsZ0NsYWltZWRBbW91bnQIBQ0kdDAyNzQzNzI3NTE2Al8yCQCUCgIJAM4IAgkAzQgCCQDNCAIJAM0IAgkAzQgCCQDNCAIFB2FjdGlvbnMFCmxpc3RBY3Rpb24JAQxJbnRlZ2VyRW50cnkCCQESa2V5VXNlcldsTmZ0TnVtYmVyAQUEYWRkcgkAZQIFC3dsTmZ0TnVtYmVyAAEJAQxJbnRlZ2VyRW50cnkCBRNrZXlXbE5mdFRvdGFsU3Rha2VkCQCWAwEJAMwIAgAACQDMCAIJAGUCCQELdmFsdWVPckVsc2UCCQCfCAEFE2tleVdsTmZ0VG90YWxTdGFrZWQAAAABBQNuaWwJAQtEZWxldGVFbnRyeQEJAR5rZXlTdGFrZWRUaW1lQnlBc3NldElkQW5kT3duZXICCQDYBAEFB2Fzc2V0SWQFBGFkZHIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdhc3NldElkBQ1wcm9sb2dBY3Rpb25zBRB3bGdDbGFpbWVkQW1vdW50BAthcmtpbWFsTmFtZQkBD2lzQXJraW1hbElzc3VlZAEFBWFzc2V0AwkAAAIFC2Fya2ltYWxOYW1lAgAJAAIBAjRPbmx5IFdhdmVzTGFuZHMgYW5kIEFya2ltYWxzIE5GVCB0b2tlbnMgYXJlIGFjY2VwdGVkBAxhcmtOZnROdW1iZXIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBE2tleVVzZXJBcmtOZnROdW1iZXIBBQRhZGRyAAAEDSR0MDI4MTc2MjgyNjAJARlzdGFrZVVuc3Rha2VBY3Jlc0ludGVybmFsAwAABQRhZGRyCQEBLQEFDUFSS19ORlRfQk9OVVMEB2FjdGlvbnMIBQ0kdDAyODE3NjI4MjYwAl8xBBB3bGdDbGFpbWVkQW1vdW50CAUNJHQwMjgxNzYyODI2MAJfMgkAlAoCCQDOCAIJAM0IAgkAzQgCCQDNCAIJAM0IAgUHYWN0aW9ucwUKbGlzdEFjdGlvbgkBDEludGVnZXJFbnRyeQIJARNrZXlVc2VyQXJrTmZ0TnVtYmVyAQUEYWRkcgkAZQIFDGFya05mdE51bWJlcgABCQELRGVsZXRlRW50cnkBCQEea2V5U3Rha2VkVGltZUJ5QXNzZXRJZEFuZE93bmVyAgkA2AQBBQdhc3NldElkBQRhZGRyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAUNcHJvbG9nQWN0aW9ucwUQd2xnQ2xhaW1lZEFtb3VudAFpAQxleGNoYW5nZU5GVHMAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQISVGVtcG9yYXJ5IGRpc2FibGVkBA1wcm9sb2dBY3Rpb25zCQEGcHJvbG9nAQUBaQMJAGYCAAMJAJADAQgFAWkIcGF5bWVudHMJAAIBAilNaW4gb25lIFdMR09MRCBhbmQgMiBORlQgcGF5bWVudHMgYWxsb3dlZAMJAGYCCQCQAwEIBQFpCHBheW1lbnRzAAoJAAIBAilNYXggb25lIFdMR09MRCBhbmQgOSBORlQgcGF5bWVudHMgYWxsb3dlZAQEYWRkcgkApQgBCAUBaQZjYWxsZXIKAQVhZGRVcAIDYWNjA3BtdAQHYXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCAUDcG10B2Fzc2V0SWQCGldBVkVTIHBheW1lbnRzIG5vdCBhbGxvd2VkAwkAAAIFB2Fzc2V0SWQFCndsZ0Fzc2V0SWQJAJYKBAkAZAIIBQNhY2MCXzEIBQNwbXQGYW1vdW50CAUDYWNjAl8yCAUDYWNjAl8zCAUDYWNjAl80BAVhc3NldAkBBXZhbHVlAQkA7AcBBQdhc3NldElkAwkBAiE9AggFBWFzc2V0Bmlzc3VlcgUEdGhpcwkAAgECG09ubHkgV0wtaXNzdWVkIE5GVHMgYWxsb3dlZAQIcmFyaXR5SXgJARZyYXJpdHlJZHhCeURlc2NyaXByaW9uAQkBBXZhbHVlAQgFBWFzc2V0C2Rlc2NyaXB0aW9uAwMJAGYCCAUDYWNjAl80AAAJAQIhPQIFCHJhcml0eUl4CAUDYWNjAl80BwkAAgECLVlvdSBjYW4gZXhjaGFuZ2Ugb25seSBORlRzIG9mIHRoZSBzYW1lIHJhcml0eQQJYm9udXNQZXJjCQESYm9udXNCeURlc2NyaXB0aW9uAQkBBXZhbHVlAQgFBWFzc2V0C2Rlc2NyaXB0aW9uCQCWCgQIBQNhY2MCXzEJAGQCCAUDYWNjAl8yBQlib251c1BlcmMJAM0IAggFA2FjYwJfMwkBBEJ1cm4CBQdhc3NldElkAAEFCHJhcml0eUl4BA0kdDAyOTcxMTI5OTI3CgACJGwIBQFpCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlgoEAAAAAAUDbmlsAP///////////wEKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBWFkZFVwAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBAZ3bGdGZWUIBQ0kdDAyOTcxMTI5OTI3Al8xBAp0b3RhbEJvbnVzCAUNJHQwMjk3MTEyOTkyNwJfMgQLYnVybkFjdGlvbnMIBQ0kdDAyOTcxMTI5OTI3Al8zBAlyYXJpdHlJZHgIBQ0kdDAyOTcxMTI5OTI3Al80BAxuZXdSYXJpdHlJZHgDCQAAAgUJcmFyaXR5SWR4BQppZHhSYXJpdHlDAwkAZgIJAJEDAgUQcmFyaXR5VGhyZXNob2xkcwUNaWR4VGhyZXNob2xkQwUKdG90YWxCb251cwUKaWR4UmFyaXR5QwMJAGYCCQCRAwIFEHJhcml0eVRocmVzaG9sZHMFDWlkeFRocmVzaG9sZFUFCnRvdGFsQm9udXMFCmlkeFJhcml0eVUJAAIBCQCsAgIJAKwCAgI6WW91IGNhbiBhZHZhbmNlIG9ubHkgb25lIGxldmVsIG9mIHJhcml0eSwgbWF4IHRvdGFsIGJvbnVzIAkApAMBCQCRAwIFEHJhcml0eVRocmVzaG9sZHMFDWlkeFRocmVzaG9sZFUCASUDCQAAAgUJcmFyaXR5SWR4BQppZHhSYXJpdHlVAwkAZgIJAJEDAgUQcmFyaXR5VGhyZXNob2xkcwUNaWR4VGhyZXNob2xkVQUKdG90YWxCb251cwUKaWR4UmFyaXR5VQMJAGYCCQCRAwIFEHJhcml0eVRocmVzaG9sZHMFDWlkeFRocmVzaG9sZEwFCnRvdGFsQm9udXMFCmlkeFJhcml0eUwJAAIBCQCsAgIJAKwCAgI6WW91IGNhbiBhZHZhbmNlIG9ubHkgb25lIGxldmVsIG9mIHJhcml0eSwgbWF4IHRvdGFsIGJvbnVzIAkApAMBCQCRAwIFEHJhcml0eVRocmVzaG9sZHMFDWlkeFRocmVzaG9sZEwCASUDCQAAAgUJcmFyaXR5SWR4BQppZHhSYXJpdHlMAwkAZgIJAJEDAgUQcmFyaXR5VGhyZXNob2xkcwUNaWR4VGhyZXNob2xkTAUKdG90YWxCb251cwUKaWR4UmFyaXR5TAUKaWR4UmFyaXR5RQMJAAACBQlyYXJpdHlJZHgFCmlkeFJhcml0eUUFCmlkeFJhcml0eUUDCQAAAgUJcmFyaXR5SWR4BQppZHhSYXJpdHlQCQACAQImWW91IGNhbid0IGV4Y2hhbmdlIE5GVHMgb2YgdGhpcyByYXJpdHkJAAIBAg5Vbmtub3duIHJhcml0eQQJbWluV2xnRmVlCQBrAwUKdG90YWxCb251cwUGTVVMVDE0CQELZ2V0V2xnUHJpY2UBAAAEBmNoYW5nZQkAZQIFBndsZ0ZlZQUJbWluV2xnRmVlBAdmb3JUZWFtCQBpAgUJbWluV2xnRmVlAAIECXdsZ1JlbWFpbgkBBWFzSW50AQkA/AcEBQt3bGdDb250cmFjdAIKYnVybldsZ29sZAkAzAgCCQBlAgUJbWluV2xnRmVlBQdmb3JUZWFtBQNuaWwFA25pbAMJAGYCAAAFBmNoYW5nZQkAAgEJAKwCAgkArAICAhNZb3UgbmVlZCB0byBhdHRhY2ggCQEKZml4ZWRQb2ludAIFCW1pbldsZ0ZlZQAIAg4gV0xHT0xEIGFzIGZlZQQNY2hhbmdlQWN0aW9ucwMJAGYCBQZjaGFuZ2UAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmNoYW5nZQUKd2xnQXNzZXRJZAUDbmlsBQNuaWwEDSR0MDMxNDY0MzE2MjUJAQ5pc3N1ZU5mdEN1c3RvbQgFDmlkeE5hbWVQaWNrYXhlBQxuZXdSYXJpdHlJZHgFCmlkeENvbGxEaWcFDG5ld1Jhcml0eUlkeAUKdG90YWxCb251cwUPaWR4RGVzY3JQaWNrYXhlBQ5pZHhCb251c1R5cGVGcAgFAWkGY2FsbGVyBA9pc3N1ZU5mdEFjdGlvbnMIBQ0kdDAzMTQ2NDMxNjI1Al8xBApuZnRBc3NldElkCAUNJHQwMzE0NjQzMTYyNQJfMgQGYnVybmVkCQCQAwEFC2J1cm5BY3Rpb25zBBJidXJuQ291bnRlckFjdGlvbnMDCQAAAgUGYnVybmVkAAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5TmZ0VG90YWxCdXJuZWQJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFEWtleU5mdFRvdGFsQnVybmVkAAAFBmJ1cm5lZAUDbmlsCQCUCgIJAM0IAgkAzggCCQDOCAIJAM4IAgkAzggCBQ9pc3N1ZU5mdEFjdGlvbnMFC2J1cm5BY3Rpb25zBRJidXJuQ291bnRlckFjdGlvbnMFDXByb2xvZ0FjdGlvbnMFDWNoYW5nZUFjdGlvbnMJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFC3dsZ0NvbnRyYWN0BQt0ZWFtQWRkcktleQUHZm9yVGVhbQUKd2xnQXNzZXRJZAkAlAoCBQpuZnRBc3NldElkBQl3bGdSZW1haW4BaQEMb3Blbk5mdENoZXN0AAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECElRlbXBvcmFyeSBkaXNhYmxlZAQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAiJleGFjdGx5IDEgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAQJd2xnQW1vdW50CAUDcG10BmFtb3VudAMDCQEBIQEJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQGCQECIT0CCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQFCndsZ0Fzc2V0SWQJAAIBAhVXTEdPTEQgcGF5bWVudHMgb25seSEECW1pbldsZ0ZlZQkAawMFFE5GVF9DSEVTVF9QUklDRV9VU0RUBQVNVUxUOAkBC2dldFdsZ1ByaWNlAQAABAZjaGFuZ2UJAGUCBQl3bGdBbW91bnQFCW1pbldsZ0ZlZQQHZm9yVGVhbQkAaQIFCW1pbldsZ0ZlZQACBAl3bGdSZW1haW4JAQVhc0ludAEJAPwHBAULd2xnQ29udHJhY3QCCmJ1cm5XbGdvbGQJAMwIAgkAZQIFCW1pbldsZ0ZlZQUHZm9yVGVhbQUDbmlsBQNuaWwDCQBmAgAABQZjaGFuZ2UJAAIBCQCsAgIJAKwCAgITWW91IG5lZWQgdG8gYXR0YWNoIAkBCmZpeGVkUG9pbnQCBQltaW5XbGdGZWUACAIOIFdMR09MRCBhcyBmZWUEDWNoYW5nZUFjdGlvbnMDCQBmAgUGY2hhbmdlAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQZjaGFuZ2UFCndsZ0Fzc2V0SWQFA25pbAUDbmlsBARhZGRyCQClCAEIBQFpBmNhbGxlcgQJZmluaXNoS2V5CQEJa2V5Q29tbWl0AQUEYWRkcgQLZmluaXNoQmxvY2sJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBBQlmaW5pc2hLZXkCJFlvdSBoYXZlIHRvIGNvbW1pdEZvclJhbmRvbSgpIGZpcnN0IQMJAGYCBQtmaW5pc2hCbG9jawUGaGVpZ2h0CQACAQkArAICAjRSYW5kb20gbnVtYmVyIGlzIG5vdCByZWFkeSB5ZXQsIHdhaXQgdW50aWwgaGVpZ2h0ID0gCQCkAwEFC2ZpbmlzaEJsb2NrBAdlbnRyb3B5CQEFdmFsdWUBCAkBBXZhbHVlAQkA7QcBBQtmaW5pc2hCbG9jawN2cmYEBHNhbHQJANkEAQkAkQMCCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBFGtleUN1cldlZWtUeElkQnlVc2VyAQUEYWRkcgIKNDJfREVGQVVMVAIBXwABBARyYW5kCQEPZ2V0UmFuZG9tTnVtYmVyAwBkBQRzYWx0BQdlbnRyb3B5BA0kdDAzMzcwNjMzOTc4AwkAZgIAVAUEcmFuZAkAlAoCAAEFCmlkeFJhcml0eUMDCQBmAgBiBQRyYW5kCQCUCgIABQUKaWR4UmFyaXR5VQkAlAoCAAoFCmlkeFJhcml0eUwEBWJvbnVzCAUNJHQwMzM3MDYzMzk3OAJfMQQJcmFyaXR5SWR4CAUNJHQwMzM3MDYzMzk3OAJfMgQNJHQwMzM5ODEzNDEzMQkBDmlzc3VlTmZ0Q3VzdG9tCAUOaWR4TmFtZVBpY2theGUFCXJhcml0eUlkeAUKaWR4Q29sbERpZwUJcmFyaXR5SWR4BQVib251cwUPaWR4RGVzY3JQaWNrYXhlBQ5pZHhCb251c1R5cGVGcAgFAWkGY2FsbGVyBA9pc3N1ZU5mdEFjdGlvbnMIBQ0kdDAzMzk4MTM0MTMxAl8xBApuZnRBc3NldElkCAUNJHQwMzM5ODEzNDEzMQJfMgkAlAoCCQDNCAIJAM0IAgkAzggCCQDOCAIFD2lzc3VlTmZ0QWN0aW9ucwUNcHJvbG9nQWN0aW9ucwUNY2hhbmdlQWN0aW9ucwkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgULd2xnQ29udHJhY3QFC3RlYW1BZGRyS2V5BQdmb3JUZWFtBQp3bGdBc3NldElkCQELRGVsZXRlRW50cnkBBQlmaW5pc2hLZXkJAJQKAgUKbmZ0QXNzZXRJZAUJd2xnUmVtYWluAWkBD2NvbW1pdEZvclJhbmRvbQADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhJUZW1wb3JhcnkgZGlzYWJsZWQEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpBARhZGRyCQClCAEIBQFpBmNhbGxlcgQJZmluaXNoS2V5CQEJa2V5Q29tbWl0AQUEYWRkcgMJAQlpc0RlZmluZWQBCQCfCAEFCWZpbmlzaEtleQkAAgECLllvdSBhbHJlYWR5IGNvbW1pdGVkIGZvciByYW5kb20sIHBsZWFzZSB1c2UgaXQEC2ZpbmlzaEJsb2NrCQBkAgUGaGVpZ2h0BQxSQU5ET01fREVMQVkJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlmaW5pc2hLZXkFC2ZpbmlzaEJsb2NrBQNuaWwFDXByb2xvZ0FjdGlvbnMFC2ZpbmlzaEJsb2NrAWkBDmRyYXdQcm9tb1JvdW5kAQdyb3VuZElkAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEBXRvZGF5CQBpAgUGaGVpZ2h0BQpEQVlfQkxPQ0tTBAhtYXhWYWx1ZQkBC3ZhbHVlT3JFbHNlAgkAnwgBBRRrZXlUb3RhbFByb21vVGlja2V0cwAAAwkAAAIFCG1heFZhbHVlAAAJAAIBAhJObyB0aWNrZXRzIHRvIGRyYXcEAWIJAGgCBQV0b2RheQUKREFZX0JMT0NLUwQBaAMJAGYCBQFiBQpWUkZfT0ZGU0VUBQFiCQBkAgUBYgUKVlJGX09GRlNFVAQHZW50cm9weQkBBXZhbHVlAQgJAQV2YWx1ZQEJAO0HAQUBaAN2cmYECHByb21vTWFwCQELdmFsdWVPckVsc2UCCQCiCAEFC2tleVByb21vTWFwAgADCQAAAgUIcHJvbW9NYXACAAkAAgECD05vIHBhcnRpY2lwYW50cwoBCnNpbmdsZURyYXcCAmFjAWoDCQAAAggFAmFjAl8zAgAFAmFjBAlwcm9tb0xpc3QJAL0JAggFAmFjAl8zAgFfBARyYW5kCQEPZ2V0UmFuZG9tTnVtYmVyAwgFAmFjAl8xCAUCYWMCXzIFB2VudHJvcHkKAQxjb3VudFRpY2tldHMCA2FjYwJlbAQFcGFydHMJALUJAgUCZWwCAToEBGFkZHIJAJEDAgUFcGFydHMAAAQHdGlja2V0cwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBXBhcnRzAAEECG5ld1RvdGFsCQBkAggFA2FjYwJfMQUHdGlja2V0cwMDCQAAAggFA2FjYwJfMwIACQBmAgUIbmV3VG90YWwFBHJhbmQHCQCVCgMFCG5ld1RvdGFsBQd0aWNrZXRzBQRhZGRyCQCVCgMFCG5ld1RvdGFsCAUDYWNjAl8yCAUDYWNjAl8zBAFyCgACJGwFCXByb21vTGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJUKAwAAAAACAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEMY291bnRUaWNrZXRzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhVMaXN0IHNpemUgZXhjZWVkcyAyMDAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAQCBAQCCAQCDAQCEAQCFAQCGAQCHAQCIAQCJAQCKAQCLAQCMAQCNAQCOAQCPAQCQAQCRAQCSAQCTAQCUAQCVAQCWAQCXAQCYAQCZAQCaAQCbAQCcAQCdAQCeAQCfAQCgAQChAQCiAQCjAQCkAQClAQCmAQCnAQCoAQCpAQCqAQCrAQCsAQCtAQCuAQCvAQCwAQCxAQCyAQCzAQC0AQC1AQC2AQC3AQC4AQC5AQC6AQC7AQC8AQC9AQC+AQC/AQDAAQDBAQDCAQDDAQDEAQDFAQDGAQDHAQDIAQQGd2lubmVyCAUBcgJfMwMJAAACBQZ3aW5uZXICAAUCYWMECG1hcFBhcnRzCQC9CQIIBQJhYwJfMwUGd2lubmVyBAZuZXdNYXADCQAAAgkAkQMCBQhtYXBQYXJ0cwAAAgAJALACAgkAkQMCBQhtYXBQYXJ0cwABAAUJAKwCAgkAswICCQCRAwIFCG1hcFBhcnRzAAAAAQkAsAICCQCRAwIFCG1hcFBhcnRzAAEABAQKd2luQWN0aW9ucwMJAAACBQFqAAAJAPwHBAUEdGhpcwIMaXNzdWVNaXR0ZW5QCQDMCAIFBndpbm5lcgkAzAgCBgUDbmlsBQNuaWwJAPwHBAUEdGhpcwINc3Rha2VBY3Jlc0ZvcgkAzAgCBQZ3aW5uZXIJAMwIAgkAkQMCBRJwcm9tb0F3YXJkUGVyUm91bmQFAWoJAMwIAgYFA25pbAUDbmlsAwkAAAIFCndpbkFjdGlvbnMFCndpbkFjdGlvbnMEB25ld1NhbHQJANkEAQkAkQMCCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBFGtleUN1cldlZWtUeElkQnlVc2VyAQUGd2lubmVyAgkwX0RFRkFVTFQCAV8AAQkAlgoECQBlAggFAmFjAl8xCAUBcgJfMgUHbmV3U2FsdAUGbmV3TWFwCQDNCAIIBQJhYwJfNAUGd2lubmVyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAVkcmF3cwoAAiRsCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFBQNuaWwKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCWCgQFCG1heFZhbHVlCAUBaQ10cmFuc2FjdGlvbklkBQhwcm9tb01hcAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpzaW5nbGVEcmF3AgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgULa2V5UHJvbW9NYXAIBQVkcmF3cwJfMwkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5VG90YWxQcm9tb1RpY2tldHMIBQVkcmF3cwJfMQkAzAgCCQELU3RyaW5nRW50cnkCCQEUa2V5UHJvbW9Sb3VuZFdpbm5lcnMBBQdyb3VuZElkCQC5CQIIBQVkcmF3cwJfNAIBXwUDbmlsAAAA/H7Tag==", "height": 3414917, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EFMzGNnetgUYgG2FEKJa5NhikD2n4zd7CZcrJ3iVycu1 Next: AxubzhDBPDKtmBBiHUotwkJzTYUhXn28PbvoyDRoSCXF Diff:
OldNewDifferences
609609 }
610610
611611
612-func dO (w,cM,dP) = {
613- let dQ = cL(cM, w, 0)
614- let dM = dQ._1
615- let dN = dQ._2
616- let dR = if (if ((height >= l))
617- then (n > height)
618- else false)
619- then {
620- let dS = ag(w)
621- let dT = ((if (dP)
622- then 0
623- else valueOrElse(getInteger(dS), 0)) + cM)
624- let dU = (dT / d)
625- let dV = ah(w)
626- let dW = (dU - valueOrElse(getInteger(dV), 0))
627- let dX = (valueOrElse(getInteger(ai), 0) + dW)
628- if (if (dP)
629- then true
630- else (dW > 0))
631- then {
632- let dY = valueOrElse(getString(aj), "")
633- let dZ = ((w + ":") + aG(dU, 3))
634- let ea = if (contains(dY, w))
635- then {
636- let eb = split_51C(dY, w)
637- if ((eb[0] == ""))
638- then {
639- let ec = drop(eb[1], 4)
640- if ((ec == ""))
641- then if ((dU == 0))
642- then ""
643- else dZ
644- else if ((dU == 0))
645- then drop(ec, 1)
646- else (dZ + ec)
647- }
648- else {
649- let ec = drop(eb[1], 4)
650- if ((ec == ""))
651- then if ((dU == 0))
652- then dropRight(eb[0], 1)
653- else (eb[0] + dZ)
654- else if ((dU == 0))
655- then (eb[0] + drop(ec, 1))
656- else ((eb[0] + dZ) + ec)
657- }
658- }
659- else if ((dU == 0))
660- then dY
661- else if ((dY == ""))
662- then dZ
663- else ((dY + "_") + dZ)
664-[IntegerEntry(dS, dT), IntegerEntry(dV, dU), IntegerEntry(ai, dX), StringEntry(aj, ea)]
665- }
666- else [IntegerEntry(dS, dT)]
667- }
668- else nil
669- $Tuple2((dM ++ dR), dN)
612+func dO (w,cM,dP) = if (if ((height >= l))
613+ then (n > height)
614+ else false)
615+ then {
616+ let dQ = ag(w)
617+ let dR = ((if (dP)
618+ then 0
619+ else valueOrElse(getInteger(dQ), 0)) + cM)
620+ let dS = (dR / d)
621+ let dT = ah(w)
622+ let dU = (dS - valueOrElse(getInteger(dT), 0))
623+ let dV = (valueOrElse(getInteger(ai), 0) + dU)
624+ if (if (dP)
625+ then true
626+ else (dU > 0))
627+ then {
628+ let dW = valueOrElse(getString(aj), "")
629+ let dX = ((w + ":") + aG(dS, 3))
630+ let dY = if (contains(dW, w))
631+ then {
632+ let dZ = split_51C(dW, w)
633+ if ((dZ[0] == ""))
634+ then {
635+ let ea = drop(dZ[1], 4)
636+ if ((ea == ""))
637+ then if ((dS == 0))
638+ then ""
639+ else dX
640+ else if ((dS == 0))
641+ then drop(ea, 1)
642+ else (dX + ea)
643+ }
644+ else {
645+ let ea = drop(dZ[1], 4)
646+ if ((ea == ""))
647+ then if ((dS == 0))
648+ then dropRight(dZ[0], 1)
649+ else (dZ[0] + dX)
650+ else if ((dS == 0))
651+ then (dZ[0] + drop(ea, 1))
652+ else ((dZ[0] + dX) + ea)
653+ }
654+ }
655+ else if ((dS == 0))
656+ then dW
657+ else if ((dW == ""))
658+ then dX
659+ else ((dW + "_") + dX)
660+[IntegerEntry(dQ, dR), IntegerEntry(dT, dS), IntegerEntry(ai, dV), StringEntry(aj, dY)]
661+ }
662+ else [IntegerEntry(dQ, dR)]
663+ }
664+ else nil
665+
666+
667+func eb (w,cM,dP) = {
668+ let ec = cL(cM, w, 0)
669+ let dM = ec._1
670+ let dN = ec._2
671+ let ed = dO(w, cM, dP)
672+ $Tuple2((dM ++ ed), dN)
670673 }
671674
672675
678681
679682
680683 @Callable(ce)
681-func constructorV1 (ed,ee) = if ((ce.caller != this))
684+func constructorV1 (ee,ef) = if ((ce.caller != this))
682685 then throw("Permission denied")
683686 else {
684- let ef = addressFromStringValue(ee)
685-[IntegerEntry(W, getIntegerValue(ef, W)), BinaryEntry(X, getBinaryValue(ef, X)), StringEntry(D(), ed), StringEntry(O, ee)]
687+ let eg = addressFromStringValue(ef)
688+[IntegerEntry(W, getIntegerValue(eg, W)), BinaryEntry(X, getBinaryValue(eg, X)), StringEntry(D(), ee), StringEntry(O, ef)]
686689 }
687690
688691
689692
690693 @Callable(ce)
691-func setBlocked (eg) = if ((ce.caller != this))
694+func setBlocked (eh) = if ((ce.caller != this))
692695 then throw("permission denied")
693- else [BooleanEntry(P(), eg)]
696+ else [BooleanEntry(P(), eh)]
694697
695698
696699
697700 @Callable(ce)
698-func unstakeAcres (eh) = {
699- let ei = cd(ce)
701+func unstakeAcres (ei) = {
702+ let ej = cd(ce)
700703 if (if ((height >= l))
701704 then (n > height)
702705 else false)
703706 then throw("You can't unstake during Xmas promo period")
704- else if ((0 >= eh))
707+ else if ((0 >= ei))
705708 then throw("Amount should be positive")
706709 else {
707710 let w = toString(ce.caller)
708711 if ((size(ce.payments) != 0))
709712 then throw("No payments required")
710713 else {
711- let ej = (valueOrElse(getInteger(L, bw(w)), 0) + t)
712- if ((ej > lastBlock.timestamp))
713- then throw(("You traded some WLGOLD, cannot unstake until " + toString(ej)))
714+ let ek = (valueOrElse(getInteger(L, bw(w)), 0) + t)
715+ if ((ek > lastBlock.timestamp))
716+ then throw(("You traded some WLGOLD, cannot unstake until " + toString(ek)))
714717 else {
715- let ek = cL(-(eh), w, 0)
716- let dM = ek._1
717- let dN = ek._2
718- $Tuple2(((dM :+ ScriptTransfer(ce.caller, eh, Y)) ++ ei), dN)
718+ let el = cL(-(ei), w, 0)
719+ let dM = el._1
720+ let dN = el._2
721+ $Tuple2(((dM :+ ScriptTransfer(ce.caller, ei, Y)) ++ ej), dN)
719722 }
720723 }
721724 }
725728
726729 @Callable(ce)
727730 func stakeAcres () = {
728- let ei = cd(ce)
731+ let ej = cd(ce)
729732 let w = toString(ce.caller)
730733 if ((size(ce.payments) != 1))
731734 then throw("exactly 1 payment must be attached")
732735 else {
733- let el = ce.payments[0]
734- let cM = el.amount
735- if (if (!(isDefined(el.assetId)))
736+ let em = ce.payments[0]
737+ let cM = em.amount
738+ if (if (!(isDefined(em.assetId)))
736739 then true
737- else (value(el.assetId) != Y))
740+ else (value(em.assetId) != Y))
738741 then throw("ACRES payments only!")
739742 else {
740- let em = dO(w, cM, false)
741- let en = em._1
742- let dN = em._2
743- $Tuple2((en ++ ei), dN)
743+ let en = eb(w, cM, false)
744+ let eo = en._1
745+ let dN = en._2
746+ $Tuple2((eo ++ ej), dN)
744747 }
745748 }
746749 }
750753 @Callable(ce)
751754 func stakeAcresFor (w,cM,dP) = if ((ce.caller != this))
752755 then throw("Permission denied")
753- else dO(w, cM, dP)
756+ else eb(w, cM, dP)
754757
755758
756759
757760 @Callable(ce)
758761 func buyAcres () = {
759- let ei = cd(ce)
762+ let ej = cd(ce)
760763 if ((size(ce.payments) != 1))
761764 then throw("exactly 1 payment must be attached")
762765 else {
763- let el = ce.payments[0]
764- let eo = el.amount
765- if (if (!(isDefined(el.assetId)))
766+ let em = ce.payments[0]
767+ let ep = em.amount
768+ if (if (!(isDefined(em.assetId)))
766769 then true
767- else (value(el.assetId) != r))
770+ else (value(em.assetId) != r))
768771 then throw("USDT payments only!")
769- else if ((b > eo))
772+ else if ((b > ep))
770773 then throw((("Min payment should be " + aw(b, 6)) + " USDT"))
771774 else {
772- let ep = (eo * g)
773- let eq = fraction(eo, d, df(eo))
774- let er = addressFromStringValue(getStringValue(O))
775- let es = invoke(er, "requestAcresCallback", [ep], nil)
776- if ((es == es))
775+ let eq = (ep * g)
776+ let er = fraction(ep, d, df(ep))
777+ let es = addressFromStringValue(getStringValue(O))
778+ let et = invoke(es, "requestAcresCallback", [eq], nil)
779+ if ((et == et))
777780 then {
778- let et = an(invoke(L, "burnWlgold", [eq], nil))
779- $Tuple2(([ScriptTransfer(ce.caller, ep, Y)] ++ ei), et)
781+ let eu = an(invoke(L, "burnWlgold", [er], nil))
782+ $Tuple2(([ScriptTransfer(ce.caller, eq, Y)] ++ ej), eu)
780783 }
781784 else throw("Strict value is not equal to itself.")
782785 }
786789
787790
788791 @Callable(ce)
789-func buyAcresREADONLY (eo) = {
790- let ep = (eo * g)
791- let eu = fraction(eo, d, df(eo))
792- $Tuple2(nil, [ep, b, ep, eu])
792+func buyAcresREADONLY (ep) = {
793+ let eq = (ep * g)
794+ let ev = fraction(ep, d, df(ep))
795+ $Tuple2(nil, [eq, b, eq, ev])
793796 }
794797
795798
796799
797800 @Callable(ce)
798801 func sellAcres () = {
799- let ei = cd(ce)
802+ let ej = cd(ce)
800803 if ((size(ce.payments) != 1))
801804 then throw("exactly 1 payment must be attached")
802805 else {
803- let el = ce.payments[0]
804- let ep = el.amount
805- if (if (!(isDefined(el.assetId)))
806+ let em = ce.payments[0]
807+ let eq = em.amount
808+ if (if (!(isDefined(em.assetId)))
806809 then true
807- else (value(el.assetId) != Y))
810+ else (value(em.assetId) != Y))
808811 then throw("ACRES payments only!")
809- else if ((c > ep))
812+ else if ((c > eq))
810813 then throw((("Min payment should be " + aw(c, 8)) + " ACRES"))
811814 else {
812815 let R = toString(ce.caller)
813- let ev = dm()
814- let ew = ev._1
815- let ex = ev._2
816- let ey = (ex * g)
817- if ((ep > ey))
818- then throw((("You can sell max " + aw(ey, 8)) + " ACRES"))
816+ let ew = dm()
817+ let ex = ew._1
818+ let ey = ew._2
819+ let ez = (ey * g)
820+ if ((eq > ez))
821+ then throw((("You can sell max " + aw(ez, 8)) + " ACRES"))
819822 else {
820- let eo = ((ep / g) / 2)
821- $Tuple2(([ew, IntegerEntry(bA, (ex - eo)), ScriptTransfer(ce.caller, eo, r)] ++ ei), eo)
823+ let ep = ((eq / g) / 2)
824+ $Tuple2(([ex, IntegerEntry(bA, (ey - ep)), ScriptTransfer(ce.caller, ep, r)] ++ ej), ep)
822825 }
823826 }
824827 }
827830
828831
829832 @Callable(ce)
830-func sellAcresREADONLY (w,ep) = {
831- let ez = dm()
832- let ew = ez._1
833- let ex = ez._2
834- let eo = ((ep / g) / 2)
835- $Tuple2(nil, [eo, c, (ex * g), 0])
833+func sellAcresREADONLY (w,eq) = {
834+ let eA = dm()
835+ let ex = eA._1
836+ let ey = eA._2
837+ let ep = ((eq / g) / 2)
838+ $Tuple2(nil, [ep, c, (ey * g), 0])
836839 }
837840
838841
839842
840843 @Callable(ce)
841844 func convertOldStakes () = {
842- let ei = cd(ce)
845+ let ej = cd(ce)
843846 if ((bx > lastBlock.timestamp))
844847 then throw(("Disabled until " + toString((bx / 1000))))
845848 else {
847850 if ((size(ce.payments) != 0))
848851 then throw("No payments required")
849852 else {
850- let er = addressFromStringValue(getStringValue(O))
851- let eh = valueOrElse(getInteger(er, aN(w)), 0)
852- let eA = if ((eh > 0))
853- then av(invoke(er, "unstakeAcresCallback", [eh, w], nil))
853+ let es = addressFromStringValue(getStringValue(O))
854+ let ei = valueOrElse(getInteger(es, aN(w)), 0)
855+ let eB = if ((ei > 0))
856+ then av(invoke(es, "unstakeAcresCallback", [ei, w], nil))
854857 else $Tuple2(0, 0)
855- let eB = addressFromStringValue(u)
856- let eC = getString(eB, aa(w))
857- let eD = if (isDefined(eC))
858+ let eC = addressFromStringValue(u)
859+ let eD = getString(eC, aa(w))
860+ let eE = if (isDefined(eD))
858861 then {
859- let eE = split_51C(value(eC), "_")
860- if ((size(eE) > by))
862+ let eF = split_51C(value(eD), "_")
863+ if ((size(eF) > by))
861864 then throw((("You have more than " + toString(by)) + " lands staked, please contact support, we'll process your case manually"))
862865 else {
863- func eF (bi,eG) = if ((eG == ""))
866+ func eG (bi,eH) = if ((eH == ""))
864867 then throw("landAssetId is required")
865868 else {
866- let ec = aq(invoke(eB, "unstakeLandCallback", [eG, w], nil))
867- if ((ec == ec))
868- then $Tuple5((bi._1 + ec._1), (bi._2 + ec._2), (bi._3 + ec._3), (bi._4 + ec._4), (bi._5 + ec._5))
869+ let ea = aq(invoke(eC, "unstakeLandCallback", [eH, w], nil))
870+ if ((ea == ea))
871+ then $Tuple5((bi._1 + ea._1), (bi._2 + ea._2), (bi._3 + ea._3), (bi._4 + ea._4), (bi._5 + ea._5))
869872 else throw("Strict value is not equal to itself.")
870873 }
871874
872- let eH = {
873- let bk = eE
875+ let eI = {
876+ let bk = eF
874877 let bl = size(bk)
875878 let bm = $Tuple5(0, 0, 0, 0, 0)
876879 func bn (bo,bp) = if ((bp >= bl))
877880 then bo
878- else eF(bo, bk[bp])
881+ else eG(bo, bk[bp])
879882
880883 func bq (bo,bp) = if ((bp >= bl))
881884 then bo
883886
884887 bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14)
885888 }
886- if ((eH == eH))
889+ if ((eI == eI))
887890 then {
888- let eI = invoke(eB, "unstakeLandsFinalizeCallback", [w], nil)
889- if ((eI == eI))
891+ let eJ = invoke(eC, "unstakeLandsFinalizeCallback", [w], nil)
892+ if ((eJ == eJ))
890893 then {
891- let es = invoke(er, "requestAcresCallback", [(((eH._1 + eH._2) + eH._3) + eH._4)], nil)
892- if ((es == es))
894+ let et = invoke(es, "requestAcresCallback", [(((eI._1 + eI._2) + eI._3) + eI._4)], nil)
895+ if ((et == et))
893896 then {
894- let eJ = cx(bL, bQ, bZ, bX, 3, bD, cc, ce.caller)
895- let eK = eJ._1
896- let cG = eJ._2
897- $Tuple6(eH._1, eH._2, eH._3, eH._4, eH._5, eK)
897+ let eK = cx(bL, bQ, bZ, bX, 3, bD, cc, ce.caller)
898+ let eL = eK._1
899+ let cG = eK._2
900+ $Tuple6(eI._1, eI._2, eI._3, eI._4, eI._5, eL)
898901 }
899902 else throw("Strict value is not equal to itself.")
900903 }
904907 }
905908 }
906909 else $Tuple6(0, 0, 0, 0, 0, nil)
907- let eL = valueOrElse(getString(eB, ac(w)), "")
908- let eM = if ((eL != ""))
909- then au(invoke(eB, "unstakeDuckCallback", [eL, w], nil))
910+ let eM = valueOrElse(getString(eC, ac(w)), "")
911+ let eN = if ((eM != ""))
912+ then au(invoke(eC, "unstakeDuckCallback", [eM, w], nil))
910913 else $Tuple3(0, 0, 0)
911- let eN = cL((((((((eA._1 + eD._1) + eD._2) + eD._3) + eD._4) + eM._1) + eM._2) + eM._3), w, 0)
912- $Tuple2(((eD._6 ++ eN._1) ++ ei), $Tuple3(eA._2, eD._5, eN._2))
914+ let eO = cL((((((((eB._1 + eE._1) + eE._2) + eE._3) + eE._4) + eN._1) + eN._2) + eN._3), w, 0)
915+ $Tuple2(((eE._6 ++ eO._1) ++ ej), $Tuple3(eB._2, eE._5, eO._2))
913916 }
914917 }
915918 }
918921
919922 @Callable(ce)
920923 func unstakeLandsREADONLY (w) = {
921- let eB = addressFromStringValue(u)
922- let eC = getString(eB, aa(w))
923- let eD = if (isDefined(eC))
924+ let eC = addressFromStringValue(u)
925+ let eD = getString(eC, aa(w))
926+ let eE = if (isDefined(eD))
924927 then {
925- let eE = split_51C(value(eC), "_")
926- func eF (bi,eG) = if ((eG == ""))
928+ let eF = split_51C(value(eD), "_")
929+ func eG (bi,eH) = if ((eH == ""))
927930 then throw("landAssetId is required")
928931 else {
929- let ec = at(invoke(eB, "unstakeLandREADONLY", [eG, w], nil))
930- $Tuple4((bi._1 + ec._1), (bi._2 + ec._2), (bi._3 + ec._3), (bi._4 + ec._4))
932+ let ea = at(invoke(eC, "unstakeLandREADONLY", [eH, w], nil))
933+ $Tuple4((bi._1 + ea._1), (bi._2 + ea._2), (bi._3 + ea._3), (bi._4 + ea._4))
931934 }
932935
933- let bk = eE
936+ let bk = eF
934937 let bl = size(bk)
935938 let bm = $Tuple4(0, 0, 0, 0)
936939 func bn (bo,bp) = if ((bp >= bl))
937940 then bo
938- else eF(bo, bk[bp])
941+ else eG(bo, bk[bp])
939942
940943 func bq (bo,bp) = if ((bp >= bl))
941944 then bo
944947 bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
945948 }
946949 else $Tuple4(0, 0, 0, 0)
947- $Tuple2(nil, eD)
950+ $Tuple2(nil, eE)
948951 }
949952
950953
957960
958961
959962 @Callable(ce)
960-func simulateStakeAcresREADONLY (w,eO) = {
963+func simulateStakeAcresREADONLY (w,eP) = {
961964 let cR = aN(w)
962- let cT = (valueOrElse(getInteger(cR), 0) + eO)
965+ let cT = (valueOrElse(getInteger(cR), 0) + eP)
963966 let cU = valueOrElse(getInteger(aP), 0)
964967 let cV = aO(w)
965968 let cW = valueOrElse(getInteger(cV), 0)
966- let eP = valueOrElse(getInteger(K, bc(w)), 0)
967- let eQ = bs(cT, eP)
968- let da = eQ._1
969- let db = eQ._2
969+ let eQ = valueOrElse(getInteger(K, bc(w)), 0)
970+ let eR = bs(cT, eQ)
971+ let da = eR._1
972+ let db = eR._2
970973 let dc = valueOrElse(getInteger(aQ), 0)
971- let eR = ((dc + da) - cW)
972- $Tuple2(nil, [cW, da, dc, eR])
974+ let eS = ((dc + da) - cW)
975+ $Tuple2(nil, [cW, da, dc, eS])
973976 }
974977
975978
976979
977980 @Callable(ce)
978-func issuePickC1 (eS) = if ((ce.caller != L))
981+func issuePickC1 (eT) = if ((ce.caller != L))
979982 then throw("Permission denied")
980- else cx(bM, bP, bZ, bT, 1, bE, cc, addressFromStringValue(eS))
983+ else cx(bM, bP, bZ, bT, 1, bE, cc, addressFromStringValue(eT))
981984
982985
983986
984987 @Callable(ce)
985-func issueMittenP (eS) = if ((ce.caller != this))
988+func issueMittenP (eT,dP) = if ((ce.caller != this))
986989 then throw("Permission denied")
987- else cx(bN, bR, ca, bX, 3, bF, cc, addressFromStringValue(eS))
990+ else {
991+ let eU = cx(bN, bR, ca, bX, 3, bF, cc, addressFromStringValue(eT))
992+ let eL = eU._1
993+ let cG = eU._2
994+ let ed = dO(eT, 0, dP)
995+ $Tuple2((eL ++ ed), cG)
996+ }
988997
989998
990999
9911000 @Callable(ce)
9921001 func stakeNFT () = {
993- let ei = cd(ce)
1002+ let ej = cd(ce)
9941003 if ((size(ce.payments) != 1))
9951004 then throw("Exactly one payment required")
9961005 else {
997- let el = value(ce.payments[0])
998- if ((el.amount != 1))
1006+ let em = value(ce.payments[0])
1007+ if ((em.amount != 1))
9991008 then throw("NFT token should be attached as payment")
10001009 else {
1001- let ae = value(el.assetId)
1002- let eT = value(assetInfo(ae))
1010+ let ae = value(em.assetId)
1011+ let eV = value(assetInfo(ae))
10031012 let dG = toBase58String(ae)
10041013 let R = toString(ce.caller)
1005- let eU = af(R)
1006- let eV = getString(eU)
1007- let eW = if (isDefined(eV))
1008- then split_4C(value(eV), "_")
1014+ let eW = af(R)
1015+ let eX = getString(eW)
1016+ let eY = if (isDefined(eX))
1017+ then split_4C(value(eX), "_")
10091018 else nil
1010- if (containsElement(eW, dG))
1019+ if (containsElement(eY, dG))
10111020 then throw(("Your staked NFTs already contain " + dG))
1012- else if ((size(eW) >= aU))
1021+ else if ((size(eY) >= aU))
10131022 then throw((("Your already staked max (" + toString(aU)) + ") NFTs"))
10141023 else {
1015- let eX = StringEntry(eU, makeString_2C((eW :+ dG), "_"))
1016- if ((eT.issuer == this))
1024+ let eZ = StringEntry(eW, makeString_2C((eY :+ dG), "_"))
1025+ if ((eV.issuer == this))
10171026 then {
1018- let eY = dF(R, dG, (cH(value(eT.description)) * 10000), ba(R), aX, aR)
1019- let dM = eY._1
1020- let dN = eY._2
1021- $Tuple2(((ei ++ dM) :+ eX), dN)
1027+ let fa = dF(R, dG, (cH(value(eV.description)) * 10000), ba(R), aX, aR)
1028+ let dM = fa._1
1029+ let dN = fa._2
1030+ $Tuple2(((ej ++ dM) :+ eZ), dN)
10221031 }
1023- else if ((dC(eT) == ""))
1032+ else if ((dC(eV) == ""))
10241033 then throw("Only WavesLands and Arkimals NFT tokens are accepted")
10251034 else {
1026- let eZ = dF(R, dG, aT, bb(R), aY, aS)
1027- let dM = eZ._1
1028- let dN = eZ._2
1029- $Tuple2(((ei ++ dM) :+ eX), dN)
1035+ let fb = dF(R, dG, aT, bb(R), aY, aS)
1036+ let dM = fb._1
1037+ let dN = fb._2
1038+ $Tuple2(((ej ++ dM) :+ eZ), dN)
10301039 }
10311040 }
10321041 }
10371046
10381047 @Callable(ce)
10391048 func unstakeNFT (dG) = {
1040- let ei = cd(ce)
1049+ let ej = cd(ce)
10411050 if ((size(ce.payments) != 0))
10421051 then throw("No payments required")
10431052 else {
10441053 let ae = fromBase58String(dG)
10451054 let R = toString(ce.caller)
1046- let eT = value(assetInfo(ae))
1055+ let eV = value(assetInfo(ae))
10471056 let cQ = ad(dG, R)
10481057 if (!(isDefined(getInteger(cQ))))
1049- then throw((("NFT " + eT.name) + " is not staked by you"))
1058+ then throw((("NFT " + eV.name) + " is not staked by you"))
10501059 else {
1051- let eU = af(R)
1052- let eW = split_4C(valueOrElse(getString(eU), ""), "_")
1053- let I = indexOf(eW, dG)
1060+ let eW = af(R)
1061+ let eY = split_4C(valueOrElse(getString(eW), ""), "_")
1062+ let I = indexOf(eY, dG)
10541063 if (!(isDefined(I)))
10551064 then throw(("Your staked NFTs don't contain " + dG))
10561065 else {
1057- let eX = if ((size(eW) > 1))
1058- then StringEntry(eU, makeString_2C(removeByIndex(eW, value(I)), "_"))
1059- else DeleteEntry(eU)
1060- let fa = (eT.issuer == this)
1061- if (fa)
1066+ let eZ = if ((size(eY) > 1))
1067+ then StringEntry(eW, makeString_2C(removeByIndex(eY, value(I)), "_"))
1068+ else DeleteEntry(eW)
1069+ let fc = (eV.issuer == this)
1070+ if (fc)
10621071 then {
1063- let fb = valueOrElse(getInteger(ba(R)), 0)
1064- let fc = (cH(value(eT.description)) * 10000)
1065- let fd = cL(0, R, -(fc))
1066- let dM = fd._1
1067- let dN = fd._2
1068- $Tuple2(((((((dM :+ eX) :+ IntegerEntry(ba(R), (fb - 1))) :+ IntegerEntry(aX, max([0, (valueOrElse(getInteger(aX), 0) - 1)]))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(ce.caller, 1, ae)) ++ ei), dN)
1072+ let fd = valueOrElse(getInteger(ba(R)), 0)
1073+ let fe = (cH(value(eV.description)) * 10000)
1074+ let ff = cL(0, R, -(fe))
1075+ let dM = ff._1
1076+ let dN = ff._2
1077+ $Tuple2(((((((dM :+ eZ) :+ IntegerEntry(ba(R), (fd - 1))) :+ IntegerEntry(aX, max([0, (valueOrElse(getInteger(aX), 0) - 1)]))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(ce.caller, 1, ae)) ++ ej), dN)
10691078 }
10701079 else {
1071- let fe = dC(eT)
1072- if ((fe == ""))
1080+ let fg = dC(eV)
1081+ if ((fg == ""))
10731082 then throw("Only WavesLands and Arkimals NFT tokens are accepted")
10741083 else {
1075- let ff = valueOrElse(getInteger(bb(R)), 0)
1076- let fg = cL(0, R, -(aT))
1077- let dM = fg._1
1078- let dN = fg._2
1079- $Tuple2((((((dM :+ eX) :+ IntegerEntry(bb(R), (ff - 1))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(ce.caller, 1, ae)) ++ ei), dN)
1084+ let fh = valueOrElse(getInteger(bb(R)), 0)
1085+ let fi = cL(0, R, -(aT))
1086+ let dM = fi._1
1087+ let dN = fi._2
1088+ $Tuple2((((((dM :+ eZ) :+ IntegerEntry(bb(R), (fh - 1))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(ce.caller, 1, ae)) ++ ej), dN)
10801089 }
10811090 }
10821091 }
10901099 func exchangeNFTs () = if ((ce.caller != this))
10911100 then throw("Temporary disabled")
10921101 else {
1093- let ei = cd(ce)
1102+ let ej = cd(ce)
10941103 if ((3 > size(ce.payments)))
10951104 then throw("Min one WLGOLD and 2 NFT payments allowed")
10961105 else if ((size(ce.payments) > 10))
10971106 then throw("Max one WLGOLD and 9 NFT payments allowed")
10981107 else {
10991108 let R = toString(ce.caller)
1100- func fh (bi,el) = {
1101- let ae = valueOrErrorMessage(el.assetId, "WAVES payments not allowed")
1109+ func fj (bi,em) = {
1110+ let ae = valueOrErrorMessage(em.assetId, "WAVES payments not allowed")
11021111 if ((ae == V))
1103- then $Tuple4((bi._1 + el.amount), bi._2, bi._3, bi._4)
1112+ then $Tuple4((bi._1 + em.amount), bi._2, bi._3, bi._4)
11041113 else {
1105- let eT = value(assetInfo(ae))
1106- if ((eT.issuer != this))
1114+ let eV = value(assetInfo(ae))
1115+ if ((eV.issuer != this))
11071116 then throw("Only WL-issued NFTs allowed")
11081117 else {
1109- let fi = cJ(value(eT.description))
1118+ let fk = cJ(value(eV.description))
11101119 if (if ((bi._4 > 0))
1111- then (fi != bi._4)
1120+ then (fk != bi._4)
11121121 else false)
11131122 then throw("You can exchange only NFTs of the same rarity")
11141123 else {
1115- let cC = cH(value(eT.description))
1116- $Tuple4(bi._1, (bi._2 + cC), (bi._3 :+ Burn(ae, 1)), fi)
1124+ let cC = cH(value(eV.description))
1125+ $Tuple4(bi._1, (bi._2 + cC), (bi._3 :+ Burn(ae, 1)), fk)
11171126 }
11181127 }
11191128 }
11201129 }
11211130
1122- let fj = {
1131+ let fl = {
11231132 let bk = ce.payments
11241133 let bl = size(bk)
11251134 let bm = $Tuple4(0, 0, nil, -1)
11261135 func bn (bo,bp) = if ((bp >= bl))
11271136 then bo
1128- else fh(bo, bk[bp])
1137+ else fj(bo, bk[bp])
11291138
11301139 func bq (bo,bp) = if ((bp >= bl))
11311140 then bo
11331142
11341143 bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
11351144 }
1136- let fk = fj._1
1137- let fl = fj._2
1138- let fm = fj._3
1139- let cB = fj._4
1140- let fn = if ((cB == bT))
1141- then if ((bG[bH] > fl))
1145+ let fm = fl._1
1146+ let fn = fl._2
1147+ let fo = fl._3
1148+ let cB = fl._4
1149+ let fp = if ((cB == bT))
1150+ then if ((bG[bH] > fn))
11421151 then bT
1143- else if ((bG[bI] > fl))
1152+ else if ((bG[bI] > fn))
11441153 then bU
11451154 else throw((("You can advance only one level of rarity, max total bonus " + toString(bG[bI])) + "%"))
11461155 else if ((cB == bU))
1147- then if ((bG[bI] > fl))
1156+ then if ((bG[bI] > fn))
11481157 then bU
1149- else if ((bG[bJ] > fl))
1158+ else if ((bG[bJ] > fn))
11501159 then bV
11511160 else throw((("You can advance only one level of rarity, max total bonus " + toString(bG[bJ])) + "%"))
11521161 else if ((cB == bV))
1153- then if ((bG[bJ] > fl))
1162+ then if ((bG[bJ] > fn))
11541163 then bV
11551164 else bW
11561165 else if ((cB == bW))
11581167 else if ((cB == bX))
11591168 then throw("You can't exchange NFTs of this rarity")
11601169 else throw("Unknown rarity")
1161- let fo = fraction(fl, e, df(0))
1162- let fp = (fk - fo)
1163- let fq = (fo / 2)
1164- let et = an(invoke(L, "burnWlgold", [(fo - fq)], nil))
1165- if ((0 > fp))
1166- then throw((("You need to attach " + aw(fo, 8)) + " WLGOLD as fee"))
1170+ let fq = fraction(fn, e, df(0))
1171+ let fr = (fm - fq)
1172+ let fs = (fq / 2)
1173+ let eu = an(invoke(L, "burnWlgold", [(fq - fs)], nil))
1174+ if ((0 > fr))
1175+ then throw((("You need to attach " + aw(fq, 8)) + " WLGOLD as fee"))
11671176 else {
1168- let fr = if ((fp > 0))
1169- then [ScriptTransfer(ce.caller, fp, V)]
1177+ let ft = if ((fr > 0))
1178+ then [ScriptTransfer(ce.caller, fr, V)]
11701179 else nil
1171- let fs = cx(bM, fn, bZ, fn, fl, bE, cc, ce.caller)
1172- let ft = fs._1
1173- let cG = fs._2
1174- let fu = size(fm)
1175- let fv = if ((fu == 0))
1180+ let fu = cx(bM, fp, bZ, fp, fn, bE, cc, ce.caller)
1181+ let fv = fu._1
1182+ let cG = fu._2
1183+ let fw = size(fo)
1184+ let fx = if ((fw == 0))
11761185 then nil
1177- else [IntegerEntry(aW, (valueOrElse(getInteger(aW), 0) + fu))]
1178- $Tuple2((((((ft ++ fm) ++ fv) ++ ei) ++ fr) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bv)), fq, V)), $Tuple2(cG, et))
1186+ else [IntegerEntry(aW, (valueOrElse(getInteger(aW), 0) + fw))]
1187+ $Tuple2((((((fv ++ fo) ++ fx) ++ ej) ++ ft) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bv)), fs, V)), $Tuple2(cG, eu))
11791188 }
11801189 }
11811190 }
11861195 func openNftChest () = if ((ce.caller != this))
11871196 then throw("Temporary disabled")
11881197 else {
1189- let ei = cd(ce)
1198+ let ej = cd(ce)
11901199 if ((size(ce.payments) != 1))
11911200 then throw("exactly 1 payment must be attached")
11921201 else {
1193- let el = ce.payments[0]
1194- let eq = el.amount
1195- if (if (!(isDefined(el.assetId)))
1202+ let em = ce.payments[0]
1203+ let er = em.amount
1204+ if (if (!(isDefined(em.assetId)))
11961205 then true
1197- else (value(el.assetId) != V))
1206+ else (value(em.assetId) != V))
11981207 then throw("WLGOLD payments only!")
11991208 else {
1200- let fo = fraction(j, d, df(0))
1201- let fp = (eq - fo)
1202- let fq = (fo / 2)
1203- let et = an(invoke(L, "burnWlgold", [(fo - fq)], nil))
1204- if ((0 > fp))
1205- then throw((("You need to attach " + aw(fo, 8)) + " WLGOLD as fee"))
1209+ let fq = fraction(j, d, df(0))
1210+ let fr = (er - fq)
1211+ let fs = (fq / 2)
1212+ let eu = an(invoke(L, "burnWlgold", [(fq - fs)], nil))
1213+ if ((0 > fr))
1214+ then throw((("You need to attach " + aw(fq, 8)) + " WLGOLD as fee"))
12061215 else {
1207- let fr = if ((fp > 0))
1208- then [ScriptTransfer(ce.caller, fp, V)]
1216+ let ft = if ((fr > 0))
1217+ then [ScriptTransfer(ce.caller, fr, V)]
12091218 else nil
12101219 let R = toString(ce.caller)
1211- let fw = T(R)
1212- let fx = valueOrErrorMessage(getInteger(fw), "You have to commitForRandom() first!")
1213- if ((fx > height))
1214- then throw(("Random number is not ready yet, wait until height = " + toString(fx)))
1220+ let fy = T(R)
1221+ let fz = valueOrErrorMessage(getInteger(fy), "You have to commitForRandom() first!")
1222+ if ((fz > height))
1223+ then throw(("Random number is not ready yet, wait until height = " + toString(fz)))
12151224 else {
1216- let aE = value(value(blockInfoByHeight(fx)).vrf)
1225+ let aE = value(value(blockInfoByHeight(fz)).vrf)
12171226 let aD = fromBase58String(split(valueOrElse(getString(S(R)), "42_DEFAULT"), "_")[1])
1218- let fy = aB(100, aD, aE)
1219- let fz = if ((84 > fy))
1227+ let fA = aB(100, aD, aE)
1228+ let fB = if ((84 > fA))
12201229 then $Tuple2(1, bT)
1221- else if ((98 > fy))
1230+ else if ((98 > fA))
12221231 then $Tuple2(5, bU)
12231232 else $Tuple2(10, bV)
1224- let cv = fz._1
1225- let cB = fz._2
1226- let fA = cx(bM, cB, bZ, cB, cv, bE, cc, ce.caller)
1227- let ft = fA._1
1228- let cG = fA._2
1229- $Tuple2(((((ft ++ ei) ++ fr) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bv)), fq, V)) :+ DeleteEntry(fw)), $Tuple2(cG, et))
1233+ let cv = fB._1
1234+ let cB = fB._2
1235+ let fC = cx(bM, cB, bZ, cB, cv, bE, cc, ce.caller)
1236+ let fv = fC._1
1237+ let cG = fC._2
1238+ $Tuple2(((((fv ++ ej) ++ ft) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bv)), fs, V)) :+ DeleteEntry(fy)), $Tuple2(cG, eu))
12301239 }
12311240 }
12321241 }
12391248 func commitForRandom () = if ((ce.caller != this))
12401249 then throw("Temporary disabled")
12411250 else {
1242- let ei = cd(ce)
1251+ let ej = cd(ce)
12431252 let R = toString(ce.caller)
1244- let fw = T(R)
1245- if (isDefined(getInteger(fw)))
1253+ let fy = T(R)
1254+ if (isDefined(getInteger(fy)))
12461255 then throw("You already commited for random, please use it")
12471256 else {
1248- let fx = (height + i)
1249- $Tuple2(([IntegerEntry(fw, fx)] ++ ei), fx)
1257+ let fz = (height + i)
1258+ $Tuple2(([IntegerEntry(fy, fz)] ++ ej), fz)
12501259 }
12511260 }
12521261
12531262
12541263
12551264 @Callable(ce)
1256-func drawPromoRound (fB) = if ((ce.caller != this))
1265+func drawPromoRound (fD) = if ((ce.caller != this))
12571266 then throw("Permission denied")
12581267 else {
1259- let fC = (height / o)
1268+ let fE = (height / o)
12601269 let aC = valueOrElse(getInteger(ai), 0)
12611270 if ((aC == 0))
12621271 then throw("No tickets to draw")
12631272 else {
1264- let fD = (fC * o)
1265- let fE = if ((fD > q))
1266- then fD
1267- else (fD + q)
1268- let aE = value(value(blockInfoByHeight(fE)).vrf)
1269- let dY = valueOrElse(getString(aj), "")
1270- if ((dY == ""))
1273+ let fF = (fE * o)
1274+ let fG = if ((fF > q))
1275+ then fF
1276+ else (fF + q)
1277+ let aE = value(value(blockInfoByHeight(fG)).vrf)
1278+ let dW = valueOrElse(getString(aj), "")
1279+ if ((dW == ""))
12711280 then throw("No participants")
12721281 else {
1273- func fF (fG,fH) = {
1274- let fI = if ((fG._3 == ""))
1275- then nil
1276- else split_51C(fG._3, "_")
1277- if ((fH >= size(fI)))
1278- then fG
1279- else {
1280- let fy = aB(fG._1, fG._2, aE)
1281- func fJ (bi,fK) = {
1282- let fL = split(fK, ":")
1283- let R = fL[0]
1284- let dU = parseIntValue(fL[1])
1285- let fM = (bi._1 + dU)
1286- if (if ((bi._3 == ""))
1287- then (fM > fy)
1288- else false)
1289- then $Tuple3(fM, dU, R)
1290- else $Tuple3(fM, bi._2, bi._3)
1282+ func fH (fI,fJ) = if ((fI._3 == ""))
1283+ then fI
1284+ else {
1285+ let fK = split_51C(fI._3, "_")
1286+ let fA = aB(fI._1, fI._2, aE)
1287+ func fL (bi,fM) = {
1288+ let fN = split(fM, ":")
1289+ let R = fN[0]
1290+ let dS = parseIntValue(fN[1])
1291+ let fO = (bi._1 + dS)
1292+ if (if ((bi._3 == ""))
1293+ then (fO > fA)
1294+ else false)
1295+ then $Tuple3(fO, dS, R)
1296+ else $Tuple3(fO, bi._2, bi._3)
1297+ }
1298+
1299+ let ea = {
1300+ let bk = fK
1301+ let bl = size(bk)
1302+ let bm = $Tuple3(0, 0, "")
1303+ func bn (bo,bp) = if ((bp >= bl))
1304+ then bo
1305+ else fL(bo, bk[bp])
1306+
1307+ func bq (bo,bp) = if ((bp >= bl))
1308+ then bo
1309+ else throw("List size exceeds 200")
1310+
1311+ bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200)
1312+ }
1313+ let fP = ea._3
1314+ if ((fP == ""))
1315+ then fI
1316+ else {
1317+ let dZ = split_51C(fI._3, fP)
1318+ let dY = if ((dZ[0] == ""))
1319+ then drop(dZ[1], 5)
1320+ else (dropRight(dZ[0], 1) + drop(dZ[1], 4))
1321+ let fQ = if ((fJ == 0))
1322+ then invoke(this, "issueMittenP", [fP, true], nil)
1323+ else invoke(this, "stakeAcresFor", [fP, am[fJ], true], nil)
1324+ if ((fQ == fQ))
1325+ then {
1326+ let fR = fromBase58String(split(valueOrElse(getString(S(fP)), "0_DEFAULT"), "_")[1])
1327+ $Tuple4((fI._1 - ea._2), fR, dY, (fI._4 :+ fP))
1328+ }
1329+ else throw("Strict value is not equal to itself.")
12911330 }
1331+ }
12921332
1293- let ec = {
1294- let bk = fI
1295- let bl = size(bk)
1296- let bm = $Tuple3(0, 0, "")
1297- func bn (bo,bp) = if ((bp >= bl))
1298- then bo
1299- else fJ(bo, bk[bp])
1300-
1301- func bq (bo,bp) = if ((bp >= bl))
1302- then bo
1303- else throw("List size exceeds 200")
1304-
1305- bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200)
1306- }
1307- let fN = ec._3
1308- if ((fN == ""))
1309- then fG
1310- else {
1311- let eb = split_51C(fG._3, fN)
1312- let ea = if ((eb[0] == ""))
1313- then drop(eb[1], 5)
1314- else (dropRight(eb[0], 1) + drop(eb[1], 4))
1315- let fO = if ((fH == 0))
1316- then invoke(this, "issueMittenP", [fN], nil)
1317- else invoke(this, "stakeAcresFor", [fN, am[fH], true], nil)
1318- if ((fO == fO))
1319- then {
1320- let fP = fromBase58String(split(valueOrElse(getString(S(fN)), "0_DEFAULT"), "_")[1])
1321- $Tuple4((fG._1 - ec._2), fP, ea, (fG._4 :+ fN))
1322- }
1323- else throw("Strict value is not equal to itself.")
1324- }
1325- }
1326- }
1327-
1328- let fQ = {
1333+ let fS = {
13291334 let bk = [0, 1, 2, 3, 4, 5]
13301335 let bl = size(bk)
1331- let bm = $Tuple4(aC, ce.transactionId, dY, nil)
1336+ let bm = $Tuple4(aC, ce.transactionId, dW, nil)
13321337 func bn (bo,bp) = if ((bp >= bl))
13331338 then bo
1334- else fF(bo, bk[bp])
1339+ else fH(bo, bk[bp])
13351340
13361341 func bq (bo,bp) = if ((bp >= bl))
13371342 then bo
13391344
13401345 bq(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6)
13411346 }
1342- $Tuple2([StringEntry(aj, fQ._3), IntegerEntry(ai, fQ._1), StringEntry(ak(fB), makeString(fQ._4, "_"))], 0)
1347+ $Tuple2([StringEntry(aj, fS._3), IntegerEntry(ai, fS._1), StringEntry(ak(fD), makeString(fS._4, "_"))], 0)
13431348 }
13441349 }
13451350 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 1000000
77
88 let c = 10000000
99
1010 let d = 100000000
1111
1212 let e = 100000000000000
1313
1414 let f = 86400000
1515
1616 let g = 10
1717
1818 let h = 100
1919
2020 let i = 2
2121
2222 let j = 5000000
2323
2424 let k = take(drop(this.bytes, 1), 1)
2525
2626 let l = {
2727 let m = k
2828 if ((base58'2W' == m))
2929 then 4487040
3030 else if ((base58'2T' == m))
3131 then 3412800
3232 else throw("Unknown chain")
3333 }
3434
3535 let n = {
3636 let m = k
3737 if ((base58'2W' == m))
3838 then 4517280
3939 else if ((base58'2T' == m))
4040 then 3443040
4141 else throw("Unknown chain")
4242 }
4343
4444 let o = {
4545 let m = k
4646 if ((base58'2W' == m))
4747 then 1440
4848 else if ((base58'2T' == m))
4949 then 60
5050 else throw("Unknown chain")
5151 }
5252
5353 let p = {
5454 let m = k
5555 if ((base58'2W' == m))
5656 then 10080
5757 else if ((base58'2T' == m))
5858 then 180
5959 else throw("Unknown chain")
6060 }
6161
6262 let q = {
6363 let m = k
6464 if ((base58'2W' == m))
6565 then 0
6666 else if ((base58'2T' == m))
6767 then 1146000
6868 else throw("Unknown chain")
6969 }
7070
7171 let r = {
7272 let m = k
7373 if ((base58'2W' == m))
7474 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
7575 else if ((base58'2T' == m))
7676 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
7777 else throw("Unknown chain")
7878 }
7979
8080 let s = {
8181 let m = k
8282 if ((base58'2W' == m))
8383 then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8"
8484 else if ((base58'2T' == m))
8585 then "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv"
8686 else throw("Unknown chain")
8787 }
8888
8989 let t = {
9090 let m = k
9191 if ((base58'2W' == m))
9292 then f
9393 else if ((base58'2T' == m))
9494 then 60000
9595 else throw("Unknown chain")
9696 }
9797
9898 let u = {
9999 let m = k
100100 if ((base58'2W' == m))
101101 then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1"
102102 else if ((base58'2T' == m))
103103 then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm"
104104 else throw("Unknown chain")
105105 }
106106
107107 func v (w,x) = valueOrErrorMessage(getString(w, x), makeString(["mandatory ", toString(w), ".", x, " is not defined"], ""))
108108
109109
110110 let y = 1
111111
112112 let z = 2
113113
114114 let A = 5
115115
116116 let B = 6
117117
118118 func C () = "%s__restConfig"
119119
120120
121121 func D () = "%s__rest2Addr"
122122
123123
124124 func E (F) = split_4C(v(F, C()), a)
125125
126126
127127 func G (H,I) = valueOrErrorMessage(addressFromString(H[I]), ("Rest cfg doesn't contain address at index " + toString(I)))
128128
129129
130130 let J = addressFromStringValue(valueOrElse(getString(this, D()), s))
131131
132132 let H = E(J)
133133
134134 let K = G(H, y)
135135
136136 let L = G(H, z)
137137
138138 let M = G(H, A)
139139
140140 let N = G(H, B)
141141
142142 let O = "oldAcresContract"
143143
144144 func P () = "contractsBlocked"
145145
146146
147147 func Q (R) = ("lastWeekTxIdByUser_" + R)
148148
149149
150150 func S (R) = ("curWeekTxIdByUser_" + R)
151151
152152
153153 func T (w) = ("finishBlockFor_" + w)
154154
155155
156156 let U = "wlg_assetId"
157157
158158 let V = valueOrErrorMessage(getBinary(L, U), "WLGOLD is not issued yet")
159159
160160 let W = "acresIssuedAmount"
161161
162162 let X = "acresAssetId"
163163
164164 let Y = valueOrErrorMessage(getBinary(K, X), "ACRES is not issued yet")
165165
166166 func Z (R) = ("acresStakedTimeByUser_" + R)
167167
168168
169169 func aa (ab) = ("stakedLandsByOwner_" + ab)
170170
171171
172172 func ac (ab) = ("stakedDuckByOwner_" + ab)
173173
174174
175175 func ad (ae,R) = ((("st_" + ae) + "_") + R)
176176
177177
178178 func af (ab) = ("stakedNFTsByOwner_" + ab)
179179
180180
181181 func ag (w) = ("promoAcres_" + w)
182182
183183
184184 func ah (w) = ("promoTickets_" + w)
185185
186186
187187 let ai = "totalPromoTickets"
188188
189189 let aj = "promoMap"
190190
191191 func ak (al) = ("dailyWinners_" + toString(al))
192192
193193
194194 let am = [0, 500000000, 100000000, 100000000, 100000000, 100000000]
195195
196196 func an (ao) = {
197197 let m = ao
198198 if ($isInstanceOf(m, "Int"))
199199 then {
200200 let ap = m
201201 ap
202202 }
203203 else throw("fail to cast into Int")
204204 }
205205
206206
207207 func aq (ar) = {
208208 let m = ar
209209 if ($isInstanceOf(m, "(Int, Int, Int, Int, Int)"))
210210 then {
211211 let as = m
212212 as
213213 }
214214 else throw("fail to cast into (Int, Int, Int, Int, Int)")
215215 }
216216
217217
218218 func at (ar) = {
219219 let m = ar
220220 if ($isInstanceOf(m, "(Int, Int, Int, Int)"))
221221 then {
222222 let as = m
223223 as
224224 }
225225 else throw("fail to cast into (Int, Int, Int, Int)")
226226 }
227227
228228
229229 func au (ar) = {
230230 let m = ar
231231 if ($isInstanceOf(m, "(Int, Int, Int)"))
232232 then {
233233 let as = m
234234 as
235235 }
236236 else throw("fail to cast into (Int, Int, Int)")
237237 }
238238
239239
240240 func av (ar) = {
241241 let m = ar
242242 if ($isInstanceOf(m, "(Int, Int)"))
243243 then {
244244 let as = m
245245 as
246246 }
247247 else throw("fail to cast into (Int, Int)")
248248 }
249249
250250
251251 func aw (ar,ax) = {
252252 let ay = pow(10, 0, ax, 0, 0, DOWN)
253253 let az = toString((ar % ay))
254254 let aA = drop(toString(ay), (1 + size(az)))
255255 (((toString((ar / ay)) + ".") + aA) + az)
256256 }
257257
258258
259259 func aB (aC,aD,aE) = if ((0 >= aC))
260260 then throw("maxValue should be > 0")
261261 else {
262262 let aF = sha256_16Kb((aD + aE))
263263 (toInt(aF) % aC)
264264 }
265265
266266
267267 func aG (ar,aH) = {
268268 let aI = toString(ar)
269269 let aA = drop(toString(pow(10, 0, (aH - size(aI)), 0, 0, DOWN)), 1)
270270 (aA + aI)
271271 }
272272
273273
274274 let aJ = 1000000
275275
276276 let aK = 100000000
277277
278278 let aL = "wlg_issuedAmount"
279279
280280 let aM = "zbill_issuedAmount"
281281
282282 func aN (R) = ("acresStakedAmountByUser_" + R)
283283
284284
285285 func aO (R) = ("farmingPowerByUser_" + R)
286286
287287
288288 let aP = "acresStakedAmountTotal"
289289
290290 let aQ = "totalFarmingPower"
291291
292292 let aR = 3
293293
294294 let aS = 1
295295
296296 let aT = 5000
297297
298298 let aU = 4
299299
300300 let aV = "nftTotalIssued"
301301
302302 let aW = "nftTotalBurned"
303303
304304 let aX = "WlNftTotalStaked"
305305
306306 let aY = "ArkNftTotalStaked"
307307
308308 func aZ (ae) = ("nftNumberByAssetId_" + ae)
309309
310310
311311 func ba (R) = ("userWlNftNumber_" + R)
312312
313313
314314 func bb (R) = ("userArkNftNumber_" + R)
315315
316316
317317 func bc (R) = ("userFullBonus_" + R)
318318
319319
320320 let bd = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
321321
322322 func be (bf) = {
323323 let bg = ((bf + 99999999) / aK)
324324 func bh (bi,bj) = if ((bj >= bg))
325325 then bi
326326 else (bi + 1)
327327
328328 let bk = bd
329329 let bl = size(bk)
330330 let bm = 0
331331 func bn (bo,bp) = if ((bp >= bl))
332332 then bo
333333 else bh(bo, bk[bp])
334334
335335 func bq (bo,bp) = if ((bp >= bl))
336336 then bo
337337 else throw("List size exceeds 10")
338338
339339 bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
340340 }
341341
342342
343343 func br (bf) = ((bf * 20) * (be(bf) + 4))
344344
345345
346346 func bs (bf,bt) = {
347347 let bu = br(bf)
348348 $Tuple2(fraction(bu, (aJ + bt), aJ), bu)
349349 }
350350
351351
352352 let bv = "teamAddr"
353353
354354 func bw (R) = ("lastArbTimeUser_" + R)
355355
356356
357357 let bx = 1733346000000
358358
359359 let by = 14
360360
361361 let bz = "lastAcresSellTime"
362362
363363 let bA = "lastLimitLeft"
364364
365365 let bB = ["Gold shovel", "Pickaxe", "Santa's mitten"]
366366
367367 let bC = ["Reward for early birds", "Increases FarmPower", "New Year promo reward"]
368368
369369 let bD = 0
370370
371371 let bE = 1
372372
373373 let bF = 2
374374
375375 let bG = [5, 10, 20]
376376
377377 let bH = 0
378378
379379 let bI = 1
380380
381381 let bJ = 2
382382
383383 let bK = ["SHOVEL", "PICKAXE", "MITTEN"]
384384
385385 let bL = 0
386386
387387 let bM = 1
388388
389389 let bN = 2
390390
391391 let bO = ["contentPickaxeC", "contentPickaxeU", "contentPickaxeL", "contentPickaxeE", "contentShovelP", "contentMittenP"]
392392
393393 let bP = 0
394394
395395 let bQ = 4
396396
397397 let bR = 5
398398
399399 let bS = ["Common", "Uncommon", "Legendary", "Epic", "Promo"]
400400
401401 let bT = 0
402402
403403 let bU = 1
404404
405405 let bV = 2
406406
407407 let bW = 3
408408
409409 let bX = 4
410410
411411 let bY = ["Digging tools", "New Year gifts"]
412412
413413 let bZ = 0
414414
415415 let ca = 1
416416
417417 let cb = ["FarmPower"]
418418
419419 let cc = 0
420420
421421 func cd (ce) = if (if ((ce.originCaller != J))
422422 then valueOrElse(getBoolean(P()), false)
423423 else false)
424424 then throw("Contracts are under maintenance")
425425 else {
426426 let R = toString(ce.originCaller)
427427 let cf = (height / p)
428428 let cg = Q(R)
429429 let ch = getString(cg)
430430 let ci = toBase58String(ce.transactionId)
431431 let cj = ((toString(cf) + "_") + ci)
432432 let ck = S(R)
433433 if (isDefined(ch))
434434 then {
435435 let cl = split(value(ch), "_")
436436 if ((cl[0] == toString(cf)))
437437 then [StringEntry(cg, cj), StringEntry(ck, cj)]
438438 else if ((cl[0] == toString((cf - 1))))
439439 then [StringEntry(ck, cj)]
440440 else {
441441 let cm = getStringValue(ck)
442442 let cn = split(cm, "_")
443443 if ((cn[0] == toString(cf)))
444444 then [StringEntry(ck, cj)]
445445 else [StringEntry(cg, cm), StringEntry(ck, cj)]
446446 }
447447 }
448448 else [StringEntry(cg, cj), StringEntry(ck, cj)]
449449 }
450450
451451
452452 func co (cp,cq,cr,cs,ct,cu,cv,cw) = (((((((((((((((((((((((("{\"url\": \"https://waveslands.com\", " + "\"contentKey\": \"") + cp) + "\", ") + "\"number\": ") + toString(cq)) + ", ") + "\"collection\": \"") + cr) + "\", ") + "\"name\": \"") + cs) + "\", ") + "\"description\": \"") + ct) + "\", ") + "\"rare\": \"") + cu) + "\", ") + "\"bonus\": ") + toString(cv)) + ", ") + "\"bonusType\": \"") + cw) + "\"}")
453453
454454
455455 func cx (cy,cz,cA,cB,cC,cD,cE,R) = {
456456 let cq = valueOrElse(getInteger(aV), 0)
457457 let cu = bS[cB]
458458 let cs = (((bK[cy] + "-") + take(cu, 1)) + toString(cC))
459459 let cF = Issue(cs, co(bO[cz], cq, bY[cA], bB[cy], bC[cD], bS[cB], cC, cb[cE]), 1, 0, false)
460460 let cG = calculateAssetId(cF)
461461 $Tuple2([cF, IntegerEntry(aV, (cq + 1)), IntegerEntry(aZ(toBase58String(cG)), cq), ScriptTransfer(R, 1, cG)], cG)
462462 }
463463
464464
465465 func cH (ct) = if (!(contains(ct, "\"bonusType\": \"FarmPower\"")))
466466 then throw(("NFT is not supported: " + ct))
467467 else {
468468 let cI = split_4C(split_4C(ct, "\"bonus\":")[1], ",")[0]
469469 parseIntValue(drop(cI, (valueOrElse(lastIndexOf(cI, " "), -1) + 1)))
470470 }
471471
472472
473473 func cJ (ct) = if (!(contains(ct, "\"rare\"")))
474474 then throw(("NFT is not supported: " + ct))
475475 else {
476476 let cK = split_4C(split_4C(split_4C(ct, "\"rare\"")[1], ",")[0], "\"")[1]
477477 value(indexOf(bS, cK))
478478 }
479479
480480
481481 func cL (cM,w,cN) = if (if ((cM == 0))
482482 then (cN == 0)
483483 else false)
484484 then throw("Nothing to do")
485485 else {
486486 let cO = invoke(L, "onStakeUnstakeLand", [w], nil)
487487 if ((cO == cO))
488488 then {
489489 let cP = lastBlock.timestamp
490490 let cQ = Z(w)
491491 let cR = aN(w)
492492 let cS = valueOrElse(getInteger(cR), 0)
493493 if (if ((0 > cM))
494494 then (0 > (cS + cM))
495495 else false)
496496 then throw(((("You have only " + aw(cS, 8)) + " ACRES staked, tried to unstake ") + aw(-(cM), 8)))
497497 else {
498498 let cT = (cS + cM)
499499 let cU = valueOrElse(getInteger(aP), 0)
500500 let cV = aO(w)
501501 let cW = valueOrElse(getInteger(cV), 0)
502502 let cX = bc(w)
503503 let cY = valueOrElse(getInteger(K, cX), 0)
504504 if (if ((0 > cN))
505505 then (0 > (cY + cN))
506506 else false)
507507 then throw((((("You have only " + aw(cY, 4)) + "% bonus, and tried to unstake ") + aw(-(cN), 4)) + "%"))
508508 else {
509509 let cZ = bs(cT, (cY + cN))
510510 let da = cZ._1
511511 let db = cZ._2
512512 let dc = valueOrElse(getInteger(aQ), 0)
513513 let dd = if ((cM == 0))
514514 then nil
515515 else [IntegerEntry(cR, cT), IntegerEntry(aP, (cU + cM))]
516516 let de = if ((cN == 0))
517517 then nil
518518 else [IntegerEntry(cX, (cY + cN))]
519519 $Tuple2(((((dd ++ de) :+ IntegerEntry(cQ, lastBlock.timestamp)) :+ IntegerEntry(cV, da)) :+ IntegerEntry(aQ, ((dc + da) - cW))), cO)
520520 }
521521 }
522522 }
523523 else throw("Strict value is not equal to itself.")
524524 }
525525
526526
527527 func df (dg) = {
528528 let dh = valueOrErrorMessage(getInteger(L, aL), "WLGOLD is not issued yet")
529529 let di = assetBalance(L, r)
530530 let dj = (assetBalance(K, r) - dg)
531531 let dk = (assetBalance(M, r) + valueOrElse(getInteger(M, aM), 0))
532532 let dl = ((dj + di) + dk)
533533 fraction(dl, d, dh)
534534 }
535535
536536
537537 func dm () = {
538538 let di = assetBalance(L, r)
539539 let dj = assetBalance(this, r)
540540 let dk = (assetBalance(M, r) + valueOrElse(getInteger(M, aM), 0))
541541 let dn = (((dj + di) + dk) / h)
542542 let do = valueOrElse(getInteger(bA), dn)
543543 let dp = valueOrElse(getInteger(bz), 0)
544544 let cP = lastBlock.timestamp
545545 let dq = (do + fraction(dn, (cP - dp), f))
546546 let dr = min([dq, dn])
547547 $Tuple2(IntegerEntry(bz, cP), dr)
548548 }
549549
550550
551551 let ds = addressFromStringValue("3PJgZ6AK1WVCpdCmEZpesHmaKvrQDdXG5og")
552552
553553 let dt = valueOrElse(getString(ds, "static_incubatorAddress"), "")
554554
555555 let du = valueOrElse(getString(ds, "static_breederAddress"), "")
556556
557557 let dv = valueOrElse(getString(ds, "static_turtleIncubatorAddress"), "")
558558
559559 let dw = valueOrElse(getString(ds, "static_turtleBreederAddress"), "")
560560
561561 let dx = valueOrElse(getString(ds, "static_canineIncubatorAddress"), "")
562562
563563 let dy = valueOrElse(getString(ds, "static_canineBreederAddress"), "")
564564
565565 let dz = valueOrElse(getString(ds, "static_felineIncubatorAddress"), "")
566566
567567 let dA = valueOrElse(getString(ds, "static_felineBreederAddress"), "")
568568
569569 let dB = valueOrElse(getString(ds, "static_mutantIncubatorAddress"), "")
570570
571571 func dC (dD) = {
572572 let dE = toString(dD.issuer)
573573 if (if (if (if (if (if (if (if (if (if ((k == base58'2T'))
574574 then (dE == u)
575575 else false)
576576 then true
577577 else (dE == dt))
578578 then true
579579 else (dE == du))
580580 then true
581581 else (dE == dv))
582582 then true
583583 else (dE == dw))
584584 then true
585585 else (dE == dx))
586586 then true
587587 else (dE == dy))
588588 then true
589589 else (dE == dz))
590590 then true
591591 else (dE == dA))
592592 then dD.name
593593 else if ((dE == dB))
594594 then dD.description
595595 else ""
596596 }
597597
598598
599599 func dF (R,dG,bt,dH,dI,dJ) = {
600600 let dK = valueOrElse(getInteger(dH), 0)
601601 if ((dK >= dJ))
602602 then throw((("You can stake max " + toString(dJ)) + " of such NFTs"))
603603 else {
604604 let dL = cL(0, R, bt)
605605 let dM = dL._1
606606 let dN = dL._2
607607 $Tuple2((((dM :+ IntegerEntry(dH, (dK + 1))) :+ IntegerEntry(dI, (valueOrElse(getInteger(dI), 0) + 1))) :+ IntegerEntry(ad(dG, R), lastBlock.timestamp)), dN)
608608 }
609609 }
610610
611611
612-func dO (w,cM,dP) = {
613- let dQ = cL(cM, w, 0)
614- let dM = dQ._1
615- let dN = dQ._2
616- let dR = if (if ((height >= l))
617- then (n > height)
618- else false)
619- then {
620- let dS = ag(w)
621- let dT = ((if (dP)
622- then 0
623- else valueOrElse(getInteger(dS), 0)) + cM)
624- let dU = (dT / d)
625- let dV = ah(w)
626- let dW = (dU - valueOrElse(getInteger(dV), 0))
627- let dX = (valueOrElse(getInteger(ai), 0) + dW)
628- if (if (dP)
629- then true
630- else (dW > 0))
631- then {
632- let dY = valueOrElse(getString(aj), "")
633- let dZ = ((w + ":") + aG(dU, 3))
634- let ea = if (contains(dY, w))
635- then {
636- let eb = split_51C(dY, w)
637- if ((eb[0] == ""))
638- then {
639- let ec = drop(eb[1], 4)
640- if ((ec == ""))
641- then if ((dU == 0))
642- then ""
643- else dZ
644- else if ((dU == 0))
645- then drop(ec, 1)
646- else (dZ + ec)
647- }
648- else {
649- let ec = drop(eb[1], 4)
650- if ((ec == ""))
651- then if ((dU == 0))
652- then dropRight(eb[0], 1)
653- else (eb[0] + dZ)
654- else if ((dU == 0))
655- then (eb[0] + drop(ec, 1))
656- else ((eb[0] + dZ) + ec)
657- }
658- }
659- else if ((dU == 0))
660- then dY
661- else if ((dY == ""))
662- then dZ
663- else ((dY + "_") + dZ)
664-[IntegerEntry(dS, dT), IntegerEntry(dV, dU), IntegerEntry(ai, dX), StringEntry(aj, ea)]
665- }
666- else [IntegerEntry(dS, dT)]
667- }
668- else nil
669- $Tuple2((dM ++ dR), dN)
612+func dO (w,cM,dP) = if (if ((height >= l))
613+ then (n > height)
614+ else false)
615+ then {
616+ let dQ = ag(w)
617+ let dR = ((if (dP)
618+ then 0
619+ else valueOrElse(getInteger(dQ), 0)) + cM)
620+ let dS = (dR / d)
621+ let dT = ah(w)
622+ let dU = (dS - valueOrElse(getInteger(dT), 0))
623+ let dV = (valueOrElse(getInteger(ai), 0) + dU)
624+ if (if (dP)
625+ then true
626+ else (dU > 0))
627+ then {
628+ let dW = valueOrElse(getString(aj), "")
629+ let dX = ((w + ":") + aG(dS, 3))
630+ let dY = if (contains(dW, w))
631+ then {
632+ let dZ = split_51C(dW, w)
633+ if ((dZ[0] == ""))
634+ then {
635+ let ea = drop(dZ[1], 4)
636+ if ((ea == ""))
637+ then if ((dS == 0))
638+ then ""
639+ else dX
640+ else if ((dS == 0))
641+ then drop(ea, 1)
642+ else (dX + ea)
643+ }
644+ else {
645+ let ea = drop(dZ[1], 4)
646+ if ((ea == ""))
647+ then if ((dS == 0))
648+ then dropRight(dZ[0], 1)
649+ else (dZ[0] + dX)
650+ else if ((dS == 0))
651+ then (dZ[0] + drop(ea, 1))
652+ else ((dZ[0] + dX) + ea)
653+ }
654+ }
655+ else if ((dS == 0))
656+ then dW
657+ else if ((dW == ""))
658+ then dX
659+ else ((dW + "_") + dX)
660+[IntegerEntry(dQ, dR), IntegerEntry(dT, dS), IntegerEntry(ai, dV), StringEntry(aj, dY)]
661+ }
662+ else [IntegerEntry(dQ, dR)]
663+ }
664+ else nil
665+
666+
667+func eb (w,cM,dP) = {
668+ let ec = cL(cM, w, 0)
669+ let dM = ec._1
670+ let dN = ec._2
671+ let ed = dO(w, cM, dP)
672+ $Tuple2((dM ++ ed), dN)
670673 }
671674
672675
673676 @Callable(ce)
674677 func saveLastTx () = if (!(containsElement([L, N], ce.caller)))
675678 then throw("Access denied")
676679 else $Tuple2(cd(ce), 42)
677680
678681
679682
680683 @Callable(ce)
681-func constructorV1 (ed,ee) = if ((ce.caller != this))
684+func constructorV1 (ee,ef) = if ((ce.caller != this))
682685 then throw("Permission denied")
683686 else {
684- let ef = addressFromStringValue(ee)
685-[IntegerEntry(W, getIntegerValue(ef, W)), BinaryEntry(X, getBinaryValue(ef, X)), StringEntry(D(), ed), StringEntry(O, ee)]
687+ let eg = addressFromStringValue(ef)
688+[IntegerEntry(W, getIntegerValue(eg, W)), BinaryEntry(X, getBinaryValue(eg, X)), StringEntry(D(), ee), StringEntry(O, ef)]
686689 }
687690
688691
689692
690693 @Callable(ce)
691-func setBlocked (eg) = if ((ce.caller != this))
694+func setBlocked (eh) = if ((ce.caller != this))
692695 then throw("permission denied")
693- else [BooleanEntry(P(), eg)]
696+ else [BooleanEntry(P(), eh)]
694697
695698
696699
697700 @Callable(ce)
698-func unstakeAcres (eh) = {
699- let ei = cd(ce)
701+func unstakeAcres (ei) = {
702+ let ej = cd(ce)
700703 if (if ((height >= l))
701704 then (n > height)
702705 else false)
703706 then throw("You can't unstake during Xmas promo period")
704- else if ((0 >= eh))
707+ else if ((0 >= ei))
705708 then throw("Amount should be positive")
706709 else {
707710 let w = toString(ce.caller)
708711 if ((size(ce.payments) != 0))
709712 then throw("No payments required")
710713 else {
711- let ej = (valueOrElse(getInteger(L, bw(w)), 0) + t)
712- if ((ej > lastBlock.timestamp))
713- then throw(("You traded some WLGOLD, cannot unstake until " + toString(ej)))
714+ let ek = (valueOrElse(getInteger(L, bw(w)), 0) + t)
715+ if ((ek > lastBlock.timestamp))
716+ then throw(("You traded some WLGOLD, cannot unstake until " + toString(ek)))
714717 else {
715- let ek = cL(-(eh), w, 0)
716- let dM = ek._1
717- let dN = ek._2
718- $Tuple2(((dM :+ ScriptTransfer(ce.caller, eh, Y)) ++ ei), dN)
718+ let el = cL(-(ei), w, 0)
719+ let dM = el._1
720+ let dN = el._2
721+ $Tuple2(((dM :+ ScriptTransfer(ce.caller, ei, Y)) ++ ej), dN)
719722 }
720723 }
721724 }
722725 }
723726
724727
725728
726729 @Callable(ce)
727730 func stakeAcres () = {
728- let ei = cd(ce)
731+ let ej = cd(ce)
729732 let w = toString(ce.caller)
730733 if ((size(ce.payments) != 1))
731734 then throw("exactly 1 payment must be attached")
732735 else {
733- let el = ce.payments[0]
734- let cM = el.amount
735- if (if (!(isDefined(el.assetId)))
736+ let em = ce.payments[0]
737+ let cM = em.amount
738+ if (if (!(isDefined(em.assetId)))
736739 then true
737- else (value(el.assetId) != Y))
740+ else (value(em.assetId) != Y))
738741 then throw("ACRES payments only!")
739742 else {
740- let em = dO(w, cM, false)
741- let en = em._1
742- let dN = em._2
743- $Tuple2((en ++ ei), dN)
743+ let en = eb(w, cM, false)
744+ let eo = en._1
745+ let dN = en._2
746+ $Tuple2((eo ++ ej), dN)
744747 }
745748 }
746749 }
747750
748751
749752
750753 @Callable(ce)
751754 func stakeAcresFor (w,cM,dP) = if ((ce.caller != this))
752755 then throw("Permission denied")
753- else dO(w, cM, dP)
756+ else eb(w, cM, dP)
754757
755758
756759
757760 @Callable(ce)
758761 func buyAcres () = {
759- let ei = cd(ce)
762+ let ej = cd(ce)
760763 if ((size(ce.payments) != 1))
761764 then throw("exactly 1 payment must be attached")
762765 else {
763- let el = ce.payments[0]
764- let eo = el.amount
765- if (if (!(isDefined(el.assetId)))
766+ let em = ce.payments[0]
767+ let ep = em.amount
768+ if (if (!(isDefined(em.assetId)))
766769 then true
767- else (value(el.assetId) != r))
770+ else (value(em.assetId) != r))
768771 then throw("USDT payments only!")
769- else if ((b > eo))
772+ else if ((b > ep))
770773 then throw((("Min payment should be " + aw(b, 6)) + " USDT"))
771774 else {
772- let ep = (eo * g)
773- let eq = fraction(eo, d, df(eo))
774- let er = addressFromStringValue(getStringValue(O))
775- let es = invoke(er, "requestAcresCallback", [ep], nil)
776- if ((es == es))
775+ let eq = (ep * g)
776+ let er = fraction(ep, d, df(ep))
777+ let es = addressFromStringValue(getStringValue(O))
778+ let et = invoke(es, "requestAcresCallback", [eq], nil)
779+ if ((et == et))
777780 then {
778- let et = an(invoke(L, "burnWlgold", [eq], nil))
779- $Tuple2(([ScriptTransfer(ce.caller, ep, Y)] ++ ei), et)
781+ let eu = an(invoke(L, "burnWlgold", [er], nil))
782+ $Tuple2(([ScriptTransfer(ce.caller, eq, Y)] ++ ej), eu)
780783 }
781784 else throw("Strict value is not equal to itself.")
782785 }
783786 }
784787 }
785788
786789
787790
788791 @Callable(ce)
789-func buyAcresREADONLY (eo) = {
790- let ep = (eo * g)
791- let eu = fraction(eo, d, df(eo))
792- $Tuple2(nil, [ep, b, ep, eu])
792+func buyAcresREADONLY (ep) = {
793+ let eq = (ep * g)
794+ let ev = fraction(ep, d, df(ep))
795+ $Tuple2(nil, [eq, b, eq, ev])
793796 }
794797
795798
796799
797800 @Callable(ce)
798801 func sellAcres () = {
799- let ei = cd(ce)
802+ let ej = cd(ce)
800803 if ((size(ce.payments) != 1))
801804 then throw("exactly 1 payment must be attached")
802805 else {
803- let el = ce.payments[0]
804- let ep = el.amount
805- if (if (!(isDefined(el.assetId)))
806+ let em = ce.payments[0]
807+ let eq = em.amount
808+ if (if (!(isDefined(em.assetId)))
806809 then true
807- else (value(el.assetId) != Y))
810+ else (value(em.assetId) != Y))
808811 then throw("ACRES payments only!")
809- else if ((c > ep))
812+ else if ((c > eq))
810813 then throw((("Min payment should be " + aw(c, 8)) + " ACRES"))
811814 else {
812815 let R = toString(ce.caller)
813- let ev = dm()
814- let ew = ev._1
815- let ex = ev._2
816- let ey = (ex * g)
817- if ((ep > ey))
818- then throw((("You can sell max " + aw(ey, 8)) + " ACRES"))
816+ let ew = dm()
817+ let ex = ew._1
818+ let ey = ew._2
819+ let ez = (ey * g)
820+ if ((eq > ez))
821+ then throw((("You can sell max " + aw(ez, 8)) + " ACRES"))
819822 else {
820- let eo = ((ep / g) / 2)
821- $Tuple2(([ew, IntegerEntry(bA, (ex - eo)), ScriptTransfer(ce.caller, eo, r)] ++ ei), eo)
823+ let ep = ((eq / g) / 2)
824+ $Tuple2(([ex, IntegerEntry(bA, (ey - ep)), ScriptTransfer(ce.caller, ep, r)] ++ ej), ep)
822825 }
823826 }
824827 }
825828 }
826829
827830
828831
829832 @Callable(ce)
830-func sellAcresREADONLY (w,ep) = {
831- let ez = dm()
832- let ew = ez._1
833- let ex = ez._2
834- let eo = ((ep / g) / 2)
835- $Tuple2(nil, [eo, c, (ex * g), 0])
833+func sellAcresREADONLY (w,eq) = {
834+ let eA = dm()
835+ let ex = eA._1
836+ let ey = eA._2
837+ let ep = ((eq / g) / 2)
838+ $Tuple2(nil, [ep, c, (ey * g), 0])
836839 }
837840
838841
839842
840843 @Callable(ce)
841844 func convertOldStakes () = {
842- let ei = cd(ce)
845+ let ej = cd(ce)
843846 if ((bx > lastBlock.timestamp))
844847 then throw(("Disabled until " + toString((bx / 1000))))
845848 else {
846849 let w = toString(ce.caller)
847850 if ((size(ce.payments) != 0))
848851 then throw("No payments required")
849852 else {
850- let er = addressFromStringValue(getStringValue(O))
851- let eh = valueOrElse(getInteger(er, aN(w)), 0)
852- let eA = if ((eh > 0))
853- then av(invoke(er, "unstakeAcresCallback", [eh, w], nil))
853+ let es = addressFromStringValue(getStringValue(O))
854+ let ei = valueOrElse(getInteger(es, aN(w)), 0)
855+ let eB = if ((ei > 0))
856+ then av(invoke(es, "unstakeAcresCallback", [ei, w], nil))
854857 else $Tuple2(0, 0)
855- let eB = addressFromStringValue(u)
856- let eC = getString(eB, aa(w))
857- let eD = if (isDefined(eC))
858+ let eC = addressFromStringValue(u)
859+ let eD = getString(eC, aa(w))
860+ let eE = if (isDefined(eD))
858861 then {
859- let eE = split_51C(value(eC), "_")
860- if ((size(eE) > by))
862+ let eF = split_51C(value(eD), "_")
863+ if ((size(eF) > by))
861864 then throw((("You have more than " + toString(by)) + " lands staked, please contact support, we'll process your case manually"))
862865 else {
863- func eF (bi,eG) = if ((eG == ""))
866+ func eG (bi,eH) = if ((eH == ""))
864867 then throw("landAssetId is required")
865868 else {
866- let ec = aq(invoke(eB, "unstakeLandCallback", [eG, w], nil))
867- if ((ec == ec))
868- then $Tuple5((bi._1 + ec._1), (bi._2 + ec._2), (bi._3 + ec._3), (bi._4 + ec._4), (bi._5 + ec._5))
869+ let ea = aq(invoke(eC, "unstakeLandCallback", [eH, w], nil))
870+ if ((ea == ea))
871+ then $Tuple5((bi._1 + ea._1), (bi._2 + ea._2), (bi._3 + ea._3), (bi._4 + ea._4), (bi._5 + ea._5))
869872 else throw("Strict value is not equal to itself.")
870873 }
871874
872- let eH = {
873- let bk = eE
875+ let eI = {
876+ let bk = eF
874877 let bl = size(bk)
875878 let bm = $Tuple5(0, 0, 0, 0, 0)
876879 func bn (bo,bp) = if ((bp >= bl))
877880 then bo
878- else eF(bo, bk[bp])
881+ else eG(bo, bk[bp])
879882
880883 func bq (bo,bp) = if ((bp >= bl))
881884 then bo
882885 else throw("List size exceeds 14")
883886
884887 bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14)
885888 }
886- if ((eH == eH))
889+ if ((eI == eI))
887890 then {
888- let eI = invoke(eB, "unstakeLandsFinalizeCallback", [w], nil)
889- if ((eI == eI))
891+ let eJ = invoke(eC, "unstakeLandsFinalizeCallback", [w], nil)
892+ if ((eJ == eJ))
890893 then {
891- let es = invoke(er, "requestAcresCallback", [(((eH._1 + eH._2) + eH._3) + eH._4)], nil)
892- if ((es == es))
894+ let et = invoke(es, "requestAcresCallback", [(((eI._1 + eI._2) + eI._3) + eI._4)], nil)
895+ if ((et == et))
893896 then {
894- let eJ = cx(bL, bQ, bZ, bX, 3, bD, cc, ce.caller)
895- let eK = eJ._1
896- let cG = eJ._2
897- $Tuple6(eH._1, eH._2, eH._3, eH._4, eH._5, eK)
897+ let eK = cx(bL, bQ, bZ, bX, 3, bD, cc, ce.caller)
898+ let eL = eK._1
899+ let cG = eK._2
900+ $Tuple6(eI._1, eI._2, eI._3, eI._4, eI._5, eL)
898901 }
899902 else throw("Strict value is not equal to itself.")
900903 }
901904 else throw("Strict value is not equal to itself.")
902905 }
903906 else throw("Strict value is not equal to itself.")
904907 }
905908 }
906909 else $Tuple6(0, 0, 0, 0, 0, nil)
907- let eL = valueOrElse(getString(eB, ac(w)), "")
908- let eM = if ((eL != ""))
909- then au(invoke(eB, "unstakeDuckCallback", [eL, w], nil))
910+ let eM = valueOrElse(getString(eC, ac(w)), "")
911+ let eN = if ((eM != ""))
912+ then au(invoke(eC, "unstakeDuckCallback", [eM, w], nil))
910913 else $Tuple3(0, 0, 0)
911- let eN = cL((((((((eA._1 + eD._1) + eD._2) + eD._3) + eD._4) + eM._1) + eM._2) + eM._3), w, 0)
912- $Tuple2(((eD._6 ++ eN._1) ++ ei), $Tuple3(eA._2, eD._5, eN._2))
914+ let eO = cL((((((((eB._1 + eE._1) + eE._2) + eE._3) + eE._4) + eN._1) + eN._2) + eN._3), w, 0)
915+ $Tuple2(((eE._6 ++ eO._1) ++ ej), $Tuple3(eB._2, eE._5, eO._2))
913916 }
914917 }
915918 }
916919
917920
918921
919922 @Callable(ce)
920923 func unstakeLandsREADONLY (w) = {
921- let eB = addressFromStringValue(u)
922- let eC = getString(eB, aa(w))
923- let eD = if (isDefined(eC))
924+ let eC = addressFromStringValue(u)
925+ let eD = getString(eC, aa(w))
926+ let eE = if (isDefined(eD))
924927 then {
925- let eE = split_51C(value(eC), "_")
926- func eF (bi,eG) = if ((eG == ""))
928+ let eF = split_51C(value(eD), "_")
929+ func eG (bi,eH) = if ((eH == ""))
927930 then throw("landAssetId is required")
928931 else {
929- let ec = at(invoke(eB, "unstakeLandREADONLY", [eG, w], nil))
930- $Tuple4((bi._1 + ec._1), (bi._2 + ec._2), (bi._3 + ec._3), (bi._4 + ec._4))
932+ let ea = at(invoke(eC, "unstakeLandREADONLY", [eH, w], nil))
933+ $Tuple4((bi._1 + ea._1), (bi._2 + ea._2), (bi._3 + ea._3), (bi._4 + ea._4))
931934 }
932935
933- let bk = eE
936+ let bk = eF
934937 let bl = size(bk)
935938 let bm = $Tuple4(0, 0, 0, 0)
936939 func bn (bo,bp) = if ((bp >= bl))
937940 then bo
938- else eF(bo, bk[bp])
941+ else eG(bo, bk[bp])
939942
940943 func bq (bo,bp) = if ((bp >= bl))
941944 then bo
942945 else throw("List size exceeds 100")
943946
944947 bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
945948 }
946949 else $Tuple4(0, 0, 0, 0)
947- $Tuple2(nil, eD)
950+ $Tuple2(nil, eE)
948951 }
949952
950953
951954
952955 @Callable(ce)
953956 func stakeAcresCallback (R) = if ((ce.caller != addressFromStringValue(u)))
954957 then throw("Permission denied")
955958 else cL(ce.payments[0].amount, R, 0)
956959
957960
958961
959962 @Callable(ce)
960-func simulateStakeAcresREADONLY (w,eO) = {
963+func simulateStakeAcresREADONLY (w,eP) = {
961964 let cR = aN(w)
962- let cT = (valueOrElse(getInteger(cR), 0) + eO)
965+ let cT = (valueOrElse(getInteger(cR), 0) + eP)
963966 let cU = valueOrElse(getInteger(aP), 0)
964967 let cV = aO(w)
965968 let cW = valueOrElse(getInteger(cV), 0)
966- let eP = valueOrElse(getInteger(K, bc(w)), 0)
967- let eQ = bs(cT, eP)
968- let da = eQ._1
969- let db = eQ._2
969+ let eQ = valueOrElse(getInteger(K, bc(w)), 0)
970+ let eR = bs(cT, eQ)
971+ let da = eR._1
972+ let db = eR._2
970973 let dc = valueOrElse(getInteger(aQ), 0)
971- let eR = ((dc + da) - cW)
972- $Tuple2(nil, [cW, da, dc, eR])
974+ let eS = ((dc + da) - cW)
975+ $Tuple2(nil, [cW, da, dc, eS])
973976 }
974977
975978
976979
977980 @Callable(ce)
978-func issuePickC1 (eS) = if ((ce.caller != L))
981+func issuePickC1 (eT) = if ((ce.caller != L))
979982 then throw("Permission denied")
980- else cx(bM, bP, bZ, bT, 1, bE, cc, addressFromStringValue(eS))
983+ else cx(bM, bP, bZ, bT, 1, bE, cc, addressFromStringValue(eT))
981984
982985
983986
984987 @Callable(ce)
985-func issueMittenP (eS) = if ((ce.caller != this))
988+func issueMittenP (eT,dP) = if ((ce.caller != this))
986989 then throw("Permission denied")
987- else cx(bN, bR, ca, bX, 3, bF, cc, addressFromStringValue(eS))
990+ else {
991+ let eU = cx(bN, bR, ca, bX, 3, bF, cc, addressFromStringValue(eT))
992+ let eL = eU._1
993+ let cG = eU._2
994+ let ed = dO(eT, 0, dP)
995+ $Tuple2((eL ++ ed), cG)
996+ }
988997
989998
990999
9911000 @Callable(ce)
9921001 func stakeNFT () = {
993- let ei = cd(ce)
1002+ let ej = cd(ce)
9941003 if ((size(ce.payments) != 1))
9951004 then throw("Exactly one payment required")
9961005 else {
997- let el = value(ce.payments[0])
998- if ((el.amount != 1))
1006+ let em = value(ce.payments[0])
1007+ if ((em.amount != 1))
9991008 then throw("NFT token should be attached as payment")
10001009 else {
1001- let ae = value(el.assetId)
1002- let eT = value(assetInfo(ae))
1010+ let ae = value(em.assetId)
1011+ let eV = value(assetInfo(ae))
10031012 let dG = toBase58String(ae)
10041013 let R = toString(ce.caller)
1005- let eU = af(R)
1006- let eV = getString(eU)
1007- let eW = if (isDefined(eV))
1008- then split_4C(value(eV), "_")
1014+ let eW = af(R)
1015+ let eX = getString(eW)
1016+ let eY = if (isDefined(eX))
1017+ then split_4C(value(eX), "_")
10091018 else nil
1010- if (containsElement(eW, dG))
1019+ if (containsElement(eY, dG))
10111020 then throw(("Your staked NFTs already contain " + dG))
1012- else if ((size(eW) >= aU))
1021+ else if ((size(eY) >= aU))
10131022 then throw((("Your already staked max (" + toString(aU)) + ") NFTs"))
10141023 else {
1015- let eX = StringEntry(eU, makeString_2C((eW :+ dG), "_"))
1016- if ((eT.issuer == this))
1024+ let eZ = StringEntry(eW, makeString_2C((eY :+ dG), "_"))
1025+ if ((eV.issuer == this))
10171026 then {
1018- let eY = dF(R, dG, (cH(value(eT.description)) * 10000), ba(R), aX, aR)
1019- let dM = eY._1
1020- let dN = eY._2
1021- $Tuple2(((ei ++ dM) :+ eX), dN)
1027+ let fa = dF(R, dG, (cH(value(eV.description)) * 10000), ba(R), aX, aR)
1028+ let dM = fa._1
1029+ let dN = fa._2
1030+ $Tuple2(((ej ++ dM) :+ eZ), dN)
10221031 }
1023- else if ((dC(eT) == ""))
1032+ else if ((dC(eV) == ""))
10241033 then throw("Only WavesLands and Arkimals NFT tokens are accepted")
10251034 else {
1026- let eZ = dF(R, dG, aT, bb(R), aY, aS)
1027- let dM = eZ._1
1028- let dN = eZ._2
1029- $Tuple2(((ei ++ dM) :+ eX), dN)
1035+ let fb = dF(R, dG, aT, bb(R), aY, aS)
1036+ let dM = fb._1
1037+ let dN = fb._2
1038+ $Tuple2(((ej ++ dM) :+ eZ), dN)
10301039 }
10311040 }
10321041 }
10331042 }
10341043 }
10351044
10361045
10371046
10381047 @Callable(ce)
10391048 func unstakeNFT (dG) = {
1040- let ei = cd(ce)
1049+ let ej = cd(ce)
10411050 if ((size(ce.payments) != 0))
10421051 then throw("No payments required")
10431052 else {
10441053 let ae = fromBase58String(dG)
10451054 let R = toString(ce.caller)
1046- let eT = value(assetInfo(ae))
1055+ let eV = value(assetInfo(ae))
10471056 let cQ = ad(dG, R)
10481057 if (!(isDefined(getInteger(cQ))))
1049- then throw((("NFT " + eT.name) + " is not staked by you"))
1058+ then throw((("NFT " + eV.name) + " is not staked by you"))
10501059 else {
1051- let eU = af(R)
1052- let eW = split_4C(valueOrElse(getString(eU), ""), "_")
1053- let I = indexOf(eW, dG)
1060+ let eW = af(R)
1061+ let eY = split_4C(valueOrElse(getString(eW), ""), "_")
1062+ let I = indexOf(eY, dG)
10541063 if (!(isDefined(I)))
10551064 then throw(("Your staked NFTs don't contain " + dG))
10561065 else {
1057- let eX = if ((size(eW) > 1))
1058- then StringEntry(eU, makeString_2C(removeByIndex(eW, value(I)), "_"))
1059- else DeleteEntry(eU)
1060- let fa = (eT.issuer == this)
1061- if (fa)
1066+ let eZ = if ((size(eY) > 1))
1067+ then StringEntry(eW, makeString_2C(removeByIndex(eY, value(I)), "_"))
1068+ else DeleteEntry(eW)
1069+ let fc = (eV.issuer == this)
1070+ if (fc)
10621071 then {
1063- let fb = valueOrElse(getInteger(ba(R)), 0)
1064- let fc = (cH(value(eT.description)) * 10000)
1065- let fd = cL(0, R, -(fc))
1066- let dM = fd._1
1067- let dN = fd._2
1068- $Tuple2(((((((dM :+ eX) :+ IntegerEntry(ba(R), (fb - 1))) :+ IntegerEntry(aX, max([0, (valueOrElse(getInteger(aX), 0) - 1)]))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(ce.caller, 1, ae)) ++ ei), dN)
1072+ let fd = valueOrElse(getInteger(ba(R)), 0)
1073+ let fe = (cH(value(eV.description)) * 10000)
1074+ let ff = cL(0, R, -(fe))
1075+ let dM = ff._1
1076+ let dN = ff._2
1077+ $Tuple2(((((((dM :+ eZ) :+ IntegerEntry(ba(R), (fd - 1))) :+ IntegerEntry(aX, max([0, (valueOrElse(getInteger(aX), 0) - 1)]))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(ce.caller, 1, ae)) ++ ej), dN)
10691078 }
10701079 else {
1071- let fe = dC(eT)
1072- if ((fe == ""))
1080+ let fg = dC(eV)
1081+ if ((fg == ""))
10731082 then throw("Only WavesLands and Arkimals NFT tokens are accepted")
10741083 else {
1075- let ff = valueOrElse(getInteger(bb(R)), 0)
1076- let fg = cL(0, R, -(aT))
1077- let dM = fg._1
1078- let dN = fg._2
1079- $Tuple2((((((dM :+ eX) :+ IntegerEntry(bb(R), (ff - 1))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(ce.caller, 1, ae)) ++ ei), dN)
1084+ let fh = valueOrElse(getInteger(bb(R)), 0)
1085+ let fi = cL(0, R, -(aT))
1086+ let dM = fi._1
1087+ let dN = fi._2
1088+ $Tuple2((((((dM :+ eZ) :+ IntegerEntry(bb(R), (fh - 1))) :+ DeleteEntry(ad(toBase58String(ae), R))) :+ ScriptTransfer(ce.caller, 1, ae)) ++ ej), dN)
10801089 }
10811090 }
10821091 }
10831092 }
10841093 }
10851094 }
10861095
10871096
10881097
10891098 @Callable(ce)
10901099 func exchangeNFTs () = if ((ce.caller != this))
10911100 then throw("Temporary disabled")
10921101 else {
1093- let ei = cd(ce)
1102+ let ej = cd(ce)
10941103 if ((3 > size(ce.payments)))
10951104 then throw("Min one WLGOLD and 2 NFT payments allowed")
10961105 else if ((size(ce.payments) > 10))
10971106 then throw("Max one WLGOLD and 9 NFT payments allowed")
10981107 else {
10991108 let R = toString(ce.caller)
1100- func fh (bi,el) = {
1101- let ae = valueOrErrorMessage(el.assetId, "WAVES payments not allowed")
1109+ func fj (bi,em) = {
1110+ let ae = valueOrErrorMessage(em.assetId, "WAVES payments not allowed")
11021111 if ((ae == V))
1103- then $Tuple4((bi._1 + el.amount), bi._2, bi._3, bi._4)
1112+ then $Tuple4((bi._1 + em.amount), bi._2, bi._3, bi._4)
11041113 else {
1105- let eT = value(assetInfo(ae))
1106- if ((eT.issuer != this))
1114+ let eV = value(assetInfo(ae))
1115+ if ((eV.issuer != this))
11071116 then throw("Only WL-issued NFTs allowed")
11081117 else {
1109- let fi = cJ(value(eT.description))
1118+ let fk = cJ(value(eV.description))
11101119 if (if ((bi._4 > 0))
1111- then (fi != bi._4)
1120+ then (fk != bi._4)
11121121 else false)
11131122 then throw("You can exchange only NFTs of the same rarity")
11141123 else {
1115- let cC = cH(value(eT.description))
1116- $Tuple4(bi._1, (bi._2 + cC), (bi._3 :+ Burn(ae, 1)), fi)
1124+ let cC = cH(value(eV.description))
1125+ $Tuple4(bi._1, (bi._2 + cC), (bi._3 :+ Burn(ae, 1)), fk)
11171126 }
11181127 }
11191128 }
11201129 }
11211130
1122- let fj = {
1131+ let fl = {
11231132 let bk = ce.payments
11241133 let bl = size(bk)
11251134 let bm = $Tuple4(0, 0, nil, -1)
11261135 func bn (bo,bp) = if ((bp >= bl))
11271136 then bo
1128- else fh(bo, bk[bp])
1137+ else fj(bo, bk[bp])
11291138
11301139 func bq (bo,bp) = if ((bp >= bl))
11311140 then bo
11321141 else throw("List size exceeds 10")
11331142
11341143 bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
11351144 }
1136- let fk = fj._1
1137- let fl = fj._2
1138- let fm = fj._3
1139- let cB = fj._4
1140- let fn = if ((cB == bT))
1141- then if ((bG[bH] > fl))
1145+ let fm = fl._1
1146+ let fn = fl._2
1147+ let fo = fl._3
1148+ let cB = fl._4
1149+ let fp = if ((cB == bT))
1150+ then if ((bG[bH] > fn))
11421151 then bT
1143- else if ((bG[bI] > fl))
1152+ else if ((bG[bI] > fn))
11441153 then bU
11451154 else throw((("You can advance only one level of rarity, max total bonus " + toString(bG[bI])) + "%"))
11461155 else if ((cB == bU))
1147- then if ((bG[bI] > fl))
1156+ then if ((bG[bI] > fn))
11481157 then bU
1149- else if ((bG[bJ] > fl))
1158+ else if ((bG[bJ] > fn))
11501159 then bV
11511160 else throw((("You can advance only one level of rarity, max total bonus " + toString(bG[bJ])) + "%"))
11521161 else if ((cB == bV))
1153- then if ((bG[bJ] > fl))
1162+ then if ((bG[bJ] > fn))
11541163 then bV
11551164 else bW
11561165 else if ((cB == bW))
11571166 then bW
11581167 else if ((cB == bX))
11591168 then throw("You can't exchange NFTs of this rarity")
11601169 else throw("Unknown rarity")
1161- let fo = fraction(fl, e, df(0))
1162- let fp = (fk - fo)
1163- let fq = (fo / 2)
1164- let et = an(invoke(L, "burnWlgold", [(fo - fq)], nil))
1165- if ((0 > fp))
1166- then throw((("You need to attach " + aw(fo, 8)) + " WLGOLD as fee"))
1170+ let fq = fraction(fn, e, df(0))
1171+ let fr = (fm - fq)
1172+ let fs = (fq / 2)
1173+ let eu = an(invoke(L, "burnWlgold", [(fq - fs)], nil))
1174+ if ((0 > fr))
1175+ then throw((("You need to attach " + aw(fq, 8)) + " WLGOLD as fee"))
11671176 else {
1168- let fr = if ((fp > 0))
1169- then [ScriptTransfer(ce.caller, fp, V)]
1177+ let ft = if ((fr > 0))
1178+ then [ScriptTransfer(ce.caller, fr, V)]
11701179 else nil
1171- let fs = cx(bM, fn, bZ, fn, fl, bE, cc, ce.caller)
1172- let ft = fs._1
1173- let cG = fs._2
1174- let fu = size(fm)
1175- let fv = if ((fu == 0))
1180+ let fu = cx(bM, fp, bZ, fp, fn, bE, cc, ce.caller)
1181+ let fv = fu._1
1182+ let cG = fu._2
1183+ let fw = size(fo)
1184+ let fx = if ((fw == 0))
11761185 then nil
1177- else [IntegerEntry(aW, (valueOrElse(getInteger(aW), 0) + fu))]
1178- $Tuple2((((((ft ++ fm) ++ fv) ++ ei) ++ fr) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bv)), fq, V)), $Tuple2(cG, et))
1186+ else [IntegerEntry(aW, (valueOrElse(getInteger(aW), 0) + fw))]
1187+ $Tuple2((((((fv ++ fo) ++ fx) ++ ej) ++ ft) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bv)), fs, V)), $Tuple2(cG, eu))
11791188 }
11801189 }
11811190 }
11821191
11831192
11841193
11851194 @Callable(ce)
11861195 func openNftChest () = if ((ce.caller != this))
11871196 then throw("Temporary disabled")
11881197 else {
1189- let ei = cd(ce)
1198+ let ej = cd(ce)
11901199 if ((size(ce.payments) != 1))
11911200 then throw("exactly 1 payment must be attached")
11921201 else {
1193- let el = ce.payments[0]
1194- let eq = el.amount
1195- if (if (!(isDefined(el.assetId)))
1202+ let em = ce.payments[0]
1203+ let er = em.amount
1204+ if (if (!(isDefined(em.assetId)))
11961205 then true
1197- else (value(el.assetId) != V))
1206+ else (value(em.assetId) != V))
11981207 then throw("WLGOLD payments only!")
11991208 else {
1200- let fo = fraction(j, d, df(0))
1201- let fp = (eq - fo)
1202- let fq = (fo / 2)
1203- let et = an(invoke(L, "burnWlgold", [(fo - fq)], nil))
1204- if ((0 > fp))
1205- then throw((("You need to attach " + aw(fo, 8)) + " WLGOLD as fee"))
1209+ let fq = fraction(j, d, df(0))
1210+ let fr = (er - fq)
1211+ let fs = (fq / 2)
1212+ let eu = an(invoke(L, "burnWlgold", [(fq - fs)], nil))
1213+ if ((0 > fr))
1214+ then throw((("You need to attach " + aw(fq, 8)) + " WLGOLD as fee"))
12061215 else {
1207- let fr = if ((fp > 0))
1208- then [ScriptTransfer(ce.caller, fp, V)]
1216+ let ft = if ((fr > 0))
1217+ then [ScriptTransfer(ce.caller, fr, V)]
12091218 else nil
12101219 let R = toString(ce.caller)
1211- let fw = T(R)
1212- let fx = valueOrErrorMessage(getInteger(fw), "You have to commitForRandom() first!")
1213- if ((fx > height))
1214- then throw(("Random number is not ready yet, wait until height = " + toString(fx)))
1220+ let fy = T(R)
1221+ let fz = valueOrErrorMessage(getInteger(fy), "You have to commitForRandom() first!")
1222+ if ((fz > height))
1223+ then throw(("Random number is not ready yet, wait until height = " + toString(fz)))
12151224 else {
1216- let aE = value(value(blockInfoByHeight(fx)).vrf)
1225+ let aE = value(value(blockInfoByHeight(fz)).vrf)
12171226 let aD = fromBase58String(split(valueOrElse(getString(S(R)), "42_DEFAULT"), "_")[1])
1218- let fy = aB(100, aD, aE)
1219- let fz = if ((84 > fy))
1227+ let fA = aB(100, aD, aE)
1228+ let fB = if ((84 > fA))
12201229 then $Tuple2(1, bT)
1221- else if ((98 > fy))
1230+ else if ((98 > fA))
12221231 then $Tuple2(5, bU)
12231232 else $Tuple2(10, bV)
1224- let cv = fz._1
1225- let cB = fz._2
1226- let fA = cx(bM, cB, bZ, cB, cv, bE, cc, ce.caller)
1227- let ft = fA._1
1228- let cG = fA._2
1229- $Tuple2(((((ft ++ ei) ++ fr) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bv)), fq, V)) :+ DeleteEntry(fw)), $Tuple2(cG, et))
1233+ let cv = fB._1
1234+ let cB = fB._2
1235+ let fC = cx(bM, cB, bZ, cB, cv, bE, cc, ce.caller)
1236+ let fv = fC._1
1237+ let cG = fC._2
1238+ $Tuple2(((((fv ++ ej) ++ ft) :+ ScriptTransfer(addressFromStringValue(getStringValue(L, bv)), fs, V)) :+ DeleteEntry(fy)), $Tuple2(cG, eu))
12301239 }
12311240 }
12321241 }
12331242 }
12341243 }
12351244
12361245
12371246
12381247 @Callable(ce)
12391248 func commitForRandom () = if ((ce.caller != this))
12401249 then throw("Temporary disabled")
12411250 else {
1242- let ei = cd(ce)
1251+ let ej = cd(ce)
12431252 let R = toString(ce.caller)
1244- let fw = T(R)
1245- if (isDefined(getInteger(fw)))
1253+ let fy = T(R)
1254+ if (isDefined(getInteger(fy)))
12461255 then throw("You already commited for random, please use it")
12471256 else {
1248- let fx = (height + i)
1249- $Tuple2(([IntegerEntry(fw, fx)] ++ ei), fx)
1257+ let fz = (height + i)
1258+ $Tuple2(([IntegerEntry(fy, fz)] ++ ej), fz)
12501259 }
12511260 }
12521261
12531262
12541263
12551264 @Callable(ce)
1256-func drawPromoRound (fB) = if ((ce.caller != this))
1265+func drawPromoRound (fD) = if ((ce.caller != this))
12571266 then throw("Permission denied")
12581267 else {
1259- let fC = (height / o)
1268+ let fE = (height / o)
12601269 let aC = valueOrElse(getInteger(ai), 0)
12611270 if ((aC == 0))
12621271 then throw("No tickets to draw")
12631272 else {
1264- let fD = (fC * o)
1265- let fE = if ((fD > q))
1266- then fD
1267- else (fD + q)
1268- let aE = value(value(blockInfoByHeight(fE)).vrf)
1269- let dY = valueOrElse(getString(aj), "")
1270- if ((dY == ""))
1273+ let fF = (fE * o)
1274+ let fG = if ((fF > q))
1275+ then fF
1276+ else (fF + q)
1277+ let aE = value(value(blockInfoByHeight(fG)).vrf)
1278+ let dW = valueOrElse(getString(aj), "")
1279+ if ((dW == ""))
12711280 then throw("No participants")
12721281 else {
1273- func fF (fG,fH) = {
1274- let fI = if ((fG._3 == ""))
1275- then nil
1276- else split_51C(fG._3, "_")
1277- if ((fH >= size(fI)))
1278- then fG
1279- else {
1280- let fy = aB(fG._1, fG._2, aE)
1281- func fJ (bi,fK) = {
1282- let fL = split(fK, ":")
1283- let R = fL[0]
1284- let dU = parseIntValue(fL[1])
1285- let fM = (bi._1 + dU)
1286- if (if ((bi._3 == ""))
1287- then (fM > fy)
1288- else false)
1289- then $Tuple3(fM, dU, R)
1290- else $Tuple3(fM, bi._2, bi._3)
1282+ func fH (fI,fJ) = if ((fI._3 == ""))
1283+ then fI
1284+ else {
1285+ let fK = split_51C(fI._3, "_")
1286+ let fA = aB(fI._1, fI._2, aE)
1287+ func fL (bi,fM) = {
1288+ let fN = split(fM, ":")
1289+ let R = fN[0]
1290+ let dS = parseIntValue(fN[1])
1291+ let fO = (bi._1 + dS)
1292+ if (if ((bi._3 == ""))
1293+ then (fO > fA)
1294+ else false)
1295+ then $Tuple3(fO, dS, R)
1296+ else $Tuple3(fO, bi._2, bi._3)
1297+ }
1298+
1299+ let ea = {
1300+ let bk = fK
1301+ let bl = size(bk)
1302+ let bm = $Tuple3(0, 0, "")
1303+ func bn (bo,bp) = if ((bp >= bl))
1304+ then bo
1305+ else fL(bo, bk[bp])
1306+
1307+ func bq (bo,bp) = if ((bp >= bl))
1308+ then bo
1309+ else throw("List size exceeds 200")
1310+
1311+ bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200)
1312+ }
1313+ let fP = ea._3
1314+ if ((fP == ""))
1315+ then fI
1316+ else {
1317+ let dZ = split_51C(fI._3, fP)
1318+ let dY = if ((dZ[0] == ""))
1319+ then drop(dZ[1], 5)
1320+ else (dropRight(dZ[0], 1) + drop(dZ[1], 4))
1321+ let fQ = if ((fJ == 0))
1322+ then invoke(this, "issueMittenP", [fP, true], nil)
1323+ else invoke(this, "stakeAcresFor", [fP, am[fJ], true], nil)
1324+ if ((fQ == fQ))
1325+ then {
1326+ let fR = fromBase58String(split(valueOrElse(getString(S(fP)), "0_DEFAULT"), "_")[1])
1327+ $Tuple4((fI._1 - ea._2), fR, dY, (fI._4 :+ fP))
1328+ }
1329+ else throw("Strict value is not equal to itself.")
12911330 }
1331+ }
12921332
1293- let ec = {
1294- let bk = fI
1295- let bl = size(bk)
1296- let bm = $Tuple3(0, 0, "")
1297- func bn (bo,bp) = if ((bp >= bl))
1298- then bo
1299- else fJ(bo, bk[bp])
1300-
1301- func bq (bo,bp) = if ((bp >= bl))
1302- then bo
1303- else throw("List size exceeds 200")
1304-
1305- bq(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200)
1306- }
1307- let fN = ec._3
1308- if ((fN == ""))
1309- then fG
1310- else {
1311- let eb = split_51C(fG._3, fN)
1312- let ea = if ((eb[0] == ""))
1313- then drop(eb[1], 5)
1314- else (dropRight(eb[0], 1) + drop(eb[1], 4))
1315- let fO = if ((fH == 0))
1316- then invoke(this, "issueMittenP", [fN], nil)
1317- else invoke(this, "stakeAcresFor", [fN, am[fH], true], nil)
1318- if ((fO == fO))
1319- then {
1320- let fP = fromBase58String(split(valueOrElse(getString(S(fN)), "0_DEFAULT"), "_")[1])
1321- $Tuple4((fG._1 - ec._2), fP, ea, (fG._4 :+ fN))
1322- }
1323- else throw("Strict value is not equal to itself.")
1324- }
1325- }
1326- }
1327-
1328- let fQ = {
1333+ let fS = {
13291334 let bk = [0, 1, 2, 3, 4, 5]
13301335 let bl = size(bk)
1331- let bm = $Tuple4(aC, ce.transactionId, dY, nil)
1336+ let bm = $Tuple4(aC, ce.transactionId, dW, nil)
13321337 func bn (bo,bp) = if ((bp >= bl))
13331338 then bo
1334- else fF(bo, bk[bp])
1339+ else fH(bo, bk[bp])
13351340
13361341 func bq (bo,bp) = if ((bp >= bl))
13371342 then bo
13381343 else throw("List size exceeds 6")
13391344
13401345 bq(bn(bn(bn(bn(bn(bn(bm, 0), 1), 2), 3), 4), 5), 6)
13411346 }
1342- $Tuple2([StringEntry(aj, fQ._3), IntegerEntry(ai, fQ._1), StringEntry(ak(fB), makeString(fQ._4, "_"))], 0)
1347+ $Tuple2([StringEntry(aj, fS._3), IntegerEntry(ai, fS._1), StringEntry(ak(fD), makeString(fS._4, "_"))], 0)
13431348 }
13441349 }
13451350 }
13461351
13471352

github/deemru/w8io/169f3d6 
282.84 ms