4 txs
85 calls
constructor
constructor(address _usdx, address[] _assets, address[] _custodians, address _owner, uint256 _maxMintPerBlock)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
feeRate
viewfunction feeRate() view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isCustodianAddress
viewfunction isCustodianAddress(address custodian) view returns (bool)
isSupportedAsset
viewfunction isSupportedAsset(address asset) view returns (bool)
listCustodians
viewfunction listCustodians() view returns (address[])
listSupportedAssets
viewfunction listSupportedAssets() view returns (address[])
maxMintPerBlock
viewfunction maxMintPerBlock() view returns (uint256)
mintedPerBlock
viewfunction mintedPerBlock(uint256) view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingOwner
viewfunction pendingOwner() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
USDX
viewfunction USDX() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
addCustodianAddress
nonpayablefunction addCustodianAddress(address custodian)
addSupportedAsset
nonpayablefunction addSupportedAsset(address asset)
buy
nonpayablefunction buy(address _collateralAsset, uint256 _collateralAmount, address _custodianAddress)
buyWithPermit
nonpayablefunction buyWithPermit(address _collateralAsset, uint256 _collateralAmount, address _custodianAddress, uint256 _deadline, uint8 _permitV, bytes32 _permitR, bytes32 _permitS)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pause
nonpayablefunction pause()
removeCustodianAddress
nonpayablefunction removeCustodianAddress(address custodian)
removeSupportedAsset
nonpayablefunction removeSupportedAsset(address asset)
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setMaxMintPerBlock
nonpayablefunction setMaxMintPerBlock(uint256 _maxMintPerBlock)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateFeeRate
nonpayablefunction updateFeeRate(uint256 _rate)
events
AssetAdded
event AssetAdded(address indexed asset)
AssetRemoved
event AssetRemoved(address indexed asset)
BuySuccess
event BuySuccess(address beneficiary, address indexed collateralAsset, uint256 collateralAmount, uint256 usdxAmount, uint256 feeAmount)
CustodianAddressAdded
event CustodianAddressAdded(address indexed custodian)
CustodianAddressRemoved
event CustodianAddressRemoved(address indexed custodian)
CustodyWalletAdded
event CustodyWalletAdded(address wallet)
CustodyWalletRemoved
event CustodyWalletRemoved(address wallet)
MaxMintPerBlockUpdated
event MaxMintPerBlockUpdated(uint256 previousValue, uint256 newValue)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Unpaused
event Unpaused(address account)
UpdateBuyStatus
event UpdateBuyStatus(bool oldStatus, bool newStatus)
UpdateFeeRate
event UpdateFeeRate(uint256 oldFeeRate, uint256 newFeeRate)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162002d9738038062002d9783398101604081905262000034916200058e565b6200003f33620001e8565b6003805460ff191690556001600481905560408051808201909152908152603160f81b60208201526001600160a01b0386166200009a5760405162461bcd60e51b81526004016200009191906200062e565b60405180910390fd5b5083516040805180820190915260018152600d60fa1b602082015290620000d65760405162461bcd60e51b81526004016200009191906200062e565b506040805180820190915260018152603160f81b60208201526001600160a01b038316620001195760405162461bcd60e51b81526004016200009191906200062e565b506001600160a01b03851660805260005b84518110156200017657620001618582815181106200014d576200014d6200067e565b60200260200101516200020660201b60201c565b806200016d8162000694565b9150506200012a565b5060005b8351811015620001c657620001b18482815181106200019d576200019d6200067e565b6020026020010151620002a460201b60201c565b80620001bd8162000694565b9150506200017a565b50620001d28162000342565b620001dd82620001e8565b5050505050620006bc565b600180546001600160a01b0319169055620002038162000383565b50565b62000210620003d3565b6001600160a01b038116158015906200023157506200023160058262000431565b604051806040016040528060018152602001601b60f91b815250906200026c5760405162461bcd60e51b81526004016200009191906200062e565b506040516001600160a01b038216907f0e3c58ebfb2e7465fbb1c32e6b4f40c3c4f5ca77e8218a386aff8617831260d790600090a250565b620002ae620003d3565b6001600160a01b03811615801590620002cf5750620002cf60078262000431565b604051806040016040528060018152602001603560f81b815250906200030a5760405162461bcd60e51b81526004016200009191906200062e565b506040516001600160a01b038216907ffbd30b5bdd51f5de989170dc23d65aac2de0a6099f5d9d200bc5779d883abcd490600090a250565b600a5460408051918252602082018390527fa27fec0c27b745bc6f81494e5dfbe60ed3d3593e1b7a70d7bbca8af8d5a835b5910160405180910390a1600a55565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146200042f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000091565b565b600062000448836001600160a01b03841662000451565b90505b92915050565b60008181526001830160205260408120546200049a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200044b565b5060006200044b565b6001600160a01b03811681146200020357600080fd5b634e487b7160e01b600052604160045260246000fd5b8051620004dc81620004a3565b919050565b600082601f830112620004f357600080fd5b815160206001600160401b0380831115620005125762000512620004b9565b8260051b604051601f19603f830116810181811084821117156200053a576200053a620004b9565b6040529384528581018301938381019250878511156200055957600080fd5b83870191505b8482101562000583576200057382620004cf565b835291830191908301906200055f565b979650505050505050565b600080600080600060a08688031215620005a757600080fd5b8551620005b481620004a3565b60208701519095506001600160401b0380821115620005d257600080fd5b620005e089838a01620004e1565b95506040880151915080821115620005f757600080fd5b506200060688828901620004e1565b93505060608601516200061981620004a3565b80925050608086015190509295509295909350565b600060208083528351808285015260005b818110156200065d578581018301518582016040015282016200063f565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b600060018201620006b557634e487b7160e01b600052601160045260246000fd5b5060010190565b6080516126b8620006df6000396000818161030b015261136b01526126b86000f3fe608060405234801561001057600080fd5b50600436106101e45760003560e01c806379ba50971161010f5780639cd29136116100a2578063db61c76e11610071578063db61c76e14610447578063e30c39781461045a578063f2fde38b14610478578063fac09e871461048b57600080fd5b80639cd2913614610411578063a217fddf14610424578063c0cb2cc71461042c578063d547741f1461043457600080fd5b806391d14854116100de57806391d14854146103a6578063928907dd146103ec578063978bbdb9146103f55780639be918e6146103fe57600080fd5b806379ba5097146103655780637b84fda51461036d5780638456cb59146103805780638da5cb5b1461038857600080fd5b806336568abe116101875780635436ae9a116101565780635436ae9a146102f157806359cb9fec146103065780635c975abb14610352578063715018a61461035d57600080fd5b806336568abe146102b05780633f4ba83a146102c35780634ba87af9146102cb5780634be7a64b146102de57600080fd5b80631cf58ff2116101c35780631cf58ff214610239578063248a9ca31461024c5780632ba329911461027d5780632f2ff15d1461029d57600080fd5b80628fbe5e146101e957806301ffc9a7146101fe5780631c46bc6f14610226575b600080fd5b6101fc6101f73660046120db565b61049e565b005b61021161020c366004612148565b61062e565b60405190151581526020015b60405180910390f35b6101fc61023436600461218a565b6106c7565b61021161024736600461218a565b610773565b61026f61025a3660046121a5565b60009081526002602052604090206001015490565b60405190815260200161021d565b61026f61028b3660046121a5565b600b6020526000908152604090205481565b6101fc6102ab3660046121be565b610780565b6101fc6102be3660046121be565b6107aa565b6101fc610843565b6101fc6102d936600461218a565b610855565b6101fc6102ec36600461218a565b610901565b6102f96109cd565b60405161021d91906121ea565b61032d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021d565b60035460ff16610211565b6101fc6109de565b6101fc6109f0565b6101fc61037b3660046121a5565b610a8b565b6101fc610b2c565b60005473ffffffffffffffffffffffffffffffffffffffff1661032d565b6102116103b43660046121be565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61026f600a5481565b61026f60095481565b61021161040c36600461218a565b610b3c565b6101fc61041f3660046121a5565b610b49565b61026f600081565b6102f9610b5a565b6101fc6104423660046121be565b610b66565b6101fc610455366004612244565b610b8b565b60015473ffffffffffffffffffffffffffffffffffffffff1661032d565b6101fc61048636600461218a565b610ce3565b6101fc61049936600461218a565b610d93565b6104a6610e5f565b6104ae610eb2565b6104b9600588610f0b565b6040518060400160405280600181526020017f3400000000000000000000000000000000000000000000000000000000000000815250906105165760405162461bcd60e51b815260040161050d91906122a4565b60405180910390fd5b5060408051808201909152600181527f38000000000000000000000000000000000000000000000000000000000000006020820152866105695760405162461bcd60e51b815260040161050d91906122a4565b5073ffffffffffffffffffffffffffffffffffffffff8516158015906105955750610595600786610f0b565b6040518060400160405280600281526020017f3131000000000000000000000000000000000000000000000000000000000000815250906105e95760405162461bcd60e51b815260040161050d91906122a4565b5061061073ffffffffffffffffffffffffffffffffffffffff881633308988888888610f3d565b61061b8787876111a3565b6106256001600455565b50505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106c157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6106cf61144a565b6106da6005826114b1565b6040518060400160405280600181526020017f36000000000000000000000000000000000000000000000000000000000000008152509061072e5760405162461bcd60e51b815260040161050d91906122a4565b5060405173ffffffffffffffffffffffffffffffffffffffff8216907f37803e2125c48ee96c38ddf04e826daf335b0e1603579040fd275aba6d06b6fc90600090a250565b60006106c1600783610f0b565b60008281526002602052604090206001015461079b816114d3565b6107a583836114dd565b505050565b73ffffffffffffffffffffffffffffffffffffffff811633146108355760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c660000000000000000000000000000000000606482015260840161050d565b61083f82826115d1565b5050565b61084b61144a565b61085361168c565b565b61085d61144a565b6108686007826114b1565b6040518060400160405280600181526020017f3500000000000000000000000000000000000000000000000000000000000000815250906108bc5760405162461bcd60e51b815260040161050d91906122a4565b5060405173ffffffffffffffffffffffffffffffffffffffff8216907f75567811df62a6b68bd5ee394d5808ad7282e19541858be466bc789cad9d4dfb90600090a250565b61090961144a565b73ffffffffffffffffffffffffffffffffffffffff8116158015906109345750610934600782611709565b6040518060400160405280600181526020017f3500000000000000000000000000000000000000000000000000000000000000815250906109885760405162461bcd60e51b815260040161050d91906122a4565b5060405173ffffffffffffffffffffffffffffffffffffffff8216907ffbd30b5bdd51f5de989170dc23d65aac2de0a6099f5d9d200bc5779d883abcd490600090a250565b60606109d9600561172b565b905090565b6109e661144a565b6108536000611738565b600154339073ffffffffffffffffffffffffffffffffffffffff168114610a7f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e65720000000000000000000000000000000000000000000000606482015260840161050d565b610a8881611738565b50565b610a9361144a565b60408051808201909152600181527f37000000000000000000000000000000000000000000000000000000000000006020820152620186a08210610aea5760405162461bcd60e51b815260040161050d91906122a4565b5060095460408051918252602082018390527f8d10d6dd6545b059182e4bf9534308bf75d7de65cdd8a68c12b7b74f139e58ae910160405180910390a1600955565b610b3461144a565b610853611769565b60006106c1600583610f0b565b610b5161144a565b610a88816117c4565b60606109d9600761172b565b600082815260026020526040902060010154610b81816114d3565b6107a583836115d1565b610b93610e5f565b610b9b610eb2565b610ba6600584610f0b565b6040518060400160405280600181526020017f340000000000000000000000000000000000000000000000000000000000000081525090610bfa5760405162461bcd60e51b815260040161050d91906122a4565b5060408051808201909152600181527f3800000000000000000000000000000000000000000000000000000000000000602082015282610c4d5760405162461bcd60e51b815260040161050d91906122a4565b5073ffffffffffffffffffffffffffffffffffffffff811615801590610c795750610c79600782610f0b565b6040518060400160405280600281526020017f313100000000000000000000000000000000000000000000000000000000000081525090610ccd5760405162461bcd60e51b815260040161050d91906122a4565b50610cd98383836111a3565b6107a56001600455565b610ceb61144a565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610d4e60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610d9b61144a565b73ffffffffffffffffffffffffffffffffffffffff811615801590610dc65750610dc6600582611709565b6040518060400160405280600181526020017f360000000000000000000000000000000000000000000000000000000000000081525090610e1a5760405162461bcd60e51b815260040161050d91906122a4565b5060405173ffffffffffffffffffffffffffffffffffffffff8216907f0e3c58ebfb2e7465fbb1c32e6b4f40c3c4f5ca77e8218a386aff8617831260d790600090a250565b60035460ff16156108535760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161050d565b600260045403610f045760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161050d565b6002600455565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205415155b9392505050565b6040517f7ecebe0000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152600091908a1690637ecebe0090602401602060405180830381865afa158015610fad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd191906122f5565b6040517fd505accf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a811660048301528981166024830152604482018990526064820188905260ff8716608483015260a4820186905260c48201859052919250908a169063d505accf9060e401600060405180830381600087803b15801561106b57600080fd5b505af115801561107f573d6000803e3d6000fd5b50506040517f7ecebe0000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b81166004830152600093508c169150637ecebe0090602401602060405180830381865afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111691906122f5565b905061112382600161233d565b81146111975760405162461bcd60e51b815260206004820152602160248201527f5361666545524332303a207065726d697420646964206e6f742073756363656560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161050d565b50505050505050505050565b600954600090156111cd57620f4240600954846111c09190612350565b6111ca9190612367565b90505b6111ef73ffffffffffffffffffffffffffffffffffffffff8516338486611805565b60008473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126091906123a2565b61126b90600a6124df565b61127d90670de0b6b3a7640000612367565b61128783866124ee565b6112919190612350565b436000818152600b602052604081205492935090916112b190849061233d565b9050600a548111156040518060400160405280600281526020017f33310000000000000000000000000000000000000000000000000000000000008152509061130d5760405162461bcd60e51b815260040161050d91906122a4565b506000828152600b602052604080822083905580517f40c10f1900000000000000000000000000000000000000000000000000000000815233600482015260248101869052905173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016926340c10f19926044808201939182900301818387803b1580156113ae57600080fd5b505af11580156113c2573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff167f4b461d9a9aea87b2b40b13df93ed38aab114ba4d0ccef80735d239534532142d6114053390565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252602082018a905281018690526060810187905260800160405180910390a250505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161050d565b6000610f368373ffffffffffffffffffffffffffffffffffffffff84166118a0565b610a888133611993565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661083f57600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556115733390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561083f57600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b611694611a33565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6000610f368373ffffffffffffffffffffffffffffffffffffffff8416611a85565b60606000610f3683611ad4565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610a8881611b30565b611771610e5f565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586116df3390565b600a5460408051918252602082018390527fa27fec0c27b745bc6f81494e5dfbe60ed3d3593e1b7a70d7bbca8af8d5a835b5910160405180910390a1600a55565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261189a908590611ba5565b50505050565b600081815260018301602052604081205480156119895760006118c46001836124ee565b85549091506000906118d8906001906124ee565b905081811461193d5760008660000182815481106118f8576118f8612501565b906000526020600020015490508087600001848154811061191b5761191b612501565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061194e5761194e612530565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106c1565b60009150506106c1565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661083f576119d381611c9a565b6119de836020611cb9565b6040516020016119ef92919061255f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b825261050d916004016122a4565b60035460ff166108535760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161050d565b6000818152600183016020526040812054611acc575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106c1565b5060006106c1565b606081600001805480602002602001604051908101604052809291908181526020018280548015611b2457602002820191906000526020600020905b815481526020019060010190808311611b10575b50505050509050919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000611c07826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611ee29092919063ffffffff16565b9050805160001480611c28575080806020019051810190611c2891906125e0565b6107a55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161050d565b60606106c173ffffffffffffffffffffffffffffffffffffffff831660145b60606000611cc8836002612350565b611cd390600261233d565b67ffffffffffffffff811115611ceb57611ceb612602565b6040519080825280601f01601f191660200182016040528015611d15576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611d4c57611d4c612501565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611daf57611daf612501565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611deb846002612350565b611df690600161233d565b90505b6001811115611e93577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611e3757611e37612501565b1a60f81b828281518110611e4d57611e4d612501565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93611e8c81612631565b9050611df9565b508315610f365760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161050d565b6060611ef18484600085611ef9565b949350505050565b606082471015611f715760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161050d565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611f9a9190612666565b60006040518083038185875af1925050503d8060008114611fd7576040519150601f19603f3d011682016040523d82523d6000602084013e611fdc565b606091505b5091509150611fed87838387611ff8565b979650505050505050565b6060831561207457825160000361206d5773ffffffffffffffffffffffffffffffffffffffff85163b61206d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161050d565b5081611ef1565b611ef183838151156120895781518083602001fd5b8060405162461bcd60e51b815260040161050d91906122a4565b803573ffffffffffffffffffffffffffffffffffffffff811681146120c757600080fd5b919050565b60ff81168114610a8857600080fd5b600080600080600080600060e0888a0312156120f657600080fd5b6120ff886120a3565b965060208801359550612114604089016120a3565b945060608801359350608088013561212b816120cc565b9699959850939692959460a0840135945060c09093013592915050565b60006020828403121561215a57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610f3657600080fd5b60006020828403121561219c57600080fd5b610f36826120a3565b6000602082840312156121b757600080fd5b5035919050565b600080604083850312156121d157600080fd5b823591506121e1602084016120a3565b90509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561223857835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101612206565b50909695505050505050565b60008060006060848603121561225957600080fd5b612262846120a3565b925060208401359150612277604085016120a3565b90509250925092565b60005b8381101561229b578181015183820152602001612283565b50506000910152565b60208152600082518060208401526122c3816040850160208701612280565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561230757600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156106c1576106c161230e565b80820281158282048414176106c1576106c161230e565b60008261239d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000602082840312156123b457600080fd5b8151610f36816120cc565b600181815b8085111561241857817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156123fe576123fe61230e565b8085161561240b57918102915b93841c93908002906123c4565b509250929050565b60008261242f575060016106c1565b8161243c575060006106c1565b8160018114612452576002811461245c57612478565b60019150506106c1565b60ff84111561246d5761246d61230e565b50506001821b6106c1565b5060208310610133831016604e8410600b841016171561249b575081810a6106c1565b6124a583836123bf565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156124d7576124d761230e565b029392505050565b6000610f3660ff841683612420565b818103818111156106c1576106c161230e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612597816017850160208801612280565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516125d4816028840160208801612280565b01602801949350505050565b6000602082840312156125f257600080fd5b81518015158114610f3657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000816126405761264061230e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60008251612678818460208701612280565b919091019291505056fea2646970667358221220608f674b76c49f074423e3d24cfa3b59a5cd2458350e706e586641d27230c9bc64736f6c63430008140033000000000000000000000000f3527ef8de265eaa3716fb312c12847bfba66cef00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001000000000000000000000000003f9a06ad4c83c289df83461fe5f24ee4c44919350000000000000000000000000000000000000000000422ca8b0a00a425000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000008ac76a51cc950d9822d68b83fe1ad97b32cd580d000000000000000000000000000000000000000000000000000000000000000200000000000000000000000099219ec1672f9e6ec3850005ca03970b04e668b400000000000000000000000032e9ccdbe531c20f906bdfb957d9f04fccf88d0f