0x60806040526004361061014e575f3560e01c80637d1db4a5116100b5578063a2a957bb1161006e578063a2a957bb14610467578063a9059cbb1461048f578063c492f046146104cb578063dd62ed3e146104f3578063ea1644d51461052f578063f2fde38b1461055757610155565b80637d1db4a51461036f5780638da5cb5b146103995780638f70ccf7146103c35780638f9a55c0146103eb57806395d89b411461041557806398a5c3151461043f57610155565b8063313ce56711610107578063313ce5671461027957806349bd5a5e146102a35780636d8aa8f8146102cd57806370a08231146102f5578063715018a61461033157806374010ece1461034757610155565b806306fdde0314610159578063095ea7b3146101835780631694505e146101bf57806318160ddd146101e957806323b872dd146102135780632fd689e31461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d61057f565b60405161017a919061250a565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a491906125bf565b6105bc565b6040516101b69190612617565b60405180910390f35b3480156101ca575f80fd5b506101d36105d9565b6040516101e0919061268b565b60405180910390f35b3480156101f4575f80fd5b506101fd6105fe565b60405161020a91906126b3565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906126cc565b61060d565b6040516102469190612617565b60405180910390f35b34801561025a575f80fd5b506102636106e1565b60405161027091906126b3565b60405180910390f35b348015610284575f80fd5b5061028d6106e7565b60405161029a9190612737565b60405180910390f35b3480156102ae575f80fd5b506102b76106ef565b6040516102c4919061275f565b60405180910390f35b3480156102d8575f80fd5b506102f360048036038101906102ee91906127a2565b610714565b005b348015610300575f80fd5b5061031b600480360381019061031691906127cd565b6107c5565b60405161032891906126b3565b60405180910390f35b34801561033c575f80fd5b50610345610813565b005b348015610352575f80fd5b5061036d600480360381019061036891906127f8565b610961565b005b34801561037a575f80fd5b506103836109ff565b60405161039091906126b3565b60405180910390f35b3480156103a4575f80fd5b506103ad610a05565b6040516103ba919061275f565b60405180910390f35b3480156103ce575f80fd5b506103e960048036038101906103e491906127a2565b610a2c565b005b3480156103f6575f80fd5b506103ff610add565b60405161040c91906126b3565b60405180910390f35b348015610420575f80fd5b50610429610ae3565b604051610436919061250a565b60405180910390f35b34801561044a575f80fd5b50610465600480360381019061046091906127f8565b610b20565b005b348015610472575f80fd5b5061048d60048036038101906104889190612823565b610bbe565b005b34801561049a575f80fd5b506104b560048036038101906104b091906125bf565b610c74565b6040516104c29190612617565b60405180910390f35b3480156104d6575f80fd5b506104f160048036038101906104ec91906128e8565b610c91565b005b3480156104fe575f80fd5b5061051960048036038101906105149190612945565b610dc6565b60405161052691906126b3565b60405180910390f35b34801561053a575f80fd5b50610555600480360381019061055091906127f8565b610e48565b005b348015610562575f80fd5b5061057d600480360381019061057891906127cd565b610ee6565b005b60606040518060400160405280600681526020017f446f6e6174650000000000000000000000000000000000000000000000000000815250905090565b5f6105cf6105c86110a3565b84846110aa565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b5f61061984848461126d565b6106d6846106256110a3565b6106d1856040518060600160405280602881526020016133a16028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106886110a3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119f29092919063ffffffff16565b6110aa565b600190509392505050565b60165481565b5f6009905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61071c6110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079f906129cd565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b5f61080c60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a54565b9050919050565b61081b6110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089e906129cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109696110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec906129cd565b60405180910390fd5b8060148190555050565b60145481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a346110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab7906129cd565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60155481565b60606040518060400160405280600681526020017f444f4e4154450000000000000000000000000000000000000000000000000000815250905090565b610b286110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bab906129cd565b60405180910390fd5b8060168190555050565b610bc66110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c49906129cd565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f610c87610c806110a3565b848461126d565b6001905092915050565b610c996110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1c906129cd565b60405180910390fd5b5f5b83839050811015610dc0578160055f868685818110610d4957610d486129eb565b5b9050602002016020810190610d5e91906127cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610db890612a45565b915050610d27565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610e506110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed3906129cd565b60405180910390fd5b8060158190555050565b610eee6110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f71906129cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf90612afc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110f90612b8a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90612c18565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161126091906126b3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290612ca6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612d34565b60405180910390fd5b5f811161138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612dc2565b60405180910390fd5b611393610a05565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561140157506113d1610a05565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116ff57601360149054906101000a900460ff1661149057611422610a05565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612e50565b60405180910390fd5b5b6014548111156114d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cc90612eb8565b60405180910390fd5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146115815760155481611536846107c5565b6115409190612ed6565b10611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157790612f79565b60405180910390fd5b5b5f61158b306107c5565b90505f601654821015905060145482106115a55760145491505b8080156115bf5750601360159054906101000a900460ff16155b8015611618575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116305750601360169054906101000a900460ff165b8015611683575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156116d6575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116fc576116e482611ac0565b5f4790505f8111156116fa576116f947611d2b565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061179f575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611850575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561184f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561185d575f90506119e0565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611906575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561191e57600854600c81905550600954600d819055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119c7575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119df57600a54600c81905550600b54600d819055505b5b6119ec84848484611d93565b50505050565b5f838311158290611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a30919061250a565b60405180910390fd5b505f8385611a479190612f97565b9050809150509392505050565b5f600654821115611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a919061303a565b60405180910390fd5b5f611aa3611dc0565b9050611ab88184611de990919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611af757611af6613058565b5b604051908082528060200260200182016040528015611b255781602001602082028036833780820191505090505b50905030815f81518110611b3c57611b3b6129eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c049190613099565b81600181518110611c1857611c176129eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c7e3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110aa565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ce09594939291906131b4565b5f604051808303815f87803b158015611cf7575f80fd5b505af1158015611d09573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d8f573d5f803e3d5ffd5b5050565b80611da157611da0611e32565b5b611dac848484611e6b565b80611dba57611db961202b565b5b50505050565b5f805f611dcb61203f565b91509150611de28183611de990919063ffffffff16565b9250505090565b5f611e2a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061209b565b905092915050565b5f600c54148015611e4457505f600d54145b611e6957600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80611e7a876120fc565b955095509550955095509550611ed68660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215c90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f678560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fb181612202565b611fbb84836122b9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161201891906126b3565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f67016345785d8a0000905061207067016345785d8a0000600654611de990919063ffffffff16565b82101561208e5760065467016345785d8a0000935093505050612097565b81819350935050505b9091565b5f80831182906120e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d8919061250a565b60405180910390fd5b505f83856120ef9190613239565b9050809150509392505050565b5f805f805f805f805f6121148a600c54600d546122f3565b9250925092505f612123611dc0565b90505f805f6121348e878787612385565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61219d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119f2565b905092915050565b5f8082846121b39190612ed6565b9050838110156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906132b3565b60405180910390fd5b8091505092915050565b5f61220b611dc0565b90505f612221828461240990919063ffffffff16565b90506122738160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6122ce8260065461215c90919063ffffffff16565b6006819055506122e9816007546121a590919063ffffffff16565b6007819055505050565b5f805f8061231d606461230f888a61240990919063ffffffff16565b611de990919063ffffffff16565b90505f6123466064612338888b61240990919063ffffffff16565b611de990919063ffffffff16565b90505f61236e82612360858c61215c90919063ffffffff16565b61215c90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061239c858961240990919063ffffffff16565b90505f6123b2868961240990919063ffffffff16565b90505f6123c8878961240990919063ffffffff16565b90505f6123f0826123e2858761215c90919063ffffffff16565b61215c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612419575f905061247a565b5f828461242691906132d1565b90508284826124359190613239565b14612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c90613382565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124b757808201518184015260208101905061249c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124dc82612480565b6124e6818561248a565b93506124f681856020860161249a565b6124ff816124c2565b840191505092915050565b5f6020820190508181035f83015261252281846124d2565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61255b82612532565b9050919050565b61256b81612551565b8114612575575f80fd5b50565b5f8135905061258681612562565b92915050565b5f819050919050565b61259e8161258c565b81146125a8575f80fd5b50565b5f813590506125b981612595565b92915050565b5f80604083850312156125d5576125d461252a565b5b5f6125e285828601612578565b92505060206125f3858286016125ab565b9150509250929050565b5f8115159050919050565b612611816125fd565b82525050565b5f60208201905061262a5f830184612608565b92915050565b5f819050919050565b5f61265361264e61264984612532565b612630565b612532565b9050919050565b5f61266482612639565b9050919050565b5f6126758261265a565b9050919050565b6126858161266b565b82525050565b5f60208201905061269e5f83018461267c565b92915050565b6126ad8161258c565b82525050565b5f6020820190506126c65f8301846126a4565b92915050565b5f805f606084860312156126e3576126e261252a565b5b5f6126f086828701612578565b935050602061270186828701612578565b9250506040612712868287016125ab565b9150509250925092565b5f60ff82169050919050565b6127318161271c565b82525050565b5f60208201905061274a5f830184612728565b92915050565b61275981612551565b82525050565b5f6020820190506127725f830184612750565b92915050565b612781816125fd565b811461278b575f80fd5b50565b5f8135905061279c81612778565b92915050565b5f602082840312156127b7576127b661252a565b5b5f6127c48482850161278e565b91505092915050565b5f602082840312156127e2576127e161252a565b5b5f6127ef84828501612578565b91505092915050565b5f6020828403121561280d5761280c61252a565b5b5f61281a848285016125ab565b91505092915050565b5f805f806080858703121561283b5761283a61252a565b5b5f612848878288016125ab565b9450506020612859878288016125ab565b935050604061286a878288016125ab565b925050606061287b878288016125ab565b91505092959194509250565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126128a8576128a7612887565b5b8235905067ffffffffffffffff8111156128c5576128c461288b565b5b6020830191508360208202830111156128e1576128e061288f565b5b9250929050565b5f805f604084860312156128ff576128fe61252a565b5b5f84013567ffffffffffffffff81111561291c5761291b61252e565b5b61292886828701612893565b9350935050602061293b8682870161278e565b9150509250925092565b5f806040838503121561295b5761295a61252a565b5b5f61296885828601612578565b925050602061297985828601612578565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129b760208361248a565b91506129c282612983565b602082019050919050565b5f6020820190508181035f8301526129e4816129ab565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a4f8261258c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a8157612a80612a18565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ae660268361248a565b9150612af182612a8c565b604082019050919050565b5f6020820190508181035f830152612b1381612ada565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b7460248361248a565b9150612b7f82612b1a565b604082019050919050565b5f6020820190508181035f830152612ba181612b68565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c0260228361248a565b9150612c0d82612ba8565b604082019050919050565b5f6020820190508181035f830152612c2f81612bf6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c9060258361248a565b9150612c9b82612c36565b604082019050919050565b5f6020820190508181035f830152612cbd81612c84565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d1e60238361248a565b9150612d2982612cc4565b604082019050919050565b5f6020820190508181035f830152612d4b81612d12565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612dac60298361248a565b9150612db782612d52565b604082019050919050565b5f6020820190508181035f830152612dd981612da0565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f612e3a603f8361248a565b9150612e4582612de0565b604082019050919050565b5f6020820190508181035f830152612e6781612e2e565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f612ea2601c8361248a565b9150612ead82612e6e565b602082019050919050565b5f6020820190508181035f830152612ecf81612e96565b9050919050565b5f612ee08261258c565b9150612eeb8361258c565b9250828201905080821115612f0357612f02612a18565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f612f6360238361248a565b9150612f6e82612f09565b604082019050919050565b5f6020820190508181035f830152612f9081612f57565b9050919050565b5f612fa18261258c565b9150612fac8361258c565b9250828203905081811115612fc457612fc3612a18565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613024602a8361248a565b915061302f82612fca565b604082019050919050565b5f6020820190508181035f83015261305181613018565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061309381612562565b92915050565b5f602082840312156130ae576130ad61252a565b5b5f6130bb84828501613085565b91505092915050565b5f819050919050565b5f6130e76130e26130dd846130c4565b612630565b61258c565b9050919050565b6130f7816130cd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61312f81612551565b82525050565b5f6131408383613126565b60208301905092915050565b5f602082019050919050565b5f613162826130fd565b61316c8185613107565b935061317783613117565b805f5b838110156131a757815161318e8882613135565b97506131998361314c565b92505060018101905061317a565b5085935050505092915050565b5f60a0820190506131c75f8301886126a4565b6131d460208301876130ee565b81810360408301526131e68186613158565b90506131f56060830185612750565b61320260808301846126a4565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132438261258c565b915061324e8361258c565b92508261325e5761325d61320c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61329d601b8361248a565b91506132a882613269565b602082019050919050565b5f6020820190508181035f8301526132ca81613291565b9050919050565b5f6132db8261258c565b91506132e68361258c565b92508282026132f48161258c565b9150828204841483151761330b5761330a612a18565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61336c60218361248a565b915061337782613312565b604082019050919050565b5f6020820190508181035f83015261339981613360565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206f894427805f958db646570a2828f9693d8a035a51821689fac3006c2003537a64736f6c63430008140033
0x608060405267016345785d8a00005f196200001b9190620006e0565b5f1962000029919062000744565b6006555f6008555f6009555f600a555f600b55600a54600c55600b54600d55600c54600e55600d54600f5573c9e96188ec22792f3fb3aa86fe6bd7ab89b752cd60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c9e96188ec22792f3fb3aa86fe6bd7ab89b752cd60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601360156101000a81548160ff0219169083151502179055506001601360166101000a81548160ff02191690831515021790555066071afd498d000060145566071afd498d000060155564174876e8006016553480156200015c575f80fd5b505f6200016e6200067c60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f620002206200067c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003259190620007e3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b19190620007e3565b6040518363ffffffff1660e01b8152600401620003d092919062000824565b6020604051808303815f875af1158015620003ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004139190620007e3565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004676200068360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006076200067c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200066d919062000860565b60405180910390a3506200087b565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620006ec82620006aa565b9150620006f983620006aa565b9250826200070c576200070b620006b3565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200075082620006aa565b91506200075d83620006aa565b925082820390508181111562000778576200077762000717565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007ad8262000782565b9050919050565b620007bf81620007a1565b8114620007ca575f80fd5b50565b5f81519050620007dd81620007b4565b92915050565b5f60208284031215620007fb57620007fa6200077e565b5b5f6200080a84828501620007cd565b91505092915050565b6200081e81620007a1565b82525050565b5f604082019050620008395f83018562000813565b62000848602083018462000813565b9392505050565b6200085a81620006aa565b82525050565b5f602082019050620008755f8301846200084f565b92915050565b6133fe80620008895f395ff3fe60806040526004361061014e575f3560e01c80637d1db4a5116100b5578063a2a957bb1161006e578063a2a957bb14610467578063a9059cbb1461048f578063c492f046146104cb578063dd62ed3e146104f3578063ea1644d51461052f578063f2fde38b1461055757610155565b80637d1db4a51461036f5780638da5cb5b146103995780638f70ccf7146103c35780638f9a55c0146103eb57806395d89b411461041557806398a5c3151461043f57610155565b8063313ce56711610107578063313ce5671461027957806349bd5a5e146102a35780636d8aa8f8146102cd57806370a08231146102f5578063715018a61461033157806374010ece1461034757610155565b806306fdde0314610159578063095ea7b3146101835780631694505e146101bf57806318160ddd146101e957806323b872dd146102135780632fd689e31461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d61057f565b60405161017a919061250a565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a491906125bf565b6105bc565b6040516101b69190612617565b60405180910390f35b3480156101ca575f80fd5b506101d36105d9565b6040516101e0919061268b565b60405180910390f35b3480156101f4575f80fd5b506101fd6105fe565b60405161020a91906126b3565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906126cc565b61060d565b6040516102469190612617565b60405180910390f35b34801561025a575f80fd5b506102636106e1565b60405161027091906126b3565b60405180910390f35b348015610284575f80fd5b5061028d6106e7565b60405161029a9190612737565b60405180910390f35b3480156102ae575f80fd5b506102b76106ef565b6040516102c4919061275f565b60405180910390f35b3480156102d8575f80fd5b506102f360048036038101906102ee91906127a2565b610714565b005b348015610300575f80fd5b5061031b600480360381019061031691906127cd565b6107c5565b60405161032891906126b3565b60405180910390f35b34801561033c575f80fd5b50610345610813565b005b348015610352575f80fd5b5061036d600480360381019061036891906127f8565b610961565b005b34801561037a575f80fd5b506103836109ff565b60405161039091906126b3565b60405180910390f35b3480156103a4575f80fd5b506103ad610a05565b6040516103ba919061275f565b60405180910390f35b3480156103ce575f80fd5b506103e960048036038101906103e491906127a2565b610a2c565b005b3480156103f6575f80fd5b506103ff610add565b60405161040c91906126b3565b60405180910390f35b348015610420575f80fd5b50610429610ae3565b604051610436919061250a565b60405180910390f35b34801561044a575f80fd5b50610465600480360381019061046091906127f8565b610b20565b005b348015610472575f80fd5b5061048d60048036038101906104889190612823565b610bbe565b005b34801561049a575f80fd5b506104b560048036038101906104b091906125bf565b610c74565b6040516104c29190612617565b60405180910390f35b3480156104d6575f80fd5b506104f160048036038101906104ec91906128e8565b610c91565b005b3480156104fe575f80fd5b5061051960048036038101906105149190612945565b610dc6565b60405161052691906126b3565b60405180910390f35b34801561053a575f80fd5b50610555600480360381019061055091906127f8565b610e48565b005b348015610562575f80fd5b5061057d600480360381019061057891906127cd565b610ee6565b005b60606040518060400160405280600681526020017f446f6e6174650000000000000000000000000000000000000000000000000000815250905090565b5f6105cf6105c86110a3565b84846110aa565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b5f61061984848461126d565b6106d6846106256110a3565b6106d1856040518060600160405280602881526020016133a16028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106886110a3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119f29092919063ffffffff16565b6110aa565b600190509392505050565b60165481565b5f6009905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61071c6110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079f906129cd565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b5f61080c60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a54565b9050919050565b61081b6110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089e906129cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109696110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec906129cd565b60405180910390fd5b8060148190555050565b60145481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a346110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab7906129cd565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60155481565b60606040518060400160405280600681526020017f444f4e4154450000000000000000000000000000000000000000000000000000815250905090565b610b286110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bab906129cd565b60405180910390fd5b8060168190555050565b610bc66110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c49906129cd565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f610c87610c806110a3565b848461126d565b6001905092915050565b610c996110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1c906129cd565b60405180910390fd5b5f5b83839050811015610dc0578160055f868685818110610d4957610d486129eb565b5b9050602002016020810190610d5e91906127cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610db890612a45565b915050610d27565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610e506110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed3906129cd565b60405180910390fd5b8060158190555050565b610eee6110a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f71906129cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf90612afc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110f90612b8a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90612c18565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161126091906126b3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290612ca6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612d34565b60405180910390fd5b5f811161138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612dc2565b60405180910390fd5b611393610a05565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561140157506113d1610a05565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116ff57601360149054906101000a900460ff1661149057611422610a05565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612e50565b60405180910390fd5b5b6014548111156114d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cc90612eb8565b60405180910390fd5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146115815760155481611536846107c5565b6115409190612ed6565b10611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157790612f79565b60405180910390fd5b5b5f61158b306107c5565b90505f601654821015905060145482106115a55760145491505b8080156115bf5750601360159054906101000a900460ff16155b8015611618575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116305750601360169054906101000a900460ff165b8015611683575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156116d6575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116fc576116e482611ac0565b5f4790505f8111156116fa576116f947611d2b565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061179f575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611850575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561184f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561185d575f90506119e0565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611906575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561191e57600854600c81905550600954600d819055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119c7575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119df57600a54600c81905550600b54600d819055505b5b6119ec84848484611d93565b50505050565b5f838311158290611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a30919061250a565b60405180910390fd5b505f8385611a479190612f97565b9050809150509392505050565b5f600654821115611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a919061303a565b60405180910390fd5b5f611aa3611dc0565b9050611ab88184611de990919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611af757611af6613058565b5b604051908082528060200260200182016040528015611b255781602001602082028036833780820191505090505b50905030815f81518110611b3c57611b3b6129eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c049190613099565b81600181518110611c1857611c176129eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c7e3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110aa565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ce09594939291906131b4565b5f604051808303815f87803b158015611cf7575f80fd5b505af1158015611d09573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d8f573d5f803e3d5ffd5b5050565b80611da157611da0611e32565b5b611dac848484611e6b565b80611dba57611db961202b565b5b50505050565b5f805f611dcb61203f565b91509150611de28183611de990919063ffffffff16565b9250505090565b5f611e2a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061209b565b905092915050565b5f600c54148015611e4457505f600d54145b611e6957600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80611e7a876120fc565b955095509550955095509550611ed68660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215c90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f678560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fb181612202565b611fbb84836122b9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161201891906126b3565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f67016345785d8a0000905061207067016345785d8a0000600654611de990919063ffffffff16565b82101561208e5760065467016345785d8a0000935093505050612097565b81819350935050505b9091565b5f80831182906120e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d8919061250a565b60405180910390fd5b505f83856120ef9190613239565b9050809150509392505050565b5f805f805f805f805f6121148a600c54600d546122f3565b9250925092505f612123611dc0565b90505f805f6121348e878787612385565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61219d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119f2565b905092915050565b5f8082846121b39190612ed6565b9050838110156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906132b3565b60405180910390fd5b8091505092915050565b5f61220b611dc0565b90505f612221828461240990919063ffffffff16565b90506122738160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6122ce8260065461215c90919063ffffffff16565b6006819055506122e9816007546121a590919063ffffffff16565b6007819055505050565b5f805f8061231d606461230f888a61240990919063ffffffff16565b611de990919063ffffffff16565b90505f6123466064612338888b61240990919063ffffffff16565b611de990919063ffffffff16565b90505f61236e82612360858c61215c90919063ffffffff16565b61215c90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061239c858961240990919063ffffffff16565b90505f6123b2868961240990919063ffffffff16565b90505f6123c8878961240990919063ffffffff16565b90505f6123f0826123e2858761215c90919063ffffffff16565b61215c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612419575f905061247a565b5f828461242691906132d1565b90508284826124359190613239565b14612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c90613382565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124b757808201518184015260208101905061249c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124dc82612480565b6124e6818561248a565b93506124f681856020860161249a565b6124ff816124c2565b840191505092915050565b5f6020820190508181035f83015261252281846124d2565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61255b82612532565b9050919050565b61256b81612551565b8114612575575f80fd5b50565b5f8135905061258681612562565b92915050565b5f819050919050565b61259e8161258c565b81146125a8575f80fd5b50565b5f813590506125b981612595565b92915050565b5f80604083850312156125d5576125d461252a565b5b5f6125e285828601612578565b92505060206125f3858286016125ab565b9150509250929050565b5f8115159050919050565b612611816125fd565b82525050565b5f60208201905061262a5f830184612608565b92915050565b5f819050919050565b5f61265361264e61264984612532565b612630565b612532565b9050919050565b5f61266482612639565b9050919050565b5f6126758261265a565b9050919050565b6126858161266b565b82525050565b5f60208201905061269e5f83018461267c565b92915050565b6126ad8161258c565b82525050565b5f6020820190506126c65f8301846126a4565b92915050565b5f805f606084860312156126e3576126e261252a565b5b5f6126f086828701612578565b935050602061270186828701612578565b9250506040612712868287016125ab565b9150509250925092565b5f60ff82169050919050565b6127318161271c565b82525050565b5f60208201905061274a5f830184612728565b92915050565b61275981612551565b82525050565b5f6020820190506127725f830184612750565b92915050565b612781816125fd565b811461278b575f80fd5b50565b5f8135905061279c81612778565b92915050565b5f602082840312156127b7576127b661252a565b5b5f6127c48482850161278e565b91505092915050565b5f602082840312156127e2576127e161252a565b5b5f6127ef84828501612578565b91505092915050565b5f6020828403121561280d5761280c61252a565b5b5f61281a848285016125ab565b91505092915050565b5f805f806080858703121561283b5761283a61252a565b5b5f612848878288016125ab565b9450506020612859878288016125ab565b935050604061286a878288016125ab565b925050606061287b878288016125ab565b91505092959194509250565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126128a8576128a7612887565b5b8235905067ffffffffffffffff8111156128c5576128c461288b565b5b6020830191508360208202830111156128e1576128e061288f565b5b9250929050565b5f805f604084860312156128ff576128fe61252a565b5b5f84013567ffffffffffffffff81111561291c5761291b61252e565b5b61292886828701612893565b9350935050602061293b8682870161278e565b9150509250925092565b5f806040838503121561295b5761295a61252a565b5b5f61296885828601612578565b925050602061297985828601612578565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129b760208361248a565b91506129c282612983565b602082019050919050565b5f6020820190508181035f8301526129e4816129ab565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a4f8261258c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a8157612a80612a18565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ae660268361248a565b9150612af182612a8c565b604082019050919050565b5f6020820190508181035f830152612b1381612ada565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b7460248361248a565b9150612b7f82612b1a565b604082019050919050565b5f6020820190508181035f830152612ba181612b68565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c0260228361248a565b9150612c0d82612ba8565b604082019050919050565b5f6020820190508181035f830152612c2f81612bf6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c9060258361248a565b9150612c9b82612c36565b604082019050919050565b5f6020820190508181035f830152612cbd81612c84565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d1e60238361248a565b9150612d2982612cc4565b604082019050919050565b5f6020820190508181035f830152612d4b81612d12565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612dac60298361248a565b9150612db782612d52565b604082019050919050565b5f6020820190508181035f830152612dd981612da0565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f612e3a603f8361248a565b9150612e4582612de0565b604082019050919050565b5f6020820190508181035f830152612e6781612e2e565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f612ea2601c8361248a565b9150612ead82612e6e565b602082019050919050565b5f6020820190508181035f830152612ecf81612e96565b9050919050565b5f612ee08261258c565b9150612eeb8361258c565b9250828201905080821115612f0357612f02612a18565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f612f6360238361248a565b9150612f6e82612f09565b604082019050919050565b5f6020820190508181035f830152612f9081612f57565b9050919050565b5f612fa18261258c565b9150612fac8361258c565b9250828203905081811115612fc457612fc3612a18565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613024602a8361248a565b915061302f82612fca565b604082019050919050565b5f6020820190508181035f83015261305181613018565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061309381612562565b92915050565b5f602082840312156130ae576130ad61252a565b5b5f6130bb84828501613085565b91505092915050565b5f819050919050565b5f6130e76130e26130dd846130c4565b612630565b61258c565b9050919050565b6130f7816130cd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61312f81612551565b82525050565b5f6131408383613126565b60208301905092915050565b5f602082019050919050565b5f613162826130fd565b61316c8185613107565b935061317783613117565b805f5b838110156131a757815161318e8882613135565b97506131998361314c565b92505060018101905061317a565b5085935050505092915050565b5f60a0820190506131c75f8301886126a4565b6131d460208301876130ee565b81810360408301526131e68186613158565b90506131f56060830185612750565b61320260808301846126a4565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132438261258c565b915061324e8361258c565b92508261325e5761325d61320c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61329d601b8361248a565b91506132a882613269565b602082019050919050565b5f6020820190508181035f8301526132ca81613291565b9050919050565b5f6132db8261258c565b91506132e68361258c565b92508282026132f48161258c565b9150828204841483151761330b5761330a612a18565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61336c60218361248a565b915061337782613312565b604082019050919050565b5f6020820190508181035f83015261339981613360565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206f894427805f958db646570a2828f9693d8a035a51821689fac3006c2003537a64736f6c63430008140033