0 txs
0 calls
constructor
constructor(uint8 __decimals, uint256 _scale, address _mailbox)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address _account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
destinationGas
viewfunction destinationGas(uint32) view returns (uint256)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
domains
viewfunction domains() view returns (uint32[])
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
hook
viewfunction hook() view returns (address)
interchainSecurityModule
viewfunction interchainSecurityModule() view returns (address)
localDomain
viewfunction localDomain() view returns (uint32)
mailbox
viewfunction mailbox() view returns (address)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
owner
viewfunction owner() view returns (address)
PACKAGE_VERSION
viewfunction PACKAGE_VERSION() view returns (string)
quoteGasPayment
viewfunction quoteGasPayment(uint32 _destinationDomain) view returns (uint256)
routers
viewfunction routers(uint32 _domain) view returns (bytes32)
scale
viewfunction scale() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
enrollRemoteRouter
nonpayablefunction enrollRemoteRouter(uint32 _domain, bytes32 _router)
enrollRemoteRouters
nonpayablefunction enrollRemoteRouters(uint32[] _domains, bytes32[] _addresses)
handle
payablefunction handle(uint32 _origin, bytes32 _sender, bytes _message) payable
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(uint256 _totalSupply, string _name, string _symbol, address _hook, address _interchainSecurityModule, address _owner)
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
renounceOwnership
nonpayablefunction renounceOwnership()
setDestinationGas
nonpayablefunction setDestinationGas(tuple[] gasConfigs)
setDestinationGas
nonpayablefunction setDestinationGas(uint32 domain, uint256 gas)
setHook
nonpayablefunction setHook(address _hook)
setInterchainSecurityModule
nonpayablefunction setInterchainSecurityModule(address _module)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferRemote
payablefunction transferRemote(uint32 _destination, bytes32 _recipient, uint256 _amountOrId, bytes _hookMetadata, address _hook) payable returns (bytes32 messageId)
transferRemote
payablefunction transferRemote(uint32 _destination, bytes32 _recipient, uint256 _amountOrId) payable returns (bytes32 messageId)
unenrollRemoteRouter
nonpayablefunction unenrollRemoteRouter(uint32 _domain)
unenrollRemoteRouters
nonpayablefunction unenrollRemoteRouters(uint32[] _domains)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
EIP712DomainChanged
event EIP712DomainChanged()
GasSet
event GasSet(uint32 domain, uint256 gas)
HookSet
event HookSet(address _hook)
Initialized
event Initialized(uint8 version)
IsmSet
event IsmSet(address _ism)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ReceivedTransferRemote
event ReceivedTransferRemote(uint32 indexed origin, bytes32 indexed recipient, uint256 amount)
SentTransferRemote
event SentTransferRemote(uint32 indexed destination, bytes32 indexed recipient, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
No errors.
creation bytecode
0x6101006040523480156200001257600080fd5b50604051620041c0380380620041c083398101604081905262000035916200018c565b818180808080806001600160a01b0381163b620000985760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001099190620001e4565b63ffffffff1660a0526200011d336200013a565b50505060c09390935250505060ff90921660e05250620002139050565b60cc80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080600060608486031215620001a257600080fd5b835160ff81168114620001b457600080fd5b6020850151604086015191945092506001600160a01b0381168114620001d957600080fd5b809150509250925092565b600060208284031215620001f757600080fd5b815163ffffffff811681146200020c57600080fd5b9392505050565b60805160a05160c05160e051613f506200027060003960006103b001526000818161089f015281816125190152612717015260006105d901526000818161074b01528181610d280152818161254e0152612bbd0152613f506000f3fe6080604052600436106102bb5760003560e01c806381b4e8b41161016e578063d505accf116100cb578063e9198bf91161007f578063f2ed8c5311610064578063f2ed8c531461084d578063f2fde38b1461086d578063f51e181a1461088d57600080fd5b8063e9198bf91461080d578063efae508a1461082d57600080fd5b8063dd62ed3e116100b0578063dd62ed3e1461076d578063de523cf3146107c0578063e80a7c79146107ed57600080fd5b8063d505accf14610719578063d5438eae1461073957600080fd5b806395d89b4111610122578063a9059cbb11610107578063a9059cbb146106b9578063b1bd6436146106d9578063b49c53a7146106f957600080fd5b806395d89b4114610684578063a457c2d71461069957600080fd5b80638d3638f4116101535780638d3638f4146105c75780638da5cb5b1461061057806393c448471461063b57600080fd5b806381b4e8b41461058c57806384b0196e1461059f57600080fd5b8063440df4f41161021c578063715018a6116101d0578063775313a1116101b5578063775313a1146104ec5780637ecebe001461051a5780637f5a7c7b1461053a57600080fd5b8063715018a6146104b757806371a15b38146104cc57600080fd5b806351debffc1161020157806351debffc1461047157806356d5d4751461048457806370a082311461049757600080fd5b8063440df4f41461042f57806349d462ef1461045157600080fd5b80632ead72f6116102735780633644e515116102585780633644e515146103da57806339509351146103ef5780633dfd38731461040f57600080fd5b80632ead72f61461037c578063313ce5671461039c57600080fd5b80630e72cc06116102a45780630e72cc061461031b57806318160ddd1461033d57806323b872dd1461035c57600080fd5b806306fdde03146102c0578063095ea7b3146102eb575b600080fd5b3480156102cc57600080fd5b506102d56108c1565b6040516102e29190613399565b60405180910390f35b3480156102f757600080fd5b5061030b6103063660046133d5565b610953565b60405190151581526020016102e2565b34801561032757600080fd5b5061033b6103363660046133ff565b61096d565b005b34801561034957600080fd5b506035545b6040519081526020016102e2565b34801561036857600080fd5b5061030b61037736600461341a565b610abb565b34801561038857600080fd5b5061034e61039736600461346a565b610adf565b3480156103a857600080fd5b5060405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016102e2565b3480156103e657600080fd5b5061034e610aff565b3480156103fb57600080fd5b5061030b61040a3660046133d5565b610b0e565b34801561041b57600080fd5b5061033b61042a3660046133ff565b610b5a565b34801561043b57600080fd5b50610444610c9b565b6040516102e29190613485565b34801561045d57600080fd5b5061033b61046c3660046134cf565b610ca8565b61034e61047f36600461352d565b610cbe565b61033b6104923660046135a4565b610d10565b3480156104a357600080fd5b5061034e6104b23660046133ff565b610e84565b3480156104c357600080fd5b5061033b610eaf565b3480156104d857600080fd5b5061033b6104e7366004613643565b610ec3565b3480156104f857600080fd5b5061034e61050736600461346a565b6101636020526000908152604090205481565b34801561052657600080fd5b5061034e6105353660046133ff565b610f1e565b34801561054657600080fd5b5060fe546105679073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102e2565b61034e61059a366004613685565b610f49565b3480156105ab57600080fd5b506105b4610f57565b6040516102e297969594939291906136b8565b3480156105d357600080fd5b506105fb7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102e2565b34801561061c57600080fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff16610567565b34801561064757600080fd5b506102d56040518060400160405280600581526020017f372e302e3000000000000000000000000000000000000000000000000000000081525081565b34801561069057600080fd5b506102d5611033565b3480156106a557600080fd5b5061030b6106b43660046133d5565b611042565b3480156106c557600080fd5b5061030b6106d43660046133d5565b611113565b3480156106e557600080fd5b5061033b6106f436600461377a565b611121565b34801561070557600080fd5b5061033b6107143660046134cf565b611197565b34801561072557600080fd5b5061033b6107343660046137ef565b6111a9565b34801561074557600080fd5b506105677f000000000000000000000000000000000000000000000000000000000000000081565b34801561077957600080fd5b5061034e610788366004613862565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b3480156107cc57600080fd5b5060ff546105679073ffffffffffffffffffffffffffffffffffffffff1681565b3480156107f957600080fd5b5061033b61080836600461396f565b611368565b34801561081957600080fd5b5061033b610828366004613a01565b611517565b34801561083957600080fd5b5061033b61084836600461346a565b6115f6565b34801561085957600080fd5b5061034e61086836600461346a565b61160a565b34801561087957600080fd5b5061033b6108883660046133ff565b61166b565b34801561089957600080fd5b5061034e7f000000000000000000000000000000000000000000000000000000000000000081565b6060603680546108d090613a61565b80601f01602080910402602001604051908101604052809291908181526020018280546108fc90613a61565b80156109495780601f1061091e57610100808354040283529160200191610949565b820191906000526020600020905b81548152906001019060200180831161092c57829003601f168201915b5050505050905090565b60003361096181858561171f565b60019150505b92915050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806109a7575073ffffffffffffffffffffffffffffffffffffffff8116155b610a38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610a406118d2565b60ff80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527fc47cbcc588c67679e52261c45cc315e56562f8d0ccaba16facb9093ff9498799906020015b60405180910390a15050565b600033610ac9858285611953565b610ad4858585611a24565b506001949350505050565b600080610af761013063ffffffff80861690611c9a16565b949350505050565b6000610b09611cb3565b905090565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906109619082908690610b55908790613add565b61171f565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610b94575073ffffffffffffffffffffffffffffffffffffffff8116155b610c20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e67000000000000000000000000000000000000000000000000006064820152608401610a2f565b610c286118d2565b60fe80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f4eab7b127c764308788622363ad3e9532de3dfba7845bd4f84c125a22544255a90602001610aaf565b6060610b09610130611cbd565b610cb06118d2565b610cba8282611d6e565b5050565b6000610d058787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611dbd915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610dd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f78000000000000000000000000000000000000000000000000000000000000006064820152608401610a2f565b6000610de085611e44565b9050838114610e71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e6465720000000000000000000000000000000000000000000000000000006064820152608401610a2f565b610e7d85858585611eaa565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040812054610967565b610eb76118d2565b610ec16000611f3e565b565b610ecb6118d2565b8060005b81811015610f1857610f06848483818110610eec57610eec613af0565b9050602002016020810190610f01919061346a565b611fb5565b610f11600182613add565b9050610ecf565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260996020526040812054610967565b6000610af78484843461200b565b6000606080600080600060606065546000801b148015610f775750606654155b610fdd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152606401610a2f565b610fe5612044565b610fed612053565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546108d090613a61565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015611106576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610a2f565b610ad4828686840361171f565b600033610961818585611a24565b6111296118d2565b60005b818110156111925761118083838381811061114957611149613af0565b61115f926020604090920201908101915061346a565b84848481811061117157611171613af0565b90506040020160200135611d6e565b61118b600182613add565b905061112c565b505050565b61119f6118d2565b610cba8282612062565b83421115611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610a2f565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886112428c612079565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006112aa826120ae565b905060006112ba828787876120f6565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610a2f565b61135c8a8a8a61171f565b50505050505050505050565b600054610100900460ff16158080156113885750600054600160ff909116105b806113a25750303b1580156113a2575060005460ff166001145b61142e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a2f565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561148c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b611496868661211e565b6114a033886121bf565b6114ab8484846122b4565b801561150e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b61151f6118d2565b828114611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e677468000000000000000000000000000000000000000000000000006044820152606401610a2f565b8260005b818110156115ee576115dc8686838181106115a9576115a9613af0565b90506020020160208101906115be919061346a565b8585848181106115d0576115d0613af0565b90506020020135612062565b6115e7600182613add565b905061158c565b505050505050565b6115fe6118d2565b61160781611fb5565b50565b60006109678261164d6000801b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518060200160405280600081525061236e565b60fe5473ffffffffffffffffffffffffffffffffffffffff1661239d565b6116736118d2565b73ffffffffffffffffffffffffffffffffffffffff8116611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a2f565b61160781611f3e565b73ffffffffffffffffffffffffffffffffffffffff83166117c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610a2f565b73ffffffffffffffffffffffffffffffffffffffff8216611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610a2f565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff163314610ec1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a2f565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f185781811015611a17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a2f565b610f18848484840361171f565b73ffffffffffffffffffffffffffffffffffffffff8316611ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610a2f565b73ffffffffffffffffffffffffffffffffffffffff8216611b6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610a2f565b73ffffffffffffffffffffffffffffffffffffffff831660009081526033602052604090205481811015611c20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610a2f565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c8d9086815260200190565b60405180910390a3610f18565b600080611ca784846123b3565b915091505b9250929050565b6000610b096123ed565b60606000611cca83612461565b9050805167ffffffffffffffff811115611ce657611ce6613895565b604051908082528060200260200182016040528015611d0f578160200160208202803683370190505b50915060005b8151811015611d6757818181518110611d3057611d30613af0565b6020026020010151838281518110611d4a57611d4a613af0565b63ffffffff90921660209283029190910190910152600101611d15565b5050919050565b63ffffffff821660008181526101636020908152604091829020849055815192835282018390527fc3de732a98b24a2b5c6f67e8a7fb057ffc14046b83968a2c73e4148d2fba978b9101610aaf565b600080611dc9866124f2565b90506000611dd687612512565b90506000611de589838561236e565b9050611df48a8883898961253e565b9350888a63ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec84604051611e2f91815260200190565b60405180910390a35050509695505050505050565b60008080611e5d61013063ffffffff80871690611c9a16565b915091508115611e6e579392505050565b611e77846125f1565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f9190613399565b6000611eb68383612628565b90506000611ec48484612647565b9050366000611ed38686612657565b91509150611ef3611ee385612667565b611eec85612710565b848461273c565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a685604051611f2c91815260200190565b60405180910390a35050505050505050565b60cc805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611fca61013063ffffffff8084169061274616565b611fd3826125f1565b90610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f9190613399565b600061203b8585858561201d8a612752565b60fe5473ffffffffffffffffffffffffffffffffffffffff16611dbd565b95945050505050565b6060606780546108d090613a61565b6060606880546108d090613a61565b610cba61013063ffffffff80851690849061277516565b73ffffffffffffffffffffffffffffffffffffffff811660009081526099602052604090208054600181018255905b50919050565b60006109676120bb611cb3565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080600061210787878787612780565b915091506121148161286f565b5095945050505050565b600054610100900460ff166121b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a2f565b610cba8282612a22565b73ffffffffffffffffffffffffffffffffffffffff821661223c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a2f565b806035600082825461224e9190613add565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600054610100900460ff1661234b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a2f565b612353612ad2565b61235c83610b5a565b6123658261096d565b61119281611f3e565b606083838360405160200161238593929190613b1f565b60405160208183030381529060405290509392505050565b6000610af784846123ad87612752565b85612b71565b60008181526002830160205260408120548190806123e2576123d58585612c45565b925060009150611cac9050565b600192509050611cac565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612418612c51565b612420612caa565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6060600061246e83612cdb565b90508067ffffffffffffffff81111561248957612489613895565b6040519080825280602002602001820160405280156124b2578160200160208202803683370190505b50915060005b81811015611d67576124ca8482612ce6565b60001c8382815181106124df576124df613af0565b60209081029190910101526001016124b8565b60606124fe3383612cf2565b505060408051602081019091526000815290565b60006109677f000000000000000000000000000000000000000000000000000000000000000083613b4c565b60008061254a87611e44565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b81526004016125ae959493929190613b63565b60206040518083038185885af11580156125cc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d059190613bc3565b60606126028263ffffffff16612eb8565b6040516020016126129190613bdc565b6040516020818303038152906040529050919050565b60006126376020828486613c21565b61264091613c4b565b9392505050565b6000612637604060208486613c21565b366000611ca78360408187613c21565b600073ffffffffffffffffffffffffffffffffffffffff82111561270c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f5479706543617374733a2062797465733332546f41646472657373206f76657260448201527f666c6f77000000000000000000000000000000000000000000000000000000006064820152608401610a2f565b5090565b60006109677f000000000000000000000000000000000000000000000000000000000000000083613c87565b610f1884846121bf565b60006126408383612f76565b63ffffffff81166000908152610163602052604090205460609061096790612f93565b610f18838383612fb1565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127b75750600090506003612866565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561280b573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661285f57600060019250925050612866565b9150600090505b94509492505050565b600081600481111561288357612883613cc2565b0361288b5750565b600181600481111561289f5761289f613cc2565b03612906576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a2f565b600281600481111561291a5761291a613cc2565b03612981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a2f565b600381600481111561299557612995613cc2565b03611607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610a2f565b600054610100900460ff16612ab9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a2f565b6036612ac58382613d39565b5060376111928282613d39565b600054610100900460ff16612b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a2f565b610ec1612fce565b600080612b7d86611e44565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590612bfa90899085908a908a908a90600401613b63565b602060405180830381865afa158015612c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3b9190613bc3565b9695505050505050565b6000612640838361306e565b600080612c5c612044565b805190915015612c73578051602090910120919050565b6065548015612c825792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080612cb5612053565b805190915015612ccc578051602090910120919050565b6066548015612c825792915050565b600061096782613086565b60006126408383613090565b73ffffffffffffffffffffffffffffffffffffffff8216612d95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610a2f565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015612e4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610a2f565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60606000612ec5836130ba565b600101905060008167ffffffffffffffff811115612ee557612ee5613895565b6040519080825280601f01601f191660200182016040528015612f0f576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084612f1957509392505050565b60008181526002830160205260408120819055612640838361319c565b606061096760008333604051806020016040528060008152506131a8565b60008281526002840160205260408120829055610af784846131dd565b600054610100900460ff16613065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a2f565b610ec133611f3e565b60008181526001830160205260408120541515612640565b6000610967825490565b60008260000182815481106130a7576130a7613af0565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613103577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061312f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061314d57662386f26fc10000830492506010015b6305f5e1008310613165576305f5e100830492506008015b612710831061317957612710830492506004015b6064831061318b576064830492506002015b600a83106109675760010192915050565b600061264083836131e9565b60606001858585856040516020016131c4959493929190613e53565b6040516020818303038152906040529050949350505050565b600061264083836132dc565b600081815260018301602052604081205480156132d257600061320d600183613ed8565b855490915060009061322190600190613ed8565b905081811461328657600086600001828154811061324157613241613af0565b906000526020600020015490508087600001848154811061326457613264613af0565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061329757613297613eeb565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610967565b6000915050610967565b600081815260018301602052604081205461332357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610967565b506000610967565b60005b8381101561334657818101518382015260200161332e565b50506000910152565b6000815180845261336781602086016020860161332b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612640602083018461334f565b803573ffffffffffffffffffffffffffffffffffffffff811681146133d057600080fd5b919050565b600080604083850312156133e857600080fd5b6133f1836133ac565b946020939093013593505050565b60006020828403121561341157600080fd5b612640826133ac565b60008060006060848603121561342f57600080fd5b613438846133ac565b9250613446602085016133ac565b9150604084013590509250925092565b803563ffffffff811681146133d057600080fd5b60006020828403121561347c57600080fd5b61264082613456565b6020808252825182820181905260009190848201906040850190845b818110156134c357835163ffffffff16835292840192918401916001016134a1565b50909695505050505050565b600080604083850312156134e257600080fd5b6133f183613456565b60008083601f8401126134fd57600080fd5b50813567ffffffffffffffff81111561351557600080fd5b602083019150836020828501011115611cac57600080fd5b60008060008060008060a0878903121561354657600080fd5b61354f87613456565b95506020870135945060408701359350606087013567ffffffffffffffff81111561357957600080fd5b61358589828a016134eb565b90945092506135989050608088016133ac565b90509295509295509295565b600080600080606085870312156135ba57600080fd5b6135c385613456565b935060208501359250604085013567ffffffffffffffff8111156135e657600080fd5b6135f2878288016134eb565b95989497509550505050565b60008083601f84011261361057600080fd5b50813567ffffffffffffffff81111561362857600080fd5b6020830191508360208260051b8501011115611cac57600080fd5b6000806020838503121561365657600080fd5b823567ffffffffffffffff81111561366d57600080fd5b613679858286016135fe565b90969095509350505050565b60008060006060848603121561369a57600080fd5b6136a384613456565b95602085013595506040909401359392505050565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e060208401526136f560e084018a61334f565b8381036040850152613707818a61334f565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156137685783518352928401929184019160010161374c565b50909c9b505050505050505050505050565b6000806020838503121561378d57600080fd5b823567ffffffffffffffff808211156137a557600080fd5b818501915085601f8301126137b957600080fd5b8135818111156137c857600080fd5b8660208260061b85010111156137dd57600080fd5b60209290920196919550909350505050565b600080600080600080600060e0888a03121561380a57600080fd5b613813886133ac565b9650613821602089016133ac565b95506040880135945060608801359350608088013560ff8116811461384557600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561387557600080fd5b61387e836133ac565b915061388c602084016133ac565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126138d557600080fd5b813567ffffffffffffffff808211156138f0576138f0613895565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561393657613936613895565b8160405283815286602085880101111561394f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c0878903121561398857600080fd5b86359550602087013567ffffffffffffffff808211156139a757600080fd5b6139b38a838b016138c4565b965060408901359150808211156139c957600080fd5b506139d689828a016138c4565b9450506139e5606088016133ac565b92506139f3608088016133ac565b915061359860a088016133ac565b60008060008060408587031215613a1757600080fd5b843567ffffffffffffffff80821115613a2f57600080fd5b613a3b888389016135fe565b90965094506020870135915080821115613a5457600080fd5b506135f2878288016135fe565b600181811c90821680613a7557607f821691505b6020821081036120a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561096757610967613aae565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b83815282602082015260008251613b3d81604085016020870161332b565b91909101604001949350505050565b808202811582820484141761096757610967613aae565b63ffffffff8616815284602082015260a060408201526000613b8860a083018661334f565b8281036060840152613b9a818661334f565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b600060208284031215613bd557600080fd5b5051919050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251613c1481601f85016020870161332b565b91909101601f0192915050565b60008085851115613c3157600080fd5b83861115613c3e57600080fd5b5050820193919092039150565b80356020831015610967577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b600082613cbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b601f821115611192576000816000526020600020601f850160051c81016020861015613d1a5750805b601f850160051c820191505b818110156115ee57828155600101613d26565b815167ffffffffffffffff811115613d5357613d53613895565b613d6781613d618454613a61565b84613cf1565b602080601f831160018114613dba5760008415613d845750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556115ee565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015613e0757888601518255948401946001909101908401613de8565b5085821015613e4357878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251613ec781605685016020870161332b565b919091016056019695505050505050565b8181038181111561096757610967613aae565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122021d9bf3bdf9e02686f83e9519583a1912fb85645c65fff4d9eeeeb511ebe691a64736f6c63430008160033000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000010000000000000000000000002971b9aec44be4eb673df1b88cdb57b96eefe8a4