60806040526040518060400160405280600881526020017f697066733a2f2f2f000000000000000000000000000000000000000000000000815250600990816200004a91906200048e565b50614e20600a55611388600b5564174876e800600c55612710600d556000600e556000600f556001601060006101000a81548160ff0219169083151502179055503480156200009857600080fd5b506040518060400160405280600b81526020017f506f6b656d6f6e20454747000000000000000000000000000000000000000000815250604051806020016040528060008152508160029081620000f091906200048e565b5080600390816200010291906200048e565b50620001136200014160201b60201c565b60008190555050506200013b6200012f6200014660201b60201c565b6200014e60201b60201c565b62000575565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200029657607f821691505b602082108103620002ac57620002ab6200024e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002d7565b620003228683620002d7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200036f6200036962000363846200033a565b62000344565b6200033a565b9050919050565b6000819050919050565b6200038b836200034e565b620003a36200039a8262000376565b848454620002e4565b825550505050565b600090565b620003ba620003ab565b620003c781848462000380565b505050565b5b81811015620003ef57620003e3600082620003b0565b600181019050620003cd565b5050565b601f8211156200043e576200040881620002b2565b6200041384620002c7565b8101602085101562000423578190505b6200043b6200043285620002c7565b830182620003cc565b50505b505050565b600082821c905092915050565b6000620004636000198460080262000443565b1980831691505092915050565b60006200047e838362000450565b9150826002028217905092915050565b620004998262000214565b67ffffffffffffffff811115620004b557620004b46200021f565b5b620004c182546200027d565b620004ce828285620003f3565b600060209050601f831160018114620005065760008415620004f1578287015190505b620004fd858262000470565b8655506200056d565b601f1984166200051686620002b2565b60005b82811015620005405784890151825560018201915060208501945060208101905062000519565b868310156200056057848901516200055c601f89168262000450565b8355505b6001600288020188555050505b505050505050565b6133fd80620005856000396000f3fe60806040526004361061020f5760003560e01c8063715018a611610118578063c6a91b42116100a0578063e2aeb2ae1161006f578063e2aeb2ae14610722578063e985e9c51461073e578063efdc77881461077b578063f2fde38b146107a4578063f6511f93146107cd5761020f565b8063c6a91b4214610664578063c87b56dd1461068f578063d547cfb7146106cc578063d5abeb01146106f75761020f565b8063982d669e116100e7578063982d669e146105a057806398710d1e146105cb5780639e9fcffc146105f6578063a22cb4651461061f578063b88d4fde146106485761020f565b8063715018a614610529578063853828b6146105405780638da5cb5b1461054a57806395d89b41146105755761020f565b80631e84c4131161019b57806328cad13d1161016a57806328cad13d1461044157806342842e0e1461046a57806355f804b3146104865780636352211e146104af57806370a08231146104ec5761020f565b80631e84c413146103a8578063202f298a146103d3578063228025e8146103fc57806323b872dd146104255761020f565b8063095ea7b3116101e2578063095ea7b3146102e45780630a00ae831461030057806318160ddd146103295780631919fed714610354578063193ad7b41461037d5761020f565b806301ffc9a71461021457806306fdde031461025157806307e89ec01461027c578063081812fc146102a7575b600080fd5b34801561022057600080fd5b5061023b600480360381019061023691906124aa565b61080a565b60405161024891906124f2565b60405180910390f35b34801561025d57600080fd5b5061026661089c565b604051610273919061259d565b60405180910390f35b34801561028857600080fd5b5061029161092e565b60405161029e91906125d8565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c9919061261f565b610934565b6040516102db919061268d565b60405180910390f35b6102fe60048036038101906102f991906126d4565b6109b3565b005b34801561030c57600080fd5b506103276004803603810190610322919061261f565b610af7565b005b34801561033557600080fd5b5061033e610b7d565b60405161034b91906125d8565b60405180910390f35b34801561036057600080fd5b5061037b6004803603810190610376919061261f565b610b94565b005b34801561038957600080fd5b50610392610c1a565b60405161039f91906125d8565b60405180910390f35b3480156103b457600080fd5b506103bd610c20565b6040516103ca91906124f2565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f5919061261f565b610c33565b005b34801561040857600080fd5b50610423600480360381019061041e919061261f565b610cb9565b005b61043f600480360381019061043a9190612714565b610d3f565b005b34801561044d57600080fd5b5061046860048036038101906104639190612793565b611061565b005b610484600480360381019061047f9190612714565b6110fa565b005b34801561049257600080fd5b506104ad60048036038101906104a891906128f5565b61111a565b005b3480156104bb57600080fd5b506104d660048036038101906104d1919061261f565b6111a9565b6040516104e3919061268d565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061293e565b6111bb565b60405161052091906125d8565b60405180910390f35b34801561053557600080fd5b5061053e611273565b005b6105486112fb565b005b34801561055657600080fd5b5061055f611506565b60405161056c919061268d565b60405180910390f35b34801561058157600080fd5b5061058a611530565b604051610597919061259d565b60405180910390f35b3480156105ac57600080fd5b506105b56115c2565b6040516105c291906125d8565b60405180910390f35b3480156105d757600080fd5b506105e06115c8565b6040516105ed91906125d8565b60405180910390f35b34801561060257600080fd5b5061061d6004803603810190610618919061261f565b6115ce565b005b34801561062b57600080fd5b506106466004803603810190610641919061296b565b611654565b005b610662600480360381019061065d9190612a4c565b61175f565b005b34801561067057600080fd5b506106796117d2565b60405161068691906125d8565b60405180910390f35b34801561069b57600080fd5b506106b660048036038101906106b1919061261f565b6117d8565b6040516106c3919061259d565b60405180910390f35b3480156106d857600080fd5b506106e16117df565b6040516106ee919061259d565b60405180910390f35b34801561070357600080fd5b5061070c61186d565b60405161071991906125d8565b60405180910390f35b61073c6004803603810190610737919061261f565b611873565b005b34801561074a57600080fd5b5061076560048036038101906107609190612acf565b611a5a565b60405161077291906124f2565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d919061261f565b611aee565b005b3480156107b057600080fd5b506107cb60048036038101906107c6919061293e565b611c11565b005b3480156107d957600080fd5b506107f460048036038101906107ef919061261f565b611d08565b60405161080191906125d8565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061086557506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108955750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6060600280546108ab90612b3e565b80601f01602080910402602001604051908101604052809291908181526020018280546108d790612b3e565b80156109245780601f106108f957610100808354040283529160200191610924565b820191906000526020600020905b81548152906001019060200180831161090757829003601f168201915b5050505050905090565b600c5481565b600061093f82611d8f565b610975576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109be826111a9565b90508073ffffffffffffffffffffffffffffffffffffffff166109df611dee565b73ffffffffffffffffffffffffffffffffffffffff1614610a4257610a0b81610a06611dee565b611a5a565b610a41576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610aff611df6565b73ffffffffffffffffffffffffffffffffffffffff16610b1d611506565b73ffffffffffffffffffffffffffffffffffffffff1614610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a90612bbb565b60405180910390fd5b80600d8190555050565b6000610b87611dfe565b6001546000540303905090565b610b9c611df6565b73ffffffffffffffffffffffffffffffffffffffff16610bba611506565b73ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612bbb565b60405180910390fd5b80600c8190555050565b600f5481565b601060009054906101000a900460ff1681565b610c3b611df6565b73ffffffffffffffffffffffffffffffffffffffff16610c59611506565b73ffffffffffffffffffffffffffffffffffffffff1614610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612bbb565b60405180910390fd5b80600e8190555050565b610cc1611df6565b73ffffffffffffffffffffffffffffffffffffffff16610cdf611506565b73ffffffffffffffffffffffffffffffffffffffff1614610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c90612bbb565b60405180910390fd5b80600a8190555050565b6000610d4a82611e03565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610db1576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610dbd84611ecf565b91509150610dd38187610dce611dee565b611ef6565b610e1f57610de886610de3611dee565b611a5a565b610e1e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e85576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e928686866001611f3a565b8015610e9d57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610f6b85610f47888887611f40565b7c020000000000000000000000000000000000000000000000000000000017611f68565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610ff15760006001850190506000600460008381526020019081526020016000205403610fef576000548114610fee578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46110598686866001611f93565b505050505050565b611069611df6565b73ffffffffffffffffffffffffffffffffffffffff16611087611506565b73ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490612bbb565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b6111158383836040518060200160405280600081525061175f565b505050565b611122611df6565b73ffffffffffffffffffffffffffffffffffffffff16611140611506565b73ffffffffffffffffffffffffffffffffffffffff1614611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90612bbb565b60405180910390fd5b80600990816111a59190612d87565b5050565b60006111b482611e03565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611222576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61127b611df6565b73ffffffffffffffffffffffffffffffffffffffff16611299611506565b73ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690612bbb565b60405180910390fd5b6112f96000611f99565b565b611303611df6565b73ffffffffffffffffffffffffffffffffffffffff16611321611506565b73ffffffffffffffffffffffffffffffffffffffff1614611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90612bbb565b60405180910390fd5b600047905060006064605a8361138d9190612e88565b6113979190612ef9565b905060006064600a846113aa9190612e88565b6113b49190612ef9565b90506000739ae7dc72cf3b34f08a82e856638d621638d6138873ffffffffffffffffffffffffffffffffffffffff16836040516113f090612f5b565b60006040518083038185875af1925050503d806000811461142d576040519150601f19603f3d011682016040523d82523d6000602084013e611432565b606091505b505090506000739ae7dc72cf3b34f08a82e856638d621638d6138873ffffffffffffffffffffffffffffffffffffffff168360405161147090612f5b565b60006040518083038185875af1925050503d80600081146114ad576040519150601f19603f3d011682016040523d82523d6000602084013e6114b2565b606091505b505090508180156114c05750805b6114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690612fbc565b60405180910390fd5b5050505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461153f90612b3e565b80601f016020809104026020016040519081016040528092919081815260200182805461156b90612b3e565b80156115b85780601f1061158d576101008083540402835291602001916115b8565b820191906000526020600020905b81548152906001019060200180831161159b57829003601f168201915b5050505050905090565b600d5481565b600e5481565b6115d6611df6565b73ffffffffffffffffffffffffffffffffffffffff166115f4611506565b73ffffffffffffffffffffffffffffffffffffffff161461164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190612bbb565b60405180910390fd5b80600b8190555050565b8060076000611661611dee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661170e611dee565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161175391906124f2565b60405180910390a35050565b61176a848484610d3f565b60008373ffffffffffffffffffffffffffffffffffffffff163b146117cc576117958484848461205f565b6117cb576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b600b5481565b6060919050565b600980546117ec90612b3e565b80601f016020809104026020016040519081016040528092919081815260200182805461181890612b3e565b80156118655780601f1061183a57610100808354040283529160200191611865565b820191906000526020600020905b81548152906001019060200180831161184857829003601f168201915b505050505081565b600a5481565b6001600a546118829190612fdc565b8161188b610b7d565b6118959190612fdc565b11156118d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cd9061305c565b60405180910390fd5b60006118e182611d08565b9050600d5482600f546118f49190612fdc565b1115611942573481111561193d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611934906130c8565b60405180910390fd5b611a4c565b600e548261194f336111bb565b6119599190612fdc565b11156119ec57348111156119a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611999906130c8565b60405180910390fd5b600b548211156119e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119de9061315a565b60405180910390fd5b611a4b565b600e54821115611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a289061315a565b60405180910390fd5b81600f6000828254611a439190612fdc565b925050819055505b5b611a5633836121af565b5050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611af6611df6565b73ffffffffffffffffffffffffffffffffffffffff16611b14611506565b73ffffffffffffffffffffffffffffffffffffffff1614611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190612bbb565b60405180910390fd5b60008111611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba4906131c6565b60405180910390fd5b600a5481611bb9610b7d565b611bc39190612fdc565b1115611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb90613232565b60405180910390fd5b611c0e33826121af565b50565b611c19611df6565b73ffffffffffffffffffffffffffffffffffffffff16611c37611506565b73ffffffffffffffffffffffffffffffffffffffff1614611c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8490612bbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf3906132c4565b60405180910390fd5b611d0581611f99565b50565b6000600f8203611d20576551dac207a0009050611d8a565b601e8203611d3657659184e72a00009050611d8a565b60328203611d4c5765fea8948980009050611d8a565b60018203611d6357661b9ac619e7a0009050611d8a565b600a8203611d7957653faa252260009050611d8a565b81600c54611d879190612e88565b90505b919050565b600081611d9a611dfe565b11158015611da9575060005482105b8015611de7575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600033905090565b600090565b60008082905080611e12611dfe565b11611e9857600054811015611e975760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611e95575b60008103611e8b576004600083600190039350838152602001908152602001600020549050611e61565b8092505050611eca565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611f578686846121cd565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612085611dee565b8786866040518563ffffffff1660e01b81526004016120a79493929190613339565b6020604051808303816000875af19250505080156120e357506040513d601f19601f820116820180604052508101906120e0919061339a565b60015b61215c573d8060008114612113576040519150601f19603f3d011682016040523d82523d6000602084013e612118565b606091505b506000815103612154576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6121c98282604051806020016040528060008152506121d6565b5050565b60009392505050565b6121e08383612273565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461226e57600080549050600083820390505b612220600086838060010194508661205f565b612256576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811061220d57816000541461226b57600080fd5b50505b505050565b600080549050600082036122b3576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122c06000848385611f3a565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612337836123286000866000611f40565b6123318561242e565b17611f68565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146123d857808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460018101905061239d565b5060008203612413576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506124296000848385611f93565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61248781612452565b811461249257600080fd5b50565b6000813590506124a48161247e565b92915050565b6000602082840312156124c0576124bf612448565b5b60006124ce84828501612495565b91505092915050565b60008115159050919050565b6124ec816124d7565b82525050565b600060208201905061250760008301846124e3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561254757808201518184015260208101905061252c565b60008484015250505050565b6000601f19601f8301169050919050565b600061256f8261250d565b6125798185612518565b9350612589818560208601612529565b61259281612553565b840191505092915050565b600060208201905081810360008301526125b78184612564565b905092915050565b6000819050919050565b6125d2816125bf565b82525050565b60006020820190506125ed60008301846125c9565b92915050565b6125fc816125bf565b811461260757600080fd5b50565b600081359050612619816125f3565b92915050565b60006020828403121561263557612634612448565b5b60006126438482850161260a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126778261264c565b9050919050565b6126878161266c565b82525050565b60006020820190506126a2600083018461267e565b92915050565b6126b18161266c565b81146126bc57600080fd5b50565b6000813590506126ce816126a8565b92915050565b600080604083850312156126eb576126ea612448565b5b60006126f9858286016126bf565b925050602061270a8582860161260a565b9150509250929050565b60008060006060848603121561272d5761272c612448565b5b600061273b868287016126bf565b935050602061274c868287016126bf565b925050604061275d8682870161260a565b9150509250925092565b612770816124d7565b811461277b57600080fd5b50565b60008135905061278d81612767565b92915050565b6000602082840312156127a9576127a8612448565b5b60006127b78482850161277e565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61280282612553565b810181811067ffffffffffffffff82111715612821576128206127ca565b5b80604052505050565b600061283461243e565b905061284082826127f9565b919050565b600067ffffffffffffffff8211156128605761285f6127ca565b5b61286982612553565b9050602081019050919050565b82818337600083830152505050565b600061289861289384612845565b61282a565b9050828152602081018484840111156128b4576128b36127c5565b5b6128bf848285612876565b509392505050565b600082601f8301126128dc576128db6127c0565b5b81356128ec848260208601612885565b91505092915050565b60006020828403121561290b5761290a612448565b5b600082013567ffffffffffffffff8111156129295761292861244d565b5b612935848285016128c7565b91505092915050565b60006020828403121561295457612953612448565b5b6000612962848285016126bf565b91505092915050565b6000806040838503121561298257612981612448565b5b6000612990858286016126bf565b92505060206129a18582860161277e565b9150509250929050565b600067ffffffffffffffff8211156129c6576129c56127ca565b5b6129cf82612553565b9050602081019050919050565b60006129ef6129ea846129ab565b61282a565b905082815260208101848484011115612a0b57612a0a6127c5565b5b612a16848285612876565b509392505050565b600082601f830112612a3357612a326127c0565b5b8135612a438482602086016129dc565b91505092915050565b60008060008060808587031215612a6657612a65612448565b5b6000612a74878288016126bf565b9450506020612a85878288016126bf565b9350506040612a968782880161260a565b925050606085013567ffffffffffffffff811115612ab757612ab661244d565b5b612ac387828801612a1e565b91505092959194509250565b60008060408385031215612ae657612ae5612448565b5b6000612af4858286016126bf565b9250506020612b05858286016126bf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b5657607f821691505b602082108103612b6957612b68612b0f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ba5602083612518565b9150612bb082612b6f565b602082019050919050565b60006020820190508181036000830152612bd481612b98565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c3d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c00565b612c478683612c00565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c84612c7f612c7a846125bf565b612c5f565b6125bf565b9050919050565b6000819050919050565b612c9e83612c69565b612cb2612caa82612c8b565b848454612c0d565b825550505050565b600090565b612cc7612cba565b612cd2818484612c95565b505050565b5b81811015612cf657612ceb600082612cbf565b600181019050612cd8565b5050565b601f821115612d3b57612d0c81612bdb565b612d1584612bf0565b81016020851015612d24578190505b612d38612d3085612bf0565b830182612cd7565b50505b505050565b600082821c905092915050565b6000612d5e60001984600802612d40565b1980831691505092915050565b6000612d778383612d4d565b9150826002028217905092915050565b612d908261250d565b67ffffffffffffffff811115612da957612da86127ca565b5b612db38254612b3e565b612dbe828285612cfa565b600060209050601f831160018114612df15760008415612ddf578287015190505b612de98582612d6b565b865550612e51565b601f198416612dff86612bdb565b60005b82811015612e2757848901518255600182019150602085019450602081019050612e02565b86831015612e445784890151612e40601f891682612d4d565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e93826125bf565b9150612e9e836125bf565b9250828202612eac816125bf565b91508282048414831517612ec357612ec2612e59565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f04826125bf565b9150612f0f836125bf565b925082612f1f57612f1e612eca565b5b828204905092915050565b600081905092915050565b50565b6000612f45600083612f2a565b9150612f5082612f35565b600082019050919050565b6000612f6682612f38565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000612fa6601083612518565b9150612fb182612f70565b602082019050919050565b60006020820190508181036000830152612fd581612f99565b9050919050565b6000612fe7826125bf565b9150612ff2836125bf565b925082820190508082111561300a57613009612e59565b5b92915050565b7f4e6f206d6f726500000000000000000000000000000000000000000000000000600082015250565b6000613046600783612518565b915061305182613010565b602082019050919050565b6000602082019050818103600083015261307581613039565b9050919050565b7f496e636f7272656374204554482076616c75652073656e740000000000000000600082015250565b60006130b2601883612518565b91506130bd8261307c565b602082019050919050565b600060208201905081810360008301526130e1816130a5565b9050919050565b7f4d6178206d696e747320706572207472616e73616374696f6e2065786365656460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b6000613144602283612518565b915061314f826130e8565b604082019050919050565b6000602082019050818103600083015261317381613137565b9050919050565b7f496e76616c6964206d696e7420616d6f756e7400000000000000000000000000600082015250565b60006131b0601383612518565b91506131bb8261317a565b602082019050919050565b600060208201905081810360008301526131df816131a3565b9050919050565b7f4d6178696d756d20737570706c79206578636565646564000000000000000000600082015250565b600061321c601783612518565b9150613227826131e6565b602082019050919050565b6000602082019050818103600083015261324b8161320f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006132ae602683612518565b91506132b982613252565b604082019050919050565b600060208201905081810360008301526132dd816132a1565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061330b826132e4565b61331581856132ef565b9350613325818560208601612529565b61332e81612553565b840191505092915050565b600060808201905061334e600083018761267e565b61335b602083018661267e565b61336860408301856125c9565b818103606083015261337a8184613300565b905095945050505050565b6000815190506133948161247e565b92915050565b6000602082840312156133b0576133af612448565b5b60006133be84828501613385565b9150509291505056fea2646970667358221220500c08e1dc74e03570dc068c4148bb50734712ab5358abf138e7ca09e10d605c64736f6c63430008110033