6080604052670de0b6b3a76400006000196200001c91906200072a565b6000196200002b919062000791565b600655600060085560056009556000600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f5573e5618327446fc4f6ce8b106803a66294d3bdce33601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e5618327446fc4f6ce8b106803a66294d3bdce33601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066470de4df82000060165566470de4df82000060175566038d7ea4c680006018553480156200018257600080fd5b50600062000195620006c060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024a620006c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000354919062000836565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e2919062000836565b6040518363ffffffff1660e01b81526004016200040192919062000879565b6020604051808303816000875af115801562000421573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000447919062000836565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200049d620006c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200064a620006c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006b19190620008b7565b60405180910390a350620008d4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073782620006f1565b91506200074483620006f1565b925082620007575762000756620006fb565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079e82620006f1565b9150620007ab83620006f1565b9250828203905081811115620007c657620007c562000762565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007fe82620007d1565b9050919050565b6200081081620007f1565b81146200081c57600080fd5b50565b600081519050620008308162000805565b92915050565b6000602082840312156200084f576200084e620007cc565b5b60006200085f848285016200081f565b91505092915050565b6200087381620007f1565b82525050565b600060408201905062000890600083018562000868565b6200089f602083018462000868565b9392505050565b620008b181620006f1565b82525050565b6000602082019050620008ce6000830184620008a6565b92915050565b613e2680620008e46000396000f3fe6080604052600436106101c55760003560e01c806374010ece116100f7578063a2a957bb11610095578063c492f04611610064578063c492f04614610628578063dd62ed3e14610651578063ea1644d51461068e578063f2fde38b146106b7576101cc565b8063a2a957bb1461056e578063a9059cbb14610597578063bfd79284146105d4578063c3c8cd8014610611576101cc565b80638da5cb5b116100d15780638da5cb5b146104c45780638f9a55c0146104ef57806395d89b411461051a57806398a5c31514610545576101cc565b806374010ece146104335780637d1db4a51461045c5780637f2feddc14610487576101cc565b8063313ce567116101645780636d8aa8f81161013e5780636d8aa8f81461039f5780636fc3eaec146103c857806370a08231146103df578063715018a61461041c576101cc565b8063313ce5671461032057806349bd5a5e1461034b5780636b99905314610376576101cc565b80631694505e116101a05780631694505e1461026257806318160ddd1461028d57806323b872dd146102b85780632fd689e3146102f5576101cc565b8062b8cf2a146101d157806306fdde03146101fa578063095ea7b314610225576101cc565b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f860048036038101906101f39190612c66565b6106e0565b005b34801561020657600080fd5b5061020f61080a565b60405161021c9190612d2e565b60405180910390f35b34801561023157600080fd5b5061024c60048036038101906102479190612d86565b610847565b6040516102599190612de1565b60405180910390f35b34801561026e57600080fd5b50610277610865565b6040516102849190612e5b565b60405180910390f35b34801561029957600080fd5b506102a261088b565b6040516102af9190612e85565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da9190612ea0565b61089b565b6040516102ec9190612de1565b60405180910390f35b34801561030157600080fd5b5061030a610974565b6040516103179190612e85565b60405180910390f35b34801561032c57600080fd5b5061033561097a565b6040516103429190612f0f565b60405180910390f35b34801561035757600080fd5b50610360610983565b60405161036d9190612f39565b60405180910390f35b34801561038257600080fd5b5061039d60048036038101906103989190612f54565b6109a9565b005b3480156103ab57600080fd5b506103c660048036038101906103c19190612fad565b610a99565b005b3480156103d457600080fd5b506103dd610b4b565b005b3480156103eb57600080fd5b5061040660048036038101906104019190612f54565b610b5c565b6040516104139190612e85565b60405180910390f35b34801561042857600080fd5b50610431610bad565b005b34801561043f57600080fd5b5061045a60048036038101906104559190612fda565b610d00565b005b34801561046857600080fd5b50610471610e17565b60405161047e9190612e85565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a99190612f54565b610e1d565b6040516104bb9190612e85565b60405180910390f35b3480156104d057600080fd5b506104d9610e35565b6040516104e69190612f39565b60405180910390f35b3480156104fb57600080fd5b50610504610e5e565b6040516105119190612e85565b60405180910390f35b34801561052657600080fd5b5061052f610e64565b60405161053c9190612d2e565b60405180910390f35b34801561055157600080fd5b5061056c60048036038101906105679190612fda565b610ea1565b005b34801561057a57600080fd5b5061059560048036038101906105909190613007565b610f40565b005b3480156105a357600080fd5b506105be60048036038101906105b99190612d86565b611064565b6040516105cb9190612de1565b60405180910390f35b3480156105e057600080fd5b506105fb60048036038101906105f69190612f54565b611082565b6040516106089190612de1565b60405180910390f35b34801561061d57600080fd5b506106266110a2565b005b34801561063457600080fd5b5061064f600480360381019061064a91906130c9565b6110bb565b005b34801561065d57600080fd5b5061067860048036038101906106739190613129565b6111f5565b6040516106859190612e85565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190612fda565b61127c565b005b3480156106c357600080fd5b506106de60048036038101906106d99190612f54565b611393565b005b6106e8611554565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076c906131b5565b60405180910390fd5b60005b81518110156108065760016010600084848151811061079a576107996131d5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107fe90613233565b915050610778565b5050565b60606040518060400160405280600b81526020017f526f75676820576f726c64000000000000000000000000000000000000000000815250905090565b600061085b610854611554565b848461155c565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006108a8848484611725565b610969846108b4611554565b61096485604051806060016040528060288152602001613dc960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061091a611554565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc69092919063ffffffff16565b61155c565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b1611554565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a35906131b5565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610aa1611554565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b25906131b5565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b6000479050610b598161202a565b50565b6000610ba6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612096565b9050919050565b610bb5611554565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c39906131b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d08611554565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c906131b5565b60405180910390fd5b606481670de0b6b3a7640000610dab919061327b565b610db591906132ec565b6016819055506064670de0b6b3a7640000610dd091906132ec565b6016541015610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b9061338f565b60405180910390fd5b50565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600381526020017f5257420000000000000000000000000000000000000000000000000000000000815250905090565b610ea9611554565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2d906131b5565b60405180910390fd5b8060188190555050565b610f48611554565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc906131b5565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055506014600b54600954600a5460085461100991906133af565b61101391906133af565b61101d91906133af565b111561105e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110559061342f565b60405180910390fd5b50505050565b6000611078611071611554565b8484611725565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b60006110ad30610b5c565b90506110b881612104565b50565b6110c3611554565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611150576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611147906131b5565b60405180910390fd5b60005b838390508110156111ef578160056000868685818110611176576111756131d5565b5b905060200201602081019061118b9190612f54565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111e790613233565b915050611153565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611284611554565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611308906131b5565b60405180910390fd5b606481670de0b6b3a7640000611327919061327b565b61133191906132ec565b6017819055506064670de0b6b3a764000061134c91906132ec565b6017541015611390576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611387906134c1565b60405180910390fd5b50565b61139b611554565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141f906131b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90613553565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c2906135e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361163a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163190613677565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117189190612e85565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b90613709565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fa9061379b565b60405180910390fd5b60008111611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d9061382d565b60405180910390fd5b61184e610e35565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118bc575061188c610e35565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611cc557601560149054906101000a900460ff1661194b576118dd610e35565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461194a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611941906138bf565b60405180910390fd5b5b601654811115611990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119879061392b565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a345750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a906139bd565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b205760175481611ad584610b5c565b611adf91906133af565b10611b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1690613a4f565b60405180910390fd5b5b6000611b2b30610b5c565b9050600060185482101590506005601854611b46919061327b565b8210611b5e576005601854611b5b919061327b565b91505b808015611b76575060158054906101000a900460ff16155b8015611bd05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611be85750601560169054906101000a900460ff165b8015611c3e5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c945750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cc257611ca282612104565b600047905066b1a2bc2ec50000811115611cc057611cbf4761202a565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d6c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e1f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e1e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e2d5760009050611fb4565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ed85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ef057600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f9b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fb357600a54600c81905550600b54600d819055505b5b611fc08484848461237b565b50505050565b600083831115829061200e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120059190612d2e565b60405180910390fd5b506000838561201d9190613a6f565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612092573d6000803e3d6000fd5b5050565b60006006548211156120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d490613b15565b60405180910390fd5b60006120e76123a8565b90506120fc81846123d390919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561213b5761213a612ac5565b5b6040519080825280602002602001820160405280156121695781602001602082028036833780820191505090505b5090503081600081518110612181576121806131d5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224c9190613b4a565b816001815181106122605761225f6131d5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461155c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161232b959493929190613c70565b600060405180830381600087803b15801561234557600080fd5b505af1158015612359573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806123895761238861241d565b5b61239484848461245a565b806123a2576123a1612625565b5b50505050565b60008060006123b5612639565b915091506123cc81836123d390919063ffffffff16565b9250505090565b600061241583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612698565b905092915050565b6000600c5414801561243157506000600d54145b61245857600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061246c876126fb565b9550955095509550955095506124ca86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061255f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ad90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125ab8161280b565b6125b584836128c8565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126129190612e85565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061266d670de0b6b3a76400006006546123d390919063ffffffff16565b82101561268b57600654670de0b6b3a7640000935093505050612694565b81819350935050505b9091565b600080831182906126df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d69190612d2e565b60405180910390fd5b50600083856126ee91906132ec565b9050809150509392505050565b60008060008060008060008060006127188a600c54600d54612902565b92509250925060006127286123a8565b9050600080600061273b8e878787612998565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006127a583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fc6565b905092915050565b60008082846127bc91906133af565b905083811015612801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f890613d16565b60405180910390fd5b8091505092915050565b60006128156123a8565b9050600061282c8284612a2190919063ffffffff16565b905061288081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ad90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6128dd8260065461276390919063ffffffff16565b6006819055506128f8816007546127ad90919063ffffffff16565b6007819055505050565b60008060008061292e6064612920888a612a2190919063ffffffff16565b6123d390919063ffffffff16565b90506000612958606461294a888b612a2190919063ffffffff16565b6123d390919063ffffffff16565b9050600061298182612973858c61276390919063ffffffff16565b61276390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806129b18589612a2190919063ffffffff16565b905060006129c88689612a2190919063ffffffff16565b905060006129df8789612a2190919063ffffffff16565b90506000612a08826129fa858761276390919063ffffffff16565b61276390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612a335760009050612a95565b60008284612a41919061327b565b9050828482612a5091906132ec565b14612a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8790613da8565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612afd82612ab4565b810181811067ffffffffffffffff82111715612b1c57612b1b612ac5565b5b80604052505050565b6000612b2f612a9b565b9050612b3b8282612af4565b919050565b600067ffffffffffffffff821115612b5b57612b5a612ac5565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b9c82612b71565b9050919050565b612bac81612b91565b8114612bb757600080fd5b50565b600081359050612bc981612ba3565b92915050565b6000612be2612bdd84612b40565b612b25565b90508083825260208201905060208402830185811115612c0557612c04612b6c565b5b835b81811015612c2e5780612c1a8882612bba565b845260208401935050602081019050612c07565b5050509392505050565b600082601f830112612c4d57612c4c612aaf565b5b8135612c5d848260208601612bcf565b91505092915050565b600060208284031215612c7c57612c7b612aa5565b5b600082013567ffffffffffffffff811115612c9a57612c99612aaa565b5b612ca684828501612c38565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ce9578082015181840152602081019050612cce565b60008484015250505050565b6000612d0082612caf565b612d0a8185612cba565b9350612d1a818560208601612ccb565b612d2381612ab4565b840191505092915050565b60006020820190508181036000830152612d488184612cf5565b905092915050565b6000819050919050565b612d6381612d50565b8114612d6e57600080fd5b50565b600081359050612d8081612d5a565b92915050565b60008060408385031215612d9d57612d9c612aa5565b5b6000612dab85828601612bba565b9250506020612dbc85828601612d71565b9150509250929050565b60008115159050919050565b612ddb81612dc6565b82525050565b6000602082019050612df66000830184612dd2565b92915050565b6000819050919050565b6000612e21612e1c612e1784612b71565b612dfc565b612b71565b9050919050565b6000612e3382612e06565b9050919050565b6000612e4582612e28565b9050919050565b612e5581612e3a565b82525050565b6000602082019050612e706000830184612e4c565b92915050565b612e7f81612d50565b82525050565b6000602082019050612e9a6000830184612e76565b92915050565b600080600060608486031215612eb957612eb8612aa5565b5b6000612ec786828701612bba565b9350506020612ed886828701612bba565b9250506040612ee986828701612d71565b9150509250925092565b600060ff82169050919050565b612f0981612ef3565b82525050565b6000602082019050612f246000830184612f00565b92915050565b612f3381612b91565b82525050565b6000602082019050612f4e6000830184612f2a565b92915050565b600060208284031215612f6a57612f69612aa5565b5b6000612f7884828501612bba565b91505092915050565b612f8a81612dc6565b8114612f9557600080fd5b50565b600081359050612fa781612f81565b92915050565b600060208284031215612fc357612fc2612aa5565b5b6000612fd184828501612f98565b91505092915050565b600060208284031215612ff057612fef612aa5565b5b6000612ffe84828501612d71565b91505092915050565b6000806000806080858703121561302157613020612aa5565b5b600061302f87828801612d71565b945050602061304087828801612d71565b935050604061305187828801612d71565b925050606061306287828801612d71565b91505092959194509250565b600080fd5b60008083601f84011261308957613088612aaf565b5b8235905067ffffffffffffffff8111156130a6576130a561306e565b5b6020830191508360208202830111156130c2576130c1612b6c565b5b9250929050565b6000806000604084860312156130e2576130e1612aa5565b5b600084013567ffffffffffffffff811115613100576130ff612aaa565b5b61310c86828701613073565b9350935050602061311f86828701612f98565b9150509250925092565b600080604083850312156131405761313f612aa5565b5b600061314e85828601612bba565b925050602061315f85828601612bba565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061319f602083612cba565b91506131aa82613169565b602082019050919050565b600060208201905081810360008301526131ce81613192565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061323e82612d50565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132705761326f613204565b5b600182019050919050565b600061328682612d50565b915061329183612d50565b925082820261329f81612d50565b915082820484148315176132b6576132b5613204565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132f782612d50565b915061330283612d50565b925082613312576133116132bd565b5b828204905092915050565b7f4d617820547820416d6f756e74206d757374206265206d6f7265207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b6000613379602283612cba565b91506133848261331d565b604082019050919050565b600060208201905081810360008301526133a88161336c565b9050919050565b60006133ba82612d50565b91506133c583612d50565b92508282019050808211156133dd576133dc613204565b5b92915050565b7f546f74616c204665652073686f756c64206265206c657373207468616e203230600082015250565b6000613419602083612cba565b9150613424826133e3565b602082019050919050565b600060208201905081810360008301526134488161340c565b9050919050565b7f4d61782057616c6c65742053697a65206d757374206265206d6f72652074686160008201527f6e20312500000000000000000000000000000000000000000000000000000000602082015250565b60006134ab602483612cba565b91506134b68261344f565b604082019050919050565b600060208201905081810360008301526134da8161349e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061353d602683612cba565b9150613548826134e1565b604082019050919050565b6000602082019050818103600083015261356c81613530565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135cf602483612cba565b91506135da82613573565b604082019050919050565b600060208201905081810360008301526135fe816135c2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613661602283612cba565b915061366c82613605565b604082019050919050565b6000602082019050818103600083015261369081613654565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136f3602583612cba565b91506136fe82613697565b604082019050919050565b60006020820190508181036000830152613722816136e6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613785602383612cba565b915061379082613729565b604082019050919050565b600060208201905081810360008301526137b481613778565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613817602983612cba565b9150613822826137bb565b604082019050919050565b600060208201905081810360008301526138468161380a565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006138a9603f83612cba565b91506138b48261384d565b604082019050919050565b600060208201905081810360008301526138d88161389c565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613915601c83612cba565b9150613920826138df565b602082019050919050565b6000602082019050818103600083015261394481613908565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006139a7602383612cba565b91506139b28261394b565b604082019050919050565b600060208201905081810360008301526139d68161399a565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613a39602383612cba565b9150613a44826139dd565b604082019050919050565b60006020820190508181036000830152613a6881613a2c565b9050919050565b6000613a7a82612d50565b9150613a8583612d50565b9250828203905081811115613a9d57613a9c613204565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613aff602a83612cba565b9150613b0a82613aa3565b604082019050919050565b60006020820190508181036000830152613b2e81613af2565b9050919050565b600081519050613b4481612ba3565b92915050565b600060208284031215613b6057613b5f612aa5565b5b6000613b6e84828501613b35565b91505092915050565b6000819050919050565b6000613b9c613b97613b9284613b77565b612dfc565b612d50565b9050919050565b613bac81613b81565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613be781612b91565b82525050565b6000613bf98383613bde565b60208301905092915050565b6000602082019050919050565b6000613c1d82613bb2565b613c278185613bbd565b9350613c3283613bce565b8060005b83811015613c63578151613c4a8882613bed565b9750613c5583613c05565b925050600181019050613c36565b5085935050505092915050565b600060a082019050613c856000830188612e76565b613c926020830187613ba3565b8181036040830152613ca48186613c12565b9050613cb36060830185612f2a565b613cc06080830184612e76565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d00601b83612cba565b9150613d0b82613cca565b602082019050919050565b60006020820190508181036000830152613d2f81613cf3565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d92602183612cba565b9150613d9d82613d36565b604082019050919050565b60006020820190508181036000830152613dc181613d85565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c447da90a13b4895101cd87d4a0b03af9475ed728d093b2e530a35361d78eed064736f6c63430008110033