6080604052600060095567011c37937e080000600a556000600c60006101000a81548160ff0219169083151502179055503480156200003d57600080fd5b5060405162003fb538038062003fb58339818101604052810190620000639190620003d7565b6040518060400160405280600b81526020017f436f6666656520436c75620000000000000000000000000000000000000000008152506040518060400160405280600681526020017f434f4646454500000000000000000000000000000000000000000000000000008152508160029080519060200190620000e7929190620002a9565b50806003908051906020019062000100929190620002a9565b505050600062000115620001cc60201b60201c565b905080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c581620001d460201b60201c565b506200062f565b600033905090565b620001e4620001cc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200020a6200027f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000263576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200025a906200044f565b60405180910390fd5b80600b90805190602001906200027b929190620002a9565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620002b79062000517565b90600052602060002090601f016020900481019282620002db576000855562000327565b82601f10620002f657805160ff191683800117855562000327565b8280016001018555821562000327579182015b828111156200032657825182559160200191906001019062000309565b5b5090506200033691906200033a565b5090565b5b80821115620003555760008160009055506001016200033b565b5090565b6000620003706200036a846200049a565b62000471565b9050828152602081018484840111156200038f576200038e620005e6565b5b6200039c848285620004e1565b509392505050565b600082601f830112620003bc57620003bb620005e1565b5b8151620003ce84826020860162000359565b91505092915050565b600060208284031215620003f057620003ef620005f0565b5b600082015167ffffffffffffffff811115620004115762000410620005eb565b5b6200041f84828501620003a4565b91505092915050565b600062000437602083620004d0565b9150620004448262000606565b602082019050919050565b600060208201905081810360008301526200046a8162000428565b9050919050565b60006200047d62000490565b90506200048b82826200054d565b919050565b6000604051905090565b600067ffffffffffffffff821115620004b857620004b7620005b2565b5b620004c382620005f5565b9050602081019050919050565b600082825260208201905092915050565b60005b8381101562000501578082015181840152602081019050620004e4565b8381111562000511576000848401525b50505050565b600060028204905060018216806200053057607f821691505b6020821081141562000547576200054662000583565b5b50919050565b6200055882620005f5565b810181811067ffffffffffffffff821117156200057a5762000579620005b2565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b613976806200063f6000396000f3fe60806040526004361061019c5760003560e01c80636352211e116100ec578063a035b1fe1161008a578063b88d4fde11610064578063b88d4fde14610593578063c87b56dd146105bc578063e985e9c5146105f9578063f2fde38b146106365761019c565b8063a035b1fe14610516578063a22cb46514610541578063a2b40d191461056a5761019c565b80637ba5e621116100c65780637ba5e6211461047e5780638da5cb5b1461049557806395d89b41146104c057806399288dbb146104eb5761019c565b80636352211e146103ed57806370a082311461042a578063715018a6146104675761019c565b80632f745c591161015957806340c10f191161013357806340c10f191461034257806342842e0e1461035e5780634f6ccce71461038757806355f804b3146103c45761019c565b80632f745c59146102c357806332cb6b0c146103005780633ccfd60b1461032b5761019c565b806301ffc9a7146101a157806306fdde03146101de578063081812fc14610209578063095ea7b31461024657806318160ddd1461026f57806323b872dd1461029a575b600080fd5b3480156101ad57600080fd5b506101c860048036038101906101c39190612da1565b61065f565b6040516101d5919061311c565b60405180910390f35b3480156101ea57600080fd5b506101f36107a9565b6040516102009190613137565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612e44565b61083b565b60405161023d91906130b5565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190612d61565b6108b7565b005b34801561027b57600080fd5b506102846109c2565b6040516102919190613259565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc9190612c4b565b6109cc565b005b3480156102cf57600080fd5b506102ea60048036038101906102e59190612d61565b6109dc565b6040516102f79190613259565b60405180910390f35b34801561030c57600080fd5b50610315610bb5565b6040516103229190613259565b60405180910390f35b34801561033757600080fd5b50610340610bbb565b005b61035c60048036038101906103579190612d61565b610ce6565b005b34801561036a57600080fd5b5061038560048036038101906103809190612c4b565b610f02565b005b34801561039357600080fd5b506103ae60048036038101906103a99190612e44565b610f22565b6040516103bb9190613259565b60405180910390f35b3480156103d057600080fd5b506103eb60048036038101906103e69190612dfb565b611067565b005b3480156103f957600080fd5b50610414600480360381019061040f9190612e44565b6110fd565b60405161042191906130b5565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c9190612bde565b611113565b60405161045e9190613259565b60405180910390f35b34801561047357600080fd5b5061047c6111e3565b005b34801561048a57600080fd5b50610493611320565b005b3480156104a157600080fd5b506104aa6113c8565b6040516104b791906130b5565b60405180910390f35b3480156104cc57600080fd5b506104d56113f2565b6040516104e29190613137565b60405180910390f35b3480156104f757600080fd5b50610500611484565b60405161050d919061311c565b60405180910390f35b34801561052257600080fd5b5061052b611497565b6040516105389190613259565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190612d21565b61149d565b005b34801561057657600080fd5b50610591600480360381019061058c9190612e44565b611615565b005b34801561059f57600080fd5b506105ba60048036038101906105b59190612c9e565b61169b565b005b3480156105c857600080fd5b506105e360048036038101906105de9190612e44565b6116ee565b6040516105f09190613137565b60405180910390f35b34801561060557600080fd5b50610620600480360381019061061b9190612c0b565b61178d565b60405161062d919061311c565b60405180910390f35b34801561064257600080fd5b5061065d60048036038101906106589190612bde565b611821565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061072a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061079257507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107a257506107a1826119cd565b5b9050919050565b6060600280546107b890613514565b80601f01602080910402602001604051908101604052809291908181526020018280546107e490613514565b80156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b600061084682611a37565b61087c576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006108c2826110fd565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561092a576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610949611a71565b73ffffffffffffffffffffffffffffffffffffffff161415801561097b575061097981610974611a71565b61178d565b155b156109b2576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109bd838383611a79565b505050565b6000600954905090565b6109d7838383611b2b565b505050565b60006109e783611113565b8210610a1f576040517f0ddac30e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054905060008060005b83811015610ba9576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050806040015115610b085750610b9c565b600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610b4857806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b9a5786841415610b91578195505050505050610baf565b83806001019450505b505b8080600101915050610a2b565b50600080fd5b92915050565b6104d281565b610bc3611a71565b73ffffffffffffffffffffffffffffffffffffffff16610be16113c8565b73ffffffffffffffffffffffffffffffffffffffff1614610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e906131d9565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610c5d906130a0565b60006040518083038185875af1925050503d8060008114610c9a576040519150601f19603f3d011682016040523d82523d6000602084013e610c9f565b606091505b5050905080610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda90613219565b60405180910390fd5b50565b6000610cf06109c2565b90506104d28282610d019190613349565b1115610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d39906131f9565b60405180910390fd5b60008211610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90613159565b60405180910390fd5b610d8d6113c8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ea357600c60009054906101000a900460ff16610e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0590613199565b60405180910390fd5b600f821115610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990613239565b60405180910390fd5b81600a54610e6091906133d0565b341015610ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e99906131b9565b60405180910390fd5b5b8160096000828254610eb59190613349565b92505081905550610ec6838361201c565b7f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a82604051610ef59190613259565b60405180910390a1505050565b610f1d8383836040518060200160405280600081525061169b565b505050565b60008060005490506000805b8281101561102f576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050806040015161102157858314156110185781945050505050611062565b82806001019350505b508080600101915050610f2e565b506040517fa723001c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b61106f611a71565b73ffffffffffffffffffffffffffffffffffffffff1661108d6113c8565b73ffffffffffffffffffffffffffffffffffffffff16146110e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110da906131d9565b60405180910390fd5b80600b90805190602001906110f99291906129af565b5050565b60006111088261203a565b600001519050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561117b576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b6111eb611a71565b73ffffffffffffffffffffffffffffffffffffffff166112096113c8565b73ffffffffffffffffffffffffffffffffffffffff161461125f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611256906131d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611328611a71565b73ffffffffffffffffffffffffffffffffffffffff166113466113c8565b73ffffffffffffffffffffffffffffffffffffffff161461139c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611393906131d9565b60405180910390fd5b600c60009054906101000a900460ff1615600c60006101000a81548160ff021916908315150217905550565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461140190613514565b80601f016020809104026020016040519081016040528092919081815260200182805461142d90613514565b801561147a5780601f1061144f5761010080835404028352916020019161147a565b820191906000526020600020905b81548152906001019060200180831161145d57829003601f168201915b5050505050905090565b600c60009054906101000a900460ff1681565b600a5481565b6114a5611a71565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561150a576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611517611a71565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166115c4611a71565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611609919061311c565b60405180910390a35050565b61161d611a71565b73ffffffffffffffffffffffffffffffffffffffff1661163b6113c8565b73ffffffffffffffffffffffffffffffffffffffff1614611691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611688906131d9565b60405180910390fd5b80600a8190555050565b6116a6848484611b2b565b6116b2848484846122b6565b6116e8576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60606116f982611a37565b61172f576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611739612444565b905060008151141561175a5760405180602001604052806000815250611785565b80611764846124d6565b60405160200161177592919061307c565b6040516020818303038152906040525b915050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611829611a71565b73ffffffffffffffffffffffffffffffffffffffff166118476113c8565b73ffffffffffffffffffffffffffffffffffffffff161461189d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611894906131d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561190d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190490613179565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000805482108015611a6a575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000611b368261203a565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16611b5d611a71565b73ffffffffffffffffffffffffffffffffffffffff161480611b905750611b8f8260000151611b8a611a71565b61178d565b5b80611bd55750611b9e611a71565b73ffffffffffffffffffffffffffffffffffffffff16611bbd8461083b565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611c0e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614611c77576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611cde576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ceb8585856001612637565b611cfb6000848460000151611a79565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550836004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600085815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600184019050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611fac57600054811015611fab5782600001516004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082602001516004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b50828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612015858585600161263d565b5050505050565b612036828260405180602001604052806000815250612643565b5050565b612042612a35565b600082905060005481101561227f576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050806040015161227d57600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146121615780925050506122b1565b5b60011561227c57818060019003925050600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146122775780925050506122b1565b612162565b5b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60006122d78473ffffffffffffffffffffffffffffffffffffffff16612655565b15612437578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612300611a71565b8786866040518563ffffffff1660e01b815260040161232294939291906130d0565b602060405180830381600087803b15801561233c57600080fd5b505af192505050801561236d57506040513d601f19601f8201168201806040525081019061236a9190612dce565b60015b6123e7573d806000811461239d576040519150601f19603f3d011682016040523d82523d6000602084013e6123a2565b606091505b506000815114156123df576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061243c565b600190505b949350505050565b6060600b805461245390613514565b80601f016020809104026020016040519081016040528092919081815260200182805461247f90613514565b80156124cc5780601f106124a1576101008083540402835291602001916124cc565b820191906000526020600020905b8154815290600101906020018083116124af57829003601f168201915b5050505050905090565b6060600082141561251e576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612632565b600082905060005b6000821461255057808061253990613577565b915050600a82612549919061339f565b9150612526565b60008167ffffffffffffffff81111561256c5761256b6136ad565b5b6040519080825280601f01601f19166020018201604052801561259e5781602001600182028036833780820191505090505b5090505b6000851461262b576001826125b7919061342a565b9150600a856125c691906135c0565b60306125d29190613349565b60f81b8183815181106125e8576125e761367e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612624919061339f565b94506125a2565b8093505050505b919050565b50505050565b50505050565b6126508383836001612678565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156126e5576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000841415612720576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61272d6000868387612637565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600081905060005b8581101561299257818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4838015612946575061294460008884886122b6565b155b1561297d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818060010192505080806001019150506128cb565b5080600081905550506129a8600086838761263d565b5050505050565b8280546129bb90613514565b90600052602060002090601f0160209004810192826129dd5760008555612a24565b82601f106129f657805160ff1916838001178555612a24565b82800160010185558215612a24579182015b82811115612a23578251825591602001919060010190612a08565b5b509050612a319190612a78565b5090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b5b80821115612a91576000816000905550600101612a79565b5090565b6000612aa8612aa384613299565b613274565b905082815260208101848484011115612ac457612ac36136e1565b5b612acf8482856134d2565b509392505050565b6000612aea612ae5846132ca565b613274565b905082815260208101848484011115612b0657612b056136e1565b5b612b118482856134d2565b509392505050565b600081359050612b28816138e4565b92915050565b600081359050612b3d816138fb565b92915050565b600081359050612b5281613912565b92915050565b600081519050612b6781613912565b92915050565b600082601f830112612b8257612b816136dc565b5b8135612b92848260208601612a95565b91505092915050565b600082601f830112612bb057612baf6136dc565b5b8135612bc0848260208601612ad7565b91505092915050565b600081359050612bd881613929565b92915050565b600060208284031215612bf457612bf36136eb565b5b6000612c0284828501612b19565b91505092915050565b60008060408385031215612c2257612c216136eb565b5b6000612c3085828601612b19565b9250506020612c4185828601612b19565b9150509250929050565b600080600060608486031215612c6457612c636136eb565b5b6000612c7286828701612b19565b9350506020612c8386828701612b19565b9250506040612c9486828701612bc9565b9150509250925092565b60008060008060808587031215612cb857612cb76136eb565b5b6000612cc687828801612b19565b9450506020612cd787828801612b19565b9350506040612ce887828801612bc9565b925050606085013567ffffffffffffffff811115612d0957612d086136e6565b5b612d1587828801612b6d565b91505092959194509250565b60008060408385031215612d3857612d376136eb565b5b6000612d4685828601612b19565b9250506020612d5785828601612b2e565b9150509250929050565b60008060408385031215612d7857612d776136eb565b5b6000612d8685828601612b19565b9250506020612d9785828601612bc9565b9150509250929050565b600060208284031215612db757612db66136eb565b5b6000612dc584828501612b43565b91505092915050565b600060208284031215612de457612de36136eb565b5b6000612df284828501612b58565b91505092915050565b600060208284031215612e1157612e106136eb565b5b600082013567ffffffffffffffff811115612e2f57612e2e6136e6565b5b612e3b84828501612b9b565b91505092915050565b600060208284031215612e5a57612e596136eb565b5b6000612e6884828501612bc9565b91505092915050565b612e7a8161345e565b82525050565b612e8981613470565b82525050565b6000612e9a826132fb565b612ea48185613311565b9350612eb48185602086016134e1565b612ebd816136f0565b840191505092915050565b6000612ed382613306565b612edd818561332d565b9350612eed8185602086016134e1565b612ef6816136f0565b840191505092915050565b6000612f0c82613306565b612f16818561333e565b9350612f268185602086016134e1565b80840191505092915050565b6000612f3f602e8361332d565b9150612f4a82613701565b604082019050919050565b6000612f6260268361332d565b9150612f6d82613750565b604082019050919050565b6000612f8560148361332d565b9150612f908261379f565b602082019050919050565b6000612fa8602f8361332d565b9150612fb3826137c8565b604082019050919050565b6000612fcb60208361332d565b9150612fd682613817565b602082019050919050565b6000612fee60168361332d565b9150612ff982613840565b602082019050919050565b6000613011600083613322565b915061301c82613869565b600082019050919050565b600061303460108361332d565b915061303f8261386c565b602082019050919050565b6000613057602d8361332d565b915061306282613895565b604082019050919050565b613076816134c8565b82525050565b60006130888285612f01565b91506130948284612f01565b91508190509392505050565b60006130ab82613004565b9150819050919050565b60006020820190506130ca6000830184612e71565b92915050565b60006080820190506130e56000830187612e71565b6130f26020830186612e71565b6130ff604083018561306d565b81810360608301526131118184612e8f565b905095945050505050565b60006020820190506131316000830184612e80565b92915050565b600060208201905081810360008301526131518184612ec8565b905092915050565b6000602082019050818103600083015261317281612f32565b9050919050565b6000602082019050818103600083015261319281612f55565b9050919050565b600060208201905081810360008301526131b281612f78565b9050919050565b600060208201905081810360008301526131d281612f9b565b9050919050565b600060208201905081810360008301526131f281612fbe565b9050919050565b6000602082019050818103600083015261321281612fe1565b9050919050565b6000602082019050818103600083015261323281613027565b9050919050565b600060208201905081810360008301526132528161304a565b9050919050565b600060208201905061326e600083018461306d565b92915050565b600061327e61328f565b905061328a8282613546565b919050565b6000604051905090565b600067ffffffffffffffff8211156132b4576132b36136ad565b5b6132bd826136f0565b9050602081019050919050565b600067ffffffffffffffff8211156132e5576132e46136ad565b5b6132ee826136f0565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000613354826134c8565b915061335f836134c8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613394576133936135f1565b5b828201905092915050565b60006133aa826134c8565b91506133b5836134c8565b9250826133c5576133c4613620565b5b828204905092915050565b60006133db826134c8565b91506133e6836134c8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561341f5761341e6135f1565b5b828202905092915050565b6000613435826134c8565b9150613440836134c8565b925082821015613453576134526135f1565b5b828203905092915050565b6000613469826134a8565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156134ff5780820151818401526020810190506134e4565b8381111561350e576000848401525b50505050565b6000600282049050600182168061352c57607f821691505b602082108114156135405761353f61364f565b5b50919050565b61354f826136f0565b810181811067ffffffffffffffff8211171561356e5761356d6136ad565b5b80604052505050565b6000613582826134c8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135b5576135b46135f1565b5b600182019050919050565b60006135cb826134c8565b91506135d6836134c8565b9250826135e6576135e5613620565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4d696e696d756d2031204e46542068617320746f206265206d696e746564207060008201527f6572207472616e73616374696f6e000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f53616c65206973206e6f74206f70656e20796574000000000000000000000000600082015250565b7f45746865722073656e7420776974682074686973207472616e73616374696f6e60008201527f206973206e6f7420636f72726563740000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45786365656473206d6178696d756d20737570706c7900000000000000000000600082015250565b50565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b7f4d6178696d756d203135204e4654732063616e206265206d696e74656420706560008201527f72207472616e73616374696f6e00000000000000000000000000000000000000602082015250565b6138ed8161345e565b81146138f857600080fd5b50565b61390481613470565b811461390f57600080fd5b50565b61391b8161347c565b811461392657600080fd5b50565b613932816134c8565b811461393d57600080fd5b5056fea2646970667358221220f94e88465618bf876cd5ee3754fe00ffec15f3b5ce7ec9e88e417ceaee0d1c6764736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000