0 txs
2 calls
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
MINT_MANAGER_ROLE
viewfunction MINT_MANAGER_ROLE() view returns (uint256)
name
viewfunction name() view returns (string)
nextTokenId
viewfunction nextTokenId() view returns (uint256)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
rbac
viewfunction rbac() view returns (address)
REDEEM_MANAGER_ROLE
viewfunction REDEEM_MANAGER_ROLE() view returns (uint256)
SUPER_ADMIN_ROLE
viewfunction SUPER_ADMIN_ROLE() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
approve
nonpayablefunction approve(address to, uint256 tokenId)
batchCancelBurn
nonpayablefunction batchCancelBurn(uint256[] cardIds)
cancelBurn
nonpayablefunction cancelBurn(uint256 cardId)
finalizeRedeem
nonpayablefunction finalizeRedeem(uint256 cardId, string redeemMetadata)
initialize
nonpayablefunction initialize(address rbac, string name, string symbol)
initiateBurn
nonpayablefunction initiateBurn(tuple params)
initiateBurnBatch
nonpayablefunction initiateBurnBatch(tuple[] params)
mint
nonpayablefunction mint(tuple params)
mintBatch
nonpayablefunction mintBatch(tuple[] params)
mintBatchTo
nonpayablefunction mintBatchTo(tuple[] params, address[] receivers)
mintTo
nonpayablefunction mintTo(tuple params, address receiver)
revertBurnRequest
nonpayablefunction revertBurnRequest(uint256 cardId, string revertBurnRequestMetadata)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BurnInitiated
event BurnInitiated(uint256 indexed cardId, uint8 burnType, address indexed burner)
BurnRequestReverted
event BurnRequestReverted(uint256 indexed cardId, string revertBurnRequestMetadata)
CardMinted
event CardMinted(uint256 indexed cardId, address indexed receiver, string cardMetadata, string cardSerialNumber)
Initialized
event Initialized(uint64 version)
RedeemFinalized
event RedeemFinalized(uint256 indexed cardId, string redeemMetadata)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ArrayLengthMismatch
error ArrayLengthMismatch()
CardAlreadyInBurnState
error CardAlreadyInBurnState()
CardFrozen
error CardFrozen()
CardNotInBurnState
error CardNotInBurnState()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ERC721IncorrectOwner
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)
ERC721InsufficientApproval
error ERC721InsufficientApproval(address operator, uint256 tokenId)
ERC721InvalidApprover
error ERC721InvalidApprover(address approver)
ERC721InvalidOperator
error ERC721InvalidOperator(address operator)
ERC721InvalidOwner
error ERC721InvalidOwner(address owner)
ERC721InvalidReceiver
error ERC721InvalidReceiver(address receiver)
ERC721InvalidSender
error ERC721InvalidSender(address sender)
ERC721NonexistentToken
error ERC721NonexistentToken(uint256 tokenId)
FailedCall
error FailedCall()
InvalidBurnStateForRedeem
error InvalidBurnStateForRedeem()
InvalidBurnType
error InvalidBurnType()
InvalidInitialization
error InvalidInitialization()
NotAuthorizedRole
error NotAuthorizedRole(uint256 roleId)
NotCardOwner
error NotCardOwner()
NotInitializing
error NotInitializing()
RBACAddressZero
error RBACAddressZero()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b6040516124f390816100ed8239608051818181610fb501526110460152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a7146118b05750806302c0c7af1461180957806306fdde031461174c578063081812fc14611703578063095ea7b314611617578063223b2363146114f457806323b872dd146114dd5780632981360c1461141f578063386c0c801461129257806342842e0e146112635780634460bdd6146112485780634f1ef2861461100957806352d1902d14610fa3578063541db67114610f885780636352211e14610f5857806365addd0a14610d4957806370a0823114610cfa57806375794a3c14610cde5780637d6ccb9514610c855780638a472ec114610bdb578063906571471461071357806395d89b4114610631578063a22cb46514610599578063a8ecc7f114610571578063ad3cb1cc1461052a578063b88d4fde146104d0578063c202aaf8146104b5578063c87b56dd146103d3578063d2c364ea146102bd578063dd869def146101ea578063e3f4ce55146101cc5763e985e9c51461017c575f80fd5b346101c85760403660031901126101c85761019561193f565b6101a66101a0611955565b91611d43565b9060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b5f80fd5b346101c85760203660031901126101c8576101e8600435611d8b565b005b346101c85760203660031901126101c8576004356001600160401b0381116101c857604060031982360301126101c8576033546040516303b0981b60e61b81526003600482015233602482015290602090829060449082906001600160a01b03165afa9081156102b2575f91610283575b501561026f576101e8903390600401611e6a565b633db159f160e21b5f52600360045260245ffd5b6102a5915060203d6020116102ab575b61029d81836119d5565b810190611ab8565b8261025b565b503d610293565b6040513d5f823e3d90fd5b346101c85760403660031901126101c8576004356001600160401b0381116101c8576102ed9036906004016119a5565b6024356001600160401b0381116101c85761030c9036906004016119a5565b6033546040516303b0981b60e61b815260036004820152336024820152929491939290602090829060449082906001600160a01b03165afa9081156102b2575f916103b4575b501561026f578282036103a5575f5b82811061036a57005b610375818484611cc5565b90610381818688611d7b565b35916001600160a01b03831683036101c85760019261039f91611e6a565b01610361565b63512509d360e11b5f5260045ffd5b6103cd915060203d6020116102ab5761029d81836119d5565b85610352565b346101c85760203660031901126101c8576004356103f081611e09565b505f52600260205260405f20604051905f9080549061040e82611a80565b808552916001811690811561048e575060011461044e575b61044a84610436818603826119d5565b60405191829160208352602083019061191b565b0390f35b5f90815260208120939250905b8082106104745750909150810160200161043682610426565b91926001816020925483858801015201910190929161045b565b60ff191660208087019190915292151560051b850190920192506104369150839050610426565b346101c8575f3660031901126101c857602060405160038152f35b346101c85760803660031901126101c8576104e961193f565b6104f1611955565b90604435606435926001600160401b0384116101c8576105186101e8943690600401611a11565b92610524838383611af0565b33612216565b346101c8575f3660031901126101c85761044a60405161054b6040826119d5565b60058152640352e302e360dc1b602082015260405191829160208352602083019061191b565b346101c8575f3660031901126101c8576033546040516001600160a01b039091168152602090f35b346101c85760403660031901126101c8576105b261193f565b602435908115158092036101c8576001600160a01b031690811561061e576105d933611d43565b825f5260205260405f2060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b50630b61174360e31b5f5260045260245ffd5b346101c8575f3660031901126101c8576040515f5f8051602061249e8339815191525461065d81611a80565b80845290600181169081156106ef5750600114610685575b61044a83610436818503826119d5565b5f8051602061249e8339815191525f9081527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e939250905b8082106106d557509091508101602001610436610675565b9192600181602092548385880101520191019092916106bd565b60ff191660208086019190915291151560051b840190910191506104369050610675565b346101c85760603660031901126101c85761072c61193f565b6024356001600160401b0381116101c85761074b903690600401611a11565b906044356001600160401b0381116101c85761076b903690600401611a11565b905f8051602061247e833981519152549060ff8260401c1615916001600160401b03811680159081610bd3575b6001149081610bc9575b159081610bc0575b50610bb15767ffffffffffffffff1981166001175f8051602061247e8339815191525582610b85575b506107dc612374565b6107e4612374565b83516001600160401b038111610a5e5761080b5f805160206123fe83398151915254611a80565b601f8111610b16575b50602094601f8211600114610a7d576108479293949582915f92610a72575b50508160011b915f199060031b1c19161790565b5f805160206123fe833981519152555b82516001600160401b038111610a5e5761087e5f8051602061249e83398151915254611a80565b601f81116109ef575b506020601f82116001146109745781906108b79394955f926109695750508160011b915f199060031b1c19161790565b5f8051602061249e833981519152555b6108cf612374565b6108d7612374565b6001600160a01b0316801561095a576001600160601b0360a01b603354161760335560015f5561090357005b68ff0000000000000000195f8051602061247e83398151915254165f8051602061247e833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63e676f03160e01b5f5260045ffd5b015190508580610833565b601f198216905f8051602061249e8339815191525f52805f20915f5b8181106109d7575095836001959697106109bf575b505050811b015f8051602061249e833981519152556108c7565b01515f1960f88460031b161c191690558480806109a5565b9192602060018192868b015181550194019201610990565b5f8051602061249e8339815191525f527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e601f830160051c81019160208410610a54575b601f0160051c01905b818110610a495750610887565b5f8155600101610a3c565b9091508190610a33565b634e487b7160e01b5f52604160045260245ffd5b015190508680610833565b601f198216955f805160206123fe8339815191525f527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81915f5b888110610afe57508360019596979810610ae6575b505050811b015f805160206123fe83398151915255610857565b01515f1960f88460031b161c19169055858080610acc565b91926020600181928685015181550194019201610ab7565b5f805160206123fe8339815191525f527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81601f830160051c81019160208410610b7b575b601f0160051c01905b818110610b705750610814565b5f8155600101610b63565b9091508190610b5a565b68ffffffffffffffffff191668010000000000000001175f8051602061247e83398151915255846107d3565b63f92ee8a960e01b5f5260045ffd5b905015866107aa565b303b1591506107a2565b849150610798565b346101c85760403660031901126101c8576004356001600160401b0381116101c857604060031982360301126101c857610c13611955565b6033546040516303b0981b60e61b81526003600482015233602482015290602090829060449082906001600160a01b03165afa9081156102b2575f91610c66575b501561026f576101e891600401611e6a565b610c7f915060203d6020116102ab5761029d81836119d5565b83610c54565b346101c85760203660031901126101c8576004356001600160401b0381116101c857610cb59036906004016119a5565b905f5b828110610cc157005b80610cd8610cd26001938686611d7b565b35611d8b565b01610cb8565b346101c8575f3660031901126101c85760205f54604051908152f35b346101c85760203660031901126101c857610d1361193f565b6001600160a01b03811615610d3657610d2d602091611d0b565b54604051908152f35b6322718ad960e21b5f525f60045260245ffd5b346101c85760403660031901126101c8576004356024356001600160401b0381116101c857610d7c903690600401611a11565b6033546040516303b0981b60e61b815260048082015233602482015290602090829060449082906001600160a01b03165afa9081156102b2575f91610f39575b5015610f2657815f52600160205260ff60405f2054166002811015610f035715610f1757815f52600160205260ff60405f2054166002811015610f0357600103610ef457610e0982612325565b6001600160a01b0381168015919084905f908415610ed6575b8282525f8051602061243e8339815191526020526040822080546001600160a01b03191690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a450610ec357610ebe7f0602016f08f78cb9ece3854c25263d559634e7a30f2f9c35903e6f30b657e0fb91835f52600160205260405f2060ff19815416905560405191829160208352602083019061191b565b0390a2005b50637e27328960e01b5f5260045260245ffd5b610edf8361234b565b610ee884611d0b565b82198154019055610e22565b63e239ac6d60e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b63f078ba7760e01b5f5260045ffd5b633db159f160e21b5f526004805260245ffd5b610f52915060203d6020116102ab5761029d81836119d5565b83610dbc565b346101c85760203660031901126101c8576020610f76600435611e09565b6040516001600160a01b039091168152f35b346101c8575f3660031901126101c857602060405160048152f35b346101c8575f3660031901126101c8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610ffa5760206040515f8051602061241e8339815191528152f35b63703e46dd60e11b5f5260045ffd5b60403660031901126101c85761101d61193f565b6024356001600160401b0381116101c85761103c903690600401611a11565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611226575b50610ffa576033546040516303b0981b60e61b81526001600482015233602482015290602090829060449082906001600160a01b03165afa9081156102b2575f91611207575b50156111f3576040516352d1902d60e01b81526001600160a01b0383169290602081600481875afa5f91816111bf575b506110ff5783634c9c8ce360e01b5f5260045260245ffd5b805f8051602061241e8339815191528592036111ad5750813b1561119b575f8051602061241e83398151915280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115611183575f808360206101e895519101845af461117d6121e7565b9161239f565b50503461118c57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d6020116111eb575b816111db602093836119d5565b810103126101c8575190856110e7565b3d91506111ce565b633db159f160e21b5f52600160045260245ffd5b611220915060203d6020116102ab5761029d81836119d5565b836110b7565b5f8051602061241e833981519152546001600160a01b03161415905083611071565b346101c8575f3660031901126101c857602060405160018152f35b346101c8576101e86112743661196b565b90604051926112846020856119d5565b5f8452610524838383611af0565b346101c85760203660031901126101c8576004356001600160401b0381116101c857366023820112156101c85780600401356001600160401b0381116101c8576024820191602436918360061b0101116101c8575f5b8181106112f157005b60206112fe828486611cfb565b013560028110156101c8571561141057336001600160a01b0361132b611325848688611cfb565b35611e09565b16036114015761133c818385611cfb565b355f52600160205260ff60405f2054166002811015610f03576113f2576020611366828486611cfb565b013560028110156101c85761139190611380838587611cfb565b355f52600160205260405f20611a55565b61139c818385611cfb565b359060206113ab828587611cfb565b013560028110156101c8576001927f309129078e08d2819db9fb1757a39c9bf7eaa591f6d9dcda15a157975cefb2b8604051806113e9339582611a6d565b0390a3016112e8565b6322250ce160e01b5f5260045ffd5b638f0f029b60e01b5f5260045ffd5b634492470b60e11b5f5260045ffd5b346101c85760203660031901126101c8576004356001600160401b0381116101c85761144f9036906004016119a5565b6033546040516303b0981b60e61b81526003600482015233602482015290602090829060449082906001600160a01b03165afa9081156102b2575f916114be575b501561026f575f5b8181106114a157005b6001906114b8336114b3838688611cc5565b611e6a565b01611498565b6114d7915060203d6020116102ab5761029d81836119d5565b83611490565b346101c8576101e86114ee3661196b565b91611af0565b346101c85760403660031901126101c8576004356024356001600160401b0381116101c857366023820112156101c8578060040135906001600160401b0382116101c85736602483830101116101c8576033546040516303b0981b60e61b815260048082015233602482015290602090829060449082906001600160a01b03165afa9081156102b2575f916115f8575b5015610f2657825f52600160205260ff60405f2054166002811015610f035715610f17577f86789c547d2c491e788cc35e61c1e5501b8d0c46d721e0388bd67c83aab6ddaf91835f52600160205260405f2060ff198154169055610ebe604051928392602084526024602085019201611ad0565b611611915060203d6020116102ab5761029d81836119d5565b84611584565b346101c85760403660031901126101c85761163061193f565b60243561163c81611e09565b331515806116f0575b806116cd575b6116ba5781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f9081525f8051602061245e8339815191526020526040902080546001600160a01b0319166001600160a01b03909216919091179055005b63a9fbf51f60e01b5f523360045260245ffd5b506116d781611d43565b335f908152602091909152604090205460ff161561164b565b506001600160a01b038116331415611645565b346101c85760203660031901126101c8576020610f7660043561172581611e09565b505f9081525f8051602061245e83398151915260205260409020546001600160a01b031690565b346101c8575f3660031901126101c8576040515f5f805160206123fe8339815191525461177881611a80565b80845290600181169081156106ef575060011461179f5761044a83610436818503826119d5565b5f805160206123fe8339815191525f9081527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81939250905b8082106117ef57509091508101602001610436610675565b9192600181602092548385880101520191019092916117d7565b346101c85760403660031901126101c85760243560028110156101c85780156114105760043561183881611e09565b336001600160a01b039091160361140157805f52600160205260ff60405f2054166002811015610f03576113f257805f52600160205261187b8260405f20611a55565b7f309129078e08d2819db9fb1757a39c9bf7eaa591f6d9dcda15a157975cefb2b8604051806118ab339582611a6d565b0390a3005b346101c85760203660031901126101c8576004359063ffffffff60e01b82168092036101c8576020916380ac58cd60e01b811490811561190a575b81156118f9575b5015158152f35b6301ffc9a760e01b149050836118f2565b635b5e139f60e01b811491506118eb565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101c857565b602435906001600160a01b03821682036101c857565b60609060031901126101c8576004356001600160a01b03811681036101c857906024356001600160a01b03811681036101c8579060443590565b9181601f840112156101c8578235916001600160401b0383116101c8576020808501948460051b0101116101c857565b90601f801991011681019081106001600160401b03821117610a5e57604052565b6001600160401b038111610a5e57601f01601f191660200190565b81601f820112156101c857602081359101611a2b826119f6565b92611a3960405194856119d5565b828452828201116101c857815f92602092838601378301015290565b906002811015610f035760ff80198354169116179055565b919060208301926002821015610f035752565b90600182811c92168015611aae575b6020831014611a9a57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611a8f565b908160209103126101c8575180151581036101c85790565b908060209392818452848401375f828201840152601f01601f1916010190565b919091815f52600160205260ff60405f2054166002811015610f0357611cb6576001600160a01b0383168015611ca35782611b2a81612325565b9133151580611bf0575b506001600160a01b03831695611b4e9087611bd257611d0b565b60018154019055815f525f8051602061243e83398151915260205260405f20816001600160601b0360a01b825416179055857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4506001600160a01b0316808303611bba57505050565b6364283d7b60e01b5f5260045260245260445260645ffd5b611bdb8461234b565b611be485611d0b565b80545f19019055611d0b565b90915080611c3d575b15611c065783905f611b34565b836001600160a01b038316611c2757637e27328960e01b5f5260045260245ffd5b63177e802f60e01b5f523360045260245260445ffd5b506001600160a01b03821633148015611c81575b80611bf957505f8481525f8051602061245e83398151915260205260409020546001600160a01b03163314611bf9565b50611c8b82611d43565b335f908152602091909152604090205460ff16611c51565b633250574960e11b5f525f60045260245ffd5b63303e8b6160e21b5f5260045ffd5b9190811015611ce75760051b81013590603e19813603018212156101c8570190565b634e487b7160e01b5f52603260045260245ffd5b9190811015611ce75760061b0190565b6001600160a01b03165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793036020526040902090565b6001600160a01b03165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020526040902090565b9190811015611ce75760051b0190565b805f52600160205260ff60405f2054166002811015610f035715610f1757611db281611e09565b336001600160a01b039091160361140157805f52600160205260405f2060ff1981541690557f86789c547d2c491e788cc35e61c1e5501b8d0c46d721e0388bd67c83aab6ddaf60408051602081525f6020820152a2565b611e1281612325565b906001600160a01b03821615611e26575090565b637e27328960e01b5f5260045260245ffd5b903590601e19813603018212156101c857018035906001600160401b0382116101c8576020019181360383136101c857565b5f54905f1982146121d357600182015f55611e858180611e38565b835f52600260205260405f20916001600160401b038211610a5e57611eaa8354611a80565b601f811161218e575b505f90601f831160011461212a57611ee192915f918361211f5750508160011b915f199060031b1c19161790565b90555b6020604051611ef382826119d5565b5f81526001600160a01b038516948515611ca357611f1085612325565b6001600160a01b03811680151591908790899084612101575b611f3286611d0b565b805460010190555f8381525f8051602061243e83398151915289526040812080546001600160a01b031916841790557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080a4506120ee573b611ffa575b5090611fd0611ff57f09394dacdfb781605e27c4bf5b7bf8a7e3abacb7086d4d35ce8f51182407b0f193611fc48480611e38565b93909482810190611e38565b90611fe8604051968796604088526040880191611ad0565b9285840390860152611ad0565b0390a3565b816120399160409795949396975180938192630a85bd0160e11b83523360048401525f602484015287604484015260806064840152608483019061191b565b03815f8a5af15f91816120ae575b506120745785856120566121e7565b805191826120715783633250574960e11b5f5260045260245ffd5b01fd5b92949391929091906001600160e01b03191663757a42ff60e11b0161209b57611fd0611f90565b83633250574960e11b5f5260045260245ffd5b9091508581813d83116120e7575b6120c681836119d5565b810103126101c857516001600160e01b0319811681036101c857905f612047565b503d6120bc565b6339e3563760e11b5f525f60045260245ffd5b61210a8361234b565b61211384611d0b565b80545f19019055611f29565b013590505f80610833565b601f19831691845f5260205f20925f5b818110612176575090846001959493921061215d575b505050811b019055611ee4565b01355f19600384901b60f8161c191690555f8080612150565b9193602060018192878701358155019501920161213a565b835f5260205f20601f840160051c810191602085106121c9575b601f0160051c01905b8181106121be5750611eb3565b5f81556001016121b1565b90915081906121a8565b634e487b7160e01b5f52601160045260245ffd5b3d15612211573d906121f8826119f6565b9161220660405193846119d5565b82523d5f602084013e565b606090565b823b612224575b5050505050565b604051630a85bd0160e11b81526001600160a01b03918216600482015291811660248301526044820193909352608060648201529116916020908290819061227090608483019061191b565b03815f865af15f91816122e0575b506122ac575061228c6121e7565b805190816122a75782633250574960e11b5f5260045260245ffd5b602001fd5b6001600160e01b03191663757a42ff60e11b016122ce57505f8080808061221d565b633250574960e11b5f5260045260245ffd5b9091506020813d60201161231d575b816122fc602093836119d5565b810103126101c857516001600160e01b0319811681036101c857905f61227e565b3d91506122ef565b5f9081525f8051602061243e83398151915260205260409020546001600160a01b031690565b5f525f8051602061245e83398151915260205260405f206001600160601b0360a01b8154169055565b60ff5f8051602061247e8339815191525460401c161561239057565b631afcd79f60e31b5f5260045ffd5b906123c357508051156123b457805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806123f4575b6123d4575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156123cc56fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930280bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079304f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079301a26469706673582212208d616b93f57d95ae7d8dcabaa04fdf61e805e0588031dde906c68c6fa8bb36e364736f6c634300081a0033