60806040526040518060800160405280604381526020016200397e60439139600990816200002e91906200049c565b5062030d40600a556101f4600b5565b4fd4c4f7000600c5562029810600d556103e8600e556000600f556001601060006101000a81548160ff0219169083151502179055503480156200008057600080fd5b506040518060400160405280600b81526020017f53554d4d4552205a4f52420000000000000000000000000000000000000000008152506040518060400160405280600a81526020017f53554d4d45525a4f5242000000000000000000000000000000000000000000008152508160029081620000fe91906200049c565b5080600390816200011091906200049c565b50620001216200014f60201b60201c565b6000819055505050620001496200013d6200015460201b60201c565b6200015c60201b60201c565b62000583565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002a457607f821691505b602082108103620002ba57620002b96200025c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002e5565b620003308683620002e5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200037d62000377620003718462000348565b62000352565b62000348565b9050919050565b6000819050919050565b62000399836200035c565b620003b1620003a88262000384565b848454620002f2565b825550505050565b600090565b620003c8620003b9565b620003d58184846200038e565b505050565b5b81811015620003fd57620003f1600082620003be565b600181019050620003db565b5050565b601f8211156200044c576200041681620002c0565b6200042184620002d5565b8101602085101562000431578190505b620004496200044085620002d5565b830182620003da565b50505b505050565b600082821c905092915050565b6000620004716000198460080262000451565b1980831691505092915050565b60006200048c83836200045e565b9150826002028217905092915050565b620004a78262000222565b67ffffffffffffffff811115620004c357620004c26200022d565b5b620004cf82546200028b565b620004dc82828562000401565b600060209050601f831160018114620005145760008415620004ff578287015190505b6200050b85826200047e565b8655506200057b565b601f1984166200052486620002c0565b60005b828110156200054e5784890151825560018201915060208501945060208101905062000527565b868310156200056e57848901516200056a601f8916826200045e565b8355505b6001600288020188555050505b505050505050565b6133eb80620005936000396000f3fe60806040526004361061020f5760003560e01c8063715018a611610118578063b88d4fde116100a0578063d5abeb011161006f578063d5abeb0114610713578063e985e9c51461073e578063efdc77881461077b578063f2fde38b146107a4578063f6511f93146107cd5761020f565b8063b88d4fde14610664578063c6a91b4214610680578063c87b56dd146106ab578063d547cfb7146106e85761020f565b8063982d669e116100e7578063982d669e146105a057806398710d1e146105cb5780639bd6e3d7146105f65780639e9fcffc14610612578063a22cb4651461063b5761020f565b8063715018a614610529578063853828b6146105405780638da5cb5b1461054a57806395d89b41146105755761020f565b80631e84c4131161019b57806328cad13d1161016a57806328cad13d1461044157806342842e0e1461046a57806355f804b3146104865780636352211e146104af57806370a08231146104ec5761020f565b80631e84c413146103a8578063202f298a146103d3578063228025e8146103fc57806323b872dd146104255761020f565b8063095ea7b3116101e2578063095ea7b3146102e45780630a00ae831461030057806318160ddd146103295780631919fed714610354578063193ad7b41461037d5761020f565b806301ffc9a71461021457806306fdde031461025157806307e89ec01461027c578063081812fc146102a7575b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612498565b61080a565b60405161024891906124e0565b60405180910390f35b34801561025d57600080fd5b5061026661089c565b604051610273919061258b565b60405180910390f35b34801561028857600080fd5b5061029161092e565b60405161029e91906125c6565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c9919061260d565b610934565b6040516102db919061267b565b60405180910390f35b6102fe60048036038101906102f991906126c2565b6109b3565b005b34801561030c57600080fd5b506103276004803603810190610322919061260d565b610af7565b005b34801561033557600080fd5b5061033e610b7d565b60405161034b91906125c6565b60405180910390f35b34801561036057600080fd5b5061037b6004803603810190610376919061260d565b610b94565b005b34801561038957600080fd5b50610392610c1a565b60405161039f91906125c6565b60405180910390f35b3480156103b457600080fd5b506103bd610c20565b6040516103ca91906124e0565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f5919061260d565b610c33565b005b34801561040857600080fd5b50610423600480360381019061041e919061260d565b610cb9565b005b61043f600480360381019061043a9190612702565b610d3f565b005b34801561044d57600080fd5b5061046860048036038101906104639190612781565b611061565b005b610484600480360381019061047f9190612702565b6110fa565b005b34801561049257600080fd5b506104ad60048036038101906104a891906128e3565b61111a565b005b3480156104bb57600080fd5b506104d660048036038101906104d1919061260d565b6111a9565b6040516104e3919061267b565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061292c565b6111bb565b60405161052091906125c6565b60405180910390f35b34801561053557600080fd5b5061053e611273565b005b6105486112fb565b005b34801561055657600080fd5b5061055f611506565b60405161056c919061267b565b60405180910390f35b34801561058157600080fd5b5061058a611530565b604051610597919061258b565b60405180910390f35b3480156105ac57600080fd5b506105b56115c2565b6040516105c291906125c6565b60405180910390f35b3480156105d757600080fd5b506105e06115c8565b6040516105ed91906125c6565b60405180910390f35b610610600480360381019061060b919061260d565b6115ce565b005b34801561061e57600080fd5b506106396004803603810190610634919061260d565b6117b5565b005b34801561064757600080fd5b50610662600480360381019061065d9190612959565b61183b565b005b61067e60048036038101906106799190612a3a565b611946565b005b34801561068c57600080fd5b506106956119b9565b6040516106a291906125c6565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd919061260d565b6119bf565b6040516106df919061258b565b60405180910390f35b3480156106f457600080fd5b506106fd6119c6565b60405161070a919061258b565b60405180910390f35b34801561071f57600080fd5b50610728611a54565b60405161073591906125c6565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190612abd565b611a5a565b60405161077291906124e0565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d919061260d565b611aee565b005b3480156107b057600080fd5b506107cb60048036038101906107c6919061292c565b611c11565b005b3480156107d957600080fd5b506107f460048036038101906107ef919061260d565b611d08565b60405161080191906125c6565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061086557506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108955750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6060600280546108ab90612b2c565b80601f01602080910402602001604051908101604052809291908181526020018280546108d790612b2c565b80156109245780601f106108f957610100808354040283529160200191610924565b820191906000526020600020905b81548152906001019060200180831161090757829003601f168201915b5050505050905090565b600c5481565b600061093f82611d7d565b610975576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109be826111a9565b90508073ffffffffffffffffffffffffffffffffffffffff166109df611ddc565b73ffffffffffffffffffffffffffffffffffffffff1614610a4257610a0b81610a06611ddc565b611a5a565b610a41576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610aff611de4565b73ffffffffffffffffffffffffffffffffffffffff16610b1d611506565b73ffffffffffffffffffffffffffffffffffffffff1614610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a90612ba9565b60405180910390fd5b80600d8190555050565b6000610b87611dec565b6001546000540303905090565b610b9c611de4565b73ffffffffffffffffffffffffffffffffffffffff16610bba611506565b73ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612ba9565b60405180910390fd5b80600c8190555050565b600f5481565b601060009054906101000a900460ff1681565b610c3b611de4565b73ffffffffffffffffffffffffffffffffffffffff16610c59611506565b73ffffffffffffffffffffffffffffffffffffffff1614610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612ba9565b60405180910390fd5b80600e8190555050565b610cc1611de4565b73ffffffffffffffffffffffffffffffffffffffff16610cdf611506565b73ffffffffffffffffffffffffffffffffffffffff1614610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c90612ba9565b60405180910390fd5b80600a8190555050565b6000610d4a82611df1565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610db1576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610dbd84611ebd565b91509150610dd38187610dce611ddc565b611ee4565b610e1f57610de886610de3611ddc565b611a5a565b610e1e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e85576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e928686866001611f28565b8015610e9d57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610f6b85610f47888887611f2e565b7c020000000000000000000000000000000000000000000000000000000017611f56565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610ff15760006001850190506000600460008381526020019081526020016000205403610fef576000548114610fee578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46110598686866001611f81565b505050505050565b611069611de4565b73ffffffffffffffffffffffffffffffffffffffff16611087611506565b73ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490612ba9565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b61111583838360405180602001604052806000815250611946565b505050565b611122611de4565b73ffffffffffffffffffffffffffffffffffffffff16611140611506565b73ffffffffffffffffffffffffffffffffffffffff1614611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90612ba9565b60405180910390fd5b80600990816111a59190612d75565b5050565b60006111b482611df1565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611222576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61127b611de4565b73ffffffffffffffffffffffffffffffffffffffff16611299611506565b73ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690612ba9565b60405180910390fd5b6112f96000611f87565b565b611303611de4565b73ffffffffffffffffffffffffffffffffffffffff16611321611506565b73ffffffffffffffffffffffffffffffffffffffff1614611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90612ba9565b60405180910390fd5b600047905060006064605a8361138d9190612e76565b6113979190612ee7565b905060006064600a846113aa9190612e76565b6113b49190612ee7565b9050600073f029b83bb9cd0e0f5542e49212d4bd94bcda218c73ffffffffffffffffffffffffffffffffffffffff16836040516113f090612f49565b60006040518083038185875af1925050503d806000811461142d576040519150601f19603f3d011682016040523d82523d6000602084013e611432565b606091505b50509050600073f029b83bb9cd0e0f5542e49212d4bd94bcda218c73ffffffffffffffffffffffffffffffffffffffff168360405161147090612f49565b60006040518083038185875af1925050503d80600081146114ad576040519150601f19603f3d011682016040523d82523d6000602084013e6114b2565b606091505b505090508180156114c05750805b6114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690612faa565b60405180910390fd5b5050505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461153f90612b2c565b80601f016020809104026020016040519081016040528092919081815260200182805461156b90612b2c565b80156115b85780601f1061158d576101008083540402835291602001916115b8565b820191906000526020600020905b81548152906001019060200180831161159b57829003601f168201915b5050505050905090565b600d5481565b600e5481565b6001600a546115dd9190612fca565b816115e6610b7d565b6115f09190612fca565b1115611631576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116289061304a565b60405180910390fd5b600061163c82611d08565b9050600d5482600f5461164f9190612fca565b111561169d5734811115611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168f906130b6565b60405180910390fd5b6117a7565b600e54826116aa336111bb565b6116b49190612fca565b111561174757348111156116fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f4906130b6565b60405180910390fd5b600b54821115611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990613148565b60405180910390fd5b6117a6565b600e5482111561178c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178390613148565b60405180910390fd5b81600f600082825461179e9190612fca565b925050819055505b5b6117b1338361204d565b5050565b6117bd611de4565b73ffffffffffffffffffffffffffffffffffffffff166117db611506565b73ffffffffffffffffffffffffffffffffffffffff1614611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890612ba9565b60405180910390fd5b80600b8190555050565b8060076000611848611ddc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166118f5611ddc565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161193a91906124e0565b60405180910390a35050565b611951848484610d3f565b60008373ffffffffffffffffffffffffffffffffffffffff163b146119b35761197c8484848461206b565b6119b2576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b600b5481565b6060919050565b600980546119d390612b2c565b80601f01602080910402602001604051908101604052809291908181526020018280546119ff90612b2c565b8015611a4c5780601f10611a2157610100808354040283529160200191611a4c565b820191906000526020600020905b815481529060010190602001808311611a2f57829003601f168201915b505050505081565b600a5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611af6611de4565b73ffffffffffffffffffffffffffffffffffffffff16611b14611506565b73ffffffffffffffffffffffffffffffffffffffff1614611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190612ba9565b60405180910390fd5b60008111611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba4906131b4565b60405180910390fd5b600a5481611bb9610b7d565b611bc39190612fca565b1115611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb90613220565b60405180910390fd5b611c0e338261204d565b50565b611c19611de4565b73ffffffffffffffffffffffffffffffffffffffff16611c37611506565b73ffffffffffffffffffffffffffffffffffffffff1614611c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8490612ba9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf3906132b2565b60405180910390fd5b611d0581611f87565b50565b600060148203611d2157660220c98e3870009050611d78565b60328203611d3857661ba123ea6b10009050611d78565b60648203611d4f5766038bacfb7c60009050611d78565b6101f48203611d675766071aceb89f30009050611d78565b81600c54611d759190612e76565b90505b919050565b600081611d88611dec565b11158015611d97575060005482105b8015611dd5575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600033905090565b600090565b60008082905080611e00611dec565b11611e8657600054811015611e855760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611e83575b60008103611e79576004600083600190039350838152602001908152602001600020549050611e4f565b8092505050611eb8565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611f458686846121bb565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6120678282604051806020016040528060008152506121c4565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612091611ddc565b8786866040518563ffffffff1660e01b81526004016120b39493929190613327565b6020604051808303816000875af19250505080156120ef57506040513d601f19601f820116820180604052508101906120ec9190613388565b60015b612168573d806000811461211f576040519150601f19603f3d011682016040523d82523d6000602084013e612124565b606091505b506000815103612160576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60009392505050565b6121ce8383612261565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461225c57600080549050600083820390505b61220e600086838060010194508661206b565b612244576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106121fb57816000541461225957600080fd5b50505b505050565b600080549050600082036122a1576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122ae6000848385611f28565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612325836123166000866000611f2e565b61231f8561241c565b17611f56565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146123c657808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460018101905061238b565b5060008203612401576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506124176000848385611f81565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61247581612440565b811461248057600080fd5b50565b6000813590506124928161246c565b92915050565b6000602082840312156124ae576124ad612436565b5b60006124bc84828501612483565b91505092915050565b60008115159050919050565b6124da816124c5565b82525050565b60006020820190506124f560008301846124d1565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561253557808201518184015260208101905061251a565b60008484015250505050565b6000601f19601f8301169050919050565b600061255d826124fb565b6125678185612506565b9350612577818560208601612517565b61258081612541565b840191505092915050565b600060208201905081810360008301526125a58184612552565b905092915050565b6000819050919050565b6125c0816125ad565b82525050565b60006020820190506125db60008301846125b7565b92915050565b6125ea816125ad565b81146125f557600080fd5b50565b600081359050612607816125e1565b92915050565b60006020828403121561262357612622612436565b5b6000612631848285016125f8565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126658261263a565b9050919050565b6126758161265a565b82525050565b6000602082019050612690600083018461266c565b92915050565b61269f8161265a565b81146126aa57600080fd5b50565b6000813590506126bc81612696565b92915050565b600080604083850312156126d9576126d8612436565b5b60006126e7858286016126ad565b92505060206126f8858286016125f8565b9150509250929050565b60008060006060848603121561271b5761271a612436565b5b6000612729868287016126ad565b935050602061273a868287016126ad565b925050604061274b868287016125f8565b9150509250925092565b61275e816124c5565b811461276957600080fd5b50565b60008135905061277b81612755565b92915050565b60006020828403121561279757612796612436565b5b60006127a58482850161276c565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127f082612541565b810181811067ffffffffffffffff8211171561280f5761280e6127b8565b5b80604052505050565b600061282261242c565b905061282e82826127e7565b919050565b600067ffffffffffffffff82111561284e5761284d6127b8565b5b61285782612541565b9050602081019050919050565b82818337600083830152505050565b600061288661288184612833565b612818565b9050828152602081018484840111156128a2576128a16127b3565b5b6128ad848285612864565b509392505050565b600082601f8301126128ca576128c96127ae565b5b81356128da848260208601612873565b91505092915050565b6000602082840312156128f9576128f8612436565b5b600082013567ffffffffffffffff8111156129175761291661243b565b5b612923848285016128b5565b91505092915050565b60006020828403121561294257612941612436565b5b6000612950848285016126ad565b91505092915050565b600080604083850312156129705761296f612436565b5b600061297e858286016126ad565b925050602061298f8582860161276c565b9150509250929050565b600067ffffffffffffffff8211156129b4576129b36127b8565b5b6129bd82612541565b9050602081019050919050565b60006129dd6129d884612999565b612818565b9050828152602081018484840111156129f9576129f86127b3565b5b612a04848285612864565b509392505050565b600082601f830112612a2157612a206127ae565b5b8135612a318482602086016129ca565b91505092915050565b60008060008060808587031215612a5457612a53612436565b5b6000612a62878288016126ad565b9450506020612a73878288016126ad565b9350506040612a84878288016125f8565b925050606085013567ffffffffffffffff811115612aa557612aa461243b565b5b612ab187828801612a0c565b91505092959194509250565b60008060408385031215612ad457612ad3612436565b5b6000612ae2858286016126ad565b9250506020612af3858286016126ad565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b4457607f821691505b602082108103612b5757612b56612afd565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b93602083612506565b9150612b9e82612b5d565b602082019050919050565b60006020820190508181036000830152612bc281612b86565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c2b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612bee565b612c358683612bee565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c72612c6d612c68846125ad565b612c4d565b6125ad565b9050919050565b6000819050919050565b612c8c83612c57565b612ca0612c9882612c79565b848454612bfb565b825550505050565b600090565b612cb5612ca8565b612cc0818484612c83565b505050565b5b81811015612ce457612cd9600082612cad565b600181019050612cc6565b5050565b601f821115612d2957612cfa81612bc9565b612d0384612bde565b81016020851015612d12578190505b612d26612d1e85612bde565b830182612cc5565b50505b505050565b600082821c905092915050565b6000612d4c60001984600802612d2e565b1980831691505092915050565b6000612d658383612d3b565b9150826002028217905092915050565b612d7e826124fb565b67ffffffffffffffff811115612d9757612d966127b8565b5b612da18254612b2c565b612dac828285612ce8565b600060209050601f831160018114612ddf5760008415612dcd578287015190505b612dd78582612d59565b865550612e3f565b601f198416612ded86612bc9565b60005b82811015612e1557848901518255600182019150602085019450602081019050612df0565b86831015612e325784890151612e2e601f891682612d3b565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e81826125ad565b9150612e8c836125ad565b9250828202612e9a816125ad565b91508282048414831517612eb157612eb0612e47565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ef2826125ad565b9150612efd836125ad565b925082612f0d57612f0c612eb8565b5b828204905092915050565b600081905092915050565b50565b6000612f33600083612f18565b9150612f3e82612f23565b600082019050919050565b6000612f5482612f26565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000612f94601083612506565b9150612f9f82612f5e565b602082019050919050565b60006020820190508181036000830152612fc381612f87565b9050919050565b6000612fd5826125ad565b9150612fe0836125ad565b9250828201905080821115612ff857612ff7612e47565b5b92915050565b7f4e6f206d6f726500000000000000000000000000000000000000000000000000600082015250565b6000613034600783612506565b915061303f82612ffe565b602082019050919050565b6000602082019050818103600083015261306381613027565b9050919050565b7f496e636f7272656374204554482076616c75652073656e740000000000000000600082015250565b60006130a0601883612506565b91506130ab8261306a565b602082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b7f4d6178206d696e747320706572207472616e73616374696f6e2065786365656460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b6000613132602283612506565b915061313d826130d6565b604082019050919050565b6000602082019050818103600083015261316181613125565b9050919050565b7f496e76616c6964206d696e7420616d6f756e7400000000000000000000000000600082015250565b600061319e601383612506565b91506131a982613168565b602082019050919050565b600060208201905081810360008301526131cd81613191565b9050919050565b7f4d6178696d756d20737570706c79206578636565646564000000000000000000600082015250565b600061320a601783612506565b9150613215826131d4565b602082019050919050565b60006020820190508181036000830152613239816131fd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061329c602683612506565b91506132a782613240565b604082019050919050565b600060208201905081810360008301526132cb8161328f565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006132f9826132d2565b61330381856132dd565b9350613313818560208601612517565b61331c81612541565b840191505092915050565b600060808201905061333c600083018761266c565b613349602083018661266c565b61335660408301856125b7565b818103606083015261336881846132ee565b905095945050505050565b6000815190506133828161246c565b92915050565b60006020828403121561339e5761339d612436565b5b60006133ac84828501613373565b9150509291505056fea26469706673582212208a92c945855597014ddafe74224ea01feea25e2cdea932911900fa38d8baf01b64736f6c63430008110033697066733a2f2f6261667962656967686834337975716436707a6578636a6f623768686d687633763566656b793668736b7674656e71793469786262337466706e752f