Contract Creation Code
0x60806040523480156200001157600080fd5b5060405162003d2738038062003d27833981810160405281019062000037919062000290565b806040518060400160405280600f81526020017f426c617a50617950726f647563747300000000000000000000000000000000008152506040518060400160405280600581526020017f424c5a50500000000000000000000000000000000000000000000000000000008152508160009081620000b591906200053c565b508060019081620000c791906200053c565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200013f5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000136919062000634565b60405180910390fd5b62000150816200016060201b60201c565b506000600c819055505062000651565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000258826200022b565b9050919050565b6200026a816200024b565b81146200027657600080fd5b50565b6000815190506200028a816200025f565b92915050565b600060208284031215620002a957620002a862000226565b5b6000620002b98482850162000279565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200034457607f821691505b6020821081036200035a5762000359620002fc565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000385565b620003d0868362000385565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200041d620004176200041184620003e8565b620003f2565b620003e8565b9050919050565b6000819050919050565b6200043983620003fc565b62000451620004488262000424565b84845462000392565b825550505050565b600090565b6200046862000459565b620004758184846200042e565b505050565b5b818110156200049d57620004916000826200045e565b6001810190506200047b565b5050565b601f821115620004ec57620004b68162000360565b620004c18462000375565b81016020851015620004d1578190505b620004e9620004e08562000375565b8301826200047a565b50505b505050565b600082821c905092915050565b60006200051160001984600802620004f1565b1980831691505092915050565b60006200052c8383620004fe565b9150826002028217905092915050565b6200054782620002c2565b67ffffffffffffffff811115620005635762000562620002cd565b5b6200056f82546200032b565b6200057c828285620004a1565b600060209050601f831160018114620005b457600084156200059f578287015190505b620005ab85826200051e565b8655506200061b565b601f198416620005c48662000360565b60005b82811015620005ee57848901518255600182019150602085019450602081019050620005c7565b868310156200060e57848901516200060a601f891682620004fe565b8355505b6001600288020188555050505b505050505050565b6200062e816200024b565b82525050565b60006020820190506200064b600083018462000623565b92915050565b6136c680620006616000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063b88d4fde11610097578063e985e9c511610071578063e985e9c51461044a578063eacabe141461047a578063f2fde38b14610496578063fca3b5aa146104b257610173565b8063b88d4fde146103e2578063c87b56dd146103fe578063dd2e23031461042e57610173565b806370a0823114610320578063715018a6146103505780638462151c1461035a5780638da5cb5b1461038a57806395d89b41146103a8578063a22cb465146103c657610173565b806323b872dd1161013057806323b872dd1461024e5780632f745c591461026a5780633ccfd60b1461029a57806342842e0e146102a45780634f6ccce7146102c05780636352211e146102f057610173565b806301ffc9a71461017857806306fdde03146101a857806307546172146101c6578063081812fc146101e4578063095ea7b31461021457806318160ddd14610230575b600080fd5b610192600480360381019061018d91906126da565b6104ce565b60405161019f9190612722565b60405180910390f35b6101b06104e0565b6040516101bd91906127cd565b60405180910390f35b6101ce610572565b6040516101db9190612830565b60405180910390f35b6101fe60048036038101906101f99190612881565b610598565b60405161020b9190612830565b60405180910390f35b61022e600480360381019061022991906128da565b6105b4565b005b6102386105ca565b6040516102459190612929565b60405180910390f35b61026860048036038101906102639190612944565b6105d7565b005b610284600480360381019061027f91906128da565b6106d9565b6040516102919190612929565b60405180910390f35b6102a2610782565b005b6102be60048036038101906102b99190612944565b610823565b005b6102da60048036038101906102d59190612881565b610843565b6040516102e79190612929565b60405180910390f35b61030a60048036038101906103059190612881565b6108b9565b6040516103179190612830565b60405180910390f35b61033a60048036038101906103359190612997565b6108cb565b6040516103479190612929565b60405180910390f35b610358610985565b005b610374600480360381019061036f9190612997565b610999565b6040516103819190612a82565b60405180910390f35b610392610aa2565b60405161039f9190612830565b60405180910390f35b6103b0610acc565b6040516103bd91906127cd565b60405180910390f35b6103e060048036038101906103db9190612ad0565b610b5e565b005b6103fc60048036038101906103f79190612c45565b610b74565b005b61041860048036038101906104139190612881565b610b91565b60405161042591906127cd565b60405180910390f35b61044860048036038101906104439190612e4f565b610ba3565b005b610464600480360381019061045f9190612eab565b610ce2565b6040516104719190612722565b60405180910390f35b610494600480360381019061048f9190612eeb565b610d76565b005b6104b060048036038101906104ab9190612997565b610e7b565b005b6104cc60048036038101906104c79190612997565b610f01565b005b60006104d982611012565b9050919050565b6060600080546104ef90612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90612f76565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006105a38261108c565b506105ad82611114565b9050919050565b6105c682826105c1611151565b611159565b5050565b6000600980549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106495760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106409190612830565b60405180910390fd5b600061065d8383610658611151565b61116b565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106d3578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016106ca93929190612fa7565b60405180910390fd5b50505050565b60006106e4836108cb565b82106107295782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610720929190612fde565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b61078a611181565b6000479050600081116107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c990613053565b60405180910390fd5b6107da610aa2565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561081f573d6000803e3d6000fd5b5050565b61083e83838360405180602001604052806000815250610b74565b505050565b600061084d6105ca565b8210610893576000826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161088a929190612fde565b60405180910390fd5b600982815481106108a7576108a6613073565b5b90600052602060002001549050919050565b60006108c48261108c565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361093e5760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016109359190612830565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61098d611181565b6109976000611208565b565b606060006109a6836108cb565b905060008103610a0257600067ffffffffffffffff8111156109cb576109ca612b1a565b5b6040519080825280602002602001820160405280156109f95781602001602082028036833780820191505090505b50915050610a9d565b60008167ffffffffffffffff811115610a1e57610a1d612b1a565b5b604051908082528060200260200182016040528015610a4c5781602001602082028036833780820191505090505b50905060005b82811015610a9657610a6485826106d9565b828281518110610a7757610a76613073565b5b6020026020010181815250508080610a8e906130d1565b915050610a52565b5080925050505b919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610adb90612f76565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0790612f76565b8015610b545780601f10610b2957610100808354040283529160200191610b54565b820191906000526020600020905b815481529060010190602001808311610b3757829003601f168201915b5050505050905090565b610b70610b69611151565b83836112ce565b5050565b610b7f8484846105d7565b610b8b8484848461143d565b50505050565b6060610b9c826115f4565b9050919050565b610bab610aa2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c315750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c679061318b565b60405180910390fd5b60005b8151811015610cdd57600c6000815480929190610c8f906130d1565b91905055506000600c549050610ca58482611707565b610cc981848481518110610cbc57610cbb613073565b5b6020026020010151611800565b508080610cd5906130d1565b915050610c73565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610d7e610aa2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e045750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a9061318b565b60405180910390fd5b600c6000815480929190610e56906130d1565b91905055506000600c549050610e6c8382611707565b610e768183611800565b505050565b610e83611181565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ef55760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610eec9190612830565b60405180910390fd5b610efe81611208565b50565b610f09611151565b73ffffffffffffffffffffffffffffffffffffffff16610f27610aa2565b73ffffffffffffffffffffffffffffffffffffffff161480610f8f5750610f4c611151565b73ffffffffffffffffffffffffffffffffffffffff1673c7dc7dfeb183a5a803c64b765c194a6bbe333c4873ffffffffffffffffffffffffffffffffffffffff16145b610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc59061321d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061108557506110848261185c565b5b9050919050565b600080611098836118bd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361110b57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016111029190612929565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b61116683838360016118fa565b505050565b6000611178848484611abf565b90509392505050565b611189611151565b73ffffffffffffffffffffffffffffffffffffffff166111a7610aa2565b73ffffffffffffffffffffffffffffffffffffffff1614611206576111ca611151565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111fd9190612830565b60405180910390fd5b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133f57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016113369190612830565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114309190612722565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156115ee578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611481611151565b8685856040518563ffffffff1660e01b81526004016114a39493929190613292565b6020604051808303816000875af19250505080156114df57506040513d601f19601f820116820180604052508101906114dc91906132f3565b60015b611563573d806000811461150f576040519150601f19603f3d011682016040523d82523d6000602084013e611514565b606091505b50600081510361155b57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115529190612830565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146115ec57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115e39190612830565b60405180910390fd5b505b50505050565b60606115ff8261108c565b50600060066000848152602001908152602001600020805461162090612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461164c90612f76565b80156116995780601f1061166e57610100808354040283529160200191611699565b820191906000526020600020905b81548152906001019060200180831161167c57829003601f168201915b5050505050905060006116aa611bdc565b905060008151036116bf578192505050611702565b6000825111156116f45780826040516020016116dc92919061335c565b60405160208183030381529060405292505050611702565b6116fd84611bf3565b925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117795760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016117709190612830565b60405180910390fd5b60006117878383600061116b565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146117fb5760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016117f29190612830565b60405180910390fd5b505050565b80600660008481526020019081526020016000209081611820919061352c565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516118509190612929565b60405180910390a15050565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806118b657506118b582611c5c565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806119335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a675760006119438461108c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119ae57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156119c157506119bf8184610ce2565b155b15611a0357826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016119fa9190612830565b60405180910390fd5b8115611a6557838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600080611acd858585611d3e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b1157611b0c84611f58565b611b50565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b4f57611b4e8185611fa1565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611b9257611b8d84612102565b611bd1565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611bd057611bcf85856121d3565b5b5b809150509392505050565b606060405180602001604052806000815250905090565b6060611bfe8261108c565b506000611c09611bdc565b90506000815111611c295760405180602001604052806000815250611c54565b80611c338461225e565b604051602001611c4492919061335c565b6040516020818303038152906040525b915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611d2757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611d375750611d368261232c565b5b9050919050565b600080611d4a846118bd565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d8c57611d8b818486612396565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e1d57611dce6000856000806118fa565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611ea0576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000611fac836108cb565b9050600060086000848152602001908152602001600020549050818114612091576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816008600083815260200190815260200160002081905550505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160098054905061211691906135fe565b90506000600a600084815260200190815260200160002054905060006009838154811061214657612145613073565b5b90600052602060002001549050806009838154811061216857612167613073565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a60008581526020019081526020016000206000905560098054806121b7576121b6613632565b5b6001900381819060005260206000200160009055905550505050565b600060016121e0846108cb565b6121ea91906135fe565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b60606000600161226d8461245a565b01905060008167ffffffffffffffff81111561228c5761228b612b1a565b5b6040519080825280601f01601f1916602001820160405280156122be5781602001600182028036833780820191505090505b509050600082602001820190505b600115612321578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161231557612314613661565b5b049450600085036122cc575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6123a18383836125ad565b61245557600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361241657806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161240d9190612929565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161244c929190612fde565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106124b8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124ae576124ad613661565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106124f5576d04ee2d6d415b85acef810000000083816124eb576124ea613661565b5b0492506020810190505b662386f26fc10000831061252457662386f26fc10000838161251a57612519613661565b5b0492506010810190505b6305f5e100831061254d576305f5e100838161254357612542613661565b5b0492506008810190505b612710831061257257612710838161256857612567613661565b5b0492506004810190505b60648310612595576064838161258b5761258a613661565b5b0492506002810190505b600a83106125a4576001810190505b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561266557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061262657506126258484610ce2565b5b8061266457508273ffffffffffffffffffffffffffffffffffffffff1661264c83611114565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126b781612682565b81146126c257600080fd5b50565b6000813590506126d4816126ae565b92915050565b6000602082840312156126f0576126ef612678565b5b60006126fe848285016126c5565b91505092915050565b60008115159050919050565b61271c81612707565b82525050565b60006020820190506127376000830184612713565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561277757808201518184015260208101905061275c565b60008484015250505050565b6000601f19601f8301169050919050565b600061279f8261273d565b6127a98185612748565b93506127b9818560208601612759565b6127c281612783565b840191505092915050565b600060208201905081810360008301526127e78184612794565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061281a826127ef565b9050919050565b61282a8161280f565b82525050565b60006020820190506128456000830184612821565b92915050565b6000819050919050565b61285e8161284b565b811461286957600080fd5b50565b60008135905061287b81612855565b92915050565b60006020828403121561289757612896612678565b5b60006128a58482850161286c565b91505092915050565b6128b78161280f565b81146128c257600080fd5b50565b6000813590506128d4816128ae565b92915050565b600080604083850312156128f1576128f0612678565b5b60006128ff858286016128c5565b92505060206129108582860161286c565b9150509250929050565b6129238161284b565b82525050565b600060208201905061293e600083018461291a565b92915050565b60008060006060848603121561295d5761295c612678565b5b600061296b868287016128c5565b935050602061297c868287016128c5565b925050604061298d8682870161286c565b9150509250925092565b6000602082840312156129ad576129ac612678565b5b60006129bb848285016128c5565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6129f98161284b565b82525050565b6000612a0b83836129f0565b60208301905092915050565b6000602082019050919050565b6000612a2f826129c4565b612a3981856129cf565b9350612a44836129e0565b8060005b83811015612a75578151612a5c88826129ff565b9750612a6783612a17565b925050600181019050612a48565b5085935050505092915050565b60006020820190508181036000830152612a9c8184612a24565b905092915050565b612aad81612707565b8114612ab857600080fd5b50565b600081359050612aca81612aa4565b92915050565b60008060408385031215612ae757612ae6612678565b5b6000612af5858286016128c5565b9250506020612b0685828601612abb565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b5282612783565b810181811067ffffffffffffffff82111715612b7157612b70612b1a565b5b80604052505050565b6000612b8461266e565b9050612b908282612b49565b919050565b600067ffffffffffffffff821115612bb057612baf612b1a565b5b612bb982612783565b9050602081019050919050565b82818337600083830152505050565b6000612be8612be384612b95565b612b7a565b905082815260208101848484011115612c0457612c03612b15565b5b612c0f848285612bc6565b509392505050565b600082601f830112612c2c57612c2b612b10565b5b8135612c3c848260208601612bd5565b91505092915050565b60008060008060808587031215612c5f57612c5e612678565b5b6000612c6d878288016128c5565b9450506020612c7e878288016128c5565b9350506040612c8f8782880161286c565b925050606085013567ffffffffffffffff811115612cb057612caf61267d565b5b612cbc87828801612c17565b91505092959194509250565b600067ffffffffffffffff821115612ce357612ce2612b1a565b5b602082029050602081019050919050565b600080fd5b600067ffffffffffffffff821115612d1457612d13612b1a565b5b612d1d82612783565b9050602081019050919050565b6000612d3d612d3884612cf9565b612b7a565b905082815260208101848484011115612d5957612d58612b15565b5b612d64848285612bc6565b509392505050565b600082601f830112612d8157612d80612b10565b5b8135612d91848260208601612d2a565b91505092915050565b6000612dad612da884612cc8565b612b7a565b90508083825260208201905060208402830185811115612dd057612dcf612cf4565b5b835b81811015612e1757803567ffffffffffffffff811115612df557612df4612b10565b5b808601612e028982612d6c565b85526020850194505050602081019050612dd2565b5050509392505050565b600082601f830112612e3657612e35612b10565b5b8135612e46848260208601612d9a565b91505092915050565b60008060408385031215612e6657612e65612678565b5b6000612e74858286016128c5565b925050602083013567ffffffffffffffff811115612e9557612e9461267d565b5b612ea185828601612e21565b9150509250929050565b60008060408385031215612ec257612ec1612678565b5b6000612ed0858286016128c5565b9250506020612ee1858286016128c5565b9150509250929050565b60008060408385031215612f0257612f01612678565b5b6000612f10858286016128c5565b925050602083013567ffffffffffffffff811115612f3157612f3061267d565b5b612f3d85828601612d6c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f8e57607f821691505b602082108103612fa157612fa0612f47565b5b50919050565b6000606082019050612fbc6000830186612821565b612fc9602083018561291a565b612fd66040830184612821565b949350505050565b6000604082019050612ff36000830185612821565b613000602083018461291a565b9392505050565b7f4e6f204554482062616c616e636520746f207769746864726177000000000000600082015250565b600061303d601a83612748565b915061304882613007565b602082019050919050565b6000602082019050818103600083015261306c81613030565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130dc8261284b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361310e5761310d6130a2565b5b600182019050919050565b7f43616c6c6572206973206e6f7420746865206f776e6572206f72206d696e746560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613175602183612748565b915061318082613119565b604082019050919050565b600060208201905081810360008301526131a481613168565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e6572206f7220616e20616460008201527f6d696e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613207602383612748565b9150613212826131ab565b604082019050919050565b60006020820190508181036000830152613236816131fa565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006132648261323d565b61326e8185613248565b935061327e818560208601612759565b61328781612783565b840191505092915050565b60006080820190506132a76000830187612821565b6132b46020830186612821565b6132c1604083018561291a565b81810360608301526132d38184613259565b905095945050505050565b6000815190506132ed816126ae565b92915050565b60006020828403121561330957613308612678565b5b6000613317848285016132de565b91505092915050565b600081905092915050565b60006133368261273d565b6133408185613320565b9350613350818560208601612759565b80840191505092915050565b6000613368828561332b565b9150613374828461332b565b91508190509392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026133e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826133a5565b6133ec86836133a5565b95508019841693508086168417925050509392505050565b6000819050919050565b600061342961342461341f8461284b565b613404565b61284b565b9050919050565b6000819050919050565b6134438361340e565b61345761344f82613430565b8484546133b2565b825550505050565b600090565b61346c61345f565b61347781848461343a565b505050565b5b8181101561349b57613490600082613464565b60018101905061347d565b5050565b601f8211156134e0576134b181613380565b6134ba84613395565b810160208510156134c9578190505b6134dd6134d585613395565b83018261347c565b50505b505050565b600082821c905092915050565b6000613503600019846008026134e5565b1980831691505092915050565b600061351c83836134f2565b9150826002028217905092915050565b6135358261273d565b67ffffffffffffffff81111561354e5761354d612b1a565b5b6135588254612f76565b61356382828561349f565b600060209050601f8311600181146135965760008415613584578287015190505b61358e8582613510565b8655506135f6565b601f1984166135a486613380565b60005b828110156135cc578489015182556001820191506020850194506020810190506135a7565b868310156135e957848901516135e5601f8916826134f2565b8355505b6001600288020188555050505b505050505050565b60006136098261284b565b91506136148361284b565b925082820390508181111561362c5761362b6130a2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea264697066735822122051106d71fda1bef13f3daf7d17b9c307b8bc98d57d53577d61a0c3c01decdcfc64736f6c634300081400330000000000000000000000002ed05570214f6c0f7612b580ab37c163076e0162
Deployed ByteCode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063b88d4fde11610097578063e985e9c511610071578063e985e9c51461044a578063eacabe141461047a578063f2fde38b14610496578063fca3b5aa146104b257610173565b8063b88d4fde146103e2578063c87b56dd146103fe578063dd2e23031461042e57610173565b806370a0823114610320578063715018a6146103505780638462151c1461035a5780638da5cb5b1461038a57806395d89b41146103a8578063a22cb465146103c657610173565b806323b872dd1161013057806323b872dd1461024e5780632f745c591461026a5780633ccfd60b1461029a57806342842e0e146102a45780634f6ccce7146102c05780636352211e146102f057610173565b806301ffc9a71461017857806306fdde03146101a857806307546172146101c6578063081812fc146101e4578063095ea7b31461021457806318160ddd14610230575b600080fd5b610192600480360381019061018d91906126da565b6104ce565b60405161019f9190612722565b60405180910390f35b6101b06104e0565b6040516101bd91906127cd565b60405180910390f35b6101ce610572565b6040516101db9190612830565b60405180910390f35b6101fe60048036038101906101f99190612881565b610598565b60405161020b9190612830565b60405180910390f35b61022e600480360381019061022991906128da565b6105b4565b005b6102386105ca565b6040516102459190612929565b60405180910390f35b61026860048036038101906102639190612944565b6105d7565b005b610284600480360381019061027f91906128da565b6106d9565b6040516102919190612929565b60405180910390f35b6102a2610782565b005b6102be60048036038101906102b99190612944565b610823565b005b6102da60048036038101906102d59190612881565b610843565b6040516102e79190612929565b60405180910390f35b61030a60048036038101906103059190612881565b6108b9565b6040516103179190612830565b60405180910390f35b61033a60048036038101906103359190612997565b6108cb565b6040516103479190612929565b60405180910390f35b610358610985565b005b610374600480360381019061036f9190612997565b610999565b6040516103819190612a82565b60405180910390f35b610392610aa2565b60405161039f9190612830565b60405180910390f35b6103b0610acc565b6040516103bd91906127cd565b60405180910390f35b6103e060048036038101906103db9190612ad0565b610b5e565b005b6103fc60048036038101906103f79190612c45565b610b74565b005b61041860048036038101906104139190612881565b610b91565b60405161042591906127cd565b60405180910390f35b61044860048036038101906104439190612e4f565b610ba3565b005b610464600480360381019061045f9190612eab565b610ce2565b6040516104719190612722565b60405180910390f35b610494600480360381019061048f9190612eeb565b610d76565b005b6104b060048036038101906104ab9190612997565b610e7b565b005b6104cc60048036038101906104c79190612997565b610f01565b005b60006104d982611012565b9050919050565b6060600080546104ef90612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90612f76565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006105a38261108c565b506105ad82611114565b9050919050565b6105c682826105c1611151565b611159565b5050565b6000600980549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106495760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106409190612830565b60405180910390fd5b600061065d8383610658611151565b61116b565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106d3578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016106ca93929190612fa7565b60405180910390fd5b50505050565b60006106e4836108cb565b82106107295782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610720929190612fde565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b61078a611181565b6000479050600081116107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c990613053565b60405180910390fd5b6107da610aa2565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561081f573d6000803e3d6000fd5b5050565b61083e83838360405180602001604052806000815250610b74565b505050565b600061084d6105ca565b8210610893576000826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161088a929190612fde565b60405180910390fd5b600982815481106108a7576108a6613073565b5b90600052602060002001549050919050565b60006108c48261108c565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361093e5760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016109359190612830565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61098d611181565b6109976000611208565b565b606060006109a6836108cb565b905060008103610a0257600067ffffffffffffffff8111156109cb576109ca612b1a565b5b6040519080825280602002602001820160405280156109f95781602001602082028036833780820191505090505b50915050610a9d565b60008167ffffffffffffffff811115610a1e57610a1d612b1a565b5b604051908082528060200260200182016040528015610a4c5781602001602082028036833780820191505090505b50905060005b82811015610a9657610a6485826106d9565b828281518110610a7757610a76613073565b5b6020026020010181815250508080610a8e906130d1565b915050610a52565b5080925050505b919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610adb90612f76565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0790612f76565b8015610b545780601f10610b2957610100808354040283529160200191610b54565b820191906000526020600020905b815481529060010190602001808311610b3757829003601f168201915b5050505050905090565b610b70610b69611151565b83836112ce565b5050565b610b7f8484846105d7565b610b8b8484848461143d565b50505050565b6060610b9c826115f4565b9050919050565b610bab610aa2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c315750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c679061318b565b60405180910390fd5b60005b8151811015610cdd57600c6000815480929190610c8f906130d1565b91905055506000600c549050610ca58482611707565b610cc981848481518110610cbc57610cbb613073565b5b6020026020010151611800565b508080610cd5906130d1565b915050610c73565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610d7e610aa2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e045750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a9061318b565b60405180910390fd5b600c6000815480929190610e56906130d1565b91905055506000600c549050610e6c8382611707565b610e768183611800565b505050565b610e83611181565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ef55760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610eec9190612830565b60405180910390fd5b610efe81611208565b50565b610f09611151565b73ffffffffffffffffffffffffffffffffffffffff16610f27610aa2565b73ffffffffffffffffffffffffffffffffffffffff161480610f8f5750610f4c611151565b73ffffffffffffffffffffffffffffffffffffffff1673c7dc7dfeb183a5a803c64b765c194a6bbe333c4873ffffffffffffffffffffffffffffffffffffffff16145b610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc59061321d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061108557506110848261185c565b5b9050919050565b600080611098836118bd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361110b57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016111029190612929565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b61116683838360016118fa565b505050565b6000611178848484611abf565b90509392505050565b611189611151565b73ffffffffffffffffffffffffffffffffffffffff166111a7610aa2565b73ffffffffffffffffffffffffffffffffffffffff1614611206576111ca611151565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111fd9190612830565b60405180910390fd5b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133f57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016113369190612830565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114309190612722565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156115ee578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611481611151565b8685856040518563ffffffff1660e01b81526004016114a39493929190613292565b6020604051808303816000875af19250505080156114df57506040513d601f19601f820116820180604052508101906114dc91906132f3565b60015b611563573d806000811461150f576040519150601f19603f3d011682016040523d82523d6000602084013e611514565b606091505b50600081510361155b57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115529190612830565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146115ec57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115e39190612830565b60405180910390fd5b505b50505050565b60606115ff8261108c565b50600060066000848152602001908152602001600020805461162090612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461164c90612f76565b80156116995780601f1061166e57610100808354040283529160200191611699565b820191906000526020600020905b81548152906001019060200180831161167c57829003601f168201915b5050505050905060006116aa611bdc565b905060008151036116bf578192505050611702565b6000825111156116f45780826040516020016116dc92919061335c565b60405160208183030381529060405292505050611702565b6116fd84611bf3565b925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117795760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016117709190612830565b60405180910390fd5b60006117878383600061116b565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146117fb5760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016117f29190612830565b60405180910390fd5b505050565b80600660008481526020019081526020016000209081611820919061352c565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516118509190612929565b60405180910390a15050565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806118b657506118b582611c5c565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806119335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a675760006119438461108c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119ae57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156119c157506119bf8184610ce2565b155b15611a0357826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016119fa9190612830565b60405180910390fd5b8115611a6557838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600080611acd858585611d3e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b1157611b0c84611f58565b611b50565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b4f57611b4e8185611fa1565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611b9257611b8d84612102565b611bd1565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611bd057611bcf85856121d3565b5b5b809150509392505050565b606060405180602001604052806000815250905090565b6060611bfe8261108c565b506000611c09611bdc565b90506000815111611c295760405180602001604052806000815250611c54565b80611c338461225e565b604051602001611c4492919061335c565b6040516020818303038152906040525b915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611d2757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611d375750611d368261232c565b5b9050919050565b600080611d4a846118bd565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d8c57611d8b818486612396565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e1d57611dce6000856000806118fa565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611ea0576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000611fac836108cb565b9050600060086000848152602001908152602001600020549050818114612091576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816008600083815260200190815260200160002081905550505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160098054905061211691906135fe565b90506000600a600084815260200190815260200160002054905060006009838154811061214657612145613073565b5b90600052602060002001549050806009838154811061216857612167613073565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a60008581526020019081526020016000206000905560098054806121b7576121b6613632565b5b6001900381819060005260206000200160009055905550505050565b600060016121e0846108cb565b6121ea91906135fe565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b60606000600161226d8461245a565b01905060008167ffffffffffffffff81111561228c5761228b612b1a565b5b6040519080825280601f01601f1916602001820160405280156122be5781602001600182028036833780820191505090505b509050600082602001820190505b600115612321578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161231557612314613661565b5b049450600085036122cc575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6123a18383836125ad565b61245557600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361241657806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161240d9190612929565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161244c929190612fde565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106124b8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124ae576124ad613661565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106124f5576d04ee2d6d415b85acef810000000083816124eb576124ea613661565b5b0492506020810190505b662386f26fc10000831061252457662386f26fc10000838161251a57612519613661565b5b0492506010810190505b6305f5e100831061254d576305f5e100838161254357612542613661565b5b0492506008810190505b612710831061257257612710838161256857612567613661565b5b0492506004810190505b60648310612595576064838161258b5761258a613661565b5b0492506002810190505b600a83106125a4576001810190505b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561266557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061262657506126258484610ce2565b5b8061266457508273ffffffffffffffffffffffffffffffffffffffff1661264c83611114565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126b781612682565b81146126c257600080fd5b50565b6000813590506126d4816126ae565b92915050565b6000602082840312156126f0576126ef612678565b5b60006126fe848285016126c5565b91505092915050565b60008115159050919050565b61271c81612707565b82525050565b60006020820190506127376000830184612713565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561277757808201518184015260208101905061275c565b60008484015250505050565b6000601f19601f8301169050919050565b600061279f8261273d565b6127a98185612748565b93506127b9818560208601612759565b6127c281612783565b840191505092915050565b600060208201905081810360008301526127e78184612794565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061281a826127ef565b9050919050565b61282a8161280f565b82525050565b60006020820190506128456000830184612821565b92915050565b6000819050919050565b61285e8161284b565b811461286957600080fd5b50565b60008135905061287b81612855565b92915050565b60006020828403121561289757612896612678565b5b60006128a58482850161286c565b91505092915050565b6128b78161280f565b81146128c257600080fd5b50565b6000813590506128d4816128ae565b92915050565b600080604083850312156128f1576128f0612678565b5b60006128ff858286016128c5565b92505060206129108582860161286c565b9150509250929050565b6129238161284b565b82525050565b600060208201905061293e600083018461291a565b92915050565b60008060006060848603121561295d5761295c612678565b5b600061296b868287016128c5565b935050602061297c868287016128c5565b925050604061298d8682870161286c565b9150509250925092565b6000602082840312156129ad576129ac612678565b5b60006129bb848285016128c5565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6129f98161284b565b82525050565b6000612a0b83836129f0565b60208301905092915050565b6000602082019050919050565b6000612a2f826129c4565b612a3981856129cf565b9350612a44836129e0565b8060005b83811015612a75578151612a5c88826129ff565b9750612a6783612a17565b925050600181019050612a48565b5085935050505092915050565b60006020820190508181036000830152612a9c8184612a24565b905092915050565b612aad81612707565b8114612ab857600080fd5b50565b600081359050612aca81612aa4565b92915050565b60008060408385031215612ae757612ae6612678565b5b6000612af5858286016128c5565b9250506020612b0685828601612abb565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b5282612783565b810181811067ffffffffffffffff82111715612b7157612b70612b1a565b5b80604052505050565b6000612b8461266e565b9050612b908282612b49565b919050565b600067ffffffffffffffff821115612bb057612baf612b1a565b5b612bb982612783565b9050602081019050919050565b82818337600083830152505050565b6000612be8612be384612b95565b612b7a565b905082815260208101848484011115612c0457612c03612b15565b5b612c0f848285612bc6565b509392505050565b600082601f830112612c2c57612c2b612b10565b5b8135612c3c848260208601612bd5565b91505092915050565b60008060008060808587031215612c5f57612c5e612678565b5b6000612c6d878288016128c5565b9450506020612c7e878288016128c5565b9350506040612c8f8782880161286c565b925050606085013567ffffffffffffffff811115612cb057612caf61267d565b5b612cbc87828801612c17565b91505092959194509250565b600067ffffffffffffffff821115612ce357612ce2612b1a565b5b602082029050602081019050919050565b600080fd5b600067ffffffffffffffff821115612d1457612d13612b1a565b5b612d1d82612783565b9050602081019050919050565b6000612d3d612d3884612cf9565b612b7a565b905082815260208101848484011115612d5957612d58612b15565b5b612d64848285612bc6565b509392505050565b600082601f830112612d8157612d80612b10565b5b8135612d91848260208601612d2a565b91505092915050565b6000612dad612da884612cc8565b612b7a565b90508083825260208201905060208402830185811115612dd057612dcf612cf4565b5b835b81811015612e1757803567ffffffffffffffff811115612df557612df4612b10565b5b808601612e028982612d6c565b85526020850194505050602081019050612dd2565b5050509392505050565b600082601f830112612e3657612e35612b10565b5b8135612e46848260208601612d9a565b91505092915050565b60008060408385031215612e6657612e65612678565b5b6000612e74858286016128c5565b925050602083013567ffffffffffffffff811115612e9557612e9461267d565b5b612ea185828601612e21565b9150509250929050565b60008060408385031215612ec257612ec1612678565b5b6000612ed0858286016128c5565b9250506020612ee1858286016128c5565b9150509250929050565b60008060408385031215612f0257612f01612678565b5b6000612f10858286016128c5565b925050602083013567ffffffffffffffff811115612f3157612f3061267d565b5b612f3d85828601612d6c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f8e57607f821691505b602082108103612fa157612fa0612f47565b5b50919050565b6000606082019050612fbc6000830186612821565b612fc9602083018561291a565b612fd66040830184612821565b949350505050565b6000604082019050612ff36000830185612821565b613000602083018461291a565b9392505050565b7f4e6f204554482062616c616e636520746f207769746864726177000000000000600082015250565b600061303d601a83612748565b915061304882613007565b602082019050919050565b6000602082019050818103600083015261306c81613030565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130dc8261284b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361310e5761310d6130a2565b5b600182019050919050565b7f43616c6c6572206973206e6f7420746865206f776e6572206f72206d696e746560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613175602183612748565b915061318082613119565b604082019050919050565b600060208201905081810360008301526131a481613168565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e6572206f7220616e20616460008201527f6d696e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613207602383612748565b9150613212826131ab565b604082019050919050565b60006020820190508181036000830152613236816131fa565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006132648261323d565b61326e8185613248565b935061327e818560208601612759565b61328781612783565b840191505092915050565b60006080820190506132a76000830187612821565b6132b46020830186612821565b6132c1604083018561291a565b81810360608301526132d38184613259565b905095945050505050565b6000815190506132ed816126ae565b92915050565b60006020828403121561330957613308612678565b5b6000613317848285016132de565b91505092915050565b600081905092915050565b60006133368261273d565b6133408185613320565b9350613350818560208601612759565b80840191505092915050565b6000613368828561332b565b9150613374828461332b565b91508190509392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026133e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826133a5565b6133ec86836133a5565b95508019841693508086168417925050509392505050565b6000819050919050565b600061342961342461341f8461284b565b613404565b61284b565b9050919050565b6000819050919050565b6134438361340e565b61345761344f82613430565b8484546133b2565b825550505050565b600090565b61346c61345f565b61347781848461343a565b505050565b5b8181101561349b57613490600082613464565b60018101905061347d565b5050565b601f8211156134e0576134b181613380565b6134ba84613395565b810160208510156134c9578190505b6134dd6134d585613395565b83018261347c565b50505b505050565b600082821c905092915050565b6000613503600019846008026134e5565b1980831691505092915050565b600061351c83836134f2565b9150826002028217905092915050565b6135358261273d565b67ffffffffffffffff81111561354e5761354d612b1a565b5b6135588254612f76565b61356382828561349f565b600060209050601f8311600181146135965760008415613584578287015190505b61358e8582613510565b8655506135f6565b601f1984166135a486613380565b60005b828110156135cc578489015182556001820191506020850194506020810190506135a7565b868310156135e957848901516135e5601f8916826134f2565b8355505b6001600288020188555050505b505050505050565b60006136098261284b565b91506136148361284b565b925082820390508181111561362c5761362b6130a2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea264697066735822122051106d71fda1bef13f3daf7d17b9c307b8bc98d57d53577d61a0c3c01decdcfc64736f6c63430008140033