UNPKG

@astonic-io/astonic-bindings-ts

Version:

Astonic type generation and npm package deployment repo

1,215 lines 62.7 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.Locking__factory = void 0; /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ var ethers_1 = require("ethers"); var _abi = [ { type: "constructor", inputs: [ { name: "disableInitializers", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "function", name: "L1_EPOCH_SHIFT", inputs: [], outputs: [ { name: "", type: "uint32", internalType: "uint32", }, ], stateMutability: "view", }, { type: "function", name: "L2_WEEK", inputs: [], outputs: [ { name: "", type: "uint32", internalType: "uint32", }, ], stateMutability: "view", }, { type: "function", name: "WEEK", inputs: [], outputs: [ { name: "", type: "uint32", internalType: "uint32", }, ], stateMutability: "view", }, { type: "function", name: "__Locking_init", inputs: [ { name: "_token", type: "address", internalType: "contract IERC20Upgradeable", }, { name: "_startingPointWeek", type: "uint32", internalType: "uint32", }, { name: "_minCliffPeriod", type: "uint32", internalType: "uint32", }, { name: "_minSlopePeriod", type: "uint32", internalType: "uint32", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "astonicLabsMultisig", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "balanceOf", inputs: [ { name: "account", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "counter", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "decimals", inputs: [], outputs: [ { name: "", type: "uint8", internalType: "uint8", }, ], stateMutability: "view", }, { type: "function", name: "delegate", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "pure", }, { type: "function", name: "delegateBySig", inputs: [ { name: "", type: "address", internalType: "address", }, { name: "", type: "uint256", internalType: "uint256", }, { name: "", type: "uint256", internalType: "uint256", }, { name: "", type: "uint8", internalType: "uint8", }, { name: "", type: "bytes32", internalType: "bytes32", }, { name: "", type: "bytes32", internalType: "bytes32", }, ], outputs: [], stateMutability: "pure", }, { type: "function", name: "delegateTo", inputs: [ { name: "id", type: "uint256", internalType: "uint256", }, { name: "newDelegate", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "delegates", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "pure", }, { type: "function", name: "getAccountAndDelegate", inputs: [ { name: "id", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "_account", type: "address", internalType: "address", }, { name: "_delegate", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "getAvailableForWithdraw", inputs: [ { name: "account", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint96", internalType: "uint96", }, ], stateMutability: "view", }, { type: "function", name: "getLock", inputs: [ { name: "amount", type: "uint96", internalType: "uint96", }, { name: "slopePeriod", type: "uint32", internalType: "uint32", }, { name: "cliff", type: "uint32", internalType: "uint32", }, ], outputs: [ { name: "lockAmount", type: "uint96", internalType: "uint96", }, { name: "lockSlope", type: "uint96", internalType: "uint96", }, ], stateMutability: "view", }, { type: "function", name: "getPastTotalSupply", inputs: [ { name: "blockNumber", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getPastVotes", inputs: [ { name: "account", type: "address", internalType: "address", }, { name: "blockNumber", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getVotes", inputs: [ { name: "account", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getWeek", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getWeekNumber", inputs: [ { name: "blockNumber", type: "uint32", internalType: "uint32", }, ], outputs: [ { name: "", type: "uint32", internalType: "uint32", }, ], stateMutability: "view", }, { type: "function", name: "l2EpochShift", inputs: [], outputs: [ { name: "", type: "uint32", internalType: "uint32", }, ], stateMutability: "view", }, { type: "function", name: "l2StartingPointWeek", inputs: [], outputs: [ { name: "", type: "int256", internalType: "int256", }, ], stateMutability: "view", }, { type: "function", name: "l2TransitionBlock", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "lock", inputs: [ { name: "account", type: "address", internalType: "address", }, { name: "_delegate", type: "address", internalType: "address", }, { name: "amount", type: "uint96", internalType: "uint96", }, { name: "slopePeriod", type: "uint32", internalType: "uint32", }, { name: "cliff", type: "uint32", internalType: "uint32", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "nonpayable", }, { type: "function", name: "locked", inputs: [ { name: "account", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "minCliffPeriod", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "minSlopePeriod", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "name", inputs: [], outputs: [ { name: "", type: "string", internalType: "string", }, ], stateMutability: "view", }, { type: "function", name: "owner", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "paused", inputs: [], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "relock", inputs: [ { name: "id", type: "uint256", internalType: "uint256", }, { name: "newDelegate", type: "address", internalType: "address", }, { name: "newAmount", type: "uint96", internalType: "uint96", }, { name: "newSlopePeriod", type: "uint32", internalType: "uint32", }, { name: "newCliff", type: "uint32", internalType: "uint32", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "nonpayable", }, { type: "function", name: "renounceOwnership", inputs: [], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setAstonicLabsMultisig", inputs: [ { name: "astonicLabsMultisig_", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setL2EpochShift", inputs: [ { name: "l2EpochShift_", type: "uint32", internalType: "uint32", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setL2StartingPointWeek", inputs: [ { name: "l2StartingPointWeek_", type: "int256", internalType: "int256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setL2TransitionBlock", inputs: [ { name: "l2TransitionBlock_", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setMinCliffPeriod", inputs: [ { name: "newMinCliffPeriod", type: "uint32", internalType: "uint32", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setMinSlopePeriod", inputs: [ { name: "newMinSlopePeriod", type: "uint32", internalType: "uint32", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setPaused", inputs: [ { name: "paused_", type: "bool", internalType: "bool", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "startingPointWeek", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "symbol", inputs: [], outputs: [ { name: "", type: "string", internalType: "string", }, ], stateMutability: "view", }, { type: "function", name: "token", inputs: [], outputs: [ { name: "", type: "address", internalType: "contract IERC20Upgradeable", }, ], stateMutability: "view", }, { type: "function", name: "totalSupply", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "totalSupplyLine", inputs: [], outputs: [ { name: "initial", type: "tuple", internalType: "struct LibBrokenLine.Line", components: [ { name: "start", type: "uint32", internalType: "uint32", }, { name: "bias", type: "uint96", internalType: "uint96", }, { name: "slope", type: "uint96", internalType: "uint96", }, { name: "cliff", type: "uint32", internalType: "uint32", }, ], }, ], stateMutability: "view", }, { type: "function", name: "transferOwnership", inputs: [ { name: "newOwner", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updateAccountLines", inputs: [ { name: "account", type: "address", internalType: "address", }, { name: "time", type: "uint32", internalType: "uint32", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updateAccountLinesBlockNumber", inputs: [ { name: "account", type: "address", internalType: "address", }, { name: "blockNumber", type: "uint32", internalType: "uint32", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updateTotalSupplyLine", inputs: [ { name: "time", type: "uint32", internalType: "uint32", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updateTotalSupplyLineBlockNumber", inputs: [ { name: "blockNumber", type: "uint32", internalType: "uint32", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "withdraw", inputs: [], outputs: [], stateMutability: "nonpayable", }, { type: "event", name: "Delegate", inputs: [ { name: "id", type: "uint256", indexed: true, internalType: "uint256", }, { name: "account", type: "address", indexed: true, internalType: "address", }, { name: "delegate", type: "address", indexed: true, internalType: "address", }, { name: "time", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "DelegateChanged", inputs: [ { name: "delegator", type: "address", indexed: true, internalType: "address", }, { name: "fromDelegate", type: "address", indexed: true, internalType: "address", }, { name: "toDelegate", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "DelegateVotesChanged", inputs: [ { name: "delegate", type: "address", indexed: true, internalType: "address", }, { name: "previousBalance", type: "uint256", indexed: false, internalType: "uint256", }, { name: "newBalance", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "Initialized", inputs: [ { name: "version", type: "uint8", indexed: false, internalType: "uint8", }, ], anonymous: false, }, { type: "event", name: "LockCreate", inputs: [ { name: "id", type: "uint256", indexed: true, internalType: "uint256", }, { name: "account", type: "address", indexed: true, internalType: "address", }, { name: "delegate", type: "address", indexed: true, internalType: "address", }, { name: "time", type: "uint256", indexed: false, internalType: "uint256", }, { name: "amount", type: "uint256", indexed: false, internalType: "uint256", }, { name: "slopePeriod", type: "uint256", indexed: false, internalType: "uint256", }, { name: "cliff", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "OwnershipTransferred", inputs: [ { name: "previousOwner", type: "address", indexed: true, internalType: "address", }, { name: "newOwner", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "Relock", inputs: [ { name: "id", type: "uint256", indexed: true, internalType: "uint256", }, { name: "account", type: "address", indexed: true, internalType: "address", }, { name: "delegate", type: "address", indexed: true, internalType: "address", }, { name: "counter", type: "uint256", indexed: false, internalType: "uint256", }, { name: "time", type: "uint256", indexed: false, internalType: "uint256", }, { name: "amount", type: "uint256", indexed: false, internalType: "uint256", }, { name: "slopePeriod", type: "uint256", indexed: false, internalType: "uint256", }, { name: "cliff", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "SetAstonicLabsMultisig", inputs: [ { name: "astonicLabsMultisig", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "SetL2EpochShift", inputs: [ { name: "l2EpochShift", type: "uint32", indexed: true, internalType: "uint32", }, ], anonymous: false, }, { type: "event", name: "SetL2StartingPointWeek", inputs: [ { name: "l2StartingPointWeek", type: "int256", indexed: true, internalType: "int256", }, ], anonymous: false, }, { type: "event", name: "SetL2TransitionBlock", inputs: [ { name: "l2TransitionBlock", type: "uint256", indexed: true, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "SetMinCliffPeriod", inputs: [ { name: "newMinCliffPeriod", type: "uint256", indexed: true, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "SetMinSlopePeriod", inputs: [ { name: "newMinSlopePeriod", type: "uint256", indexed: true, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "SetPaused", inputs: [ { name: "paused", type: "bool", indexed: true, internalType: "bool", }, ], anonymous: false, }, { type: "event", name: "Withdraw", inputs: [ { name: "account", type: "address", indexed: true, internalType: "address", }, { name: "amount", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, ]; var _bytecode = "0x6080346200011657601f62003e2138819003918201601f19168301916001600160401b038311848410176200011b578084926020946040528339810103126200011657518015158103620001165762000063575b604051613cef9081620001328239f35b60005460ff8160081c16620000c15760ff8082161062000085575b5062000053565b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386200007e565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806302dc5af014611a8e57806303c6e8f714611a2257806306fdde03146119d65780630fc8deca146119a2578063134c4cbf1461192a57806315622e23146118eb57806316c38b3c1461187557806318160ddd1461185a5780631be0eca31461183c57806324a457ab14611810578063258c97ca146117ec5780632a963503146117c8578063313ce567146117ac5780633a46b1a8146117355780633ccfd60b1461162e578063587cde1e146115dd5780635b4df0a2146115765780635c19a95c146115575780635c975abb1461153157806361bc221a1461151357806367c8c473146114f557806368971ef5146114d75780636a4fd4501461143857806370a082311461140d578063715018a6146113b0578063748bb5e81461119a5780637ac512bb14610fde578063874d6d8114610fbb57806389c39d1a14610f9d5780638da5cb5b14610f745780638e539e8c14610f1a57806390a89b9f14610ef15780639109ec0014610e5257806395d89b4114610e105780639614d6bc14610db95780639ab24eb014610d5c5780639f4d110f14610d40578063ac7ae58914610d22578063b53546ab14610caa578063b623163314610c8c578063c3cda52014610c61578063c5da916914610c43578063cbf9fe5f14610bfd578063d4fadbde14610bc4578063ee85dc40146104c1578063f15403f91461046f578063f2fde38b146103e0578063f4359ce5146103c2578063fc0c546a146103995763fc7881c61461024257600080fd5b34610394576040366003190112610394576004356001600160a01b0380610267611bbc565b1691610274831515611d47565b61027d816127f5565b81600052602092606a84528060406000206001015416918363ffffffff9384431680916102a9826126fb565b9080600052606b8a52816040600020906102c291613463565b600052606b8952604060002096816102db81878b612fb0565b926102e89296919b6138a6565b604051936102f585611be8565b828416998a86526001600160601b038092168d87015216604085015216606083015289600052606b895260406000209061032e91613463565b88600052606b885260406000209261034593612959565b83600052606a85526040600020600101866001600160601b0360a01b82541617905560405192835216927f85c2730e083fbf1495501a47cbebc8a7e57eab8b6eeac16aedcebc825e268fac91a4005b600080fd5b34610394576000366003190112610394576065546040516001600160a01b039091168152602090f35b346103945760003660031901126103945760206040516201d8808152f35b34610394576020366003190112610394576103f9611ba6565b610401613c18565b6001600160a01b0381161561041b5761041990613c70565b005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b34610394576060366003190112610394576004356001600160601b038082168203610394576104b06040926104a2611b11565b6104aa611b4a565b9161255f565b835191831682529091166020820152f35b346103945760a0366003190112610394576104da611bbc565b6104e2611bd2565b6104ea611b24565b916104f3611b37565b610510670de0b6b3a76400006001600160601b0385161015611c82565b6105246001600160a01b0383161515611d47565b61052f6004356127f5565b9161053f63ffffffff43166126fb565b91610553606763ffffffff83161115611cce565b606863ffffffff871611610b885763ffffffff861615610b4c576105808661057b83866128c8565b6128c8565b60018060a01b038516600052606b60205260056040600020016004356000526020526105af6040600020611c42565b9063ffffffff80610604816105ef6105ea6001600160601b036020890151166105e56001600160601b0360408b01511691611e1e565b612531565b611d95565b1661057b8387511684606089015116906128c8565b9216911611610b075761062963ffffffff82511663ffffffff606084015116906128c8565b61063383866128c8565b63ffffffff811663ffffffff831611610a51575b505050600435600052606a60205260018060a01b036001604060002001541660018060a01b038516600052606b602052610688846004604060002001613463565b60018060a01b038516600052606b6020526001600160601b0360076040600020015460201c16906106ba8582886124ae565b600052606b6020526106e860406000206106d78660043583612fb0565b5050508563ffffffff4316916138a6565b6106f484600435612cf3565b505050606f546001600160601b036040519161070f83611be8565b63ffffffff43168352818160201c16602084015260801c16604082015263ffffffff85166060820152606e54600160401b811015610a3b578060016107579201606e556135a2565b919091610a255761076791612c50565b60018060a01b038516600052606b60205260046040600020016107a16107908660043584612fb0565b5050918663ffffffff4316916138a6565b6001600160601b0387166001600160601b038216116109c9576107c76107f09188611e37565b9160018060a01b038716600052606b6020526001600160601b0360086040600020015416611e37565b906001600160601b0382166001600160601b038216116108a3575b505063ffffffff9081602097610822606654611d86565b6066556108368243168785848c8a8d611f99565b6001600160601b036066549883604051988b8a52168b89015216604087015216606085015216608083015260018060a01b03169160018060a01b0316907fff9e53f270b2e95a429fec2ba89150265ce93322bdadde5312993a6297d1021a60a060043592a4604051908152f35b6108b361095f9392602092611e37565b60018060a01b038716600052606b82526108de816001600160601b0360086040600020015416611dad565b6001600160a01b038881166000908152606b8552604080822060080180546bffffffffffffffffffffffff19166001600160601b03958616179055606554600480358452606a88528284205492516323b872dd60e01b8152928516908301523060248301529490931660448401529195869390911691839182906064820190565b03925af180156109bd5760209761098663ffffffff94928593600091610990575b50611de0565b975081925061080b565b6109b091508b3d8d116109b6575b6109a88183611c20565b810190611dc8565b8b610980565b503d61099e565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152602e60248201527f496d706f737369626c6520746f2072656c6f636b3a206c65737320616d6f756e60448201526d742c207468656e206e6f7720697360901b6064820152608490fd5b634e487b7160e01b600052600060045260246000fd5b634e487b7160e01b600052604160045260246000fd5b610a5a916126e5565b63ffffffff80610a726105ea828c166105e58c611e1e565b1691160263ffffffff8116908103610af1576001600160601b036020610a9982938a611e37565b93015116911610610aac57868080610647565b60405162461bcd60e51b815260206004820152601960248201527f64657465637420637574206465706f73697420636f726e6572000000000000006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152601e60248201527f6e6577206c696e6520706572696f64206c6f636b20746f6f2073686f727400006044820152606490fd5b60405162461bcd60e51b81526020600482015260146024820152730736c6f706520706572696f6420657175616c20360641b6044820152606490fd5b60405162461bcd60e51b8152602060048201526014602482015273736c6f706520706572696f6420746f6f2062696760601b6044820152606490fd5b3461039457602036600319011261039457610419610bf0610be3611afe565b610beb613c18565b6126fb565b610bf8613c18565b613312565b34610394576020366003190112610394576001600160a01b03610c1e611ba6565b16600052606b60205260206001600160601b0360086040600020015416604051908152f35b3461039457600036600319011261039457602060405162093a808152f35b346103945760c036600319011261039457610c7a611ba6565b5060643560ff81161461292257600080fd5b34610394576000366003190112610394576020606854604051908152f35b34610394576000366003190112610394576080604051610cc981611be8565b606f5463ffffffff908181169283815260208101906001600160601b038092818560201c1681526060604084019383878b1c168552019460e01c8552604051968752511660208601525116604084015251166060820152f35b34610394576000366003190112610394576020606954604051908152f35b3461039457602036600319011261039457610419610bf0611afe565b346103945760203660031901126103945760206001600160601b03610db0610d82611ba6565b63ffffffff431690610d93826126fb565b6001600160a01b039091166000908152606b8652604090206136a5565b16604051908152f35b3461039457602036600319011261039457600435610de560018060a01b0360725460201c16331461285c565b806071557fa5639416bd01e88b5fb4ab6deb03ffd4319ff366e67c9596b296bad269bd66fa600080a2005b3461039457600036600319011261039457610e4e604051610e3081611c04565b6005815264766541544360d81b602082015260405191829182611b5d565b0390f35b346103945760203660031901126103945763ffffffff610e70611afe565b610e78613c18565b1660688111610eac57806068557f88345dd2cdc36a4778bf7fed510015cf81efda1a773e1b6360fde7cb1631b210600080a2005b60405162461bcd60e51b815260206004820152601a60248201527f6e657720736c6f706520706572696f64203e20322079656172730000000000006044820152606490fd5b3461039457600036600319011261039457607254604051602091821c6001600160a01b03168152f35b346103945760203660031901126103945760206001600160601b03610db060043563ffffffff90610f6382821692610f51846126fb565b92814316119081610f68575b506128e0565b613607565b90508216151587610f5d565b34610394576000366003190112610394576033546040516001600160a01b039091168152602090f35b34610394576000366003190112610394576020607054604051908152f35b3461039457600036600319011261039457602063ffffffff610db08143166126fb565b34610394576080366003190112610394576004356001600160a01b038116908190036103945761100c611b11565b90611015611b4a565b9061101e611b24565b6000549260ff8460081c16159485809661118d575b8015611176575b1561111a5760ff1985166001176000556110b19486611108575b5060ff60005460081c169361106885611f39565b6001600160601b0360a01b606554161760655563ffffffff918280921660695516916110976067841115611cce565b16906110a66068831115611d0a565b606755606855611f39565b6110ba33613c70565b600054906110cd60ff8360081c16611f39565b6110d357005b61ff0019166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b61ffff19166101011760005586611054565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561103a5750600160ff86161461103a565b50600160ff861610611033565b346103945760a0366003190112610394576111b3611ba6565b6111bb611bbc565b6111c3611bd2565b906111cc611b24565b916111d5611b37565b916001600160601b0393848316946111f7670de0b6b3a7640000871015611c82565b63ffffffff9283861661120d6067821115611cce565b8484169261121e6068851115611d0a565b6001600160a01b0399808b169788156113795761126f6000976112f89361124b9c8f89169d8e1515611d47565b611256606654611d86565b6066558b43169285611267856126fb565b9a8b94611f99565b88875260209b8c93606b855261128e8382600860408d20015416611dad565b8b8a52606b86526040808b2060080180546bffffffffffffffffffffffff19169390921692909217905560655490516323b872dd60e01b81523360048201523060248201526001600160601b03939093166044840152919788939190921691839182906064820190565b03925af19283156109bd576113386080947f9024bda3efb3f3701e8d25fdb8d8adb67deb176633f590ee4a3cd1dad74dc73e9660009161135c5750611de0565b606654988996604051941684528a84015260408301526060820152a4604051908152f35b61137391508c8d3d106109b6576109a88183611c20565b8c610980565b60405162461bcd60e51b815260206004820152600f60248201526e6163636f756e74206973207a65726f60881b6044820152606490fd5b34610394576000366003190112610394576113c9613c18565b603380546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461039457602036600319011261039457602061143061142b611ba6565b611edd565b604051908152f35b346103945760203660031901126103945763ffffffff611456611afe565b61145e613c18565b166067811161149257806067557fa21222d0eed205eed6a46ed1fe7faf1d0b5d097b9e04a6d4e59b7f1debfc8b2b600080a2005b60405162461bcd60e51b815260206004820152601a60248201527f6e657720636c69666620706572696f64203e20322079656172730000000000006044820152606490fd5b34610394576000366003190112610394576020607154604051908152f35b34610394576000366003190112610394576020606754604051908152f35b34610394576000366003190112610394576020606654604051908152f35b3461039457600036600319011261039457602060ff60725460c01c166040519015158152f35b3461039457602036600319011261039457611570611ba6565b50612922565b3461039457604036600319011261039457610419611592611ba6565b61159d610be3611b11565b906115a6613c18565b6001600160a01b03166000818152606b602052604090206115c8908390613463565b600052606b6020526004604060002001613463565b34610394576020366003190112610394576115f6611ba6565b5060405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b346103945760003660031901126103945761164833611e50565b6001600160601b038082169182611689575b826040519081527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436460203392a2005b6116a69033600052606b6020528260086040600020015416611e37565b9033600052606b602052600860406000200191166001600160601b03198254161790556000602060018060a01b036065541660446040518094819363a9059cbb60e01b83523360048401528760248401525af180156109bd57611710916000916117175750611de0565b818061165a565b61172f915060203d81116109b6576109a88183611c20565b83610980565b346103945760403660031901126103945760206001600160601b03610db061175b611ba6565b60243563ffffffff9161178583831693611774856126fb565b938143161190816117a057506128e0565b6001600160a01b03166000908152606b8652604090206136a5565b90508316151588610f5d565b3461039457600036600319011261039457602060405160128152f35b3461039457600036600319011261039457602063ffffffff60725416604051908152f35b3461039457604036600319011261039457610419611808611ba6565b61159d611b11565b3461039457602036600319011261039457602061182e610beb611afe565b63ffffffff60405191168152f35b3461039457600036600319011261039457602060405162015f6c8152f35b34610394576000366003190112610394576020611430611eab565b3461039457602036600319011261039457600435801515809103610394576072546118ae33602083901c6001600160a01b03161461285c565b60ff60c01b191660c082901b60ff60c01b16176072557f3c70af01296aef045b2f5c9d3c30b05d4428fd257145b9c7fcd76418e65b5980600080a2005b3461039457602036600319011261039457600435600052606a60205260408060002060018060a01b036001818354169201541682519182526020820152f35b3461039457602036600319011261039457611943611ba6565b61194b613c18565b60728054640100000000600160c01b031916602083901b640100000000600160c01b03161790556001600160a01b03167ff4cfa9475c15a896b4e21c0c19e3a73f830a9ce9fe5f09c96f98283df0e85975600080a2005b346103945760203660031901126103945760206119c56119c0611ba6565b611e50565b6001600160601b0360405191168152f35b3461039457600036600319011261039457610e4e6040516119f681611c04565b60138152724173746f6e696320566f74652d457363726f7760681b602082015260405191829182611b5d565b346103945760203660031901126103945760725460043590611a5233602083901c6001600160a01b03161461285c565b607082905560ff60c01b1916600160c01b176072557fadd0bcf1429f686a349e889b2fbcd86e875ba509f852af2c2e6fc33474a62e7f600080a2005b3461039457602036600319011261039457611aa7611afe565b6072549063ffffffff90611ac933602085901c6001600160a01b03161461285c565b16809163ffffffff1916176072557f870203d6fb023b09b91f24f123cdb0e18fc11f157b81fb60ff4fcfc521df033c600080a2005b6004359063ffffffff8216820361039457565b6024359063ffffffff8216820361039457565b6064359063ffffffff8216820361039457565b6084359063ffffffff8216820361039457565b6044359063ffffffff8216820361039457565b6020808252825181830181905290939260005b828110611b9257505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501611b70565b600435906001600160a01b038216820361039457565b602435906001600160a01b038216820361039457565b604435906001600160601b038216820361039457565b6080810190811067ffffffffffffffff821117610a3b57604052565b6040810190811067ffffffffffffffff821117610a3b57604052565b90601f8019910116810190811067ffffffffffffffff821117610a3b57604052565b90604051611c4f81611be8565b606081935463ffffffff811683526001600160601b03808260201c1660208501528160801c16604084015260e01c910152565b15611c8957565b60405162461bcd60e51b815260206004820152601b60248201527f616d6f756e74206973206c657373207468616e206d696e696d756d00000000006044820152606490fd5b15611cd557565b60405162461bcd60e51b815260206004820152600d60248201526c636c69666620746f6f2062696760981b6044820152606490fd5b15611d1157565b60405162461bcd60e51b815260206004820152600e60248201526d706572696f6420746f6f2062696760901b6044820152606490fd5b15611d4e57565b60405162461bcd60e51b815260206004820152601060248201526f64656c6567617465206973207a65726f60801b6044820152606490fd5b6000198114610af15760010190565b9060016001600160601b0380931601918211610af157565b9190916001600160601b0380809416911601918211610af157565b90816020910312610394575180151581036103945790565b15611de757565b60405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6001600160601b039081166000190191908211610af157565b6001600160601b039182169082160391908211610af157565b611ea89060018060a01b031680600052606b602052611ea26001600160601b03600860406000200154169163ffffffff431690611e8c826126fb565b90600052606b60205260046040600020016136a5565b90611e37565b90565b6001600160601b0380606f5460201c1615611ed757611ed363ffffffff4316610f63816126fb565b1690565b50600090565b60018060a01b031680600052606b6020526001600160601b03908160036040600020015460201c1615611f3257611ed39063ffffffff431690611f1f826126fb565b90600052606b60205260406000206136a5565b5050600090565b15611f4057565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b9194939092946001600160601b03811663ffffffff871611612469576001600160601b0395611fc98686866124ae565b611fd483828461255f565b60405198918290611fe48b611be8565b63ffffffff8a168b521660208a01521680604089015263ffffffff841660608901526066549015612413576001600160601b036040890151166001600160601b0360208a015116106123bb5780600052606d6020526001600160601b0360406000205460201c1661236a57600052606d602052612065876040600020612c50565b61207563ffffffff885116613312565b606f54600160201b600160801b036120a66001600160601b0360208b0151166001600160601b038460201c16611dad565b60201b1690600160201b600160801b03191617606f556121d4876120d063ffffffff8251166126cf565b63ffffffff6120fa6001600160601b036020850151166001600160601b0360408601511690612531565b169063ffffffff6060840151168015600014612328575063ffffffff61215a6001600160601b0360406121619596606f548360801b612143858585015116868460801c16611dad565b60801b16908460801b191617606f55015116613855565b9116613b56565b63ffffffff61219a61219061218b8c6001600160601b036040816020840151169201511690612cb1565b613855565b92828c51166128c8565b6121ce8b836121c7866121c26001600160601b0360406121b9896126cf565b96015116613855565b612cc9565b9116613be0565b16613be0565b63ffffffff875116606f54906001600160601b03604051926121f584611be8565b63ffffffff8c168452818160201c16602085015260801c1660408301526060820152606e54600160401b811015610a3b578060016122369201606e556135a2565b919091610a255761224691612c50565b6001600160a01b039485166000818152606b60205260409020606654919861226f928b92612959565b63ffffffff1661227e82611e1e565b9061228891612531565b61229190611d95565b906040519561229f87611be8565b63ffffffff1686526001600160601b031660208601526001600160601b0316604085015263ffffffff166060840152169283600052606b6020526040600020600401916066546122ee93612959565b606654600052606a60205260406000206001600160601b0360a01b9283825416179055606654600052604060002060010191825416179055565b9263ffffffff61215a6001600160601b03604061234b61236598612354976128c8565b94015116613855565b63ffffffff60608b015116906128c8565b612161565b60405162461bcd60e51b815260206004820152602360248201527f4c696e65207769746820676976656e20696420697320616c72656164792065786044820152621a5cdd60ea1b6064820152608490fd5b60405162461bcd60e51b815260206004820152602a60248201527f536c6f7065203e20626961732c20756e61636365707461626c652076616c756560448201526920666f7220736c6f706560b01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f536c6f7065203d3d20302c20756e61636365707461626c652076616c756520666044820152676f7220736c6f706560c01b6064820152608490fd5b60405162461bcd60e51b815260206004820152601760248201527f57726f6e672076616c756520736c6f7065506572696f640000000000000000006044820152606490fd5b906124f392916124bd83613312565b60018060a01b03809216600052606b6020526124dd836040600020613463565b16600052606b6020526004604060002001613463565b565b906305f5e1006001600160601b0380931602918216918203610af157565b9190916001600160601b0380809416911602918216918203610af157565b906001600160601b0380911691821561254957160490565b634e487b7160e01b600052601260045260246000fd5b60675491939263ffffffff90811692831061267f57606854941693841061262f576125af6067612599936001600160601b039485916124f5565b16046068846125a7886124f5565b160490611dad565b826305f5e100928382841611612627575b8116911690818102918183041490151715610af15704169182156125ee576105ea611ea8916105e585611e1e565b60405162461bcd60e51b81526020600482015260116024820152700766f74696e6720706f776572206973203607c1b6044820152606490fd5b8392506125c0565b60405162461bcd60e51b815260206004820152602260248201527f736c6f706520706572696f64203c206d696e696d616c206c6f636b20706572696044820152611bd960f21b6064820152608490fd5b60405162461bcd60e51b815260206004820152602260248201527f636c69666620706572696f64203c206d696e696d616c206c6f636b20706572696044820152611bd960f21b6064820152608490fd5b63ffffffff9081166000190191908211610af157565b63ffffffff9182169082160391908211610af157565b60ff60725460c01c1661277f5763ffffffff9081612718826127b8565b1682821610611f325761273c612736612730836127b8565b836126e5565b916127d8565b15612756576201d88082611ea893606954169216046126e5565b62093a808280921