@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
192 lines (191 loc) • 34.2 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "PassportEntityLogicV4",
"sourceName": "contracts/deprecated/V4/ve-better-passport/libraries/PassportEntityLogicV4.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "AlreadyLinked",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "CannotLinkToSelf",
"type": "error"
},
{
"inputs": [],
"name": "CheckpointUnorderedInsertion",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "entity",
"type": "address"
}
],
"name": "DelegatedEntity",
"type": "error"
},
{
"inputs": [],
"name": "ECDSAInvalidSignature",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"name": "ECDSAInvalidSignatureLength",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "ECDSAInvalidSignatureS",
"type": "error"
},
{
"inputs": [],
"name": "InvalidSignature",
"type": "error"
},
{
"inputs": [],
"name": "MaxEntitiesPerPassportReached",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "NotLinked",
"type": "error"
},
{
"inputs": [],
"name": "OnlyOneLinkAllowed",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "bits",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "SafeCastOverflowedUintDowncast",
"type": "error"
},
{
"inputs": [],
"name": "SignatureExpired",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "UnauthorizedUser",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "LinkCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "LinkPending",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "entity",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "passport",
"type": "address"
}
],
"name": "LinkRemoved",
"type": "event"
}
],
"bytecode": "0x611d8261003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100a35760003560e01c806306e03aaf146100a85780631371cf62146100d15780633fb3ab72146100f45780634d8ea7ca14610116578063736a289a14610136578063ac1f6b1b14610156578063cd5767cc14610176578063e901a1a614610189578063ed511cf0146101ac578063f6573786146101bf578063fda2e13d146101df575b600080fd5b6100bb6100b6366004611ac3565b6101ff565b6040516100c89190611af8565b60405180910390f35b6100e46100df366004611ac3565b610243565b60405190151581526020016100c8565b81801561010057600080fd5b5061011461010f366004611b0c565b61028b565b005b81801561012257600080fd5b50610114610131366004611b0c565b61034e565b81801561014257600080fd5b50610114610151366004611b0c565b61043c565b81801561016257600080fd5b50610114610171366004611b0c565b6104af565b6100bb610184366004611b0c565b610567565b81801561019557600080fd5b506101146101a4366004611b38565b601d90910155565b6100e46101ba366004611ac3565b61057c565b8180156101cb57600080fd5b506101146101da366004611b5a565b610589565b8180156101eb57600080fd5b506101146101fa366004611b89565b6105f7565b600061023b6102386102108461071f565b6001600160a01b038616600090815260178801602052604090209065ffffffffffff16610756565b90565b949350505050565b60006102796102518361071f565b6001600160a01b038516600090815260178701602052604090209065ffffffffffff16610756565b6001600160a01b031615949350505050565b61029682823361080d565b6001600160a01b0381166000908152601b830160205260409020546102bc816001611c73565b336000818152601a860160209081526040808320949094556001600160a01b038616808352601b8801825284832080546001810182559084528284200180546001600160a01b03199081168617909155848452601c89019092528483208054909216811790915592517fa5ce3061f55dc6a6cb616713edbec99b638865accddbd58c83fd009e9ce920e79190a3505050565b600061035a8383610a26565b9050816001600160a01b0316816001600160a01b031603610399578160405163c6ac53df60e01b81526004016103909190611af8565b60405180910390fd5b336001600160a01b038316148015906103bb5750336001600160a01b03821614155b156103db573360405163ea93ab6d60e01b81526004016103909190611af8565b6001600160a01b038216600090815260178401602052604081206103fe91610a68565b610409838383610a89565b806001600160a01b0316826001600160a01b0316600080516020611d2d83398151915260405160405180910390a3505050565b6001600160a01b038082166000908152601c840160205260409020541680610479578160405163c6ac53df60e01b81526004016103909190611af8565b6001600160a01b03811633146104a4573360405163ea93ab6d60e01b81526004016103909190611af8565b610409838383610c35565b6001600160a01b038082166000908152601c8401602052604090205416806104ec578160405163c6ac53df60e01b81526004016103909190611af8565b6001600160a01b0381163314610517573360405163ea93ab6d60e01b81526004016103909190611af8565b601d8301543360009081526019850160205260409020541061054c5760405163aca3ff4360e01b815260040160405180910390fd5b610557838333610c35565b610562838333610dcf565b505050565b60006105738383610a26565b90505b92915050565b600061023b848484610ec6565b336000908152601c820160205260409020546001600160a01b0316806105c4573360405163c6ac53df60e01b81526004016103909190611af8565b6105cf823383610c35565b6040516001600160a01b038216903390600080516020611d2d83398151915290600090a35050565b8142111561061857604051630819bdcd60e01b815260040160405180910390fd5b604080517f88708ceda20b7f681a1d0bcac82e8c12fa88a5ce30261f012fdb9ed1ddc63bae60208201526001600160a01b038516918101919091523360608201526080810183905260009060a001604051602081830303815290604052805190602001209050600061068982610ee7565b905060006106978285610f14565b9050856001600160a01b0316816001600160a01b0316146106cb57604051638baa579f60e01b815260040160405180910390fd5b6106d687338861080d565b601d8701543360009081526019890160205260409020541061070b5760405163aca3ff4360e01b815260040160405180910390fd5b610716878733610dcf565b50505050505050565b600065ffffffffffff821115610752576040516306dfcc6560e41b81526030600482015260248101839052604401610390565b5090565b8154600090818160058111156107b657600061077184610f3e565b61077b9085611c86565b6000888152602090209091508101546001600160601b0390811690871610156107a6578091506107b4565b6107b1816001611c73565b92505b505b60006107c48787858561102d565b905080156107ff576107e9876107db600184611c86565b600091825260209091200190565b54600160601b90046001600160a01b0316610802565b60005b979650505050505050565b6001600160a01b0381166000908152601784016020526040902061083090611091565b6001600160a01b031615158061085f57506001600160a01b0381166000908152601a8401602052604090205415155b1561087f5780604051639546eb6360e01b81526004016103909190611af8565b6001600160a01b038216600090815260178401602052604090206108a290611091565b6001600160a01b03161515806108d357506001600160a01b038281166000908152601c850160205260409020541615155b156108f35781604051639546eb6360e01b81526004016103909190611af8565b6001600160a01b038116600090815260198401602052604090205415158061093457506001600160a01b0381166000908152601b8401602052604090205415155b156109545781604051639546eb6360e01b81526004016103909190611af8565b61095e83826110ca565b8061098457506001600160a01b0381811660009081526022850160205260409020541615155b156109a45780604051631cd13c0760e21b81526004016103909190611af8565b6109ae83826110ff565b806109d257506001600160a01b038116600090815260218401602052604090205415155b156109f25780604051631cd13c0760e21b81526004016103909190611af8565b816001600160a01b0316816001600160a01b03160361056257806040516305333f6f60e31b81526004016103909190611af8565b6001600160a01b038116600090815260178301602052604081208190610a4f9061023890611091565b90506001600160a01b0381166105735782915050610576565b610a83610a73611122565b839065ffffffffffff1683611131565b50505050565b6001600160a01b038083166000908152601885016020908152604080832054938516835260198701909152902054610ac2600183611c86565b9150610acf600182611c86565b8214610b9d576001600160a01b03831660009081526019860160205260408120610afa600184611c86565b81548110610b0a57610b0a611c99565b60009182526020808320909101546001600160a01b03878116845260198a019092526040909220805491909216925082919085908110610b4c57610b4c611c99565b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055610b80836001611c73565b6001600160a01b0390911660009081526018870160205260409020555b6001600160a01b03831660009081526019860160205260409020805480610bc657610bc6611caf565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526018870181526040808320839055601988019091528120610c1891611a71565b610c2385858561114c565b610c2e8585856112ba565b5050505050565b6001600160a01b038083166000908152601a850160209081526040808320549385168352601b8701909152902054610c6e600183611c86565b9150610c7b600182611c86565b8214610d49576001600160a01b0383166000908152601b860160205260408120610ca6600184611c86565b81548110610cb657610cb6611c99565b60009182526020808320909101546001600160a01b038781168452601b8a019092526040909220805491909216925082919085908110610cf857610cf8611c99565b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055610d2c836001611c73565b6001600160a01b039091166000908152601a870160205260409020555b6001600160a01b0383166000908152601b860160205260409020805480610d7257610d72611caf565b60008281526020808220830160001990810180546001600160a01b031990811690915593019093556001600160a01b03969096168652601a870182526040808720879055601c909701909152949093208054909416909355505050565b6001600160a01b03821660009081526017840160205260409020610df39082610a68565b6001600160a01b0381166000908152601984016020526040902054610e19816001611c73565b6001600160a01b03808516600081815260188801602090815260408083209590955592861681526019880183529283208054600181018255908452919092200180546001600160a01b0319169091179055610e7584848461136a565b610e8084848461148d565b816001600160a01b0316836001600160a01b03167ff644c2a6a740703067e9f00fb5a09444cd18cca01a19ce87915e934297a43fe260405160405180910390a350505050565b6000610ed46102518361071f565b6001600160a01b03161515949350505050565b6000610576610ef4611531565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610f24868661160f565b925092509250610f34828261165c565b5090949350505050565b600081600003610f5057506000919050565b60006001610f5d84611719565b901c6001901b90506001818481610f7657610f76611cc5565b048201901c90506001818481610f8e57610f8e611cc5565b048201901c90506001818481610fa657610fa6611cc5565b048201901c90506001818481610fbe57610fbe611cc5565b048201901c90506001818481610fd657610fd6611cc5565b048201901c90506001818481610fee57610fee611cc5565b048201901c9050600181848161100657611006611cc5565b048201901c90506110268182858161102057611020611cc5565b046117ad565b9392505050565b60005b8183101561108957600061104484846117c3565b6000878152602090209091506001600160601b038616908201546001600160601b0316111561107557809250611083565b611080816001611c73565b93505b50611030565b509392505050565b805460009080156110c1576110ab836107db600184611c86565b54600160601b90046001600160a01b0316611026565b60009392505050565b6001600160a01b0381166000908152601e8301602052604081206110ed90611091565b6001600160a01b031615159392505050565b6001600160a01b0381166000908152601f8301602052604081206110ed90611091565b600061112c6117de565b905090565b60008061113f8585856117e9565b915091505b935093915050565b6001600160a01b03808316600090815260238501602052604080822054928416825290205481116111ac576001600160a01b0382166000908152602385016020526040812080548392906111a1908490611c86565b909155506111c89050565b6001600160a01b03821660009081526023850160205260408120555b6001600160a01b038316600090815260158501602090815260408083208054825181850281018501909352808352919290919083018282801561122a57602002820191906000526020600020905b815481526020019060010190808311611216575b5050505050905060005b81518110156112b257600082828151811061125157611251611c99565b602090810291909101810151600081815260268a01835260408082206001600160a01b038b8116845294528082205493891682528120805492945091611298908490611c86565b909155508291506112aa905081611cdb565b915050611234565b505050505050565b60006112c68484611968565b6112d15760006112d4565b60015b60ff16905060006112e5858561198a565b6112f05760006112f3565b60015b60ff16905081856007016000856001600160a01b03166001600160a01b03168152602001908152602001600020600082825461132f9190611c86565b90915550506001600160a01b03831660009081526008860160205260408120805483929061135e908490611c86565b90915550505050505050565b6001600160a01b0380831660009081526023850160205260408082205492841682528120805490919061139e908490611c73565b90915550506001600160a01b038216600090815260158401602090815260408083208054825181850281018501909352808352919290919083018282801561140557602002820191906000526020600020905b8154815260200190600101908083116113f1575b5050505050905060005b8151811015610c2e57600082828151811061142c5761142c611c99565b602090810291909101810151600081815260268901835260408082206001600160a01b038a8116845294528082205493881682528120805492945091611473908490611c73565b90915550829150611485905081611cdb565b91505061140f565b60006114998484611968565b6114a45760006114a7565b60015b60ff16905060006114b8858561198a565b6114c35760006114c6565b60015b60ff16905081856007016000856001600160a01b03166001600160a01b0316815260200190815260200160002060008282546115029190611c73565b90915550506001600160a01b03831660009081526008860160205260408120805483929061135e908490611c73565b600061112c6040805180820182526012815271159950995d1d195c94185cdcdc1bdc9d158d60721b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fa00acabd45e7aaba1d0db68eacf74431b01cc12a5da5996724b7557088d571a4818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0909101909252815191012090565b600080600083516041036116495760208401516040850151606086015160001a61163b888285856119ac565b955095509550505050611655565b50508151600091506002905b9250925092565b600082600381111561167057611670611cf4565b03611679575050565b600182600381111561168d5761168d611cf4565b036116ab5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156116bf576116bf611cf4565b036116e05760405163fce698f760e01b815260048101829052602401610390565b60038260038111156116f4576116f4611cf4565b03611715576040516335e2f38360e21b815260048101829052602401610390565b5050565b600080608083901c1561172e57608092831c92015b604083901c1561174057604092831c92015b602083901c1561175257602092831c92015b601083901c1561176457601092831c92015b600883901c1561177657600892831c92015b600483901c1561178857600492831c92015b600283901c1561179a57600292831c92015b600183901c156105765760010192915050565b60008183106117bc5781610573565b5090919050565b60006117d26002848418611d0a565b61057390848416611c73565b600061112c4361071f565b82546000908190801561190c576000611807876107db600185611c86565b6040805180820190915290546001600160601b03808216808452600160601b9092046001600160a01b03166020840152919250908716101561185c57604051632520601d60e01b815260040160405180910390fd5b80516001600160601b038088169116036118aa5784611880886107db600186611c86565b80546001600160a01b0392909216600160601b026001600160601b039092169190911790556118fc565b604080518082019091526001600160601b0380881682526001600160a01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160601b029216919091179101555b6020015192508391506111449050565b5050604080518082019091526001600160601b0380851682526001600160a01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160601b029190931617920191909155905081611144565b6001600160a01b03166000908152600591909101602052604090205460ff1690565b6001600160a01b03166000908152600691909101602052604090205460ff1690565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156119dd5750600091506003905082611a67565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611a31573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611a5d57506000925060019150829050611a67565b9250600091508190505b9450945094915050565b5080546000825590600052602060002090810190611a8f9190611a92565b50565b5b808211156107525760008155600101611a93565b80356001600160a01b0381168114611abe57600080fd5b919050565b600080600060608486031215611ad857600080fd5b83359250611ae860208501611aa7565b9150604084013590509250925092565b6001600160a01b0391909116815260200190565b60008060408385031215611b1f57600080fd5b82359150611b2f60208401611aa7565b90509250929050565b60008060408385031215611b4b57600080fd5b50508035926020909101359150565b600060208284031215611b6c57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611b9f57600080fd5b84359350611baf60208601611aa7565b92506040850135915060608501356001600160401b0380821115611bd257600080fd5b818701915087601f830112611be657600080fd5b813581811115611bf857611bf8611b73565b604051601f8201601f19908116603f01168101908382118183101715611c2057611c20611b73565b816040528281528a6020848701011115611c3957600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082018082111561057657610576611c5d565b8181038181111561057657610576611c5d565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060018201611ced57611ced611c5d565b5060010190565b634e487b7160e01b600052602160045260246000fd5b600082611d2757634e487b7160e01b600052601260045260246000fd5b50049056fe916811490c3a0241b2088d3f6464fbfe3003b4bb42a760a720e893a81de60051a264697066735822122096ffa145108217d846f7581414b4320d17179bb66f8af5af3ffc21e72f65f06664736f6c63430008140033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100a35760003560e01c806306e03aaf146100a85780631371cf62146100d15780633fb3ab72146100f45780634d8ea7ca14610116578063736a289a14610136578063ac1f6b1b14610156578063cd5767cc14610176578063e901a1a614610189578063ed511cf0146101ac578063f6573786146101bf578063fda2e13d146101df575b600080fd5b6100bb6100b6366004611ac3565b6101ff565b6040516100c89190611af8565b60405180910390f35b6100e46100df366004611ac3565b610243565b60405190151581526020016100c8565b81801561010057600080fd5b5061011461010f366004611b0c565b61028b565b005b81801561012257600080fd5b50610114610131366004611b0c565b61034e565b81801561014257600080fd5b50610114610151366004611b0c565b61043c565b81801561016257600080fd5b50610114610171366004611b0c565b6104af565b6100bb610184366004611b0c565b610567565b81801561019557600080fd5b506101146101a4366004611b38565b601d90910155565b6100e46101ba366004611ac3565b61057c565b8180156101cb57600080fd5b506101146101da366004611b5a565b610589565b8180156101eb57600080fd5b506101146101fa366004611b89565b6105f7565b600061023b6102386102108461071f565b6001600160a01b038616600090815260178801602052604090209065ffffffffffff16610756565b90565b949350505050565b60006102796102518361071f565b6001600160a01b038516600090815260178701602052604090209065ffffffffffff16610756565b6001600160a01b031615949350505050565b61029682823361080d565b6001600160a01b0381166000908152601b830160205260409020546102bc816001611c73565b336000818152601a860160209081526040808320949094556001600160a01b038616808352601b8801825284832080546001810182559084528284200180546001600160a01b03199081168617909155848452601c89019092528483208054909216811790915592517fa5ce3061f55dc6a6cb616713edbec99b638865accddbd58c83fd009e9ce920e79190a3505050565b600061035a8383610a26565b9050816001600160a01b0316816001600160a01b031603610399578160405163c6ac53df60e01b81526004016103909190611af8565b60405180910390fd5b336001600160a01b038316148015906103bb5750336001600160a01b03821614155b156103db573360405163ea93ab6d60e01b81526004016103909190611af8565b6001600160a01b038216600090815260178401602052604081206103fe91610a68565b610409838383610a89565b806001600160a01b0316826001600160a01b0316600080516020611d2d83398151915260405160405180910390a3505050565b6001600160a01b038082166000908152601c840160205260409020541680610479578160405163c6ac53df60e01b81526004016103909190611af8565b6001600160a01b03811633146104a4573360405163ea93ab6d60e01b81526004016103909190611af8565b610409838383610c35565b6001600160a01b038082166000908152601c8401602052604090205416806104ec578160405163c6ac53df60e01b81526004016103909190611af8565b6001600160a01b0381163314610517573360405163ea93ab6d60e01b81526004016103909190611af8565b601d8301543360009081526019850160205260409020541061054c5760405163aca3ff4360e01b815260040160405180910390fd5b610557838333610c35565b610562838333610dcf565b505050565b60006105738383610a26565b90505b92915050565b600061023b848484610ec6565b336000908152601c820160205260409020546001600160a01b0316806105c4573360405163c6ac53df60e01b81526004016103909190611af8565b6105cf823383610c35565b6040516001600160a01b038216903390600080516020611d2d83398151915290600090a35050565b8142111561061857604051630819bdcd60e01b815260040160405180910390fd5b604080517f88708ceda20b7f681a1d0bcac82e8c12fa88a5ce30261f012fdb9ed1ddc63bae60208201526001600160a01b038516918101919091523360608201526080810183905260009060a001604051602081830303815290604052805190602001209050600061068982610ee7565b905060006106978285610f14565b9050856001600160a01b0316816001600160a01b0316146106cb57604051638baa579f60e01b815260040160405180910390fd5b6106d687338861080d565b601d8701543360009081526019890160205260409020541061070b5760405163aca3ff4360e01b815260040160405180910390fd5b610716878733610dcf565b50505050505050565b600065ffffffffffff821115610752576040516306dfcc6560e41b81526030600482015260248101839052604401610390565b5090565b8154600090818160058111156107b657600061077184610f3e565b61077b9085611c86565b6000888152602090209091508101546001600160601b0390811690871610156107a6578091506107b4565b6107b1816001611c73565b92505b505b60006107c48787858561102d565b905080156107ff576107e9876107db600184611c86565b600091825260209091200190565b54600160601b90046001600160a01b0316610802565b60005b979650505050505050565b6001600160a01b0381166000908152601784016020526040902061083090611091565b6001600160a01b031615158061085f57506001600160a01b0381166000908152601a8401602052604090205415155b1561087f5780604051639546eb6360e01b81526004016103909190611af8565b6001600160a01b038216600090815260178401602052604090206108a290611091565b6001600160a01b03161515806108d357506001600160a01b038281166000908152601c850160205260409020541615155b156108f35781604051639546eb6360e01b81526004016103909190611af8565b6001600160a01b038116600090815260198401602052604090205415158061093457506001600160a01b0381166000908152601b8401602052604090205415155b156109545781604051639546eb6360e01b81526004016103909190611af8565b61095e83826110ca565b8061098457506001600160a01b0381811660009081526022850160205260409020541615155b156109a45780604051631cd13c0760e21b81526004016103909190611af8565b6109ae83826110ff565b806109d257506001600160a01b038116600090815260218401602052604090205415155b156109f25780604051631cd13c0760e21b81526004016103909190611af8565b816001600160a01b0316816001600160a01b03160361056257806040516305333f6f60e31b81526004016103909190611af8565b6001600160a01b038116600090815260178301602052604081208190610a4f9061023890611091565b90506001600160a01b0381166105735782915050610576565b610a83610a73611122565b839065ffffffffffff1683611131565b50505050565b6001600160a01b038083166000908152601885016020908152604080832054938516835260198701909152902054610ac2600183611c86565b9150610acf600182611c86565b8214610b9d576001600160a01b03831660009081526019860160205260408120610afa600184611c86565b81548110610b0a57610b0a611c99565b60009182526020808320909101546001600160a01b03878116845260198a019092526040909220805491909216925082919085908110610b4c57610b4c611c99565b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055610b80836001611c73565b6001600160a01b0390911660009081526018870160205260409020555b6001600160a01b03831660009081526019860160205260409020805480610bc657610bc6611caf565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526018870181526040808320839055601988019091528120610c1891611a71565b610c2385858561114c565b610c2e8585856112ba565b5050505050565b6001600160a01b038083166000908152601a850160209081526040808320549385168352601b8701909152902054610c6e600183611c86565b9150610c7b600182611c86565b8214610d49576001600160a01b0383166000908152601b860160205260408120610ca6600184611c86565b81548110610cb657610cb6611c99565b60009182526020808320909101546001600160a01b038781168452601b8a019092526040909220805491909216925082919085908110610cf857610cf8611c99565b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055610d2c836001611c73565b6001600160a01b039091166000908152601a870160205260409020555b6001600160a01b0383166000908152601b860160205260409020805480610d7257610d72611caf565b60008281526020808220830160001990810180546001600160a01b031990811690915593019093556001600160a01b03969096168652601a870182526040808720879055601c909701909152949093208054909416909355505050565b6001600160a01b03821660009081526017840160205260409020610df39082610a68565b6001600160a01b0381166000908152601984016020526040902054610e19816001611c73565b6001600160a01b03808516600081815260188801602090815260408083209590955592861681526019880183529283208054600181018255908452919092200180546001600160a01b0319169091179055610e7584848461136a565b610e8084848461148d565b816001600160a01b0316836001600160a01b03167ff644c2a6a740703067e9f00fb5a09444cd18cca01a19ce87915e934297a43fe260405160405180910390a350505050565b6000610ed46102518361071f565b6001600160a01b03161515949350505050565b6000610576610ef4611531565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610f24868661160f565b925092509250610f34828261165c565b5090949350505050565b600081600003610f5057506000919050565b60006001610f5d84611719565b901c6001901b90506001818481610f7657610f76611cc5565b048201901c90506001818481610f8e57610f8e611cc5565b048201901c90506001818481610fa657610fa6611cc5565b048201901c90506001818481610fbe57610fbe611cc5565b048201901c90506001818481610fd657610fd6611cc5565b048201901c90506001818481610fee57610fee611cc5565b048201901c9050600181848161100657611006611cc5565b048201901c90506110268182858161102057611020611cc5565b046117ad565b9392505050565b60005b8183101561108957600061104484846117c3565b6000878152602090209091506001600160601b038616908201546001600160601b0316111561107557809250611083565b611080816001611c73565b93505b50611030565b509392505050565b805460009080156110c1576110ab836107db600184611c86565b54600160601b90046001600160a01b0316611026565b60009392505050565b6001600160a01b0381166000908152601e8301602052604081206110ed90611091565b6001600160a01b031615159392505050565b6001600160a01b0381166000908152601f8301602052604081206110ed90611091565b600061112c6117de565b905090565b60008061113f8585856117e9565b915091505b935093915050565b6001600160a01b03808316600090815260238501602052604080822054928416825290205481116111ac576001600160a01b0382166000908152602385016020526040812080548392906111a1908490611c86565b909155506111c89050565b6001600160a01b03821660009081526023850160205260408120555b6001600160a01b038316600090815260158501602090815260408083208054825181850281018501909352808352919290919083018282801561122a57602002820191906000526020600020905b815481526020019060010190808311611216575b5050505050905060005b81518110156112b257600082828151811061125157611251611c99565b602090810291909101810151600081815260268a01835260408082206001600160a01b038b8116845294528082205493891682528120805492945091611298908490611c86565b909155508291506112aa905081611cdb565b915050611234565b505050505050565b60006112c68484611968565b6112d15760006112d4565b60015b60ff16905060006112e5858561198a565b6112f05760006112f3565b60015b60ff16905081856007016000856001600160a01b03166001600160a01b03168152602001908152602001600020600082825461132f9190611c86565b90915550506001600160a01b03831660009081526008860160205260408120805483929061135e908490611c86565b90915550505050505050565b6001600160a01b0380831660009081526023850160205260408082205492841682528120805490919061139e908490611c73565b90915550506001600160a01b038216600090815260158401602090815260408083208054825181850281018501909352808352919290919083018282801561140557602002820191906000526020600020905b8154815260200190600101908083116113f1575b5050505050905060005b8151811015610c2e57600082828151811061142c5761142c611c99565b602090810291909101810151600081815260268901835260408082206001600160a01b038a8116845294528082205493881682528120805492945091611473908490611c73565b90915550829150611485905081611cdb565b91505061140f565b60006114998484611968565b6114a45760006114a7565b60015b60ff16905060006114b8858561198a565b6114c35760006114c6565b60015b60ff16905081856007016000856001600160a01b03166001600160a01b0316815260200190815260200160002060008282546115029190611c73565b90915550506001600160a01b03831660009081526008860160205260408120805483929061135e908490611c73565b600061112c6040805180820182526012815271159950995d1d195c94185cdcdc1bdc9d158d60721b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fa00acabd45e7aaba1d0db68eacf74431b01cc12a5da5996724b7557088d571a4818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0909101909252815191012090565b600080600083516041036116495760208401516040850151606086015160001a61163b888285856119ac565b955095509550505050611655565b50508151600091506002905b9250925092565b600082600381111561167057611670611cf4565b03611679575050565b600182600381111561168d5761168d611cf4565b036116ab5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156116bf576116bf611cf4565b036116e05760405163fce698f760e01b815260048101829052602401610390565b60038260038111156116f4576116f4611cf4565b03611715576040516335e2f38360e21b815260048101829052602401610390565b5050565b600080608083901c1561172e57608092831c92015b604083901c1561174057604092831c92015b602083901c1561175257602092831c92015b601083901c1561176457601092831c92015b600883901c1561177657600892831c92015b600483901c1561178857600492831c92015b600283901c1561179a57600292831c92015b600183901c156105765760010192915050565b60008183106117bc5781610573565b5090919050565b60006117d26002848418611d0a565b61057390848416611c73565b600061112c4361071f565b82546000908190801561190c576000611807876107db600185611c86565b6040805180820190915290546001600160601b03808216808452600160601b9092046001600160a01b03166020840152919250908716101561185c57604051632520601d60e01b815260040160405180910390fd5b80516001600160601b038088169116036118aa5784611880886107db600186611c86565b80546001600160a01b0392909216600160601b026001600160601b039092169190911790556118fc565b604080518082019091526001600160601b0380881682526001600160a01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160601b029216919091179101555b6020015192508391506111449050565b5050604080518082019091526001600160601b0380851682526001600160a01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160601b029190931617920191909155905081611144565b6001600160a01b03166000908152600591909101602052604090205460ff1690565b6001600160a01b03166000908152600691909101602052604090205460ff1690565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156119dd5750600091506003905082611a67565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611a31573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611a5d57506000925060019150829050611a67565b9250600091508190505b9450945094915050565b5080546000825590600052602060002090810190611a8f9190611a92565b50565b5b808211156107525760008155600101611a93565b80356001600160a01b0381168114611abe57600080fd5b919050565b600080600060608486031215611ad857600080fd5b83359250611ae860208501611aa7565b9150604084013590509250925092565b6001600160a01b0391909116815260200190565b60008060408385031215611b1f57600080fd5b82359150611b2f60208401611aa7565b90509250929050565b60008060408385031215611b4b57600080fd5b50508035926020909101359150565b600060208284031215611b6c57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611b9f57600080fd5b84359350611baf60208601611aa7565b92506040850135915060608501356001600160401b0380821115611bd257600080fd5b818701915087601f830112611be657600080fd5b813581811115611bf857611bf8611b73565b604051601f8201601f19908116603f01168101908382118183101715611c2057611c20611b73565b816040528281528a6020848701011115611c3957600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082018082111561057657610576611c5d565b8181038181111561057657610576611c5d565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060018201611ced57611ced611c5d565b5060010190565b634e487b7160e01b600052602160045260246000fd5b600082611d2757634e487b7160e01b600052601260045260246000fd5b50049056fe916811490c3a0241b2088d3f6464fbfe3003b4bb42a760a720e893a81de60051a264697066735822122096ffa145108217d846f7581414b4320d17179bb66f8af5af3ffc21e72f65f06664736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}