Address Details
contract
token

0xAcA7148642d2C634b318ff36d14764f8Bde4dc95

Token
Revo FP Token (RFP)
Creator
0xff0944–49a35b at 0x0e00da–b5e9c7
Balance
0 CELO ( )
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
70 Transactions
Transfers
417 Transfers
Gas Used
3,780,854
Last Balance Update
27724100

Contract Creation Code

Verify & Publish
0x6080604052612710600a556063600b556064600c553480156200002157600080fd5b506040516200744d3803806200744d83398181016040528101906200004791906200090d565b888887878787878787878787846040518060400160405280600d81526020017f5265766f20465020546f6b656e00000000000000000000000000000000000000815250818160039080519060200190620000a392919062000706565b508060049080519060200190620000bc92919062000706565b5050506000600660006101000a81548160ff02191690831515021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001b26000801b866200058b60201b60201c565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe7442843a65013dba5eebc77d5a00f5fafa588af0da4bf39250936d4783bb5536000801b60405162000214919062000a29565b60405180910390a3505050505060005b8451811015620002e85760138582815181106200026a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080620002df9062000bbe565b91505062000224565b5082600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d457600080fd5b505afa158015620003e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040f9190620008e1565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015620004b857600080fd5b505afa158015620004cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f39190620008e1565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505086601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505062000cc4565b6200059d8282620005a160201b60201c565b5050565b620005b382826200069360201b60201c565b6200068f5760016005600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000634620006fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006005600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b828054620007149062000b52565b90600052602060002090601f01602090048101928262000738576000855562000784565b82601f106200075357805160ff191683800117855562000784565b8280016001018555821562000784579182015b828111156200078357825182559160200191906001019062000766565b5b50905062000793919062000797565b5090565b5b80821115620007b257600081600090555060010162000798565b5090565b6000620007cd620007c78462000a6f565b62000a46565b90508083825260208201905082856020860282011115620007ed57600080fd5b60005b8581101562000821578162000806888262000870565b845260208401935060208301925050600181019050620007f0565b5050509392505050565b6000620008426200083c8462000a9e565b62000a46565b9050828152602081018484840111156200085b57600080fd5b6200086884828562000b1c565b509392505050565b600081519050620008818162000caa565b92915050565b600082601f8301126200089957600080fd5b8151620008ab848260208601620007b6565b91505092915050565b600082601f830112620008c657600080fd5b8151620008d88482602086016200082b565b91505092915050565b600060208284031215620008f457600080fd5b6000620009048482850162000870565b91505092915050565b60008060008060008060008060006101208a8c0312156200092d57600080fd5b60006200093d8c828d0162000870565b9950506020620009508c828d0162000870565b9850506040620009638c828d0162000870565b9750506060620009768c828d0162000870565b9650506080620009898c828d0162000870565b95505060a08a015167ffffffffffffffff811115620009a757600080fd5b620009b58c828d0162000887565b94505060c0620009c88c828d0162000870565b93505060e0620009db8c828d0162000870565b9250506101008a015167ffffffffffffffff811115620009fa57600080fd5b62000a088c828d01620008b4565b9150509295985092959850929598565b62000a238162000ae8565b82525050565b600060208201905062000a40600083018462000a18565b92915050565b600062000a5262000a65565b905062000a60828262000b88565b919050565b6000604051905090565b600067ffffffffffffffff82111562000a8d5762000a8c62000c6a565b5b602082029050602081019050919050565b600067ffffffffffffffff82111562000abc5762000abb62000c6a565b5b62000ac78262000c99565b9050602081019050919050565b600062000ae18262000af2565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000b3c57808201518184015260208101905062000b1f565b8381111562000b4c576000848401525b50505050565b6000600282049050600182168062000b6b57607f821691505b6020821081141562000b825762000b8162000c3b565b5b50919050565b62000b938262000c99565b810181811067ffffffffffffffff8211171562000bb55762000bb462000c6a565b5b80604052505050565b600062000bcb8262000b12565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000c015762000c0062000c0c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b62000cb58162000ad4565b811462000cc157600080fd5b50565b6167798062000cd46000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c806370a082311161019d578063b6d0dcd8116100e9578063d4840641116100a2578063dd62ed3e1161007c578063dd62ed3e14610900578063f79ed94b14610930578063f84afd481461094e578063fd3865e11461096a576102f1565b8063d4840641146108a8578063d547741f146108c6578063dbae9b0f146108e2576102f1565b8063b6d0dcd8146107d2578063bac385c414610802578063c31c9c071461081e578063c7493abb1461083c578063c838b0741461085a578063c9ce0e8c14610878576102f1565b806391d1485411610156578063a457c2d711610130578063a457c2d71461073a578063a9059cbb1461076a578063abfe2bdb1461079a578063b6b55f25146107b6576102f1565b806391d14854146106ce57806395d89b41146106fe578063a217fddf1461071c576102f1565b806370a082311461063257806372f702f3146106625780637aca573c146106805780638456cb591461069e578063853828b6146106a85780638c00ca9d146106b2576102f1565b80632f2ff15d1161025c5780634a1510b4116102155780635f8e9e91116101ef5780635f8e9e91146105aa57806364b87a70146105da578063684cb274146105f85780636cf3f8df14610616576102f1565b80634a1510b4146105525780635a3746ca146105705780635c975abb1461058c576102f1565b80632f2ff15d146104a4578063313ce567146104c057806336568abe146104de5780633902cbff146104fa57806339509351146105185780633f4ba83a14610548576102f1565b806323b872dd116102ae57806323b872dd146103ce57806324702944146103fe578063248a9ca31461041c57806327b74a5d1461044c5780632e1a7d4d1461046a5780632e5bd7ab14610486576102f1565b806301ffc9a7146102f657806306fdde0314610326578063095ea7b3146103445780630ab8985b14610374578063147bd3af1461039257806318160ddd146103b0575b600080fd5b610310600480360381019061030b9190614b47565b610988565b60405161031d91906153ef565b60405180910390f35b61032e610a02565b60405161033b91906154ac565b60405180910390f35b61035e600480360381019061035991906149bd565b610a94565b60405161036b91906153ef565b60405180910390f35b61037c610ab2565b6040516103899190615425565b60405180910390f35b61039a610ad8565b6040516103a7919061586e565b60405180910390f35b6103b8610ade565b6040516103c5919061586e565b60405180910390f35b6103e860048036038101906103e3919061496e565b610ae8565b6040516103f591906153ef565b60405180910390f35b610406610be9565b6040516104139190615491565b60405180910390f35b61043660048036038101906104319190614ae2565b610c0f565b604051610443919061540a565b60405180910390f35b610454610c2f565b604051610461919061586e565b60405180910390f35b610484600480360381019061047f9190614b70565b610c35565b005b61048e611166565b60405161049b919061586e565b60405180910390f35b6104be60048036038101906104b99190614b0b565b61116c565b005b6104c86111f2565b6040516104d59190615951565b60405180910390f35b6104f860048036038101906104f39190614b0b565b6111fb565b005b61050261127e565b60405161050f919061586e565b60405180910390f35b610532600480360381019061052d91906149bd565b611284565b60405161053f91906153ef565b60405180910390f35b610550611330565b005b61055a61140b565b604051610567919061586e565b60405180910390f35b61058a600480360381019061058591906149f9565b611411565b005b61059461191f565b6040516105a191906153ef565b60405180910390f35b6105c460048036038101906105bf9190614b70565b611936565b6040516105d1919061586e565b60405180910390f35b6105e2611978565b6040516105ef9190615440565b60405180910390f35b61060061199e565b60405161060d919061540a565b60405180910390f35b610630600480360381019061062b9190614909565b6119c2565b005b61064c60048036038101906106479190614909565b611a6e565b604051610659919061586e565b60405180910390f35b61066a611ab6565b6040516106779190615425565b60405180910390f35b610688611adc565b604051610695919061545b565b60405180910390f35b6106a6611b02565b005b6106b0611b1a565b005b6106cc60048036038101906106c79190614bc2565b611b86565b005b6106e860048036038101906106e39190614b0b565b611bf6565b6040516106f591906153ef565b60405180910390f35b610706611c61565b60405161071391906154ac565b60405180910390f35b610724611cf3565b604051610731919061540a565b60405180910390f35b610754600480360381019061074f91906149bd565b611cfa565b60405161076191906153ef565b60405180910390f35b610784600480360381019061077f91906149bd565b611dee565b60405161079191906153ef565b60405180910390f35b6107b460048036038101906107af9190614909565b611e0c565b005b6107d060048036038101906107cb9190614b70565b611eb8565b005b6107ec60048036038101906107e79190614b70565b612101565b6040516107f99190615425565b60405180910390f35b61081c60048036038101906108179190614909565b612140565b005b6108266121ec565b6040516108339190615476565b60405180910390f35b610844612212565b604051610851919061586e565b60405180910390f35b610862612217565b60405161086f919061586e565b60405180910390f35b610892600480360381019061088d9190614b70565b61221d565b60405161089f919061586e565b60405180910390f35b6108b0612259565b6040516108bd919061586e565b60405180910390f35b6108e060048036038101906108db9190614b0b565b61225f565b005b6108ea612280565b6040516108f7919061586e565b60405180910390f35b61091a60048036038101906109159190614932565b612285565b604051610927919061586e565b60405180910390f35b61093861230c565b60405161094591906152cd565b60405180910390f35b61096860048036038101906109639190614909565b612332565b005b61097261244e565b60405161097f9190615425565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109fb57506109fa82612474565b5b9050919050565b606060038054610a1190615db4565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3d90615db4565b8015610a8a5780601f10610a5f57610100808354040283529160200191610a8a565b820191906000526020600020905b815481529060010190602001808311610a6d57829003601f168201915b5050505050905090565b6000610aa8610aa16124de565b84846124e6565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600254905090565b6000610af58484846126b1565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b406124de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb7906156ae565b60405180910390fd5b610bdd85610bcc6124de565b8584610bd89190615be4565b6124e6565b60019150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060056000838152602001908152602001600020600101549050919050565b60075481565b60003073ffffffffffffffffffffffffffffffffffffffff1663c9ce0e8c836040518263ffffffff1660e01b8152600401610c70919061586e565b60206040518083038186803b158015610c8857600080fd5b505afa158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc09190614b99565b905080610ccc33611a6e565b1015610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d049061576e565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d6a91906152cd565b60206040518083038186803b158015610d8257600080fd5b505afa158015610d96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dba9190614b99565b905080831115610dd957610dd88184610dd39190615be4565b612930565b5b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ae2859c600954600a546040518363ffffffff1660e01b8152600401610e3d929190615889565b604080518083038186803b158015610e5457600080fd5b505afa158015610e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8c9190614bfe565b915091506000818684610e9f9190615b8a565b610ea99190615b59565b905060006103e8876028610ebd9190615b8a565b610ec79190615b59565b905080821115610ed5578091505b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610f569291906153c6565b602060405180830381600087803b158015610f7057600080fd5b505af1158015610f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa89190614ab9565b905080610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe1906157ce565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33868c6110379190615be4565b6040518363ffffffff1660e01b81526004016110549291906153c6565b602060405180830381600087803b15801561106e57600080fd5b505af1158015611082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a69190614ab9565b9050806110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df906156ee565b60405180910390fd5b6110f233896129c0565b88600760008282546111049190615be4565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5688a86604051611153929190615889565b60405180910390a2505050505050505050565b61271081565b61117582610c0f565b61117e81612b94565b6111888383612ba8565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe7442843a65013dba5eebc77d5a00f5fafa588af0da4bf39250936d4783bb553856040516111e5919061540a565b60405180910390a3505050565b60006012905090565b6112036124de565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112679061582e565b60405180910390fd5b61127a8282612bc9565b5050565b600a5481565b60006113266112916124de565b84846001600061129f6124de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113219190615b03565b6124e6565b6001905092915050565b6000801b61133d81612b94565b611345612cab565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113a291906152cd565b60206040518083038186803b1580156113ba57600080fd5b505afa1580156113ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f29190614b99565b905060008111156114075761140681612d4d565b5b5050565b6103e881565b8042811015611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c906155ce565b60405180910390fd5b7f29944e936a0f6e1cbaa227df218d7d6025c2a2785db840e42a3425f24e9e68ac61147f81612b94565b61148761191f565b156114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be9061562e565b60405180910390fd5b60138054905085511461150f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115069061572e565b60405180910390fd5b601380549050845114611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e9061560e565b60405180910390fd5b61155f612ed7565b600060138054905067ffffffffffffffff8111156115a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156115d45781602001602082028036833780820191505090505b50905060005b60138054905081101561172c5760138181548110611621577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161168491906152cd565b60206040518083038186803b15801561169c57600080fd5b505afa1580156116b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d49190614b99565b82828151811061170d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050808061172490615e17565b9150506115da565b506000806117e6600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848a60138054806020026020016040519081016040528092919081815260200182805480156117da57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611790575b50505050508b8b612fa3565b91509150611894601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168585600c54600b54896118699190615b8a565b6118739190615b59565b600c54600b54896118849190615b8a565b61188e9190615b59565b8d6132dc565b50505060008060006118a46133e4565b9250925092506118b383612d4d565b6118bc83613920565b3373ffffffffffffffffffffffffffffffffffffffff167f36c54fe3f6742709ba65ab76880ce98cbacfc0e2f273d55f4e4d50d8830c260084600754858560405161190a949392919061590c565b60405180910390a25050505050505050505050565b6000600660009054906101000a900460ff16905090565b600080611941610ade565b14156119505760009050611973565b611958610ade565b600754836119669190615b8a565b6119709190615b59565b90505b919050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f29944e936a0f6e1cbaa227df218d7d6025c2a2785db840e42a3425f24e9e68ac81565b6000801b6119cf81612b94565b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fca394f95d8dbf1e8b2e76b9a8da90cacce1da85181a65508dab13212dc1df53b60405160405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000801b611b0f81612b94565b611b176139a5565b50565b6000611b2533611a6e565b11611b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5c9061566e565b60405180910390fd5b6000611b78611b7333611a6e565b611936565b9050611b8381610c35565b50565b6000801b611b9381612b94565b82600b8190555081600c819055503373ffffffffffffffffffffffffffffffffffffffff167fe8a0df875bece805d1b6bd1bf60bdf2abc88b51be72ed2bb5cd590532bc446a88484604051611be9929190615889565b60405180910390a2505050565b60006005600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060048054611c7090615db4565b80601f0160208091040260200160405190810160405280929190818152602001828054611c9c90615db4565b8015611ce95780601f10611cbe57610100808354040283529160200191611ce9565b820191906000526020600020905b815481529060010190602001808311611ccc57829003601f168201915b5050505050905090565b6000801b81565b60008060016000611d096124de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd9061580e565b60405180910390fd5b611de3611dd16124de565b858584611dde9190615be4565b6124e6565b600191505092915050565b6000611e02611dfb6124de565b84846126b1565b6001905092915050565b6000801b611e1981612b94565b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f5b1c29a1dba062a69b78ce73a2eefee7c106ae78ccd32338a741b3dc6fdcd32d60405160405180910390a35050565b611ec061191f565b15611f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef79061562e565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611f6193929190615311565b602060405180830381600087803b158015611f7b57600080fd5b505af1158015611f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb39190614ab9565b905080611ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fec906156ce565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663c9ce0e8c846040518263ffffffff1660e01b8152600401612030919061586e565b60206040518083038186803b15801561204857600080fd5b505afa15801561205c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120809190614b99565b905061208c3382613a48565b826007600082825461209e9190615b03565b925050819055506120ae83612d4d565b3373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c846040516120f4919061586e565b60405180910390a2505050565b6013818154811061211157600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000801b61214d81612b94565b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff76e779f769943b728cc826f493098475a7601f9ca3c1fa2696bc810f505056360405160405180910390a35050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601981565b60095481565b600080600754141561223157819050612254565b60075461223c610ade565b836122479190615b8a565b6122519190615b59565b90505b919050565b600c5481565b61226882610c0f565b61227181612b94565b61227b8383612bc9565b505050565b602881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000801b61233f81612b94565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a69061556e565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fbd45c5f5d28e3962d234f9fa4e443f6f92e4525b10556e441307306fab9f9e0360405160405180910390a35050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254d9061578e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bd9061554e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126a4919061586e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127189061574e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612791576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612788906154ee565b60405180910390fd5b61279c838383613b9c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612822576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128199061558e565b60405180910390fd5b818161282e9190615be4565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128be9190615b03565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612922919061586e565b60405180910390a350505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040161298b919061586e565b600060405180830381600087803b1580156129a557600080fd5b505af11580156129b9573d6000803e3d6000fd5b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a279061570e565b60405180910390fd5b612a3c82600083613b9c565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab99061552e565b60405180910390fd5b8181612ace9190615be4565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254612b229190615be4565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b87919061586e565b60405180910390a3505050565b612ba581612ba06124de565b613ba1565b50565b612bb182610c0f565b612bba81612b94565b612bc48383613c3e565b505050565b612bd38282611bf6565b15612ca75760006005600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612c4c6124de565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b612cb361191f565b612cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce99061550e565b60405180910390fd5b6000600660006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612d366124de565b604051612d4391906152cd565b60405180910390a1565b612d5561191f565b15612d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8c9061562e565b60405180910390fd5b60008111612dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dcf9061564e565b60405180910390fd5b612e47601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613d1f9092919063ffffffff16565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a694fc3a826040518263ffffffff1660e01b8152600401612ea2919061586e565b600060405180830381600087803b158015612ebc57600080fd5b505af1158015612ed0573d6000803e3d6000fd5b5050505050565b612edf61191f565b15612f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f169061562e565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612f8957600080fd5b505af1158015612f9d573d6000803e3d6000fd5b50505050565b60008060008060005b89518110156132c857600060028b8381518110612ff2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516130049190615b59565b90506131508c8b8481518110613043577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600060028110613084577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020020151838c86815181106130c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518c8781518110613104577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600060028110613145577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201518c613e40565b8461315b9190615b03565b93506132a78c8b848151811061319a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516001600281106131db577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020020151838c868151811061321a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518c878151811061325b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160016002811061329c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201518c613e40565b836132b29190615b03565b92505080806132c090615e17565b915050612fac565b508181935093505050965096945050505050565b600080600061330c8b898c73ffffffffffffffffffffffffffffffffffffffff16613d1f9092919063ffffffff16565b6133378b888b73ffffffffffffffffffffffffffffffffffffffff16613d1f9092919063ffffffff16565b8a73ffffffffffffffffffffffffffffffffffffffff1663e8e337008b8b8b8b8b8b308c6040518963ffffffff1660e01b815260040161337e989796959493929190615348565b606060405180830381600087803b15801561339857600080fd5b505af11580156133ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d09190614c3a565b925092509250985098509895505050505050565b60008060006133f161191f565b15613431576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134289061562e565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161348e91906152cd565b60206040518083038186803b1580156134a657600080fd5b505afa1580156134ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134de9190614b99565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166392ce27f8826040518263ffffffff1660e01b815260040161353b919061586e565b60206040518083038186803b15801561355357600080fd5b505afa158015613567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358b9190614b99565b9250600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631deae18c826040518263ffffffff1660e01b81526004016135e8919061586e565b60206040518083038186803b15801561360057600080fd5b505afa158015613614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136389190614b99565b91506103e860288261364a9190615b8a565b6136549190615b59565b82846136609190615b03565b11156136a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613698906155ae565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b81526004016137009291906153c6565b602060405180830381600087803b15801561371a57600080fd5b505af115801561372e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137529190614ab9565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518363ffffffff1660e01b81526004016137d59291906153c6565b602060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138279190614ab9565b90508180156138335750805b613872576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138699061568e565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a564992336040518263ffffffff1660e01b81526004016138cd91906152cd565b600060405180830381600087803b1580156138e757600080fd5b505af11580156138fb573d6000803e3d6000fd5b5050505083858461390c9190615be4565b6139169190615be4565b9550505050909192565b61392861191f565b15613968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161395f9061562e565b60405180910390fd5b806007600082825461397a9190615b03565b92505081905550600754600a54826139929190615b8a565b61399c9190615b59565b60098190555050565b6139ad61191f565b156139ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139e49061562e565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613a316124de565b604051613a3e91906152cd565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613aaf9061584e565b60405180910390fd5b613ac460008383613b9c565b8060026000828254613ad69190615b03565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613b2b9190615b03565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b90919061586e565b60405180910390a35050565b505050565b613bab8282611bf6565b613c3a57613bd08173ffffffffffffffffffffffffffffffffffffffff166014613f84565b613bde8360001c6020613f84565b604051602001613bef929190615293565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3191906154ac565b60405180910390fd5b5050565b613c488282611bf6565b613d1b5760016005600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613cc06124de565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000818473ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30866040518363ffffffff1660e01b8152600401613d5d9291906152e8565b60206040518083038186803b158015613d7557600080fd5b505afa158015613d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dad9190614b99565b613db79190615b03565b9050613e3a8463095ea7b360e01b8584604051602401613dd89291906153c6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061427e565b50505050565b60006002865110158015613e545750600085115b15613f7657613e8487868673ffffffffffffffffffffffffffffffffffffffff16613d1f9092919063ffffffff16565b60008773ffffffffffffffffffffffffffffffffffffffff166338ed173987868a30886040518663ffffffff1660e01b8152600401613ec79594939291906158b2565b600060405180830381600087803b158015613ee157600080fd5b505af1158015613ef5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613f1e9190614a78565b90508060018251613f2f9190615be4565b81518110613f66577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151915050613f7a565b8490505b9695505050505050565b606060006002836002613f979190615b8a565b613fa19190615b03565b67ffffffffffffffff811115613fe0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156140125781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110614070577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106140fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261413a9190615b8a565b6141449190615b03565b90505b6001811115614230577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106141ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b8282815181106141e9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061422990615d8a565b9050614147565b5060008414614274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161426b906154ce565b60405180910390fd5b8091505092915050565b60006142e0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166143459092919063ffffffff16565b905060008151111561434057808060200190518101906143009190614ab9565b61433f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614336906157ee565b60405180910390fd5b5b505050565b6060614354848460008561435d565b90509392505050565b6060824710156143a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614399906155ee565b60405180910390fd5b6143ab85614471565b6143ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143e1906157ae565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051614413919061527c565b60006040518083038185875af1925050503d8060008114614450576040519150601f19603f3d011682016040523d82523d6000602084013e614455565b606091505b5091509150614465828286614484565b92505050949350505050565b600080823b905060008111915050919050565b60608315614494578290506144e4565b6000835111156144a75782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016144db91906154ac565b60405180910390fd5b9392505050565b60006144fe6144f984615991565b61596c565b9050808382526020820190508285602086028201111561451d57600080fd5b60005b8581101561454d57816145338882614795565b845260208401935060208301925050600181019050614520565b5050509392505050565b600061456a614565846159bd565b61596c565b9050808285602086028201111561458057600080fd5b60005b858110156145ca57813567ffffffffffffffff8111156145a257600080fd5b8086016145af89826147aa565b85526020850194506020840193505050600181019050614583565b5050509392505050565b60006145e76145e2846159e3565b61596c565b9050808382526020820190508285602086028201111561460657600080fd5b60005b8581101561465057813567ffffffffffffffff81111561462857600080fd5b80860161463589826147d4565b85526020850194506020840193505050600181019050614609565b5050509392505050565b600061466d61466884615a0f565b61596c565b9050808382526020820190508285604086028201111561468c57600080fd5b60005b858110156146bc57816146a2888261484f565b84526020840193506040830192505060018101905061468f565b5050509392505050565b60006146d96146d484615a3b565b61596c565b905080828560208602820111156146ef57600080fd5b60005b8581101561471f578161470588826148df565b8452602084019350602083019250506001810190506146f2565b5050509392505050565b600061473c61473784615a61565b61596c565b9050808382526020820190508285602086028201111561475b57600080fd5b60005b8581101561478b578161477188826148f4565b84526020840193506020830192505060018101905061475e565b5050509392505050565b6000813590506147a4816166d0565b92915050565b600082601f8301126147bb57600080fd5b81356147cb8482602086016144eb565b91505092915050565b600082601f8301126147e557600080fd5b60026147f2848285614557565b91505092915050565b600082601f83011261480c57600080fd5b813561481c8482602086016145d4565b91505092915050565b600082601f83011261483657600080fd5b813561484684826020860161465a565b91505092915050565b600082601f83011261486057600080fd5b600261486d8482856146c6565b91505092915050565b600082601f83011261488757600080fd5b8151614897848260208601614729565b91505092915050565b6000815190506148af816166e7565b92915050565b6000813590506148c4816166fe565b92915050565b6000813590506148d981616715565b92915050565b6000813590506148ee8161672c565b92915050565b6000815190506149038161672c565b92915050565b60006020828403121561491b57600080fd5b600061492984828501614795565b91505092915050565b6000806040838503121561494557600080fd5b600061495385828601614795565b925050602061496485828601614795565b9150509250929050565b60008060006060848603121561498357600080fd5b600061499186828701614795565b93505060206149a286828701614795565b92505060406149b3868287016148df565b9150509250925092565b600080604083850312156149d057600080fd5b60006149de85828601614795565b92505060206149ef858286016148df565b9150509250929050565b600080600060608486031215614a0e57600080fd5b600084013567ffffffffffffffff811115614a2857600080fd5b614a34868287016147fb565b935050602084013567ffffffffffffffff811115614a5157600080fd5b614a5d86828701614825565b9250506040614a6e868287016148df565b9150509250925092565b600060208284031215614a8a57600080fd5b600082015167ffffffffffffffff811115614aa457600080fd5b614ab084828501614876565b91505092915050565b600060208284031215614acb57600080fd5b6000614ad9848285016148a0565b91505092915050565b600060208284031215614af457600080fd5b6000614b02848285016148b5565b91505092915050565b60008060408385031215614b1e57600080fd5b6000614b2c858286016148b5565b9250506020614b3d85828601614795565b9150509250929050565b600060208284031215614b5957600080fd5b6000614b67848285016148ca565b91505092915050565b600060208284031215614b8257600080fd5b6000614b90848285016148df565b91505092915050565b600060208284031215614bab57600080fd5b6000614bb9848285016148f4565b91505092915050565b60008060408385031215614bd557600080fd5b6000614be3858286016148df565b9250506020614bf4858286016148df565b9150509250929050565b60008060408385031215614c1157600080fd5b6000614c1f858286016148f4565b9250506020614c30858286016148f4565b9150509250929050565b600080600060608486031215614c4f57600080fd5b6000614c5d868287016148f4565b9350506020614c6e868287016148f4565b9250506040614c7f868287016148f4565b9150509250925092565b6000614c958383614ca1565b60208301905092915050565b614caa81615c18565b82525050565b614cb981615c18565b82525050565b6000614cca82615a9d565b614cd48185615acb565b9350614cdf83615a8d565b8060005b83811015614d10578151614cf78882614c89565b9750614d0283615abe565b925050600181019050614ce3565b5085935050505092915050565b614d2681615c2a565b82525050565b614d3581615c36565b82525050565b6000614d4682615aa8565b614d508185615adc565b9350614d60818560208601615d57565b80840191505092915050565b614d7581615ca3565b82525050565b614d8481615cc7565b82525050565b614d9381615ceb565b82525050565b614da281615d0f565b82525050565b614db181615d33565b82525050565b6000614dc282615ab3565b614dcc8185615ae7565b9350614ddc818560208601615d57565b614de581615f1c565b840191505092915050565b6000614dfb82615ab3565b614e058185615af8565b9350614e15818560208601615d57565b80840191505092915050565b6000614e2e602083615ae7565b9150614e3982615f2d565b602082019050919050565b6000614e51602383615ae7565b9150614e5c82615f56565b604082019050919050565b6000614e74601483615ae7565b9150614e7f82615fa5565b602082019050919050565b6000614e97602283615ae7565b9150614ea282615fce565b604082019050919050565b6000614eba602283615ae7565b9150614ec58261601d565b604082019050919050565b6000614edd601f83615ae7565b9150614ee88261606c565b602082019050919050565b6000614f00602683615ae7565b9150614f0b82616095565b604082019050919050565b6000614f23601883615ae7565b9150614f2e826160e4565b602082019050919050565b6000614f46601083615ae7565b9150614f518261610d565b602082019050919050565b6000614f69602683615ae7565b9150614f7482616136565b604082019050919050565b6000614f8c604083615ae7565b9150614f9782616185565b604082019050919050565b6000614faf601083615ae7565b9150614fba826161d4565b602082019050919050565b6000614fd2602b83615ae7565b9150614fdd826161fd565b604082019050919050565b6000614ff5601c83615ae7565b91506150008261624c565b602082019050919050565b6000615018601383615ae7565b915061502382616275565b602082019050919050565b600061503b602883615ae7565b91506150468261629e565b604082019050919050565b600061505e602183615ae7565b9150615069826162ed565b604082019050919050565b6000615081602483615ae7565b915061508c8261633c565b604082019050919050565b60006150a4602183615ae7565b91506150af8261638b565b604082019050919050565b60006150c7603883615ae7565b91506150d2826163da565b604082019050919050565b60006150ea602583615ae7565b91506150f582616429565b604082019050919050565b600061510d603883615ae7565b915061511882616478565b604082019050919050565b6000615130602483615ae7565b915061513b826164c7565b604082019050919050565b6000615153601d83615ae7565b915061515e82616516565b602082019050919050565b6000615176601f83615ae7565b91506151818261653f565b602082019050919050565b6000615199601783615af8565b91506151a482616568565b601782019050919050565b60006151bc602a83615ae7565b91506151c782616591565b604082019050919050565b60006151df602583615ae7565b91506151ea826165e0565b604082019050919050565b6000615202601183615af8565b915061520d8261662f565b601182019050919050565b6000615225602f83615ae7565b915061523082616658565b604082019050919050565b6000615248601f83615ae7565b9150615253826166a7565b602082019050919050565b61526781615c8c565b82525050565b61527681615c96565b82525050565b60006152888284614d3b565b915081905092915050565b600061529e8261518c565b91506152aa8285614df0565b91506152b5826151f5565b91506152c18284614df0565b91508190509392505050565b60006020820190506152e26000830184614cb0565b92915050565b60006040820190506152fd6000830185614cb0565b61530a6020830184614cb0565b9392505050565b60006060820190506153266000830186614cb0565b6153336020830185614cb0565b615340604083018461525e565b949350505050565b60006101008201905061535e600083018b614cb0565b61536b602083018a614cb0565b615378604083018961525e565b615385606083018861525e565b615392608083018761525e565b61539f60a083018661525e565b6153ac60c0830185614cb0565b6153b960e083018461525e565b9998505050505050505050565b60006040820190506153db6000830185614cb0565b6153e8602083018461525e565b9392505050565b60006020820190506154046000830184614d1d565b92915050565b600060208201905061541f6000830184614d2c565b92915050565b600060208201905061543a6000830184614d6c565b92915050565b60006020820190506154556000830184614d7b565b92915050565b60006020820190506154706000830184614d8a565b92915050565b600060208201905061548b6000830184614d99565b92915050565b60006020820190506154a66000830184614da8565b92915050565b600060208201905081810360008301526154c68184614db7565b905092915050565b600060208201905081810360008301526154e781614e21565b9050919050565b6000602082019050818103600083015261550781614e44565b9050919050565b6000602082019050818103600083015261552781614e67565b9050919050565b6000602082019050818103600083015261554781614e8a565b9050919050565b6000602082019050818103600083015261556781614ead565b9050919050565b6000602082019050818103600083015261558781614ed0565b9050919050565b600060208201905081810360008301526155a781614ef3565b9050919050565b600060208201905081810360008301526155c781614f16565b9050919050565b600060208201905081810360008301526155e781614f39565b9050919050565b6000602082019050818103600083015261560781614f5c565b9050919050565b6000602082019050818103600083015261562781614f7f565b9050919050565b6000602082019050818103600083015261564781614fa2565b9050919050565b6000602082019050818103600083015261566781614fc5565b9050919050565b6000602082019050818103600083015261568781614fe8565b9050919050565b600060208201905081810360008301526156a78161500b565b9050919050565b600060208201905081810360008301526156c78161502e565b9050919050565b600060208201905081810360008301526156e781615051565b9050919050565b6000602082019050818103600083015261570781615074565b9050919050565b6000602082019050818103600083015261572781615097565b9050919050565b60006020820190508181036000830152615747816150ba565b9050919050565b60006020820190508181036000830152615767816150dd565b9050919050565b6000602082019050818103600083015261578781615100565b9050919050565b600060208201905081810360008301526157a781615123565b9050919050565b600060208201905081810360008301526157c781615146565b9050919050565b600060208201905081810360008301526157e781615169565b9050919050565b60006020820190508181036000830152615807816151af565b9050919050565b60006020820190508181036000830152615827816151d2565b9050919050565b6000602082019050818103600083015261584781615218565b9050919050565b600060208201905081810360008301526158678161523b565b9050919050565b6000602082019050615883600083018461525e565b92915050565b600060408201905061589e600083018561525e565b6158ab602083018461525e565b9392505050565b600060a0820190506158c7600083018861525e565b6158d4602083018761525e565b81810360408301526158e68186614cbf565b90506158f56060830185614cb0565b615902608083018461525e565b9695505050505050565b6000608082019050615921600083018761525e565b61592e602083018661525e565b61593b604083018561525e565b615948606083018461525e565b95945050505050565b6000602082019050615966600083018461526d565b92915050565b6000615976615987565b90506159828282615de6565b919050565b6000604051905090565b600067ffffffffffffffff8211156159ac576159ab615eed565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156159d8576159d7615eed565b5b602082029050919050565b600067ffffffffffffffff8211156159fe576159fd615eed565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615a2a57615a29615eed565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615a5657615a55615eed565b5b602082029050919050565b600067ffffffffffffffff821115615a7c57615a7b615eed565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000615b0e82615c8c565b9150615b1983615c8c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615b4e57615b4d615e60565b5b828201905092915050565b6000615b6482615c8c565b9150615b6f83615c8c565b925082615b7f57615b7e615e8f565b5b828204905092915050565b6000615b9582615c8c565b9150615ba083615c8c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615bd957615bd8615e60565b5b828202905092915050565b6000615bef82615c8c565b9150615bfa83615c8c565b925082821015615c0d57615c0c615e60565b5b828203905092915050565b6000615c2382615c6c565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000615cae82615cb5565b9050919050565b6000615cc082615c6c565b9050919050565b6000615cd282615cd9565b9050919050565b6000615ce482615c6c565b9050919050565b6000615cf682615cfd565b9050919050565b6000615d0882615c6c565b9050919050565b6000615d1a82615d21565b9050919050565b6000615d2c82615c6c565b9050919050565b6000615d3e82615d45565b9050919050565b6000615d5082615c6c565b9050919050565b60005b83811015615d75578082015181840152602081019050615d5a565b83811115615d84576000848401525b50505050565b6000615d9582615c8c565b91506000821415615da957615da8615e60565b5b600182039050919050565b60006002820490506001821680615dcc57607f821691505b60208210811415615de057615ddf615ebe565b5b50919050565b615def82615f1c565b810181811067ffffffffffffffff82111715615e0e57615e0d615eed565b5b80604052505050565b6000615e2282615c8c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615e5557615e54615e60565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74207365742072657365727665206164647265737320746f203000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f506572666f726d616e63652066656520746f6f20686967680000000000000000600082015250565b7f4661726d426f743a204558504952454400000000000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f506172616d65746572205f6d696e416d6f756e74734f7574206d75737420686160008201527f7665206c656e67746820657175616c20746f2072657761726473546f6b656e73602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f43616e6e6f7420696e7665737420696e206661726d2062656361757365206c7060008201527f416d6f756e742069732030000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74207769746864726177207a65726f2062616c616e636500000000600082015250565b7f53656e64696e672066656573206661696c656400000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f5472616e73666572206661696c65642c2061626f7274696e67206465706f736960008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73666572206661696c65642c2061626f7274696e672077697468647260008201527f6177616c00000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f506172616d65746572205f7061746873206d7573742068617665206c656e677460008201527f6820657175616c20746f2072657761726473546f6b656e730000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74207769746864726177206d6f7265207468616e2074686520746f60008201527f74616c2062616c616e6365206f6620746865206f776e65720000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f466565206661696c65642c2061626f7274696e67207769746864726177616c00600082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6166d981615c18565b81146166e457600080fd5b50565b6166f081615c2a565b81146166fb57600080fd5b50565b61670781615c36565b811461671257600080fd5b50565b61671e81615c40565b811461672957600080fd5b50565b61673581615c8c565b811461674057600080fd5b5056fea2646970667358221220926ddadf6b029a35738595075e8a2b10d1b9253f3e1bcb1e766f3795a63635af64736f6c6343000804003300000000000000000000000099649af776ff1b024f12e8fe9dfa59a6c0b4bd9c00000000000000000000000099649af776ff1b024f12e8fe9dfa59a6c0b4bd9c00000000000000000000000026b819d77ccab96253f5756760efe3d57dcccf1400000000000000000000000025938830fbd7619bf6cfcfdf5c37a22ab15a93ca0000000000000000000000003b9ffc0ebb0164daf0c94f88df29a6e46e984d1200000000000000000000000000000000000000000000000000000000000001200000000000000000000000007d28570135a2b1930f331c507f65039d4937f66c000000000000000000000000e3d8bd6aed4f159bc8000a9cd47cffdb95f9612100000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000471ece3750da237f93b8e339c536989b8978a43800000000000000000000000073a210637f6f6b7005512677ba6b3c96bb4aa44b00000000000000000000000000000000000000000000000000000000000000035246500000000000000000000000000000000000000000000000000000000000

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106102f15760003560e01c806370a082311161019d578063b6d0dcd8116100e9578063d4840641116100a2578063dd62ed3e1161007c578063dd62ed3e14610900578063f79ed94b14610930578063f84afd481461094e578063fd3865e11461096a576102f1565b8063d4840641146108a8578063d547741f146108c6578063dbae9b0f146108e2576102f1565b8063b6d0dcd8146107d2578063bac385c414610802578063c31c9c071461081e578063c7493abb1461083c578063c838b0741461085a578063c9ce0e8c14610878576102f1565b806391d1485411610156578063a457c2d711610130578063a457c2d71461073a578063a9059cbb1461076a578063abfe2bdb1461079a578063b6b55f25146107b6576102f1565b806391d14854146106ce57806395d89b41146106fe578063a217fddf1461071c576102f1565b806370a082311461063257806372f702f3146106625780637aca573c146106805780638456cb591461069e578063853828b6146106a85780638c00ca9d146106b2576102f1565b80632f2ff15d1161025c5780634a1510b4116102155780635f8e9e91116101ef5780635f8e9e91146105aa57806364b87a70146105da578063684cb274146105f85780636cf3f8df14610616576102f1565b80634a1510b4146105525780635a3746ca146105705780635c975abb1461058c576102f1565b80632f2ff15d146104a4578063313ce567146104c057806336568abe146104de5780633902cbff146104fa57806339509351146105185780633f4ba83a14610548576102f1565b806323b872dd116102ae57806323b872dd146103ce57806324702944146103fe578063248a9ca31461041c57806327b74a5d1461044c5780632e1a7d4d1461046a5780632e5bd7ab14610486576102f1565b806301ffc9a7146102f657806306fdde0314610326578063095ea7b3146103445780630ab8985b14610374578063147bd3af1461039257806318160ddd146103b0575b600080fd5b610310600480360381019061030b9190614b47565b610988565b60405161031d91906153ef565b60405180910390f35b61032e610a02565b60405161033b91906154ac565b60405180910390f35b61035e600480360381019061035991906149bd565b610a94565b60405161036b91906153ef565b60405180910390f35b61037c610ab2565b6040516103899190615425565b60405180910390f35b61039a610ad8565b6040516103a7919061586e565b60405180910390f35b6103b8610ade565b6040516103c5919061586e565b60405180910390f35b6103e860048036038101906103e3919061496e565b610ae8565b6040516103f591906153ef565b60405180910390f35b610406610be9565b6040516104139190615491565b60405180910390f35b61043660048036038101906104319190614ae2565b610c0f565b604051610443919061540a565b60405180910390f35b610454610c2f565b604051610461919061586e565b60405180910390f35b610484600480360381019061047f9190614b70565b610c35565b005b61048e611166565b60405161049b919061586e565b60405180910390f35b6104be60048036038101906104b99190614b0b565b61116c565b005b6104c86111f2565b6040516104d59190615951565b60405180910390f35b6104f860048036038101906104f39190614b0b565b6111fb565b005b61050261127e565b60405161050f919061586e565b60405180910390f35b610532600480360381019061052d91906149bd565b611284565b60405161053f91906153ef565b60405180910390f35b610550611330565b005b61055a61140b565b604051610567919061586e565b60405180910390f35b61058a600480360381019061058591906149f9565b611411565b005b61059461191f565b6040516105a191906153ef565b60405180910390f35b6105c460048036038101906105bf9190614b70565b611936565b6040516105d1919061586e565b60405180910390f35b6105e2611978565b6040516105ef9190615440565b60405180910390f35b61060061199e565b60405161060d919061540a565b60405180910390f35b610630600480360381019061062b9190614909565b6119c2565b005b61064c60048036038101906106479190614909565b611a6e565b604051610659919061586e565b60405180910390f35b61066a611ab6565b6040516106779190615425565b60405180910390f35b610688611adc565b604051610695919061545b565b60405180910390f35b6106a6611b02565b005b6106b0611b1a565b005b6106cc60048036038101906106c79190614bc2565b611b86565b005b6106e860048036038101906106e39190614b0b565b611bf6565b6040516106f591906153ef565b60405180910390f35b610706611c61565b60405161071391906154ac565b60405180910390f35b610724611cf3565b604051610731919061540a565b60405180910390f35b610754600480360381019061074f91906149bd565b611cfa565b60405161076191906153ef565b60405180910390f35b610784600480360381019061077f91906149bd565b611dee565b60405161079191906153ef565b60405180910390f35b6107b460048036038101906107af9190614909565b611e0c565b005b6107d060048036038101906107cb9190614b70565b611eb8565b005b6107ec60048036038101906107e79190614b70565b612101565b6040516107f99190615425565b60405180910390f35b61081c60048036038101906108179190614909565b612140565b005b6108266121ec565b6040516108339190615476565b60405180910390f35b610844612212565b604051610851919061586e565b60405180910390f35b610862612217565b60405161086f919061586e565b60405180910390f35b610892600480360381019061088d9190614b70565b61221d565b60405161089f919061586e565b60405180910390f35b6108b0612259565b6040516108bd919061586e565b60405180910390f35b6108e060048036038101906108db9190614b0b565b61225f565b005b6108ea612280565b6040516108f7919061586e565b60405180910390f35b61091a60048036038101906109159190614932565b612285565b604051610927919061586e565b60405180910390f35b61093861230c565b60405161094591906152cd565b60405180910390f35b61096860048036038101906109639190614909565b612332565b005b61097261244e565b60405161097f9190615425565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109fb57506109fa82612474565b5b9050919050565b606060038054610a1190615db4565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3d90615db4565b8015610a8a5780601f10610a5f57610100808354040283529160200191610a8a565b820191906000526020600020905b815481529060010190602001808311610a6d57829003601f168201915b5050505050905090565b6000610aa8610aa16124de565b84846124e6565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600254905090565b6000610af58484846126b1565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b406124de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb7906156ae565b60405180910390fd5b610bdd85610bcc6124de565b8584610bd89190615be4565b6124e6565b60019150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060056000838152602001908152602001600020600101549050919050565b60075481565b60003073ffffffffffffffffffffffffffffffffffffffff1663c9ce0e8c836040518263ffffffff1660e01b8152600401610c70919061586e565b60206040518083038186803b158015610c8857600080fd5b505afa158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc09190614b99565b905080610ccc33611a6e565b1015610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d049061576e565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d6a91906152cd565b60206040518083038186803b158015610d8257600080fd5b505afa158015610d96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dba9190614b99565b905080831115610dd957610dd88184610dd39190615be4565b612930565b5b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ae2859c600954600a546040518363ffffffff1660e01b8152600401610e3d929190615889565b604080518083038186803b158015610e5457600080fd5b505afa158015610e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8c9190614bfe565b915091506000818684610e9f9190615b8a565b610ea99190615b59565b905060006103e8876028610ebd9190615b8a565b610ec79190615b59565b905080821115610ed5578091505b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610f569291906153c6565b602060405180830381600087803b158015610f7057600080fd5b505af1158015610f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa89190614ab9565b905080610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe1906157ce565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33868c6110379190615be4565b6040518363ffffffff1660e01b81526004016110549291906153c6565b602060405180830381600087803b15801561106e57600080fd5b505af1158015611082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a69190614ab9565b9050806110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df906156ee565b60405180910390fd5b6110f233896129c0565b88600760008282546111049190615be4565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5688a86604051611153929190615889565b60405180910390a2505050505050505050565b61271081565b61117582610c0f565b61117e81612b94565b6111888383612ba8565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe7442843a65013dba5eebc77d5a00f5fafa588af0da4bf39250936d4783bb553856040516111e5919061540a565b60405180910390a3505050565b60006012905090565b6112036124de565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112679061582e565b60405180910390fd5b61127a8282612bc9565b5050565b600a5481565b60006113266112916124de565b84846001600061129f6124de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113219190615b03565b6124e6565b6001905092915050565b6000801b61133d81612b94565b611345612cab565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113a291906152cd565b60206040518083038186803b1580156113ba57600080fd5b505afa1580156113ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f29190614b99565b905060008111156114075761140681612d4d565b5b5050565b6103e881565b8042811015611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c906155ce565b60405180910390fd5b7f29944e936a0f6e1cbaa227df218d7d6025c2a2785db840e42a3425f24e9e68ac61147f81612b94565b61148761191f565b156114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be9061562e565b60405180910390fd5b60138054905085511461150f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115069061572e565b60405180910390fd5b601380549050845114611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e9061560e565b60405180910390fd5b61155f612ed7565b600060138054905067ffffffffffffffff8111156115a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156115d45781602001602082028036833780820191505090505b50905060005b60138054905081101561172c5760138181548110611621577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161168491906152cd565b60206040518083038186803b15801561169c57600080fd5b505afa1580156116b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d49190614b99565b82828151811061170d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050808061172490615e17565b9150506115da565b506000806117e6600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848a60138054806020026020016040519081016040528092919081815260200182805480156117da57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611790575b50505050508b8b612fa3565b91509150611894601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168585600c54600b54896118699190615b8a565b6118739190615b59565b600c54600b54896118849190615b8a565b61188e9190615b59565b8d6132dc565b50505060008060006118a46133e4565b9250925092506118b383612d4d565b6118bc83613920565b3373ffffffffffffffffffffffffffffffffffffffff167f36c54fe3f6742709ba65ab76880ce98cbacfc0e2f273d55f4e4d50d8830c260084600754858560405161190a949392919061590c565b60405180910390a25050505050505050505050565b6000600660009054906101000a900460ff16905090565b600080611941610ade565b14156119505760009050611973565b611958610ade565b600754836119669190615b8a565b6119709190615b59565b90505b919050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f29944e936a0f6e1cbaa227df218d7d6025c2a2785db840e42a3425f24e9e68ac81565b6000801b6119cf81612b94565b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fca394f95d8dbf1e8b2e76b9a8da90cacce1da85181a65508dab13212dc1df53b60405160405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000801b611b0f81612b94565b611b176139a5565b50565b6000611b2533611a6e565b11611b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5c9061566e565b60405180910390fd5b6000611b78611b7333611a6e565b611936565b9050611b8381610c35565b50565b6000801b611b9381612b94565b82600b8190555081600c819055503373ffffffffffffffffffffffffffffffffffffffff167fe8a0df875bece805d1b6bd1bf60bdf2abc88b51be72ed2bb5cd590532bc446a88484604051611be9929190615889565b60405180910390a2505050565b60006005600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060048054611c7090615db4565b80601f0160208091040260200160405190810160405280929190818152602001828054611c9c90615db4565b8015611ce95780601f10611cbe57610100808354040283529160200191611ce9565b820191906000526020600020905b815481529060010190602001808311611ccc57829003601f168201915b5050505050905090565b6000801b81565b60008060016000611d096124de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd9061580e565b60405180910390fd5b611de3611dd16124de565b858584611dde9190615be4565b6124e6565b600191505092915050565b6000611e02611dfb6124de565b84846126b1565b6001905092915050565b6000801b611e1981612b94565b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f5b1c29a1dba062a69b78ce73a2eefee7c106ae78ccd32338a741b3dc6fdcd32d60405160405180910390a35050565b611ec061191f565b15611f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef79061562e565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611f6193929190615311565b602060405180830381600087803b158015611f7b57600080fd5b505af1158015611f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb39190614ab9565b905080611ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fec906156ce565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663c9ce0e8c846040518263ffffffff1660e01b8152600401612030919061586e565b60206040518083038186803b15801561204857600080fd5b505afa15801561205c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120809190614b99565b905061208c3382613a48565b826007600082825461209e9190615b03565b925050819055506120ae83612d4d565b3373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c846040516120f4919061586e565b60405180910390a2505050565b6013818154811061211157600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000801b61214d81612b94565b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff76e779f769943b728cc826f493098475a7601f9ca3c1fa2696bc810f505056360405160405180910390a35050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601981565b60095481565b600080600754141561223157819050612254565b60075461223c610ade565b836122479190615b8a565b6122519190615b59565b90505b919050565b600c5481565b61226882610c0f565b61227181612b94565b61227b8383612bc9565b505050565b602881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000801b61233f81612b94565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a69061556e565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fbd45c5f5d28e3962d234f9fa4e443f6f92e4525b10556e441307306fab9f9e0360405160405180910390a35050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254d9061578e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bd9061554e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126a4919061586e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612721576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127189061574e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612791576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612788906154ee565b60405180910390fd5b61279c838383613b9c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612822576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128199061558e565b60405180910390fd5b818161282e9190615be4565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128be9190615b03565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612922919061586e565b60405180910390a350505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040161298b919061586e565b600060405180830381600087803b1580156129a557600080fd5b505af11580156129b9573d6000803e3d6000fd5b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a279061570e565b60405180910390fd5b612a3c82600083613b9c565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab99061552e565b60405180910390fd5b8181612ace9190615be4565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254612b229190615be4565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b87919061586e565b60405180910390a3505050565b612ba581612ba06124de565b613ba1565b50565b612bb182610c0f565b612bba81612b94565b612bc48383613c3e565b505050565b612bd38282611bf6565b15612ca75760006005600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612c4c6124de565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b612cb361191f565b612cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce99061550e565b60405180910390fd5b6000600660006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612d366124de565b604051612d4391906152cd565b60405180910390a1565b612d5561191f565b15612d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8c9061562e565b60405180910390fd5b60008111612dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dcf9061564e565b60405180910390fd5b612e47601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613d1f9092919063ffffffff16565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a694fc3a826040518263ffffffff1660e01b8152600401612ea2919061586e565b600060405180830381600087803b158015612ebc57600080fd5b505af1158015612ed0573d6000803e3d6000fd5b5050505050565b612edf61191f565b15612f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f169061562e565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612f8957600080fd5b505af1158015612f9d573d6000803e3d6000fd5b50505050565b60008060008060005b89518110156132c857600060028b8381518110612ff2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516130049190615b59565b90506131508c8b8481518110613043577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600060028110613084577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020020151838c86815181106130c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518c8781518110613104577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600060028110613145577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201518c613e40565b8461315b9190615b03565b93506132a78c8b848151811061319a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516001600281106131db577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020020151838c868151811061321a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518c878151811061325b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160016002811061329c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201518c613e40565b836132b29190615b03565b92505080806132c090615e17565b915050612fac565b508181935093505050965096945050505050565b600080600061330c8b898c73ffffffffffffffffffffffffffffffffffffffff16613d1f9092919063ffffffff16565b6133378b888b73ffffffffffffffffffffffffffffffffffffffff16613d1f9092919063ffffffff16565b8a73ffffffffffffffffffffffffffffffffffffffff1663e8e337008b8b8b8b8b8b308c6040518963ffffffff1660e01b815260040161337e989796959493929190615348565b606060405180830381600087803b15801561339857600080fd5b505af11580156133ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d09190614c3a565b925092509250985098509895505050505050565b60008060006133f161191f565b15613431576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134289061562e565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161348e91906152cd565b60206040518083038186803b1580156134a657600080fd5b505afa1580156134ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134de9190614b99565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166392ce27f8826040518263ffffffff1660e01b815260040161353b919061586e565b60206040518083038186803b15801561355357600080fd5b505afa158015613567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358b9190614b99565b9250600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631deae18c826040518263ffffffff1660e01b81526004016135e8919061586e565b60206040518083038186803b15801561360057600080fd5b505afa158015613614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136389190614b99565b91506103e860288261364a9190615b8a565b6136549190615b59565b82846136609190615b03565b11156136a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613698906155ae565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b81526004016137009291906153c6565b602060405180830381600087803b15801561371a57600080fd5b505af115801561372e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137529190614ab9565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518363ffffffff1660e01b81526004016137d59291906153c6565b602060405180830381600087803b1580156137ef57600080fd5b505af1158015613803573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138279190614ab9565b90508180156138335750805b613872576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138699061568e565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a564992336040518263ffffffff1660e01b81526004016138cd91906152cd565b600060405180830381600087803b1580156138e757600080fd5b505af11580156138fb573d6000803e3d6000fd5b5050505083858461390c9190615be4565b6139169190615be4565b9550505050909192565b61392861191f565b15613968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161395f9061562e565b60405180910390fd5b806007600082825461397a9190615b03565b92505081905550600754600a54826139929190615b8a565b61399c9190615b59565b60098190555050565b6139ad61191f565b156139ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139e49061562e565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613a316124de565b604051613a3e91906152cd565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613aaf9061584e565b60405180910390fd5b613ac460008383613b9c565b8060026000828254613ad69190615b03565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613b2b9190615b03565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b90919061586e565b60405180910390a35050565b505050565b613bab8282611bf6565b613c3a57613bd08173ffffffffffffffffffffffffffffffffffffffff166014613f84565b613bde8360001c6020613f84565b604051602001613bef929190615293565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3191906154ac565b60405180910390fd5b5050565b613c488282611bf6565b613d1b5760016005600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613cc06124de565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000818473ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30866040518363ffffffff1660e01b8152600401613d5d9291906152e8565b60206040518083038186803b158015613d7557600080fd5b505afa158015613d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dad9190614b99565b613db79190615b03565b9050613e3a8463095ea7b360e01b8584604051602401613dd89291906153c6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061427e565b50505050565b60006002865110158015613e545750600085115b15613f7657613e8487868673ffffffffffffffffffffffffffffffffffffffff16613d1f9092919063ffffffff16565b60008773ffffffffffffffffffffffffffffffffffffffff166338ed173987868a30886040518663ffffffff1660e01b8152600401613ec79594939291906158b2565b600060405180830381600087803b158015613ee157600080fd5b505af1158015613ef5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613f1e9190614a78565b90508060018251613f2f9190615be4565b81518110613f66577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151915050613f7a565b8490505b9695505050505050565b606060006002836002613f979190615b8a565b613fa19190615b03565b67ffffffffffffffff811115613fe0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156140125781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110614070577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106140fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261413a9190615b8a565b6141449190615b03565b90505b6001811115614230577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106141ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b8282815181106141e9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061422990615d8a565b9050614147565b5060008414614274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161426b906154ce565b60405180910390fd5b8091505092915050565b60006142e0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166143459092919063ffffffff16565b905060008151111561434057808060200190518101906143009190614ab9565b61433f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614336906157ee565b60405180910390fd5b5b505050565b6060614354848460008561435d565b90509392505050565b6060824710156143a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614399906155ee565b60405180910390fd5b6143ab85614471565b6143ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143e1906157ae565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051614413919061527c565b60006040518083038185875af1925050503d8060008114614450576040519150601f19603f3d011682016040523d82523d6000602084013e614455565b606091505b5091509150614465828286614484565b92505050949350505050565b600080823b905060008111915050919050565b60608315614494578290506144e4565b6000835111156144a75782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016144db91906154ac565b60405180910390fd5b9392505050565b60006144fe6144f984615991565b61596c565b9050808382526020820190508285602086028201111561451d57600080fd5b60005b8581101561454d57816145338882614795565b845260208401935060208301925050600181019050614520565b5050509392505050565b600061456a614565846159bd565b61596c565b9050808285602086028201111561458057600080fd5b60005b858110156145ca57813567ffffffffffffffff8111156145a257600080fd5b8086016145af89826147aa565b85526020850194506020840193505050600181019050614583565b5050509392505050565b60006145e76145e2846159e3565b61596c565b9050808382526020820190508285602086028201111561460657600080fd5b60005b8581101561465057813567ffffffffffffffff81111561462857600080fd5b80860161463589826147d4565b85526020850194506020840193505050600181019050614609565b5050509392505050565b600061466d61466884615a0f565b61596c565b9050808382526020820190508285604086028201111561468c57600080fd5b60005b858110156146bc57816146a2888261484f565b84526020840193506040830192505060018101905061468f565b5050509392505050565b60006146d96146d484615a3b565b61596c565b905080828560208602820111156146ef57600080fd5b60005b8581101561471f578161470588826148df565b8452602084019350602083019250506001810190506146f2565b5050509392505050565b600061473c61473784615a61565b61596c565b9050808382526020820190508285602086028201111561475b57600080fd5b60005b8581101561478b578161477188826148f4565b84526020840193506020830192505060018101905061475e565b5050509392505050565b6000813590506147a4816166d0565b92915050565b600082601f8301126147bb57600080fd5b81356147cb8482602086016144eb565b91505092915050565b600082601f8301126147e557600080fd5b60026147f2848285614557565b91505092915050565b600082601f83011261480c57600080fd5b813561481c8482602086016145d4565b91505092915050565b600082601f83011261483657600080fd5b813561484684826020860161465a565b91505092915050565b600082601f83011261486057600080fd5b600261486d8482856146c6565b91505092915050565b600082601f83011261488757600080fd5b8151614897848260208601614729565b91505092915050565b6000815190506148af816166e7565b92915050565b6000813590506148c4816166fe565b92915050565b6000813590506148d981616715565b92915050565b6000813590506148ee8161672c565b92915050565b6000815190506149038161672c565b92915050565b60006020828403121561491b57600080fd5b600061492984828501614795565b91505092915050565b6000806040838503121561494557600080fd5b600061495385828601614795565b925050602061496485828601614795565b9150509250929050565b60008060006060848603121561498357600080fd5b600061499186828701614795565b93505060206149a286828701614795565b92505060406149b3868287016148df565b9150509250925092565b600080604083850312156149d057600080fd5b60006149de85828601614795565b92505060206149ef858286016148df565b9150509250929050565b600080600060608486031215614a0e57600080fd5b600084013567ffffffffffffffff811115614a2857600080fd5b614a34868287016147fb565b935050602084013567ffffffffffffffff811115614a5157600080fd5b614a5d86828701614825565b9250506040614a6e868287016148df565b9150509250925092565b600060208284031215614a8a57600080fd5b600082015167ffffffffffffffff811115614aa457600080fd5b614ab084828501614876565b91505092915050565b600060208284031215614acb57600080fd5b6000614ad9848285016148a0565b91505092915050565b600060208284031215614af457600080fd5b6000614b02848285016148b5565b91505092915050565b60008060408385031215614b1e57600080fd5b6000614b2c858286016148b5565b9250506020614b3d85828601614795565b9150509250929050565b600060208284031215614b5957600080fd5b6000614b67848285016148ca565b91505092915050565b600060208284031215614b8257600080fd5b6000614b90848285016148df565b91505092915050565b600060208284031215614bab57600080fd5b6000614bb9848285016148f4565b91505092915050565b60008060408385031215614bd557600080fd5b6000614be3858286016148df565b9250506020614bf4858286016148df565b9150509250929050565b60008060408385031215614c1157600080fd5b6000614c1f858286016148f4565b9250506020614c30858286016148f4565b9150509250929050565b600080600060608486031215614c4f57600080fd5b6000614c5d868287016148f4565b9350506020614c6e868287016148f4565b9250506040614c7f868287016148f4565b9150509250925092565b6000614c958383614ca1565b60208301905092915050565b614caa81615c18565b82525050565b614cb981615c18565b82525050565b6000614cca82615a9d565b614cd48185615acb565b9350614cdf83615a8d565b8060005b83811015614d10578151614cf78882614c89565b9750614d0283615abe565b925050600181019050614ce3565b5085935050505092915050565b614d2681615c2a565b82525050565b614d3581615c36565b82525050565b6000614d4682615aa8565b614d508185615adc565b9350614d60818560208601615d57565b80840191505092915050565b614d7581615ca3565b82525050565b614d8481615cc7565b82525050565b614d9381615ceb565b82525050565b614da281615d0f565b82525050565b614db181615d33565b82525050565b6000614dc282615ab3565b614dcc8185615ae7565b9350614ddc818560208601615d57565b614de581615f1c565b840191505092915050565b6000614dfb82615ab3565b614e058185615af8565b9350614e15818560208601615d57565b80840191505092915050565b6000614e2e602083615ae7565b9150614e3982615f2d565b602082019050919050565b6000614e51602383615ae7565b9150614e5c82615f56565b604082019050919050565b6000614e74601483615ae7565b9150614e7f82615fa5565b602082019050919050565b6000614e97602283615ae7565b9150614ea282615fce565b604082019050919050565b6000614eba602283615ae7565b9150614ec58261601d565b604082019050919050565b6000614edd601f83615ae7565b9150614ee88261606c565b602082019050919050565b6000614f00602683615ae7565b9150614f0b82616095565b604082019050919050565b6000614f23601883615ae7565b9150614f2e826160e4565b602082019050919050565b6000614f46601083615ae7565b9150614f518261610d565b602082019050919050565b6000614f69602683615ae7565b9150614f7482616136565b604082019050919050565b6000614f8c604083615ae7565b9150614f9782616185565b604082019050919050565b6000614faf601083615ae7565b9150614fba826161d4565b602082019050919050565b6000614fd2602b83615ae7565b9150614fdd826161fd565b604082019050919050565b6000614ff5601c83615ae7565b91506150008261624c565b602082019050919050565b6000615018601383615ae7565b915061502382616275565b602082019050919050565b600061503b602883615ae7565b91506150468261629e565b604082019050919050565b600061505e602183615ae7565b9150615069826162ed565b604082019050919050565b6000615081602483615ae7565b915061508c8261633c565b604082019050919050565b60006150a4602183615ae7565b91506150af8261638b565b604082019050919050565b60006150c7603883615ae7565b91506150d2826163da565b604082019050919050565b60006150ea602583615ae7565b91506150f582616429565b604082019050919050565b600061510d603883615ae7565b915061511882616478565b604082019050919050565b6000615130602483615ae7565b915061513b826164c7565b604082019050919050565b6000615153601d83615ae7565b915061515e82616516565b602082019050919050565b6000615176601f83615ae7565b91506151818261653f565b602082019050919050565b6000615199601783615af8565b91506151a482616568565b601782019050919050565b60006151bc602a83615ae7565b91506151c782616591565b604082019050919050565b60006151df602583615ae7565b91506151ea826165e0565b604082019050919050565b6000615202601183615af8565b915061520d8261662f565b601182019050919050565b6000615225602f83615ae7565b915061523082616658565b604082019050919050565b6000615248601f83615ae7565b9150615253826166a7565b602082019050919050565b61526781615c8c565b82525050565b61527681615c96565b82525050565b60006152888284614d3b565b915081905092915050565b600061529e8261518c565b91506152aa8285614df0565b91506152b5826151f5565b91506152c18284614df0565b91508190509392505050565b60006020820190506152e26000830184614cb0565b92915050565b60006040820190506152fd6000830185614cb0565b61530a6020830184614cb0565b9392505050565b60006060820190506153266000830186614cb0565b6153336020830185614cb0565b615340604083018461525e565b949350505050565b60006101008201905061535e600083018b614cb0565b61536b602083018a614cb0565b615378604083018961525e565b615385606083018861525e565b615392608083018761525e565b61539f60a083018661525e565b6153ac60c0830185614cb0565b6153b960e083018461525e565b9998505050505050505050565b60006040820190506153db6000830185614cb0565b6153e8602083018461525e565b9392505050565b60006020820190506154046000830184614d1d565b92915050565b600060208201905061541f6000830184614d2c565b92915050565b600060208201905061543a6000830184614d6c565b92915050565b60006020820190506154556000830184614d7b565b92915050565b60006020820190506154706000830184614d8a565b92915050565b600060208201905061548b6000830184614d99565b92915050565b60006020820190506154a66000830184614da8565b92915050565b600060208201905081810360008301526154c68184614db7565b905092915050565b600060208201905081810360008301526154e781614e21565b9050919050565b6000602082019050818103600083015261550781614e44565b9050919050565b6000602082019050818103600083015261552781614e67565b9050919050565b6000602082019050818103600083015261554781614e8a565b9050919050565b6000602082019050818103600083015261556781614ead565b9050919050565b6000602082019050818103600083015261558781614ed0565b9050919050565b600060208201905081810360008301526155a781614ef3565b9050919050565b600060208201905081810360008301526155c781614f16565b9050919050565b600060208201905081810360008301526155e781614f39565b9050919050565b6000602082019050818103600083015261560781614f5c565b9050919050565b6000602082019050818103600083015261562781614f7f565b9050919050565b6000602082019050818103600083015261564781614fa2565b9050919050565b6000602082019050818103600083015261566781614fc5565b9050919050565b6000602082019050818103600083015261568781614fe8565b9050919050565b600060208201905081810360008301526156a78161500b565b9050919050565b600060208201905081810360008301526156c78161502e565b9050919050565b600060208201905081810360008301526156e781615051565b9050919050565b6000602082019050818103600083015261570781615074565b9050919050565b6000602082019050818103600083015261572781615097565b9050919050565b60006020820190508181036000830152615747816150ba565b9050919050565b60006020820190508181036000830152615767816150dd565b9050919050565b6000602082019050818103600083015261578781615100565b9050919050565b600060208201905081810360008301526157a781615123565b9050919050565b600060208201905081810360008301526157c781615146565b9050919050565b600060208201905081810360008301526157e781615169565b9050919050565b60006020820190508181036000830152615807816151af565b9050919050565b60006020820190508181036000830152615827816151d2565b9050919050565b6000602082019050818103600083015261584781615218565b9050919050565b600060208201905081810360008301526158678161523b565b9050919050565b6000602082019050615883600083018461525e565b92915050565b600060408201905061589e600083018561525e565b6158ab602083018461525e565b9392505050565b600060a0820190506158c7600083018861525e565b6158d4602083018761525e565b81810360408301526158e68186614cbf565b90506158f56060830185614cb0565b615902608083018461525e565b9695505050505050565b6000608082019050615921600083018761525e565b61592e602083018661525e565b61593b604083018561525e565b615948606083018461525e565b95945050505050565b6000602082019050615966600083018461526d565b92915050565b6000615976615987565b90506159828282615de6565b919050565b6000604051905090565b600067ffffffffffffffff8211156159ac576159ab615eed565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156159d8576159d7615eed565b5b602082029050919050565b600067ffffffffffffffff8211156159fe576159fd615eed565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615a2a57615a29615eed565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615a5657615a55615eed565b5b602082029050919050565b600067ffffffffffffffff821115615a7c57615a7b615eed565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000615b0e82615c8c565b9150615b1983615c8c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615b4e57615b4d615e60565b5b828201905092915050565b6000615b6482615c8c565b9150615b6f83615c8c565b925082615b7f57615b7e615e8f565b5b828204905092915050565b6000615b9582615c8c565b9150615ba083615c8c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615bd957615bd8615e60565b5b828202905092915050565b6000615bef82615c8c565b9150615bfa83615c8c565b925082821015615c0d57615c0c615e60565b5b828203905092915050565b6000615c2382615c6c565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000615cae82615cb5565b9050919050565b6000615cc082615c6c565b9050919050565b6000615cd282615cd9565b9050919050565b6000615ce482615c6c565b9050919050565b6000615cf682615cfd565b9050919050565b6000615d0882615c6c565b9050919050565b6000615d1a82615d21565b9050919050565b6000615d2c82615c6c565b9050919050565b6000615d3e82615d45565b9050919050565b6000615d5082615c6c565b9050919050565b60005b83811015615d75578082015181840152602081019050615d5a565b83811115615d84576000848401525b50505050565b6000615d9582615c8c565b91506000821415615da957615da8615e60565b5b600182039050919050565b60006002820490506001821680615dcc57607f821691505b60208210811415615de057615ddf615ebe565b5b50919050565b615def82615f1c565b810181811067ffffffffffffffff82111715615e0e57615e0d615eed565b5b80604052505050565b6000615e2282615c8c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615e5557615e54615e60565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74207365742072657365727665206164647265737320746f203000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f506572666f726d616e63652066656520746f6f20686967680000000000000000600082015250565b7f4661726d426f743a204558504952454400000000000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f506172616d65746572205f6d696e416d6f756e74734f7574206d75737420686160008201527f7665206c656e67746820657175616c20746f2072657761726473546f6b656e73602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f43616e6e6f7420696e7665737420696e206661726d2062656361757365206c7060008201527f416d6f756e742069732030000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74207769746864726177207a65726f2062616c616e636500000000600082015250565b7f53656e64696e672066656573206661696c656400000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f5472616e73666572206661696c65642c2061626f7274696e67206465706f736960008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73666572206661696c65642c2061626f7274696e672077697468647260008201527f6177616c00000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f506172616d65746572205f7061746873206d7573742068617665206c656e677460008201527f6820657175616c20746f2072657761726473546f6b656e730000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74207769746864726177206d6f7265207468616e2074686520746f60008201527f74616c2062616c616e6365206f6620746865206f776e65720000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f466565206661696c65642c2061626f7274696e67207769746864726177616c00600082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6166d981615c18565b81146166e457600080fd5b50565b6166f081615c2a565b81146166fb57600080fd5b50565b61670781615c36565b811461671257600080fd5b50565b61671e81615c40565b811461672957600080fd5b50565b61673581615c8c565b811461674057600080fd5b5056fea2646970667358221220926ddadf6b029a35738595075e8a2b10d1b9253f3e1bcb1e766f3795a63635af64736f6c63430008040033