60806040526127106008556000600960006101000a81548160ff0219169083151502179055506001600960016101000a81548160ff0219169083151502179055503480156200004d57600080fd5b5060405162003e2838038062003e28833981810160405281019062000073919062000377565b6040518060400160405280600481526020017f4f776c73000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f484f4f54000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000f792919062000249565b5080600190805190602001906200011092919062000249565b50505062000133620001276200017b60201b60201c565b6200018360201b60201c565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200040d565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200025790620003d8565b90600052602060002090601f0160209004810192826200027b5760008555620002c7565b82601f106200029657805160ff1916838001178555620002c7565b82800160010185558215620002c7579182015b82811115620002c6578251825591602001919060010190620002a9565b5b509050620002d69190620002da565b5090565b5b80821115620002f5576000816000905550600101620002db565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200032b82620002fe565b9050919050565b60006200033f826200031e565b9050919050565b620003518162000332565b81146200035d57600080fd5b50565b600081519050620003718162000346565b92915050565b60006020828403121562000390576200038f620002f9565b5b6000620003a08482850162000360565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003f157607f821691505b602082108103620004075762000406620003a9565b5b50919050565b613a0b806200041d6000396000f3fe6080604052600436106101d85760003560e01c80634f6ccce711610102578063a71bbebe11610095578063d5abeb0111610064578063d5abeb011461067a578063e0d4ea37146106a5578063e985e9c5146106e2578063f2fde38b1461071f576101d8565b8063a71bbebe146105cf578063b4c7f066146105eb578063b88d4fde14610614578063c87b56dd1461063d576101d8565b80637dc2268c116100d15780637dc2268c146105255780638da5cb5b1461055057806395d89b411461057b578063a22cb465146105a6576101d8565b80634f6ccce7146104575780636352211e1461049457806370a08231146104d1578063715018a61461050e576101d8565b806323b872dd1161017a5780633bb2c938116101495780633bb2c938146103e45780633ccfd60b146103fb57806342842e0e1461040557806342966c681461042e576101d8565b806323b872dd146103285780632f745c5914610351578063303e74df1461038e57806333101e1f146103b9576101d8565b8063081812fc116101b6578063081812fc1461026e578063095ea7b3146102ab578063176b72b4146102d457806318160ddd146102fd576101d8565b806301b9a397146101dd57806301ffc9a71461020657806306fdde0314610243575b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff9190612413565b610748565b005b34801561021257600080fd5b5061022d60048036038101906102289190612498565b610794565b60405161023a91906124e0565b60405180910390f35b34801561024f57600080fd5b5061025861080e565b6040516102659190612594565b60405180910390f35b34801561027a57600080fd5b50610295600480360381019061029091906125ec565b6108a0565b6040516102a29190612628565b60405180910390f35b3480156102b757600080fd5b506102d260048036038101906102cd919061266f565b610925565b005b3480156102e057600080fd5b506102fb60048036038101906102f691906126af565b610a3c565b005b34801561030957600080fd5b50610312610ae7565b60405161031f91906126fe565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612719565b610b86565b005b34801561035d57600080fd5b506103786004803603810190610373919061266f565b610be6565b60405161038591906126fe565b60405180910390f35b34801561039a57600080fd5b506103a3610d19565b6040516103b091906127cb565b60405180910390f35b3480156103c557600080fd5b506103ce610d3f565b6040516103db91906124e0565b60405180910390f35b3480156103f057600080fd5b506103f9610d52565b005b610403610d77565b005b34801561041157600080fd5b5061042c60048036038101906104279190612719565b610dff565b005b34801561043a57600080fd5b50610455600480360381019061045091906125ec565b610e1f565b005b34801561046357600080fd5b5061047e600480360381019061047991906125ec565b610e92565b60405161048b91906126fe565b60405180910390f35b3480156104a057600080fd5b506104bb60048036038101906104b691906125ec565b610ee3565b6040516104c89190612628565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f391906127e6565b610f9f565b60405161050591906126fe565b60405180910390f35b34801561051a57600080fd5b506105236110ad565b005b34801561053157600080fd5b5061053a6110c1565b60405161054791906124e0565b60405180910390f35b34801561055c57600080fd5b506105656110d4565b6040516105729190612628565b60405180910390f35b34801561058757600080fd5b506105906110fe565b60405161059d9190612594565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c8919061283f565b611190565b005b6105e960048036038101906105e491906128bb565b611310565b005b3480156105f757600080fd5b50610612600480360381019061060d91906128e8565b61145c565b005b34801561062057600080fd5b5061063b60048036038101906106369190612a4a565b611481565b005b34801561064957600080fd5b50610664600480360381019061065f91906125ec565b6114e3565b6040516106719190612594565b60405180910390f35b34801561068657600080fd5b5061068f6115f0565b60405161069c91906126fe565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c791906125ec565b6115f6565b6040516106d991906126fe565b60405180910390f35b3480156106ee57600080fd5b5061070960048036038101906107049190612acd565b61165b565b60405161071691906124e0565b60405180910390f35b34801561072b57600080fd5b50610746600480360381019061074191906127e6565b6116ef565b005b610750611772565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108075750610806826117f0565b5b9050919050565b60606000805461081d90612b3c565b80601f016020809104026020016040519081016040528092919081815260200182805461084990612b3c565b80156108965780601f1061086b57610100808354040283529160200191610896565b820191906000526020600020905b81548152906001019060200180831161087957829003601f168201915b5050505050905090565b60006108ab826118d2565b6108ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190612bb9565b60405180910390fd5b6003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061093082610ee3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099790612c4b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109bf61195a565b73ffffffffffffffffffffffffffffffffffffffff1614806109ee57506109ed816109e861195a565b61165b565b5b610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490612cdd565b60405180910390fd5b610a378383611962565b505050565b610a44611772565b600960019054906101000a900460ff16610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90612d49565b60405180910390fd5b806006600084815260200190815260200160002081905550817faabfe5e8bccf1a1352f72b557ce580211305c37f88d5783ae467a1ba5e0761e082604051610adb91906126fe565b60405180910390a25050565b60008060005b600280549050811015610b7e57600073ffffffffffffffffffffffffffffffffffffffff1660028281548110610b2657610b25612d69565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b73578160010191505b806001019050610aed565b508091505090565b610b97610b9161195a565b82611a1b565b610bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcd90612e0a565b60405180910390fd5b610be1838383611ab0565b505050565b6000610bf183610f9f565b8210610c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2990612e9c565b60405180910390fd5b6000805b600280549050811015610cd75760028181548110610c5757610c56612d69565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610ccc57838203610cc5578092505050610d13565b8160010191505b806001019050610c36565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0a90612e9c565b60405180910390fd5b92915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960019054906101000a900460ff1681565b610d5a611772565b6000600960016101000a81548160ff021916908315150217905550565b610d7f611772565b6000610d896110d4565b73ffffffffffffffffffffffffffffffffffffffff1647604051610dac90612eed565b60006040518083038185875af1925050503d8060008114610de9576040519150601f19603f3d011682016040523d82523d6000602084013e610dee565b606091505b5050905080610dfc57600080fd5b50565b610e1a83838360405180602001604052806000815250611481565b505050565b610e30610e2a61195a565b82611a1b565b610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690612f4e565b60405180910390fd5b6006600082815260200190815260200160002060009055610e8f81611c88565b50565b60006002805490508210610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed290612fe0565b60405180910390fd5b819050919050565b60008060028381548110610efa57610ef9612d69565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8d90612bb9565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690613072565b60405180910390fd5b6000805b6002805490508110156110a3576002818154811061103457611033612d69565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611098578160010191505b806001019050611013565b5080915050919050565b6110b5611772565b6110bf6000611d6c565b565b600960009054906101000a900460ff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461110d90612b3c565b80601f016020809104026020016040519081016040528092919081815260200182805461113990612b3c565b80156111865780601f1061115b57610100808354040283529160200191611186565b820191906000526020600020905b81548152906001019060200180831161116957829003601f168201915b5050505050905090565b8173ffffffffffffffffffffffffffffffffffffffff166111af61195a565b73ffffffffffffffffffffffffffffffffffffffff1603611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc906130de565b60405180910390fd5b806004600061121261195a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166112bf61195a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161130491906124e0565b60405180910390a35050565b600960009054906101000a900460ff1661135f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135690613170565b60405180910390fd5b60658163ffffffff16106113a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139f906131dc565b60405180910390fd5b600060028054905090506008548263ffffffff168201106113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590613248565b60405180910390fd5b60005b8263ffffffff168163ffffffff1610156114575761141e82611e32565b600660008481526020019081526020016000208190555061144661144061195a565b83611fe1565b816001019150806001019050611401565b505050565b611464611772565b80600960006101000a81548160ff02191690831515021790555050565b61149261148c61195a565b83611a1b565b6114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c890612e0a565b60405180910390fd5b6114dd848484846120ed565b50505050565b60606114ee826118d2565b61152d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611524906132b4565b60405180910390fd5b600060066000848152602001908152602001600020549050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166392cb829d84836040518363ffffffff1660e01b81526004016115a29291906132d4565b600060405180830381865afa1580156115bf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906115e8919061339e565b915050919050565b60085481565b6000611601826118d2565b611640576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611637906132b4565b60405180910390fd5b60066000838152602001908152602001600020549050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6116f7611772565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90613459565b60405180910390fd5b61176f81611d6c565b50565b61177a61195a565b73ffffffffffffffffffffffffffffffffffffffff166117986110d4565b73ffffffffffffffffffffffffffffffffffffffff16146117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e5906134c5565b60405180910390fd5b565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806118bb57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806118cb57506118ca82612149565b5b9050919050565b6000600280549050821080156119535750600073ffffffffffffffffffffffffffffffffffffffff166002838154811061190f5761190e612d69565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b600033905090565b816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166119d583610ee3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611a2783610ee3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611a695750611a68818561165b565b5b80611aa757508373ffffffffffffffffffffffffffffffffffffffff16611a8f846108a0565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611ad082610ee3565b73ffffffffffffffffffffffffffffffffffffffff1614611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90613557565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c906135e9565b60405180910390fd5b6003600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558160028281548110611be057611bdf612d69565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000611c9382610ee3565b90506003600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028281548110611cdf57611cde612d69565b5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080611e3e836121b3565b90506000600a6014603084901c611e559190613638565b611e5f9190613698565b600a600784611e6e9190613638565b611e789190613698565b6064611e8491906136ee565b611e8e9190613698565b90506000600a6014606085901c611ea59190613638565b611eaf9190613698565b600a6006606086901c611ec29190613638565b611ecc9190613698565b6064611ed891906136ee565b611ee29190613698565b90506000600a6014609086901c611ef99190613638565b611f039190613698565b600a6007609087901c611f169190613638565b611f209190613698565b6064611f2c91906136ee565b611f369190613698565b90506000600a601460c087901c611f4d9190613638565b611f579190613698565b600a600260c088901c611f6a9190613638565b611f749190613698565b6064611f8091906136ee565b611f8a9190613698565b905080828486612710611f9d91906136ee565b611fa79190613698565b612710611fb491906136ee565b611fbe9190613698565b612710611fcb91906136ee565b611fd59190613698565b95505050505050919050565b611fea816118d2565b1561202a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202190613794565b60405180910390fd5b6002829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6120f8848484611ab0565b612104848484846121f5565b612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a90613826565b60405180910390fd5b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006001436121c29190613846565b40826040516020016121d59291906138c6565b6040516020818303038152906040528051906020012060001c9050919050565b60006122168473ffffffffffffffffffffffffffffffffffffffff1661237c565b1561236f578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261223f61195a565b8786866040518563ffffffff1660e01b81526004016122619493929190613947565b6020604051808303816000875af192505050801561229d57506040513d601f19601f8201168201806040525081019061229a91906139a8565b60015b61231f573d80600081146122cd576040519150601f19603f3d011682016040523d82523d6000602084013e6122d2565b606091505b506000815103612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230e90613826565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612374565b600190505b949350505050565b600080823b905060008111915050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123ce826123a3565b9050919050565b60006123e0826123c3565b9050919050565b6123f0816123d5565b81146123fb57600080fd5b50565b60008135905061240d816123e7565b92915050565b60006020828403121561242957612428612399565b5b6000612437848285016123fe565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61247581612440565b811461248057600080fd5b50565b6000813590506124928161246c565b92915050565b6000602082840312156124ae576124ad612399565b5b60006124bc84828501612483565b91505092915050565b60008115159050919050565b6124da816124c5565b82525050565b60006020820190506124f560008301846124d1565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561253557808201518184015260208101905061251a565b83811115612544576000848401525b50505050565b6000601f19601f8301169050919050565b6000612566826124fb565b6125708185612506565b9350612580818560208601612517565b6125898161254a565b840191505092915050565b600060208201905081810360008301526125ae818461255b565b905092915050565b6000819050919050565b6125c9816125b6565b81146125d457600080fd5b50565b6000813590506125e6816125c0565b92915050565b60006020828403121561260257612601612399565b5b6000612610848285016125d7565b91505092915050565b612622816123c3565b82525050565b600060208201905061263d6000830184612619565b92915050565b61264c816123c3565b811461265757600080fd5b50565b60008135905061266981612643565b92915050565b6000806040838503121561268657612685612399565b5b60006126948582860161265a565b92505060206126a5858286016125d7565b9150509250929050565b600080604083850312156126c6576126c5612399565b5b60006126d4858286016125d7565b92505060206126e5858286016125d7565b9150509250929050565b6126f8816125b6565b82525050565b600060208201905061271360008301846126ef565b92915050565b60008060006060848603121561273257612731612399565b5b60006127408682870161265a565b93505060206127518682870161265a565b9250506040612762868287016125d7565b9150509250925092565b6000819050919050565b600061279161278c612787846123a3565b61276c565b6123a3565b9050919050565b60006127a382612776565b9050919050565b60006127b582612798565b9050919050565b6127c5816127aa565b82525050565b60006020820190506127e060008301846127bc565b92915050565b6000602082840312156127fc576127fb612399565b5b600061280a8482850161265a565b91505092915050565b61281c816124c5565b811461282757600080fd5b50565b60008135905061283981612813565b92915050565b6000806040838503121561285657612855612399565b5b60006128648582860161265a565b92505060206128758582860161282a565b9150509250929050565b600063ffffffff82169050919050565b6128988161287f565b81146128a357600080fd5b50565b6000813590506128b58161288f565b92915050565b6000602082840312156128d1576128d0612399565b5b60006128df848285016128a6565b91505092915050565b6000602082840312156128fe576128fd612399565b5b600061290c8482850161282a565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129578261254a565b810181811067ffffffffffffffff821117156129765761297561291f565b5b80604052505050565b600061298961238f565b9050612995828261294e565b919050565b600067ffffffffffffffff8211156129b5576129b461291f565b5b6129be8261254a565b9050602081019050919050565b82818337600083830152505050565b60006129ed6129e88461299a565b61297f565b905082815260208101848484011115612a0957612a0861291a565b5b612a148482856129cb565b509392505050565b600082601f830112612a3157612a30612915565b5b8135612a418482602086016129da565b91505092915050565b60008060008060808587031215612a6457612a63612399565b5b6000612a728782880161265a565b9450506020612a838782880161265a565b9350506040612a94878288016125d7565b925050606085013567ffffffffffffffff811115612ab557612ab461239e565b5b612ac187828801612a1c565b91505092959194509250565b60008060408385031215612ae457612ae3612399565b5b6000612af28582860161265a565b9250506020612b038582860161265a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b5457607f821691505b602082108103612b6757612b66612b0d565b5b50919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612ba3601883612506565b9150612bae82612b6d565b602082019050919050565b60006020820190508181036000830152612bd281612b96565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c35602183612506565b9150612c4082612bd9565b604082019050919050565b60006020820190508181036000830152612c6481612c28565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000612cc7603883612506565b9150612cd282612c6b565b604082019050919050565b60006020820190508181036000830152612cf681612cba565b9050919050565b7f43616e6e6f742073657420746865207365656400000000000000000000000000600082015250565b6000612d33601383612506565b9150612d3e82612cfd565b602082019050919050565b60006020820190508181036000830152612d6281612d26565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612df4602d83612506565b9150612dff82612d98565b604082019050919050565b60006020820190508181036000830152612e2381612de7565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000612e86602b83612506565b9150612e9182612e2a565b604082019050919050565b60006020820190508181036000830152612eb581612e79565b9050919050565b600081905092915050565b50565b6000612ed7600083612ebc565b9150612ee282612ec7565b600082019050919050565b6000612ef882612eca565b9150819050919050565b7f4e6f7420617070726f76656420746f206275726e2e0000000000000000000000600082015250565b6000612f38601583612506565b9150612f4382612f02565b602082019050919050565b60006020820190508181036000830152612f6781612f2b565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000612fca602c83612506565b9150612fd582612f6e565b604082019050919050565b60006020820190508181036000830152612ff981612fbd565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061305c602983612506565b915061306782613000565b604082019050919050565b6000602082019050818103600083015261308b8161304f565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006130c8601983612506565b91506130d382613092565b602082019050919050565b600060208201905081810360008301526130f7816130bb565b9050919050565b7f4d696e74696e67206e6565647320746f20626520656e61626c656420746f207360008201527f74617274206d696e74696e670000000000000000000000000000000000000000602082015250565b600061315a602c83612506565b9150613165826130fe565b604082019050919050565b600060208201905081810360008301526131898161314d565b9050919050565b7f45786365656473206d617820706572207472616e73616374696f6e2e00000000600082015250565b60006131c6601c83612506565b91506131d182613190565b602082019050919050565b600060208201905081810360008301526131f5816131b9565b9050919050565b7f45786365656473206d617820737570706c792e00000000000000000000000000600082015250565b6000613232601383612506565b915061323d826131fc565b602082019050919050565b6000602082019050818103600083015261326181613225565b9050919050565b7f4f776c20646f6573206e6f742065786973742e00000000000000000000000000600082015250565b600061329e601383612506565b91506132a982613268565b602082019050919050565b600060208201905081810360008301526132cd81613291565b9050919050565b60006040820190506132e960008301856126ef565b6132f660208301846126ef565b9392505050565b600067ffffffffffffffff8211156133185761331761291f565b5b6133218261254a565b9050602081019050919050565b600061334161333c846132fd565b61297f565b90508281526020810184848401111561335d5761335c61291a565b5b613368848285612517565b509392505050565b600082601f83011261338557613384612915565b5b815161339584826020860161332e565b91505092915050565b6000602082840312156133b4576133b3612399565b5b600082015167ffffffffffffffff8111156133d2576133d161239e565b5b6133de84828501613370565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613443602683612506565b915061344e826133e7565b604082019050919050565b6000602082019050818103600083015261347281613436565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134af602083612506565b91506134ba82613479565b602082019050919050565b600060208201905081810360008301526134de816134a2565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613541602583612506565b915061354c826134e5565b604082019050919050565b6000602082019050818103600083015261357081613534565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135d3602483612506565b91506135de82613577565b604082019050919050565b60006020820190508181036000830152613602816135c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613643826125b6565b915061364e836125b6565b92508261365e5761365d613609565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136a3826125b6565b91506136ae836125b6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136e3576136e2613669565b5b828201905092915050565b60006136f9826125b6565b9150613704836125b6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561373d5761373c613669565b5b828202905092915050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061377e601c83612506565b915061378982613748565b602082019050919050565b600060208201905081810360008301526137ad81613771565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613810603283612506565b915061381b826137b4565b604082019050919050565b6000602082019050818103600083015261383f81613803565b9050919050565b6000613851826125b6565b915061385c836125b6565b92508282101561386f5761386e613669565b5b828203905092915050565b6000819050919050565b6000819050919050565b61389f61389a8261387a565b613884565b82525050565b6000819050919050565b6138c06138bb826125b6565b6138a5565b82525050565b60006138d2828561388e565b6020820191506138e282846138af565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000613919826138f2565b61392381856138fd565b9350613933818560208601612517565b61393c8161254a565b840191505092915050565b600060808201905061395c6000830187612619565b6139696020830186612619565b61397660408301856126ef565b8181036060830152613988818461390e565b905095945050505050565b6000815190506139a28161246c565b92915050565b6000602082840312156139be576139bd612399565b5b60006139cc84828501613993565b9150509291505056fea2646970667358221220a23dd9504db39f641c7b427969a91d9e94b062bcc7d74e8aaa5190d17f409dab64736f6c634300080d0033000000000000000000000000ebf3c7d208de9a8af93d512652a32f71cd312d92