0 txs
0 calls
constructor
constructor()
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
dnaToTraits
viewfunction dnaToTraits(uint256 dna) view returns (tuple[])
getMetadataJson
viewfunction getMetadataJson(uint256 tokenId) view returns (string)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
jobsAddr
viewfunction jobsAddr() view returns (address)
metadata
viewfunction metadata() view returns (string name, string description, string external_url, string image_base_uri, string image_extension, string image_base_full_uri_1, string image_base_full_uri_2, string image_full_extension)
MINTER_ROLE
viewfunction MINTER_ROLE() view returns (bytes32)
namesAddr
viewfunction namesAddr() view returns (address)
storageAddr
viewfunction storageAddr() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
traits
viewfunction traits(uint256) view returns (string trait_type, uint8 index)
traitsById
viewfunction traitsById(uint256 tokenId) view returns (tuple[])
traitValues
viewfunction traitValues(uint256, uint256) view returns (string)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setDescription
nonpayablefunction setDescription(string description)
setExternalUrl
nonpayablefunction setExternalUrl(string external_url)
setFullImage
nonpayablefunction setFullImage(string _uri, string full_image_extension, uint256 _batch)
setImage
nonpayablefunction setImage(string image_base_uri, string image_extension)
setMetadata
nonpayablefunction setMetadata(tuple _metadata)
setNamesAddr
nonpayablefunction setNamesAddr(address _addr)
setShowJobMinted
nonpayablefunction setShowJobMinted(bool _value)
setStorageAddr
nonpayablefunction setStorageAddr(address _addr)
setTrait
nonpayablefunction setTrait(uint8 trait_type, uint8 trait_idx, string value)
setTraitType
nonpayablefunction setTraitType(uint8 trait_type_idx, string trait_type)
writeTraitData
nonpayablefunction writeTraitData(uint8 trait_type, uint8 start, uint256 length, string[] trait_values)
writeTraitTypes
nonpayablefunction writeTraitTypes(string[] trait_types)
events
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)
errors
No errors.
creation bytecode
0x6080604052600180546001600160a01b031990811673878adc4ef1948180434005d6f2eb91f0af3e0d1517909155600280548216731ffe4026573cead0f49355b9d1b276a78f79924f1790556003805490911673277e820ff978326831cff29f431bcd7def93511f1790556010805460ff60a01b1916600160a01b1790553480156200008a57600080fd5b506200009860003362000239565b620000b360008051602062003eb58339815191523362000239565b600354600e80546001600160a01b039283166001600160a01b031991821617909155600254600f805491841691831691909117905560015460108054919093169116179055604080516101408101825260076101008201908152662932b3bab630b960c91b610120830152815281516060810190925260268083526000926020808401929062003e599083013981526020016040518060400160405280601f81526020017f68747470733a3a2f2f726567756c61722e776f726c642f726567756c61722f00815250815260200160405180606001604052806036815260200162003e7f603691398152602001604051806040016040528060048152602001632e6a706760e01b815250815260200160405180606001604052806036815260200162003ed560369139815260200160405180606001604052806036815260200162003f0b603691398152602001604051806040016040528060048152602001632e706e6760e01b81525081525090506200023281620002da60201b60201c565b50620008a9565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620002d6576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002953390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60008051602062003eb5833981519152620002f68133620003e8565b815180518391600691620003129183916020909101906200064c565b5060208281015180516200032d92600185019201906200064c565b50604082015180516200034b9160028401916020909101906200064c565b5060608201518051620003699160038401916020909101906200064c565b5060808201518051620003879160048401916020909101906200064c565b5060a08201518051620003a59160058401916020909101906200064c565b5060c08201518051620003c39160068401916020909101906200064c565b5060e08201518051620003e19160078401916020909101906200064c565b5050505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620002d65762000432816001600160a01b031660146200048c60201b620019cf1760201c565b62000448836020620019cf6200048c821b17811c565b6040516020016200045b92919062000725565b60408051601f198184030181529082905262461bcd60e51b825262000483916004016200079e565b60405180910390fd5b606060006200049d836002620007e9565b620004aa9060026200080b565b6001600160401b03811115620004c457620004c462000826565b6040519080825280601f01601f191660200182016040528015620004ef576020820181803683370190505b509050600360fc1b816000815181106200050d576200050d6200083c565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106200053f576200053f6200083c565b60200101906001600160f81b031916908160001a905350600062000565846002620007e9565b620005729060016200080b565b90505b6001811115620005f4576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620005aa57620005aa6200083c565b1a60f81b828281518110620005c357620005c36200083c565b60200101906001600160f81b031916908160001a90535060049490941c93620005ec8162000852565b905062000575565b508315620006455760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640162000483565b9392505050565b8280546200065a906200086c565b90600052602060002090601f0160209004810192826200067e5760008555620006c9565b82601f106200069957805160ff1916838001178555620006c9565b82800160010185558215620006c9579182015b82811115620006c9578251825591602001919060010190620006ac565b50620006d7929150620006db565b5090565b5b80821115620006d75760008155600101620006dc565b60005b838110156200070f578181015183820152602001620006f5565b838111156200071f576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200075f816017850160208801620006f2565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162000792816028840160208801620006f2565b01602801949350505050565b6020815260008251806020840152620007bf816040850160208701620006f2565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620008065762000806620007d3565b500290565b60008219821115620008215762000821620007d3565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081620008645762000864620007d3565b506000190190565b600181811c908216806200088157607f821691505b60208210811415620008a357634e487b7160e01b600052602260045260246000fd5b50919050565b6135a080620008b96000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806390c3f38f11610104578063bd37a1ee116100a2578063cdf9b5d211610071578063cdf9b5d214610464578063d539139314610477578063d547741f1461048c578063f7d027de1461049f57600080fd5b8063bd37a1ee14610418578063c1cb6c7d1461042b578063c4e1750b1461043e578063c87b56dd1461045157600080fd5b8063a217fddf116100de578063a217fddf146103d7578063a6fa0b7b146103df578063ab790932146103f2578063b69945b51461040557600080fd5b806390c3f38f1461037a57806391d148541461038d57806397df573e146103c457600080fd5b8063392f37e91161017c5780636d5f5fe91161014b5780636d5f5fe91461032157806372cf4219146103345780637c98ac4c146103475780639079eeb91461035a57600080fd5b8063392f37e9146102a757806339b71788146102c35780634a3f64ce146102d65780635ba4da321461030157600080fd5b806326d58ad3116101b857806326d58ad31461024d5780632d72225b146102605780632f2ff15d1461028157806336568abe1461029457600080fd5b806301ffc9a7146101df5780631f36f14214610207578063248a9ca31461021c575b600080fd5b6101f26101ed366004612474565b6104b2565b60405190151581526020015b60405180910390f35b61021a6102153660046125bb565b61054b565b005b61023f61022a366004612609565b60009081526020819052604090206001015490565b6040519081526020016101fe565b61021a61025b366004612622565b6105df565b61027361026e366004612609565b610610565b6040516101fe9291906126af565b61021a61028f3660046126eb565b6106cf565b61021a6102a23660046126eb565b6106f5565b6102af610786565b6040516101fe989796959493929190612717565b61021a6102d13660046127c6565b610bfa565b6001546102e9906001600160a01b031681565b6040516001600160a01b0390911681526020016101fe565b61031461030f366004612609565b610cf5565b6040516101fe9190612930565b61021a61032f3660046129c1565b610fec565b61021a610342366004612a3f565b6110aa565b61021a610355366004612a5c565b6110fd565b61036d610368366004612a77565b611146565b6040516101fe9190612a99565b61021a610388366004612622565b6111eb565b6101f261039b3660046126eb565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6003546102e9906001600160a01b031681565b61023f600081565b61021a6103ed366004612a5c565b611217565b61021a610400366004612aac565b611260565b61021a610413366004612ba9565b6112a8565b6002546102e9906001600160a01b031681565b610314610439366004612609565b611319565b61021a61044c366004612c11565b61159c565b61036d61045f366004612609565b6115e2565b61021a610472366004612c6b565b611624565b61023f60008051602061354b83398151915281565b61021a61049a3660046126eb565b6116e2565b61036d6104ad366004612609565b611708565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061054557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008051602061354b8339815191526105648133611b9b565b60405180604001604052808381526020018460ff1681525060048460ff168154811061059257610592612ca0565b906000526020600020906002020160008201518160000190805190602001906105bc9291906123db565b50602091909101516001909101805460ff191660ff909216919091179055505050565b60008051602061354b8339815191526105f88133611b9b565b815161060b9060089060208501906123db565b505050565b6004818154811061062057600080fd5b906000526020600020906002020160009150905080600001805461064390612cb6565b80601f016020809104026020016040519081016040528092919081815260200182805461066f90612cb6565b80156106bc5780601f10610691576101008083540402835291602001916106bc565b820191906000526020600020905b81548152906001019060200180831161069f57829003601f168201915b5050506001909301549192505060ff1682565b6000828152602081905260409020600101546106eb8133611b9b565b61060b8383611c19565b6001600160a01b03811633146107785760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6107828282611cb7565b5050565b60068054819061079590612cb6565b80601f01602080910402602001604051908101604052809291908181526020018280546107c190612cb6565b801561080e5780601f106107e35761010080835404028352916020019161080e565b820191906000526020600020905b8154815290600101906020018083116107f157829003601f168201915b50505050509080600101805461082390612cb6565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90612cb6565b801561089c5780601f106108715761010080835404028352916020019161089c565b820191906000526020600020905b81548152906001019060200180831161087f57829003601f168201915b5050505050908060020180546108b190612cb6565b80601f01602080910402602001604051908101604052809291908181526020018280546108dd90612cb6565b801561092a5780601f106108ff5761010080835404028352916020019161092a565b820191906000526020600020905b81548152906001019060200180831161090d57829003601f168201915b50505050509080600301805461093f90612cb6565b80601f016020809104026020016040519081016040528092919081815260200182805461096b90612cb6565b80156109b85780601f1061098d576101008083540402835291602001916109b8565b820191906000526020600020905b81548152906001019060200180831161099b57829003601f168201915b5050505050908060040180546109cd90612cb6565b80601f01602080910402602001604051908101604052809291908181526020018280546109f990612cb6565b8015610a465780601f10610a1b57610100808354040283529160200191610a46565b820191906000526020600020905b815481529060010190602001808311610a2957829003601f168201915b505050505090806005018054610a5b90612cb6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8790612cb6565b8015610ad45780601f10610aa957610100808354040283529160200191610ad4565b820191906000526020600020905b815481529060010190602001808311610ab757829003601f168201915b505050505090806006018054610ae990612cb6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1590612cb6565b8015610b625780601f10610b3757610100808354040283529160200191610b62565b820191906000526020600020905b815481529060010190602001808311610b4557829003601f168201915b505050505090806007018054610b7790612cb6565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba390612cb6565b8015610bf05780601f10610bc557610100808354040283529160200191610bf0565b820191906000526020600020905b815481529060010190602001808311610bd357829003601f168201915b5050505050905088565b60008051602061354b833981519152610c138133611b9b565b815180518391600691610c2d9183916020909101906123db565b506020828101518051610c4692600185019201906123db565b5060408201518051610c629160028401916020909101906123db565b5060608201518051610c7e9160038401916020909101906123db565b5060808201518051610c9a9160048401916020909101906123db565b5060a08201518051610cb69160058401916020909101906123db565b5060c08201518051610cd29160068401916020909101906123db565b5060e08201518051610cee9160078401916020909101906123db565b5050505050565b600e54604051634a83e9cd60e11b8152600481018390526060916000916001600160a01b0390911690639507d39a90602401602060405180830381865afa158015610d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d689190612cf1565b60045490915060008167ffffffffffffffff811115610d8957610d896124cc565b604051908082528060200260200182016040528015610dde57816020015b610dcb60405180606001604052806060815260200160008152602001606081525090565b815260200190600190039081610da75790505b50905060005b82811015610fe3576000610df9826008612d20565b60ff901b90506000610e0c836008612d20565b828716901c905060006005600060048681548110610e2c57610e2c612ca0565b600091825260208083206001600290930201919091015460ff168352828101939093526040918201812085825290925290208054610e6990612cb6565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9590612cb6565b8015610ee25780601f10610eb757610100808354040283529160200191610ee2565b820191906000526020600020905b815481529060010190602001808311610ec557829003601f168201915b50505050509050604051806060016040528060048681548110610f0757610f07612ca0565b90600052602060002090600202016000018054610f2390612cb6565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4f90612cb6565b8015610f9c5780601f10610f7157610100808354040283529160200191610f9c565b820191906000526020600020905b815481529060010190602001808311610f7f57829003601f168201915b5050505050815260200183815260200182815250858581518110610fc257610fc2612ca0565b60200260200101819052505050508080610fdb90612d3f565b915050610de4565b50949350505050565b60008051602061354b8339815191526110058133611b9b565b81600114806110145750816002145b6110605760405162461bcd60e51b815260206004820152601060248201527f6f6e6c792074776f206261746368657300000000000000000000000000000000604482015260640161076f565b816001141561108257835161107c90600b9060208701906123db565b50611097565b835161109590600c9060208701906123db565b505b8251610cee90600d9060208601906123db565b60008051602061354b8339815191526110c38133611b9b565b5060108054911515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60008051602061354b8339815191526111168133611b9b565b50600f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60056020908152600092835260408084209091529082529020805461116a90612cb6565b80601f016020809104026020016040519081016040528092919081815260200182805461119690612cb6565b80156111e35780601f106111b8576101008083540402835291602001916111e3565b820191906000526020600020905b8154815290600101906020018083116111c657829003601f168201915b505050505081565b60008051602061354b8339815191526112048133611b9b565b815161060b9060079060208501906123db565b60008051602061354b8339815191526112308133611b9b565b50600e805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60008051602061354b8339815191526112798133611b9b565b60ff808516600090815260056020908152604080832093871683529281529190208351610cee928501906123db565b60008051602061354b8339815191526112c18133611b9b565b60005b838160ff161015611311576112ff866112dd8388612d5a565b858460ff16815181106112f2576112f2612ca0565b6020026020010151611260565b8061130981612d7f565b9150506112c4565b505050505050565b60045460609060008167ffffffffffffffff81111561133a5761133a6124cc565b60405190808252806020026020018201604052801561138f57816020015b61137c60405180606001604052806060815260200160008152602001606081525090565b8152602001906001900390816113585790505b50905060005b828110156115945760006113aa826008612d20565b60ff901b905060006113bd836008612d20565b828816901c9050600060056000600486815481106113dd576113dd612ca0565b600091825260208083206001600290930201919091015460ff16835282810193909352604091820181208582529092529020805461141a90612cb6565b80601f016020809104026020016040519081016040528092919081815260200182805461144690612cb6565b80156114935780601f1061146857610100808354040283529160200191611493565b820191906000526020600020905b81548152906001019060200180831161147657829003601f168201915b505050505090506040518060600160405280600486815481106114b8576114b8612ca0565b906000526020600020906002020160000180546114d490612cb6565b80601f016020809104026020016040519081016040528092919081815260200182805461150090612cb6565b801561154d5780601f106115225761010080835404028352916020019161154d565b820191906000526020600020905b81548152906001019060200180831161153057829003601f168201915b505050505081526020018381526020018281525085858151811061157357611573612ca0565b6020026020010181905250505050808061158c90612d3f565b915050611395565b509392505050565b60008051602061354b8339815191526115b58133611b9b565b82516115c89060099060208601906123db565b5081516115dc90600a9060208501906123db565b50505050565b606060006115f76115f284611708565b611d36565b905060008160405160200161160c9190612dbb565b60408051601f19818403018152919052949350505050565b60008051602061354b83398151915261163d8133611b9b565b60005b82518160ff16101561060b5760046040518060400160405280858460ff168151811061166e5761166e612ca0565b602090810291909101810151825260ff8516918101919091528254600181018455600093845292819020825180519394600202909101926116b292849201906123db565b50602091909101516001909101805460ff191660ff909216919091179055806116da81612d7f565b915050611640565b6000828152602081905260409020600101546116fe8133611b9b565b61060b8383611cb7565b600e54604051634a83e9cd60e11b8152600481018390526060916000916001600160a01b0390911690639507d39a90602401602060405180830381865afa158015611757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177b9190612cf1565b905060006117898483611ed3565b600f546040517f4622ab03000000000000000000000000000000000000000000000000000000008152600481018790529192506000916001600160a01b0390911690634622ab0390602401600060405180830381865afa1580156117f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118199190810190612e00565b905060008082511161185557600661183087612123565b604051602001611841929190612f11565b604051602081830303815290604052611888565b61185e86612123565b61186783612229565b604051602001611878929190612f5f565b6040516020818303038152906040525b90506000611388871061189c57600c61189f565b600b5b80546118aa90612cb6565b80601f01602080910402602001604051908101604052809291908181526020018280546118d690612cb6565b80156119235780601f106118f857610100808354040283529160200191611923565b820191906000526020600020905b81548152906001019060200180831161190657829003601f168201915b505050505090508061193488612123565b604051611948929190600d90602001612fe0565b60408051601f198184030181529190529050600082600786600861196b8c612123565b60096119768e612123565b6040516119919796959493929190600a908b9060200161301d565b6040516020818303038152906040529050806040516020016119b391906131b2565b6040516020818303038152906040529650505050505050919050565b606060006119de836002612d20565b6119e99060026131f3565b67ffffffffffffffff811115611a0157611a016124cc565b6040519080825280601f01601f191660200182016040528015611a2b576020820181803683370190505b509050600360fc1b81600081518110611a4657611a46612ca0565b60200101906001600160f81b031916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611a9157611a91612ca0565b60200101906001600160f81b031916908160001a9053506000611ab5846002612d20565b611ac09060016131f3565b90505b6001811115611b45577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611b0157611b01612ca0565b1a60f81b828281518110611b1757611b17612ca0565b60200101906001600160f81b031916908160001a90535060049490941c93611b3e8161320b565b9050611ac3565b508315611b945760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161076f565b9392505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661078257611bd7816001600160a01b031660146119cf565b611be28360206119cf565b604051602001611bf3929190613222565b60408051601f198184030181529082905262461bcd60e51b825261076f91600401612a99565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610782576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611c733390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610782576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b805160609080611d56575050604080516020810190915260008152919050565b60006003611d658360026131f3565b611d6f91906132b9565b611d7a906004612d20565b90506000611d898260206131f3565b67ffffffffffffffff811115611da157611da16124cc565b6040519080825280601f01601f191660200182016040528015611dcb576020820181803683370190505b509050600060405180606001604052806040815260200161350b604091399050600181016020830160005b86811015611e57576003818a01810151603f601282901c8116860151600c83901c8216870151600684901c831688015192909316870151600891821b60ff94851601821b92841692909201901b91160160e01b835260049092019101611df6565b506003860660018114611e715760028114611e9d57611ec5565b7f3d3d000000000000000000000000000000000000000000000000000000000000600119830152611ec5565b7f3d000000000000000000000000000000000000000000000000000000000000006000198301525b505050918152949350505050565b60606000611ee083611319565b60045460408051808201909152600281527f5b0a00000000000000000000000000000000000000000000000000000000000060208201529192509060005b8260ff168160ff161015612033576040517f4e6f6e6500000000000000000000000000000000000000000000000000000000602082015260240160405160208183030381529060405280519060200120848260ff1681518110611f8357611f83612ca0565b602002602001015160400151604051602001611f9f91906132cd565b60405160208183030381529060405280519060200120146120215781848260ff1681518110611fd057611fd0612ca0565b602002602001015160000151858360ff1681518110611ff157611ff1612ca0565b60200260200101516040015160405160200161200f939291906132e9565b60405160208183030381529060405291505b8061202b81612d7f565b915050611f1e565b506010546040517f7dc0bf3f000000000000000000000000000000000000000000000000000000008152600481018890526001600160a01b0390911690637dc0bf3f90602401602060405180830381865afa158015612096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ba91906133f7565b1580156120d05750601054600160a01b900460ff165b156120f857806040516020016120e69190613414565b60405160208183030381529060405290505b80604051602001612109919061347b565b604051602081830303815290604052935050505092915050565b6060816121475750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612171578061215b81612d3f565b915061216a9050600a836132b9565b915061214b565b60008167ffffffffffffffff81111561218c5761218c6124cc565b6040519080825280601f01601f1916602001820160405280156121b6576020820181803683370190505b5090505b8415612221576121cb6001836134bc565b91506121d8600a866134d3565b6121e39060306131f3565b60f81b8183815181106121f8576121f8612ca0565b60200101906001600160f81b031916908160001a90535061221a600a866132b9565b94506121ba565b949350505050565b606060008290506000815167ffffffffffffffff81111561224c5761224c6124cc565b6040519080825280601f01601f191660200182016040528015612276576020820181803683370190505b50905060208260008151811061228e5761228e612ca0565b01602001516122a0919060f81c6134e7565b60f81b816000815181106122b6576122b6612ca0565b60200101906001600160f81b031916908160001a90535060015b8251811015611594578281815181106122eb576122eb612ca0565b0160209081015160f81c1480159061232657508261230a6001836134bc565b8151811061231a5761231a612ca0565b0160209081015160f81c145b1561238257602083828151811061233f5761233f612ca0565b0160200151612351919060f81c6134e7565b60f81b82828151811061236657612366612ca0565b60200101906001600160f81b031916908160001a9053506123c9565b82818151811061239457612394612ca0565b602001015160f81c60f81b8282815181106123b1576123b1612ca0565b60200101906001600160f81b031916908160001a9053505b806123d381612d3f565b9150506122d0565b8280546123e790612cb6565b90600052602060002090601f016020900481019282612409576000855561244f565b82601f1061242257805160ff191683800117855561244f565b8280016001018555821561244f579182015b8281111561244f578251825591602001919060010190612434565b5061245b92915061245f565b5090565b5b8082111561245b5760008155600101612460565b60006020828403121561248657600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611b9457600080fd5b803560ff811681146124c757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715612506576125066124cc565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612535576125356124cc565b604052919050565b600067ffffffffffffffff821115612557576125576124cc565b50601f01601f191660200190565b600082601f83011261257657600080fd5b81356125896125848261253d565b61250c565b81815284602083860101111561259e57600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156125ce57600080fd5b6125d7836124b6565b9150602083013567ffffffffffffffff8111156125f357600080fd5b6125ff85828601612565565b9150509250929050565b60006020828403121561261b57600080fd5b5035919050565b60006020828403121561263457600080fd5b813567ffffffffffffffff81111561264b57600080fd5b61222184828501612565565b60005b8381101561267257818101518382015260200161265a565b838111156115dc5750506000910152565b6000815180845261269b816020860160208601612657565b601f01601f19169290920160200192915050565b6040815260006126c26040830185612683565b905060ff831660208301529392505050565b80356001600160a01b03811681146124c757600080fd5b600080604083850312156126fe57600080fd5b8235915061270e602084016126d4565b90509250929050565b600061010080835261272b8184018c612683565b9050828103602084015261273f818b612683565b90508281036040840152612753818a612683565b905082810360608401526127678189612683565b9050828103608084015261277b8188612683565b905082810360a084015261278f8187612683565b905082810360c08401526127a38186612683565b905082810360e08401526127b78185612683565b9b9a5050505050505050505050565b6000602082840312156127d857600080fd5b813567ffffffffffffffff808211156127f057600080fd5b90830190610100828603121561280557600080fd5b61280d6124e2565b82358281111561281c57600080fd5b61282887828601612565565b82525060208301358281111561283d57600080fd5b61284987828601612565565b60208301525060408301358281111561286157600080fd5b61286d87828601612565565b60408301525060608301358281111561288557600080fd5b61289187828601612565565b6060830152506080830135828111156128a957600080fd5b6128b587828601612565565b60808301525060a0830135828111156128cd57600080fd5b6128d987828601612565565b60a08301525060c0830135828111156128f157600080fd5b6128fd87828601612565565b60c08301525060e08301358281111561291557600080fd5b61292187828601612565565b60e08301525095945050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156129b357603f1989840301855281516060815181865261297d82870182612683565b91505088820151898601528782015191508481038886015261299f8183612683565b968901969450505090860190600101612957565b509098975050505050505050565b6000806000606084860312156129d657600080fd5b833567ffffffffffffffff808211156129ee57600080fd5b6129fa87838801612565565b94506020860135915080821115612a1057600080fd5b50612a1d86828701612565565b925050604084013590509250925092565b8015158114612a3c57600080fd5b50565b600060208284031215612a5157600080fd5b8135611b9481612a2e565b600060208284031215612a6e57600080fd5b611b94826126d4565b60008060408385031215612a8a57600080fd5b50508035926020909101359150565b602081526000611b946020830184612683565b600080600060608486031215612ac157600080fd5b612aca846124b6565b9250612ad8602085016124b6565b9150604084013567ffffffffffffffff811115612af457600080fd5b612b0086828701612565565b9150509250925092565b600082601f830112612b1b57600080fd5b8135602067ffffffffffffffff80831115612b3857612b386124cc565b8260051b612b4783820161250c565b9384528581018301938381019088861115612b6157600080fd5b84880192505b85831015612b9d57823584811115612b7f5760008081fd5b612b8d8a87838c0101612565565b8352509184019190840190612b67565b98975050505050505050565b60008060008060808587031215612bbf57600080fd5b612bc8856124b6565b9350612bd6602086016124b6565b925060408501359150606085013567ffffffffffffffff811115612bf957600080fd5b612c0587828801612b0a565b91505092959194509250565b60008060408385031215612c2457600080fd5b823567ffffffffffffffff80821115612c3c57600080fd5b612c4886838701612565565b93506020850135915080821115612c5e57600080fd5b506125ff85828601612565565b600060208284031215612c7d57600080fd5b813567ffffffffffffffff811115612c9457600080fd5b61222184828501612b0a565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680612cca57607f821691505b60208210811415612ceb57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612d0357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612d3a57612d3a612d0a565b500290565b6000600019821415612d5357612d53612d0a565b5060010190565b600060ff821660ff84168060ff03821115612d7757612d77612d0a565b019392505050565b600060ff821660ff811415612d9657612d96612d0a565b60010192915050565b60008151612db1818560208601612657565b9290920192915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251612df381601d850160208701612657565b91909101601d0192915050565b600060208284031215612e1257600080fd5b815167ffffffffffffffff811115612e2957600080fd5b8201601f81018413612e3a57600080fd5b8051612e486125848261253d565b818152856020838501011115612e5d57600080fd5b612e6e826020830160208601612657565b95945050505050565b8054600090600181811c9080831680612e9157607f831692505b6020808410821415612eb357634e487b7160e01b600052602260045260246000fd5b818015612ec75760018114612ed857612f05565b60ff19861689528489019650612f05565b60008881526020902060005b86811015612efd5781548b820152908501908301612ee4565b505084890196505b50505050505092915050565b6000612f1d8285612e77565b7f202300000000000000000000000000000000000000000000000000000000000081528351612f53816002840160208801612657565b01600201949350505050565b7f2300000000000000000000000000000000000000000000000000000000000000815260008351612f97816001850160208801612657565b7f2c200000000000000000000000000000000000000000000000000000000000006001918401918201528351612fd4816003840160208801612657565b01600301949350505050565b60008451612ff2818460208901612657565b845190830190613006818360208901612657565b61301281830186612e77565b979650505050505050565b7f7b0a226e616d65223a2022000000000000000000000000000000000000000000815260008a5161305581600b850160208f01612657565b7f222c0a226465736372697074696f6e223a202200000000000000000000000000600b9184019182015261308c601e82018c612e77565b90507f222c0a2261747472696275746573223a00000000000000000000000000000000815289516130c4816010840160208e01612657565b7f2c0a2265787465726e616c5f75726c223a202200000000000000000000000000601092909101918201526130fc602382018a612e77565b9050875161310e818360208c01612657565b601160f91b91019081527f2c0a22696d616765223a2022000000000000000000000000000000000000000060018201526131a261319c61317361316661316061315a600d87018d612e77565b8b612d9f565b89612e77565b601160f91b815260010190565b7f2c0a22696d6167652d66756c6c223a2022000000000000000000000000000000815260110190565b85612d9f565b9c9b505050505050505050505050565b600082516131c4818460208701612657565b7f220a7d0000000000000000000000000000000000000000000000000000000000920191825250600301919050565b6000821982111561320657613206612d0a565b500190565b60008161321a5761321a612d0a565b506000190190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161325a816017850160208801612657565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613297816028840160208801612657565b01602801949350505050565b634e487b7160e01b600052601260045260246000fd5b6000826132c8576132c86132a3565b500490565b600082516132df818460208701612657565b9190910192915050565b600084516132fb818460208901612657565b7f097b202274726169745f7479706522203a2022000000000000000000000000009083019081528451613335816013840160208901612657565b8082019150507f222c202276616c7565223a20220000000000000000000000000000000000000060138201528351613374816020840160208801612657565b7f22207d0000000000000000000000000000000000000000000000000000000000602092909101918201527f2c0000000000000000000000000000000000000000000000000000000000000060238201527f0a00000000000000000000000000000000000000000000000000000000000000602482015260250195945050505050565b60006020828403121561340957600080fd5b8151611b9481612a2e565b60008251613426818460208701612657565b7f7b202274726169745f74797065223a20224a6f62222c202276616c756522203a9201918252507f20224e6f74204d696e74656422207d0a000000000000000000000000000000006020820152603001919050565b6000825161348d818460208701612657565b7f5d00000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b6000828210156134ce576134ce612d0a565b500390565b6000826134e2576134e26132a3565b500690565b600060ff821660ff84168082101561350157613501612d0a565b9003939250505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a26469706673582212203a2a5ffaa0e92188cf85f7f84a23aedb906b64c49db5caef53fe5d64c5aa59b364736f6c634300080c0033416e2065787472612d6f7264696e61727920636f6c6c656374696f6e20627920407030707073697066733a2f2f516d50506544387645576d4a6b717a347056716b4d694a787a7258545a6e6b52356b715046377458427a51726f6e2f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6697066733a2f2f516d576e5865717434676f7865374669556142735272673443373562794a4c5369787a594b505a79443737576d312f697066733a2f2f516d4e6677654b773370315432424771656e556e754b656673467a666b6439754767434e32555556433278746b352f