2 txs
0 calls
constructor
constructor(string _htmlTemplate, bool _zipped, address _owner)
functions
contractOperators
viewfunction contractOperators(address) view returns (address)
getArtistArtworkUris
viewfunction getArtistArtworkUris(address contractAddress, uint256 tokenId) view returns (string[])
getArtwork
viewfunction getArtwork(address contractAddress, uint256 tokenId) view returns (tuple)
getCollectorArtworkUris
viewfunction getCollectorArtworkUris(address contractAddress, uint256 tokenId) view returns (string[])
getCombinedArtworkUris
viewfunction getCombinedArtworkUris(address contractAddress, uint256 tokenId) view returns (string)
getDefaultHtmlTemplate
viewfunction getDefaultHtmlTemplate() view returns (string)
getPermissions
viewfunction getPermissions(address contractAddress, uint256 tokenId) view returns (tuple)
getThumbnailInfo
viewfunction getThumbnailInfo(address contractAddress, uint256 tokenId) view returns (uint8 thumbnailKind, uint256 selectedIndex)
getThumbnailUris
viewfunction getThumbnailUris(address contractAddress, uint256 tokenId) view returns (string[])
getTokenHtmlTemplate
viewfunction getTokenHtmlTemplate(address contractAddress, uint256 tokenId) view returns (string)
isContractOperator
viewfunction isContractOperator(address contractAddress, address operatorAddress) view returns (bool)
owner
viewfunction owner() view returns (address result)
ownershipHandoverExpiresAt
viewfunction ownershipHandoverExpiresAt(address pendingOwner) view returns (uint256 result)
renderHTML
viewfunction renderHTML(address contractAddress, uint256 tokenId) view returns (string)
renderImage
viewfunction renderImage(address contractAddress, uint256 tokenId) view returns (string)
renderMetadata
viewfunction renderMetadata(address contractAddress, uint256 tokenId) view returns (string)
renderRawHTML
viewfunction renderRawHTML(address contractAddress, uint256 tokenId) view returns (string)
renderRawImage
viewfunction renderRawImage(address contractAddress, uint256 tokenId) view returns (bytes)
rescueLocked
viewfunction rescueLocked() view returns (uint256 locks)
tokenData
viewfunction tokenData(address, uint256) view returns (string metadata, tuple thumbnail, tuple artwork, tuple permissions, uint8 displayMode, tuple htmlTemplate)
addArtworkUris
nonpayablefunction addArtworkUris(address contractAddress, uint256 tokenId, string[] uris)
cancelOwnershipHandover
payablefunction cancelOwnershipHandover() payable
completeOwnershipHandover
payablefunction completeOwnershipHandover(address pendingOwner) payable
initializeTokenData
nonpayablefunction initializeTokenData(address contractAddress, uint256 tokenId, tuple config, bytes[] thumbnailChunks, string[] htmlTemplateChunks)
lockRescue
payablefunction lockRescue(uint256 locksToSet) payable
registerContract
nonpayablefunction registerContract(address contractAddress, address operatorAddress)
removeArtworkUris
nonpayablefunction removeArtworkUris(address contractAddress, uint256 tokenId, uint256[] indices)
renounceOwnership
payablefunction renounceOwnership() payable
requestOwnershipHandover
payablefunction requestOwnershipHandover() payable
rescueERC1155
payablefunction rescueERC1155(address token, address to, uint256 id, uint256 amount, bytes data) payable
rescueERC20
payablefunction rescueERC20(address token, address to, uint256 amount) payable
rescueERC6909
payablefunction rescueERC6909(address token, address to, uint256 id, uint256 amount) payable
rescueERC721
payablefunction rescueERC721(address token, address to, uint256 id) payable
rescueETH
payablefunction rescueETH(address to, uint256 amount) payable
revokeAllArtistPermissions
nonpayablefunction revokeAllArtistPermissions(address contractAddress, uint256 tokenId)
revokeArtistPermissions
nonpayablefunction revokeArtistPermissions(address contractAddress, uint256 tokenId, bool revokeUpdateThumbnail, bool revokeUpdateMetadata, bool revokeChooseUris, bool revokeAddRemoveUris, bool revokeChooseThumbnail, bool revokeUpdateDisplayMode, bool revokeUpdateTemplate)
setDefaultHtmlTemplate
nonpayablefunction setDefaultHtmlTemplate(string[] templateParts, bool zipped)
setDisplayMode
nonpayablefunction setDisplayMode(address contractAddress, uint256 tokenId, uint8 displayMode)
setSelectedThumbnailUri
nonpayablefunction setSelectedThumbnailUri(address contractAddress, uint256 tokenId, uint256 index)
setSelectedUri
nonpayablefunction setSelectedUri(address contractAddress, uint256 tokenId, uint256 index)
transferOwnership
payablefunction transferOwnership(address newOwner) payable
updateHtmlTemplate
nonpayablefunction updateHtmlTemplate(address contractAddress, uint256 tokenId, string[] templateParts, bool zipped)
updateMetadata
nonpayablefunction updateMetadata(address contractAddress, uint256 tokenId, string newMetadata)
updateThumbnail
nonpayablefunction updateThumbnail(address contractAddress, uint256 tokenId, tuple thumbnail, bytes[] thumbnailChunks)
events
ArtistPermissionsRevoked
event ArtistPermissionsRevoked(address indexed creator, uint256 indexed tokenId, address indexed artist)
ArtworkUriRemoved
event ArtworkUriRemoved(address indexed creator, uint256 indexed tokenId, address indexed actor, uint256 index)
ArtworkUrisAdded
event ArtworkUrisAdded(address indexed creator, uint256 indexed tokenId, address indexed actor, uint256 count)
ContractRegistered
event ContractRegistered(address indexed contractAddress, address indexed implementationAddress, address indexed registerer)
DisplayModeUpdated
event DisplayModeUpdated(address indexed creator, uint256 indexed tokenId, uint8 displayMode)
HtmlTemplateUpdated
event HtmlTemplateUpdated()
MetadataUpdated
event MetadataUpdated(address indexed creator, uint256 indexed tokenId)
OwnershipHandoverCanceled
event OwnershipHandoverCanceled(address indexed pendingOwner)
OwnershipHandoverRequested
event OwnershipHandoverRequested(address indexed pendingOwner)
OwnershipTransferred
event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)
SelectedArtworkUriChanged
event SelectedArtworkUriChanged(address indexed creator, uint256 indexed tokenId, uint256 newIndex)
SelectedThumbnailUriChanged
event SelectedThumbnailUriChanged(address indexed creator, uint256 indexed tokenId, uint256 newIndex)
ThumbnailUpdated
event ThumbnailUpdated(address indexed creator, uint256 indexed tokenId)
TokenDataInitialized
event TokenDataInitialized(address indexed creator, uint256 indexed tokenId)
errors
AlreadyInitialized
error AlreadyInitialized()
ArtistPermissionRevoked
error ArtistPermissionRevoked()
CollectorPermissionDenied
error CollectorPermissionDenied()
ContractNotRegistered
error ContractNotRegistered()
InvalidArtworkUris
error InvalidArtworkUris()
InvalidFileHash
error InvalidFileHash()
InvalidIndexRange
error InvalidIndexRange()
InvalidInterface
error InvalidInterface()
InvalidMetadata
error InvalidMetadata()
InvalidMimeType
error InvalidMimeType()
InvalidSelectedArtistUriIndex
error InvalidSelectedArtistUriIndex()
InvalidSelectedThumbnailUriIndex
error InvalidSelectedThumbnailUriIndex()
InvalidThumbnailKind
error InvalidThumbnailKind()
NewOwnerIsZeroAddress
error NewOwnerIsZeroAddress()
NoHandoverRequest
error NoHandoverRequest()
NotTokenOwner
error NotTokenOwner()
NotTokenOwnerOrAdmin
error NotTokenOwnerOrAdmin()
OnChainThumbnailEmpty
error OnChainThumbnailEmpty()
RescueTransferFailed
error RescueTransferFailed()
RescueUnauthorizedOrLocked
error RescueUnauthorizedOrLocked()
Unauthorized
error Unauthorized()
UnauthorizedOperator
error UnauthorizedOperator()
WalletNotAdmin
error WalletNotAdmin()
creation bytecode
0x60a060405234801561000f575f5ffd5b506040516161f53803806161f583398101604081905261002e91610153565b305f9081523360205260409020608052600261004984610099565b81546001810183555f928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790556003805460ff1916831515179055610091816100da565b505050610223565b5f81518060401b6bfe61000180600a3d393df3000161fffe8211840152600b8101601584015ff09150816100d45763301164255f526004601cfd5b90915290565b6001600160a01b0316638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b634e487b7160e01b5f52604160045260245ffd5b80518015158114610138575f5ffd5b919050565b80516001600160a01b0381168114610138575f5ffd5b5f5f5f60608486031215610165575f5ffd5b83516001600160401b0381111561017a575f5ffd5b8401601f8101861361018a575f5ffd5b80516001600160401b038111156101a3576101a3610115565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101d1576101d1610115565b6040528181528282016020018810156101e8575f5ffd5b8160208401602083015e5f6020838301015280955050505061020c60208501610129565b915061021a6040850161013d565b90509250925092565b608051615fba61023b5f395f613bc00152615fba5ff3fe6080604052600436106102d7575f3560e01c80638749a0711161017b578063cfaecba8116100d1578063f2fde38b11610087578063fdbdf61511610062578063fdbdf6151461081a578063fee81cf414610839578063ff3eebfc1461086a575f5ffd5b8063f2fde38b146107c9578063f7618cd8146107dc578063fd5f38b3146107fb575f5ffd5b8063d953dd86116100b7578063d953dd8614610778578063e0eb3a1714610797578063f04e283e146107b6575f5ffd5b8063cfaecba81461073a578063d7e5fbf314610759575f5ffd5b8063990178ab11610131578063a81ab9651161010c578063a81ab965146106af578063b2118a8d146106dc578063c3011eee146106ef575f5ffd5b8063990178ab1461065d5780639de162351461067c578063a5b8e33e14610690575f5ffd5b80638f0413eb116101615780638f0413eb1461060c5780639311ca891461062b57806395ffece91461063e575f5ffd5b80638749a071146105d55780638da5cb5b146105f4575f5ffd5b80634629f7b211610230578063683468ad116101e65780637df325e1116101c15780637df325e11461053f5780637eeab954146105525780637f1f0c67146105c2575f5ffd5b8063683468ad146104cc57806368591440146104eb578063715018a614610537575f5ffd5b80634e11d138116102165780634e11d1381461048657806352e91e3c146104a557806354d1f13d146104c4575f5ffd5b80634629f7b21461044857806346e6624514610467575f5ffd5b806325692962116102905780633571ae8f1161026b5780633571ae8f146103db57806337f8424d146103fd5780634064605d1461041c575f5ffd5b806325692962146103885780632f266637146103905780633155e50f146103bc575f5ffd5b8063130946e7116102c0578063130946e7146103035780631dfd0c251461033857806324ba432814610357575f5ffd5b8063099a04e5146102db5780631135c5d2146102f0575b5f5ffd5b6102ee6102e9366004614b95565b610889565b005b6102ee6102fe366004614c04565b6108b2565b34801561030e575f5ffd5b5061032261031d366004614b95565b610924565b60405161032f9190614ca9565b60405180910390f35b348015610343575f5ffd5b506102ee610352366004614d37565b610a6f565b348015610362575f5ffd5b50610376610371366004614b95565b610bf9565b60405161032f96959493929190614f6c565b6102ee611267565b34801561039b575f5ffd5b506103af6103aa366004614b95565b6112b4565b60405161032f919061507d565b3480156103c7575f5ffd5b506103af6103d6366004614b95565b6112e8565b3480156103e6575f5ffd5b5063471d6ea419545b60405190815260200161032f565b348015610408575f5ffd5b506102ee61041736600461509b565b611367565b348015610427575f5ffd5b5061043b610436366004614b95565b6114ec565b60405161032f91906150da565b348015610453575f5ffd5b506102ee610462366004614b95565b611833565b348015610472575f5ffd5b506102ee6104813660046150ec565b6118fd565b348015610491575f5ffd5b506103af6104a0366004614b95565b611a44565b3480156104b0575f5ffd5b506102ee6104bf36600461515f565b611a97565b6102ee611c7b565b3480156104d7575f5ffd5b506103af6104e6366004614b95565b611cb4565b3480156104f6575f5ffd5b5061051f6105053660046151b7565b60016020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161032f565b6102ee611d0c565b6102ee61054d3660046151d2565b611d1f565b34801561055d575f5ffd5b506105af61056c366004614b95565b60408051602080820183525f918290526001600160a01b03949094168152808452818120928152918352908190208151928301909152600d015461ffff16815290565b604051905161ffff16815260200161032f565b6102ee6105d0366004615210565b611d6e565b3480156105e0575f5ffd5b506103226105ef366004614b95565b611d8d565b3480156105ff575f5ffd5b50638b78c6d8195461051f565b348015610617575f5ffd5b506102ee610626366004615227565b611e81565b6102ee610639366004615296565b61205d565b348015610649575f5ffd5b50610322610658366004614b95565b6120ae565b348015610668575f5ffd5b506102ee6106773660046152d9565b612196565b348015610687575f5ffd5b506103af61228d565b34801561069b575f5ffd5b506102ee6106aa366004615325565b61229e565b3480156106ba575f5ffd5b506106ce6106c9366004614b95565b612872565b60405161032f9291906153de565b6102ee6106ea3660046151d2565b6128ca565b3480156106fa575f5ffd5b5061072a6107093660046153f5565b6001600160a01b039182165f90815260016020526040902054821691161490565b604051901515815260200161032f565b348015610745575f5ffd5b506102ee61075436600461542c565b612913565b348015610764575f5ffd5b506102ee6107733660046153f5565b612b10565b348015610783575f5ffd5b506102ee6107923660046154b6565b612c90565b3480156107a2575f5ffd5b506103af6107b1366004614b95565b612d74565b6102ee6107c43660046151b7565b61339b565b6102ee6107d73660046151b7565b6133d8565b3480156107e7575f5ffd5b506103af6107f6366004614b95565b6133fe565b348015610806575f5ffd5b506102ee61081536600461515f565b613575565b348015610825575f5ffd5b506103af610834366004614b95565b6139ea565b348015610844575f5ffd5b506103ef6108533660046151b7565b63389a75e1600c9081525f91909152602090205490565b348015610875575f5ffd5b506102ee6108843660046150ec565b613a16565b600861089481613bae565b5f385f3885875af16108ad57637ec62e765f526004601cfd5b505050565b60406108bd81613bae565b604051677ec62e76f242432a81523081602001528660601b60601c816040015285816060015284816080015260a08160a00152826020016020850360c08301375f388460c401601c8401348c5af1883b0261091a57600460188201fd5b5050505050505050565b6001600160a01b0382165f9081526020818152604080832084845290915290206060906001808083015460ff169081111561096157610961614de4565b14610998576040517fe6dbd63500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600581018054604080516020808402820181019092528281529291905f9084015b82821015610a61578382905f5260205f200180546109d6906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a02906154fe565b8015610a4d5780601f10610a2457610100808354040283529160200191610a4d565b820191905f5260205f20905b815481529060010190602001808311610a3057829003601f168201915b5050505050815260200190600101906109b9565b505050509150505b92915050565b6001600160a01b03808a165f908152600160205260409020548a9116610aa857604051639ada36a160e01b815260040160405180910390fd5b89610ab38133613c31565b610ad057604051632ae4234360e21b815260040160405180910390fd5b6001600160a01b038b165f908152602081815260408083208d845290915290208915610b0c57600d8101805461ffff19811661fffe9091161790555b8815610b2857600d8101805461ffff19811661fffd9091161790555b8715610b4457600d8101805461ffff19811661fffb9091161790555b8615610b6057600d8101805461ffff19811661fff79091161790555b8515610b7c57600d8101805461ffff19811661ffef9091161790555b8415610b9857600d8101805461ffff19811661ffdf9091161790555b8315610bb457600d8101805461ffff19811661ffbf9091161790555b60405133908c906001600160a01b038f16907fbdf35ce8dadea72c4b56652779024c767e42dc4f80eda184a6871b4c510bc259905f90a4505050505050505050505050565b5f602081815292815260408082209093529081522080548190610c1b906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610c47906154fe565b8015610c925780601f10610c6957610100808354040283529160200191610c92565b820191905f5260205f20905b815481529060010190602001808311610c7557829003601f168201915b505050505090806001016040518060600160405290815f82015f9054906101000a900460ff166001811115610cc957610cc9614de4565b6001811115610cda57610cda614de4565b8152602001600182016040518060600160405290815f82018054610cfd906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d29906154fe565b8015610d745780601f10610d4b57610100808354040283529160200191610d74565b820191905f5260205f20905b815481529060010190602001808311610d5757829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610dd457602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610db6575b50505091835250506002919091015460ff16151560209182015290825260408051600485018054606081860284018101855293830181815295909401949193909284929184915f9085015b82821015610ec7578382905f5260205f20018054610e3c906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610e68906154fe565b8015610eb35780601f10610e8a57610100808354040283529160200191610eb3565b820191905f5260205f20905b815481529060010190602001808311610e9657829003601f168201915b505050505081526020019060010190610e1f565b505050908252506001919091015460209182015291526040805160078601805460e09481028301850190935260c0820183815295969591945092849284915f9085015b82821015610fb2578382905f5260205f20018054610f27906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610f53906154fe565b8015610f9e5780601f10610f7557610100808354040283529160200191610f9e565b820191905f5260205f20905b815481529060010190602001808311610f8157829003601f168201915b505050505081526020019060010190610f0a565b50505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015611086578382905f5260205f20018054610ffb906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054611027906154fe565b80156110725780601f1061104957610100808354040283529160200191611072565b820191905f5260205f20905b81548152906001019060200180831161105557829003601f168201915b505050505081526020019060010190610fde565b50505050815260200160028201805461109e906154fe565b80601f01602080910402602001604051908101604052809291908181526020018280546110ca906154fe565b80156111155780601f106110ec57610100808354040283529160200191611115565b820191905f5260205f20905b8154815290600101906020018083116110f857829003601f168201915b5050505050815260200160038201805461112e906154fe565b80601f016020809104026020016040519081016040528092919081815260200182805461115a906154fe565b80156111a55780601f1061117c576101008083540402835291602001916111a5565b820191905f5260205f20905b81548152906001019060200180831161118857829003601f168201915b5050509183525050600482015460ff908116151560208084019190915260059093015460409283015281518084018352600d86015461ffff168152600e8601548351600f8801805460609781028301880187529582018681529798939792909416959294909392849291849184018282801561124857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161122a575b50505091835250506001919091015460ff161515602090910152905086565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b6001600160a01b0382165f9081526020818152604080832084845290915290206060906112e081613e29565b949350505050565b6001600160a01b0382165f90815260208181526040808320848452909152812060609160018083015460ff169081111561132457611324614de4565b1461135b576040517fe6dbd63500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112e060028201614002565b6001600160a01b038084165f908152600160205260409020548491166113a057604051639ada36a160e01b815260040160405180910390fd5b6001600160a01b0384165f9081526020818152604080832086845290915290206113ca8533613c31565b1561146357600d8101546020165f036113f6576040516306128fff60e21b815260040160405180910390fd5b600e8101805484919060ff19166001838181111561141657611416614de4565b021790555083856001600160a01b03167f28dbdfb1972d27805ce2022168bde970f1aee071d3c986f3ad47cad52bf89882856040516114559190615536565b60405180910390a3506114e6565b61146e858533614070565b156114b457600d810154610400165f036113f6576040517ffd35442000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f84a02f6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6115256040518060c00160405280606081526020016060815260200160608152602001606081526020015f151581526020015f81525090565b6001600160a01b0383165f90815260208181526040808320858452825280832081516007909101805460e09481028301850190935260c082018381529194909385938592909185015b82821015611616578382905f5260205f2001805461158b906154fe565b80601f01602080910402602001604051908101604052809291908181526020018280546115b7906154fe565b80156116025780601f106115d957610100808354040283529160200191611602565b820191905f5260205f20905b8154815290600101906020018083116115e557829003601f168201915b50505050508152602001906001019061156e565b50505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156116ea578382905f5260205f2001805461165f906154fe565b80601f016020809104026020016040519081016040528092919081815260200182805461168b906154fe565b80156116d65780601f106116ad576101008083540402835291602001916116d6565b820191905f5260205f20905b8154815290600101906020018083116116b957829003601f168201915b505050505081526020019060010190611642565b505050508152602001600282018054611702906154fe565b80601f016020809104026020016040519081016040528092919081815260200182805461172e906154fe565b80156117795780601f1061175057610100808354040283529160200191611779565b820191905f5260205f20905b81548152906001019060200180831161175c57829003601f168201915b50505050508152602001600382018054611792906154fe565b80601f01602080910402602001604051908101604052809291908181526020018280546117be906154fe565b80156118095780601f106117e057610100808354040283529160200191611809565b820191905f5260205f20905b8154815290600101906020018083116117ec57829003601f168201915b5050509183525050600482015460ff16151560208201526005909101546040909101529392505050565b6001600160a01b038083165f9081526001602052604090205483911661186c57604051639ada36a160e01b815260040160405180910390fd5b826118778133613c31565b61189457604051632ae4234360e21b815260040160405180910390fd5b6001600160a01b0384165f81815260208181526040808320878452909152808220600d8101805461ffff19811661ff8090911617905590519092339287927fbdf35ce8dadea72c4b56652779024c767e42dc4f80eda184a6871b4c510bc2599190a45050505050565b6001600160a01b038084165f9081526001602052604090205484911661193657604051639ada36a160e01b815260040160405180910390fd5b6001600160a01b0384165f9081526020818152604080832086845290915290206119608533613c31565b156119f457600d8101546004165f0361198c576040516306128fff60e21b815260040160405180910390fd5b600781015483106119b0576040516392f1b43560e01b815260040160405180910390fd5b600c810183905560405183815284906001600160a01b038716907f177969748c66427fa48f679b469588208d3589b315c7cf5a5d5619d54eb5007190602001611455565b6119ff858533614070565b156114b457600d8101546080165f0361198c576040517ffd35442000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060611a906040518060400160405280600981526020017f746578742f68746d6c0000000000000000000000000000000000000000000000815250611a8985856133fe565b600161415c565b9392505050565b6001600160a01b038085165f90815260016020526040902054859116611ad057604051639ada36a160e01b815260040160405180910390fd5b6001600160a01b0385165f908152602081815260408083208784529091529020611afa8633613c31565b15611bc957600d8101546008165f03611b26576040516306128fff60e21b815260040160405180910390fd5b5f5b83811015611b805760078201858583818110611b4657611b46615549565b9050602002810190611b58919061555d565b82546001810184555f938452602090932090920191611b77918361561d565b50600101611b28565b50604051838152339086906001600160a01b038916907f3b48ca32550ed9cb9000897916c531cbcec8c1e83ec796f30d103d50a14b204e9060200160405180910390a450611c74565b611bd4868633614070565b156114b457600d810154610100165f03611c1a576040517ffd35442000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b83811015611b805760088201858583818110611c3a57611c3a615549565b9050602002810190611c4c919061555d565b82546001810184555f938452602090932090920191611c6b918361561d565b50600101611c1c565b5050505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b6001600160a01b0382165f908152602081815260408083208484529091529020600f8101546060919015611cf657611cee81600f01614243565b915050610a69565b505060408051602081019091525f815292915050565b611d146142ac565b611d1d5f6142c6565b565b6020611d2a81613bae565b604051826060528360601b60601c60405230602052677ec62e7623b872dd5f525f386064601c34895af1853b02611d615760046018fd5b5f60605260405250505050565b6004611d7981613bae565b63471d6ea4198054831790555050565b5050565b6001600160a01b0382165f908152602081815260408083208484528252808320600701805482518185028101850190935280835260609492939192909184015b82821015611e75578382905f5260205f20018054611dea906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054611e16906154fe565b8015611e615780601f10611e3857610100808354040283529160200191611e61565b820191905f5260205f20905b815481529060010190602001808311611e4457829003601f168201915b505050505081526020019060010190611dcd565b50505050905092915050565b6001600160a01b038086165f90815260016020526040902054869116611eba57604051639ada36a160e01b815260040160405180910390fd5b85611ec58133613c31565b611ee257604051632ae4234360e21b815260040160405180910390fd5b6001600160a01b0387165f90815260208181526040808320898452909152808220600d810154909291169003611f2b576040516306128fff60e21b815260040160405180910390fd5b611f38600f82015f614ae4565b60108101805460ff19168515151790555f5b8581101561202a575f878783818110611f6557611f65615549565b9050602002810190611f77919061555d565b9050111561202257600f8201611fe3888884818110611f9857611f98615549565b9050602002810190611faa919061555d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061430392505050565b81546001810183555f9283526020909220909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b600101611f4a565b506040517f204b0f16f9cad6835b740f7cb6920a04f964703dbd16fb913013708e2ecb717f905f90a15050505050505050565b608061206881613bae565b604051846014528360345282605452677ec62e76095bcdb660601b5f5260205f60646010348a5af160015f5114166120a0576004600cfd5b5f6060526040525050505050565b6001600160a01b0382165f908152602081815260408083208484528252808320600801805482518185028101850190935280835260609492939192909184015b82821015611e75578382905f5260205f2001805461210b906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054612137906154fe565b80156121825780601f1061215957610100808354040283529160200191612182565b820191905f5260205f20905b81548152906001019060200180831161216557829003601f168201915b5050505050815260200190600101906120ee565b6001600160a01b038085165f908152600160205260409020548591166121cf57604051639ada36a160e01b815260040160405180910390fd5b846121da8133613c31565b6121f757604051632ae4234360e21b815260040160405180910390fd5b6001600160a01b0386165f908152602081815260408083208884529091528120600d810154909160029091169003612242576040516306128fff60e21b815260040160405180910390fd5b8061224e85878361561d565b5060405186906001600160a01b038916907fcbde09ca384559b1f386d42a6ae204f4ac94c41c5c01f269100f389103db067e905f90a350505050505050565b60606122996002614243565b905090565b6001600160a01b038088165f908152600160205260409020548891166122d757604051639ada36a160e01b815260040160405180910390fd5b6001600160a01b038881165f90815260016020526040902054899116331461232b576040517f4d739bfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0389165f908152602081815260408083208b84529091529020612355888061555d565b829161236291908361561d565b506123736080890160608a016156d7565b600e8201805460ff19166001838181111561239057612390614de4565b02179055506123a260208901896156f2565b600782016123b08282615881565b505060808801600d82016123c482826159f9565b506123d490506040890189615a1a565b600182016123e28282615bfd565b506123f2905060a0890189615ad2565b600f82016124008282615d7e565b50612410905060a0890189615ad2565b61241a908061572e565b159050801561242857508315155b156124c6575f5b848110156124c4575f86868381811061244a5761244a615549565b905060200281019061245c919061555d565b905011156124bc57600f820161247d878784818110611f9857611f98615549565b81546001810183555f9283526020909220909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b60010161242f565b505b6124d0888061555d565b90505f0361250a576040517fbcecb64a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61251760208901896156f2565b612521908061572e565b90505f0361255b576040517ffaa1408000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61256860208901896156f2565b61257690604081019061555d565b90505f036125b0576040517f93b405ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125bd60208901896156f2565b6125cb90606081019061555d565b90505f03612605576040517fa7fa5fc800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61261260208901896156f2565b61261c908061572e565b905061262b60208a018a6156f2565b60a0013510612666576040517f64b7b23900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61267460408a018a615a1a565b6126829060208101906156d7565b600181111561269357612693614de4565b0361273b575f8690036126d2576040517f9b0dd1f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8681101561273957600382016126f5898984818110611f9857611f98615549565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055016126d4565b505b600161274a60408a018a615a1a565b6127589060208101906156d7565b600181111561276957612769614de4565b036128315761277b6040890189615a1a565b612789906040810190615ad2565b612793908061572e565b90505f036127b4576040516392f1b43560e01b815260040160405180910390fd5b6127c16040890189615a1a565b6127cf906040810190615ad2565b6127d9908061572e565b90506127e860408a018a615a1a565b6127f6906040810190615ad2565b6020013510612831576040517f201d85ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405189906001600160a01b038c16907fc1a4d2c918954dfa7fe6433366bfc1f472191756813f203215c4a143ddcf091a905f90a350505050505050505050565b6001600160a01b0382165f90815260208181526040808320848452909152812060018082015460ff1692919083818111156128af576128af614de4565b146128ba575f6128c0565b60068101545b9150509250929050565b60106128d581613bae565b8260145281603452677ec62e76a9059cbb60601b5f5260205f6044601034885af13d1560015f51141716612909576004600cfd5b5f60345250505050565b6001600160a01b038086165f9081526001602052604090205486911661294c57604051639ada36a160e01b815260040160405180910390fd5b856129578133613c31565b61297457604051632ae4234360e21b815260040160405180910390fd5b6001600160a01b0387165f908152602081815260408083208984529091528120600d8101549091600190911690036129bf576040516306128fff60e21b815260040160405180910390fd5b6129cc600382015f614ae4565b6129d9600582015f614aff565b5f6129e760208801886156d7565b60018111156129f8576129f8614de4565b03612a885783612a1b576040516392f1b43560e01b815260040160405180910390fd5b5f5b84811015612a825760038201612a3e878784818110611f9857611f98615549565b8154600180820184555f938452602090932001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905501612a1d565b50612ac0565b5f612a966040880188615ad2565b612aa0908061572e565b905011612ac0576040516392f1b43560e01b815260040160405180910390fd5b8560018201612acf8282615bfd565b505060405187906001600160a01b038a16907f19b2e82aa8a26ddf7550f91791ed0076cda23b9d006c0b22d68a5dcf6c83675c905f90a35050505050505050565b81612b1b8133613c31565b612b3857604051632ae4234360e21b815260040160405180910390fd5b5f6001600160a01b03831615612b4e5782612b50565b835b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fa76ed1810000000000000000000000000000000000000000000000000000000060048201529091506001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612bce573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bf29190615e39565b612c28576040517f82542ee100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038481165f81815260016020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916948616948517905551339392917f32cbeaec3f2fc4b88cd5d5b5ec778111e585d882f052b859822f696f5f7294da91a450505050565b612c986142ac565b612ca360025f614ae4565b6003805460ff19168215151790555f5b82811015612d46575f848483818110612cce57612cce615549565b9050602002810190612ce0919061555d565b90501115612d3e576002612cff858584818110611f9857611f98615549565b81546001810183555f9283526020909220909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b600101612cb3565b506040517f204b0f16f9cad6835b740f7cb6920a04f964703dbd16fb913013708e2ecb717f905f90a1505050565b6001600160a01b0382165f9081526020818152604080832084845290915281208054606092908290612da5906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054612dd1906154fe565b8015612e1c5780601f10612df357610100808354040283529160200191612e1c565b820191905f5260205f20905b815481529060010190602001808311612dff57829003601f168201915b5093945060019350612e2d92505050565b600e83015460ff166001811115612e4657612e46614de4565b03612f3b575f612e5583613e29565b9050612edd82612ed8612e9d6040518060400160405280600981526020017f22696d616765223a22000000000000000000000000000000000000000000000081525085614344565b6040518060400160405280600181526020017f2200000000000000000000000000000000000000000000000000000000000000815250614344565b61439f565b91505f612eea8787611a44565b9050612f3283612ed8612e9d6040518060400160405280601181526020017f22616e696d6174696f6e5f75726c223a2200000000000000000000000000000081525085614344565b925050506132d6565b600b82015460ff166130b95760078201541561305f576007820154600c8301545f9111612f68575f612f6e565b600c8301545b90505f836007015f018281548110612f8857612f88615549565b905f5260205f20018054612f9b906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054612fc7906154fe565b80156130125780601f10612fe957610100808354040283529160200191613012565b820191905f5260205f20905b815481529060010190602001808311612ff557829003601f168201915b50505050509050612f3283612ed8612e9d6040518060400160405280600981526020017f22696d616765223a22000000000000000000000000000000000000000000000081525085614344565b5f61306983613e29565b90506130b182612ed8612e9d6040518060400160405280600981526020017f22696d616765223a22000000000000000000000000000000000000000000000081525085614344565b9150506132d6565b5f6130c383613e29565b905061310b82612ed8612e9d6040518060400160405280600981526020017f22696d616765223a22000000000000000000000000000000000000000000000081525085614344565b6007840154600c85015491935060609110156131d357600c840154600785018054909190811061313d5761313d615549565b905f5260205f20018054613150906154fe565b80601f016020809104026020016040519081016040528092919081815260200182805461317c906154fe565b80156131c75780601f1061319e576101008083540402835291602001916131c7565b820191905f5260205f20905b8154815290600101906020018083116131aa57829003601f168201915b50505050509050613283565b600784015415613283576007840180545f906131f1576131f1615549565b905f5260205f20018054613204906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054613230906154fe565b801561327b5780601f106132525761010080835404028352916020019161327b565b820191905f5260205f20905b81548152906001019060200180831161325e57829003601f168201915b505050505090505b8051156132d3576132d083612ed8612e9d6040518060400160405280601181526020017f22616e696d6174696f6e5f75726c223a2200000000000000000000000000000081525085614344565b92505b50505b6133926040518060400160405280601081526020017f6170706c69636174696f6e2f6a736f6e0000000000000000000000000000000081525061338c6133516040518060400160405280600181526020017f7b0000000000000000000000000000000000000000000000000000000000000081525085614344565b6040518060400160405280600181526020017f7d00000000000000000000000000000000000000000000000000000000000000815250614344565b5f61415c565b95945050505050565b6133a36142ac565b63389a75e1600c52805f526020600c2080544211156133c957636f5e88185f526004601cfd5b5f90556133d5816142c6565b50565b6133e06142ac565b8060601b6133f557637448fbae5f526004601cfd5b6133d5816142c6565b6001600160a01b0382165f90815260208181526040808320848452909152812060609161342a826143f8565b600f8301549091506060901561344d5761344683600f01614243565b905061345a565b6134576002614243565b90505b5f61349b826040518060400160405280600d81526020017f7b7b46494c455f555249537d7d0000000000000000000000000000000000000081525085614770565b905061356a816040518060400160405280600d81526020017f7b7b46494c455f484153487d7d000000000000000000000000000000000000008152508660070160030180546134e9906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054613515906154fe565b80156135605780601f1061353757610100808354040283529160200191613560565b820191905f5260205f20905b81548152906001019060200180831161354357829003601f168201915b5050505050614770565b979650505050505050565b6001600160a01b038085165f908152600160205260409020548591166135ae57604051639ada36a160e01b815260040160405180910390fd5b6001600160a01b0385165f908152602081815260408083208784529091529020826135ec576040516392f1b43560e01b815260040160405180910390fd5b6135f68633613c31565b156137f957600d8101546008165f03613622576040516306128fff60e21b815260040160405180910390fd5b5f5b838110156137ba57801561368c57848461363f600184615e54565b81811061364e5761364e615549565b9050602002013585858381811061366757613667615549565b905060200201351061368c576040516392f1b43560e01b815260040160405180910390fd5b5f85858381811061369f5761369f615549565b60078601546020909102929092013592505081106136d0576040516392f1b43560e01b815260040160405180910390fd5b6007830180546136e290600190615e54565b815481106136f2576136f2615549565b905f5260205f2001836007015f01828154811061371157613711615549565b905f5260205f200190816137259190615e73565b506007830180548061373957613739615f48565b600190038181905f5260205f20015f6137529190614b1a565b905533876001600160a01b038a167f55b7cdb43a1dbfce6aa9c7a60e3023ed43ae93e93cb3136b02814e130f4d1a1489898781811061379357613793615549565b905060200201356040516137a991815260200190565b60405180910390a450600101613624565b506007810154600c820154106137f35760078101546137d9575f6137ea565b60078101546137ea90600190615e54565b60ff16600c8201555b50611c74565b613804868633614070565b156114b457600d810154610100165f0361384a576040517ffd35442000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b838110156139e35780156138b4578484613867600184615e54565b81811061387657613876615549565b9050602002013585858381811061388f5761388f615549565b90506020020135106138b4576040516392f1b43560e01b815260040160405180910390fd5b5f8585838181106138c7576138c7615549565b60088601546020909102929092013592505081106138f8576040516392f1b43560e01b815260040160405180910390fd5b60088301805461390a90600190615e54565b8154811061391a5761391a615549565b905f5260205f200183600701600101828154811061393a5761393a615549565b905f5260205f2001908161394e9190615e73565b506008830180548061396257613962615f48565b600190038181905f5260205f20015f61397b9190614b1a565b905533876001600160a01b038a167f55b7cdb43a1dbfce6aa9c7a60e3023ed43ae93e93cb3136b02814e130f4d1a148989878181106139bc576139bc615549565b905060200201356040516139d291815260200190565b60405180910390a45060010161384c565b5050611c74565b6001600160a01b0382165f9081526020818152604080832084845290915290206060906112e0816143f8565b6001600160a01b038084165f90815260016020526040902054849116613a4f57604051639ada36a160e01b815260040160405180910390fd5b6001600160a01b0384165f90815260208181526040808320868452909152902060018082015460ff1681811115613a8857613a88614de4565b14613abf576040517fe6dbd63500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613ac98533613c31565b15613b5d57600d8101546010165f03613af5576040516306128fff60e21b815260040160405180910390fd5b60058101548310613b19576040516392f1b43560e01b815260040160405180910390fd5b6006810183905560405183815284906001600160a01b038716907f72696eb7ed045b74e4aabd19d476b8e8d15b66964671365e03bbdffc995cd61c90602001611455565b613b68858533614070565b156114b457600d810154610200165f03613af5576040517ffd35442000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f613bbc63471d6ea4195490565b90507f00000000000000000000000000000000000000000000000000000000000000008182841615155f03179150336020523060018316528060405f2018333b17156108ad57678da5cb5b0a0362e060085260205f60046020305afa335f5114601f3d11166002841610166108ad5760046024fd5b604080516001600160a01b0383811660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f24d7806c0000000000000000000000000000000000000000000000000000000017905291515f928392839291871691613cb89190615f73565b5f60405180830381855afa9150503d805f8114613cf0576040519150601f19603f3d011682016040523d82523d5f602084013e613cf5565b606091505b5091509150818015613d0957506020815110155b15613d2b5780806020019051810190613d229190615e39565b92505050610a69565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8da5cb5b0000000000000000000000000000000000000000000000000000000017905290516001600160a01b03871691613d9791615f73565b5f60405180830381855afa9150503d805f8114613dcf576040519150601f19603f3d011682016040523d82523d5f602084013e613dd4565b606091505b509092509050818015613de957506020815110155b15613e1f57836001600160a01b031681806020019051810190613e0c9190615f7e565b6001600160a01b03161492505050610a69565b505f949350505050565b60605f60018084015460ff1690811115613e4557613e45614de4565b03613ef0575f613e5760028401614002565b600284018054919250611a9091613e6d906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054613e99906154fe565b8015613ee45780601f10613ebb57610100808354040283529160200191613ee4565b820191905f5260205f20905b815481529060010190602001808311613ec757829003601f168201915b5050505050825f61415c565b60018281015460ff1681811115613f0957613f09614de4565b03613fd057600582015460068301541015613fd05760068201546005830180549091908110613f3a57613f3a615549565b905f5260205f20018054613f4d906154fe565b80601f0160208091040260200160405190810160405280929190818152602001828054613f79906154fe565b8015613fc45780601f10613f9b57610100808354040283529160200191613fc4565b820191905f5260205f20905b815481529060010190602001808311613fa757829003601f168201915b50505050509050919050565b6040517fe6dbd63500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610a698260010180548060200260200160405190810160405280929190818152602001828054801561405d57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161403f575b50505050600285015460ff169050614877565b6001600160a01b038084165f9081526001602052604081205490918591166140ab57604051639ada36a160e01b815260040160405180910390fd5b6001600160a01b038581165f81815260016020526040908190205490517fa76ed181000000000000000000000000000000000000000000000000000000008152600481019290925285831660248301526044820187905290911690819063a76ed18190606401602060405180830381865afa15801561412c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141509190615e39565b9250505b509392505050565b60605f826141785760405180602001604052805f8152506141af565b6040518060400160405280600e81526020017f3b636861727365743d5554462d380000000000000000000000000000000000008152505b90506133926141f36040518060400160405280600581526020017f646174613a00000000000000000000000000000000000000000000000000000081525087614344565b61423e614235846040518060400160405280600881526020017f3b6261736536342c000000000000000000000000000000000000000000000000815250614344565b61423e886148e3565b614344565b805460408051602080840282018101909252828152606092610a699285919083018282801561429957602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161427b575b50505050600185015460ff169050614877565b638b78c6d819543314611d1d576382b429005f526004601cfd5b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f81518060401b6bfe61000180600a3d393df3000161fffe8211840152600b8101601584015ff091508161433e5763301164255f526004601cfd5b90915290565b6040518251601f19906020810182165b8581015184820152820180614354575083518184018360208301165b86810151828201528401806143705750505f910183810160208101929092528352604090810190525092915050565b606082515f036143b0575080610a69565b611a906143f2846040518060400160405280600181526020017f2c00000000000000000000000000000000000000000000000000000000000000815250614344565b83614344565b60408051602081019091525f81526007820154606091901561463e576144fb612e9d6040518060400160405280600181526020017f2200000000000000000000000000000000000000000000000000000000000000815250856007015f015f8154811061446757614467615549565b905f5260205f2001805461447a906154fe565b80601f01602080910402602001604051908101604052809291908181526020018280546144a6906154fe565b80156144f15780601f106144c8576101008083540402835291602001916144f1565b820191905f5260205f20905b8154815290600101906020018083116144d457829003601f168201915b5050505050614344565b905060015b600784015481101561463c5761463261454e836040518060400160405280600281526020017f2c22000000000000000000000000000000000000000000000000000000000000815250614344565b61423e866007015f01848154811061456857614568615549565b905f5260205f2001805461457b906154fe565b80601f01602080910402602001604051908101604052809291908181526020018280546145a7906154fe565b80156145f25780601f106145c9576101008083540402835291602001916145f2565b820191905f5260205f20905b8154815290600101906020018083116145d557829003601f168201915b50505050506040518060400160405280600181526020017f2200000000000000000000000000000000000000000000000000000000000000815250614344565b9150600101614500565b505b600883015415610a695760078301541561469457614691816040518060400160405280600181526020017f2c00000000000000000000000000000000000000000000000000000000000000815250614344565b90505b6146f16146d6826040518060400160405280600181526020017f2200000000000000000000000000000000000000000000000000000000000000815250614344565b61423e856007016001015f8154811061456857614568615549565b905060015b60088401548110156147695761475f614744836040518060400160405280600281526020017f2c22000000000000000000000000000000000000000000000000000000000000815250614344565b61423e86600701600101848154811061456857614568615549565b91506001016146f6565b5092915050565b606060405190508251825185830360208701875181018851851161483c576001858203015f602087106147a6578660208b012090505b60208a0151601f881660200360031b5b8551828118821c6148255783156147ee57838a8820146147ee5780888801526001870196508487106147e85750614837565b506147b6565b5f5b6020818e018101518a8a01830152018981106147f0575089898901039750891561482557958901958487106147e85750614837565b868801526001909501948386106147b6575b505050505b806020870184030194505b8082101561486057815183830152602082019150614847565b505f91019081526020016040525081529392505050565b6060805f5b84518110156148d357816148a886838151811061489b5761489b615549565b60200260200101516148f0565b6040516020016148b9929190615f99565b60408051601f19818403018152919052915060010161487c565b508215611a90576112e08161491c565b6060610a69825f5f6149d8565b60405164ffffffffff5f19833b0116602181015f601f8401853c80825260408201810160405250919050565b60405181516020838101938184019201015b808410156149c0578351805f1a8060051c8061496057506001868101518552958101600201959301909201915061492e565b600781148360011a600701821881028218600201600185836001011a85601f1660081b0101808803602082186020831102821891505f5b818101518a8201528201838110614997579a84016002019a98830198505050505050505061492e565b50601f198282030182525f8152602001604052919050565b606083518015614154576003600282010460021b60405192507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f526106708515027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f18603f526020830181810183886020010180515f82525b60038a0199508951603f8160121c16515f53603f81600c1c1651600153603f8160061c1651600253603f811651600353505f518452600484019350828410614a535790526020016040527f3d3d00000000000000000000000000000000000000000000000000000000000060038406600204808303919091525f861515909102918290035290038252509392505050565b5080545f8255905f5260205f20908101906133d59190614b4d565b5080545f8255905f5260205f20908101906133d59190614b65565b508054614b26906154fe565b5f825580601f10614b35575050565b601f0160209004905f5260205f20908101906133d591905b5b80821115614b61575f8155600101614b4e565b5090565b80821115614b61575f614b788282614b1a565b50600101614b65565b6001600160a01b03811681146133d5575f5ffd5b5f5f60408385031215614ba6575f5ffd5b8235614bb181614b81565b946020939093013593505050565b5f5f83601f840112614bcf575f5ffd5b50813567ffffffffffffffff811115614be6575f5ffd5b602083019150836020828501011115614bfd575f5ffd5b9250929050565b5f5f5f5f5f5f60a08789031215614c19575f5ffd5b8635614c2481614b81565b95506020870135614c3481614b81565b94506040870135935060608701359250608087013567ffffffffffffffff811115614c5d575f5ffd5b614c6989828a01614bbf565b979a9699509497509295939492505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015614d1e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452614d09858351614c7b565b94506020938401939190910190600101614ccf565b50929695505050505050565b80151581146133d5575f5ffd5b5f5f5f5f5f5f5f5f5f6101208a8c031215614d50575f5ffd5b8935614d5b81614b81565b985060208a0135975060408a0135614d7281614d2a565b965060608a0135614d8281614d2a565b955060808a0135614d9281614d2a565b945060a08a0135614da281614d2a565b935060c08a0135614db281614d2a565b925060e08a0135614dc281614d2a565b91506101008a0135614dd381614d2a565b809150509295985092959850929598565b634e487b7160e01b5f52602160045260245ffd5b600281106133d557634e487b7160e01b5f52602160045260245ffd5b5f8151808452602084019350602083015f5b82811015614e4d5781516001600160a01b0316865260209586019590910190600101614e26565b5093949350505050565b5f82825180855260208501945060208160051b830101602085015f5b83811015614ea557601f19858403018852614e8f838351614c7b565b6020988901989093509190910190600101614e73565b50909695505050505050565b5f815160c08452614ec560c0850182614e57565b905060208301518482036020860152614ede8282614e57565b91505060408301518482036040860152614ef88282614c7b565b91505060608301518482036060860152614f128282614c7b565b91505060808301511515608085015260a083015160a08501528091505092915050565b614f3e81614df8565b9052565b5f815160408452614f566040850182614e14565b6020938401511515949093019390935250919050565b60c081525f614f7e60c0830189614c7b565b82810360208401528751614f9181614df8565b808252506020880151606060208301528051606080840152614fb660c0840182614c7b565b905060208201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0848303016080850152614ff18282614e14565b9150506040820151151560a084015260408a01519150828103604084015281519250604081526150246040820184614e57565b925060208201516020820152505082810360408401526150448188614eb1565b865161ffff166060850152905061505e6080840186614f35565b82810360a08401526150708185614f42565b9998505050505050505050565b602081525f611a906020830184614c7b565b600281106133d5575f5ffd5b5f5f5f606084860312156150ad575f5ffd5b83356150b881614b81565b92506020840135915060408401356150cf8161508f565b809150509250925092565b602081525f611a906020830184614eb1565b5f5f5f606084860312156150fe575f5ffd5b833561510981614b81565b95602085013595506040909401359392505050565b5f5f83601f84011261512e575f5ffd5b50813567ffffffffffffffff811115615145575f5ffd5b6020830191508360208260051b8501011115614bfd575f5ffd5b5f5f5f5f60608587031215615172575f5ffd5b843561517d81614b81565b935060208501359250604085013567ffffffffffffffff81111561519f575f5ffd5b6151ab8782880161511e565b95989497509550505050565b5f602082840312156151c7575f5ffd5b8135611a9081614b81565b5f5f5f606084860312156151e4575f5ffd5b83356151ef81614b81565b925060208401356151ff81614b81565b929592945050506040919091013590565b5f60208284031215615220575f5ffd5b5035919050565b5f5f5f5f5f6080868803121561523b575f5ffd5b853561524681614b81565b945060208601359350604086013567ffffffffffffffff811115615268575f5ffd5b6152748882890161511e565b909450925050606086013561528881614d2a565b809150509295509295909350565b5f5f5f5f608085870312156152a9575f5ffd5b84356152b481614b81565b935060208501356152c481614b81565b93969395505050506040820135916060013590565b5f5f5f5f606085870312156152ec575f5ffd5b84356152f781614b81565b935060208501359250604085013567ffffffffffffffff811115615319575f5ffd5b6151ab87828801614bbf565b5f5f5f5f5f5f5f60a0888a03121561533b575f5ffd5b873561534681614b81565b965060208801359550604088013567ffffffffffffffff811115615368575f5ffd5b880160c0818b031215615379575f5ffd5b9450606088013567ffffffffffffffff811115615394575f5ffd5b6153a08a828b0161511e565b909550935050608088013567ffffffffffffffff8111156153bf575f5ffd5b6153cb8a828b0161511e565b989b979a50959850939692959293505050565b604081016153eb84614df8565b9281526020015290565b5f5f60408385031215615406575f5ffd5b823561541181614b81565b9150602083013561542181614b81565b809150509250929050565b5f5f5f5f5f60808688031215615440575f5ffd5b853561544b81614b81565b945060208601359350604086013567ffffffffffffffff81111561546d575f5ffd5b86016060818903121561547e575f5ffd5b9250606086013567ffffffffffffffff811115615499575f5ffd5b6154a58882890161511e565b969995985093965092949392505050565b5f5f5f604084860312156154c8575f5ffd5b833567ffffffffffffffff8111156154de575f5ffd5b6154ea8682870161511e565b90945092505060208401356150cf81614d2a565b600181811c9082168061551257607f821691505b60208210810361553057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020810161554383614df8565b91905290565b634e487b7160e01b5f52603260045260245ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615590575f5ffd5b83018035915067ffffffffffffffff8211156155aa575f5ffd5b602001915036819003821315614bfd575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5b81811015611d89575f81556001016155d3565b601f8211156108ad57805f5260205f20601f840160051c8101602085101561560b5750805b611c74601f850160051c8301826155d2565b67ffffffffffffffff831115615635576156356155be565b6156498361564383546154fe565b836155e6565b5f601f84116001811461567a575f85156156635750838201355b5f19600387901b1c1916600186901b178355611c74565b5f83815260208120601f198716915b828110156156a95786850135825560209485019460019092019101615689565b50868210156156c5575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f602082840312156156e7575f5ffd5b8135611a908161508f565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41833603018112615724575f5ffd5b9190910192915050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615761575f5ffd5b83018035915067ffffffffffffffff82111561577b575f5ffd5b6020019150600581901b3603821315614bfd575f5ffd5b680100000000000000008311156157ab576157ab6155be565b80548382558084101561582f575f828152602090208481019082015b8082101561582c576157d982546154fe565b801561582057601f8111600181146157f3575f845561581e565b5f84815260209020615810601f840160051c8201600183016155d2565b505f84815260208120818655555b505b506001820191506157c7565b50505b505f8181526020812083915b8581101561586d5761584d838661555d565b61585881838661561d565b5050602092909201916001918201910161583b565b505050505050565b5f8135610a6981614d2a565b61588b828361572e565b680100000000000000008111156158a4576158a46155be565b825481845580821015615928575f848152602090208281019082015b80821015615925576158d282546154fe565b801561591957601f8111600181146158ec575f8455615917565b5f84815260209020615909601f840160051c8201600183016155d2565b505f84815260208120818655555b505b506001820191506158c0565b50505b505f8381526020812083915b8381101561596657615946838661555d565b61595181838661561d565b50506020929092019160019182019101615934565b5050505050615978602083018361572e565b615986818360018601615792565b5050615995604083018361555d565b6159a381836002860161561d565b50506159b2606083018361555d565b6159c081836003860161561d565b50506159ea6159d160808401615875565b6004830160ff1981541660ff8315151681178255505050565b60a09190910135600590910155565b813561ffff8116808214615a0b575f5ffd5b825461ffff1916179091555050565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112615724575f5ffd5b67ffffffffffffffff831115615a6457615a646155be565b68010000000000000000831115615a7d57615a7d6155be565b805483825580841015615aa157815f5260205f20615a9f8282018683016155d2565b505b5081815f5260205f205f5b8581101561586d578235615abf81614b81565b8282015560209290920191600101615aac565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112615724575f5ffd5b615b0e828361572e565b68010000000000000000811115615b2757615b276155be565b825481845580821015615bab575f848152602090208281019082015b80821015615ba857615b5582546154fe565b8015615b9c57601f811160018114615b6f575f8455615b9a565b5f84815260209020615b8c601f840160051c8201600183016155d2565b505f84815260208120818655555b505b50600182019150615b43565b50505b505f8381526020812083915b83811015615be957615bc9838661555d565b615bd481838661561d565b50506020929092019160019182019101615bb7565b505050505060209190910135600190910155565b8135615c088161508f565b615c1181614df8565b60ff1982541660ff82168117835550506001810160208301357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1843603018112615c59575f5ffd5b8301615c65818061555d565b67ffffffffffffffff811115615c7d57615c7d6155be565b615c9181615c8b86546154fe565b866155e6565b5f601f821160018114615cc2575f8315615cab5750838201355b5f19600385901b1c1916600184901b178655615d19565b5f86815260208120601f198516915b82811015615cf15786850135825560209485019460019092019101615cd1565b5084821015615d0d575f1960f88660031b161c19848701351681555b505060018360011b0186555b50505050615d2a602082018261572e565b9250615d3a838260028701615a4c565b50615d63615d4a60408301615875565b6003850160ff1981541660ff8315151681178255505050565b5050611d89615d756040840184615ad2565b60048301615b04565b615d88828361572e565b67ffffffffffffffff811115615da057615da06155be565b68010000000000000000811115615db957615db96155be565b825481845580821015615ddd57835f5260205f20615ddb8282018483016155d2565b505b50825f5260205f205f5b82811015615e0d578335615dfa81614b81565b8282015560209390930192600101615de7565b50505050611d89615e2060208401615875565b6001830160ff1981541660ff8315151681178255505050565b5f60208284031215615e49575f5ffd5b8151611a9081614d2a565b81810381811115610a6957634e487b7160e01b5f52601160045260245ffd5b818103615e7e575050565b615e8882546154fe565b67ffffffffffffffff811115615ea057615ea06155be565b615eb481615eae84546154fe565b846155e6565b5f601f821160018114615ee5575f8315615ece5750848201545b5f19600385901b1c1916600184901b178455611c74565b5f8581526020808220868352908220601f198616925b83811015615f1b5782860154825560019586019590910190602001615efb565b5085831015615f3857818501545f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603160045260245ffd5b5f81518060208401855e5f93019283525090919050565b5f611a908284615f5c565b5f60208284031215615f8e575f5ffd5b8151611a9081614b81565b5f6112e0615fa78386615f5c565b84615f5c56fea164736f6c634300081e000a0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028996f7dece7e058ebfc56dfa9371825fbfa515a00000000000000000000000000000000000000000000000000000000000059253c21646f63747970652068746d6c3e3c68746d6c206c616e673d22656e223e3c686561643e3c6d65746120636861727365743d225554462d38222f3e3c6d657461206e616d653d2276696577706f72742220636f6e74656e743d2277696474683d6465766963652d77696474682c696e697469616c2d7363616c653d312e30222f3e3c7469746c653e4d5552492050726f746f636f6c205265736f6c7665723c2f7469746c653e3c7374796c653e626f64797b6d617267696e3a303b70616464696e673a303b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b6d696e2d6865696768743a31303076683b6261636b67726f756e643a233030303b666f6e742d66616d696c793a417269616c2c73616e732d73657269663b7d23636f6e74656e747b636f6c6f723a77686974653b7d2364656275677b706f736974696f6e3a66697865643b746f703a313070783b6c6566743a313070783b636f6c6f723a77686974653b666f6e742d66616d696c793a6d6f6e6f73706163653b666f6e742d73697a653a313270783b6d61782d77696474683a33303070783b776f72642d627265616b3a627265616b2d616c6c3b7a2d696e6465783a313030303b7d2e73746167657b706f736974696f6e3a66697865643b696e7365743a303b6f766572666c6f773a68696464656e3b6261636b67726f756e643a233030303b746f7563682d616374696f6e3a6e6f6e653b637572736f723a677261623b7d2e73746167652e6772616262696e677b637572736f723a6772616262696e673b7d2e70616e7a6f6f6d7b7472616e73666f726d2d6f726967696e3a3020303b7669736962696c6974793a68696464656e3b7d2e70616e7a6f6f6d20696d677b646973706c61793a626c6f636b3b757365722d73656c6563743a6e6f6e653b2d7765626b69742d757365722d647261673a6e6f6e653b2d6b68746d6c2d757365722d647261673a6e6f6e653b2d6d6f7a2d757365722d647261673a6e6f6e653b2d6f2d757365722d647261673a6e6f6e653b757365722d647261673a6e6f6e653b7d2e6d656469612d636f6e7461696e65727b706f736974696f6e3a66697865643b696e7365743a303b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b6261636b67726f756e643a233030303b6f766572666c6f773a6175746f3b7d2e766964656f2d706c617965722c2e617564696f2d706c617965727b6d61782d77696474683a393076773b6d61782d6865696768743a393076683b7d2e617564696f2d706c617965727b77696474683a34303070783b7d2e74687265656a732d636f6e7461696e65727b706f736974696f6e3a66697865643b696e7365743a303b6261636b67726f756e643a233030303b7d2e74687265656a732d636f6e74726f6c737b706f736974696f6e3a66697865643b626f74746f6d3a323070783b6c6566743a3530253b7472616e73666f726d3a7472616e736c61746558282d353025293b6261636b67726f756e643a7267626128302c302c302c302e37293b70616464696e673a313070783b626f726465722d7261646975733a3570783b636f6c6f723a77686974653b666f6e742d66616d696c793a6d6f6e6f73706163653b666f6e742d73697a653a313270783b7d2e746578742d7669657765727b706f736974696f6e3a66697865643b696e7365743a323070783b6261636b67726f756e643a233165316531653b636f6c6f723a236434643464343b666f6e742d66616d696c793a22436f7572696572204e6577222c6d6f6e6f73706163653b666f6e742d73697a653a313470783b6c696e652d6865696768743a312e353b6f766572666c6f773a6175746f3b70616464696e673a323070783b626f726465722d7261646975733a3570783b7d2e6a736f6e2d7669657765727b77686974652d73706163653a7072652d777261703b7d2e6a736f6e2d6b65797b636f6c6f723a233963646366653b7d2e6a736f6e2d737472696e677b636f6c6f723a236365393137383b7d2e6a736f6e2d6e756d6265727b636f6c6f723a236235636561383b7d2e6a736f6e2d626f6f6c65616e7b636f6c6f723a233536396364363b7d2e6a736f6e2d6e756c6c7b636f6c6f723a233536396364363b7d2e68746d6c2d7669657765727b706f736974696f6e3a66697865643b696e7365743a303b626f726465723a6e6f6e653b6261636b67726f756e643a77686974653b77696474683a31303076773b6865696768743a31303076683b7a2d696e6465783a3939393b7d2e6c6f6164696e677b646973706c61793a666c65783b6a7573746966792d636f6e74656e743a63656e7465723b616c69676e2d6974656d733a63656e7465723b636f6c6f723a77686974653b666f6e742d73697a653a313870783b7d2e6572726f727b636f6c6f723a236666366236623b746578742d616c69676e3a63656e7465723b70616464696e673a323070783b7d3c2f7374796c653e3c2f686561643e3c626f64793e3c6469762069643d22636f6e74656e74223e4c6f6164696e672e2e2e3c2f6469763e3c6469762069643d226465627567223e3c2f6469763e3c7363726970743e6173796e632066756e6374696f6e2073686132353628627566666572297b636f6e737420646174613d6e65772055696e7438417272617928627566666572293b636f6e737420746f74616c426c6f636b733d4d6174682e6365696c2828646174612e6c656e6774682b39292f3634293b6c65742070726f636573736564426c6f636b733d303b66756e6374696f6e207269676874526f746174652876616c75652c616d6f756e74297b72657475726e2876616c7565203e3e3e20616d6f756e74297c2876616c7565203c3c2833322d616d6f756e7429293b7d636f6e7374206b3d5b307834323861326639382c307837313337343439312c307862356330666263662c307865396235646261352c307833393536633235622c307835396631313166312c307839323366383261342c307861623163356564352c307864383037616139382c307831323833356230312c307832343331383562652c307835353063376463332c307837326265356437342c307838306465623166652c307839626463303661372c307863313962663137342c307865343962363963312c307865666265343738362c307830666331396463362c307832343063613163632c307832646539326336662c307834613734383461612c307835636230613964632c307837366639383864612c307839383365353135322c307861383331633636642c307862303033323763382c307862663539376663372c307863366530306266332c307864356137393134372c307830366361363335312c307831343239323936372c307832376237306138352c307832653162323133382c307834643263366466632c307835333338306431332c307836353061373335342c307837363661306162622c307838316332633932652c307839323732326338352c307861326266653861312c307861383161363634622c307863323462386237302c307863373663353161332c307864313932653831392c307864363939303632342c307866343065333538352c307831303661613037302c307831396134633131362c307831653337366330382c307832373438373734632c307833346230626362352c307833393163306362332c307834656438616134612c307835623963636134662c307836383265366666332c307837343866383265652c307837386135363336662c307838346338373831342c307838636337303230382c307839306265666666612c307861343530366365622c307862656639613366372c307863363731373866325d3b6c657420683d5b307836613039653636372c307862623637616538352c307833633665663337322c307861353466663533612c307835313065353237662c307839623035363838632c307831663833643961622c307835626530636431395d3b636f6e7374206c656e3d646174612e6c656e6774682a383b636f6e73742070616464696e673d6e65772055696e743841727261792836342d2828646174612e6c656e6774682b39292520363429293b636f6e7374207061646465643d6e65772055696e7438417272617928646174612e6c656e6774682b312b70616464696e672e6c656e6774682b38293b7061646465642e7365742864617461293b7061646465645b646174612e6c656e6774685d3d307838303b636f6e737420766965773d6e6577204461746156696577287061646465642e627566666572293b766965772e73657455696e743332287061646465642e6c656e6774682d342c6c656e2c66616c7365293b666f72286c657420693d303b69203c207061646465642e6c656e6774683b692b3d3634297b70726f636573736564426c6f636b732b2b3b69662870726f636573736564426c6f636b73202520343039363d3d3d30297b636f6e73742070726f67726573733d4d6174682e666c6f6f72282870726f636573736564426c6f636b732f746f74616c426c6f636b73292a313030293b64656275672e696e6e657248544d4c3d64656275672e696e6e657248544d4c2e73706c697428273c62723e48617368696e673a27295b305d2b273c62723e48617368696e673a272b70726f67726573732b2725273b6177616974206e65772050726f6d697365287265736f6c76653d3e2073657454696d656f7574287265736f6c76652c3029293b7d636f6e737420773d6e6577204172726179283634293b666f72286c6574206a3d303b6a203c2031363b6a2b2b297b775b6a5d3d766965772e67657455696e74333228692b6a2a342c66616c7365293b7d666f72286c6574206a3d31363b6a203c2036343b6a2b2b297b636f6e73742073303d7269676874526f7461746528775b6a2d31355d2c37295e207269676874526f7461746528775b6a2d31355d2c3138295e28775b6a2d31355d3e3e3e2033293b636f6e73742073313d7269676874526f7461746528775b6a2d325d2c3137295e207269676874526f7461746528775b6a2d325d2c3139295e28775b6a2d325d3e3e3e203130293b775b6a5d3d28775b6a2d31365d2b73302b775b6a2d375d2b7331293e3e3e20303b7d6c65745b612c622c632c642c652c662c672c68305d3d683b666f72286c6574206a3d303b6a203c2036343b6a2b2b297b636f6e73742053313d7269676874526f7461746528652c36295e207269676874526f7461746528652c3131295e207269676874526f7461746528652c3235293b636f6e73742063683d286520262066295e287e6520262067293b636f6e73742074656d70313d2868302b53312b63682b6b5b6a5d2b775b6a5d293e3e3e20303b636f6e73742053303d7269676874526f7461746528612c32295e207269676874526f7461746528612c3133295e207269676874526f7461746528612c3232293b636f6e7374206d616a3d286120262062295e286120262063295e286220262063293b636f6e73742074656d70323d2853302b6d616a293e3e3e20303b68303d673b673d663b663d653b653d28642b74656d7031293e3e3e20303b643d633b633d623b623d613b613d2874656d70312b74656d7032293e3e3e20303b7d683d682e6d61702828782c69293d3e28782b5b612c622c632c642c652c662c672c68305d5b695d293e3e3e2030293b7d72657475726e20682e6d617028783d3e20782e746f537472696e67283136292e706164537461727428382c27302729292e6a6f696e282727293b7d636f6e7374206d65646961557269733d5b7b7b46494c455f555249537d7d5d3b636f6e7374206578706563746564486173683d277b7b46494c455f484153487d7d273b636f6e73742074687265656a734c69627261726965733d7b636f72653a7b757269733a5b2268747470733a2f2f63646e6a732e636c6f7564666c6172652e636f6d2f616a61782f6c6962732f74687265652e6a732f723132382f74687265652e6d696e2e6a73222c2268747470733a2f2f63646e2e6a7364656c6976722e6e65742f6e706d2f746872656540302e3132382e302f6275696c642f74687265652e6d696e2e6a73222c2268747470733a2f2f756e706b672e636f6d2f746872656540302e3132382e302f6275696c642f74687265652e6d696e2e6a73222c2268747470733a2f2f676174657761792e6c69676874686f7573652e73746f726167652f697066732f62616679626569646b766d6873696463726b713435626e6366326c6679696573737a793464336362677361726771637976737335686d6d6b7a68792f74687265652e6d696e2e6a73222c2268747470733a2f2f686769766d616a796378646737346b6562727237766566356976676174646261777467356b34716564326f6133657932336e6b612e617277656176652e6e65742f4f5a465741546756786d5f785241786a2d7043395255774a6a4343307a64567942423663445a4d61323151225d2c6578706563746564486173683a2239323734626263656338643936313638363236633733326235643331633737356161386366623765616130353939626563306331373539303861326331636532227d2c676c74664c6f616465723a7b757269733a5b2268747470733a2f2f63646e2e6a7364656c6976722e6e65742f6e706d2f746872656540302e3132382e302f6578616d706c65732f6a732f6c6f61646572732f474c54464c6f616465722e6a73222c2268747470733a2f2f756e706b672e636f6d2f746872656540302e3132382e302f6578616d706c65732f6a732f6c6f61646572732f474c54464c6f616465722e6a73222c2268747470733a2f2f676174657761792e6c69676874686f7573652e73746f726167652f697066732f62616679626569646b766d6873696463726b713435626e6366326c6679696573737a793464336362677361726771637976737335686d6d6b7a68792f474c54464c6f616465722e6a73222c2268747470733a2f2f646376653666346c62796a703567757478667037666f356c76753471637868696c6e657432686662756b356179643478787771712e617277656176652e6e65742f474b70504634734f457636616b376c663872757272546b42584f6862535430636f614b3644412d58766145225d2c6578706563746564486173683a2235633135393637626138333039313861396361656136333338373132633939346333353462636364346564633435363962646534313163336563303661336536227d2c6f72626974436f6e74726f6c733a7b757269733a5b2268747470733a2f2f63646e2e6a7364656c6976722e6e65742f6e706d2f746872656540302e3132382e302f6578616d706c65732f6a732f636f6e74726f6c732f4f72626974436f6e74726f6c732e6a73222c2268747470733a2f2f756e706b672e636f6d2f746872656540302e3132382e302f6578616d706c65732f6a732f636f6e74726f6c732f4f72626974436f6e74726f6c732e6a73222c2268747470733a2f2f676174657761792e6c69676874686f7573652e73746f726167652f697066732f62616679626569646b766d6873696463726b713435626e6366326c6679696573737a793464336362677361726771637976737335686d6d6b7a68792f4f72626974436f6e74726f6c732e6a73222c2268747470733a2f2f63347937766c6b78696c63783770367a7379333679737a7363726969636472367a646a35776570626878346c37797377336e76612e617277656176652e6e65742f467a48367256644378582d5f325a59333745737946464342446a37493039735234543334762d4a5732326f225d2c6578706563746564486173683a2230326262346164653731306633653630373332396533376132316630393862633361633730656236653333646166386136356537396634646237383565376232227d7d3b636f6e73742064656275673d646f63756d656e742e676574456c656d656e74427949642827646562756727293b64656275672e696e6e657248544d4c3d2745787065637465643a272b6578706563746564486173682b273c62723e555249733a272b6d65646961557269732e6c656e6774682b273c62723e436865636b696e6720617661696c61626c65206d656469612e2e2e273b6c65742074687265656a734c6f616465643d66616c73653b6173796e632066756e6374696f6e206c6f616453637269707446726f6d5552497328757269732c7363726970744e616d652c657870656374656453637269707448617368297b666f72286c657420693d303b69203c20757269732e6c656e6774683b692b2b297b636f6e7374207572693d757269735b695d3b7472797b64656275672e696e6e657248544d4c2b3d273c62723e4c6f6164696e6720272b7363726970744e616d652b272066726f6d3a272b7572692e737562737472696e6728302c3330292b272e2e2e273b636f6e737420726573706f6e73653d6177616974206665746368287572692c7b6d6f64653a27636f7273277d293b696628726573706f6e73652e7374617475733d3d3d323030297b636f6e737420736372697074546578743d617761697420726573706f6e73652e7465787428293b696628657870656374656453637269707448617368202626206578706563746564536372697074486173682e6c656e677468203e2030297b64656275672e696e6e657248544d4c2b3d273c62723e566572696679696e6720272b7363726970744e616d652b2720686173682e2e2e273b636f6e737420656e636f6465723d6e65772054657874456e636f64657228293b636f6e7374207363726970744275666665723d656e636f6465722e656e636f64652873637269707454657874293b636f6e737420686173684865783d61776169742073686132353628736372697074427566666572293b636f6e737420636c65616e45787065637465643d6578706563746564536372697074486173682e7265706c61636528273078272c2727293b6966286861736848657820213d3d636c65616e4578706563746564297b64656275672e696e6e657248544d4c2b3d273c62723e272b7363726970744e616d652b272068617368206d69736d617463682c747279696e67206e65787420555249273b636f6e74696e75653b7d64656275672e696e6e657248544d4c2b3d273c62723e272b7363726970744e616d652b27206861736820766572696669656421273b7d636f6e7374207363726970743d646f63756d656e742e637265617465456c656d656e74282773637269707427293b7363726970742e74657874436f6e74656e743d736372697074546578743b646f63756d656e742e686561642e617070656e644368696c6428736372697074293b64656275672e696e6e657248544d4c2b3d273c62723e272b7363726970744e616d652b27206c6f61646564207375636365737366756c6c79273b72657475726e20747275653b7d7d63617463682865297b64656275672e696e6e657248544d4c2b3d273c62723e272b7363726970744e616d652b27206661696c65642066726f6d2074686973205552493a272b652e6d6573736167653b7d7d64656275672e696e6e657248544d4c2b3d273c62723e4552524f523a436f756c64206e6f74206c6f616420272b7363726970744e616d653b72657475726e2066616c73653b7d6173796e632066756e6374696f6e206c6f616454687265654a5328297b69662874687265656a734c6f616465642972657475726e20747275653b64656275672e696e6e657248544d4c2b3d273c62723e4c6f6164696e672054687265652e6a73206c69627261726965732e2e2e273b636f6e737420636f72654c6f616465643d6177616974206c6f616453637269707446726f6d555249732874687265656a734c69627261726965732e636f72652e757269732c2754687265652e6a7320436f7265272c74687265656a734c69627261726965732e636f72652e657870656374656448617368293b69662821636f72654c6f616465642972657475726e2066616c73653b636f6e737420676c74664c6f616465643d6177616974206c6f616453637269707446726f6d555249732874687265656a734c69627261726965732e676c74664c6f616465722e757269732c27474c54464c6f61646572272c74687265656a734c69627261726965732e676c74664c6f616465722e657870656374656448617368293b69662821676c74664c6f616465642972657475726e2066616c73653b636f6e737420636f6e74726f6c734c6f616465643d6177616974206c6f616453637269707446726f6d555249732874687265656a734c69627261726965732e6f72626974436f6e74726f6c732e757269732c274f72626974436f6e74726f6c73272c74687265656a734c69627261726965732e6f72626974436f6e74726f6c732e657870656374656448617368293b69662821636f6e74726f6c734c6f616465642972657475726e2066616c73653b74687265656a734c6f616465643d747275653b64656275672e696e6e657248544d4c2b3d273c62723e416c6c2054687265652e6a73206c6962726172696573206c6f6164656421273b72657475726e20747275653b7d66756e6374696f6e206465746563744d65646961547970652861727261794275666665722c757269297b636f6e73742075696e743841727261793d6e65772055696e74384172726179286172726179427566666572293b636f6e7374206865616465723d41727261792e66726f6d2875696e743841727261792e736c69636528302c313629292e6d617028623d3e20622e746f537472696e67283136292e706164537461727428322c27302729292e6a6f696e282727293b6966287572692e737461727473576974682827646174613a2729297b636f6e7374206d696d654d617463683d7572692e6d61746368282f646174613a285b5e3b5d2b292f293b6966286d696d654d61746368297b636f6e7374206d696d65547970653d6d696d654d617463685b315d3b6966286d696d65547970652e737461727473576974682827696d6167652f27292972657475726e2027696d616765273b6966286d696d65547970652e737461727473576974682827766964656f2f27292972657475726e2027766964656f273b6966286d696d65547970652e737461727473576974682827617564696f2f27292972657475726e2027617564696f273b6966286d696d65547970653d3d3d27746578742f68746d6c272972657475726e202768746d6c273b6966286d696d65547970653d3d3d276170706c69636174696f6e2f6a736f6e272972657475726e20276a736f6e273b6966286d696d65547970652e737461727473576974682827746578742f27292972657475726e202774657874273b6966286d696d65547970653d3d3d276d6f64656c2f676c74662b6a736f6e272972657475726e20273364273b7d7d6966286865616465722e73746172747357697468282766666438666627292972657475726e2027696d616765273b6966286865616465722e73746172747357697468282738393530346534372729297b72657475726e2027696d616765273b7d6966286865616465722e737461727473576974682827343734393436333827292972657475726e2027696d616765273b6966286865616465722e7374617274735769746828273532343934363436272926262075696e743841727261795b385d3d3d3d307835372026262075696e743841727261795b395d3d3d3d307834352026262075696e743841727261795b31305d3d3d3d307834322026262075696e743841727261795b31315d3d3d3d307835302972657475726e2027696d616765273b6966286865616465722e737461727473576974682827303030303030323036363734373937303631373636393636303127297c7c206865616465722e737461727473576974682827303030303030316336363734373937303631373636393636303127292972657475726e2027696d616765273b6966286865616465722e7374617274735769746828273432346427292972657475726e2027696d616765273b6966286865616465722e737461727473576974682827303030303031303027297c7c206865616465722e737461727473576974682827303030303032303027292972657475726e2027696d616765273b6966286865616465722e737461727473576974682827343934393261303027297c7c206865616465722e737461727473576974682827346434643030326127292972657475726e2027696d616765273b6966286865616465722e7374617274735769746828273363336637383664366327297c7c206865616465722e737461727473576974682827336337333736363727292972657475726e2027696d616765273b6966286865616465722e696e636c7564657328273636373437393730366437303334333227297c7c206865616465722e696e636c7564657328273636373437393730366437303334333127297c7c206865616465722e696e636c7564657328273636373437393730363937333666366427292972657475726e2027766964656f273b6966286865616465722e737461727473576974682827343634633536303127292972657475726e2027766964656f273b6966286865616465722e73746172747357697468282731613435646661332729297b636f6e737420657874656e6465644865616465723d41727261792e66726f6d2875696e743841727261792e736c69636528302c32303029292e6d617028623d3e20622e746f537472696e67283136292e706164537461727428322c27302729292e6a6f696e282727293b696628657874656e6465644865616465722e696e636c756465732827353635303338333027297c7c20657874656e6465644865616465722e696e636c756465732827353635303339333027297c7c20657874656e6465644865616465722e696e636c7564657328273431353633312729297b72657475726e2027766964656f273b7d656c736520696628657874656e6465644865616465722e696e636c75646573282735363666373236323639373327297c7c20657874656e6465644865616465722e696e636c75646573282734663730373537332729297b72657475726e2027617564696f273b7d72657475726e2027766964656f273b7d6966286865616465722e7374617274735769746828273532343934363436272926262075696e743841727261795b385d3d3d3d307834312026262075696e743841727261795b395d3d3d3d307835362026262075696e743841727261795b31305d3d3d3d307834392026262075696e743841727261795b31315d3d3d3d307832302972657475726e2027766964656f273b6966286865616465722e696e636c7564657328273636373437393730373137343230323027297c7c206865616465722e696e636c756465732827366436663666373627292972657475726e2027766964656f273b6966286865616465722e696e636c75646573282736363734373937303333363737303227297c7c206865616465722e696e636c75646573282736363734373937303333363737303327292972657475726e2027766964656f273b6966286865616465722e737461727473576974682827303030303031626127297c7c206865616465722e737461727473576974682827303030303031623327292972657475726e2027766964656f273b6966286865616465722e7374617274735769746828273466363736373533272926262075696e743841727261792e736c6963652832382c3335292e696e636c7564657328307837342c307836382c307836352c307836662c307837322c30783631292972657475726e2027766964656f273b6966286865616465722e73746172747357697468282734393434333327297c7c206865616465722e7374617274735769746828276666663327297c7c206865616465722e7374617274735769746828276666663227292972657475726e2027617564696f273b6966286865616465722e737461727473576974682827346636373637353327292972657475726e2027617564696f273b6966286865616465722e7374617274735769746828273532343934363436272926262075696e743841727261795b385d3d3d3d307835372026262075696e743841727261795b395d3d3d3d307834312026262075696e743841727261795b31305d3d3d3d307835362026262075696e743841727261795b31315d3d3d3d307834352972657475726e2027617564696f273b6966286865616465722e737461727473576974682827363634633631343327292972657475726e2027617564696f273b6966286865616465722e696e636c7564657328273636373437393727292626286865616465722e696e636c756465732827346433343431323027297c7c206865616465722e696e636c756465732827346433343431323027297c7c206865616465722e696e636c7564657328273639373336663664272929297b636f6e73742066756c6c4865616465723d41727261792e66726f6d2875696e743841727261792e736c69636528302c363429292e6d617028623d3e20622e746f537472696e67283136292e706164537461727428322c27302729292e6a6f696e282727293b69662866756c6c4865616465722e696e636c756465732827366437303334363127297c7c2066756c6c4865616465722e696e636c756465732827346433343431323027297c7c202166756c6c4865616465722e696e636c75646573282736313736363333312729297b72657475726e2027617564696f273b7d7d6966286865616465722e737461727473576974682827363736633534343627292972657475726e20273364273b636f6e73742074657874436f6e74656e743d6e657720546578744465636f64657228292e6465636f64652875696e743841727261792e736c69636528302c32303029293b69662874657874436f6e74656e742e696e636c75646573282722617373657422272926262074657874436f6e74656e742e696e636c7564657328272276657273696f6e22272926262074657874436f6e74656e742e696e636c7564657328272267656e657261746f722227292972657475726e20273364273b7472797b636f6e737420746578743d6e657720546578744465636f64657228292e6465636f6465286172726179427566666572293b696628746578742e7472696d28292e7374617274735769746828277b2729262620746578742e7472696d28292e656e64735769746828277d2729297b4a534f4e2e70617273652874657874293b72657475726e20276a736f6e273b7d696628746578742e696e636c7564657328273c68746d6c27297c7c20746578742e696e636c7564657328273c21444f435459504527292972657475726e202768746d6c273b72657475726e202774657874273b7d63617463682865297b7d72657475726e2027756e6b6e6f776e273b7d6173796e632066756e6374696f6e2063616c63756c61746548617368286172726179427566666572297b7472797b72657475726e20617761697420736861323536286172726179427566666572293b7d63617463682865297b64656275672e696e6e657248544d4c2b3d273c62723e48617368206572726f723a272b652e6d6573736167653b72657475726e206e756c6c3b7d7d66756e6374696f6e2072656e646572496d616765287572692c6172726179427566666572297b636f6e737420636f6e74656e743d646f63756d656e742e676574456c656d656e74427949642827636f6e74656e7427293b636f6e73742073746167653d646f63756d656e742e637265617465456c656d656e74282764697627293b73746167652e636c6173734e616d653d277374616765273b636f6e73742070616e7a6f6f6d3d646f63756d656e742e637265617465456c656d656e74282764697627293b70616e7a6f6f6d2e636c6173734e616d653d2770616e7a6f6f6d273b636f6e737420696d673d646f63756d656e742e637265617465456c656d656e742827696d6727293b696d672e7372633d7572693b6c6574207363616c653d312c6d696e5363616c653d312c783d302c793d303b636f6e7374207a6f6f6d466163746f72733d5b312c322c335d3b6c6574207a6f6f6d496e6465783d303b66756e6374696f6e20636c616d70506f736974696f6e28297b636f6e73742073773d73746167652e636c69656e7457696474682c73683d73746167652e636c69656e744865696768743b636f6e73742069773d696d672e6e61747572616c5769647468207c7c20302c69683d696d672e6e61747572616c486569676874207c7c20303b636f6e73742064773d69772a7363616c652c64683d69682a7363616c653b6966286477203c3d7377297b783d4d6174682e726f756e64282873772d6477292f32293b7d656c73657b69662878203e203029783d303b69662878203c2073772d647729783d4d6174682e726f756e642873772d6477293b7d6966286468203c3d7368297b793d4d6174682e726f756e64282873682d6468292f32293b7d656c73657b69662879203e203029793d303b69662879203c2073682d646829793d4d6174682e726f756e642873682d6468293b7d7d66756e6374696f6e206170706c795472616e73666f726d28297b636c616d70506f736974696f6e28293b70616e7a6f6f6d2e7374796c652e7472616e73666f726d3d277472616e736c61746528272b782b2770782c272b792b277078297363616c6528272b7363616c652b2729273b7d66756e6374696f6e207365745a6f6f6d417428666163746f722c63782c6379297b636f6e7374206e65775363616c653d4d6174682e6d6178286d696e5363616c652c4d6174682e6d696e2831302c6d696e5363616c652a666163746f7229293b636f6e7374206b3d6e65775363616c652f7363616c653b783d63782d2863782d78292a6b3b793d63792d2863792d79292a6b3b7363616c653d6e65775363616c653b6170706c795472616e73666f726d28293b7d696d672e6f6e6c6f61643d28293d3e7b636f6e73742073773d73746167652e636c69656e7457696474682c73683d73746167652e636c69656e744865696768743b636f6e73742069773d696d672e6e61747572616c57696474682c69683d696d672e6e61747572616c4865696768743b6d696e5363616c653d4d6174682e6d696e2873772f69772c73682f6968293b7363616c653d6d696e5363616c653b783d4d6174682e726f756e64282873772d69772a7363616c65292f32293b793d4d6174682e726f756e64282873682d69682a7363616c65292f32293b6170706c795472616e73666f726d28293b70616e7a6f6f6d2e7374796c652e7669736962696c6974793d2776697369626c65273b64656275672e7374796c652e646973706c61793d276e6f6e65273b7d3b6c657420697350616e6e696e673d66616c73652c7374617274583d302c7374617274593d302c737461727454583d302c737461727454593d302c6d6f7665643d66616c73653b73746167652e6164644576656e744c697374656e65722827706f696e746572646f776e272c2865293d3e7b697350616e6e696e673d747275653b6d6f7665643d66616c73653b7374617274583d652e636c69656e74583b7374617274593d652e636c69656e74593b737461727454583d783b737461727454593d793b73746167652e736574506f696e7465724361707475726528652e706f696e7465724964293b73746167652e636c6173734c6973742e61646428276772616262696e6727293b7d293b73746167652e6164644576656e744c697374656e65722827706f696e7465726d6f7665272c2865293d3e7b69662821697350616e6e696e672972657475726e3b636f6e73742064783d652e636c69656e74582d7374617274583b636f6e73742064793d652e636c69656e74592d7374617274593b6966284d6174682e616273286478293e2032207c7c204d6174682e616273286479293e2032296d6f7665643d747275653b783d737461727454582b64783b793d737461727454592b64793b6170706c795472616e73666f726d28293b7d293b636f6e737420656e6450616e3d2865293d3e7b69662821697350616e6e696e672972657475726e3b697350616e6e696e673d66616c73653b73746167652e72656c65617365506f696e7465724361707475726528652e706f696e7465724964293b73746167652e636c6173734c6973742e72656d6f766528276772616262696e6727293b7d3b73746167652e6164644576656e744c697374656e65722827706f696e7465727570272c2865293d3e7b636f6e737420726563743d73746167652e676574426f756e64696e67436c69656e745265637428293b636f6e73742063783d652e636c69656e74582d726563742e6c6566743b636f6e73742063793d652e636c69656e74592d726563742e746f703b636f6e7374207761734d6f7665643d6d6f7665643b656e6450616e2865293b696628217761734d6f766564297b7a6f6f6d496e6465783d287a6f6f6d496e6465782b312925207a6f6f6d466163746f72732e6c656e6774683b7365745a6f6f6d4174287a6f6f6d466163746f72735b7a6f6f6d496e6465785d2c63782c6379293b7d7d293b73746167652e6164644576656e744c697374656e65722827706f696e74657263616e63656c272c656e6450616e293b73746167652e6164644576656e744c697374656e65722827776865656c272c2865293d3e7b652e70726576656e7444656661756c7428293b636f6e737420726563743d73746167652e676574426f756e64696e67436c69656e745265637428293b636f6e73742063783d652e636c69656e74582d726563742e6c6566743b636f6e73742063793d652e636c69656e74592d726563742e746f703b636f6e7374207a6f6f6d3d4d6174682e657870282d652e64656c7461592a302e30303135293b636f6e7374206e65775363616c653d4d6174682e6d6178286d696e5363616c652c4d6174682e6d696e2831302c7363616c652a7a6f6f6d29293b636f6e7374206b3d6e65775363616c652f7363616c653b783d63782d2863782d78292a6b3b793d63792d2863792d79292a6b3b7363616c653d6e65775363616c653b6170706c795472616e73666f726d28293b7d2c7b706173736976653a66616c73657d293b77696e646f772e6164644576656e744c697374656e65722827726573697a65272c28293d3e7b636f6e73742073773d73746167652e636c69656e7457696474682c73683d73746167652e636c69656e744865696768743b636f6e73742069773d696d672e6e61747572616c57696474682c69683d696d672e6e61747572616c4865696768743b636f6e7374206e65774d696e3d4d6174682e6d696e2873772f69772c73682f6968293b6d696e5363616c653d6e65774d696e3b6966287363616c65203c206d696e5363616c65297b7363616c653d6d696e5363616c653b7d6170706c795472616e73666f726d28293b7d293b636f6e74656e742e696e6e657248544d4c3d27273b636f6e74656e742e617070656e644368696c64287374616765293b73746167652e617070656e644368696c642870616e7a6f6f6d293b70616e7a6f6f6d2e617070656e644368696c6428696d67293b7d66756e6374696f6e2072656e646572566964656f28757269297b636f6e737420636f6e74656e743d646f63756d656e742e676574456c656d656e74427949642827636f6e74656e7427293b636f6e737420636f6e7461696e65723d646f63756d656e742e637265617465456c656d656e74282764697627293b636f6e7461696e65722e636c6173734e616d653d276d656469612d636f6e7461696e6572273b636f6e737420766964656f3d646f63756d656e742e637265617465456c656d656e742827766964656f27293b766964656f2e636c6173734e616d653d27766964656f2d706c61796572273b766964656f2e7372633d7572693b766964656f2e636f6e74726f6c733d747275653b766964656f2e6175746f706c61793d66616c73653b766964656f2e7374796c652e6d617857696474683d2731303025273b766964656f2e7374796c652e6d61784865696768743d2731303025273b636f6e7461696e65722e617070656e644368696c6428766964656f293b636f6e74656e742e696e6e657248544d4c3d27273b636f6e74656e742e617070656e644368696c6428636f6e7461696e6572293b64656275672e7374796c652e646973706c61793d276e6f6e65273b7d66756e6374696f6e2072656e646572417564696f28757269297b636f6e737420636f6e74656e743d646f63756d656e742e676574456c656d656e74427949642827636f6e74656e7427293b636f6e737420636f6e7461696e65723d646f63756d656e742e637265617465456c656d656e74282764697627293b636f6e7461696e65722e636c6173734e616d653d276d656469612d636f6e7461696e6572273b636f6e737420617564696f3d646f63756d656e742e637265617465456c656d656e742827617564696f27293b617564696f2e636c6173734e616d653d27617564696f2d706c61796572273b617564696f2e7372633d7572693b617564696f2e636f6e74726f6c733d747275653b617564696f2e7374796c652e77696474683d2731303025273b636f6e7461696e65722e617070656e644368696c6428617564696f293b636f6e74656e742e696e6e657248544d4c3d27273b636f6e74656e742e617070656e644368696c6428636f6e7461696e6572293b64656275672e7374796c652e646973706c61793d276e6f6e65273b7d6173796e632066756e6374696f6e2072656e6465723344287572692c6172726179427566666572297b636f6e737420636f6e74656e743d646f63756d656e742e676574456c656d656e74427949642827636f6e74656e7427293b636f6e737420636f6e7461696e65723d646f63756d656e742e637265617465456c656d656e74282764697627293b636f6e7461696e65722e636c6173734e616d653d2774687265656a732d636f6e7461696e6572273b636f6e7461696e65722e696e6e657248544d4c3d273c64697620636c6173733d226c6f6164696e67223e4c6f6164696e67203344206d6f64656c2e2e2e3c2f6469763e273b636f6e737420636f6e74726f6c733d646f63756d656e742e637265617465456c656d656e74282764697627293b636f6e74726f6c732e636c6173734e616d653d2774687265656a732d636f6e74726f6c73273b636f6e74726f6c732e696e6e657248544d4c3d274c6f6164696e672054687265652e6a73206c69627261726965732e2e2e273b636f6e74656e742e696e6e657248544d4c3d27273b636f6e74656e742e617070656e644368696c6428636f6e7461696e6572293b636f6e74656e742e617070656e644368696c6428636f6e74726f6c73293b636f6e7374206c6f616465643d6177616974206c6f616454687265654a5328293b696628216c6f61646564297b636f6e7461696e65722e696e6e657248544d4c3d273c64697620636c6173733d226572726f72223e4661696c656420746f206c6f61642054687265652e6a73206c69627261726965733c62723e436865636b20636f6e736f6c6520666f722064657461696c733c2f6469763e273b72657475726e3b7d636f6e74726f6c732e696e6e657248544d4c3d274d6f7573653a526f74617465207c20576865656c3a5a6f6f6d207c2052696768742d636c69636b3a50616e273b7472797b636f6e7374207363656e653d6e65772054485245452e5363656e6528293b7363656e652e6261636b67726f756e643d6e65772054485245452e436f6c6f72283078303030303030293b636f6e73742063616d6572613d6e65772054485245452e506572737065637469766543616d6572612837352c77696e646f772e696e6e657257696474682f77696e646f772e696e6e65724865696768742c302e312c31303030293b636f6e73742072656e64657265723d6e65772054485245452e576562474c52656e6465726572287b616e7469616c6961733a747275657d293b72656e64657265722e73657453697a652877696e646f772e696e6e657257696474682c77696e646f772e696e6e6572486569676874293b72656e64657265722e736861646f774d61702e656e61626c65643d747275653b72656e64657265722e736861646f774d61702e747970653d54485245452e504346536f6674536861646f774d61703b636f6e7461696e65722e696e6e657248544d4c3d27273b636f6e7461696e65722e617070656e644368696c642872656e64657265722e646f6d456c656d656e74293b636f6e737420616d6269656e744c696768743d6e65772054485245452e416d6269656e744c696768742830783430343034302c302e36293b7363656e652e61646428616d6269656e744c69676874293b636f6e737420646972656374696f6e616c4c696768743d6e65772054485245452e446972656374696f6e616c4c696768742830786666666666662c302e38293b646972656374696f6e616c4c696768742e706f736974696f6e2e7365742831302c31302c35293b646972656374696f6e616c4c696768742e63617374536861646f773d747275653b7363656e652e61646428646972656374696f6e616c4c69676874293b636f6e7374206f72626974436f6e74726f6c733d6e65772054485245452e4f72626974436f6e74726f6c732863616d6572612c72656e64657265722e646f6d456c656d656e74293b6f72626974436f6e74726f6c732e656e61626c6544616d70696e673d747275653b6f72626974436f6e74726f6c732e64616d70696e67466163746f723d302e30353b636f6e73742075696e743841727261793d6e65772055696e74384172726179286172726179427566666572293b636f6e7374206973474c423d75696e743841727261795b305d3d3d3d307836372026262075696e743841727261795b315d3d3d3d307836432026262075696e743841727261795b325d3d3d3d307835342026262075696e743841727261795b335d3d3d3d307834363b696628216973474c42297b7472797b636f6e737420676c7466546578743d6e657720546578744465636f64657228292e6465636f6465286172726179427566666572293b636f6e737420676c74664a736f6e3d4a534f4e2e706172736528676c746654657874293b696628676c74664a736f6e2e6275666665727320262620676c74664a736f6e2e627566666572732e736f6d65286275666665723d3e206275666665722e75726920262620216275666665722e7572692e737461727473576974682827646174613a272929297b636f6e7461696e65722e696e6e657248544d4c3d273c64697620636c6173733d226572726f72223e474c544620776974682065787465726e616c2066696c6573206e6f7420737570706f727465643c62723e506c656173652075736520474c422862696e61727929666f726d6174206f7220656d62656464656420474c54463c2f6469763e273b72657475726e3b7d7d63617463682865297b636f6e7461696e65722e696e6e657248544d4c3d273c64697620636c6173733d226572726f72223e496e76616c696420474c54462066696c6520666f726d61743c2f6469763e273b72657475726e3b7d7d636f6e7374206c6f616465723d6e65772054485245452e474c54464c6f6164657228293b636f6e737420626c6f623d6e657720426c6f62285b61727261794275666665725d2c7b747970653a6973474c42203f20276d6f64656c2f676c74662d62696e617279273a276d6f64656c2f676c74662b6a736f6e277d293b636f6e737420626c6f6255726c3d55524c2e6372656174654f626a65637455524c28626c6f62293b6c6f616465722e6c6f616428626c6f6255726c2c66756e6374696f6e28676c7466297b636f6e7374206d6f64656c3d676c74662e7363656e653b696628216d6f64656c207c7c206d6f64656c2e6368696c6472656e2e6c656e6774683d3d3d30297b636f6e7461696e65722e696e6e657248544d4c3d273c64697620636c6173733d226572726f72223e4e6f2033442067656f6d6574727920666f756e6420696e206d6f64656c3c2f6469763e273b55524c2e7265766f6b654f626a65637455524c28626c6f6255726c293b72657475726e3b7d7363656e652e616464286d6f64656c293b636f6e737420626f783d6e65772054485245452e426f783328292e73657446726f6d4f626a656374286d6f64656c293b636f6e73742063656e7465723d626f782e67657443656e746572286e65772054485245452e566563746f72332829293b636f6e73742073697a653d626f782e67657453697a65286e65772054485245452e566563746f72332829293b636f6e7374206d617844696d3d4d6174682e6d61782873697a652e782c73697a652e792c73697a652e7a293b6966286d617844696d203e2030297b636f6e7374207363616c653d322f6d617844696d3b6d6f64656c2e7363616c652e7365745363616c6172287363616c65293b6d6f64656c2e706f736974696f6e2e7375622863656e7465722e6d756c7469706c795363616c6172287363616c6529293b7d63616d6572612e706f736974696f6e2e73657428302c302c33293b63616d6572612e6c6f6f6b417428302c302c30293b55524c2e7265766f6b654f626a65637455524c28626c6f6255726c293b636f6e74726f6c732e696e6e657248544d4c3d274d6f7573653a526f74617465207c20576865656c3a5a6f6f6d207c2052696768742d636c69636b3a50616e273b7d2c66756e6374696f6e2870726f6772657373297b69662870726f67726573732e746f74616c203e2030297b636f6e73742070657263656e743d4d6174682e726f756e64282870726f67726573732e6c6f616465642f70726f67726573732e746f74616c292a313030293b636f6e74726f6c732e696e6e657248544d4c3d274c6f6164696e67203344206d6f64656c3a272b70657263656e742b2725273b7d7d2c66756e6374696f6e286572726f72297b636f6e736f6c652e6572726f7228274572726f72206c6f6164696e67203344206d6f64656c3a272c6572726f72293b55524c2e7265766f6b654f626a65637455524c28626c6f6255726c293b6c6574206572726f724d6573736167653d274572726f72206c6f6164696e67203344206d6f64656c273b6966286572726f722e6d6573736167652e696e636c7564657328276275666665722729297b6572726f724d6573736167653d274d6f64656c207265666572656e6365732065787465726e616c2066696c65733c62723e55736520474c4220666f726d617420666f722073656c662d636f6e7461696e6564206d6f64656c73273b7d656c7365206966286572726f722e6d6573736167652e696e636c7564657328274a534f4e2729297b6572726f724d6573736167653d27496e76616c696420474c544620666f726d61743c62723e436865636b2066696c6520737472756374757265273b7d636f6e7461696e65722e696e6e657248544d4c3d273c64697620636c6173733d226572726f72223e272b6572726f724d6573736167652b273c2f6469763e273b7d293b66756e6374696f6e20616e696d61746528297b72657175657374416e696d6174696f6e4672616d6528616e696d617465293b6f72626974436f6e74726f6c732e75706461746528293b72656e64657265722e72656e646572287363656e652c63616d657261293b7d616e696d61746528293b77696e646f772e6164644576656e744c697374656e65722827726573697a65272c28293d3e7b63616d6572612e6173706563743d77696e646f772e696e6e657257696474682f77696e646f772e696e6e65724865696768743b63616d6572612e75706461746550726f6a656374696f6e4d617472697828293b72656e64657265722e73657453697a652877696e646f772e696e6e657257696474682c77696e646f772e696e6e6572486569676874293b7d293b7d6361746368286572726f72297b636f6e736f6c652e6572726f72282754687265652e6a7320696e697469616c697a6174696f6e206572726f723a272c6572726f72293b636f6e7461696e65722e696e6e657248544d4c3d273c64697620636c6173733d226572726f72223e54687265652e6a73206e6f7420617661696c61626c653c62723e3344206d6f64656c7320726571756972652054687265652e6a73206c6962726172793c2f6469763e273b7d64656275672e7374796c652e646973706c61793d276e6f6e65273b7d66756e6374696f6e2072656e64657248544d4c286172726179427566666572297b636f6e737420636f6e74656e743d646f63756d656e742e676574456c656d656e74427949642827636f6e74656e7427293b636f6e73742068746d6c436f6e74656e743d6e657720546578744465636f64657228292e6465636f6465286172726179427566666572293b64656275672e7374796c652e646973706c61793d276e6f6e65273b636f6e737420696672616d653d646f63756d656e742e637265617465456c656d656e742827696672616d6527293b696672616d652e636c6173734e616d653d2768746d6c2d766965776572273b696672616d652e737263646f633d68746d6c436f6e74656e743b696672616d652e73616e64626f783d27616c6c6f772d7363726970747320616c6c6f772d73616d652d6f726967696e20616c6c6f772d666f726d7320616c6c6f772d706f7075707320616c6c6f772d6d6f64616c73273b696672616d652e7374796c652e706f736974696f6e3d276669786564273b696672616d652e7374796c652e746f703d2730273b696672616d652e7374796c652e6c6566743d2730273b696672616d652e7374796c652e77696474683d273130307677273b696672616d652e7374796c652e6865696768743d273130307668273b696672616d652e7374796c652e626f726465723d276e6f6e65273b696672616d652e7374796c652e7a496e6465783d2739393939273b696672616d652e7374796c652e6261636b67726f756e643d277768697465273b646f63756d656e742e626f64792e696e6e657248544d4c3d27273b646f63756d656e742e626f64792e617070656e644368696c6428696672616d65293b646f63756d656e742e626f64792e7374796c652e6d617267696e3d2730273b646f63756d656e742e626f64792e7374796c652e70616464696e673d2730273b646f63756d656e742e626f64792e7374796c652e6f766572666c6f773d2768696464656e273b7d66756e6374696f6e2072656e64657254657874286172726179427566666572297b636f6e737420636f6e74656e743d646f63756d656e742e676574456c656d656e74427949642827636f6e74656e7427293b636f6e73742074657874436f6e74656e743d6e657720546578744465636f64657228292e6465636f6465286172726179427566666572293b636f6e7374207669657765723d646f63756d656e742e637265617465456c656d656e74282764697627293b7669657765722e636c6173734e616d653d27746578742d766965776572273b7669657765722e74657874436f6e74656e743d74657874436f6e74656e743b636f6e74656e742e696e6e657248544d4c3d27273b636f6e74656e742e617070656e644368696c6428766965776572293b64656275672e7374796c652e646973706c61793d276e6f6e65273b7d66756e6374696f6e2072656e6465724a534f4e286172726179427566666572297b636f6e737420636f6e74656e743d646f63756d656e742e676574456c656d656e74427949642827636f6e74656e7427293b636f6e7374206a736f6e546578743d6e657720546578744465636f64657228292e6465636f6465286172726179427566666572293b7472797b636f6e7374206a736f6e4f626a3d4a534f4e2e7061727365286a736f6e54657874293b636f6e737420666f726d61747465643d4a534f4e2e737472696e67696679286a736f6e4f626a2c6e756c6c2c32293b636f6e7374207669657765723d646f63756d656e742e637265617465456c656d656e74282764697627293b7669657765722e636c6173734e616d653d27746578742d766965776572206a736f6e2d766965776572273b636f6e737420686967686c6967687465643d666f726d61747465642e7265706c616365282f22285b5e225d2b29223a2f672c273c7370616e20636c6173733d226a736f6e2d6b6579223e222431223c2f7370616e3e3a27292e7265706c616365282f3a22285b5e225d2a29222f672c273a3c7370616e20636c6173733d226a736f6e2d737472696e67223e222431223c2f7370616e3e27292e7265706c616365282f3a285c642b292f672c273a3c7370616e20636c6173733d226a736f6e2d6e756d626572223e24313c2f7370616e3e27292e7265706c616365282f3a28747275657c66616c7365292f672c273a3c7370616e20636c6173733d226a736f6e2d626f6f6c65616e223e24313c2f7370616e3e27292e7265706c616365282f3a6e756c6c2f672c273a3c7370616e20636c6173733d226a736f6e2d6e756c6c223e6e756c6c3c2f7370616e3e27293b7669657765722e696e6e657248544d4c3d686967686c6967687465643b636f6e74656e742e696e6e657248544d4c3d27273b636f6e74656e742e617070656e644368696c6428766965776572293b7d63617463682865297b72656e64657254657874286172726179427566666572293b7d64656275672e7374796c652e646973706c61793d276e6f6e65273b7d6173796e632066756e6374696f6e206c6f61644d6564696128297b636f6e737420636f6e74656e743d646f63756d656e742e676574456c656d656e74427949642827636f6e74656e7427293b666f72286c657420693d303b69203c206d65646961557269732e6c656e6774683b692b2b297b636f6e7374207572693d6d65646961557269735b695d3b7472797b64656275672e696e6e657248544d4c2b3d273c62723e547279696e673a272b7572692e737562737472696e6728302c3330292b272e2e2e273b636f6e737420726573706f6e73653d6177616974206665746368287572692c7b6d6f64653a27636f7273277d293b64656275672e696e6e657248544d4c2b3d273c62723e5374617475733a272b726573706f6e73652e7374617475733b696628726573706f6e73652e7374617475733d3d3d323030297b636f6e73742061727261794275666665723d617761697420726573706f6e73652e617272617942756666657228293b64656275672e696e6e657248544d4c2b3d273c62723e53697a653a272b61727261794275666665722e627974654c656e6774683b69662821657870656374656448617368207c7c206578706563746564486173682e6c656e6774683d3d3d30297b64656275672e696e6e657248544d4c2b3d273c62723e4e4f20455850454354454420484153482d43616e6e6f7420766572696679273b636f6e74696e75653b7d636f6e73742066696c6553697a654d423d2861727261794275666665722e627974654c656e6774682f28313032342a3130323429292e746f46697865642831293b64656275672e696e6e657248544d4c2b3d273c62723e48617368696e6720272b66696c6553697a654d422b274d422066696c652e2e2e273b636f6e737420686173684865783d61776169742063616c63756c61746548617368286172726179427566666572293b6966282168617368486578297b64656275672e696e6e657248544d4c2b3d273c62723e486173682063616c63756c6174696f6e206661696c6564273b636f6e74696e75653b7d64656275672e696e6e657248544d4c2b3d273c62723e486173683a272b686173684865782e737562737472696e6728302c3136292b272e2e2e273b636f6e737420636c65616e45787065637465643d6578706563746564486173682e7265706c61636528273078272c2727293b696628686173684865783d3d3d636c65616e4578706563746564297b64656275672e696e6e657248544d4c2b3d273c62723e48415348204d4154434821204c6f6164696e672e2e2e273b636f6e7374206d65646961547970653d6465746563744d65646961547970652861727261794275666665722c757269293b64656275672e696e6e657248544d4c2b3d273c62723e4d6564696120747970653a272b6d65646961547970653b737769746368286d6564696154797065297b636173652027696d616765273a72656e646572496d616765287572692c6172726179427566666572293b627265616b3b636173652027766964656f273a72656e646572566964656f28757269293b627265616b3b636173652027617564696f273a72656e646572417564696f28757269293b627265616b3b6361736520273364273a72656e6465723344287572692c6172726179427566666572293b627265616b3b63617365202768746d6c273a72656e64657248544d4c286172726179427566666572293b627265616b3b6361736520276a736f6e273a72656e6465724a534f4e286172726179427566666572293b627265616b3b63617365202774657874273a72656e64657254657874286172726179427566666572293b627265616b3b64656661756c743a636f6e74656e742e696e6e657248544d4c3d273c64697620636c6173733d226572726f72223e556e737570706f72746564206d6564696120747970653a272b6d65646961547970652b273c2f6469763e273b64656275672e7374796c652e646973706c61793d276e6f6e65273b7d72657475726e3b7d656c73657b64656275672e696e6e657248544d4c2b3d273c62723e48617368206d69736d61746368273b7d7d7d63617463682865297b64656275672e696e6e657248544d4c2b3d273c62723e4572726f723a272b652e6d6573736167653b7d7d636f6e74656e742e696e6e657248544d4c3d274e6f206d656469612077697468206d61746368696e67206861736820666f756e642e20416c6c206d65646961206661696c6564206861736820766572696669636174696f6e2e273b7d6c6f61644d6564696128293b3c2f7363726970743e3c2f626f64793e3c2f68746d6c3e000000000000000000000000000000000000000000000000000000