60806040523480156200001157600080fd5b5060408051808201825260078082527f4e6966746965730000000000000000000000000000000000000000000000000060208084019190915283518085019094529083527f4e494654494553000000000000000000000000000000000000000000000000009083015290620000af7f01ffc9a700000000000000000000000000000000000000000000000000000000640100000000620001b3810204565b620000e37f80ac58cd00000000000000000000000000000000000000000000000000000000640100000000620001b3810204565b620001177f4f558e7900000000000000000000000000000000000000000000000000000000640100000000620001b3810204565b81516200012c90600590602085019062000220565b5080516200014290600690602084019062000220565b50620001777f780e9d6300000000000000000000000000000000000000000000000000000000640100000000620001b3810204565b620001ab7f5b5e139f00000000000000000000000000000000000000000000000000000000640100000000620001b3810204565b5050620002c5565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620001e357600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026357805160ff191683800117855562000293565b8280016001018555821562000293579182015b828111156200029357825182559160200191906001019062000276565b50620002a1929150620002a5565b5090565b620002c291905b80821115620002a15760008155600101620002ac565b90565b611a5780620002d56000396000f30060806040526004361061011c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461012157806306fdde0314610157578063081812fc146101e1578063095ea7b31461021557806318160ddd1461023b57806319fa8f501461026257806323b872dd146102945780632f745c59146102be57806342842e0e146102e25780634f558e791461030c5780634f6ccce7146103245780636352211e1461033c57806370a08231146103545780638462151c146103755780639507d39a146103e657806395d89b411461044c578063a22cb46514610461578063b88d4fde14610487578063c87b56dd146104f6578063e985e9c51461050e578063efc81a8c14610535575b600080fd5b34801561012d57600080fd5b50610143600160e060020a03196004351661054a565b604080519115158252519081900360200190f35b34801561016357600080fd5b5061016c610569565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a657818101518382015260200161018e565b50505050905090810190601f1680156101d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ed57600080fd5b506101f9600435610600565b60408051600160a060020a039092168252519081900360200190f35b34801561022157600080fd5b50610239600160a060020a036004351660243561061b565b005b34801561024757600080fd5b506102506106d1565b60408051918252519081900360200190f35b34801561026e57600080fd5b506102776106d7565b60408051600160e060020a03199092168252519081900360200190f35b3480156102a057600080fd5b50610239600160a060020a03600435811690602435166044356106fb565b3480156102ca57600080fd5b50610250600160a060020a036004351660243561079e565b3480156102ee57600080fd5b50610239600160a060020a03600435811690602435166044356107eb565b34801561031857600080fd5b5061014360043561080c565b34801561033057600080fd5b50610250600435610829565b34801561034857600080fd5b506101f960043561085e565b34801561036057600080fd5b50610250600160a060020a0360043516610888565b34801561038157600080fd5b50610396600160a060020a03600435166108bb565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103d25781810151838201526020016103ba565b505050509050019250505060405180910390f35b3480156103f257600080fd5b506103fe600435610927565b60408051600160a060020a03909716875260ff9586166020880152938516868501529184166060860152909216608084015267ffffffffffffffff90911660a0830152519081900360c00190f35b34801561045857600080fd5b5061016c610a2a565b34801561046d57600080fd5b50610239600160a060020a03600435166024351515610a8b565b34801561049357600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261023994600160a060020a038135811695602480359092169560443595369560849401918190840183828082843750949750610b0f9650505050505050565b34801561050257600080fd5b5061016c600435610b37565b34801561051a57600080fd5b50610143600160a060020a0360043581169060243516610be2565b34801561054157600080fd5b50610250610c10565b600160e060020a03191660009081526020819052604090205460ff1690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105f55780601f106105ca576101008083540402835291602001916105f5565b820191906000526020600020905b8154815290600101906020018083116105d857829003601f168201915b505050505090505b90565b600090815260026020526040902054600160a060020a031690565b60006106268261085e565b9050600160a060020a03838116908216141561064157600080fd5b33600160a060020a038216148061065d575061065d8133610be2565b151561066857600080fd5b600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60095490565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b6107053382610f41565b151561071057600080fd5b600160a060020a038316151561072557600080fd5b600160a060020a038216151561073a57600080fd5b6107448382610fa0565b61074e8382611011565b6107588282611118565b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006107a983610888565b82106107b457600080fd5b600160a060020a03831660009081526007602052604090208054839081106107d857fe5b9060005260206000200154905092915050565b6108078383836020604051908101604052806000815250610b0f565b505050565b600090815260016020526040902054600160a060020a0316151590565b60006108336106d1565b821061083e57600080fd5b600980548390811061084c57fe5b90600052602060002001549050919050565b600081815260016020526040812054600160a060020a031680151561088257600080fd5b92915050565b6000600160a060020a038216151561089f57600080fd5b50600160a060020a031660009081526003602052604090205490565b600160a060020a03811660009081526007602090815260409182902080548351818402810184019094528084526060939283018282801561091b57602002820191906000526020600020905b815481526020019060010190808311610907575b50505050509050919050565b600081815260016020526040812054600c805483928392839283928392600160a060020a03909116918990811061095a57fe5b600091825260209091200154600c805460ff909216918a90811061097a57fe5b9060005260206000200160000160019054906101000a900460ff16600c8a8154811015156109a457fe5b9060005260206000200160000160029054906101000a900460ff16600c8b8154811015156109ce57fe5b9060005260206000200160000160039054906101000a900460ff16600c8c8154811015156109f857fe5b600091825260209091200154949c939b509199509750955064010000000090910467ffffffffffffffff169350915050565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105f55780601f106105ca576101008083540402835291602001916105f5565b600160a060020a038216331415610aa157600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610b1a8484846106fb565b610b2684848484611161565b1515610b3157600080fd5b50505050565b6060610b428261080c565b1515610b4d57600080fd5b6000828152600b602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452909183018282801561091b5780601f10610bb55761010080835404028352916020019161091b565b820191906000526020600020905b815481529060010190602001808311610bc35750939695505050505050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000806000806000806060610c23611941565b610c2b6106d1565b6040805160208082019390935260001943014081830152815180820383018152606090910191829052805190928291908401908083835b60208310610c815780518252601f199092019160209182019101610c62565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120995060059250505060f860020a600089901a81020460ff16066001908101965060079088901a60f860020a0260f860020a900460ff16811515610ce957fe5b066001019450600760f860020a600289901a81020460ff16066001019350600860f860020a600389901a81020460ff16066001019250610d2b868686866112ce565b6040805160a08101825260ff808a168252888116602083019081528882169383019384528782166060840190815267ffffffffffffffff43811660808601908152600c805460018101825560009190915286517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7820180549651995195519351909416640100000000026bffffffffffffffff000000001993881663010000000263ff00000019968916620100000262ff0000199b8a166101000261ff001994909a1660ff199099169890981792909216979097179890981694909417929092169590951716919091179092559099509092509050610e2a3389611467565b610e3488836114b6565b33600160a060020a03167fc6872ee4e739b5642b7baabad9847552d3581516340e52dfaf90b7efe8dd32b18988888888876080015189604051808881526020018760ff1660ff1681526020018660ff1660ff1681526020018560ff1660ff1681526020018460ff1660ff1681526020018367ffffffffffffffff1667ffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ef7578181015183820152602001610edf565b50505050905090810190601f168015610f245780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a25050505050505090565b600080610f4d8361085e565b905080600160a060020a031684600160a060020a03161480610f88575083600160a060020a0316610f7d84610600565b600160a060020a0316145b80610f985750610f988185610be2565b949350505050565b81600160a060020a0316610fb38261085e565b600160a060020a031614610fc657600080fd5b600081815260026020526040902054600160a060020a03161561100d576000818152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b5050565b600080600061102085856114e9565b600084815260086020908152604080832054600160a060020a038916845260079092529091205490935061105b90600163ffffffff61157f16565b600160a060020a03861660009081526007602052604090208054919350908390811061108357fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a03168152602001908152602001600020848154811015156110c357fe5b6000918252602080832090910192909255600160a060020a03871681526007909152604090208054906110fa90600019830161196f565b50600093845260086020526040808520859055908452909220555050565b60006111248383611591565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b60008061117685600160a060020a0316611621565b151561118557600191506112c5565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03898116602485015260448401889052608060648501908152875160848601528751918a169463150b7a0294938c938b938b93909160a490910190602085019080838360005b83811015611218578181015183820152602001611200565b50505050905090810190601f1680156112455780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561126757600080fd5b505af115801561127b573d6000803e3d6000fd5b505050506040513d602081101561129157600080fd5b5051600160e060020a031981167f150b7a020000000000000000000000000000000000000000000000000000000014925090505b50949350505050565b6040805160608181018352602282527f68747470733a2f2f6e6966746965732e696f2f746f6b656e732f6e696674696560208301527f732d000000000000000000000000000000000000000000000000000000000000928201929092526113358187611629565b9050611376816040805190810160405280600181526020017f2d000000000000000000000000000000000000000000000000000000000000008152506117ba565b90506113828186611629565b90506113c3816040805190810160405280600181526020017f2d000000000000000000000000000000000000000000000000000000000000008152506117ba565b90506113cf8185611629565b9050611410816040805190810160405280600181526020017f2d000000000000000000000000000000000000000000000000000000000000008152506117ba565b905061141c8184611629565b905061145d816040805190810160405280600481526020017f2e706e67000000000000000000000000000000000000000000000000000000008152506117ba565b9695505050505050565b61147182826118d9565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af015550565b6114bf8261080c565b15156114ca57600080fd5b6000828152600b60209081526040909120825161080792840190611993565b81600160a060020a03166114fc8261085e565b600160a060020a03161461150f57600080fd5b600160a060020a03821660009081526003602052604090205461153990600163ffffffff61157f16565b600160a060020a03909216600090815260036020908152604080832094909455918152600190915220805473ffffffffffffffffffffffffffffffffffffffff19169055565b60008282111561158b57fe5b50900390565b600081815260016020526040902054600160a060020a0316156115b357600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038816908117909155845260039091529091205461160191611934565b600160a060020a0390921660009081526003602052604090209190915550565b6000903b1190565b60408051606480825260a0820190925260609190829060009081908390819083908760208201610c8080388339019050509550600094505b60ff8916156116b6578551600a60ff9a8b168181049b60018901989290910616955060f860020a603087010291889190811061169957fe5b906020010190600160f860020a031916908160001a905350611661565b899250848351016040519080825280601f01601f1916602001820160405280156116ea578160200160208202803883390190505b509150600090505b825181101561174a57828181518110151561170957fe5b90602001015160f860020a900460f860020a02828281518110151561172a57fe5b906020010190600160f860020a031916908160001a9053506001016116f2565b5060005b848110156117ad578581600187030381518110151561176957fe5b90602001015160f860020a900460f860020a02828451830181518110151561178d57fe5b906020010190600160f860020a031916908160001a90535060010161174e565b5098975050505050505050565b606080606080606060008088955087945084518651016040519080825280601f01601f1916602001820160405280156117fd578160200160208202803883390190505b50935083925060009150600090505b855181101561186a57858181518110151561182357fe5b90602001015160f860020a900460f860020a02838380600101945081518110151561184a57fe5b906020010190600160f860020a031916908160001a90535060010161180c565b5060005b84518110156118cc57848181518110151561188557fe5b90602001015160f860020a900460f860020a0283838060010194508151811015156118ac57fe5b906020010190600160f860020a031916908160001a90535060010161186e565b5090979650505050505050565b600160a060020a03821615156118ee57600080fd5b6118f88282611118565b6040518190600160a060020a038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8181018281101561088257fe5b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b81548183558181111561080757600083815260209020610807918101908301611a11565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106119d457805160ff1916838001178555611a01565b82800160010185558215611a01579182015b82811115611a015782518255916020019190600101906119e6565b50611a0d929150611a11565b5090565b6105fd91905b80821115611a0d5760008155600101611a175600a165627a7a7230582061e02603dbdf65eb0fa87361e554cb3fa26c109af391ef4c092f9d67de4f383a0029