{"abi":[{"type":"constructor","inputs":[{"name":"_crs","type":"address","internalType":"contract ICRS"},{"name":"_baseNode","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"GRACE_PERIOD","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_URI_SELECTOR","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"addController","inputs":[{"name":"_controller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"available","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"baseNode","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"controllers","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"crs","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ICRS"}],"stateMutability":"view"},{"type":"function","name":"expiries","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"gasFee","inputs":[{"name":"_duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nameExpires","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"names","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerToggleApprovals","inputs":[{"name":"_state","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"reclaim","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"},{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"registerOnly","inputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"},{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"removeController","inputs":[{"name":"_controller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renew","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"saveName","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBasenodeResolverSettings","inputs":[{"name":"_callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"setResolver","inputs":[{"name":"_resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ControllerAdded","inputs":[{"name":"controller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ControllerRemoved","inputs":[{"name":"controller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NameMigrated","inputs":[{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"expires","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NameRegistered","inputs":[{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"expires","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NameRenewed","inputs":[{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"expires","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":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162003182380380620031828339810160408190526200003491620001f3565b604051806040016040528060118152602001704c4537454c204964656e7469747920763160781b815250604051806040016040528060088152602001674944454e5449545960c01b8152506200009962000093620000f560201b60201c565b620000f9565b6001620000a78382620002d4565b506002620000b68282620002d4565b5050600c805460ff1916905550600780546001600160a01b0319166001600160a01b0384161790556008819055620000ed62000149565b5050620003a0565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b62000153620001a6565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620001893390565b6040516001600160a01b03909116815260200160405180910390a1565b600c5460ff1615620001f15760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640160405180910390fd5b565b600080604083850312156200020757600080fd5b82516001600160a01b03811681146200021f57600080fd5b6020939093015192949293505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200025a57607f821691505b6020821081036200027b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002cf57600081815260208120601f850160051c81016020861015620002aa5750805b601f850160051c820191505b81811015620002cb57828155600101620002b6565b5050505b505050565b81516001600160401b03811115620002f057620002f06200022f565b620003088162000301845462000245565b8462000281565b602080601f831160018114620003405760008415620003275750858301515b600019600386901b1c1916600185901b178555620002cb565b600085815260208120601f198616915b82811015620003715788860151825594840194600190910190840162000350565b5085821015620003905787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612dd280620003b06000396000f3fe60806040526004361061021a5760003560e01c80638da5cb5b11610123578063c475abff116100ab578063e985e9c51161006f578063e985e9c514610695578063e9b6f449146106de578063f2fde38b146106fe578063f6a74ed71461071e578063fca247ac1461073e57600080fd5b8063c475abff146105ef578063c87b56dd14610602578063d6e4fa8614610622578063da8c229e1461064f578063ddf7fcb01461067f57600080fd5b8063a7fc7a07116100f2578063a7fc7a071461054b578063b88d4fde1461056b578063b9cce3281461058b578063bc420523146105b8578063c1a287e2146105d857600080fd5b80638da5cb5b146104d857806395d89b41146104f657806396e494e81461050b578063a22cb4651461052b57600080fd5b80634622ab03116101a657806370a082311161017557806370a08231146103f7578063715018a61461041757806372b7692b1461042c5780638a591369146104795780638a59c83e1461049957600080fd5b80634622ab031461037f5780634e543b261461039f5780635c975abb146103bf5780636352211e146103d757600080fd5b80630e297b45116101ed5780630e297b45146102d057806323b872dd146102f157806328ed4f6c14610311578063302c96501461033157806342842e0e1461035f57600080fd5b806301ffc9a71461021f57806306fdde0314610254578063081812fc14610276578063095ea7b3146102ae575b600080fd5b34801561022b57600080fd5b5061023f61023a366004612485565b610751565b60405190151581526020015b60405180910390f35b34801561026057600080fd5b506102696107a3565b60405161024b91906124f9565b34801561028257600080fd5b5061029661029136600461250c565b610835565b6040516001600160a01b03909116815260200161024b565b3480156102ba57600080fd5b506102ce6102c936600461253a565b61085c565b005b6102e36102de366004612566565b610872565b60405190815260200161024b565b3480156102fd57600080fd5b506102ce61030c36600461259e565b610889565b34801561031d57600080fd5b506102ce61032c3660046125ce565b6108c8565b34801561033d57600080fd5b5061035161034c3660046125fe565b610a27565b60405161024b929190612670565b34801561036b57600080fd5b506102ce61037a36600461259e565b610b10565b34801561038b57600080fd5b5061026961039a36600461250c565b610b2b565b3480156103ab57600080fd5b506102ce6103ba36600461268b565b610bc5565b3480156103cb57600080fd5b50600c5460ff1661023f565b3480156103e357600080fd5b506102966103f236600461250c565b610c3a565b34801561040357600080fd5b506102e361041236600461268b565b610c90565b34801561042357600080fd5b506102ce610d16565b34801561043857600080fd5b506104607fc835e302b0f33819b000dd357b0bbc12c36ec56c9ddeb92addcb21798dcc4fde81565b6040516001600160e01b0319909116815260200161024b565b34801561048557600080fd5b50600754610296906001600160a01b031681565b3480156104a557600080fd5b506104b96104b436600461250c565b610d2a565b604080516001600160a01b03909316835260208301919091520161024b565b3480156104e457600080fd5b506000546001600160a01b0316610296565b34801561050257600080fd5b50610269610e6b565b34801561051757600080fd5b5061023f61052636600461250c565b610e7a565b34801561053757600080fd5b506102ce6105463660046126bd565b610ea0565b34801561055757600080fd5b506102ce61056636600461268b565b610eb2565b34801561057757600080fd5b506102ce61058636600461279f565b610f06565b34801561059757600080fd5b506102e36105a636600461250c565b600a6020526000908152604090205481565b3480156105c457600080fd5b506102ce6105d336600461281f565b610f3e565b3480156105e457600080fd5b506102e36276a70081565b6102e36105fd366004612868565b610f93565b34801561060e57600080fd5b5061026961061d36600461250c565b6111cb565b34801561062e57600080fd5b506102e361063d36600461250c565b6000908152600a602052604090205490565b34801561065b57600080fd5b5061023f61066a36600461268b565b60096020526000908152604090205460ff1681565b34801561068b57600080fd5b506102e360085481565b3480156106a157600080fd5b5061023f6106b036600461288a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b3480156106ea57600080fd5b506102ce6106f93660046128b8565b6114a1565b34801561070a57600080fd5b506102ce61071936600461268b565b6114c2565b34801561072a57600080fd5b506102ce61073936600461268b565b611538565b6102e361074c366004612566565b611589565b60006001600160e01b031982166301ffc9a760e01b148061078257506001600160e01b031982166380ac58cd60e01b145b8061079d57506001600160e01b03198216630a3b53db60e21b145b92915050565b6060600180546107b2906128d3565b80601f01602080910402602001604051908101604052809291908181526020018280546107de906128d3565b801561082b5780601f106108005761010080835404028352916020019161082b565b820191906000526020600020905b81548152906001019060200180831161080e57829003601f168201915b5050505050905090565b600061084082611598565b506000908152600560205260409020546001600160a01b031690565b6108646115f7565b61086e828261163d565b5050565b6000610881848484600061174d565b949350505050565b61089333826119e1565b6108b85760405162461bcd60e51b81526004016108af9061290d565b60405180910390fd5b6108c3838383611a5c565b505050565b6007546008546040516302571be360e01b8152600481019190915230916001600160a01b0316906302571be390602401602060405180830381865afa158015610915573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610939919061295a565b6001600160a01b03161461095f5760405162461bcd60e51b81526004016108af90612977565b61096933836119e1565b6109a55760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b60448201526064016108af565b6007546008546040516306ab592360e01b81526004810191909152602481018490526001600160a01b038381166044830152909116906306ab5923906064016020604051808303816000875af1158015610a03573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c39190612999565b60006060610a33611bcd565b600754600854604051630178b8bf60e01b81526001600160a01b0390921691630178b8bf91610a689160040190815260200190565b602060405180830381865afa158015610a85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa9919061295a565b6001600160a01b03168484604051610ac29291906129b2565b6000604051808303816000865af19150503d8060008114610aff576040519150601f19603f3d011682016040523d82523d6000602084013e610b04565b606091505b50915091509250929050565b6108c383838360405180602001604052806000815250610f06565b600b6020526000908152604090208054610b44906128d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610b70906128d3565b8015610bbd5780601f10610b9257610100808354040283529160200191610bbd565b820191906000526020600020905b815481529060010190602001808311610ba057829003601f168201915b505050505081565b610bcd611bcd565b600754600854604051630c4b7b8560e11b815260048101919091526001600160a01b03838116602483015290911690631896f70a90604401600060405180830381600087803b158015610c1f57600080fd5b505af1158015610c33573d6000803e3d6000fd5b5050505050565b6000818152600a60205260408120544210610c875760405162461bcd60e51b815260206004820152600d60248201526c1b19585cd948195e1c1a5c9959609a1b60448201526064016108af565b61079d82611c27565b60006001600160a01b038216610cfa5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016108af565b506001600160a01b031660009081526004602052604090205490565b610d1e611bcd565b610d286000611c87565b565b600754604051630178b8bf60e01b81527fd0340a34011af087b374bbdc5136a48a841af1b55b0af1143ced23c89cf182c960048201526000918291829182916001600160a01b0390911690630178b8bf90602401602060405180830381865afa158015610d9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbf919061295a565b6040516317ee1a1960e01b81527fd0340a34011af087b374bbdc5136a48a841af1b55b0af1143ced23c89cf182c960048201523060248201526001600160a01b0391909116906317ee1a1990604401606060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f91906129c2565b50909250905081610e608683612a1b565b935093505050915091565b6060600280546107b2906128d3565b6000818152600a60205260408120544290610e99906276a70090612a32565b1092915050565b610ea86115f7565b61086e8282611cd7565b610eba611bcd565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f0a8bb31534c0ed46f380cb867bd5c803a189ced9a764e30b3a4991a9901d74749190a250565b610f1033836119e1565b610f2c5760405162461bcd60e51b81526004016108af9061290d565b610f3884848484611ce2565b50505050565b3360009081526009602052604090205460ff16610f6d5760405162461bcd60e51b81526004016108af90612a45565b80516020808301919091206000818152600b90925260409091208190610f388482612abb565b6007546008546040516302571be360e01b8152600481019190915260009130916001600160a01b03909116906302571be390602401602060405180830381865afa158015610fe5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611009919061295a565b6001600160a01b03161461102f5760405162461bcd60e51b81526004016108af90612977565b3360009081526009602052604090205460ff1661105e5760405162461bcd60e51b81526004016108af90612a45565b600082116110a15760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210323ab930ba34b7b760811b60448201526064016108af565b6110aa82611d15565b6000838152600a6020526040902054426110c76276a70083612a32565b10156111065760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd081c9959da5cdd195c995960921b60448201526064016108af565b6111136276a70084612a32565b6276a7006111218584612a32565b61112b9190612a32565b1161116a5760405162461bcd60e51b815260206004820152600f60248201526e667574757265206f766572666c6f7760881b60448201526064016108af565b6111748382612a32565b6000858152600a6020526040908190208290555190915084907f9b87a00e30f1ac65d898f070f8a3488fe60517182d0a2098e1b4b93a54aa9bd6906111bc9084815260200190565b60405180910390a29392505050565b600854600754604051630178b8bf60e01b815260048101839052606092916001600160a01b0316906000908290630178b8bf90602401602060405180830381865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611242919061295a565b6040516330dca1c360e21b81526004810185905230602482015263641af18160e11b60448201526001600160a01b03919091169063c372870c90606401602060405180830381865afa15801561129c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c0919061295a565b604080516020810186905290810187905290915060009060600160408051808303601f190181528282528051602091820120908301825260008084529151630178b8bf60e01b8152600481018290529093506001600160a01b03861690630178b8bf90602401602060405180830381865afa158015611343573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611367919061295a565b90506001600160a01b038116156114135760408051631674750f60e21b815260048101859052602481019190915260126044820152714c374c5f4944454e544954595f494d41474560701b60648201526001600160a01b038216906359d1d43c90608401600060405180830381865afa1580156113e8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114109190810190612b7b565b91505b6000888152600b602052604090819020905163641af18160e11b81526001600160a01b0386169163c835e30291611450918c918790600401612bf2565b600060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114959190810190612b7b565b98975050505050505050565b6114a9611bcd565b80156114ba576114b7611d80565b50565b6114b7611dd2565b6114ca611bcd565b6001600160a01b03811661152f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108af565b6114b781611c87565b611540611bcd565b6001600160a01b038116600081815260096020526040808220805460ff19169055517f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811139190a250565b6000610881848484600161174d565b6000818152600360205260409020546001600160a01b03166114b75760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108af565b600c5460ff1615610d285760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108af565b600061164882611c27565b9050806001600160a01b0316836001600160a01b0316036116b55760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016108af565b336001600160a01b03821614806116d157506116d181336106b0565b6117435760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016108af565b6108c38383611e0f565b6007546008546040516302571be360e01b8152600481019190915260009130916001600160a01b03909116906302571be390602401602060405180830381865afa15801561179f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c3919061295a565b6001600160a01b0316146117e95760405162461bcd60e51b81526004016108af90612977565b3360009081526009602052604090205460ff166118185760405162461bcd60e51b81526004016108af90612a45565b61182185610e7a565b61185d5760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420617661696c61626c6560981b60448201526064016108af565b60006118698442612a32565b90506118786276a70042612a32565b6118856276a70083612a32565b116118c45760405162461bcd60e51b815260206004820152600f60248201526e667574757265206f766572666c6f7760881b60448201526064016108af565b6118cd84611d15565b6000868152600a6020908152604080832084905560039091529020546001600160a01b0316156119005761190086611e7d565b61190a8587611f20565b8215611994576007546008546040516306ab592360e01b81526004810191909152602481018890526001600160a01b038781166044830152909116906306ab5923906064016020604051808303816000875af115801561196e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119929190612999565b505b846001600160a01b0316867fb3d987963d01b2f68493b4bdb130988f157ea43070d4ad840fee0466ed9370d9836040516119d091815260200190565b60405180910390a395945050505050565b6000806119ed83610c3a565b9050806001600160a01b0316846001600160a01b03161480611a285750836001600160a01b0316611a1d84610835565b6001600160a01b0316145b8061088157506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff16610881565b826001600160a01b0316611a6f82611c27565b6001600160a01b031614611a955760405162461bcd60e51b81526004016108af90612c98565b6001600160a01b038216611af75760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108af565b611b0483838360016120b9565b826001600160a01b0316611b1782611c27565b6001600160a01b031614611b3d5760405162461bcd60e51b81526004016108af90612c98565b600081815260056020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260048552838620805460001901905590871680865283862080546001019055868652600390945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000546001600160a01b03163314610d285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108af565b6000818152600360205260408120546001600160a01b03168061079d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108af565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61086e338383612141565b611ced848484611a5c565b611cf98484848461220f565b610f385760405162461bcd60e51b81526004016108af90612cdd565b600080611d2183610d2a565b9150915080341015611d675760405162461bcd60e51b815260206004820152600f60248201526e3737ba1032b737bab3b41031b7b4b760891b60448201526064016108af565b80156108c3576108c36001600160a01b0383168261230d565b611d88612426565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b611dda6115f7565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611db53390565b600081815260056020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611e4482611c27565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611e8882611c27565b9050611e988160008460016120b9565b611ea182611c27565b600083815260056020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526004845282852080546000190190558785526003909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b038216611f765760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108af565b6000818152600360205260409020546001600160a01b031615611fdb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108af565b611fe96000838360016120b9565b6000818152600360205260409020546001600160a01b03161561204e5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108af565b6001600160a01b038216600081815260046020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001811115610f38576001600160a01b038416156120ff576001600160a01b038416600090815260046020526040812080548392906120f9908490612d2f565b90915550505b6001600160a01b03831615610f38576001600160a01b03831660009081526004602052604081208054839290612136908490612a32565b909155505050505050565b816001600160a01b0316836001600160a01b0316036121a25760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108af565b6001600160a01b03838116600081815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60006001600160a01b0384163b1561230557604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612253903390899088908890600401612d42565b6020604051808303816000875af192505050801561228e575060408051601f3d908101601f1916820190925261228b91810190612d7f565b60015b6122eb573d8080156122bc576040519150601f19603f3d011682016040523d82523d6000602084013e6122c1565b606091505b5080516000036122e35760405162461bcd60e51b81526004016108af90612cdd565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610881565b506001610881565b8047101561235d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108af565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146123aa576040519150601f19603f3d011682016040523d82523d6000602084013e6123af565b606091505b50509050806108c35760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108af565b600c5460ff16610d285760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108af565b6001600160e01b0319811681146114b757600080fd5b60006020828403121561249757600080fd5b81356124a28161246f565b9392505050565b60005b838110156124c45781810151838201526020016124ac565b50506000910152565b600081518084526124e58160208601602086016124a9565b601f01601f19169290920160200192915050565b6020815260006124a260208301846124cd565b60006020828403121561251e57600080fd5b5035919050565b6001600160a01b03811681146114b757600080fd5b6000806040838503121561254d57600080fd5b823561255881612525565b946020939093013593505050565b60008060006060848603121561257b57600080fd5b83359250602084013561258d81612525565b929592945050506040919091013590565b6000806000606084860312156125b357600080fd5b83356125be81612525565b9250602084013561258d81612525565b600080604083850312156125e157600080fd5b8235915060208301356125f381612525565b809150509250929050565b6000806020838503121561261157600080fd5b823567ffffffffffffffff8082111561262957600080fd5b818501915085601f83011261263d57600080fd5b81358181111561264c57600080fd5b86602082850101111561265e57600080fd5b60209290920196919550909350505050565b821515815260406020820152600061088160408301846124cd565b60006020828403121561269d57600080fd5b81356124a281612525565b803580151581146126b857600080fd5b919050565b600080604083850312156126d057600080fd5b82356126db81612525565b91506126e9602084016126a8565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612731576127316126f2565b604052919050565b600067ffffffffffffffff821115612753576127536126f2565b50601f01601f191660200190565b600061277461276f84612739565b612708565b905082815283838301111561278857600080fd5b828260208301376000602084830101529392505050565b600080600080608085870312156127b557600080fd5b84356127c081612525565b935060208501356127d081612525565b925060408501359150606085013567ffffffffffffffff8111156127f357600080fd5b8501601f8101871361280457600080fd5b61281387823560208401612761565b91505092959194509250565b60006020828403121561283157600080fd5b813567ffffffffffffffff81111561284857600080fd5b8201601f8101841361285957600080fd5b61088184823560208401612761565b6000806040838503121561287b57600080fd5b50508035926020909101359150565b6000806040838503121561289d57600080fd5b82356128a881612525565b915060208301356125f381612525565b6000602082840312156128ca57600080fd5b6124a2826126a8565b600181811c908216806128e757607f821691505b60208210810361290757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60006020828403121561296c57600080fd5b81516124a281612525565b6020808252600890820152676e6f74206c69766560c01b604082015260600190565b6000602082840312156129ab57600080fd5b5051919050565b8183823760009101908152919050565b6000806000606084860312156129d757600080fd5b83516129e281612525565b6020850151604086015191945092506129fa81612525565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761079d5761079d612a05565b8082018082111561079d5761079d612a05565b6020808252600e908201526d3737ba1031b7b73a3937b63632b960911b604082015260600190565b601f8211156108c357600081815260208120601f850160051c81016020861015612a945750805b601f850160051c820191505b81811015612ab357828155600101612aa0565b505050505050565b815167ffffffffffffffff811115612ad557612ad56126f2565b612ae981612ae384546128d3565b84612a6d565b602080601f831160018114612b1e5760008415612b065750858301515b600019600386901b1c1916600185901b178555612ab3565b600085815260208120601f198616915b82811015612b4d57888601518255948401946001909101908401612b2e565b5085821015612b6b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215612b8d57600080fd5b815167ffffffffffffffff811115612ba457600080fd5b8201601f81018413612bb557600080fd5b8051612bc361276f82612739565b818152856020838501011115612bd857600080fd5b612be98260208301602086016124a9565b95945050505050565b8381526000602060608184015260008554612c0c816128d3565b8060608701526080600180841660008114612c2e5760018114612c4857612c76565b60ff1985168984015283151560051b890183019550612c76565b8a6000528660002060005b85811015612c6e5781548b8201860152908301908801612c53565b8a0184019650505b50505050508381036040850152612c8d81866124cd565b979650505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b8181038181111561079d5761079d612a05565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612d75908301846124cd565b9695505050505050565b600060208284031215612d9157600080fd5b81516124a28161246f56fea26469706673582212209c100dd13fe3aa7c5bbae7dba1909bec9773199edca180ee3966fac608ef58ff64736f6c63430008110033","sourceMap":"462:1796:114:-:0;;;512:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1390:113:38;;;;;;;;;;;;;-1:-1:-1;;;1390:113:38;;;;;;;;;;;;;;;;-1:-1:-1;;;1390:113:38;;;936:32:23;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;1456:5:38;:13;1464:5;1456;:13;:::i;:::-;-1:-1:-1;1479:7:38;:17;1489:7;1479;:17;:::i;:::-;-1:-1:-1;;996:7:26;:15;;-1:-1:-1;;996:15:26;;;-1:-1:-1;604:3:114::1;:10:::0;;-1:-1:-1;;;;;;604:10:114::1;-1:-1:-1::0;;;;;604:10:114;::::1;;::::0;;624:8:::1;:20:::0;;;654:8:::1;:6;:8::i;:::-;512:157:::0;;462:1796;;640:96:43;719:10;;640:96::o;2433:187:23:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2186:115:26:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;2245:14:26::1;2255:4;2245:14;::::0;;2274:20:::1;2281:12;719:10:43::0;;640:96;2281:12:26::1;2274:20;::::0;-1:-1:-1;;;;;3269:32:127;;;3251:51;;3239:2;3224:18;2274:20:26::1;;;;;;;2186:115::o:0;1767:106::-;1685:7;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:26;;3515:2:127;1828:38:26;;;3497:21:127;3554:2;3534:18;;;3527:30;-1:-1:-1;;;3573:18:127;;;3566:46;3629:18;;1828:38:26;;;;;;;;1767:106::o;14:365:127:-;107:6;115;168:2;156:9;147:7;143:23;139:32;136:52;;;184:1;181;174:12;136:52;210:16;;-1:-1:-1;;;;;255:31:127;;245:42;;235:70;;301:1;298;291:12;235:70;369:2;354:18;;;;348:25;324:5;;348:25;;-1:-1:-1;;;14:365:127:o;384:127::-;445:10;440:3;436:20;433:1;426:31;476:4;473:1;466:15;500:4;497:1;490:15;516:380;595:1;591:12;;;;638;;;659:61;;713:4;705:6;701:17;691:27;;659:61;766:2;758:6;755:14;735:18;732:38;729:161;;812:10;807:3;803:20;800:1;793:31;847:4;844:1;837:15;875:4;872:1;865:15;729:161;;516:380;;;:::o;1027:545::-;1129:2;1124:3;1121:11;1118:448;;;1165:1;1190:5;1186:2;1179:17;1235:4;1231:2;1221:19;1305:2;1293:10;1289:19;1286:1;1282:27;1276:4;1272:38;1341:4;1329:10;1326:20;1323:47;;;-1:-1:-1;1364:4:127;1323:47;1419:2;1414:3;1410:12;1407:1;1403:20;1397:4;1393:31;1383:41;;1474:82;1492:2;1485:5;1482:13;1474:82;;;1537:17;;;1518:1;1507:13;1474:82;;;1478:3;;;1118:448;1027:545;;;:::o;1748:1352::-;1868:10;;-1:-1:-1;;;;;1890:30:127;;1887:56;;;1923:18;;:::i;:::-;1952:97;2042:6;2002:38;2034:4;2028:11;2002:38;:::i;:::-;1996:4;1952:97;:::i;:::-;2104:4;;2168:2;2157:14;;2185:1;2180:663;;;;2887:1;2904:6;2901:89;;;-1:-1:-1;2956:19:127;;;2950:26;2901:89;-1:-1:-1;;1705:1:127;1701:11;;;1697:24;1693:29;1683:40;1729:1;1725:11;;;1680:57;3003:81;;2150:944;;2180:663;974:1;967:14;;;1011:4;998:18;;-1:-1:-1;;2216:20:127;;;2334:236;2348:7;2345:1;2342:14;2334:236;;;2437:19;;;2431:26;2416:42;;2529:27;;;;2497:1;2485:14;;;;2364:19;;2334:236;;;2338:3;2598:6;2589:7;2586:19;2583:201;;;2659:19;;;2653:26;-1:-1:-1;;2742:1:127;2738:14;;;2754:3;2734:24;2730:37;2726:42;2711:58;2696:74;;2583:201;-1:-1:-1;;;;;2830:1:127;2814:14;;;2810:22;2797:36;;-1:-1:-1;1748:1352:127:o;3313:340::-;462:1796:114;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061021a5760003560e01c80638da5cb5b11610123578063c475abff116100ab578063e985e9c51161006f578063e985e9c514610695578063e9b6f449146106de578063f2fde38b146106fe578063f6a74ed71461071e578063fca247ac1461073e57600080fd5b8063c475abff146105ef578063c87b56dd14610602578063d6e4fa8614610622578063da8c229e1461064f578063ddf7fcb01461067f57600080fd5b8063a7fc7a07116100f2578063a7fc7a071461054b578063b88d4fde1461056b578063b9cce3281461058b578063bc420523146105b8578063c1a287e2146105d857600080fd5b80638da5cb5b146104d857806395d89b41146104f657806396e494e81461050b578063a22cb4651461052b57600080fd5b80634622ab03116101a657806370a082311161017557806370a08231146103f7578063715018a61461041757806372b7692b1461042c5780638a591369146104795780638a59c83e1461049957600080fd5b80634622ab031461037f5780634e543b261461039f5780635c975abb146103bf5780636352211e146103d757600080fd5b80630e297b45116101ed5780630e297b45146102d057806323b872dd146102f157806328ed4f6c14610311578063302c96501461033157806342842e0e1461035f57600080fd5b806301ffc9a71461021f57806306fdde0314610254578063081812fc14610276578063095ea7b3146102ae575b600080fd5b34801561022b57600080fd5b5061023f61023a366004612485565b610751565b60405190151581526020015b60405180910390f35b34801561026057600080fd5b506102696107a3565b60405161024b91906124f9565b34801561028257600080fd5b5061029661029136600461250c565b610835565b6040516001600160a01b03909116815260200161024b565b3480156102ba57600080fd5b506102ce6102c936600461253a565b61085c565b005b6102e36102de366004612566565b610872565b60405190815260200161024b565b3480156102fd57600080fd5b506102ce61030c36600461259e565b610889565b34801561031d57600080fd5b506102ce61032c3660046125ce565b6108c8565b34801561033d57600080fd5b5061035161034c3660046125fe565b610a27565b60405161024b929190612670565b34801561036b57600080fd5b506102ce61037a36600461259e565b610b10565b34801561038b57600080fd5b5061026961039a36600461250c565b610b2b565b3480156103ab57600080fd5b506102ce6103ba36600461268b565b610bc5565b3480156103cb57600080fd5b50600c5460ff1661023f565b3480156103e357600080fd5b506102966103f236600461250c565b610c3a565b34801561040357600080fd5b506102e361041236600461268b565b610c90565b34801561042357600080fd5b506102ce610d16565b34801561043857600080fd5b506104607fc835e302b0f33819b000dd357b0bbc12c36ec56c9ddeb92addcb21798dcc4fde81565b6040516001600160e01b0319909116815260200161024b565b34801561048557600080fd5b50600754610296906001600160a01b031681565b3480156104a557600080fd5b506104b96104b436600461250c565b610d2a565b604080516001600160a01b03909316835260208301919091520161024b565b3480156104e457600080fd5b506000546001600160a01b0316610296565b34801561050257600080fd5b50610269610e6b565b34801561051757600080fd5b5061023f61052636600461250c565b610e7a565b34801561053757600080fd5b506102ce6105463660046126bd565b610ea0565b34801561055757600080fd5b506102ce61056636600461268b565b610eb2565b34801561057757600080fd5b506102ce61058636600461279f565b610f06565b34801561059757600080fd5b506102e36105a636600461250c565b600a6020526000908152604090205481565b3480156105c457600080fd5b506102ce6105d336600461281f565b610f3e565b3480156105e457600080fd5b506102e36276a70081565b6102e36105fd366004612868565b610f93565b34801561060e57600080fd5b5061026961061d36600461250c565b6111cb565b34801561062e57600080fd5b506102e361063d36600461250c565b6000908152600a602052604090205490565b34801561065b57600080fd5b5061023f61066a36600461268b565b60096020526000908152604090205460ff1681565b34801561068b57600080fd5b506102e360085481565b3480156106a157600080fd5b5061023f6106b036600461288a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b3480156106ea57600080fd5b506102ce6106f93660046128b8565b6114a1565b34801561070a57600080fd5b506102ce61071936600461268b565b6114c2565b34801561072a57600080fd5b506102ce61073936600461268b565b611538565b6102e361074c366004612566565b611589565b60006001600160e01b031982166301ffc9a760e01b148061078257506001600160e01b031982166380ac58cd60e01b145b8061079d57506001600160e01b03198216630a3b53db60e21b145b92915050565b6060600180546107b2906128d3565b80601f01602080910402602001604051908101604052809291908181526020018280546107de906128d3565b801561082b5780601f106108005761010080835404028352916020019161082b565b820191906000526020600020905b81548152906001019060200180831161080e57829003601f168201915b5050505050905090565b600061084082611598565b506000908152600560205260409020546001600160a01b031690565b6108646115f7565b61086e828261163d565b5050565b6000610881848484600061174d565b949350505050565b61089333826119e1565b6108b85760405162461bcd60e51b81526004016108af9061290d565b60405180910390fd5b6108c3838383611a5c565b505050565b6007546008546040516302571be360e01b8152600481019190915230916001600160a01b0316906302571be390602401602060405180830381865afa158015610915573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610939919061295a565b6001600160a01b03161461095f5760405162461bcd60e51b81526004016108af90612977565b61096933836119e1565b6109a55760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b60448201526064016108af565b6007546008546040516306ab592360e01b81526004810191909152602481018490526001600160a01b038381166044830152909116906306ab5923906064016020604051808303816000875af1158015610a03573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c39190612999565b60006060610a33611bcd565b600754600854604051630178b8bf60e01b81526001600160a01b0390921691630178b8bf91610a689160040190815260200190565b602060405180830381865afa158015610a85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa9919061295a565b6001600160a01b03168484604051610ac29291906129b2565b6000604051808303816000865af19150503d8060008114610aff576040519150601f19603f3d011682016040523d82523d6000602084013e610b04565b606091505b50915091509250929050565b6108c383838360405180602001604052806000815250610f06565b600b6020526000908152604090208054610b44906128d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610b70906128d3565b8015610bbd5780601f10610b9257610100808354040283529160200191610bbd565b820191906000526020600020905b815481529060010190602001808311610ba057829003601f168201915b505050505081565b610bcd611bcd565b600754600854604051630c4b7b8560e11b815260048101919091526001600160a01b03838116602483015290911690631896f70a90604401600060405180830381600087803b158015610c1f57600080fd5b505af1158015610c33573d6000803e3d6000fd5b5050505050565b6000818152600a60205260408120544210610c875760405162461bcd60e51b815260206004820152600d60248201526c1b19585cd948195e1c1a5c9959609a1b60448201526064016108af565b61079d82611c27565b60006001600160a01b038216610cfa5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016108af565b506001600160a01b031660009081526004602052604090205490565b610d1e611bcd565b610d286000611c87565b565b600754604051630178b8bf60e01b81527fd0340a34011af087b374bbdc5136a48a841af1b55b0af1143ced23c89cf182c960048201526000918291829182916001600160a01b0390911690630178b8bf90602401602060405180830381865afa158015610d9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbf919061295a565b6040516317ee1a1960e01b81527fd0340a34011af087b374bbdc5136a48a841af1b55b0af1143ced23c89cf182c960048201523060248201526001600160a01b0391909116906317ee1a1990604401606060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f91906129c2565b50909250905081610e608683612a1b565b935093505050915091565b6060600280546107b2906128d3565b6000818152600a60205260408120544290610e99906276a70090612a32565b1092915050565b610ea86115f7565b61086e8282611cd7565b610eba611bcd565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f0a8bb31534c0ed46f380cb867bd5c803a189ced9a764e30b3a4991a9901d74749190a250565b610f1033836119e1565b610f2c5760405162461bcd60e51b81526004016108af9061290d565b610f3884848484611ce2565b50505050565b3360009081526009602052604090205460ff16610f6d5760405162461bcd60e51b81526004016108af90612a45565b80516020808301919091206000818152600b90925260409091208190610f388482612abb565b6007546008546040516302571be360e01b8152600481019190915260009130916001600160a01b03909116906302571be390602401602060405180830381865afa158015610fe5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611009919061295a565b6001600160a01b03161461102f5760405162461bcd60e51b81526004016108af90612977565b3360009081526009602052604090205460ff1661105e5760405162461bcd60e51b81526004016108af90612a45565b600082116110a15760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210323ab930ba34b7b760811b60448201526064016108af565b6110aa82611d15565b6000838152600a6020526040902054426110c76276a70083612a32565b10156111065760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd081c9959da5cdd195c995960921b60448201526064016108af565b6111136276a70084612a32565b6276a7006111218584612a32565b61112b9190612a32565b1161116a5760405162461bcd60e51b815260206004820152600f60248201526e667574757265206f766572666c6f7760881b60448201526064016108af565b6111748382612a32565b6000858152600a6020526040908190208290555190915084907f9b87a00e30f1ac65d898f070f8a3488fe60517182d0a2098e1b4b93a54aa9bd6906111bc9084815260200190565b60405180910390a29392505050565b600854600754604051630178b8bf60e01b815260048101839052606092916001600160a01b0316906000908290630178b8bf90602401602060405180830381865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611242919061295a565b6040516330dca1c360e21b81526004810185905230602482015263641af18160e11b60448201526001600160a01b03919091169063c372870c90606401602060405180830381865afa15801561129c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c0919061295a565b604080516020810186905290810187905290915060009060600160408051808303601f190181528282528051602091820120908301825260008084529151630178b8bf60e01b8152600481018290529093506001600160a01b03861690630178b8bf90602401602060405180830381865afa158015611343573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611367919061295a565b90506001600160a01b038116156114135760408051631674750f60e21b815260048101859052602481019190915260126044820152714c374c5f4944454e544954595f494d41474560701b60648201526001600160a01b038216906359d1d43c90608401600060405180830381865afa1580156113e8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114109190810190612b7b565b91505b6000888152600b602052604090819020905163641af18160e11b81526001600160a01b0386169163c835e30291611450918c918790600401612bf2565b600060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114959190810190612b7b565b98975050505050505050565b6114a9611bcd565b80156114ba576114b7611d80565b50565b6114b7611dd2565b6114ca611bcd565b6001600160a01b03811661152f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108af565b6114b781611c87565b611540611bcd565b6001600160a01b038116600081815260096020526040808220805460ff19169055517f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811139190a250565b6000610881848484600161174d565b6000818152600360205260409020546001600160a01b03166114b75760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108af565b600c5460ff1615610d285760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108af565b600061164882611c27565b9050806001600160a01b0316836001600160a01b0316036116b55760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016108af565b336001600160a01b03821614806116d157506116d181336106b0565b6117435760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016108af565b6108c38383611e0f565b6007546008546040516302571be360e01b8152600481019190915260009130916001600160a01b03909116906302571be390602401602060405180830381865afa15801561179f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c3919061295a565b6001600160a01b0316146117e95760405162461bcd60e51b81526004016108af90612977565b3360009081526009602052604090205460ff166118185760405162461bcd60e51b81526004016108af90612a45565b61182185610e7a565b61185d5760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420617661696c61626c6560981b60448201526064016108af565b60006118698442612a32565b90506118786276a70042612a32565b6118856276a70083612a32565b116118c45760405162461bcd60e51b815260206004820152600f60248201526e667574757265206f766572666c6f7760881b60448201526064016108af565b6118cd84611d15565b6000868152600a6020908152604080832084905560039091529020546001600160a01b0316156119005761190086611e7d565b61190a8587611f20565b8215611994576007546008546040516306ab592360e01b81526004810191909152602481018890526001600160a01b038781166044830152909116906306ab5923906064016020604051808303816000875af115801561196e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119929190612999565b505b846001600160a01b0316867fb3d987963d01b2f68493b4bdb130988f157ea43070d4ad840fee0466ed9370d9836040516119d091815260200190565b60405180910390a395945050505050565b6000806119ed83610c3a565b9050806001600160a01b0316846001600160a01b03161480611a285750836001600160a01b0316611a1d84610835565b6001600160a01b0316145b8061088157506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff16610881565b826001600160a01b0316611a6f82611c27565b6001600160a01b031614611a955760405162461bcd60e51b81526004016108af90612c98565b6001600160a01b038216611af75760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108af565b611b0483838360016120b9565b826001600160a01b0316611b1782611c27565b6001600160a01b031614611b3d5760405162461bcd60e51b81526004016108af90612c98565b600081815260056020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260048552838620805460001901905590871680865283862080546001019055868652600390945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000546001600160a01b03163314610d285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108af565b6000818152600360205260408120546001600160a01b03168061079d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108af565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61086e338383612141565b611ced848484611a5c565b611cf98484848461220f565b610f385760405162461bcd60e51b81526004016108af90612cdd565b600080611d2183610d2a565b9150915080341015611d675760405162461bcd60e51b815260206004820152600f60248201526e3737ba1032b737bab3b41031b7b4b760891b60448201526064016108af565b80156108c3576108c36001600160a01b0383168261230d565b611d88612426565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b611dda6115f7565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611db53390565b600081815260056020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611e4482611c27565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611e8882611c27565b9050611e988160008460016120b9565b611ea182611c27565b600083815260056020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526004845282852080546000190190558785526003909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b038216611f765760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108af565b6000818152600360205260409020546001600160a01b031615611fdb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108af565b611fe96000838360016120b9565b6000818152600360205260409020546001600160a01b03161561204e5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108af565b6001600160a01b038216600081815260046020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001811115610f38576001600160a01b038416156120ff576001600160a01b038416600090815260046020526040812080548392906120f9908490612d2f565b90915550505b6001600160a01b03831615610f38576001600160a01b03831660009081526004602052604081208054839290612136908490612a32565b909155505050505050565b816001600160a01b0316836001600160a01b0316036121a25760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108af565b6001600160a01b03838116600081815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60006001600160a01b0384163b1561230557604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612253903390899088908890600401612d42565b6020604051808303816000875af192505050801561228e575060408051601f3d908101601f1916820190925261228b91810190612d7f565b60015b6122eb573d8080156122bc576040519150601f19603f3d011682016040523d82523d6000602084013e6122c1565b606091505b5080516000036122e35760405162461bcd60e51b81526004016108af90612cdd565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610881565b506001610881565b8047101561235d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108af565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146123aa576040519150601f19603f3d011682016040523d82523d6000602084013e6123af565b606091505b50509050806108c35760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108af565b600c5460ff16610d285760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108af565b6001600160e01b0319811681146114b757600080fd5b60006020828403121561249757600080fd5b81356124a28161246f565b9392505050565b60005b838110156124c45781810151838201526020016124ac565b50506000910152565b600081518084526124e58160208601602086016124a9565b601f01601f19169290920160200192915050565b6020815260006124a260208301846124cd565b60006020828403121561251e57600080fd5b5035919050565b6001600160a01b03811681146114b757600080fd5b6000806040838503121561254d57600080fd5b823561255881612525565b946020939093013593505050565b60008060006060848603121561257b57600080fd5b83359250602084013561258d81612525565b929592945050506040919091013590565b6000806000606084860312156125b357600080fd5b83356125be81612525565b9250602084013561258d81612525565b600080604083850312156125e157600080fd5b8235915060208301356125f381612525565b809150509250929050565b6000806020838503121561261157600080fd5b823567ffffffffffffffff8082111561262957600080fd5b818501915085601f83011261263d57600080fd5b81358181111561264c57600080fd5b86602082850101111561265e57600080fd5b60209290920196919550909350505050565b821515815260406020820152600061088160408301846124cd565b60006020828403121561269d57600080fd5b81356124a281612525565b803580151581146126b857600080fd5b919050565b600080604083850312156126d057600080fd5b82356126db81612525565b91506126e9602084016126a8565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612731576127316126f2565b604052919050565b600067ffffffffffffffff821115612753576127536126f2565b50601f01601f191660200190565b600061277461276f84612739565b612708565b905082815283838301111561278857600080fd5b828260208301376000602084830101529392505050565b600080600080608085870312156127b557600080fd5b84356127c081612525565b935060208501356127d081612525565b925060408501359150606085013567ffffffffffffffff8111156127f357600080fd5b8501601f8101871361280457600080fd5b61281387823560208401612761565b91505092959194509250565b60006020828403121561283157600080fd5b813567ffffffffffffffff81111561284857600080fd5b8201601f8101841361285957600080fd5b61088184823560208401612761565b6000806040838503121561287b57600080fd5b50508035926020909101359150565b6000806040838503121561289d57600080fd5b82356128a881612525565b915060208301356125f381612525565b6000602082840312156128ca57600080fd5b6124a2826126a8565b600181811c908216806128e757607f821691505b60208210810361290757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60006020828403121561296c57600080fd5b81516124a281612525565b6020808252600890820152676e6f74206c69766560c01b604082015260600190565b6000602082840312156129ab57600080fd5b5051919050565b8183823760009101908152919050565b6000806000606084860312156129d757600080fd5b83516129e281612525565b6020850151604086015191945092506129fa81612525565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761079d5761079d612a05565b8082018082111561079d5761079d612a05565b6020808252600e908201526d3737ba1031b7b73a3937b63632b960911b604082015260600190565b601f8211156108c357600081815260208120601f850160051c81016020861015612a945750805b601f850160051c820191505b81811015612ab357828155600101612aa0565b505050505050565b815167ffffffffffffffff811115612ad557612ad56126f2565b612ae981612ae384546128d3565b84612a6d565b602080601f831160018114612b1e5760008415612b065750858301515b600019600386901b1c1916600185901b178555612ab3565b600085815260208120601f198616915b82811015612b4d57888601518255948401946001909101908401612b2e565b5085821015612b6b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215612b8d57600080fd5b815167ffffffffffffffff811115612ba457600080fd5b8201601f81018413612bb557600080fd5b8051612bc361276f82612739565b818152856020838501011115612bd857600080fd5b612be98260208301602086016124a9565b95945050505050565b8381526000602060608184015260008554612c0c816128d3565b8060608701526080600180841660008114612c2e5760018114612c4857612c76565b60ff1985168984015283151560051b890183019550612c76565b8a6000528660002060005b85811015612c6e5781548b8201860152908301908801612c53565b8a0184019650505b50505050508381036040850152612c8d81866124cd565b979650505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b8181038181111561079d5761079d612a05565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612d75908301846124cd565b9695505050505050565b600060208284031215612d9157600080fd5b81516124a28161246f56fea26469706673582212209c100dd13fe3aa7c5bbae7dba1909bec9773199edca180ee3966fac608ef58ff64736f6c63430008110033","sourceMap":"462:1796:114:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10743:247:60;;;;;;;;;;-1:-1:-1;10743:247:60;;;;;:::i;:::-;;:::i;:::-;;;565:14:127;;558:22;540:41;;528:2;513:18;10743:247:60;;;;;;;;2471:98:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;;;;;-1:-1:-1;3935:167:38;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:127;;;1679:51;;1667:2;1652:18;3935:167:38;1533:203:127;1016:136:114;;;;;;;;;;-1:-1:-1;1016:136:114;;;;;:::i;:::-;;:::i;:::-;;6815:157:60;;;;;;:::i;:::-;;:::i;:::-;;;2731:25:127;;;2719:2;2704:18;6815:157:60;2585:177:127;4612:326:38;;;;;;;;;;-1:-1:-1;4612:326:38;;;;;:::i;:::-;;:::i;9134:208:60:-;;;;;;;;;;-1:-1:-1;9134:208:60;;;;;:::i;:::-;;:::i;4687:231::-;;;;;;;;;;-1:-1:-1;4687:231:60;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;5004:179:38:-;;;;;;;;;;-1:-1:-1;5004:179:38;;;;;:::i;:::-;;:::i;850:39:60:-;;;;;;;;;;-1:-1:-1;850:39:60;;;;;:::i;:::-;;:::i;4304:121::-;;;;;;;;;;-1:-1:-1;4304:121:60;;;;;:::i;:::-;;:::i;1615:84:26:-;;;;;;;;;;-1:-1:-1;1685:7:26;;;;1615:84;;3211:251:60;;;;;;;;;;-1:-1:-1;3211:251:60;;;;;:::i;:::-;;:::i;1929:204:38:-;;;;;;;;;;-1:-1:-1;1929:204:38;;;;;:::i;:::-;;:::i;1831:101:23:-;;;;;;;;;;;;;:::i;896:96:60:-;;;;;;;;;;;;947:44;896:96;;;;;-1:-1:-1;;;;;;4862:33:127;;;4844:52;;4832:2;4817:18;896:96:60;4700:202:127;672:15:61;;;;;;;;;;-1:-1:-1;672:15:61;;;;-1:-1:-1;;;;;672:15:61;;;5169:262:60;;;;;;;;;;-1:-1:-1;5169:262:60;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;5321:32:127;;;5303:51;;5385:2;5370:18;;5363:34;;;;5276:18;5169:262:60;5129:274:127;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;2633:102:38;;;;;;;;;;;;;:::i;5853:179:60:-;;;;;;;;;;-1:-1:-1;5853:179:60;;;;;:::i;:::-;;:::i;1258:167:114:-;;;;;;;;;;-1:-1:-1;1258:167:114;;;;;:::i;:::-;;:::i;3645:163:60:-;;;;;;;;;;-1:-1:-1;3645:163:60;;;;;:::i;:::-;;:::i;5249:314:38:-;;;;;;;;;;-1:-1:-1;5249:314:38;;;;;:::i;:::-;;:::i;804:40:60:-;;;;;;;;;;-1:-1:-1;804:40:60;;;;;:::i;:::-;;;;;;;;;;;;;;9930:216;;;;;;;;;;-1:-1:-1;9930:216:60;;;;;:::i;:::-;;:::i;263:43:61:-;;;;;;;;;;;;299:7;263:43;;8363:572:60;;;;;;:::i;:::-;;:::i;1586:670:114:-;;;;;;;;;;-1:-1:-1;1586:670:114;;;;;:::i;:::-;;:::i;5570:106:60:-;;;;;;;;;;-1:-1:-1;5570:106:60;;;;;:::i;:::-;5634:4;5657:12;;;:8;:12;;;;;;;5570:106;863:41:61;;;;;;;;;;-1:-1:-1;863:41:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;757:23;;;;;;;;;;;;;;;;4388:162:38;;;;;;;;;;-1:-1:-1;4388:162:38;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:38;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;746:164:114;;;;;;;;;;-1:-1:-1;746:164:114;;;;;:::i;:::-;;:::i;2081:198:23:-;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;3975:169:60:-;;;;;;;;;;-1:-1:-1;3975:169:60;;;;;:::i;:::-;;:::i;6327:161::-;;;;;;:::i;:::-;;:::i;10743:247::-;10838:4;-1:-1:-1;;;;;;10861:33:60;;-1:-1:-1;;;10861:33:60;;:77;;-1:-1:-1;;;;;;;10913:25:60;;-1:-1:-1;;;10913:25:60;10861:77;:122;;;-1:-1:-1;;;;;;;10957:26:60;;-1:-1:-1;;;10957:26:60;10861:122;10854:129;10743:247;-1:-1:-1;;10743:247:60:o;2471:98:38:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:38;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:38;;3935:167::o;1016:136:114:-;1239:19:26;:17;:19::i;:::-;1119:26:114::1;1133:2;1137:7;1119:13;:26::i;:::-;1016:136:::0;;:::o;6815:157:60:-;6907:4;6928:37;6938:2;6942:5;6949:8;6959:5;6928:9;:37::i;:::-;6921:44;6815:157;-1:-1:-1;;;;6815:157:60:o;4612:326:38:-;4801:41;719:10:43;4834:7:38;4801:18;:41::i;:::-;4793:99;;;;-1:-1:-1;;;4793:99:38;;;;;;;:::i;:::-;;;;;;;;;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;:::-;4612:326;;;:::o;9134:208:60:-;2751:3;;2761:8;;2751:19;;-1:-1:-1;;;2751:19:60;;;;;2731:25:127;;;;2782:4:60;;-1:-1:-1;;;;;2751:3:60;;:9;;2704:18:127;;2751:19:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2751:36:60;;2743:57;;;;-1:-1:-1;;;2743:57:60;;;;;;;:::i;:::-;9221:35:::1;9240:10;9252:3;9221:18;:35::i;:::-;9213:61;;;::::0;-1:-1:-1;;;9213:61:60;;10697:2:127;9213:61:60::1;::::0;::::1;10679:21:127::0;10736:2;10716:18;;;10709:30;-1:-1:-1;;;10755:18:127;;;10748:43;10808:18;;9213:61:60::1;10495:337:127::0;9213:61:60::1;9284:3;::::0;9304:8:::1;::::0;9284:51:::1;::::0;-1:-1:-1;;;9284:51:60;;::::1;::::0;::::1;11039:25:127::0;;;;11080:18;;;11073:34;;;-1:-1:-1;;;;;11143:32:127;;;11123:18;;;11116:60;9284:3:60;;::::1;::::0;:19:::1;::::0;11012:18:127;;9284:51:60::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4687:231::-:0;4787:4;4793:12;1094:13:23;:11;:13::i;:::-;4873:3:60::1;::::0;4886:8:::1;::::0;4873:22:::1;::::0;-1:-1:-1;;;4873:22:60;;-1:-1:-1;;;;;4873:3:60;;::::1;::::0;:12:::1;::::0;:22:::1;::::0;::::1;;2731:25:127::0;;;2719:2;2704:18;;2585:177;4873:22:60::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4873:27:60::1;4901:9;;4873:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4866:45;;;;4687:231:::0;;;;;:::o;5004:179:38:-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;850::60:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4304:121::-;1094:13:23;:11;:13::i;:::-;4382:3:60::1;::::0;4398:8:::1;::::0;4382:36:::1;::::0;-1:-1:-1;;;4382:36:60;;::::1;::::0;::::1;11826:25:127::0;;;;-1:-1:-1;;;;;11887:32:127;;;11867:18;;;11860:60;4382:3:60;;::::1;::::0;:15:::1;::::0;11799:18:127;;4382:36:60::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4304:121:::0;:::o;3211:251::-;3292:7;3363:17;;;:8;:17;;;;;;3383:15;-1:-1:-1;3355:61:60;;;;-1:-1:-1;;;3355:61:60;;12133:2:127;3355:61:60;;;12115:21:127;12172:2;12152:18;;;12145:30;-1:-1:-1;;;12191:18:127;;;12184:43;12244:18;;3355:61:60;11931:337:127;3355:61:60;3433:22;3447:7;3433:13;:22::i;1929:204:38:-;2001:7;-1:-1:-1;;;;;2028:19:38;;2020:73;;;;-1:-1:-1;;;2020:73:38;;12475:2:127;2020:73:38;;;12457:21:127;12514:2;12494:18;;;12487:30;12553:34;12533:18;;;12526:62;-1:-1:-1;;;12604:18:127;;;12597:39;12653:19;;2020:73:38;12273:405:127;2020:73:38;-1:-1:-1;;;;;;2110:16:38;;;;;:9;:16;;;;;;;1929:204::o;1831:101:23:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;5169:262:60:-;5314:3;;:23;;-1:-1:-1;;;5314:23:60;;1035:66;5314:23;;;2731:25:127;5224:7:60;;;;;;;;-1:-1:-1;;;;;5314:3:60;;;;:12;;2704:18:127;;5314:23:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5295:77;;-1:-1:-1;;;5295:77:60;;1035:66;5295:77;;;11826:25:127;5366:4:60;11867:18:127;;;11860:60;-1:-1:-1;;;;;5295:51:60;;;;;;;11799:18:127;;5295:77:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5252:120:60;;-1:-1:-1;5252:120:60;-1:-1:-1;5252:120:60;5404:19;5414:9;5252:120;5404:19;:::i;:::-;5382:42;;;;;;5169:262;;;:::o;2633:102:38:-;2689:13;2721:7;2714:14;;;;;:::i;5853:179:60:-;5913:4;5980:12;;;:8;:12;;;;;;6010:15;;5980:27;;299:7:61;;5980:27:60;:::i;:::-;:45;;5853:179;-1:-1:-1;;5853:179:60:o;1258:167:114:-;1239:19:26;:17;:19::i;:::-;1375:43:114::1;1399:8;1409;1375:23;:43::i;3645:163:60:-:0;1094:13:23;:11;:13::i;:::-;-1:-1:-1;;;;;3727:24:60;::::1;;::::0;;;:11:::1;:24;::::0;;;;;:31;;-1:-1:-1;;3727:31:60::1;3754:4;3727:31;::::0;;3773:28;::::1;::::0;3727:24;3773:28:::1;3645:163:::0;:::o;5249:314:38:-;5417:41;719:10:43;5450:7:38;5417:18;:41::i;:::-;5409:99;;;;-1:-1:-1;;;5409:99:38;;;;;;;:::i;:::-;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;9930:216:60:-;2878:10;2866:23;;;;:11;:23;;;;;;;;2858:50;;;;-1:-1:-1;;;2858:50:60;;;;;;;:::i;:::-;10039:23;;::::1;::::0;;::::1;::::0;;;;10022:14:::1;10116:15:::0;;;:5:::1;:15:::0;;;;;;;10039:23;;10116::::1;10055:5:::0;10116:15;:23:::1;:::i;8363:572::-:0;2751:3;;2761:8;;2751:19;;-1:-1:-1;;;2751:19:60;;;;;2731:25:127;;;;8464:4:60;;2782;;-1:-1:-1;;;;;2751:3:60;;;;:9;;2704:18:127;;2751:19:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2751:36:60;;2743:57;;;;-1:-1:-1;;;2743:57:60;;;;;;;:::i;:::-;2878:10:::1;2866:23;::::0;;;:11:::1;:23;::::0;;;;;::::1;;2858:50;;;;-1:-1:-1::0;;;2858:50:60::1;;;;;;;:::i;:::-;8500:1:::2;8488:9;:13;8480:42;;;::::0;-1:-1:-1;;;8480:42:60;;16318:2:127;8480:42:60::2;::::0;::::2;16300:21:127::0;16357:2;16337:18;;;16330:30;-1:-1:-1;;;16376:18:127;;;16369:46;16432:18;;8480:42:60::2;16116:340:127::0;8480:42:60::2;8532:26;8548:9;8532:15;:26::i;:::-;8577:17;8597:13:::0;;;:8:::2;:13;::::0;;;;;8656:15:::2;8628:24;299:7:61;8597:13:60::0;8628:24:::2;:::i;:::-;:43;;8620:70;;;::::0;-1:-1:-1;;;8620:70:60;;16663:2:127;8620:70:60::2;::::0;::::2;16645:21:127::0;16702:2;16682:18;;;16675:30;-1:-1:-1;;;16721:18:127;;;16714:44;16775:18;;8620:70:60::2;16461:338:127::0;8620:70:60::2;8747:24;299:7:61;8747:9:60::0;:24:::2;:::i;:::-;299:7:61;8708:21:60;8720:9:::0;8708;:21:::2;:::i;:::-;:36;;;;:::i;:::-;:63;8700:91;;;::::0;-1:-1:-1;;;8700:91:60;;17006:2:127;8700:91:60::2;::::0;::::2;16988:21:127::0;17045:2;17025:18;;;17018:30;-1:-1:-1;;;17064:18:127;;;17057:45;17119:18;;8700:91:60::2;16804:339:127::0;8700:91:60::2;8802:22;8815:9:::0;8802:22;::::2;:::i;:::-;8834:13;::::0;;;:8:::2;:13;::::0;;;;;;:25;;;8875:27;8802:22;;-1:-1:-1;8843:3:60;;8875:27:::2;::::0;::::2;::::0;8802:22;2731:25:127;;2719:2;2704:18;;2585:177;8875:27:60::2;;;;;;;;8919:9:::0;8363:572;-1:-1:-1;;;8363:572:60:o;1586:670:114:-;1701:8;;1731:3;;1782:24;;-1:-1:-1;;;1782:24:114;;;;;2731:25:127;;;1656:13:114;;1701:8;-1:-1:-1;;;;;1731:3:114;;1681:17;;1731:3;;1782:13;;2704:18:127;;1782:24:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1761:104;;-1:-1:-1;;;1761:104:114;;;;;17348:25:127;;;1839:4:114;17389:18:127;;;17382:60;-1:-1:-1;;;17458:18:127;;;17451:61;-1:-1:-1;;;;;1761:58:114;;;;;;;17321:18:127;;1761:104:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1905:41;;;;;;17680:19:127;;;17715:12;;;17708:28;;;1744:121:114;;-1:-1:-1;1875:17:114;;17752:12:127;;1905:41:114;;;;;;-1:-1:-1;;1905:41:114;;;;;;1895:52;;1905:41;1895:52;;;;1966:32;;;;;-1:-1:-1;1966:32:114;;;2028:24;;-1:-1:-1;;;2028:24:114;;;;;2731:25:127;;;1895:52:114;;-1:-1:-1;;;;;;2028:13:114;;;;;2704:18:127;;2028:24:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2008:44;-1:-1:-1;;;;;;2066:23:114;;;2062:107;;2107:62;;;-1:-1:-1;;;2107:62:114;;;;;17987:25:127;;;18028:18;;;18021:30;;;;18087:2;18067:18;;;18060:30;-1:-1:-1;;;18106:18:127;;;18099:48;-1:-1:-1;;;;;2107:29:114;;;;;18164:19:127;;2107:62:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2107:62:114;;;;;;;;;;;;:::i;:::-;2091:78;;2062:107;2223:10;;;;:5;:10;;;;;;;2186:63;;-1:-1:-1;;;2186:63:114;;-1:-1:-1;;;;;2186:31:114;;;;;:63;;2218:3;;2235:13;;2186:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2186:63:114;;;;;;;;;;;;:::i;:::-;2179:70;1586:670;-1:-1:-1;;;;;;;;1586:670:114:o;746:164::-;1094:13:23;:11;:13::i;:::-;822:6:114::1;818:86;;;844:10;:8;:10::i;:::-;746:164:::0;:::o;818:86::-:1;885:8;:6;:8::i;2081:198:23:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;20220:2:127;2161:73:23::1;::::0;::::1;20202:21:127::0;20259:2;20239:18;;;20232:30;20298:34;20278:18;;;20271:62;-1:-1:-1;;;20349:18:127;;;20342:36;20395:19;;2161:73:23::1;20018:402:127::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;3975:169:60:-:0;1094:13:23;:11;:13::i;:::-;-1:-1:-1;;;;;4060:24:60;::::1;4087:5;4060:24:::0;;;:11:::1;:24;::::0;;;;;:32;;-1:-1:-1;;4060:32:60::1;::::0;;4107:30;::::1;::::0;4087:5;4107:30:::1;3975:169:::0;:::o;6327:161::-;6424:4;6445:36;6455:2;6459:5;6466:8;6476:4;6445:9;:36::i;13466:133:38:-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;13539:53;;;;-1:-1:-1;;;13539:53:38;;20627:2:127;13539:53:38;;;20609:21:127;20666:2;20646:18;;;20639:30;-1:-1:-1;;;20685:18:127;;;20678:54;20749:18;;13539:53:38;20425:348:127;1767:106:26;1685:7;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:26;;20980:2:127;1828:38:26;;;20962:21:127;21019:2;20999:18;;;20992:30;-1:-1:-1;;;21038:18:127;;;21031:46;21094:18;;1828:38:26;20778:340:127;3468:406:38;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;-1:-1:-1;;;;;3605:11:38;:2;-1:-1:-1;;;;;3605:11:38;;3597:57;;;;-1:-1:-1;;;3597:57:38;;21325:2:127;3597:57:38;;;21307:21:127;21364:2;21344:18;;;21337:30;21403:34;21383:18;;;21376:62;-1:-1:-1;;;21454:18:127;;;21447:31;21495:19;;3597:57:38;21123:397:127;3597:57:38;719:10:43;-1:-1:-1;;;;;3686:21:38;;;;:62;;-1:-1:-1;3711:37:38;3728:5;719:10:43;4388:162:38;:::i;3711:37::-;3665:170;;;;-1:-1:-1;;;3665:170:38;;21727:2:127;3665:170:38;;;21709:21:127;21766:2;21746:18;;;21739:30;21805:34;21785:18;;;21778:62;21876:31;21856:18;;;21849:59;21925:19;;3665:170:38;21525:425:127;3665:170:38;3846:21;3855:2;3859:7;3846:8;:21::i;7370:753:60:-;2751:3;;2761:8;;2751:19;;-1:-1:-1;;;2751:19:60;;;;;2731:25:127;;;;7496:4:60;;2782;;-1:-1:-1;;;;;2751:3:60;;;;:9;;2704:18:127;;2751:19:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2751:36:60;;2743:57;;;;-1:-1:-1;;;2743:57:60;;;;;;;:::i;:::-;2878:10:::1;2866:23;::::0;;;:11:::1;:23;::::0;;;;;::::1;;2858:50;;;;-1:-1:-1::0;;;2858:50:60::1;;;;;;;:::i;:::-;7520:14:::2;7530:3;7520:9;:14::i;:::-;7512:40;;;::::0;-1:-1:-1;;;7512:40:60;;22157:2:127;7512:40:60::2;::::0;::::2;22139:21:127::0;22196:2;22176:18;;;22169:30;-1:-1:-1;;;22215:18:127;;;22208:43;22268:18;;7512:40:60::2;21955:337:127::0;7512:40:60::2;7562:16;7581:27;7599:9:::0;7581:15:::2;:27;:::i;:::-;7562:46:::0;-1:-1:-1;7652:30:60::2;299:7:61;7652:15:60;:30;:::i;:::-;7626:23;299:7:61;7626:8:60::0;:23:::2;:::i;:::-;:56;7618:84;;;::::0;-1:-1:-1;;;7618:84:60;;17006:2:127;7618:84:60::2;::::0;::::2;16988:21:127::0;17045:2;17025:18;;;17018:30;-1:-1:-1;;;17064:18:127;;;17057:45;17119:18;;7618:84:60::2;16804:339:127::0;7618:84:60::2;7712:26;7728:9;7712:15;:26::i;:::-;7749:13;::::0;;;:8:::2;:13;::::0;;;;;;;:24;;;6930:7:38;:16;;;;;;-1:-1:-1;;;;;6930:16:38;7787:27:60;7783:122:::2;;7884:10;7890:3;7884:5;:10::i;:::-;7914:18;7920:6;7928:3;7914:5;:18::i;:::-;7946:15;7942:97;;;7977:3;::::0;7997:8:::2;::::0;7977:51:::2;::::0;-1:-1:-1;;;7977:51:60;;::::2;::::0;::::2;11039:25:127::0;;;;11080:18;;;11073:34;;;-1:-1:-1;;;;;11143:32:127;;;11123:18;;;11116:60;7977:3:60;;::::2;::::0;:19:::2;::::0;11012:18:127;;7977:51:60::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7942:97;8074:6;-1:-1:-1::0;;;;;8054:37:60::2;8069:3;8054:37;8082:8;8054:37;;;;2731:25:127::0;;2719:2;2704:18;;2585:177;8054:37:60::2;;;;;;;;8108:8:::0;7370:753;-1:-1:-1;;;;;7370:753:60:o;2458:255::-;2552:4;2568:13;2584:16;2592:7;2584;:16::i;:::-;2568:32;;2629:5;-1:-1:-1;;;;;2618:16:60;:7;-1:-1:-1;;;;;2618:16:60;;:51;;;;2662:7;-1:-1:-1;;;;;2638:31:60;:20;2650:7;2638:11;:20::i;:::-;-1:-1:-1;;;;;2638:31:60;;2618:51;:87;;;-1:-1:-1;;;;;;4508:25:38;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;2673:32:60;4388:162:38;11423:1233;11577:4;-1:-1:-1;;;;;11550:31:38;:23;11565:7;11550:14;:23::i;:::-;-1:-1:-1;;;;;11550:31:38;;11542:81;;;;-1:-1:-1;;;11542:81:38;;;;;;;:::i;:::-;-1:-1:-1;;;;;11641:16:38;;11633:65;;;;-1:-1:-1;;;11633:65:38;;22905:2:127;11633:65:38;;;22887:21:127;22944:2;22924:18;;;22917:30;22983:34;22963:18;;;22956:62;-1:-1:-1;;;23034:18:127;;;23027:34;23078:19;;11633:65:38;22703:400:127;11633:65:38;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;-1:-1:-1;;;;;11851:31:38;:23;11866:7;11851:14;:23::i;:::-;-1:-1:-1;;;;;11851:31:38;;11843:81;;;;-1:-1:-1;;;11843:81:38;;;;;;;:::i;:::-;11993:24;;;;:15;:24;;;;;;;;11986:31;;-1:-1:-1;;;;;;11986:31:38;;;;;;-1:-1:-1;;;;;12461:15:38;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12461:20:38;;;12495:13;;;;;;;;;:18;;11986:31;12495:18;;;12533:16;;;:7;:16;;;;;;:21;;;;;;;;;;12570:27;;12009:7;;12570:27;;;4612:326;;;:::o;1359:130:23:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:43;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;23310:2:127;1414:68:23;;;23292:21:127;;;23329:18;;;23322:30;23388:34;23368:18;;;23361:62;23440:18;;1414:68:23;23108:356:127;2190:219:38;2262:7;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;;2324:56;;;;-1:-1:-1;;;2324:56:38;;20627:2:127;2324:56:38;;;20609:21:127;20666:2;20646:18;;;20639:30;-1:-1:-1;;;20685:18:127;;;20678:54;20749:18;;2324:56:38;20425:348:127;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;4169:153:38:-;4263:52;719:10:43;4296:8:38;4306;4263:18;:52::i;6424:305::-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;-1:-1:-1;;;6612:110:38;;;;;;;:::i;10266:255:60:-;10331:20;10353:15;10372:17;10379:9;10372:6;:17::i;:::-;10330:59;;;;10420:7;10407:9;:20;;10399:48;;;;-1:-1:-1;;;10399:48:60;;24090:2:127;10399:48:60;;;24072:21:127;24129:2;24109:18;;;24102:30;-1:-1:-1;;;24148:18:127;;;24141:45;24203:18;;10399:48:60;23888:339:127;10399:48:60;10461:11;;10457:57;;10474:40;-1:-1:-1;;;;;10474:31:60;;10506:7;10474:31;:40::i;2433:117:26:-;1486:16;:14;:16::i;:::-;2491:7:::1;:15:::0;;-1:-1:-1;;2491:15:26::1;::::0;;2521:22:::1;719:10:43::0;2530:12:26::1;2521:22;::::0;-1:-1:-1;;;;;1697:32:127;;;1679:51;;1667:2;1652:18;2521:22:26::1;;;;;;;2433:117::o:0;2186:115::-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;2245:14:26::1;2255:4;2245:14;::::0;;2274:20:::1;2281:12;719:10:43::0;;640:96;12768:171:38;12842:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;12842:29:38;-1:-1:-1;;;;;12842:29:38;;;;;;;;:24;;12895:23;12842:24;12895:14;:23::i;:::-;-1:-1:-1;;;;;12886:46:38;;;;;;;;;;;12768:171;;:::o;10337:762::-;10396:13;10412:23;10427:7;10412:14;:23::i;:::-;10396:39;;10446:51;10467:5;10482:1;10486:7;10495:1;10446:20;:51::i;:::-;10607:23;10622:7;10607:14;:23::i;:::-;10675:24;;;;:15;:24;;;;;;;;10668:31;;-1:-1:-1;;;;;;10668:31:38;;;;;;-1:-1:-1;;;;;10915:16:38;;;;;:9;:16;;;;;:21;;-1:-1:-1;;10915:21:38;;;10963:16;;;:7;:16;;;;;;10956:23;;;;;;;10995:36;10599:31;;-1:-1:-1;10691:7:38;;10995:36;;10675:24;;10995:36;1016:136:114;;:::o;9091:920:38:-;-1:-1:-1;;;;;9170:16:38;;9162:61;;;;-1:-1:-1;;;9162:61:38;;24434:2:127;9162:61:38;;;24416:21:127;;;24453:18;;;24446:30;24512:34;24492:18;;;24485:62;24564:18;;9162:61:38;24232:356:127;9162:61:38;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;7344:31;9233:58;;;;-1:-1:-1;;;9233:58:38;;24795:2:127;9233:58:38;;;24777:21:127;24834:2;24814:18;;;24807:30;24873;24853:18;;;24846:58;24921:18;;9233:58:38;24593:352:127;9233:58:38;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;7344:31;9437:58;;;;-1:-1:-1;;;9437:58:38;;24795:2:127;9437:58:38;;;24777:21:127;24834:2;24814:18;;;24807:30;24873;24853:18;;;24846:58;24921:18;;9437:58:38;24593:352:127;9437:58:38;-1:-1:-1;;;;;9837:13:38;;;;;;:9;:13;;;;;;;;:18;;9854:1;9837:18;;;9876:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9876:21:38;;;;;9913:33;9884:7;;9837:13;;9913:33;;9837:13;;9913:33;1016:136:114;;:::o;15698:396:38:-;15882:1;15870:9;:13;15866:222;;;-1:-1:-1;;;;;15903:18:38;;;15899:85;;-1:-1:-1;;;;;15941:15:38;;;;;;:9;:15;;;;;:28;;15960:9;;15941:15;:28;;15960:9;;15941:28;:::i;:::-;;;;-1:-1:-1;;15899:85:38;-1:-1:-1;;;;;16001:16:38;;;15997:81;;-1:-1:-1;;;;;16037:13:38;;;;;;:9;:13;;;;;:26;;16054:9;;16037:13;:26;;16054:9;;16037:26;:::i;:::-;;;;-1:-1:-1;;15698:396:38;;;;:::o;13075:307::-;13225:8;-1:-1:-1;;;;;13216:17:38;:5;-1:-1:-1;;;;;13216:17:38;;13208:55;;;;-1:-1:-1;;;13208:55:38;;25285:2:127;13208:55:38;;;25267:21:127;25324:2;25304:18;;;25297:30;25363:27;25343:18;;;25336:55;25408:18;;13208:55:38;25083:349:127;13208:55:38;-1:-1:-1;;;;;13273:25:38;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13273:46:38;;;;;;;;;;13334:41;;540::127;;;13334::38;;513:18:127;13334:41:38;;;;;;;13075:307;;;:::o;14151:831::-;14300:4;-1:-1:-1;;;;;14320:13:38;;1465:19:42;:23;14316:660:38;;14355:71;;-1:-1:-1;;;14355:71:38;;-1:-1:-1;;;;;14355:36:38;;;;;:71;;719:10:43;;14406:4:38;;14412:7;;14421:4;;14355:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14355:71:38;;;;;;;;-1:-1:-1;;14355:71:38;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14593:6;:13;14610:1;14593:18;14589:321;;14635:60;;-1:-1:-1;;;14635:60:38;;;;;;;:::i;14589:321::-;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;-1:-1:-1;;;;;;14476:51:38;-1:-1:-1;;;14476:51:38;;-1:-1:-1;14469:58:38;;14316:660;-1:-1:-1;14961:4:38;14954:11;;2412:312:42;2526:6;2501:21;:31;;2493:73;;;;-1:-1:-1;;;2493:73:42;;26387:2:127;2493:73:42;;;26369:21:127;26426:2;26406:18;;;26399:30;26465:31;26445:18;;;26438:59;26514:18;;2493:73:42;26185:353:127;2493:73:42;2578:12;2596:9;-1:-1:-1;;;;;2596:14:42;2618:6;2596:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2577:52;;;2647:7;2639:78;;;;-1:-1:-1;;;2639:78:42;;26955:2:127;2639:78:42;;;26937:21:127;26994:2;26974:18;;;26967:30;27033:34;27013:18;;;27006:62;27104:28;27084:18;;;27077:56;27150:19;;2639:78:42;26753:422:127;1945:106:26;1685:7;;;;2003:41;;;;-1:-1:-1;;;2003:41:26;;27382:2:127;2003:41:26;;;27364:21:127;27421:2;27401:18;;;27394:30;-1:-1:-1;;;27440:18:127;;;27433:50;27500:18;;2003:41:26;27180:344:127;14:131;-1:-1:-1;;;;;;88:32:127;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:127:o;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:127;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:127;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:127:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:127;;1348:180;-1:-1:-1;1348:180:127:o;1741:131::-;-1:-1:-1;;;;;1816:31:127;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:127:o;2197:383::-;2274:6;2282;2290;2343:2;2331:9;2322:7;2318:23;2314:32;2311:52;;;2359:1;2356;2349:12;2311:52;2395:9;2382:23;2372:33;;2455:2;2444:9;2440:18;2427:32;2468:31;2493:5;2468:31;:::i;:::-;2197:383;;2518:5;;-1:-1:-1;;;2570:2:127;2555:18;;;;2542:32;;2197:383::o;2767:456::-;2844:6;2852;2860;2913:2;2901:9;2892:7;2888:23;2884:32;2881:52;;;2929:1;2926;2919:12;2881:52;2968:9;2955:23;2987:31;3012:5;2987:31;:::i;:::-;3037:5;-1:-1:-1;3094:2:127;3079:18;;3066:32;3107:33;3066:32;3107:33;:::i;3228:315::-;3296:6;3304;3357:2;3345:9;3336:7;3332:23;3328:32;3325:52;;;3373:1;3370;3363:12;3325:52;3409:9;3396:23;3386:33;;3469:2;3458:9;3454:18;3441:32;3482:31;3507:5;3482:31;:::i;:::-;3532:5;3522:15;;;3228:315;;;;;:::o;3548:591::-;3618:6;3626;3679:2;3667:9;3658:7;3654:23;3650:32;3647:52;;;3695:1;3692;3685:12;3647:52;3735:9;3722:23;3764:18;3805:2;3797:6;3794:14;3791:34;;;3821:1;3818;3811:12;3791:34;3859:6;3848:9;3844:22;3834:32;;3904:7;3897:4;3893:2;3889:13;3885:27;3875:55;;3926:1;3923;3916:12;3875:55;3966:2;3953:16;3992:2;3984:6;3981:14;3978:34;;;4008:1;4005;3998:12;3978:34;4053:7;4048:2;4039:6;4035:2;4031:15;4027:24;4024:37;4021:57;;;4074:1;4071;4064:12;4021:57;4105:2;4097:11;;;;;4127:6;;-1:-1:-1;3548:591:127;;-1:-1:-1;;;;3548:591:127:o;4144:299::-;4327:6;4320:14;4313:22;4302:9;4295:41;4372:2;4367;4356:9;4352:18;4345:30;4276:4;4392:45;4433:2;4422:9;4418:18;4410:6;4392:45;:::i;4448:247::-;4507:6;4560:2;4548:9;4539:7;4535:23;4531:32;4528:52;;;4576:1;4573;4566:12;4528:52;4615:9;4602:23;4634:31;4659:5;4634:31;:::i;5408:160::-;5473:20;;5529:13;;5522:21;5512:32;;5502:60;;5558:1;5555;5548:12;5502:60;5408:160;;;:::o;5573:315::-;5638:6;5646;5699:2;5687:9;5678:7;5674:23;5670:32;5667:52;;;5715:1;5712;5705:12;5667:52;5754:9;5741:23;5773:31;5798:5;5773:31;:::i;:::-;5823:5;-1:-1:-1;5847:35:127;5878:2;5863:18;;5847:35;:::i;:::-;5837:45;;5573:315;;;;;:::o;5893:127::-;5954:10;5949:3;5945:20;5942:1;5935:31;5985:4;5982:1;5975:15;6009:4;6006:1;5999:15;6025:275;6096:2;6090:9;6161:2;6142:13;;-1:-1:-1;;6138:27:127;6126:40;;6196:18;6181:34;;6217:22;;;6178:62;6175:88;;;6243:18;;:::i;:::-;6279:2;6272:22;6025:275;;-1:-1:-1;6025:275:127:o;6305:186::-;6353:4;6386:18;6378:6;6375:30;6372:56;;;6408:18;;:::i;:::-;-1:-1:-1;6474:2:127;6453:15;-1:-1:-1;;6449:29:127;6480:4;6445:40;;6305:186::o;6496:336::-;6560:5;6589:52;6605:35;6633:6;6605:35;:::i;:::-;6589:52;:::i;:::-;6580:61;;6664:6;6657:5;6650:21;6704:3;6695:6;6690:3;6686:16;6683:25;6680:45;;;6721:1;6718;6711:12;6680:45;6770:6;6765:3;6758:4;6751:5;6747:16;6734:43;6824:1;6817:4;6808:6;6801:5;6797:18;6793:29;6786:40;6496:336;;;;;:::o;6837:794::-;6932:6;6940;6948;6956;7009:3;6997:9;6988:7;6984:23;6980:33;6977:53;;;7026:1;7023;7016:12;6977:53;7065:9;7052:23;7084:31;7109:5;7084:31;:::i;:::-;7134:5;-1:-1:-1;7191:2:127;7176:18;;7163:32;7204:33;7163:32;7204:33;:::i;:::-;7256:7;-1:-1:-1;7310:2:127;7295:18;;7282:32;;-1:-1:-1;7365:2:127;7350:18;;7337:32;7392:18;7381:30;;7378:50;;;7424:1;7421;7414:12;7378:50;7447:22;;7500:4;7492:13;;7488:27;-1:-1:-1;7478:55:127;;7529:1;7526;7519:12;7478:55;7552:73;7617:7;7612:2;7599:16;7594:2;7590;7586:11;7552:73;:::i;:::-;7542:83;;;6837:794;;;;;;;:::o;7636:450::-;7705:6;7758:2;7746:9;7737:7;7733:23;7729:32;7726:52;;;7774:1;7771;7764:12;7726:52;7814:9;7801:23;7847:18;7839:6;7836:30;7833:50;;;7879:1;7876;7869:12;7833:50;7902:22;;7955:4;7947:13;;7943:27;-1:-1:-1;7933:55:127;;7984:1;7981;7974:12;7933:55;8007:73;8072:7;8067:2;8054:16;8049:2;8045;8041:11;8007:73;:::i;8091:248::-;8159:6;8167;8220:2;8208:9;8199:7;8195:23;8191:32;8188:52;;;8236:1;8233;8226:12;8188:52;-1:-1:-1;;8259:23:127;;;8329:2;8314:18;;;8301:32;;-1:-1:-1;8091:248:127:o;8526:388::-;8594:6;8602;8655:2;8643:9;8634:7;8630:23;8626:32;8623:52;;;8671:1;8668;8661:12;8623:52;8710:9;8697:23;8729:31;8754:5;8729:31;:::i;:::-;8779:5;-1:-1:-1;8836:2:127;8821:18;;8808:32;8849:33;8808:32;8849:33;:::i;8919:180::-;8975:6;9028:2;9016:9;9007:7;9003:23;8999:32;8996:52;;;9044:1;9041;9034:12;8996:52;9067:26;9083:9;9067:26;:::i;9104:380::-;9183:1;9179:12;;;;9226;;;9247:61;;9301:4;9293:6;9289:17;9279:27;;9247:61;9354:2;9346:6;9343:14;9323:18;9320:38;9317:161;;9400:10;9395:3;9391:20;9388:1;9381:31;9435:4;9432:1;9425:15;9463:4;9460:1;9453:15;9317:161;;9104:380;;;:::o;9489:409::-;9691:2;9673:21;;;9730:2;9710:18;;;9703:30;9769:34;9764:2;9749:18;;9742:62;-1:-1:-1;;;9835:2:127;9820:18;;9813:43;9888:3;9873:19;;9489:409::o;9903:251::-;9973:6;10026:2;10014:9;10005:7;10001:23;9997:32;9994:52;;;10042:1;10039;10032:12;9994:52;10074:9;10068:16;10093:31;10118:5;10093:31;:::i;10159:331::-;10361:2;10343:21;;;10400:1;10380:18;;;10373:29;-1:-1:-1;;;10433:2:127;10418:18;;10411:38;10481:2;10466:18;;10159:331::o;11187:184::-;11257:6;11310:2;11298:9;11289:7;11285:23;11281:32;11278:52;;;11326:1;11323;11316:12;11278:52;-1:-1:-1;11349:16:127;;11187:184;-1:-1:-1;11187:184:127:o;11376:271::-;11559:6;11551;11546:3;11533:33;11515:3;11585:16;;11610:13;;;11585:16;11376:271;-1:-1:-1;11376:271:127:o;12683:446::-;12771:6;12779;12787;12840:2;12828:9;12819:7;12815:23;12811:32;12808:52;;;12856:1;12853;12846:12;12808:52;12888:9;12882:16;12907:31;12932:5;12907:31;:::i;:::-;13002:2;12987:18;;12981:25;13051:2;13036:18;;13030:25;12957:5;;-1:-1:-1;12981:25:127;-1:-1:-1;13064:33:127;13030:25;13064:33;:::i;:::-;13116:7;13106:17;;;12683:446;;;;;:::o;13134:127::-;13195:10;13190:3;13186:20;13183:1;13176:31;13226:4;13223:1;13216:15;13250:4;13247:1;13240:15;13266:168;13339:9;;;13370;;13387:15;;;13381:22;;13367:37;13357:71;;13408:18;;:::i;13439:125::-;13504:9;;;13525:10;;;13522:36;;;13538:18;;:::i;13569:338::-;13771:2;13753:21;;;13810:2;13790:18;;;13783:30;-1:-1:-1;;;13844:2:127;13829:18;;13822:44;13898:2;13883:18;;13569:338::o;14038:545::-;14140:2;14135:3;14132:11;14129:448;;;14176:1;14201:5;14197:2;14190:17;14246:4;14242:2;14232:19;14316:2;14304:10;14300:19;14297:1;14293:27;14287:4;14283:38;14352:4;14340:10;14337:20;14334:47;;;-1:-1:-1;14375:4:127;14334:47;14430:2;14425:3;14421:12;14418:1;14414:20;14408:4;14404:31;14394:41;;14485:82;14503:2;14496:5;14493:13;14485:82;;;14548:17;;;14529:1;14518:13;14485:82;;;14489:3;;;14038:545;;;:::o;14759:1352::-;14885:3;14879:10;14912:18;14904:6;14901:30;14898:56;;;14934:18;;:::i;:::-;14963:97;15053:6;15013:38;15045:4;15039:11;15013:38;:::i;:::-;15007:4;14963:97;:::i;:::-;15115:4;;15179:2;15168:14;;15196:1;15191:663;;;;15898:1;15915:6;15912:89;;;-1:-1:-1;15967:19:127;;;15961:26;15912:89;-1:-1:-1;;14716:1:127;14712:11;;;14708:24;14704:29;14694:40;14740:1;14736:11;;;14691:57;16014:81;;15161:944;;15191:663;13985:1;13978:14;;;14022:4;14009:18;;-1:-1:-1;;15227:20:127;;;15345:236;15359:7;15356:1;15353:14;15345:236;;;15448:19;;;15442:26;15427:42;;15540:27;;;;15508:1;15496:14;;;;15375:19;;15345:236;;;15349:3;15609:6;15600:7;15597:19;15594:201;;;15670:19;;;15664:26;-1:-1:-1;;15753:1:127;15749:14;;;15765:3;15745:24;15741:37;15737:42;15722:58;15707:74;;15594:201;-1:-1:-1;;;;;15841:1:127;15825:14;;;15821:22;15808:36;;-1:-1:-1;14759:1352:127:o;18194:648::-;18274:6;18327:2;18315:9;18306:7;18302:23;18298:32;18295:52;;;18343:1;18340;18333:12;18295:52;18376:9;18370:16;18409:18;18401:6;18398:30;18395:50;;;18441:1;18438;18431:12;18395:50;18464:22;;18517:4;18509:13;;18505:27;-1:-1:-1;18495:55:127;;18546:1;18543;18536:12;18495:55;18575:2;18569:9;18600:48;18616:31;18644:2;18616:31;:::i;18600:48::-;18671:2;18664:5;18657:17;18711:7;18706:2;18701;18697;18693:11;18689:20;18686:33;18683:53;;;18732:1;18729;18722:12;18683:53;18745:67;18809:2;18804;18797:5;18793:14;18788:2;18784;18780:11;18745:67;:::i;:::-;18831:5;18194:648;-1:-1:-1;;;;;18194:648:127:o;18847:1166::-;19069:6;19058:9;19051:25;19032:4;19095:2;19133;19128;19117:9;19113:18;19106:30;19156:1;19189:6;19183:13;19219:36;19245:9;19219:36;:::i;:::-;19291:6;19286:2;19275:9;19271:18;19264:34;19317:3;19339:1;19371:2;19360:9;19356:18;19388:1;19383:158;;;;19555:1;19550:354;;;;19349:555;;19383:158;-1:-1:-1;;19431:24:127;;19411:18;;;19404:52;19509:14;;19502:22;19499:1;19495:30;19480:46;;19476:55;;;-1:-1:-1;19383:158:127;;19550:354;19581:6;19578:1;19571:17;19629:2;19626:1;19616:16;19654:1;19668:180;19682:6;19679:1;19676:13;19668:180;;;19775:14;;19751:17;;;19747:26;;19740:50;19818:16;;;;19697:10;;19668:180;;;19872:17;;19868:26;;;-1:-1:-1;;19349:555:127;;;;;;19949:9;19944:3;19940:19;19935:2;19924:9;19920:18;19913:47;19977:30;20003:3;19995:6;19977:30;:::i;:::-;19969:38;18847:1166;-1:-1:-1;;;;;;;18847:1166:127:o;22297:401::-;22499:2;22481:21;;;22538:2;22518:18;;;22511:30;22577:34;22572:2;22557:18;;22550:62;-1:-1:-1;;;22643:2:127;22628:18;;22621:35;22688:3;22673:19;;22297:401::o;23469:414::-;23671:2;23653:21;;;23710:2;23690:18;;;23683:30;23749:34;23744:2;23729:18;;23722:62;-1:-1:-1;;;23815:2:127;23800:18;;23793:48;23873:3;23858:19;;23469:414::o;24950:128::-;25017:9;;;25038:11;;;25035:37;;;25052:18;;:::i;25437:489::-;-1:-1:-1;;;;;25706:15:127;;;25688:34;;25758:15;;25753:2;25738:18;;25731:43;25805:2;25790:18;;25783:34;;;25853:3;25848:2;25833:18;;25826:31;;;25631:4;;25874:46;;25900:19;;25892:6;25874:46;:::i;:::-;25866:54;25437:489;-1:-1:-1;;;;;;25437:489:127:o;25931:249::-;26000:6;26053:2;26041:9;26032:7;26028:23;26024:32;26021:52;;;26069:1;26066;26059:12;26021:52;26101:9;26095:16;26120:30;26144:5;26120:30;:::i","linkReferences":{}},"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","TOKEN_URI_SELECTOR()":"72b7692b","addController(address)":"a7fc7a07","approve(address,uint256)":"095ea7b3","available(uint256)":"96e494e8","balanceOf(address)":"70a08231","baseNode()":"ddf7fcb0","controllers(address)":"da8c229e","crs()":"8a591369","expiries(uint256)":"b9cce328","gasFee(uint256)":"8a59c83e","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","nameExpires(uint256)":"d6e4fa86","names(uint256)":"4622ab03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","ownerToggleApprovals(bool)":"e9b6f449","paused()":"5c975abb","reclaim(uint256,address)":"28ed4f6c","register(uint256,address,uint256)":"fca247ac","registerOnly(uint256,address,uint256)":"0e297b45","removeController(address)":"f6a74ed7","renew(uint256,uint256)":"c475abff","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","saveName(string)":"bc420523","setApprovalForAll(address,bool)":"a22cb465","setBasenodeResolverSettings(bytes)":"302c9650","setResolver(address)":"4e543b26","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ICRS\",\"name\":\"_crs\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_baseNode\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"ControllerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"ControllerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"name\":\"NameMigrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"name\":\"NameRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"name\":\"NameRenewed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_URI_SELECTOR\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"addController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"controllers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crs\",\"outputs\":[{\"internalType\":\"contract ICRS\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"expiries\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"gasFee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"nameExpires\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"names\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_state\",\"type\":\"bool\"}],\"name\":\"ownerToggleApprovals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"reclaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"registerOnly\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"removeController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"renew\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"saveName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_callData\",\"type\":\"bytes\"}],\"name\":\"setBasenodeResolverSettings\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Metadata generation is delegated to updatable proxy contract.      To disable trading of identity NFTs, approve functionality is paused,      Approvals can be enabled by owner at some later point.\",\"kind\":\"dev\",\"methods\":{\"addController(address)\":{\"details\":\"Authorises a controller, who can register and renew records.\",\"params\":{\"_controller\":\"Address of controller smart contract which can register NFTs.\"}},\"approve(address,uint256)\":{\"details\":\"Identity NFTs are not for trading, disable default approval interfaces.\"},\"available(uint256)\":{\"details\":\"Returns true if the specified name is available for registration.\",\"returns\":{\"_0\":\"Not available if it's registered here or in its grace period.\"}},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"gasFee(uint256)\":{\"details\":\"Fetch gas fee from resolver of a root node.\",\"params\":{\"_duration\":\"duration in seconds for lease or extension.\"},\"returns\":{\"_0\":\"beneficiary address.\",\"_1\":\"fee in gas token for registration or extenting lease.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"nameExpires(uint256)\":{\"details\":\"Returns the expiration timestamp of the specified id.\",\"returns\":{\"_0\":\"UNIX timestamp for expiration date.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"Gets the owner of the specified token ID. Names become unowned      when their registration expires.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query the owner of\"},\"returns\":{\"_0\":\"address currently marked as the owner of the given token ID\"}},\"ownerToggleApprovals(bool)\":{\"details\":\"Owner can allow trading through approvals.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"reclaim(uint256,address)\":{\"details\":\"Reclaim ownership of a name in CRS, if you own it in the registrar.\",\"params\":{\"_id\":\"The token ID (keccak256 of the label).\",\"_owner\":\"New owner address.\"}},\"register(uint256,address,uint256)\":{\"details\":\"Register a name.\",\"params\":{\"duration\":\"Duration in seconds for the registration.\",\"id\":\"The token ID (keccak256 of the label).\",\"owner\":\"The address that should own the registration.\"},\"returns\":{\"_0\":\"UNIX timestamp for a new expiration date.\"}},\"registerOnly(uint256,address,uint256)\":{\"details\":\"Register a name, without modifying the registry.\",\"params\":{\"duration\":\"Duration in seconds for the registration.\",\"id\":\"The token ID (keccak256 of the label).\",\"owner\":\"The address that should own the registration.\"},\"returns\":{\"_0\":\"UNIX timestamp for a new expiration date.\"}},\"removeController(address)\":{\"details\":\"Revoke controller permission for an address.\",\"params\":{\"_controller\":\"Address of controller smart contract which can register NFTs.\"}},\"renew(uint256,uint256)\":{\"details\":\"Extend the lease for CRS.\",\"params\":{\"_duration\":\"Duration in seconds for the registration.\",\"_id\":\"The token ID (keccak256 of the label).\"},\"returns\":{\"_0\":\"UNIX timestamp for a new expiration date.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"saveName(string)\":{\"details\":\"Save name on-chain for metadata storage.\",\"params\":{\"_name\":\"UTF8 encoded string of domain name.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Identity NFTs are not for trading, disable default approval interfaces.\"},\"setBasenodeResolverSettings(bytes)\":{\"details\":\"Low-level call by controller to resolver of the baseNode.\",\"params\":{\"_callData\":\"encoded bytestring of the call e.g. `abi.encodeWithSignature(\\\"myFunction(uint,address)\\\", 10, msg.sender)`.\"},\"returns\":{\"_0\":\"execution result tuple.\"}},\"setResolver(address)\":{\"details\":\"Set the resolver for the TLD this registrar manages.\",\"params\":{\"_resolver\":\"Address of resolver smart contract for all NFTs.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Reclaim ownership of a name in CRS, if you own it in the registrar.\",\"params\":{\"_interfaceID\":\"Bytes4 from keccak256 of interface signature.\"},\"returns\":{\"_0\":\"true if interface is supported.\"}},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"NFT metadata.\",\"params\":{\"_id\":\"The token ID (keccak256 of the label).\"},\"returns\":{\"_0\":\"Metadata URI or base64 encoded metadata.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"baseNode()\":{\"notice\":\"The namehash of the TLD this registrar owns (eg, .eth)\"},\"controllers(address)\":{\"notice\":\"A map of addresses that are authorised to register and renew names.\"},\"crs()\":{\"notice\":\"The CRS registry\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/nft/IdentityNFTV1.sol\":\"IdentityNFTV1\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@le7el/=node_modules/@le7el/\",\":@le7el/generative_art/=node_modules/@le7el/generative_art/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/src/\",\":src/=src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c\",\"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"node_modules/@le7el/web3_crs/contracts/nft/BaseNFT.sol\":{\"keccak256\":\"0xcdc5dcc29d9fbefa470255a9d2d8fc569230c397d220542c7a1c2d5dfe4badab\",\"license\":\"BSD-2-Clause\",\"urls\":[\"bzz-raw://1497e47390d40ec38a04edea4ec83841d488824eb0edb17f18cf1a5a4c2d616c\",\"dweb:/ipfs/QmP82Ce4JnzchuavULBM3w5c6iv5Zhyjm4xnoiAJJieppA\"]},\"node_modules/@le7el/web3_crs/contracts/nft/IBaseNFT.sol\":{\"keccak256\":\"0x62a6fc034212ce095d9017050b3be85f24d0b73af2767c4da011b320e2f9664b\",\"license\":\"BSD-2-Clause\",\"urls\":[\"bzz-raw://d346c9e93343a0aaf5bbce7e5c63922d0d2f273d6aed89dd32a75edad424b857\",\"dweb:/ipfs/QmXMPBgueZTsdevxQ2Pb4gCq5wga1qwYiZB6S4bYRkRft8\"]},\"node_modules/@le7el/web3_crs/contracts/registry/ICRS.sol\":{\"keccak256\":\"0xd41df387a0c955997dd3463d64ae04236b26154fc089804367a113b9d518133f\",\"license\":\"BSD-2-Clause\",\"urls\":[\"bzz-raw://bc06dd67578272711b4523981ff2f509a6197030061e6e96188a64fa30753f19\",\"dweb:/ipfs/QmaZGRBNcoWDdKQW7v4Hzrgv76udJP8o9c45r3tuor82f4\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/profile/IProxyConfigResolver.sol\":{\"keccak256\":\"0x000a8ba9b4935986345652397a131cc9850ecab99aa8ab4ce727fd7c96ba7ed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a00a97b34241842f4c8284f540629fabd96172f9227343455cb999278f58166d\",\"dweb:/ipfs/QmQjS4fAr8qX8Hs1Q9A5u6onnSZd9jis5rhwMa2P9frDdz\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/profile/IRoyaltiesResolver.sol\":{\"keccak256\":\"0x3ca0bf4a6c7e39ad35ed5ade409d69d0661a24f5442c0d4fdee17114df434b44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f55574c8324c5d2a3a0d97c5e4c871e4456745ddd00d4c63d1fd6c717fde52\",\"dweb:/ipfs/QmSxuEwwZGjWW6QNnHt2N54AigaBtVLaV32wtnWTnMzTyz\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/profile/ITextResolver.sol\":{\"keccak256\":\"0xe3555c104cb91934d8b2703a2ac9df51ad4b2d4c9eec4a8922806faa64e8b856\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b807b210cb6c5515d35a3e789de4468dcabd4eae394ffe10dd2bf8bd10278ce0\",\"dweb:/ipfs/QmSAKxaNdwqqVjTSTKad4vt8gJHG7WsseDecao1HhgJ27R\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/proxies/ITokenURIProxy.sol\":{\"keccak256\":\"0x08961d1c4ea1fbe768a34c0594bf31c6bf1d989eb88ce99c96009421d7694099\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de29365412b7eb3d69316ee8b7dacc7bb4af0f171e87679fbb40d8e647fbba87\",\"dweb:/ipfs/QmZNmB26VmFKgQS9YkVfkD2AHemaRWBRiusiDMSHKzJxtm\"]},\"src/nft/IdentityNFTV1.sol\":{\"keccak256\":\"0x9105063593b5a44173e830912067a364dc0dfb2cce5b3b468a5affcf3d214ead\",\"license\":\"MPL-2.0\",\"urls\":[\"bzz-raw://1e74fa4572eda1999d5aa5ff5bab6010d97dded7d8455b09ef3e487de77437be\",\"dweb:/ipfs/QmXkEVmXkt8CYxyfHPpPYE2GDDw3KagrukTsteZbPNxXn8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.17+commit.8df45f5f"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ICRS","name":"_crs","type":"address"},{"internalType":"bytes32","name":"_baseNode","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"controller","type":"address","indexed":true}],"type":"event","name":"ControllerAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"controller","type":"address","indexed":true}],"type":"event","name":"ControllerRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"expires","type":"uint256","indexed":false}],"type":"event","name":"NameMigrated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"expires","type":"uint256","indexed":false}],"type":"event","name":"NameRegistered","anonymous":false},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"uint256","name":"expires","type":"uint256","indexed":false}],"type":"event","name":"NameRenewed","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN_URI_SELECTOR","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addController"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"available","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseNode","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"controllers","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"crs","outputs":[{"internalType":"contract ICRS","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"expiries","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_duration","type":"uint256"}],"stateMutability":"view","type":"function","name":"gasFee","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"nameExpires","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"names","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"ownerToggleApprovals"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"reclaim"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"payable","type":"function","name":"registerOnly","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeController"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_duration","type":"uint256"}],"stateMutability":"payable","type":"function","name":"renew","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"saveName"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes","name":"_callData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setBasenodeResolverSettings","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_resolver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"bytes4","name":"_interfaceID","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"addController(address)":{"details":"Authorises a controller, who can register and renew records.","params":{"_controller":"Address of controller smart contract which can register NFTs."}},"approve(address,uint256)":{"details":"Identity NFTs are not for trading, disable default approval interfaces."},"available(uint256)":{"details":"Returns true if the specified name is available for registration.","returns":{"_0":"Not available if it's registered here or in its grace period."}},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"gasFee(uint256)":{"details":"Fetch gas fee from resolver of a root node.","params":{"_duration":"duration in seconds for lease or extension."},"returns":{"_0":"beneficiary address.","_1":"fee in gas token for registration or extenting lease."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"nameExpires(uint256)":{"details":"Returns the expiration timestamp of the specified id.","returns":{"_0":"UNIX timestamp for expiration date."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"Gets the owner of the specified token ID. Names become unowned      when their registration expires.","params":{"tokenId":"uint256 ID of the token to query the owner of"},"returns":{"_0":"address currently marked as the owner of the given token ID"}},"ownerToggleApprovals(bool)":{"details":"Owner can allow trading through approvals."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"reclaim(uint256,address)":{"details":"Reclaim ownership of a name in CRS, if you own it in the registrar.","params":{"_id":"The token ID (keccak256 of the label).","_owner":"New owner address."}},"register(uint256,address,uint256)":{"details":"Register a name.","params":{"duration":"Duration in seconds for the registration.","id":"The token ID (keccak256 of the label).","owner":"The address that should own the registration."},"returns":{"_0":"UNIX timestamp for a new expiration date."}},"registerOnly(uint256,address,uint256)":{"details":"Register a name, without modifying the registry.","params":{"duration":"Duration in seconds for the registration.","id":"The token ID (keccak256 of the label).","owner":"The address that should own the registration."},"returns":{"_0":"UNIX timestamp for a new expiration date."}},"removeController(address)":{"details":"Revoke controller permission for an address.","params":{"_controller":"Address of controller smart contract which can register NFTs."}},"renew(uint256,uint256)":{"details":"Extend the lease for CRS.","params":{"_duration":"Duration in seconds for the registration.","_id":"The token ID (keccak256 of the label)."},"returns":{"_0":"UNIX timestamp for a new expiration date."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"saveName(string)":{"details":"Save name on-chain for metadata storage.","params":{"_name":"UTF8 encoded string of domain name."}},"setApprovalForAll(address,bool)":{"details":"Identity NFTs are not for trading, disable default approval interfaces."},"setBasenodeResolverSettings(bytes)":{"details":"Low-level call by controller to resolver of the baseNode.","params":{"_callData":"encoded bytestring of the call e.g. `abi.encodeWithSignature(\"myFunction(uint,address)\", 10, msg.sender)`."},"returns":{"_0":"execution result tuple."}},"setResolver(address)":{"details":"Set the resolver for the TLD this registrar manages.","params":{"_resolver":"Address of resolver smart contract for all NFTs."}},"supportsInterface(bytes4)":{"details":"Reclaim ownership of a name in CRS, if you own it in the registrar.","params":{"_interfaceID":"Bytes4 from keccak256 of interface signature."},"returns":{"_0":"true if interface is supported."}},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"NFT metadata.","params":{"_id":"The token ID (keccak256 of the label)."},"returns":{"_0":"Metadata URI or base64 encoded metadata."}},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"baseNode()":{"notice":"The namehash of the TLD this registrar owns (eg, .eth)"},"controllers(address)":{"notice":"A map of addresses that are authorised to register and renew names."},"crs()":{"notice":"The CRS registry"}},"version":1}},"settings":{"remappings":["@le7el/=node_modules/@le7el/","@le7el/generative_art/=node_modules/@le7el/generative_art/","@openzeppelin/=lib/openzeppelin-contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solmate/=lib/solmate/src/","src/=src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/nft/IdentityNFTV1.sol":"IdentityNFTV1"},"libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/Pausable.sol":{"keccak256":"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773","urls":["bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004","dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b","urls":["bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c","dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68","urls":["bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56","dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9","urls":["bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146","dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1","urls":["bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269","dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a","urls":["bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634","dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6","urls":["bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b","dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/nft/BaseNFT.sol":{"keccak256":"0xcdc5dcc29d9fbefa470255a9d2d8fc569230c397d220542c7a1c2d5dfe4badab","urls":["bzz-raw://1497e47390d40ec38a04edea4ec83841d488824eb0edb17f18cf1a5a4c2d616c","dweb:/ipfs/QmP82Ce4JnzchuavULBM3w5c6iv5Zhyjm4xnoiAJJieppA"],"license":"BSD-2-Clause"},"node_modules/@le7el/web3_crs/contracts/nft/IBaseNFT.sol":{"keccak256":"0x62a6fc034212ce095d9017050b3be85f24d0b73af2767c4da011b320e2f9664b","urls":["bzz-raw://d346c9e93343a0aaf5bbce7e5c63922d0d2f273d6aed89dd32a75edad424b857","dweb:/ipfs/QmXMPBgueZTsdevxQ2Pb4gCq5wga1qwYiZB6S4bYRkRft8"],"license":"BSD-2-Clause"},"node_modules/@le7el/web3_crs/contracts/registry/ICRS.sol":{"keccak256":"0xd41df387a0c955997dd3463d64ae04236b26154fc089804367a113b9d518133f","urls":["bzz-raw://bc06dd67578272711b4523981ff2f509a6197030061e6e96188a64fa30753f19","dweb:/ipfs/QmaZGRBNcoWDdKQW7v4Hzrgv76udJP8o9c45r3tuor82f4"],"license":"BSD-2-Clause"},"node_modules/@le7el/web3_crs/contracts/resolver/profile/IProxyConfigResolver.sol":{"keccak256":"0x000a8ba9b4935986345652397a131cc9850ecab99aa8ab4ce727fd7c96ba7ed9","urls":["bzz-raw://a00a97b34241842f4c8284f540629fabd96172f9227343455cb999278f58166d","dweb:/ipfs/QmQjS4fAr8qX8Hs1Q9A5u6onnSZd9jis5rhwMa2P9frDdz"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/resolver/profile/IRoyaltiesResolver.sol":{"keccak256":"0x3ca0bf4a6c7e39ad35ed5ade409d69d0661a24f5442c0d4fdee17114df434b44","urls":["bzz-raw://75f55574c8324c5d2a3a0d97c5e4c871e4456745ddd00d4c63d1fd6c717fde52","dweb:/ipfs/QmSxuEwwZGjWW6QNnHt2N54AigaBtVLaV32wtnWTnMzTyz"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/resolver/profile/ITextResolver.sol":{"keccak256":"0xe3555c104cb91934d8b2703a2ac9df51ad4b2d4c9eec4a8922806faa64e8b856","urls":["bzz-raw://b807b210cb6c5515d35a3e789de4468dcabd4eae394ffe10dd2bf8bd10278ce0","dweb:/ipfs/QmSAKxaNdwqqVjTSTKad4vt8gJHG7WsseDecao1HhgJ27R"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/resolver/proxies/ITokenURIProxy.sol":{"keccak256":"0x08961d1c4ea1fbe768a34c0594bf31c6bf1d989eb88ce99c96009421d7694099","urls":["bzz-raw://de29365412b7eb3d69316ee8b7dacc7bb4af0f171e87679fbb40d8e647fbba87","dweb:/ipfs/QmZNmB26VmFKgQS9YkVfkD2AHemaRWBRiusiDMSHKzJxtm"],"license":"MIT"},"src/nft/IdentityNFTV1.sol":{"keccak256":"0x9105063593b5a44173e830912067a364dc0dfb2cce5b3b468a5affcf3d214ead","urls":["bzz-raw://1e74fa4572eda1999d5aa5ff5bab6010d97dded7d8455b09ef3e487de77437be","dweb:/ipfs/QmXkEVmXkt8CYxyfHPpPYE2GDDw3KagrukTsteZbPNxXn8"],"license":"MPL-2.0"}},"version":1},"ast":{"absolutePath":"src/nft/IdentityNFTV1.sol","id":60644,"exportedSymbols":{"Address":[49652],"BaseNFT":[54986],"Context":[49674],"ERC165":[49873],"ERC721":[49161],"IBaseNFT":[55121],"ICRS":[55685],"IERC165":[49885],"IERC721":[49277],"IERC721Metadata":[49322],"IERC721Receiver":[49295],"IProxyConfigResolver":[56590],"IRoyaltiesResolver":[56640],"ITextResolver":[56661],"ITokenURIProxy":[57589],"IdentityNFTV1":[60643],"Math":[50750],"Ownable":[45526],"Pausable":[45695],"Strings":[49849]},"nodeType":"SourceUnit","src":"36:2223:114","nodes":[{"id":60460,"nodeType":"PragmaDirective","src":"36:24:114","nodes":[],"literals":["solidity","^","0.8",".17"]},{"id":60461,"nodeType":"ImportDirective","src":"62:55:114","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","nameLocation":"-1:-1:-1","scope":60644,"sourceUnit":45696,"symbolAliases":[],"unitAlias":""},{"id":60462,"nodeType":"ImportDirective","src":"118:51:114","nodes":[],"absolutePath":"node_modules/@le7el/web3_crs/contracts/nft/BaseNFT.sol","file":"@le7el/web3_crs/contracts/nft/BaseNFT.sol","nameLocation":"-1:-1:-1","scope":60644,"sourceUnit":54987,"symbolAliases":[],"unitAlias":""},{"id":60463,"nodeType":"ImportDirective","src":"170:70:114","nodes":[],"absolutePath":"node_modules/@le7el/web3_crs/contracts/resolver/profile/ITextResolver.sol","file":"@le7el/web3_crs/contracts/resolver/profile/ITextResolver.sol","nameLocation":"-1:-1:-1","scope":60644,"sourceUnit":56662,"symbolAliases":[],"unitAlias":""},{"id":60643,"nodeType":"ContractDefinition","src":"462:1796:114","nodes":[{"id":60492,"nodeType":"FunctionDefinition","src":"512:157:114","nodes":[],"body":{"id":60491,"nodeType":"Block","src":"594:75:114","nodes":[],"statements":[{"expression":{"id":60482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60480,"name":"crs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55032,"src":"604:3:114","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":60481,"name":"_crs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60471,"src":"610:4:114","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"src":"604:10:114","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"id":60483,"nodeType":"ExpressionStatement","src":"604:10:114"},{"expression":{"id":60486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60484,"name":"baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55035,"src":"624:8:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":60485,"name":"_baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60473,"src":"635:9:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"624:20:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":60487,"nodeType":"ExpressionStatement","src":"624:20:114"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":60488,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45678,"src":"654:6:114","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":60489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"654:8:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60490,"nodeType":"ExpressionStatement","src":"654:8:114"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4c4537454c204964656e74697479207631","id":60476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"561:19:114","typeDescriptions":{"typeIdentifier":"t_stringliteral_697c40a3a0580f614d4c32ba954f28401f06a00c873a80bd03b8526e42b7112a","typeString":"literal_string \"LE7EL Identity v1\""},"value":"LE7EL Identity v1"},{"hexValue":"4944454e54495459","id":60477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"582:10:114","typeDescriptions":{"typeIdentifier":"t_stringliteral_377799b22fba826cf24c3f07e6731c67676765addcee33415a2c80d453d4ed6e","typeString":"literal_string \"IDENTITY\""},"value":"IDENTITY"}],"id":60478,"kind":"baseConstructorSpecifier","modifierName":{"id":60475,"name":"ERC721","nameLocations":["554:6:114"],"nodeType":"IdentifierPath","referencedDeclaration":49161,"src":"554:6:114"},"nodeType":"ModifierInvocation","src":"554:39:114"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":60474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60471,"mutability":"mutable","name":"_crs","nameLocation":"529:4:114","nodeType":"VariableDeclaration","scope":60492,"src":"524:9:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"},"typeName":{"id":60470,"nodeType":"UserDefinedTypeName","pathNode":{"id":60469,"name":"ICRS","nameLocations":["524:4:114"],"nodeType":"IdentifierPath","referencedDeclaration":55685,"src":"524:4:114"},"referencedDeclaration":55685,"src":"524:4:114","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"visibility":"internal"},{"constant":false,"id":60473,"mutability":"mutable","name":"_baseNode","nameLocation":"543:9:114","nodeType":"VariableDeclaration","scope":60492,"src":"535:17:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"535:7:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"523:30:114"},"returnParameters":{"id":60479,"nodeType":"ParameterList","parameters":[],"src":"594:0:114"},"scope":60643,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60511,"nodeType":"FunctionDefinition","src":"746:164:114","nodes":[],"body":{"id":60510,"nodeType":"Block","src":"808:102:114","nodes":[],"statements":[{"condition":{"id":60500,"name":"_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60495,"src":"822:6:114","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":60508,"nodeType":"Block","src":"871:33:114","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":60505,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45678,"src":"885:6:114","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":60506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"885:8:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60507,"nodeType":"ExpressionStatement","src":"885:8:114"}]},"id":60509,"nodeType":"IfStatement","src":"818:86:114","trueBody":{"id":60504,"nodeType":"Block","src":"830:35:114","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":60501,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45694,"src":"844:8:114","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":60502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"844:10:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60503,"nodeType":"ExpressionStatement","src":"844:10:114"}]}}]},"documentation":{"id":60493,"nodeType":"StructuredDocumentation","src":"675:66:114","text":" @dev Owner can allow trading through approvals."},"functionSelector":"e9b6f449","implemented":true,"kind":"function","modifiers":[{"id":60498,"kind":"modifierInvocation","modifierName":{"id":60497,"name":"onlyOwner","nameLocations":["798:9:114"],"nodeType":"IdentifierPath","referencedDeclaration":45445,"src":"798:9:114"},"nodeType":"ModifierInvocation","src":"798:9:114"}],"name":"ownerToggleApprovals","nameLocation":"755:20:114","parameters":{"id":60496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60495,"mutability":"mutable","name":"_state","nameLocation":"781:6:114","nodeType":"VariableDeclaration","scope":60511,"src":"776:11:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":60494,"name":"bool","nodeType":"ElementaryTypeName","src":"776:4:114","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"775:13:114"},"returnParameters":{"id":60499,"nodeType":"ParameterList","parameters":[],"src":"808:0:114"},"scope":60643,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":60532,"nodeType":"FunctionDefinition","src":"1016:136:114","nodes":[],"body":{"id":60531,"nodeType":"Block","src":"1109:43:114","nodes":[],"statements":[{"expression":{"arguments":[{"id":60527,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60514,"src":"1133:2:114","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60528,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60516,"src":"1137:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60524,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1119:5:114","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_IdentityNFTV1_$60643_$","typeString":"type(contract super IdentityNFTV1)"}},"id":60526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1125:7:114","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":48473,"src":"1119:13:114","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":60529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1119:26:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60530,"nodeType":"ExpressionStatement","src":"1119:26:114"}]},"baseFunctions":[48473,49250],"documentation":{"id":60512,"nodeType":"StructuredDocumentation","src":"916:95:114","text":" @dev Identity NFTs are not for trading, disable default approval interfaces."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[{"id":60522,"kind":"modifierInvocation","modifierName":{"id":60521,"name":"whenNotPaused","nameLocations":["1095:13:114"],"nodeType":"IdentifierPath","referencedDeclaration":45622,"src":"1095:13:114"},"nodeType":"ModifierInvocation","src":"1095:13:114"}],"name":"approve","nameLocation":"1025:7:114","overrides":{"id":60520,"nodeType":"OverrideSpecifier","overrides":[{"id":60518,"name":"ERC721","nameLocations":["1078:6:114"],"nodeType":"IdentifierPath","referencedDeclaration":49161,"src":"1078:6:114"},{"id":60519,"name":"IERC721","nameLocations":["1086:7:114"],"nodeType":"IdentifierPath","referencedDeclaration":49277,"src":"1086:7:114"}],"src":"1069:25:114"},"parameters":{"id":60517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60514,"mutability":"mutable","name":"to","nameLocation":"1041:2:114","nodeType":"VariableDeclaration","scope":60532,"src":"1033:10:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60513,"name":"address","nodeType":"ElementaryTypeName","src":"1033:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60516,"mutability":"mutable","name":"tokenId","nameLocation":"1053:7:114","nodeType":"VariableDeclaration","scope":60532,"src":"1045:15:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60515,"name":"uint256","nodeType":"ElementaryTypeName","src":"1045:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1032:29:114"},"returnParameters":{"id":60523,"nodeType":"ParameterList","parameters":[],"src":"1109:0:114"},"scope":60643,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60553,"nodeType":"FunctionDefinition","src":"1258:167:114","nodes":[],"body":{"id":60552,"nodeType":"Block","src":"1365:60:114","nodes":[],"statements":[{"expression":{"arguments":[{"id":60548,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60535,"src":"1399:8:114","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60549,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60537,"src":"1409:8:114","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":60545,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1375:5:114","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_IdentityNFTV1_$60643_$","typeString":"type(contract super IdentityNFTV1)"}},"id":60547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1381:17:114","memberName":"setApprovalForAll","nodeType":"MemberAccess","referencedDeclaration":48508,"src":"1375:23:114","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":60550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1375:43:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60551,"nodeType":"ExpressionStatement","src":"1375:43:114"}]},"baseFunctions":[48508,49258],"documentation":{"id":60533,"nodeType":"StructuredDocumentation","src":"1158:95:114","text":" @dev Identity NFTs are not for trading, disable default approval interfaces."},"functionSelector":"a22cb465","implemented":true,"kind":"function","modifiers":[{"id":60543,"kind":"modifierInvocation","modifierName":{"id":60542,"name":"whenNotPaused","nameLocations":["1351:13:114"],"nodeType":"IdentifierPath","referencedDeclaration":45622,"src":"1351:13:114"},"nodeType":"ModifierInvocation","src":"1351:13:114"}],"name":"setApprovalForAll","nameLocation":"1267:17:114","overrides":{"id":60541,"nodeType":"OverrideSpecifier","overrides":[{"id":60539,"name":"ERC721","nameLocations":["1334:6:114"],"nodeType":"IdentifierPath","referencedDeclaration":49161,"src":"1334:6:114"},{"id":60540,"name":"IERC721","nameLocations":["1342:7:114"],"nodeType":"IdentifierPath","referencedDeclaration":49277,"src":"1342:7:114"}],"src":"1325:25:114"},"parameters":{"id":60538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60535,"mutability":"mutable","name":"operator","nameLocation":"1293:8:114","nodeType":"VariableDeclaration","scope":60553,"src":"1285:16:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60534,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60537,"mutability":"mutable","name":"approved","nameLocation":"1308:8:114","nodeType":"VariableDeclaration","scope":60553,"src":"1303:13:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":60536,"name":"bool","nodeType":"ElementaryTypeName","src":"1303:4:114","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1284:33:114"},"returnParameters":{"id":60544,"nodeType":"ParameterList","parameters":[],"src":"1365:0:114"},"scope":60643,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60642,"nodeType":"FunctionDefinition","src":"1586:670:114","nodes":[],"body":{"id":60641,"nodeType":"Block","src":"1671:585:114","nodes":[],"statements":[{"assignments":[60564],"declarations":[{"constant":false,"id":60564,"mutability":"mutable","name":"_baseNode","nameLocation":"1689:9:114","nodeType":"VariableDeclaration","scope":60641,"src":"1681:17:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60563,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1681:7:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60566,"initialValue":{"id":60565,"name":"baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55035,"src":"1701:8:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1681:28:114"},{"assignments":[60569],"declarations":[{"constant":false,"id":60569,"mutability":"mutable","name":"_crs","nameLocation":"1724:4:114","nodeType":"VariableDeclaration","scope":60641,"src":"1719:9:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"},"typeName":{"id":60568,"nodeType":"UserDefinedTypeName","pathNode":{"id":60567,"name":"ICRS","nameLocations":["1719:4:114"],"nodeType":"IdentifierPath","referencedDeclaration":55685,"src":"1719:4:114"},"referencedDeclaration":55685,"src":"1719:4:114","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"visibility":"internal"}],"id":60571,"initialValue":{"id":60570,"name":"crs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55032,"src":"1731:3:114","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"nodeType":"VariableDeclarationStatement","src":"1719:15:114"},{"assignments":[60573],"declarations":[{"constant":false,"id":60573,"mutability":"mutable","name":"_proxy","nameLocation":"1752:6:114","nodeType":"VariableDeclaration","scope":60641,"src":"1744:14:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60572,"name":"address","nodeType":"ElementaryTypeName","src":"1744:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":60588,"initialValue":{"arguments":[{"id":60581,"name":"_baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60564,"src":"1820:9:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":60584,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1839:4:114","typeDescriptions":{"typeIdentifier":"t_contract$_IdentityNFTV1_$60643","typeString":"contract IdentityNFTV1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IdentityNFTV1_$60643","typeString":"contract IdentityNFTV1"}],"id":60583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1831:7:114","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60582,"name":"address","nodeType":"ElementaryTypeName","src":"1831:7:114","typeDescriptions":{}}},"id":60585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1831:13:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60586,"name":"TOKEN_URI_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54316,"src":"1846:18:114","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"arguments":[{"id":60577,"name":"_baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60564,"src":"1796:9:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60575,"name":"_crs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60569,"src":"1782:4:114","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"id":60576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1787:8:114","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":55661,"src":"1782:13:114","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":60578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1782:24:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60574,"name":"IProxyConfigResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56590,"src":"1761:20:114","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProxyConfigResolver_$56590_$","typeString":"type(contract IProxyConfigResolver)"}},"id":60579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:46:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProxyConfigResolver_$56590","typeString":"contract IProxyConfigResolver"}},"id":60580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1808:11:114","memberName":"proxyConfig","nodeType":"MemberAccess","referencedDeclaration":56589,"src":"1761:58:114","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_address_$","typeString":"function (bytes32,address,bytes4) view external returns (address)"}},"id":60587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:104:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1744:121:114"},{"assignments":[60590],"declarations":[{"constant":false,"id":60590,"mutability":"mutable","name":"_nodehash","nameLocation":"1883:9:114","nodeType":"VariableDeclaration","scope":60641,"src":"1875:17:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1875:7:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60601,"initialValue":{"arguments":[{"arguments":[{"id":60594,"name":"_baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60564,"src":"1922:9:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":60597,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60556,"src":"1941:3:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1933:7:114","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":60595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1933:7:114","typeDescriptions":{}}},"id":60598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:12:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60592,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1905:3:114","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1909:12:114","memberName":"encodePacked","nodeType":"MemberAccess","src":"1905:16:114","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1905:41:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60591,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1895:9:114","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":60600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1895:52:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1875:72:114"},{"assignments":[60603],"declarations":[{"constant":false,"id":60603,"mutability":"mutable","name":"_customAvatar","nameLocation":"1980:13:114","nodeType":"VariableDeclaration","scope":60641,"src":"1966:27:114","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60602,"name":"string","nodeType":"ElementaryTypeName","src":"1966:6:114","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":60605,"initialValue":{"hexValue":"","id":60604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1996:2:114","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"nodeType":"VariableDeclarationStatement","src":"1966:32:114"},{"assignments":[60607],"declarations":[{"constant":false,"id":60607,"mutability":"mutable","name":"_resolver","nameLocation":"2016:9:114","nodeType":"VariableDeclaration","scope":60641,"src":"2008:17:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60606,"name":"address","nodeType":"ElementaryTypeName","src":"2008:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":60612,"initialValue":{"arguments":[{"id":60610,"name":"_nodehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60590,"src":"2042:9:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60608,"name":"_crs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60569,"src":"2028:4:114","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"id":60609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2033:8:114","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":55661,"src":"2028:13:114","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":60611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2028:24:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2008:44:114"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":60618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60613,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60607,"src":"2066:9:114","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":60616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2087:1:114","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2079:7:114","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60614,"name":"address","nodeType":"ElementaryTypeName","src":"2079:7:114","typeDescriptions":{}}},"id":60617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2079:10:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2066:23:114","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60629,"nodeType":"IfStatement","src":"2062:107:114","trueBody":{"expression":{"id":60627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60619,"name":"_customAvatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60603,"src":"2091:13:114","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60624,"name":"_nodehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60590,"src":"2137:9:114","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"4c374c5f4944454e544954595f494d414745","id":60625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2148:20:114","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a81327cd0613d832307f1573783e479bd690a77f53b8c7b711360d15554645","typeString":"literal_string \"L7L_IDENTITY_IMAGE\""},"value":"L7L_IDENTITY_IMAGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_16a81327cd0613d832307f1573783e479bd690a77f53b8c7b711360d15554645","typeString":"literal_string \"L7L_IDENTITY_IMAGE\""}],"expression":{"arguments":[{"id":60621,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60607,"src":"2121:9:114","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60620,"name":"ITextResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56661,"src":"2107:13:114","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITextResolver_$56661_$","typeString":"type(contract ITextResolver)"}},"id":60622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2107:24:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITextResolver_$56661","typeString":"contract ITextResolver"}},"id":60623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2132:4:114","memberName":"text","nodeType":"MemberAccess","referencedDeclaration":56660,"src":"2107:29:114","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32,string memory) view external returns (string memory)"}},"id":60626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2107:62:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2091:78:114","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":60628,"nodeType":"ExpressionStatement","src":"2091:78:114"}},{"expression":{"arguments":[{"id":60634,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60556,"src":"2218:3:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":60635,"name":"names","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54308,"src":"2223:5:114","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":60637,"indexExpression":{"id":60636,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60556,"src":"2229:3:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2223:10:114","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"id":60638,"name":"_customAvatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60603,"src":"2235:13:114","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"id":60631,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60573,"src":"2201:6:114","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60630,"name":"ITokenURIProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57589,"src":"2186:14:114","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITokenURIProxy_$57589_$","typeString":"type(contract ITokenURIProxy)"}},"id":60632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2186:22:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIProxy_$57589","typeString":"contract ITokenURIProxy"}},"id":60633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2209:8:114","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":57588,"src":"2186:31:114","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,string memory,string memory) view external returns (string memory)"}},"id":60639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2186:63:114","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":60562,"id":60640,"nodeType":"Return","src":"2179:70:114"}]},"baseFunctions":[54893],"documentation":{"id":60554,"nodeType":"StructuredDocumentation","src":"1431:150:114","text":" @dev NFT metadata.\n @param _id The token ID (keccak256 of the label).\n @return Metadata URI or base64 encoded metadata."},"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"1595:8:114","overrides":{"id":60559,"nodeType":"OverrideSpecifier","overrides":[{"id":60558,"name":"BaseNFT","nameLocations":["1633:7:114"],"nodeType":"IdentifierPath","referencedDeclaration":54986,"src":"1633:7:114"}],"src":"1624:17:114"},"parameters":{"id":60557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60556,"mutability":"mutable","name":"_id","nameLocation":"1612:3:114","nodeType":"VariableDeclaration","scope":60642,"src":"1604:11:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60555,"name":"uint256","nodeType":"ElementaryTypeName","src":"1604:7:114","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1603:13:114"},"returnParameters":{"id":60562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60642,"src":"1656:13:114","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60560,"name":"string","nodeType":"ElementaryTypeName","src":"1656:6:114","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1655:15:114"},"scope":60643,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":60465,"name":"BaseNFT","nameLocations":["488:7:114"],"nodeType":"IdentifierPath","referencedDeclaration":54986,"src":"488:7:114"},"id":60466,"nodeType":"InheritanceSpecifier","src":"488:7:114"},{"baseName":{"id":60467,"name":"Pausable","nameLocations":["497:8:114"],"nodeType":"IdentifierPath","referencedDeclaration":45695,"src":"497:8:114"},"id":60468,"nodeType":"InheritanceSpecifier","src":"497:8:114"}],"canonicalName":"IdentityNFTV1","contractDependencies":[],"contractKind":"contract","documentation":{"id":60464,"nodeType":"StructuredDocumentation","src":"242:219:114","text":" @dev Metadata generation is delegated to updatable proxy contract.\n      To disable trading of identity NFTs, approve functionality is paused,\n      Approvals can be enabled by owner at some later point."},"fullyImplemented":true,"linearizedBaseContracts":[60643,45695,54986,55121,49161,49322,49277,49873,49885,45526,49674],"name":"IdentityNFTV1","nameLocation":"471:13:114","scope":60644,"usedErrors":[]}],"license":"MPL-2.0"},"id":114}