tx · 3kWwdnvPxLjWo574b1BTcbY3pvMvHVjKNmm2BsaL5RkQ

3N1kc72FNsGPRgc9umhWp3eA5jS9EjdeBwK:  -0.02800000 Waves

2022.06.16 15:12 [2098911] smart account 3N1kc72FNsGPRgc9umhWp3eA5jS9EjdeBwK > SELF 0.00000000 Waves

{ "type": 13, "id": "3kWwdnvPxLjWo574b1BTcbY3pvMvHVjKNmm2BsaL5RkQ", "fee": 2800000, "feeAssetId": null, "timestamp": 1655381531001, "version": 1, "sender": "3N1kc72FNsGPRgc9umhWp3eA5jS9EjdeBwK", "senderPublicKey": "6qf6fPTcKLzLHwfULHktLQSnarx2nrJU1Qskh7bErcZN", "proofs": [ "4Z5xEXYhV88o1dXQa8XrbfJTS8bP6uRqzkg6ajsqbZUQzAHhUUhSzsteUfLZbbdfvuF1gPtGejkzcVxMx14FAsQc" ], "script": "base64:AAIFAAAAAAAAADQIAhIDCgEIEgkKBwgICAgBCAgSAwoBARIAEgASBQoDCAgIEgQKAggBEgMKAQgSAwoBCBIAAAAAOAAAAAADU0VQAgAAAAJfXwAAAAAFRU1QVFkCAAAAAAEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkJAAEsAAAAAgIAAAAVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQAAAANrZXkBAAAAEGdldEJvb2xlYW5PckZhaWwAAAABAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQkAASwAAAACAgAAABVObyBkYXRhIGZvciB0aGlzLmtleT0FAAAAA2tleQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAAJAAS5AAAAAgkABEwAAAACAgAAAAIlcwkABEwAAAACAgAAABBtYW5hZ2VyUHVibGljS2V5BQAAAANuaWwFAAAAA1NFUAEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAACQAEuQAAAAIJAARMAAAAAgIAAAACJXMJAARMAAAAAgIAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFAAAAA25pbAUAAAADU0VQAQAAAA5mYWlsRXhlY3V0ZUdldAAAAAQAAAADbXNnAAAADGJhc2VBc3NldFN0cgAAAA51c2VyQWRkcmVzc1N0cgAAAApnZXRUeElkU3RyCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAA21zZwIAAAAPOiBiYXNlQXNzZXRTdHI9BQAAAAxiYXNlQXNzZXRTdHICAAAAECB1c2VyQWRkcmVzc1N0cj0FAAAADnVzZXJBZGRyZXNzU3RyAgAAAAwgZ2V0VHhJZFN0cj0FAAAACmdldFR4SWRTdHIBAAAAFmtleUFzc2V0c1N0b3JlQ29udHJhY3QAAAAACQAEuQAAAAIJAARMAAAAAgIAAAACJXMJAARMAAAAAgIAAAATYXNzZXRzU3RvcmVDb250cmFjdAUAAAADbmlsBQAAAANTRVABAAAAC2tleUFzc2V0Q2ZnAAAAAQAAAAxiYXNlQXNzZXRTdHIJAAEsAAAAAgIAAAAXJXMlcyVzX19jb25maWdfX2Fzc2V0X18FAAAADGJhc2VBc3NldFN0cgEAAAAPa2V5UHJveHlBZGRyZXNzAAAAAQAAAAdhc3NldElkCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAAAxwcm94eUFkZHJlc3MJAARMAAAAAgUAAAAHYXNzZXRJZAUAAAADbmlsBQAAAANTRVABAAAACmtleUJhbGFuY2UAAAABAAAAB2Fzc2V0SWQJAAS5AAAAAgkABEwAAAACAgAAAAQlcyVzCQAETAAAAAICAAAAB2JhbGFuY2UJAARMAAAAAgUAAAAHYXNzZXRJZAUAAAADbmlsBQAAAANTRVABAAAAFmtleU5leHRJbnRlcm5hbEFzc2V0SWQAAAAAAgAAABclc19fbmV4dEludGVybmFsQXNzZXRJZAEAAAAMa2V5UHJpY2VMYXN0AAAAAQAAABVpbnRlcm5hbEJhc2V0QXNzZXRTdHIJAAEsAAAAAgIAAAAVJXMlcyVkX19wcmljZV9fbGFzdF9fBQAAABVpbnRlcm5hbEJhc2V0QXNzZXRTdHIBAAAAEmtleVRvcFVwTGFzdEhlaWdodAAAAAIAAAAVaW50ZXJuYWxCYXNldEFzc2V0U3RyAAAABnNlbmRlcgkABLkAAAACCQAETAAAAAICAAAAHyVzJXMlcyVkJXNfX3RvcHVwX19sYXN0X19oZWlnaHQJAARMAAAAAgUAAAAVaW50ZXJuYWxCYXNldEFzc2V0U3RyCQAETAAAAAIFAAAABnNlbmRlcgUAAAADbmlsBQAAAANTRVABAAAAD2tleVByaWNlSGlzdG9yeQAAAAMAAAAVaW50ZXJuYWxCYXNldEFzc2V0U3RyAAAAAWgAAAAJdGltZXN0YW1wCQAEuQAAAAIJAARMAAAAAgIAAAAaJXMlcyVkJWQlZF9fcHJpY2VfX2hpc3RvcnkJAARMAAAAAgUAAAAVaW50ZXJuYWxCYXNldEFzc2V0U3RyCQAETAAAAAIJAAGkAAAAAQUAAAABaAkABEwAAAACCQABpAAAAAEFAAAACXRpbWVzdGFtcAUAAAADbmlsBQAAAANTRVABAAAADmtleVRvdGFsTG9ja2VkAAAAAQAAABVpbnRlcm5hbEJhc2V0QXNzZXRTdHIJAAEsAAAAAgIAAAAXJXMlcyVkX190b3RhbF9fbG9ja2VkX18FAAAAFWludGVybmFsQmFzZXRBc3NldFN0cgEAAAAUa2V5VG90YWxMb2NrZWRCeVVzZXIAAAACAAAAFGludGVybmFsQmFzZUFzc2V0U3RyAAAADnVzZXJBZGRyZXNzU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAXJXMlcyVkJXNfX3RvdGFsX19sb2NrZWQJAARMAAAAAgUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAAA25pbAUAAAADU0VQAQAAAB9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkAAAAAQAAABFpbnRlcm5hbEJhc2VBc3NldAkAASwAAAACAgAAACglcyVzJWRfX21hcHBpbmdzX19pbnRlcm5hbDJiYXNlQXNzZXRJZF9fCQABpAAAAAEFAAAAEWludGVybmFsQmFzZUFzc2V0AQAAAB9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAAAAAQAAAAxiYXNlQXNzZXRTdHIJAAEsAAAAAgIAAAAoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUAAAAMYmFzZUFzc2V0U3RyAQAAABxrZXlNYXBwaW5nc1NoYXJlMmJhc2VBc3NldElkAAAAAQAAAA1zaGFyZUFzc2V0U3RyCQABLAAAAAICAAAAJSVzJXMlc19fbWFwcGluZ3NfX3NoYXJlMmJhc2VBc3NldElkX18FAAAADXNoYXJlQXNzZXRTdHIBAAAAHGtleU1hcHBpbmdzQmFzZUFzc2V0MnNoYXJlSWQAAAABAAAADGJhc2VBc3NldFN0cgkAASwAAAACAgAAACUlcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyc2hhcmVJZF9fBQAAAAxiYXNlQXNzZXRTdHIBAAAAF2tleVNodXRkb3duUHV0T3BlcmF0aW9uAAAAAQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgkAASwAAAACAgAAABclcyVzJWRfX3NodXRkb3duX19wdXRfXwUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIBAAAAEmtleVNodXRkb3duTWFuYWdlcgAAAAEAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAAEsAAAAAgIAAAAbJXMlcyVkX19zaHV0ZG93bl9fbWFuYWdlcl9fBQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgEAAAATYXNzZXRzU3RvcmVDb250cmFjdAAAAAAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAAV2YWx1ZQAAAAEJAAQiAAAAAQkBAAAAFmtleUFzc2V0c1N0b3JlQ29udHJhY3QAAAAAAAAAABJJZHhDZmdTaGFyZUFzc2V0SWQAAAAAAAAAAAEAAAAAF0lkeENmZ0ludGVybmFsQmFzZUFzc2V0AAAAAAAAAAACAAAAABxJZHhDZmdEZWNpbWFsc011bHRCb3RoQXNzZXRzAAAAAAAAAAADAAAAABdJZHhDZmdEZWNpbWFsc011bHRQcmljZQAAAAAAAAAABAAAAAAUSWR4Q2ZnR2V0RGVsYXlCbG9ja3MAAAAAAAAAAAUBAAAADGRhdGFBc3NldENmZwAAAAUAAAANc2hhcmVBc3NldFN0cgAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzAAAAEWRlY2ltYWxzTXVsdFByaWNlAAAAEGdldERlbGF5SW5CbG9ja3MJAAS5AAAAAgkABEwAAAACAgAAAAolcyVkJWQlZCVkCQAETAAAAAIFAAAADXNoYXJlQXNzZXRTdHIJAARMAAAAAgUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAARMAAAAAgkAAaQAAAABBQAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzCQAETAAAAAIJAAGkAAAAAQUAAAARZGVjaW1hbHNNdWx0UHJpY2UJAARMAAAAAgkAAaQAAAABBQAAABBnZXREZWxheUluQmxvY2tzBQAAAANuaWwFAAAAA1NFUAAAAAATSWR4VG90YWxMb2NrZWRTaGFyZQAAAAAAAAAAAQAAAAASSWR4VG90YWxMb2NrZWRCYXNlAAAAAAAAAAACAQAAAA9kYXRhVG90YWxMb2NrZWQAAAACAAAAEHNoYXJlQXNzZXRBbW91bnQAAAAPYmFzZUFzc2V0QW1vdW50CQAEuQAAAAIJAARMAAAAAgIAAAAEJWQlZAkABEwAAAACCQABpAAAAAEFAAAAEHNoYXJlQXNzZXRBbW91bnQJAARMAAAAAgkAAaQAAAABBQAAAA9iYXNlQXNzZXRBbW91bnQFAAAAA25pbAUAAAADU0VQAQAAAA9yZWFkVG90YWxMb2NrZWQAAAABAAAAA2tleQQAAAAQdG90YWxMb2NrZWRBcnJheQkABLUAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQkBAAAAD2RhdGFUb3RhbExvY2tlZAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAFAAAAA1NFUAkABEwAAAACAP//////////CQAETAAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABB0b3RhbExvY2tlZEFycmF5BQAAABNJZHhUb3RhbExvY2tlZFNoYXJlCQAETAAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAABB0b3RhbExvY2tlZEFycmF5BQAAABJJZHhUb3RhbExvY2tlZEJhc2UFAAAAA25pbAEAAAAMa2V5T3BlcmF0aW9uAAAABAAAAA1vcGVyYXRpb25UeXBlAAAAFGludGVybmFsQmFzZUFzc2V0U3RyAAAAC3VzZXJBZGRyZXNzAAAABHR4SWQJAAS5AAAAAgkABEwAAAACAgAAAAglcyVkJXMlcwkABEwAAAACBQAAAA1vcGVyYXRpb25UeXBlCQAETAAAAAIFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyCQAETAAAAAIFAAAAC3VzZXJBZGRyZXNzCQAETAAAAAIFAAAABHR4SWQFAAAAA25pbAUAAAADU0VQAAAAAA1JZHhPcGVyU3RhdHVzAAAAAAAAAAABAAAAAA9JZHhPcGVySW5BbW91bnQAAAAAAAAAAAIAAAAADElkeE9wZXJQcmljZQAAAAAAAAAAAwAAAAAQSWR4T3Blck91dEFtb3VudAAAAAAAAAAABAAAAAASSWR4T3BlclN0YXJ0SGVpZ2h0AAAAAAAAAAAFAAAAABVJZHhPcGVyU3RhcnRUaW1lc3RhbXAAAAAAAAAAAAYAAAAAEElkeE9wZXJFbmRIZWlnaHQAAAAAAAAAAAcAAAAAE0lkeE9wZXJFbmRUaW1lc3RhbXAAAAAAAAAAAAgBAAAAHnByaXZhdGVEYXRhT3BlcmF0aW9uQWxsU3RyaW5ncwAAAAgAAAAGc3RhdHVzAAAADWluQXNzZXRBbW91bnQAAAAFcHJpY2UAAAAOb3V0QXNzZXRBbW91bnQAAAALc3RhcnRIZWlnaHQAAAAOc3RhcnRUaW1lc3RhbXAAAAAJZW5kSGVpZ2h0AAAADGVuZFRpbWVzdGFtcAkABLkAAAACCQAETAAAAAICAAAAECVzJWQlZCVkJWQlZCVkJWQJAARMAAAAAgUAAAAGc3RhdHVzCQAETAAAAAIFAAAADWluQXNzZXRBbW91bnQJAARMAAAAAgUAAAAFcHJpY2UJAARMAAAAAgUAAAAOb3V0QXNzZXRBbW91bnQJAARMAAAAAgUAAAALc3RhcnRIZWlnaHQJAARMAAAAAgUAAAAOc3RhcnRUaW1lc3RhbXAJAARMAAAAAgUAAAAJZW5kSGVpZ2h0CQAETAAAAAIFAAAADGVuZFRpbWVzdGFtcAUAAAADbmlsBQAAAANTRVABAAAADWRhdGFPcGVyYXRpb24AAAAIAAAABnN0YXR1cwAAAA1pbkFzc2V0QW1vdW50AAAABXByaWNlAAAADm91dEFzc2V0QW1vdW50AAAAC3N0YXJ0SGVpZ2h0AAAADnN0YXJ0VGltZXN0YW1wAAAACWVuZEhlaWdodAAAAAxlbmRUaW1lc3RhbXAJAQAAAB5wcml2YXRlRGF0YU9wZXJhdGlvbkFsbFN0cmluZ3MAAAAIBQAAAAZzdGF0dXMJAAGkAAAAAQUAAAANaW5Bc3NldEFtb3VudAkAAaQAAAABBQAAAAVwcmljZQkAAaQAAAABBQAAAA5vdXRBc3NldEFtb3VudAkAAaQAAAABBQAAAAtzdGFydEhlaWdodAkAAaQAAAABBQAAAA5zdGFydFRpbWVzdGFtcAkAAaQAAAABBQAAAAllbmRIZWlnaHQJAAGkAAAAAQUAAAAMZW5kVGltZXN0YW1wAQAAABxkYXRhT3BlcmF0aW9uRXhlY3V0aW9uVXBkYXRlAAAAAwAAAA1jdXJyT3BlckFycmF5AAAACW5ld1N0YXR1cwAAAA9uZXdFbmRUaW1lc3RhbXAJAQAAAB5wcml2YXRlRGF0YU9wZXJhdGlvbkFsbFN0cmluZ3MAAAAIBQAAAAluZXdTdGF0dXMJAAGRAAAAAgUAAAANY3Vyck9wZXJBcnJheQUAAAAPSWR4T3BlckluQW1vdW50CQABkQAAAAIFAAAADWN1cnJPcGVyQXJyYXkFAAAADElkeE9wZXJQcmljZQkAAZEAAAACBQAAAA1jdXJyT3BlckFycmF5BQAAABBJZHhPcGVyT3V0QW1vdW50CQABkQAAAAIFAAAADWN1cnJPcGVyQXJyYXkFAAAAEklkeE9wZXJTdGFydEhlaWdodAkAAZEAAAACBQAAAA1jdXJyT3BlckFycmF5BQAAABVJZHhPcGVyU3RhcnRUaW1lc3RhbXAJAAGRAAAAAgUAAAANY3Vyck9wZXJBcnJheQUAAAAQSWR4T3BlckVuZEhlaWdodAkAAaQAAAABBQAAAA9uZXdFbmRUaW1lc3RhbXABAAAAEnJlYWRBc3NldENmZ09yRmFpbAAAAAEAAAAMYmFzZUFzc2V0U3RyBAAAAANrZXkJAQAAAAtrZXlBc3NldENmZwAAAAEFAAAADGJhc2VBc3NldFN0cgkABLUAAAACCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAADa2V5BQAAAANTRVABAAAAFGluY3JlbWVudFRvdGFsTG9ja2VkAAAAAwAAAANrZXkAAAAQc2hhcmVBc3NldEFtb3VudAAAAA9iYXNlQXNzZXRBbW91bnQEAAAACWRhdGFBcnJheQkBAAAAD3JlYWRUb3RhbExvY2tlZAAAAAEFAAAAA2tleQkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAADa2V5CQEAAAAPZGF0YVRvdGFsTG9ja2VkAAAAAgkAAGQAAAACCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAATSWR4VG90YWxMb2NrZWRTaGFyZQUAAAAQc2hhcmVBc3NldEFtb3VudAkAAGQAAAACCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAASSWR4VG90YWxMb2NrZWRCYXNlBQAAAA9iYXNlQXNzZXRBbW91bnQBAAAAFGRlY3JlbWVudFRvdGFsTG9ja2VkAAAAAwAAAANrZXkAAAAQc2hhcmVBc3NldEFtb3VudAAAAA9iYXNlQXNzZXRBbW91bnQEAAAACWRhdGFBcnJheQkBAAAAD3JlYWRUb3RhbExvY2tlZAAAAAEFAAAAA2tleQkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAADa2V5CQEAAAAPZGF0YVRvdGFsTG9ja2VkAAAAAgkAAGUAAAACCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAATSWR4VG90YWxMb2NrZWRTaGFyZQUAAAAQc2hhcmVBc3NldEFtb3VudAkAAGUAAAACCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAASSWR4VG90YWxMb2NrZWRCYXNlBQAAAA9iYXNlQXNzZXRBbW91bnQBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAckbWF0Y2gwCQAEIgAAAAEJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQACWQAAAAEFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQFAAAABHVuaXQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAAHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAQAAAAHJG1hdGNoMAkABCIAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAJAAJZAAAAAQUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAUAAAAEdW5pdAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAANYmFsYW5jZU9yWmVybwAAAAEAAAAHYXNzZXRJZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQEAAAAKa2V5QmFsYW5jZQAAAAEFAAAAB2Fzc2V0SWQAAAAAAAAAAAABAAAAEGdlbmVyaWNDYWxjUHJpY2UAAAAGAAAAFGludGVybmFsQmFzZUFzc2V0U3RyAAAAC2Jhc2VBc3NldElkAAAAD3RvcFVwQmFzZUFtb3VudAAAAAxzaGFyZUFzc2V0SWQAAAAWZGVjaW1hbHNNdWx0Qm90aEFzc2V0cwAAABFkZWNpbWFsc011bHRQcmljZQQAAAAQdG90YWxMb2NrZWRBcnJheQkBAAAAD3JlYWRUb3RhbExvY2tlZAAAAAEJAQAAAA5rZXlUb3RhbExvY2tlZAAAAAEFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBAAAABV0b3RhbExvY2tlZEJhc2VBbW91bnQJAAGRAAAAAgUAAAAQdG90YWxMb2NrZWRBcnJheQUAAAASSWR4VG90YWxMb2NrZWRCYXNlBAAAABBiYXNlQXNzZXRCYWxhbmNlCQEAAAANYmFsYW5jZU9yWmVybwAAAAEJAAJYAAAAAQUAAAALYmFzZUFzc2V0SWQEAAAAH2Jhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2sJAABkAAAAAgkAAGUAAAACBQAAABBiYXNlQXNzZXRCYWxhbmNlBQAAABV0b3RhbExvY2tlZEJhc2VBbW91bnQFAAAAD3RvcFVwQmFzZUFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAfYmFzZUFzc2V0QmFsYW5jZUNvbnNpZGVyaW5nTG9jawkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAADZiYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrIDwgMDogYmFzZUFzc2V0QmFsYW5jZT0JAAGkAAAAAQUAAAAQYmFzZUFzc2V0QmFsYW5jZQIAAAAhIGJhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2s9CQABpAAAAAEFAAAAH2Jhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2sEAAAADXNoYXJlRW1pc3Npb24ICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAADHNoYXJlQXNzZXRJZAAAAAhxdWFudGl0eQQAAAAFcHJpY2UDCQAAAAAAAAIFAAAADXNoYXJlRW1pc3Npb24AAAAAAAAAAAAJAABoAAAAAgAAAAAAAAAAAQUAAAARZGVjaW1hbHNNdWx0UHJpY2UJAABrAAAAAwUAAAAfYmFzZUFzc2V0QmFsYW5jZUNvbnNpZGVyaW5nTG9jawUAAAARZGVjaW1hbHNNdWx0UHJpY2UFAAAADXNoYXJlRW1pc3Npb24JAAUXAAAABQUAAAAFcHJpY2UFAAAAEGJhc2VBc3NldEJhbGFuY2UFAAAAFXRvdGFsTG9ja2VkQmFzZUFtb3VudAUAAAAfYmFzZUFzc2V0QmFsYW5jZUNvbnNpZGVyaW5nTG9jawUAAAANc2hhcmVFbWlzc2lvbgEAAAAbcHJpdmF0ZUN1cnJlbnRTeXNQYXJhbXNSRVNUAAAAAQAAAAxiYXNlQXNzZXRTdHIEAAAAC2Jhc2VBc3NldElkCQACWQAAAAEFAAAADGJhc2VBc3NldFN0cgQAAAAIY2ZnQXJyYXkJAQAAABJyZWFkQXNzZXRDZmdPckZhaWwAAAABBQAAAAxiYXNlQXNzZXRTdHIEAAAADXNoYXJlQXNzZXRTdHIJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAEklkeENmZ1NoYXJlQXNzZXRJZAQAAAAMc2hhcmVBc3NldElkCQACWQAAAAEFAAAADXNoYXJlQXNzZXRTdHIEAAAAFmRlY2ltYWxzTXVsdEJvdGhBc3NldHMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAcSWR4Q2ZnRGVjaW1hbHNNdWx0Qm90aEFzc2V0cwQAAAARZGVjaW1hbHNNdWx0UHJpY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAXSWR4Q2ZnRGVjaW1hbHNNdWx0UHJpY2UEAAAAFGludGVybmFsQmFzZUFzc2V0U3RyCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABdJZHhDZmdJbnRlcm5hbEJhc2VBc3NldAQAAAAIc3lzU3RhdGUJAQAAABBnZW5lcmljQ2FsY1ByaWNlAAAABgUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAAC2Jhc2VBc3NldElkAAAAAAAAAAAABQAAAAxzaGFyZUFzc2V0SWQFAAAAFmRlY2ltYWxzTXVsdEJvdGhBc3NldHMFAAAAEWRlY2ltYWxzTXVsdFByaWNlCQAFGAAAAAYJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAVwcmljZQgFAAAACHN5c1N0YXRlAAAAAl8xCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAARZGVjaW1hbHNNdWx0UHJpY2UFAAAAEWRlY2ltYWxzTXVsdFByaWNlCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAQYmFzZUFzc2V0QmFsYW5jZQgFAAAACHN5c1N0YXRlAAAAAl8yCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAVdG90YWxMb2NrZWRCYXNlQW1vdW50CAUAAAAIc3lzU3RhdGUAAAACXzMJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAB9iYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrCAUAAAAIc3lzU3RhdGUAAAACXzQJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAA1zaGFyZUVtaXNzaW9uCAUAAAAIc3lzU3RhdGUAAAACXzUBAAAAC211c3RNYW5hZ2VyAAAAAQAAAAFpBAAAAAJwZAkAAAIAAAABAgAAABFwZXJtaXNzaW9uIGRlbmllZAQAAAAHJG1hdGNoMAkBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJwawUAAAAHJG1hdGNoMAMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAAJwawYFAAAAAnBkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0AwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMGBQAAAAJwZAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAAQbXVzdFByb3h5QWRkcmVzcwAAAAIAAAABaQAAAAdhc3NldElkBAAAAAdpc1Byb3h5CQAAAAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEIgAAAAEJAQAAAA9rZXlQcm94eUFkZHJlc3MAAAABBQAAAAdhc3NldElkBQAAAAVFTVBUWQMFAAAAB2lzUHJveHkGBAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyBgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAAKAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAAAQAAABNhc3NldHNTdG9yZUNvbnRyYWN0BAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABZrZXlBc3NldHNTdG9yZUNvbnRyYWN0AAAAAAUAAAATYXNzZXRzU3RvcmVDb250cmFjdAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABJhZG1pblJlZ2lzdGVyQXNzZXQAAAAHAAAADGJhc2VBc3NldFN0cgAAAA5zaGFyZUFzc2V0TmFtZQAAAA9zaGFyZUFzc2V0RGVzY3IAAAAOc2hhcmVBc3NldExvZ28AAAAQZ2V0RGVsYXlpbkJsb2NrcwAAABZzaHV0ZG93bk1hbmFnZXJBZGRyZXNzAAAADHByb3h5QWRkcmVzcwQAAAALYmFzZUFzc2V0SWQJAAJZAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAAAhkZWNpbWFscwgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAALYmFzZUFzc2V0SWQAAAAIZGVjaW1hbHMEAAAABWNoZWNrCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpAwkAAAAAAAACBQAAAAVjaGVjawUAAAAFY2hlY2sDCQEAAAACIT0AAAACCQAEJQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAFnNodXRkb3duTWFuYWdlckFkZHJlc3MFAAAAFnNodXRkb3duTWFuYWdlckFkZHJlc3MJAAACAAAAAQIAAAAeaW52YWxpZCBzaHV0ZG93bk1hbmFnZXJBZGRyZXNzAwkAAGYAAAACAAAAAAAAAAAABQAAABBnZXREZWxheWluQmxvY2tzCQAAAgAAAAEJAAEsAAAAAgIAAAAZaW52YWxpZCBnZXREZWxheWluQmxvY2tzPQkAAaQAAAABBQAAABBnZXREZWxheWluQmxvY2tzBAAAABVzaGFyZUFzc2V0SXNzdWVBY3Rpb24JAARCAAAABQUAAAAOc2hhcmVBc3NldE5hbWUFAAAAD3NoYXJlQXNzZXREZXNjcgAAAAAAAAAAAQUAAAAIZGVjaW1hbHMGBAAAAAxzaGFyZUFzc2V0SWQJAAQ4AAAAAQUAAAAVc2hhcmVBc3NldElzc3VlQWN0aW9uBAAAAA1zaGFyZUFzc2V0U3RyCQACWAAAAAEFAAAADHNoYXJlQXNzZXRJZAQAAAARZGVjaW1hbHNNdWx0UHJpY2UJAABoAAAAAgkAAGgAAAACAAAAAAAAAABkAAAAAAAAAAPoAAAAAAAAAAPoBAAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzCQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAFAAAACGRlY2ltYWxzAAAAAAAAAAAAAAAAAAAAAAAABQAAAARET1dOBAAAAApzdGFydFByaWNlCQAAaAAAAAIAAAAAAAAAAAEFAAAAEWRlY2ltYWxzTXVsdFByaWNlBAAAABRpbnRlcm5hbEJhc2VBc3NldHRJZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAWa2V5TmV4dEludGVybmFsQXNzZXRJZAAAAAAAAAAAAAAAAAAEAAAAFGludGVybmFsQmFzZUFzc2V0U3RyCQABpAAAAAEFAAAAFGludGVybmFsQmFzZUFzc2V0dElkBAAAAA5jcmVhdGVPclVwZGF0ZQkAA/wAAAAECQEAAAATYXNzZXRzU3RvcmVDb250cmFjdAAAAAACAAAADmNyZWF0ZU9yVXBkYXRlCQAETAAAAAIFAAAADXNoYXJlQXNzZXRTdHIJAARMAAAAAgUAAAAOc2hhcmVBc3NldExvZ28JAARMAAAAAgcFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAA5jcmVhdGVPclVwZGF0ZQUAAAAOY3JlYXRlT3JVcGRhdGUEAAAACGFkZExhYmVsCQAD/AAAAAQJAQAAABNhc3NldHNTdG9yZUNvbnRyYWN0AAAAAAIAAAAIYWRkTGFiZWwJAARMAAAAAgUAAAANc2hhcmVBc3NldFN0cgkABEwAAAACAgAAAARERUZJBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAIYWRkTGFiZWwFAAAACGFkZExhYmVsCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAtrZXlBc3NldENmZwAAAAEFAAAADGJhc2VBc3NldFN0cgkBAAAADGRhdGFBc3NldENmZwAAAAUFAAAADXNoYXJlQXNzZXRTdHIFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzBQAAABFkZWNpbWFsc011bHRQcmljZQUAAAAQZ2V0RGVsYXlpbkJsb2NrcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAfa2V5TWFwcGluZ3NJbnRlcm5hbDJiYXNlQXNzZXRJZAAAAAEFAAAAFGludGVybmFsQmFzZUFzc2V0dElkBQAAAAxiYXNlQXNzZXRTdHIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQAAAABBQAAAAxiYXNlQXNzZXRTdHIFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABxrZXlNYXBwaW5nc1NoYXJlMmJhc2VBc3NldElkAAAAAQUAAAANc2hhcmVBc3NldFN0cgUAAAAMYmFzZUFzc2V0U3RyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABxrZXlNYXBwaW5nc0Jhc2VBc3NldDJzaGFyZUlkAAAAAQUAAAAMYmFzZUFzc2V0U3RyBQAAAA1zaGFyZUFzc2V0U3RyCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQEAAAAXa2V5U2h1dGRvd25QdXRPcGVyYXRpb24AAAABBQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEmtleVNodXRkb3duTWFuYWdlcgAAAAEFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAABZzaHV0ZG93bk1hbmFnZXJBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAWa2V5TmV4dEludGVybmFsQXNzZXRJZAAAAAAJAABkAAAAAgUAAAAUaW50ZXJuYWxCYXNlQXNzZXR0SWQAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAxrZXlQcmljZUxhc3QAAAABBQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgUAAAAKc3RhcnRQcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAD2tleVByaWNlSGlzdG9yeQAAAAMFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAAZoZWlnaHQIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAApzdGFydFByaWNlCQAETAAAAAIFAAAAFXNoYXJlQXNzZXRJc3N1ZUFjdGlvbgkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAADHNoYXJlQXNzZXRJZAAAAAAAAAAAAQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5UHJveHlBZGRyZXNzAAAAAQUAAAAMYmFzZUFzc2V0U3RyBQAAAAxwcm94eUFkZHJlc3MFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAtzaHV0ZG93blB1dAAAAAEAAAATaW50ZXJuYWxCYXNlQXNzZXRJZAQAAAAWaW50ZXJuYWxCYXNlQXNzZXRJZFN0cgkAAaQAAAABBQAAABNpbnRlcm5hbEJhc2VBc3NldElkBAAAAA5iYXNlQXNzZXRJZFN0cgkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAAB9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkAAAAAQUAAAATaW50ZXJuYWxCYXNlQXNzZXRJZAQAAAAWc2h1dGRvd25NYW5hZ2VyQWRkcmVzcwkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAABJrZXlTaHV0ZG93bk1hbmFnZXIAAAABBQAAABZpbnRlcm5hbEJhc2VBc3NldElkU3RyAwkAAGYAAAACAAAAAAAAAAABCQABMQAAAAEFAAAADmJhc2VBc3NldElkU3RyCQAAAgAAAAECAAAAG2ludmFsaWQgaW50ZXJuYWxCYXNlQXNzZXRJZAMJAQAAAAIhPQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABZzaHV0ZG93bk1hbmFnZXJBZGRyZXNzCQAAAgAAAAECAAAADWFjY2VzcyBkZW5pZWQJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAQAAABdrZXlTaHV0ZG93blB1dE9wZXJhdGlvbgAAAAEJAAGkAAAAAQUAAAATaW50ZXJuYWxCYXNlQXNzZXRJZAYFAAAAA25pbAAAAAFpAQAAAANwdXQAAAAABAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAC2Jhc2VBc3NldElkCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAADGJhc2VBc3NldFN0cgkAAlgAAAABBQAAAAtiYXNlQXNzZXRJZAQAAAAOdXNlckFkZHJlc3NTdHIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAhjZmdBcnJheQkBAAAAEnJlYWRBc3NldENmZ09yRmFpbAAAAAEFAAAADGJhc2VBc3NldFN0cgQAAAANc2hhcmVBc3NldFN0cgkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAASSWR4Q2ZnU2hhcmVBc3NldElkBAAAAAxzaGFyZUFzc2V0SWQJAAJZAAAAAQUAAAANc2hhcmVBc3NldFN0cgQAAAAWZGVjaW1hbHNNdWx0Qm90aEFzc2V0cwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABxJZHhDZmdEZWNpbWFsc011bHRCb3RoQXNzZXRzBAAAABFkZWNpbWFsc011bHRQcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABdJZHhDZmdEZWNpbWFsc011bHRQcmljZQQAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAF0lkeENmZ0ludGVybmFsQmFzZUFzc2V0BAAAAAxpc1B1dEJsb2NrZWQJAQAAABBnZXRCb29sZWFuT3JGYWlsAAAAAQkBAAAAF2tleVNodXRkb3duUHV0T3BlcmF0aW9uAAAAAQUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIDBQAAAAxpc1B1dEJsb2NrZWQJAAACAAAAAQIAAAAYcHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkBAAAAApuZXdCYWxhbmNlCQAAZAAAAAIJAQAAAA1iYWxhbmNlT3JaZXJvAAAAAQUAAAAMYmFzZUFzc2V0U3RyCAUAAAADcG10AAAABmFtb3VudAQAAAAFcHJpY2UICQEAAAAQZ2VuZXJpY0NhbGNQcmljZQAAAAYFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAAtiYXNlQXNzZXRJZAgFAAAAA3BtdAAAAAZhbW91bnQFAAAADHNoYXJlQXNzZXRJZAUAAAAWZGVjaW1hbHNNdWx0Qm90aEFzc2V0cwUAAAARZGVjaW1hbHNNdWx0UHJpY2UAAAACXzEEAAAAEHNoYXJlQXNzZXRBbW91bnQJAABrAAAAAwgFAAAAA3BtdAAAAAZhbW91bnQFAAAAEWRlY2ltYWxzTXVsdFByaWNlBQAAAAVwcmljZQkABEwAAAACCQEAAAAHUmVpc3N1ZQAAAAMFAAAADHNoYXJlQXNzZXRJZAUAAAAQc2hhcmVBc3NldEFtb3VudAYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABBzaGFyZUFzc2V0QW1vdW50BQAAAAxzaGFyZUFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADGtleU9wZXJhdGlvbgAAAAQCAAAAAVAFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAA51c2VyQWRkcmVzc1N0cgkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkCQEAAAANZGF0YU9wZXJhdGlvbgAAAAgCAAAACEZJTklTSEVECAUAAAADcG10AAAABmFtb3VudAUAAAAFcHJpY2UFAAAAEHNoYXJlQXNzZXRBbW91bnQFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAABXZhbHVlAAAAAQkABCIAAAABCQEAAAAPa2V5UHJveHlBZGRyZXNzAAAAAQUAAAAMYmFzZUFzc2V0U3RyCAUAAAADcG10AAAABmFtb3VudAUAAAALYmFzZUFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAprZXlCYWxhbmNlAAAAAQUAAAAMYmFzZUFzc2V0U3RyBQAAAApuZXdCYWxhbmNlBQAAAANuaWwAAAABaQEAAAAQc3VibWl0R2V0UmVxdWVzdAAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAMc2hhcmVBc3NldElkCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAADXNoYXJlQXNzZXRTdHIJAAJYAAAAAQUAAAAMc2hhcmVBc3NldElkBAAAAAxjYWxsZXJQdWJTdHIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABBQAAAAt1c2VyQWRkcmVzcwQAAAAQc2hhcmVBc3NldEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQEAAAADGJhc2VBc3NldFN0cgkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAABxrZXlNYXBwaW5nc1NoYXJlMmJhc2VBc3NldElkAAAAAQUAAAANc2hhcmVBc3NldFN0cgQAAAALYmFzZUFzc2V0SWQJAAJZAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAAAhjZmdBcnJheQkBAAAAEnJlYWRBc3NldENmZ09yRmFpbAAAAAEFAAAADGJhc2VBc3NldFN0cgQAAAAWZGVjaW1hbHNNdWx0Qm90aEFzc2V0cwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABxJZHhDZmdEZWNpbWFsc011bHRCb3RoQXNzZXRzBAAAABFkZWNpbWFsc011bHRQcmljZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABdJZHhDZmdEZWNpbWFsc011bHRQcmljZQQAAAAOZ2V0RGVsYXlCbG9ja3MJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAUSWR4Q2ZnR2V0RGVsYXlCbG9ja3MEAAAAFGludGVybmFsQmFzZUFzc2V0U3RyCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABdJZHhDZmdJbnRlcm5hbEJhc2VBc3NldAQAAAAFcHJpY2UICQEAAAAQZ2VuZXJpY0NhbGNQcmljZQAAAAYFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAAtiYXNlQXNzZXRJZAAAAAAAAAAAAAUAAAAMc2hhcmVBc3NldElkBQAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzBQAAABFkZWNpbWFsc011bHRQcmljZQAAAAJfMQQAAAAPYmFzZUFzc2V0QW1vdW50CQAAawAAAAMFAAAAEHNoYXJlQXNzZXRBbW91bnQFAAAABXByaWNlBQAAABFkZWNpbWFsc011bHRQcmljZQQAAAAMb3BlcmF0aW9uS2V5CQEAAAAMa2V5T3BlcmF0aW9uAAAABAIAAAABRwUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAADnVzZXJBZGRyZXNzU3RyCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAADW9wZXJhdGlvbkRhdGEJAQAAAA1kYXRhT3BlcmF0aW9uAAAACAIAAAAHUEVORElORwUAAAAQc2hhcmVBc3NldEFtb3VudAUAAAAFcHJpY2UFAAAAD2Jhc2VBc3NldEFtb3VudAUAAAAGaGVpZ2h0CAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAGQAAAACBQAAAAZoZWlnaHQFAAAADmdldERlbGF5QmxvY2tzAAAAAAAAAAAACQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAAMc2hhcmVBc3NldElkBQAAABBzaGFyZUFzc2V0QW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADG9wZXJhdGlvbktleQUAAAANb3BlcmF0aW9uRGF0YQkABEwAAAACCQEAAAAUaW5jcmVtZW50VG90YWxMb2NrZWQAAAADCQEAAAAOa2V5VG90YWxMb2NrZWQAAAABBQAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgUAAAAQc2hhcmVBc3NldEFtb3VudAUAAAAPYmFzZUFzc2V0QW1vdW50CQAETAAAAAIJAQAAABRpbmNyZW1lbnRUb3RhbExvY2tlZAAAAAMJAQAAABRrZXlUb3RhbExvY2tlZEJ5VXNlcgAAAAIFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAQc2hhcmVBc3NldEFtb3VudAUAAAAPYmFzZUFzc2V0QW1vdW50BQAAAANuaWwAAAABaQEAAAARZXhlY3V0ZUdldFJlcXVlc3QAAAADAAAADGJhc2VBc3NldFN0cgAAAA51c2VyQWRkcmVzc1N0cgAAAApnZXRUeElkU3RyBAAAAAt1c2VyQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAOdXNlckFkZHJlc3NTdHIEAAAADWFzc2V0Q2ZnQXJyYXkJAQAAABJyZWFkQXNzZXRDZmdPckZhaWwAAAABBQAAAAxiYXNlQXNzZXRTdHIEAAAADHNoYXJlQXNzZXRJZAkAAlkAAAABCQABkQAAAAIFAAAADWFzc2V0Q2ZnQXJyYXkFAAAAEklkeENmZ1NoYXJlQXNzZXRJZAQAAAALYmFzZUFzc2V0SWQJAAJZAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAABRpbnRlcm5hbEJhc2VBc3NldFN0cgkAAZEAAAACBQAAAA1hc3NldENmZ0FycmF5BQAAABdJZHhDZmdJbnRlcm5hbEJhc2VBc3NldAQAAAAMb3BlcmF0aW9uS2V5CQEAAAAMa2V5T3BlcmF0aW9uAAAABAIAAAABRwUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAApnZXRUeElkU3RyBAAAAA5vcGVyYXRpb25BcnJheQkABLUAAAACCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAAMb3BlcmF0aW9uS2V5BQAAAANTRVAEAAAABnN0YXR1cwkAAZEAAAACBQAAAA5vcGVyYXRpb25BcnJheQUAAAANSWR4T3BlclN0YXR1cwQAAAAJZW5kSGVpZ2h0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAOb3BlcmF0aW9uQXJyYXkFAAAAEElkeE9wZXJFbmRIZWlnaHQEAAAADWluU2hhcmVBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA5vcGVyYXRpb25BcnJheQUAAAAPSWR4T3BlckluQW1vdW50BAAAAA1vdXRCYXNlQW1vdW50CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAOb3BlcmF0aW9uQXJyYXkFAAAAEElkeE9wZXJPdXRBbW91bnQDCQEAAAACIT0AAAACBQAAAAZzdGF0dXMCAAAAB1BFTkRJTkcJAQAAAA5mYWlsRXhlY3V0ZUdldAAAAAQCAAAAFVN0YXR1cyBpcyBub3QgUEVORElORwUAAAAMYmFzZUFzc2V0U3RyBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAKZ2V0VHhJZFN0cgMJAABmAAAAAgUAAAAJZW5kSGVpZ2h0BQAAAAZoZWlnaHQJAQAAAA5mYWlsRXhlY3V0ZUdldAAAAAQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACkVuZEhlaWdodFsJAAGkAAAAAQUAAAAJZW5kSGVpZ2h0AgAAAARdID4gCQABpAAAAAEFAAAABmhlaWdodAUAAAAMYmFzZUFzc2V0U3RyBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAKZ2V0VHhJZFN0cgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAt1c2VyQWRkcmVzcwUAAAANb3V0QmFzZUFtb3VudAUAAAALYmFzZUFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAMb3BlcmF0aW9uS2V5CQEAAAAcZGF0YU9wZXJhdGlvbkV4ZWN1dGlvblVwZGF0ZQAAAAMFAAAADm9wZXJhdGlvbkFycmF5AgAAAAhGSU5JU0hFRAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAAFGRlY3JlbWVudFRvdGFsTG9ja2VkAAAAAwkBAAAADmtleVRvdGFsTG9ja2VkAAAAAQUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAADWluU2hhcmVBbW91bnQFAAAADW91dEJhc2VBbW91bnQJAARMAAAAAgkBAAAAFGRlY3JlbWVudFRvdGFsTG9ja2VkAAAAAwkBAAAAFGtleVRvdGFsTG9ja2VkQnlVc2VyAAAAAgUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAA1pblNoYXJlQW1vdW50BQAAAA1vdXRCYXNlQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAKa2V5QmFsYW5jZQAAAAEFAAAADGJhc2VBc3NldFN0cgkAAGUAAAACCQEAAAANYmFsYW5jZU9yWmVybwAAAAEFAAAADGJhc2VBc3NldFN0cgUAAAANb3V0QmFzZUFtb3VudAUAAAADbmlsAAAAAWkBAAAADHRvcFVwQmFsYW5jZQAAAAIAAAAMYmFzZUFzc2V0U3RyAAAABWRlbHRhBAAAAA1hc3NldENmZ0FycmF5CQEAAAAScmVhZEFzc2V0Q2ZnT3JGYWlsAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAACnBtdEFzc2V0SWQJAQAAAAV2YWx1ZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAALcG10QXNzZXRTdHIJAAJYAAAAAQUAAAAKcG10QXNzZXRJZAQAAAAMc2hhcmVBc3NldElkCQACWQAAAAEJAAGRAAAAAgUAAAANYXNzZXRDZmdBcnJheQUAAAASSWR4Q2ZnU2hhcmVBc3NldElkBAAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAANYXNzZXRDZmdBcnJheQUAAAAcSWR4Q2ZnRGVjaW1hbHNNdWx0Qm90aEFzc2V0cwQAAAARZGVjaW1hbHNNdWx0UHJpY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA1hc3NldENmZ0FycmF5BQAAABdJZHhDZmdEZWNpbWFsc011bHRQcmljZQQAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAAGRAAAAAgUAAAANYXNzZXRDZmdBcnJheQUAAAAXSWR4Q2ZnSW50ZXJuYWxCYXNlQXNzZXQEAAAAEnRvcFVwTGFzdEhlaWdodEtFWQkBAAAAEmtleVRvcFVwTGFzdEhlaWdodAAAAAIFAAAAFGludGVybmFsQmFzZUFzc2V0U3RyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPdG9wVXBMYXN0SGVpZ2h0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEnRvcFVwTGFzdEhlaWdodEtFWQAAAAAAAAAAAAQAAAAGY2hlY2tzCQAETAAAAAIJAQAAABBtdXN0UHJveHlBZGRyZXNzAAAAAgUAAAABaQUAAAAMYmFzZUFzc2V0U3RyCQAETAAAAAIDCQEAAAACIT0AAAACBQAAAA90b3BVcExhc3RIZWlnaHQFAAAABmhlaWdodAYJAAACAAAAAQIAAAAjb25seSBvbmUgdG9wVXAgcGVyIGJsb2NrIGlzIGFsbG93ZWQFAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MDCQEAAAACIT0AAAACBQAAAAxiYXNlQXNzZXRTdHIFAAAAC3BtdEFzc2V0U3RyCQAAAgAAAAECAAAAPmF0dGFjaGVkIHBheW1lbnQncyBhc3NldCBpZCBpcyBOT1QgbWF0Y2hlZCBwYXNzZWQgYmFzZUFzc2V0U3RyAwkAAGYAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAAIG9ubHkgb25lIHBheW1lbnQgY2FuIGJlIGF0dGFjaGVkBAAAAAVwcmljZQgJAQAAABBnZW5lcmljQ2FsY1ByaWNlAAAABgUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAACnBtdEFzc2V0SWQFAAAABWRlbHRhBQAAAAxzaGFyZUFzc2V0SWQFAAAAFmRlY2ltYWxzTXVsdEJvdGhBc3NldHMFAAAAEWRlY2ltYWxzTXVsdFByaWNlAAAAAl8xCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMa2V5UHJpY2VMYXN0AAAAAQUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAABXByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAPa2V5UHJpY2VIaXN0b3J5AAAAAwUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAABXByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJ0b3BVcExhc3RIZWlnaHRLRVkFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACmtleUJhbGFuY2UAAAABBQAAAAtwbXRBc3NldFN0cgkAAGQAAAACCQEAAAANYmFsYW5jZU9yWmVybwAAAAEFAAAAC3BtdEFzc2V0U3RyBQAAAAVkZWx0YQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABRjdXJyZW50U3lzUGFyYW1zUkVTVAAAAAEAAAAMYmFzZUFzc2V0U3RyBAAAAA1zeXNTdGF0ZVR1cGxlCQEAAAAbcHJpdmF0ZUN1cnJlbnRTeXNQYXJhbXNSRVNUAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAAAVwcmljZQgIBQAAAA1zeXNTdGF0ZVR1cGxlAAAAAl8xAAAABXZhbHVlBAAAABFkZWNpbWFsc011bHRQcmljZQgIBQAAAA1zeXNTdGF0ZVR1cGxlAAAAAl8yAAAABXZhbHVlBAAAABBiYXNlQXNzZXRCYWxhbmNlCAgFAAAADXN5c1N0YXRlVHVwbGUAAAACXzMAAAAFdmFsdWUEAAAAFXRvdGFsTG9ja2VkQmFzZUFtb3VudAgIBQAAAA1zeXNTdGF0ZVR1cGxlAAAAAl80AAAABXZhbHVlBAAAAB9iYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrCAgFAAAADXN5c1N0YXRlVHVwbGUAAAACXzUAAAAFdmFsdWUEAAAADXNoYXJlRW1pc3Npb24ICAUAAAANc3lzU3RhdGVUdXBsZQAAAAJfNgAAAAV2YWx1ZQQAAAAIcmVzdERhdGEJAAS5AAAAAgkABEwAAAACAgAAABlzdGFydEN1cnJlbnRTeXNQYXJhbXNSRVNUCQAETAAAAAIJAAGkAAAAAQUAAAAFcHJpY2UJAARMAAAAAgkAAaQAAAABBQAAABFkZWNpbWFsc011bHRQcmljZQkABEwAAAACCQABpAAAAAEFAAAAEGJhc2VBc3NldEJhbGFuY2UJAARMAAAAAgkAAaQAAAABBQAAABV0b3RhbExvY2tlZEJhc2VBbW91bnQJAARMAAAAAgkAAaQAAAABBQAAAB9iYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrCQAETAAAAAIJAAGkAAAAAQUAAAANc2hhcmVFbWlzc2lvbgkABEwAAAACAgAAABdlbmRDdXJyZW50U3lzUGFyYW1zUkVTVAUAAAADbmlsBQAAAANTRVAJAAACAAAAAQUAAAAIcmVzdERhdGEAAAABaQEAAAAKc2V0TWFuYWdlcgAAAAEAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEAAAAC2NoZWNrQ2FsbGVyCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIEAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAAlkAAAABBQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAAAAAAAAgUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5BQAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADmNvbmZpcm1NYW5hZ2VyAAAAAAQAAAACcG0JAQAAAB1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAAEAAAABWhhc1BNAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAAnBtBgkAAAIAAAABAgAAABJubyBwZW5kaW5nIG1hbmFnZXIDCQAAAAAAAAIFAAAABWhhc1BNBQAAAAVoYXNQTQQAAAAHY2hlY2tQTQMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQEAAAAFdmFsdWUAAAABBQAAAAJwbQYJAAACAAAAAQIAAAAbeW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAdjaGVja1BNBQAAAAdjaGVja1BNCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAkAAlgAAAABCQEAAAAFdmFsdWUAAAABBQAAAAJwbQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAABQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAD3RhcmdldFB1YmxpY0tleQQAAAAHJG1hdGNoMAkBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJwawUAAAAHJG1hdGNoMAUAAAACcGsDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAA90YXJnZXRQdWJsaWNLZXnQjnea", "chainId": 84, "height": 2098911, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GkPybLJy5zcfkewXFUbB89BAK3nDHuWBQSNmbMhtfc2K Next: By4kz3ExJPh3vhvepeMwLf3pJFnC4w6s4XZ5EtegKXS9 Diff:
OldNewDifferences
172172 func aJ (p) = valueOrElse(getInteger(q(p)), 0)
173173
174174
175-func aK (aL,B,aM,aN,aO,R,S) = {
175+func aK (B,aL,aM,aN,R,S) = {
176176 let aa = Z(z(B))
177- let aP = aa[V]
178- let aQ = aL
179- let aR = ((aQ - aP) + aN)
180- if ((0 > aR))
181- then throw(((("baseAssetBalanceConsideringLock < 0: baseAssetBalance=" + toString(aQ)) + " baseAssetBalanceConsideringLock=") + toString(aR)))
177+ let aO = aa[V]
178+ let aP = aJ(toBase58String(aL))
179+ let aQ = ((aP - aO) + aM)
180+ if ((0 > aQ))
181+ then throw(((("baseAssetBalanceConsideringLock < 0: baseAssetBalance=" + toString(aP)) + " baseAssetBalanceConsideringLock=") + toString(aQ)))
182182 else {
183- let aS = value(assetInfo(aO)).quantity
184- let aq = if ((aS == 0))
183+ let aR = value(assetInfo(aN)).quantity
184+ let aq = if ((aR == 0))
185185 then (1 * S)
186- else fraction(aR, S, aS)
187- $Tuple5(aq, aQ, aP, aR, aS)
186+ else fraction(aQ, S, aR)
187+ $Tuple5(aq, aP, aO, aQ, aR)
188188 }
189189 }
190190
191191
192-func aT (aL,B,aM,aO,R,S) = aK(aL, B, aM, 0, aO, R, S)
193-
194-
195-func aU (j) = {
196- let aM = fromBase58String(j)
197- let aV = aB(j)
198- let G = aV[L]
199- let aO = fromBase58String(G)
200- let R = parseIntValue(aV[N])
201- let S = parseIntValue(aV[O])
202- let B = aV[M]
203- let aW = aT(aJ(j), B, aM, aO, R, S)
204- $Tuple6(IntegerEntry("price", aW._1), IntegerEntry("decimalsMultPrice", S), IntegerEntry("baseAssetBalance", aW._2), IntegerEntry("totalLockedBaseAmount", aW._3), IntegerEntry("baseAssetBalanceConsideringLock", aW._4), IntegerEntry("shareEmission", aW._5))
192+func aS (j) = {
193+ let aL = fromBase58String(j)
194+ let aT = aB(j)
195+ let G = aT[L]
196+ let aN = fromBase58String(G)
197+ let R = parseIntValue(aT[N])
198+ let S = parseIntValue(aT[O])
199+ let B = aT[M]
200+ let aU = aK(B, aL, 0, aN, R, S)
201+ $Tuple6(IntegerEntry("price", aU._1), IntegerEntry("decimalsMultPrice", S), IntegerEntry("baseAssetBalance", aU._2), IntegerEntry("totalLockedBaseAmount", aU._3), IntegerEntry("baseAssetBalanceConsideringLock", aU._4), IntegerEntry("shareEmission", aU._5))
205202 }
206203
207204
208-func aX (aY) = {
209- let aZ = throw("permission denied")
205+func aV (aW) = {
206+ let aX = throw("permission denied")
210207 let aG = aF()
211208 if ($isInstanceOf(aG, "ByteVector"))
212209 then {
213- let ba = aG
214- if ((aY.callerPublicKey == ba))
210+ let aY = aG
211+ if ((aW.callerPublicKey == aY))
215212 then true
216- else aZ
213+ else aX
217214 }
218215 else if ($isInstanceOf(aG, "Unit"))
219- then if ((aY.caller == this))
216+ then if ((aW.caller == this))
220217 then true
221- else aZ
218+ else aX
222219 else throw("Match error")
223220 }
224221
225222
226-func bb (aY,p) = {
227- let bc = (toString(aY.caller) == valueOrElse(getString(o(p)), b))
228- if (bc)
223+func aZ (aW,p) = {
224+ let ba = (toString(aW.caller) == valueOrElse(getString(o(p)), b))
225+ if (ba)
229226 then true
230227 else {
231- let bd = aX(aY)
232- if ((bd == bd))
228+ let bb = aV(aW)
229+ if ((bb == bb))
233230 then true
234231 else throw("Strict value is not equal to itself.")
235232 }
236233 }
237234
238235
239-@Callable(aY)
236+@Callable(aW)
240237 func constructor (K) = {
241- let bd = aX(aY)
242- if ((bd == bd))
238+ let bb = aV(aW)
239+ if ((bb == bb))
243240 then [StringEntry(m(), K)]
244241 else throw("Strict value is not equal to itself.")
245242 }
246243
247244
248245
249-@Callable(aY)
250-func adminRegisterAsset (j,be,bf,bg,bh,bi,bj) = {
251- let aM = fromBase58String(j)
252- let bk = value(assetInfo(aM)).decimals
253- let bl = aX(aY)
254- if ((bl == bl))
255- then if ((toString(addressFromStringValue(bi)) != bi))
246+@Callable(aW)
247+func adminRegisterAsset (j,bc,bd,be,bf,bg,bh) = {
248+ let aL = fromBase58String(j)
249+ let bi = value(assetInfo(aL)).decimals
250+ let bj = aV(aW)
251+ if ((bj == bj))
252+ then if ((toString(addressFromStringValue(bg)) != bg))
256253 then throw("invalid shutdownManagerAddress")
257- else if ((0 > bh))
258- then throw(("invalid getDelayinBlocks=" + toString(bh)))
254+ else if ((0 > bf))
255+ then throw(("invalid getDelayinBlocks=" + toString(bf)))
259256 else {
260- let bm = Issue(be, bf, 1, bk, true)
261- let aO = calculateAssetId(bm)
262- let G = toBase58String(aO)
257+ let bk = Issue(bc, bd, 1, bi, true)
258+ let aN = calculateAssetId(bk)
259+ let G = toBase58String(aN)
263260 let S = ((100 * 1000) * 1000)
264- let R = pow(10, 0, bk, 0, 0, DOWN)
265- let bn = (1 * S)
266- let bo = valueOrElse(getInteger(this, r()), 0)
267- let B = toString(bo)
268- let bp = invoke(K(), "createOrUpdate", [G, bg, false], nil)
269- if ((bp == bp))
261+ let R = pow(10, 0, bi, 0, 0, DOWN)
262+ let bl = (1 * S)
263+ let bm = valueOrElse(getInteger(this, r()), 0)
264+ let B = toString(bm)
265+ let bn = invoke(K(), "createOrUpdate", [G, be, false], nil)
266+ if ((bn == bn))
270267 then {
271- let bq = invoke(K(), "addLabel", [G, "DEFI"], nil)
272- if ((bq == bq))
273- then [StringEntry(n(j), Q(G, B, R, S, bh)), StringEntry(C(bo), j), StringEntry(E(j), B), StringEntry(F(G), j), StringEntry(H(j), G), BooleanEntry(I(B), false), StringEntry(J(B), bi), IntegerEntry(r(), (bo + 1)), IntegerEntry(s(B), bn), IntegerEntry(w(B, height, lastBlock.timestamp), bn), bm, Burn(aO, 1), StringEntry(o(j), bj)]
268+ let bo = invoke(K(), "addLabel", [G, "DEFI"], nil)
269+ if ((bo == bo))
270+ then [StringEntry(n(j), Q(G, B, R, S, bf)), StringEntry(C(bm), j), StringEntry(E(j), B), StringEntry(F(G), j), StringEntry(H(j), G), BooleanEntry(I(B), false), StringEntry(J(B), bg), IntegerEntry(r(), (bm + 1)), IntegerEntry(s(B), bl), IntegerEntry(w(B, height, lastBlock.timestamp), bl), bk, Burn(aN, 1), StringEntry(o(j), bh)]
274271 else throw("Strict value is not equal to itself.")
275272 }
276273 else throw("Strict value is not equal to itself.")
280277
281278
282279
283-@Callable(aY)
284-func shutdownPut (br) = {
285- let bs = toString(br)
286- let bt = c(C(br))
287- let bi = c(J(bs))
288- if ((1 > size(bt)))
280+@Callable(aW)
281+func shutdownPut (bp) = {
282+ let bq = toString(bp)
283+ let br = c(C(bp))
284+ let bg = c(J(bq))
285+ if ((1 > size(br)))
289286 then throw("invalid internalBaseAssetId")
290- else if ((toString(aY.caller) != bi))
287+ else if ((toString(aW.caller) != bg))
291288 then throw("access denied")
292- else [BooleanEntry(I(toString(br)), true)]
289+ else [BooleanEntry(I(toString(bp)), true)]
293290 }
294291
295292
296293
297-@Callable(aY)
294+@Callable(aW)
298295 func put () = {
299- let bu = value(aY.payments[0])
300- let aM = value(bu.assetId)
301- let j = toBase58String(aM)
302- let k = toString(aY.caller)
303- let aV = aB(j)
304- let G = aV[L]
305- let aO = fromBase58String(G)
306- let R = parseIntValue(aV[N])
307- let S = parseIntValue(aV[O])
308- let B = aV[M]
309- let bv = e(I(B))
310- if (bv)
296+ let bs = value(aW.payments[0])
297+ let aL = value(bs.assetId)
298+ let j = toBase58String(aL)
299+ let k = toString(aW.caller)
300+ let aT = aB(j)
301+ let G = aT[L]
302+ let aN = fromBase58String(G)
303+ let R = parseIntValue(aT[N])
304+ let S = parseIntValue(aT[O])
305+ let B = aT[M]
306+ let bt = e(I(B))
307+ if (bt)
311308 then throw("put operation is blocked")
312309 else {
313- let aL = (aJ(j) + bu.amount)
314- let aq = aT(aL, B, aM, aO, R, S)._1
315- let X = fraction(bu.amount, S, aq)
316-[Reissue(aO, X, true), ScriptTransfer(aY.caller, X, aO), StringEntry(ab("P", B, k, toBase58String(aY.transactionId)), aw("FINISHED", bu.amount, aq, X, height, lastBlock.timestamp, height, lastBlock.timestamp)), ScriptTransfer(addressFromStringValue(value(getString(o(j)))), bu.amount, aM), IntegerEntry(q(j), aL)]
310+ let bu = (aJ(j) + bs.amount)
311+ let aq = aK(B, aL, bs.amount, aN, R, S)._1
312+ let X = fraction(bs.amount, S, aq)
313+[Reissue(aN, X, true), ScriptTransfer(aW.caller, X, aN), StringEntry(ab("P", B, k, toBase58String(aW.transactionId)), aw("FINISHED", bs.amount, aq, X, height, lastBlock.timestamp, height, lastBlock.timestamp)), ScriptTransfer(addressFromStringValue(value(getString(o(j)))), bs.amount, aL), IntegerEntry(q(j), bu)]
317314 }
318315 }
319316
320317
321318
322-@Callable(aY)
319+@Callable(aW)
323320 func submitGetRequest () = {
324- let bu = value(aY.payments[0])
325- let aO = value(bu.assetId)
326- let G = toBase58String(aO)
327- let bw = toBase58String(aY.callerPublicKey)
328- let ad = aY.caller
321+ let bs = value(aW.payments[0])
322+ let aN = value(bs.assetId)
323+ let G = toBase58String(aN)
324+ let bv = toBase58String(aW.callerPublicKey)
325+ let ad = aW.caller
329326 let k = toString(ad)
330- let X = bu.amount
327+ let X = bs.amount
331328 let j = c(F(G))
332- let aM = fromBase58String(j)
333- let aV = aB(j)
334- let R = parseIntValue(aV[N])
335- let S = parseIntValue(aV[O])
336- let bx = parseIntValue(aV[P])
337- let B = aV[M]
338- let aq = aT(aJ(j), B, aM, aO, R, S)._1
329+ let aL = fromBase58String(j)
330+ let aT = aB(j)
331+ let R = parseIntValue(aT[N])
332+ let S = parseIntValue(aT[O])
333+ let bw = parseIntValue(aT[P])
334+ let B = aT[M]
335+ let aq = aK(B, aL, 0, aN, R, S)._1
339336 let Y = fraction(X, aq, S)
340- let by = ab("G", B, k, toBase58String(aY.transactionId))
341- let bz = aw("PENDING", X, aq, Y, height, lastBlock.timestamp, (height + bx), 0)
342- let aL = aJ(j)
343-[Burn(aO, X), StringEntry(by, bz), aC(z(B), X, Y), aC(A(B, k), X, Y)]
337+ let bx = ab("G", B, k, toBase58String(aW.transactionId))
338+ let by = aw("PENDING", X, aq, Y, height, lastBlock.timestamp, (height + bw), 0)
339+[Burn(aN, X), StringEntry(bx, by), aC(z(B), X, Y), aC(A(B, k), X, Y)]
344340 }
345341
346342
347343
348-@Callable(aY)
344+@Callable(aW)
349345 func executeGetRequest (j,k,l) = {
350346 let ad = addressFromStringValue(k)
351- let bA = aB(j)
352- let aO = fromBase58String(bA[L])
353- let aM = fromBase58String(j)
354- let B = bA[M]
355- let by = ab("G", B, k, l)
356- let bB = split(c(by), a)
357- let ao = bB[af]
358- let au = parseIntValue(bB[al])
359- let bC = parseIntValue(bB[ag])
360- let bD = parseIntValue(bB[ai])
347+ let bz = aB(j)
348+ let aN = fromBase58String(bz[L])
349+ let aL = fromBase58String(j)
350+ let B = bz[M]
351+ let bx = ab("G", B, k, l)
352+ let bA = split(c(bx), a)
353+ let ao = bA[af]
354+ let au = parseIntValue(bA[al])
355+ let bB = parseIntValue(bA[ag])
356+ let bC = parseIntValue(bA[ai])
361357 if ((ao != "PENDING"))
362358 then h("Status is not PENDING", j, k, l)
363359 else if ((au > height))
364360 then h(((("EndHeight[" + toString(au)) + "] > ") + toString(height)), j, k, l)
365- else [ScriptTransfer(ad, bD, aM), StringEntry(by, ax(bB, "FINISHED", lastBlock.timestamp)), aE(z(B), bC, bD), aE(A(B, k), bC, bD), IntegerEntry(q(j), (aJ(j) - bD))]
361+ else [ScriptTransfer(ad, bC, aL), StringEntry(bx, ax(bA, "FINISHED", lastBlock.timestamp)), aE(z(B), bB, bC), aE(A(B, k), bB, bC), IntegerEntry(q(j), (aJ(j) - bC))]
366362 }
367363
368364
369365
370-@Callable(aY)
371-func topUpBalance (j,bE) = {
372- let bA = aB(j)
373- let bu = value(aY.payments[0])
374- let bF = value(bu.assetId)
375- let bG = toBase58String(bF)
376- let aO = fromBase58String(bA[L])
377- let R = parseIntValue(bA[N])
378- let S = parseIntValue(bA[O])
379- let B = bA[M]
380- let bH = u(B, toString(aY.caller))
381- let bI = valueOrElse(getInteger(this, bH), 0)
382- let bJ = [bb(aY, j), if ((bI != height))
366+@Callable(aW)
367+func topUpBalance (j,bD) = {
368+ let bz = aB(j)
369+ let bs = value(aW.payments[0])
370+ let bE = value(bs.assetId)
371+ let bF = toBase58String(bE)
372+ let aN = fromBase58String(bz[L])
373+ let R = parseIntValue(bz[N])
374+ let S = parseIntValue(bz[O])
375+ let B = bz[M]
376+ let bG = u(B, toString(aW.caller))
377+ let bH = valueOrElse(getInteger(this, bG), 0)
378+ let bI = [aZ(aW, j), if ((bH != height))
383379 then true
384380 else throw("only one topUp per block is allowed")]
385- if ((bJ == bJ))
386- then if ((j != bG))
381+ if ((bI == bI))
382+ then if ((j != bF))
387383 then throw("attached payment's asset id is NOT matched passed baseAssetStr")
388- else if ((size(aY.payments) > 1))
384+ else if ((size(aW.payments) > 1))
389385 then throw("only one payment can be attached")
390386 else {
391- let bK = (aJ(bG) + bE)
392- let aq = aK(bK, B, bF, bE, aO, R, S)._1
393-[IntegerEntry(s(B), aq), IntegerEntry(w(B, height, lastBlock.timestamp), aq), IntegerEntry(bH, height), IntegerEntry(q(bG), bK)]
387+ let aq = aK(B, bE, bD, aN, R, S)._1
388+[IntegerEntry(s(B), aq), IntegerEntry(w(B, height, lastBlock.timestamp), aq), IntegerEntry(bG, height), IntegerEntry(q(bF), (aJ(bF) + bD))]
394389 }
395390 else throw("Strict value is not equal to itself.")
396391 }
397392
398393
399394
400-@Callable(aY)
395+@Callable(aW)
401396 func currentSysParamsREST (j) = {
402- let bL = aU(j)
403- let aq = bL._1.value
404- let S = bL._2.value
405- let aQ = bL._3.value
406- let aP = bL._4.value
407- let aR = bL._5.value
408- let aS = bL._6.value
409- let bM = makeString(["startCurrentSysParamsREST", toString(aq), toString(S), toString(aQ), toString(aP), toString(aR), toString(aS), "endCurrentSysParamsREST"], a)
410- throw(bM)
397+ let bJ = aS(j)
398+ let aq = bJ._1.value
399+ let S = bJ._2.value
400+ let aP = bJ._3.value
401+ let aO = bJ._4.value
402+ let aQ = bJ._5.value
403+ let aR = bJ._6.value
404+ let bK = makeString(["startCurrentSysParamsREST", toString(aq), toString(S), toString(aP), toString(aO), toString(aQ), toString(aR), "endCurrentSysParamsREST"], a)
405+ throw(bK)
411406 }
412407
413408
414409
415-@Callable(aY)
416-func setManager (bN) = {
417- let bd = aX(aY)
418- if ((bd == bd))
410+@Callable(aW)
411+func setManager (bL) = {
412+ let bb = aV(aW)
413+ if ((bb == bb))
419414 then {
420- let bO = fromBase58String(bN)
421- if ((bO == bO))
422- then [StringEntry(g(), bN)]
415+ let bM = fromBase58String(bL)
416+ if ((bM == bM))
417+ then [StringEntry(g(), bL)]
423418 else throw("Strict value is not equal to itself.")
424419 }
425420 else throw("Strict value is not equal to itself.")
427422
428423
429424
430-@Callable(aY)
425+@Callable(aW)
431426 func confirmManager () = {
432- let bP = aI()
433- let bQ = if (isDefined(bP))
427+ let bN = aI()
428+ let bO = if (isDefined(bN))
434429 then true
435430 else throw("no pending manager")
436- if ((bQ == bQ))
431+ if ((bO == bO))
437432 then {
438- let bR = if ((aY.callerPublicKey == value(bP)))
433+ let bP = if ((aW.callerPublicKey == value(bN)))
439434 then true
440435 else throw("you are not pending manager")
441- if ((bR == bR))
442- then [StringEntry(f(), toBase58String(value(bP))), DeleteEntry(g())]
436+ if ((bP == bP))
437+ then [StringEntry(f(), toBase58String(value(bN))), DeleteEntry(g())]
443438 else throw("Strict value is not equal to itself.")
444439 }
445440 else throw("Strict value is not equal to itself.")
446441 }
447442
448443
449-@Verifier(bS)
450-func bT () = {
451- let bU = {
444+@Verifier(bQ)
445+func bR () = {
446+ let bS = {
452447 let aG = aF()
453448 if ($isInstanceOf(aG, "ByteVector"))
454449 then {
455- let ba = aG
456- ba
450+ let aY = aG
451+ aY
457452 }
458453 else if ($isInstanceOf(aG, "Unit"))
459- then bS.senderPublicKey
454+ then bQ.senderPublicKey
460455 else throw("Match error")
461456 }
462- sigVerify(bS.bodyBytes, bS.proofs[0], bU)
457+ sigVerify(bQ.bodyBytes, bQ.proofs[0], bS)
463458 }
464459
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = ""
77
88 func c (d) = valueOrErrorMessage(getString(this, d), ("No data for this.key=" + d))
99
1010
1111 func e (d) = valueOrErrorMessage(getBoolean(this, d), ("No data for this.key=" + d))
1212
1313
1414 func f () = makeString(["%s", "managerPublicKey"], a)
1515
1616
1717 func g () = makeString(["%s", "pendingManagerPublicKey"], a)
1818
1919
2020 func h (i,j,k,l) = throw(((((((i + ": baseAssetStr=") + j) + " userAddressStr=") + k) + " getTxIdStr=") + l))
2121
2222
2323 func m () = makeString(["%s", "assetsStoreContract"], a)
2424
2525
2626 func n (j) = ("%s%s%s__config__asset__" + j)
2727
2828
2929 func o (p) = makeString(["%s%s", "proxyAddress", p], a)
3030
3131
3232 func q (p) = makeString(["%s%s", "balance", p], a)
3333
3434
3535 func r () = "%s__nextInternalAssetId"
3636
3737
3838 func s (t) = ("%s%s%d__price__last__" + t)
3939
4040
4141 func u (t,v) = makeString(["%s%s%s%d%s__topup__last__height", t, v], a)
4242
4343
4444 func w (t,x,y) = makeString(["%s%s%d%d%d__price__history", t, toString(x), toString(y)], a)
4545
4646
4747 func z (t) = ("%s%s%d__total__locked__" + t)
4848
4949
5050 func A (B,k) = makeString(["%s%s%d%s__total__locked", B, k], a)
5151
5252
5353 func C (D) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(D))
5454
5555
5656 func E (j) = ("%s%s%s__mappings__baseAsset2internalId__" + j)
5757
5858
5959 func F (G) = ("%s%s%s__mappings__share2baseAssetId__" + G)
6060
6161
6262 func H (j) = ("%s%s%s__mappings__baseAsset2shareId__" + j)
6363
6464
6565 func I (B) = ("%s%s%d__shutdown__put__" + B)
6666
6767
6868 func J (B) = ("%s%s%d__shutdown__manager__" + B)
6969
7070
7171 func K () = addressFromStringValue(value(getString(m())))
7272
7373
7474 let L = 1
7575
7676 let M = 2
7777
7878 let N = 3
7979
8080 let O = 4
8181
8282 let P = 5
8383
8484 func Q (G,B,R,S,T) = makeString(["%s%d%d%d%d", G, B, toString(R), toString(S), toString(T)], a)
8585
8686
8787 let U = 1
8888
8989 let V = 2
9090
9191 func W (X,Y) = makeString(["%d%d", toString(X), toString(Y)], a)
9292
9393
9494 func Z (d) = {
9595 let aa = split(valueOrElse(getString(this, d), W(0, 0)), a)
9696 [-1, parseIntValue(aa[U]), parseIntValue(aa[V])]
9797 }
9898
9999
100100 func ab (ac,B,ad,ae) = makeString(["%s%d%s%s", ac, B, ad, ae], a)
101101
102102
103103 let af = 1
104104
105105 let ag = 2
106106
107107 let ah = 3
108108
109109 let ai = 4
110110
111111 let aj = 5
112112
113113 let ak = 6
114114
115115 let al = 7
116116
117117 let am = 8
118118
119119 func an (ao,ap,aq,ar,as,at,au,av) = makeString(["%s%d%d%d%d%d%d%d", ao, ap, aq, ar, as, at, au, av], a)
120120
121121
122122 func aw (ao,ap,aq,ar,as,at,au,av) = an(ao, toString(ap), toString(aq), toString(ar), toString(as), toString(at), toString(au), toString(av))
123123
124124
125125 func ax (ay,az,aA) = an(az, ay[ag], ay[ah], ay[ai], ay[aj], ay[ak], ay[al], toString(aA))
126126
127127
128128 func aB (j) = {
129129 let d = n(j)
130130 split(c(d), a)
131131 }
132132
133133
134134 func aC (d,X,Y) = {
135135 let aD = Z(d)
136136 StringEntry(d, W((aD[U] + X), (aD[V] + Y)))
137137 }
138138
139139
140140 func aE (d,X,Y) = {
141141 let aD = Z(d)
142142 StringEntry(d, W((aD[U] - X), (aD[V] - Y)))
143143 }
144144
145145
146146 func aF () = {
147147 let aG = getString(f())
148148 if ($isInstanceOf(aG, "String"))
149149 then {
150150 let aH = aG
151151 fromBase58String(aH)
152152 }
153153 else if ($isInstanceOf(aG, "Unit"))
154154 then unit
155155 else throw("Match error")
156156 }
157157
158158
159159 func aI () = {
160160 let aG = getString(g())
161161 if ($isInstanceOf(aG, "String"))
162162 then {
163163 let aH = aG
164164 fromBase58String(aH)
165165 }
166166 else if ($isInstanceOf(aG, "Unit"))
167167 then unit
168168 else throw("Match error")
169169 }
170170
171171
172172 func aJ (p) = valueOrElse(getInteger(q(p)), 0)
173173
174174
175-func aK (aL,B,aM,aN,aO,R,S) = {
175+func aK (B,aL,aM,aN,R,S) = {
176176 let aa = Z(z(B))
177- let aP = aa[V]
178- let aQ = aL
179- let aR = ((aQ - aP) + aN)
180- if ((0 > aR))
181- then throw(((("baseAssetBalanceConsideringLock < 0: baseAssetBalance=" + toString(aQ)) + " baseAssetBalanceConsideringLock=") + toString(aR)))
177+ let aO = aa[V]
178+ let aP = aJ(toBase58String(aL))
179+ let aQ = ((aP - aO) + aM)
180+ if ((0 > aQ))
181+ then throw(((("baseAssetBalanceConsideringLock < 0: baseAssetBalance=" + toString(aP)) + " baseAssetBalanceConsideringLock=") + toString(aQ)))
182182 else {
183- let aS = value(assetInfo(aO)).quantity
184- let aq = if ((aS == 0))
183+ let aR = value(assetInfo(aN)).quantity
184+ let aq = if ((aR == 0))
185185 then (1 * S)
186- else fraction(aR, S, aS)
187- $Tuple5(aq, aQ, aP, aR, aS)
186+ else fraction(aQ, S, aR)
187+ $Tuple5(aq, aP, aO, aQ, aR)
188188 }
189189 }
190190
191191
192-func aT (aL,B,aM,aO,R,S) = aK(aL, B, aM, 0, aO, R, S)
193-
194-
195-func aU (j) = {
196- let aM = fromBase58String(j)
197- let aV = aB(j)
198- let G = aV[L]
199- let aO = fromBase58String(G)
200- let R = parseIntValue(aV[N])
201- let S = parseIntValue(aV[O])
202- let B = aV[M]
203- let aW = aT(aJ(j), B, aM, aO, R, S)
204- $Tuple6(IntegerEntry("price", aW._1), IntegerEntry("decimalsMultPrice", S), IntegerEntry("baseAssetBalance", aW._2), IntegerEntry("totalLockedBaseAmount", aW._3), IntegerEntry("baseAssetBalanceConsideringLock", aW._4), IntegerEntry("shareEmission", aW._5))
192+func aS (j) = {
193+ let aL = fromBase58String(j)
194+ let aT = aB(j)
195+ let G = aT[L]
196+ let aN = fromBase58String(G)
197+ let R = parseIntValue(aT[N])
198+ let S = parseIntValue(aT[O])
199+ let B = aT[M]
200+ let aU = aK(B, aL, 0, aN, R, S)
201+ $Tuple6(IntegerEntry("price", aU._1), IntegerEntry("decimalsMultPrice", S), IntegerEntry("baseAssetBalance", aU._2), IntegerEntry("totalLockedBaseAmount", aU._3), IntegerEntry("baseAssetBalanceConsideringLock", aU._4), IntegerEntry("shareEmission", aU._5))
205202 }
206203
207204
208-func aX (aY) = {
209- let aZ = throw("permission denied")
205+func aV (aW) = {
206+ let aX = throw("permission denied")
210207 let aG = aF()
211208 if ($isInstanceOf(aG, "ByteVector"))
212209 then {
213- let ba = aG
214- if ((aY.callerPublicKey == ba))
210+ let aY = aG
211+ if ((aW.callerPublicKey == aY))
215212 then true
216- else aZ
213+ else aX
217214 }
218215 else if ($isInstanceOf(aG, "Unit"))
219- then if ((aY.caller == this))
216+ then if ((aW.caller == this))
220217 then true
221- else aZ
218+ else aX
222219 else throw("Match error")
223220 }
224221
225222
226-func bb (aY,p) = {
227- let bc = (toString(aY.caller) == valueOrElse(getString(o(p)), b))
228- if (bc)
223+func aZ (aW,p) = {
224+ let ba = (toString(aW.caller) == valueOrElse(getString(o(p)), b))
225+ if (ba)
229226 then true
230227 else {
231- let bd = aX(aY)
232- if ((bd == bd))
228+ let bb = aV(aW)
229+ if ((bb == bb))
233230 then true
234231 else throw("Strict value is not equal to itself.")
235232 }
236233 }
237234
238235
239-@Callable(aY)
236+@Callable(aW)
240237 func constructor (K) = {
241- let bd = aX(aY)
242- if ((bd == bd))
238+ let bb = aV(aW)
239+ if ((bb == bb))
243240 then [StringEntry(m(), K)]
244241 else throw("Strict value is not equal to itself.")
245242 }
246243
247244
248245
249-@Callable(aY)
250-func adminRegisterAsset (j,be,bf,bg,bh,bi,bj) = {
251- let aM = fromBase58String(j)
252- let bk = value(assetInfo(aM)).decimals
253- let bl = aX(aY)
254- if ((bl == bl))
255- then if ((toString(addressFromStringValue(bi)) != bi))
246+@Callable(aW)
247+func adminRegisterAsset (j,bc,bd,be,bf,bg,bh) = {
248+ let aL = fromBase58String(j)
249+ let bi = value(assetInfo(aL)).decimals
250+ let bj = aV(aW)
251+ if ((bj == bj))
252+ then if ((toString(addressFromStringValue(bg)) != bg))
256253 then throw("invalid shutdownManagerAddress")
257- else if ((0 > bh))
258- then throw(("invalid getDelayinBlocks=" + toString(bh)))
254+ else if ((0 > bf))
255+ then throw(("invalid getDelayinBlocks=" + toString(bf)))
259256 else {
260- let bm = Issue(be, bf, 1, bk, true)
261- let aO = calculateAssetId(bm)
262- let G = toBase58String(aO)
257+ let bk = Issue(bc, bd, 1, bi, true)
258+ let aN = calculateAssetId(bk)
259+ let G = toBase58String(aN)
263260 let S = ((100 * 1000) * 1000)
264- let R = pow(10, 0, bk, 0, 0, DOWN)
265- let bn = (1 * S)
266- let bo = valueOrElse(getInteger(this, r()), 0)
267- let B = toString(bo)
268- let bp = invoke(K(), "createOrUpdate", [G, bg, false], nil)
269- if ((bp == bp))
261+ let R = pow(10, 0, bi, 0, 0, DOWN)
262+ let bl = (1 * S)
263+ let bm = valueOrElse(getInteger(this, r()), 0)
264+ let B = toString(bm)
265+ let bn = invoke(K(), "createOrUpdate", [G, be, false], nil)
266+ if ((bn == bn))
270267 then {
271- let bq = invoke(K(), "addLabel", [G, "DEFI"], nil)
272- if ((bq == bq))
273- then [StringEntry(n(j), Q(G, B, R, S, bh)), StringEntry(C(bo), j), StringEntry(E(j), B), StringEntry(F(G), j), StringEntry(H(j), G), BooleanEntry(I(B), false), StringEntry(J(B), bi), IntegerEntry(r(), (bo + 1)), IntegerEntry(s(B), bn), IntegerEntry(w(B, height, lastBlock.timestamp), bn), bm, Burn(aO, 1), StringEntry(o(j), bj)]
268+ let bo = invoke(K(), "addLabel", [G, "DEFI"], nil)
269+ if ((bo == bo))
270+ then [StringEntry(n(j), Q(G, B, R, S, bf)), StringEntry(C(bm), j), StringEntry(E(j), B), StringEntry(F(G), j), StringEntry(H(j), G), BooleanEntry(I(B), false), StringEntry(J(B), bg), IntegerEntry(r(), (bm + 1)), IntegerEntry(s(B), bl), IntegerEntry(w(B, height, lastBlock.timestamp), bl), bk, Burn(aN, 1), StringEntry(o(j), bh)]
274271 else throw("Strict value is not equal to itself.")
275272 }
276273 else throw("Strict value is not equal to itself.")
277274 }
278275 else throw("Strict value is not equal to itself.")
279276 }
280277
281278
282279
283-@Callable(aY)
284-func shutdownPut (br) = {
285- let bs = toString(br)
286- let bt = c(C(br))
287- let bi = c(J(bs))
288- if ((1 > size(bt)))
280+@Callable(aW)
281+func shutdownPut (bp) = {
282+ let bq = toString(bp)
283+ let br = c(C(bp))
284+ let bg = c(J(bq))
285+ if ((1 > size(br)))
289286 then throw("invalid internalBaseAssetId")
290- else if ((toString(aY.caller) != bi))
287+ else if ((toString(aW.caller) != bg))
291288 then throw("access denied")
292- else [BooleanEntry(I(toString(br)), true)]
289+ else [BooleanEntry(I(toString(bp)), true)]
293290 }
294291
295292
296293
297-@Callable(aY)
294+@Callable(aW)
298295 func put () = {
299- let bu = value(aY.payments[0])
300- let aM = value(bu.assetId)
301- let j = toBase58String(aM)
302- let k = toString(aY.caller)
303- let aV = aB(j)
304- let G = aV[L]
305- let aO = fromBase58String(G)
306- let R = parseIntValue(aV[N])
307- let S = parseIntValue(aV[O])
308- let B = aV[M]
309- let bv = e(I(B))
310- if (bv)
296+ let bs = value(aW.payments[0])
297+ let aL = value(bs.assetId)
298+ let j = toBase58String(aL)
299+ let k = toString(aW.caller)
300+ let aT = aB(j)
301+ let G = aT[L]
302+ let aN = fromBase58String(G)
303+ let R = parseIntValue(aT[N])
304+ let S = parseIntValue(aT[O])
305+ let B = aT[M]
306+ let bt = e(I(B))
307+ if (bt)
311308 then throw("put operation is blocked")
312309 else {
313- let aL = (aJ(j) + bu.amount)
314- let aq = aT(aL, B, aM, aO, R, S)._1
315- let X = fraction(bu.amount, S, aq)
316-[Reissue(aO, X, true), ScriptTransfer(aY.caller, X, aO), StringEntry(ab("P", B, k, toBase58String(aY.transactionId)), aw("FINISHED", bu.amount, aq, X, height, lastBlock.timestamp, height, lastBlock.timestamp)), ScriptTransfer(addressFromStringValue(value(getString(o(j)))), bu.amount, aM), IntegerEntry(q(j), aL)]
310+ let bu = (aJ(j) + bs.amount)
311+ let aq = aK(B, aL, bs.amount, aN, R, S)._1
312+ let X = fraction(bs.amount, S, aq)
313+[Reissue(aN, X, true), ScriptTransfer(aW.caller, X, aN), StringEntry(ab("P", B, k, toBase58String(aW.transactionId)), aw("FINISHED", bs.amount, aq, X, height, lastBlock.timestamp, height, lastBlock.timestamp)), ScriptTransfer(addressFromStringValue(value(getString(o(j)))), bs.amount, aL), IntegerEntry(q(j), bu)]
317314 }
318315 }
319316
320317
321318
322-@Callable(aY)
319+@Callable(aW)
323320 func submitGetRequest () = {
324- let bu = value(aY.payments[0])
325- let aO = value(bu.assetId)
326- let G = toBase58String(aO)
327- let bw = toBase58String(aY.callerPublicKey)
328- let ad = aY.caller
321+ let bs = value(aW.payments[0])
322+ let aN = value(bs.assetId)
323+ let G = toBase58String(aN)
324+ let bv = toBase58String(aW.callerPublicKey)
325+ let ad = aW.caller
329326 let k = toString(ad)
330- let X = bu.amount
327+ let X = bs.amount
331328 let j = c(F(G))
332- let aM = fromBase58String(j)
333- let aV = aB(j)
334- let R = parseIntValue(aV[N])
335- let S = parseIntValue(aV[O])
336- let bx = parseIntValue(aV[P])
337- let B = aV[M]
338- let aq = aT(aJ(j), B, aM, aO, R, S)._1
329+ let aL = fromBase58String(j)
330+ let aT = aB(j)
331+ let R = parseIntValue(aT[N])
332+ let S = parseIntValue(aT[O])
333+ let bw = parseIntValue(aT[P])
334+ let B = aT[M]
335+ let aq = aK(B, aL, 0, aN, R, S)._1
339336 let Y = fraction(X, aq, S)
340- let by = ab("G", B, k, toBase58String(aY.transactionId))
341- let bz = aw("PENDING", X, aq, Y, height, lastBlock.timestamp, (height + bx), 0)
342- let aL = aJ(j)
343-[Burn(aO, X), StringEntry(by, bz), aC(z(B), X, Y), aC(A(B, k), X, Y)]
337+ let bx = ab("G", B, k, toBase58String(aW.transactionId))
338+ let by = aw("PENDING", X, aq, Y, height, lastBlock.timestamp, (height + bw), 0)
339+[Burn(aN, X), StringEntry(bx, by), aC(z(B), X, Y), aC(A(B, k), X, Y)]
344340 }
345341
346342
347343
348-@Callable(aY)
344+@Callable(aW)
349345 func executeGetRequest (j,k,l) = {
350346 let ad = addressFromStringValue(k)
351- let bA = aB(j)
352- let aO = fromBase58String(bA[L])
353- let aM = fromBase58String(j)
354- let B = bA[M]
355- let by = ab("G", B, k, l)
356- let bB = split(c(by), a)
357- let ao = bB[af]
358- let au = parseIntValue(bB[al])
359- let bC = parseIntValue(bB[ag])
360- let bD = parseIntValue(bB[ai])
347+ let bz = aB(j)
348+ let aN = fromBase58String(bz[L])
349+ let aL = fromBase58String(j)
350+ let B = bz[M]
351+ let bx = ab("G", B, k, l)
352+ let bA = split(c(bx), a)
353+ let ao = bA[af]
354+ let au = parseIntValue(bA[al])
355+ let bB = parseIntValue(bA[ag])
356+ let bC = parseIntValue(bA[ai])
361357 if ((ao != "PENDING"))
362358 then h("Status is not PENDING", j, k, l)
363359 else if ((au > height))
364360 then h(((("EndHeight[" + toString(au)) + "] > ") + toString(height)), j, k, l)
365- else [ScriptTransfer(ad, bD, aM), StringEntry(by, ax(bB, "FINISHED", lastBlock.timestamp)), aE(z(B), bC, bD), aE(A(B, k), bC, bD), IntegerEntry(q(j), (aJ(j) - bD))]
361+ else [ScriptTransfer(ad, bC, aL), StringEntry(bx, ax(bA, "FINISHED", lastBlock.timestamp)), aE(z(B), bB, bC), aE(A(B, k), bB, bC), IntegerEntry(q(j), (aJ(j) - bC))]
366362 }
367363
368364
369365
370-@Callable(aY)
371-func topUpBalance (j,bE) = {
372- let bA = aB(j)
373- let bu = value(aY.payments[0])
374- let bF = value(bu.assetId)
375- let bG = toBase58String(bF)
376- let aO = fromBase58String(bA[L])
377- let R = parseIntValue(bA[N])
378- let S = parseIntValue(bA[O])
379- let B = bA[M]
380- let bH = u(B, toString(aY.caller))
381- let bI = valueOrElse(getInteger(this, bH), 0)
382- let bJ = [bb(aY, j), if ((bI != height))
366+@Callable(aW)
367+func topUpBalance (j,bD) = {
368+ let bz = aB(j)
369+ let bs = value(aW.payments[0])
370+ let bE = value(bs.assetId)
371+ let bF = toBase58String(bE)
372+ let aN = fromBase58String(bz[L])
373+ let R = parseIntValue(bz[N])
374+ let S = parseIntValue(bz[O])
375+ let B = bz[M]
376+ let bG = u(B, toString(aW.caller))
377+ let bH = valueOrElse(getInteger(this, bG), 0)
378+ let bI = [aZ(aW, j), if ((bH != height))
383379 then true
384380 else throw("only one topUp per block is allowed")]
385- if ((bJ == bJ))
386- then if ((j != bG))
381+ if ((bI == bI))
382+ then if ((j != bF))
387383 then throw("attached payment's asset id is NOT matched passed baseAssetStr")
388- else if ((size(aY.payments) > 1))
384+ else if ((size(aW.payments) > 1))
389385 then throw("only one payment can be attached")
390386 else {
391- let bK = (aJ(bG) + bE)
392- let aq = aK(bK, B, bF, bE, aO, R, S)._1
393-[IntegerEntry(s(B), aq), IntegerEntry(w(B, height, lastBlock.timestamp), aq), IntegerEntry(bH, height), IntegerEntry(q(bG), bK)]
387+ let aq = aK(B, bE, bD, aN, R, S)._1
388+[IntegerEntry(s(B), aq), IntegerEntry(w(B, height, lastBlock.timestamp), aq), IntegerEntry(bG, height), IntegerEntry(q(bF), (aJ(bF) + bD))]
394389 }
395390 else throw("Strict value is not equal to itself.")
396391 }
397392
398393
399394
400-@Callable(aY)
395+@Callable(aW)
401396 func currentSysParamsREST (j) = {
402- let bL = aU(j)
403- let aq = bL._1.value
404- let S = bL._2.value
405- let aQ = bL._3.value
406- let aP = bL._4.value
407- let aR = bL._5.value
408- let aS = bL._6.value
409- let bM = makeString(["startCurrentSysParamsREST", toString(aq), toString(S), toString(aQ), toString(aP), toString(aR), toString(aS), "endCurrentSysParamsREST"], a)
410- throw(bM)
397+ let bJ = aS(j)
398+ let aq = bJ._1.value
399+ let S = bJ._2.value
400+ let aP = bJ._3.value
401+ let aO = bJ._4.value
402+ let aQ = bJ._5.value
403+ let aR = bJ._6.value
404+ let bK = makeString(["startCurrentSysParamsREST", toString(aq), toString(S), toString(aP), toString(aO), toString(aQ), toString(aR), "endCurrentSysParamsREST"], a)
405+ throw(bK)
411406 }
412407
413408
414409
415-@Callable(aY)
416-func setManager (bN) = {
417- let bd = aX(aY)
418- if ((bd == bd))
410+@Callable(aW)
411+func setManager (bL) = {
412+ let bb = aV(aW)
413+ if ((bb == bb))
419414 then {
420- let bO = fromBase58String(bN)
421- if ((bO == bO))
422- then [StringEntry(g(), bN)]
415+ let bM = fromBase58String(bL)
416+ if ((bM == bM))
417+ then [StringEntry(g(), bL)]
423418 else throw("Strict value is not equal to itself.")
424419 }
425420 else throw("Strict value is not equal to itself.")
426421 }
427422
428423
429424
430-@Callable(aY)
425+@Callable(aW)
431426 func confirmManager () = {
432- let bP = aI()
433- let bQ = if (isDefined(bP))
427+ let bN = aI()
428+ let bO = if (isDefined(bN))
434429 then true
435430 else throw("no pending manager")
436- if ((bQ == bQ))
431+ if ((bO == bO))
437432 then {
438- let bR = if ((aY.callerPublicKey == value(bP)))
433+ let bP = if ((aW.callerPublicKey == value(bN)))
439434 then true
440435 else throw("you are not pending manager")
441- if ((bR == bR))
442- then [StringEntry(f(), toBase58String(value(bP))), DeleteEntry(g())]
436+ if ((bP == bP))
437+ then [StringEntry(f(), toBase58String(value(bN))), DeleteEntry(g())]
443438 else throw("Strict value is not equal to itself.")
444439 }
445440 else throw("Strict value is not equal to itself.")
446441 }
447442
448443
449-@Verifier(bS)
450-func bT () = {
451- let bU = {
444+@Verifier(bQ)
445+func bR () = {
446+ let bS = {
452447 let aG = aF()
453448 if ($isInstanceOf(aG, "ByteVector"))
454449 then {
455- let ba = aG
456- ba
450+ let aY = aG
451+ aY
457452 }
458453 else if ($isInstanceOf(aG, "Unit"))
459- then bS.senderPublicKey
454+ then bQ.senderPublicKey
460455 else throw("Match error")
461456 }
462- sigVerify(bS.bodyBytes, bS.proofs[0], bU)
457+ sigVerify(bQ.bodyBytes, bQ.proofs[0], bS)
463458 }
464459

github/deemru/w8io/169f3d6 
143.12 ms