diff --git a/pkg/ddl/backfilling_dist_executor.go b/pkg/ddl/backfilling_dist_executor.go index fc57770733ca3..7911908fd0668 100644 --- a/pkg/ddl/backfilling_dist_executor.go +++ b/pkg/ddl/backfilling_dist_executor.go @@ -71,8 +71,6 @@ type BackfillSubTaskMeta struct { external.SortedKVMeta `json:",inline"` } -var DecodeBackfillSubTaskMeta4Test = decodeBackfillSubTaskMeta - func decodeBackfillSubTaskMeta(raw []byte) (*BackfillSubTaskMeta, error) { var subtask BackfillSubTaskMeta err := json.Unmarshal(raw, &subtask) diff --git a/pkg/ddl/backfilling_dist_scheduler.go b/pkg/ddl/backfilling_dist_scheduler.go index 423d2bc6ce83e..c7c4b38d2d77f 100644 --- a/pkg/ddl/backfilling_dist_scheduler.go +++ b/pkg/ddl/backfilling_dist_scheduler.go @@ -25,7 +25,6 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/failpoint" - brlogutil "github.com/pingcap/tidb/br/pkg/logutil" "github.com/pingcap/tidb/br/pkg/storage" "github.com/pingcap/tidb/pkg/ddl/ingest" "github.com/pingcap/tidb/pkg/ddl/logutil" @@ -386,17 +385,7 @@ func generateGlobalSortIngestPlan( if kvMetaGroups[i] == nil { kvMetaGroups[i] = &external.SortedKVMeta{} } - logger.Warn("[date0218] generateGlobalSortIngestPlan before merged", zap.Int("i", i), - brlogutil.Key("startKey", kvMetaGroups[i].StartKey), - brlogutil.Key("endKey", kvMetaGroups[i].EndKey), - brlogutil.Key("cur.startKey", cur.StartKey), - brlogutil.Key("cur.endKey", cur.EndKey), - ) kvMetaGroups[i].Merge(cur) - // [date0218] All of these endKey can NOT be decoded - logger.Warn("[date0218] generateGlobalSortIngestPlan after merged", - brlogutil.Key("startKey", kvMetaGroups[i].StartKey), - brlogutil.Key("endKey", kvMetaGroups[i].EndKey)) } }) if err != nil { @@ -480,7 +469,6 @@ func splitSubtaskMetaForOneKVMetaGroup( startKey := kvMeta.StartKey var endKey kv.Key - logger.Warn("[date0218] splitSubtaskMetaForOneKVMetaGroup", brlogutil.Key("startKey", kvMeta.StartKey), brlogutil.Key("endKey", kvMeta.EndKey)) for { endKeyOfGroup, dataFiles, statFiles, interiorRangeJobKeys, interiorRegionSplitKeys, err := splitter.SplitOneRangesGroup() if err != nil { @@ -488,10 +476,8 @@ func splitSubtaskMetaForOneKVMetaGroup( } if len(endKeyOfGroup) == 0 { endKey = kvMeta.EndKey - logger.Warn("[date0218] splitSubtaskMetaForOneKVMetaGroup get endKey with kvMeta.EndKey") } else { endKey = kv.Key(endKeyOfGroup).Clone() - logger.Warn("[date0218] splitSubtaskMetaForOneKVMetaGroup get endKey without kvMeta.EndKey", brlogutil.Key("endKey", endKey)) } logger.Info("split subtask range", zap.String("startKey", hex.EncodeToString(startKey)), @@ -509,9 +495,6 @@ func splitSubtaskMetaForOneKVMetaGroup( regionSplitKeys = append(regionSplitKeys, startKey) regionSplitKeys = append(regionSplitKeys, interiorRegionSplitKeys...) regionSplitKeys = append(regionSplitKeys, endKey) - for i, k := range regionSplitKeys { - logger.Warn("[date0218] splitSubtaskMetaForOneKVMetaGroup regionSplitKeys", zap.Int("i", i), brlogutil.Key("key", k)) - } m := &BackfillSubTaskMeta{ MetaGroups: []*external.SortedKVMeta{{ StartKey: startKey, @@ -682,7 +665,6 @@ func forEachBackfillSubtaskMeta( } for _, subTaskMeta := range subTaskMetas { subtask, err := decodeBackfillSubTaskMeta(subTaskMeta) - // TODO: 0218 add log here for subtask if err != nil { logutil.DDLLogger().Error("unmarshal error", zap.Error(err)) return errors.Trace(err) diff --git a/pkg/ddl/backfilling_dist_scheduler_test.go b/pkg/ddl/backfilling_dist_scheduler_test.go index 9ed6c745c098f..4f471bb33d3e2 100644 --- a/pkg/ddl/backfilling_dist_scheduler_test.go +++ b/pkg/ddl/backfilling_dist_scheduler_test.go @@ -16,9 +16,7 @@ package ddl_test import ( "context" - "encoding/hex" "encoding/json" - "fmt" "testing" "time" @@ -39,15 +37,6 @@ import ( "github.com/tikv/client-go/v2/util" ) -func Test(t *testing.T) { - hexString := "7B22706879736963616C5F7461626C655F6964223A302C22726F775F7374617274223A2264494141414141414141427558334B4141414141414350614E413D3D222C22726F775F656E64223A2264494141414141414141427558334B41414141414144584A6877413D222C227473223A3435363232363137303033303236303232372C226D6574615F67726F757073223A5B7B2273746172742D6B6579223A2264494141414141414141442F626C3970674141414141442F41414154415441774D44442F4D545A684E2F38744F546E2F5A4459744E47502F4E324C2F4C57466C4E6A41742F7A4C2F4E474D775A6A6B795A502F2F4F57557A5A454A525357582F2F32396A54476C32566C502F63503979556B526E6145582F63457A2F4F4778515133662F616E52422F324E615A30622F546B6850577639346131582F6356426B576D6E2F6354442F5355686E54546B322F32622F54475269596C6F3556662F2F536E70786246524E56576A2F2F314635546D78344E54542F6450395451316C344D6C6A2F5A6A442F625842724E32502F4D304E432F31427A62572F2F4D3078485266396B4D55622F576D4658637A502F4E552F2F6230317057454A532F336E2F5A56566D56336C5652502F2F54566C3663446C4253576E2F2F32464456566C575A484C2F512F394A565768764E57502F546A442F4D5563314E6E6A2F576D73302F3164515A7A4C2F5545703654503947637A662F4E306C46636C6A2F53556A2F61554D325A315A442F33662F623039455246567661502F2F53326859565845314D6D2F2F2F7A68685A3170706347332F5266396B5347314E59576E2F51576E2F626C464B5432482F636A457A2F324635527A662F4D6E5531546638794D45722F6333464A556E482F4D584C2F616D684755324E592F33662F526C64574E6D5A4661762F2F536C52325A6B785052457A2F2F323577574768725648582F552F39425746493265572F2F6430502F57464534656A4C2F597A64732F3268325530622F543056565666394F5257662F52336C4A6130372F52452F2F55554A68556D394C2F307A2F636C523351336778552F2F2F6330354A625552585930482F2F31563256464E764E31542F65663972624868765A7A482F5446442F646E646F5458722F5A55394B2F335A555245722F55557876537638774F47762F64544E4F5232542F5A54662F6457316A646D64492F7A6E2F6346704E4E6E466A65762F2F64444E45516C644B4D58482F2F3235364F464A72576D6E2F65663834635764736344622F637A502F5532466A556D582F59576C4D2F7A4677526A482F52304E72565039575633542F555442425744582F5454502F4D573130545738342F7A4C2F537A45775446553257502F2F4D545577596D387A4D30482F2F315251595856516455582F577639574E565A445A6D6E2F6145582F593352505655622F524770532F30687A5758542F595468356166396F5455542F5A474A5255466E2F576B6E2F57564678644556512F322F2F54545A5951574A4A4D762F2F626A6B335A6D5A4761557A2F2F304E7264584661597A582F4D663978547A68434E45622F65446E2F4E56465456552F2F613074332F7A4A73646E6A2F516A64615A2F396957446E2F614656736433662F61552F2F5A486C465A3364452F7A482F615452596232467954502F2F52484A5756566C495448582F2F3252744D476C715557582F5366396F617A55304E6B372F5358722F635468445757662F6558684B2F335A48516A6A2F52486C6B4F503877526D582F59334E525655582F616A662F4F585A58526D68342F7A502F5555706F596E56574150372F414141414141414141414433674141414141416C7471304143413D3D222C22656E642D6B6579223A2264494141414141414141442F626C3970674141414141442F4141415441575A6D5A6D622F5A6D566A4F663874596A662F595459744E47622F4E574C2F4C574A6D5A4445742F7A6A2F4F5467344D5463794E2F2F2F4D4759354F476C49646A622F2F324633574864465658442F55763930554852744E6E6A2F5457502F527A6872546E6E2F4F465A6C2F326451576A482F4F5564475550387A4E33722F4D32567257474C2F636E6A2F626D49306255316D2F31442F55465A755247314256662F2F4F453932616D51324E6C482F2F3156485630746F6345762F5976387852474A58636D542F4E55482F646B395864576E2F54444A4A2F335A516556502F6555644251663932566B582F6157567761307A2F5958502F6345566851324E742F30542F575570765331597956502F2F546E5A304D3268366255502F2F33424D654774555154662F5676394B5633704F5356662F4E6D6E2F546D6470536C622F5A5670512F306848636D662F61584A615A5038335A6B4C2F524774476457332F656D502F516E4A70566D5A732F33502F566C4E355255467153502F2F656A5578533164346330502F2F7A6C46556D78725A56482F57763944633252324E58442F6545762F4F45354264484C2F54554A472F334E4A52576E2F57585668562F396D526D482F516A42306555582F6155502F65546C49593046342F324C2F64557843636B317A62762F2F57475635576E56755A7A582F2F7A6877516B6C6D4F48662F5176397A646A6C334D6B332F6233502F5A6D744E636C442F563170682F33593452456A2F53326778645039785A464C2F4E455A756347482F5A57762F5A555979593170582F31542F5648686E5631703163502F2F5A584A56636D56365232622F2F7A6434525774575346542F5A503955626D63305454662F5545622F4E5756585458662F5431704C2F31527964457A2F624641775A2F39684141442F4141414141414434414144396741414141414173484C30414341413D222C22746F74616C2D6B762D73697A65223A313537363239363832382C22746F74616C2D6B762D636E74223A313137353338302C226D756C7469706C652D66696C65732D7374617473223A5B7B226D696E2D6B6579223A2264494141414141414141442F626C3970674141414141442F41414154415441774D44442F4D545A684E2F38744F546E2F5A4459744E47502F4E324C2F4C57466C4E6A41742F7A4C2F4E474D775A6A6B795A502F2F4F57557A5A454A525357582F2F32396A54476C32566C502F63503979556B526E6145582F63457A2F4F4778515133662F616E52422F324E615A30622F546B6850577639346131582F6356426B576D6E2F6354442F5355686E54546B322F32622F54475269596C6F3556662F2F536E70786246524E56576A2F2F314635546D78344E54542F6450395451316C344D6C6A2F5A6A442F625842724E32502F4D304E432F31427A62572F2F4D3078485266396B4D55622F576D4658637A502F4E552F2F6230317057454A532F336E2F5A56566D56336C5652502F2F54566C3663446C4253576E2F2F32464456566C575A484C2F512F394A565768764E57502F546A442F4D5563314E6E6A2F576D73302F3164515A7A4C2F5545703654503947637A662F4E306C46636C6A2F53556A2F61554D325A315A442F33662F623039455246567661502F2F53326859565845314D6D2F2F2F7A68685A3170706347332F5266396B5347314E59576E2F51576E2F626C464B5432482F636A457A2F324635527A662F4D6E5531546638794D45722F6333464A556E482F4D584C2F616D684755324E592F33662F526C64574E6D5A4661762F2F536C52325A6B785052457A2F2F323577574768725648582F552F39425746493265572F2F6430502F57464534656A4C2F597A64732F3268325530622F543056565666394F5257662F52336C4A6130372F52452F2F55554A68556D394C2F307A2F636C523351336778552F2F2F6330354A625552585930482F2F31563256464E764E31542F65663972624868765A7A482F5446442F646E646F5458722F5A55394B2F335A555245722F55557876537638774F47762F64544E4F5232542F5A54662F6457316A646D64492F7A6E2F6346704E4E6E466A65762F2F64444E45516C644B4D58482F2F3235364F464A72576D6E2F65663834635764736344622F637A502F5532466A556D582F59576C4D2F7A4677526A482F52304E72565039575633542F555442425744582F5454502F4D573130545738342F7A4C2F537A45775446553257502F2F4D545577596D387A4D30482F2F315251595856516455582F577639574E565A445A6D6E2F6145582F593352505655622F524770532F30687A5758542F595468356166396F5455542F5A474A5255466E2F576B6E2F57564678644556512F322F2F54545A5951574A4A4D762F2F626A6B335A6D5A4761557A2F2F304E7264584661597A582F4D663978547A68434E45622F65446E2F4E56465456552F2F613074332F7A4A73646E6A2F516A64615A2F396957446E2F614656736433662F61552F2F5A486C465A3364452F7A482F615452596232467954502F2F52484A5756566C495448582F2F3252744D476C715557582F5366396F617A55304E6B372F5358722F635468445757662F6558684B2F335A48516A6A2F52486C6B4F503877526D582F59334E525655582F616A662F4F585A58526D68342F7A502F5555706F596E56574150372F414141414141414141414433674141414141416C7471304143413D3D222C226D61782D6B6579223A2264494141414141414141442F626C3970674141414141442F4141415441575A6D5A6D622F4D545134592F38744D7A6E2F4D444D744E44502F5957582F4C5745794F4449742F7A482F5A544A6B5A544E6D4E662F2F4E3255344D4752754E56502F2F334675614539536444482F516639545347746C596A6A2F4D58482F5A6E4A7556466A2F534649312F314E356232722F4D6D63794D6639585158582F61574E4D5247332F6546722F5A6A465A654564432F32502F55456C6F647A637A54502F2F576C705062584A595345722F2F306851643356465230332F632F395862484E484F464C2F5357482F515446755355582F4F545A4F2F7A5658627A6A2F6248684A542F394A5A302F2F4D6B315762557A2F4F55622F546C4A6E4F566C432F316E2F516A466A4E546C3551662F2F556B553359556C5952464C2F2F33647556546C5851576A2F512F3932646C4A7951336A2F5A6A4C2F546C4233626A502F576C63792F336378616B662F4E326C6E64663971516C502F546A4A72516B4C2F526A582F5247524B4F586F7A2F7A482F65474A4C4D6A5A6C4D662F2F55446478596C59324F556E2F2F3078336444597A4E6A482F576639355A553577536D6A2F5456722F5130686B62456E2F516D46482F30525264322F2F526C5273532F38306244542F4E4667785756582F6147582F646C5A454D4656792F32502F615574516430395363502F2F556B744565454632646D7A2F2F7A5931566C4E4552326A2F635039525A445247616B332F626D662F596C5658626C502F556C4E472F334E4A5A31722F646E56334F5039585655762F4F5441795447372F55572F2F5233687861316F312F30622F634746744E30313152762F2F65476730645864454D552F2F2F32685A62577478626D722F617638795557397362476E2F526A502F61544E585446582F4E6D4E582F33684B516D6A2F4F564E305550383162557A2F555735545633582F4D6D6E2F536E644652454A722F31542F5447395259555A3152662F2F636D55355644563057477A2F2F316C6C636E526C54326E2F6266394A5A6C52754F47582F53576E2F614539365654442F4D31684F2F3278615254442F545646475A76396F566B332F646B52595745762F546E502F567A64514D6B78482F30542F533352505247703555662F2F54585A594E327869576E722F2F3155315A5668754E6C622F5350387862556C475447502F616A662F635670724E32372F4D7A59352F3078695330542F53566C4C542F3959526D372F4D6D6C6E597A582F636A542F4D577445636C5A4B2F32372F566B777A5A446B7859662F2F54577857636B744A57576A2F2F323135516A644A4E33502F62763958596B3559547A482F6254622F654531795255762F4E3052442F31683463306E2F4E564E756550393165444C2F4F444A30636D7A2F556B722F5932314E4E3346522F30372F624645304E586B334E662F2F57464A535A315A61546C722F2F7A56425331644A5432722F616639564D486B344E44502F64466A2F63324E46516D7A2F536E42562F3235785656502F575842424E503978546C442F643052565254582F626D622F646D74754F5564582F30582F63555A785A305259642F2F2F64484A5454474A47526D6E2F2F335A4E4D55397462444C2F632F39735657647054307A2F4D7A6E2F4F584A4B626A442F5A3274482F30706D55307A2F536B35335776383459306E2F516D784C646A502F4F47582F623078525A586C512F32582F566D31684D6B74315A502F2F63546C36527A526F556D542F2F335A6A544552306544542F4E66396D6155314353456A2F6244662F516C526F6147662F613064342F31553554466E2F6131637A5A76393253326A2F52556C545248722F4D6D762F556C553465474A6D2F327A2F56444A795930566E57762F2F4E46704A4E6C52306130622F2F315A46636B78736230722F5266396C595642774D456E2F536C722F5A55394B5130542F64546C492F33564D51584C2F5A46644A4E7638796356482F6455704D5A6B502F6348542F62446C34556A42352F30502F57576C4B535751354E662F2F516B3034634559335533542F2F7A6C54626E593059314C2F6350396F556E566A5A586A2F556E722F523142685258542F616B4D342F7A4E6E646A6A2F4E487074656639695454582F55314E544F55622F4F48482F4E6B4A77533152722F316E2F54454A79546D526F4E2F2F2F54464A47634756705357372F2F3370596545567A4D44442F642F39724E3231494E546A2F5446622F566C59334F577A2F614446352F3168765432482F64564671617639706447482F4F574A705547762F5A7A6A2F5545497A576C466A2F324C2F59336C735345787863762F2F5445684B6547394B4D6A482F2F30457764566777576B542F6476394C4E7A4E465655662F5533502F65476F7A646C542F62304E302F3274754F56502F4E57307A532F39724D55332F536D52754E56502F6357372F61453953644446422F31502F5347746C596A677863662F2F5A6E4A7556466849556A582F2F314E3562326F795A7A4C2F4D6639585158567059307A2F5247332F6546706D4D566E2F654564432F324E5153576A2F647A637A54503961576B2F2F62584A595345722F5346442F643356465230317A2F31662F62484E484F464A4A59662F2F51544675535555354E6B372F2F7A5658627A687365456E2F542F394A5A3038795456622F62557A2F4F555A4F556D662F4F566C432F316C434D57502F4E546C35516639535254662F59556C5952464C2F6432372F56546C58515768442F33622F646C4A795133686D4D762F2F546C4233626A4E61567A4C2F2F336378616B63336157662F64663971516C4E4F4D6D762F516B4C2F526A56455A45722F4F586F7A2F7A4634596B762F4D6A5A6C4D6639514E33482F596C59324F556E2F5448662F6444597A4E6A465A2F336E2F5A553577536D684E57762F2F5130686B62456C435955662F2F3052526432394756477A2F532F3830624451305744482F5756582F61475632566B542F4D4656792F324E705331442F64303953635039535330542F65454632646D7A2F4E6A582F566C4E45523268772F31482F5A445247616B31755A2F2F2F596C5658626C4E535530622F2F334E4A5A3170326458662F4F503958565573354D444C2F5447372F555739486548482F61316F312F305A775957332F4E303131527639346144542F645864454D552F2F61466E2F62577478626D70712F7A4C2F5557397362476C474D2F2F2F61544E58544655325931662F2F33684B516D67355533542F5550383162557852626C502F5633582F4D6D6C4B6430582F52454A722F31524D6231482F59555A31526639795A546E2F5644563057477A2F5757582F636E526C54326C742F306E2F5A6C52754F47564A61662F2F614539365654417A5745372F2F3278615254424E5555622F5A76396F566B313252466A2F5745762F546E4E584E31442F4D6B78482F30524C64452F2F524770355566394E646C6A2F4E327869576E722F5654582F5A5668754E6C5A492F7A482F62556C4754474E714E2F2F2F635670724E32347A4E6A6E2F2F3078695330524A5755762F542F3959526D34796157662F597A582F636A51786130542F636C5A4B2F3235575444502F5A446B785966394E4141442F4141414141414434414144396741414141414171564B414143413D3D222C2266696C656E616D6573223A5B5B223133322F3330303030332F32363633653737312D376265342D346430622D386237622D3563633939623334383162662F30222C223133322F3330303030332F32363633653737312D376265342D346430622D386237622D3563633939623334383162665F737461742F30225D5D2C226D61782D6F7665726C617070696E672D6E756D223A317D2C7B226D696E2D6B6579223A2264494141414141414141442F626C3970674141414141442F41414154415441774D44442F4E444131597638745954482F4F574D744E44442F4D6A542F4C5745334E474D742F32502F4E5745344E6A646B4E662F2F4D6D49325A456C6B4E30482F2F7A4A4C4D55356C5754622F54763833614556425757542F64584C2F575664344F44662F55544D322F7A56536545622F6247566B622F397352476A2F5A7A52476257482F526A542F5245467A647A4E452F7A482F5544524B646D39424D662F2F61334E5561446B354E6D502F2F336C43525852764F55372F565038354E5552425258442F4D31502F59314A72616E6A2F527A646C2F7A68434F55622F5655383551663977566B482F536D35524E7A662F656A4C2F59315A6B5A6B4E452F7A542F5A555277566E4E47612F2F2F5757317751574E33556D722F2F3256715A4545345557332F5A76396F62444A695A30482F546D622F5A4756476356502F623070432F334657576D4C2F516C64616450396F4D47722F546B4A6C526D7A2F626A582F4E315272596B68552F32722F6457314455586C5956662F2F5A6B3948517A5A53566D762F2F316444574774734D336E2F646639685A4539566148722F6230542F59584A325556622F4E6C52492F314A694D6E622F627A4279562F393051556A2F4E3064555A33442F636C442F655768595655396C2F322F2F6147466F656C565864662F2F566D316A4D3278684E6C582F2F3046314E544E735430332F5176396C636B673561586A2F64334C2F596E4D325631542F647A426B2F7A52325A452F2F57475657542F396951552F2F54484E435346442F6232502F536C4261545556452F31542F526E424E576D307751662F2F624778304F48704B5544482F2F7A6C6F5A45527862557A2F6250383155326B326557622F4D6D6A2F63445A726146482F5A3370522F3056785746582F615564314D5039356430482F4D46527857486A2F576A6E2F4E316F32645764302F7A582F54466C50576C524C59662F2F4E5531775957396F61456E2F2F303435516D3133616E722F536639684D464E445656662F5257662F627A45345155762F656C42752F316852656A582F4E3059345A2F395162454C2F516B6C325A30372F62456A2F4F58524B4E564A482F32762F616A5A71635574485A762F2F536B7035526C5A505A44622F2F323533533074735455332F5350397755334A4C4F46502F4D6D762F4E6B30314D6D2F2F4F5746762F33427552304C2F6156424F592F38784E326E2F52324E54566E482F4E572F2F64315649613230782F7A442F6231647156456C4D63662F2F4E6B4E4D535868476332482F2F315A4A63544A455433542F557639364D453947546B582F4F55482F55574A31616C6E2F534735302F7A42494F454C2F63586442536639735444442F6357527A5431622F4F55332F4D324E68636C42782F32582F4D4568346547646161662F2F6432565A4E6A6C51567A542F2F304530597A52595932762F57663957636D39556157372F5A32582F6145526B6545582F617A6C692F30316D6454442F61545A754D763936636C502F546B52564E44542F4F46482F65545934596A56532F31662F6454524755566831592F2F2F5456565063304A715A31502F2F7A5273656D4E6A537A502F5776396B536C646D566E502F64576E2F615642544E574C2F4E6D78702F3049305A324C2F54466F32516639774D58582F643074705531722F6447722F596B56324F476C732F7A622F4F564D335546466163502F2F576E4E57596B6C555230622F2F3274324D5855346431502F522F3970646D31616332662F59576E2F624870716355482F4D5456312F7A4E6B5931582F52316F356150395661466A2F516C4A616345622F5758442F5548564D4E5455772F30622F525867354E58526C532F2F2F5332564F4F4870795931502F2F7A42724F575A4F616A502F4E2F3933516D55316445622F6156722F56456C565254482F62484E5A2F334648516C622F5A6E4E345A2F394F6545722F5A6D74574F55372F566C442F625738345A4546722F30482F6147745765445535622F2F2F4E554A4863574E535430722F2F7A46314E566C52596C542F55763833646B30325756622F4E457A2F62577872576C6A2F4D3168482F3073316456722F4E473547636639596245662F543074686457372F5532502F626D46335A585A4F2F33622F4E6B7832536B4D324E762F2F4D4770775632786A656D622F2F31703252485A525A33582F616639475A335632526C442F646B482F5A3355335630332F596C4E772F3070595546542F655852794E5039505447482F52334A316358442F51584C2F4F575647543068332F306A2F5757704B596B67355A662F2F55464646535652764F57582F2F3268484F4864346545332F4F6639355A314A69566E722F5377442B4141414141414436674141414141417A4C554D4143413D3D222C226D61782D6B6579223A2264494141414141414141442F626C3970674141414141442F4141415441575A6D5A6D622F5A6D466A4D76387459574C2F596A55744E44442F5A446A2F4C546B315A6D4D742F7A582F5954646C4E575A6A4E662F2F5A6A49314D46424752546A2F2F334E584E45394C64566E2F552F394F546C4245626C442F5A6A6E2F4E5652535430622F5A3068592F7A453162456E2F655546574F50394E646B7A2F4E6A4A6A5448722F5955582F625642524D3149782F30332F575751785655394D4F502F2F5A6D6C6A615456706230372F2F7A687953574E31567A542F6250397753304E43546B6E2F4D44582F595468485532582F516C68502F314E3463456E2F626D467A61503975537A542F57585A445932762F546C442F654668695A5568702F32502F63445A6A5932357957762F2F576C4E6A527A42795155582F2F326F34625752695457372F53663831517A4A596432482F6432372F4F464E546430542F52304A362F30526C6356442F566B646C53763948566D722F6245746D636A6E2F62466E2F656B467A656B6B782F306A2F63314669516B526B63502F2F4E32784E6347783264544C2F2F31564452585A726248502F555039365A453835536E442F4F48582F636D684B656E6E2F656D6B312F32744756316E2F65484A55567638785445762F56484D324D6C482F597A542F65546853625756342F33502F533246596433645465502F2F4D32383264465669516C4C2F2F31465953455A6B6156662F547639785558684B636E502F5954542F5748566B5657332F53336C342F334A365645582F63303978527638324E476E2F4F4441785258482F537A662F617A684B616D46332F32582F526A6C424D6D7847622F2F2F567A42745245637A6257582F2F30705A4E474E5A647A542F647639485A6D6C51626D722F4E6E6A2F534456704E554C2F633152582F7A6C524E336E2F555449774E663951516B662F563052335957482F62552F2F4E47684853324E452F31442F554646725457356B52762F2F4E54526A57574A4755334C2F2F32747A61464A4763564C2F622F396C6345646F55464C2F5A46442F5A484A535130332F5A32387A2F334E55556A482F54564A69532F39716248482F557A4E4C61476E2F5748722F596B4535595646342F31502F636D31436158644E4D662F2F55465A5355474647536D332F2F334E55536A49305357502F6450394853554A365246442F6133482F56455A744F466A2F593078552F304E6E516D582F53564533557639445531442F55454A365456582F4D334C2F596C6C44556D39682F33542F54466459596E5A58552F2F2F4D6A6C4B53445653557A6E2F2F314E4D56445A535356502F542F3970557A644864552F2F5357372F52577052566C582F564451792F7A6C465331622F4D574E6854663877636D542F52464E42646C542F53304C2F4D5864355A6E4E792F30502F545642725633493153762F2F56566854564770506558502F2F30394C4D5578325457722F5676394455464E30546C582F51334C2F4E5552465230542F553039612F304E4D6354582F59337077656639535331582F4D6E6C7153572F2F63316A2F596E564E4E5549322F316E2F6357465552465A5357762F2F5A31646F4D5846735533662F2F7A68735646464D5A6D7A2F5250395463465577576A442F52572F2F546B78315133442F576E6B322F3164475630722F55454A766266394864314C2F536D68515547502F547A4C2F5932354C544664422F314C2F656B56575A574A6F4F502F2F5A553149546D74365230582F2F306857543268505357622F612F3951537A41784D6E442F6548622F59336B30646D372F64584D352F307430576B482F636B3169566639355248542F54465A4B6446482F5A30542F5254564752554A452F33502F593031685A45783557662F2F4F4856474E584276616A582F2F7A566A4E4842435554542F53663877656B6B35526B2F2F55326A2F4D484A335A556E2F4E44565A2F7A63795348482F516E4253612F3877556D542F5155684F64444C2F5A466E2F54474A4C515668542F7A542F53334A6A517A6C455A502F2F5A334672655731524F48502F2F304E58626B6876576B662F6150394F55575A30526B2F2F536D2F2F5248707A65456E2F54306C742F30744A5233582F553168335966394E53314C2F6348706F6345582F656A6E2F5A576C35517A4A4E2F33542F4E573946546E5A6D51662F2F62557873553070435355622F2F7A6C4964324A56556B762F6250396E554756356246482F5A7A582F515564335630502F59564A492F304A464D57722F4E45316D5750394F556E6E2F557A5A795655542F6130542F5A556F77567A597A2F33482F6554426B51546C3057762F2F4D6C59784D48424B5558622F2F30786F56314A515255502F5650395961444A5861457A2F516D582F596D68456156502F4D566C702F3341786447482F52565A6F5A2F397653452F2F5356424752546A2F6331662F4E45394C64566C542F30372F546C4245626C426D4F662F2F4E56525354305A6E53466A2F2F7A453162456C355156622F4F50394E646B77324D6D502F5448722F595556745546482F4D3149782F30315A5A44482F5655394D4F50396D6157502F615456706230372F4F484C2F53574E31567A52732F33442F53304E43546B6B774E662F2F595468485532564357452F2F2F314E3463456C755958502F61503975537A525A646B502F5932762F546C423457474C2F5A5568702F324E774E6D502F59323579577639615532502F527A42795155582F616A6A2F625752695457354A2F7A582F517A4A596432463362762F2F4F464E5464305248516E722F2F30526C635642575232582F53763948566D70735332622F636A6E2F62466C365158502F656B6B782F30687A55574C2F516B526B635038336245332F6347783264544C2F5655502F52585A7262484E512F33722F5A453835536E413464662F2F636D684B656E6C366154582F2F32744756316C34636C542F5676387854457455637A622F4D6C482F597A52354F464C2F625756342F334E4C59566A2F643364546550387A627A622F64465669516C4C2F55566A2F53455A6B6156644F2F33482F5558684B636E4E684E502F2F5748566B5657314C65586A2F2F334A365645567A5433482F527638324E476B344D44482F5258482F537A64724F45722F616D46332F3256474F55482F4D6D7847622F39584D47332F5245637A6257582F536C6E2F4E474E5A647A52322F30662F5A6D6C51626D6F3265502F2F534456704E554A7A5646662F2F7A6C524E336C524D6A442F4E663951516B64585248662F5957482F625538306145662F53324E452F3142515557762F5457356B527638314E47502F57574A4755334C2F6133502F61464A4763564A762F32582F6345646F55464A6B55502F2F5A484A535130316E627A502F2F334E55556A464E556D4C2F532F3971624846544D30762F61476E2F5748706951546E2F595646342F314E7962554C2F6158644E4D663951566C4C2F55474647536D332F6331542F536A493053574E302F30662F53554A365241414141507A2F41414141414141414141443367414141414141797358454143413D3D222C2266696C656E616D6573223A5B5B223133322F3330303030332F66393838346166332D656230342D343262342D623637332D3062643431353762646637652F30222C223133322F3330303030332F66393838346166332D656230342D343262342D623637332D3062643431353762646637655F737461742F30225D5D2C226D61782D6F7665726C617070696E672D6E756D223A317D2C7B226D696E2D6B6579223A2264494141414141414141442F626C3970674141414141442F41414154415441774D44442F4D3259354E7638744D44662F4E7A41744E44442F4E7A582F4C546C695A6A49742F7A442F5A57453159574A6B4E502F2F4E4749784D474E4F4E55662F2F30395A593363336248502F52763957566A64696433722F646D4C2F4D335A6155324C2F61565A4B2F315246536A622F5531646152503979636B332F5233644D516D6A2F616C6E2F646D4E6D4D3252612F30502F626D684A5358687851662F2F5757746F64586830576C442F2F324E305A3230314D574C2F4D76396952445A73636B7A2F5457332F53325670547A502F513264342F3352345A6D722F593149345A503961636A502F536B35355757502F556A662F4E6E4E6151306C492F33502F595577315130396A61662F2F5232565A63474D7A5A7A482F2F324A46616D6C784D46582F536639365A6A46445933502F5548442F62444E68646D2F2F62474E4B2F3278365347332F55456430632F397056566E2F525731505556662F636A622F535656724E4468502F7A622F5A6D56444D7A427264762F2F63486C346445745752454C2F2F7A4D7961454A4F5744482F576638775558565055306E2F6247722F645856595544542F53465A6E2F7A5A4A5A466E2F54585A795666397354336E2F576B316D536A442F566B4C2F536B56504F5731582F7A662F5745357465544A4255662F2F4F585A4A62554E5464336A2F2F314E6F51574E776430662F622F3948626D5A4C5256622F4D30722F626C6861626E582F557A5A7A2F325A565247332F54324A42647639474F57762F5A6D77306131662F4E46502F54335135656D46742F7A622F5155646B566B5A5459762F2F527A42314D316B336255372F2F7A6733616B4A43636B542F6176395661564D795357372F56572F2F4F465A694F48622F556D56462F30394D4E30662F596C55325266395856304C2F63323135616C482F656E482F5A58644862315A6C2F304C2F546B6471557A633157502F2F624456344F4667345630722F2F3056505A6B70305A54622F616639596556683053316E2F656E622F63474E785756442F616C6F302F305579556E6E2F56565258622F39685255502F616D6C545558722F4D6E4C2F65455A5754484A302F32332F55556848576D464651662F2F55304E7755304E5353576E2F2F3356486430565363572F2F6566393655484E766430662F4E6C722F5955354D61457A2F59544D792F7A566A5232582F576C467A6250394F5A46502F5A54553555327A2F6156442F54544A32555564362F324C2F4E484E7A5358705255662F2F4E47394256486C4C4D557A2F2F3370345A6D70344E32542F4F663976566A5133546C622F6544502F6144526B54572F2F565464492F334A304F54582F634445345976397064326A2F646C49355446662F4F484C2F645756475A325A562F7A442F647A56435231683152662F2F62576C555333706B646B582F2F314E49553356596144662F6250396F624559315754662F52456E2F4D326C6B6257372F64474E532F3277345344582F555530786376394E616C442F6158527661446E2F616C662F647A5246565455352F30482F4E487073576B6C4951762F2F5A5568314E464E774D557A2F2F316459596B45315A47372F6266383061475A69516B4C2F61576A2F4E48646E6555582F6148426A2F3146446356502F613352345776397656302F2F6432463662446A2F53456E2F6230704A634564792F31482F53575245646B395153502F2F65475A5A5757686C64302F2F2F326C7761325A474E6B502F5A763948567A4E505931582F616B4C2F5230564E4F57482F4D6C67302F324E575256622F63574E4861663973537A502F516D64776354442F6154662F625846596555526C2F32372F646C6C47546D645252662F2F6248673561307074536E722F2F31553453475A496146542F522F395753306431566A582F61546A2F4D5751345A326A2F615442532F7A5A73546C442F5931706C656638325430542F656E52774D546A2F5A6D722F526D4E50576D6B782F31542F5245317451336475552F2F2F6257314F525667334F56442F2F334E35566C42795756622F542F39504E485A7A56477A2F4E7A442F625734305433622F615456482F325A345746442F57564D305A6639355255762F55576B305A33542F526C442F556C5A5A55325A772F30372F646C64495158686E532F2F2F596E644A536D565155457A2F2F30703261476C785332332F532F396B4D4545784E44502F5954582F565734344E31482F566B4D302F3235366155542F616E5A59622F3977627A582F63573954556B6A2F536E542F526A644852476B302F7A542F546D4E4A54304E4551662F2F56564258546D78514D57332F2F30786A515539445A47332F5550383159574A765455542F5354662F6248705A51577A2F53574A332F3278455A6D482F566A6C736550395964316A2F52474E4F4E55662F54316E2F5933633362484E472F31622F566A64696433703259762F2F4D335A6155324A70566B722F2F315246536A5A545631722F52503979636B314864307A2F516D6A2F616C6C325932622F4D3252612F304E7561456E2F535868785166395A61326A2F64586830576C442F5933542F5A3230314D5749792F324C2F52445A73636B784E62662F2F53325670547A4E445A336A2F2F3352345A6D706A556A6A2F5A503961636A4E4B546E6E2F5757502F556A63326331722F51306C492F334E685444582F5130396A616639485A566E2F63474D7A5A7A482F596B582F616D6C784D46564A2F33722F5A6A464459334E5163502F2F62444E68646D39735930722F2F327836534731515233542F632F397056566C4662552F2F5556662F636A5A4A5657762F4E4468502F7A5A6D5A55502F4D7A42726476397765586A2F6445745752454C2F4D7A4C2F61454A4F5744465A2F7A442F5558565055306C7361762F2F6458565955445249566D662F2F7A5A4A5A466C4E646E4C2F5666397354336C615457622F536A442F566B4A4B52552F2F4F5731582F7A6459546D332F65544A4255663835646B6E2F62554E5464336A2F55326A2F51574E77643064762F30662F626D5A4C5256597A53762F2F626C6861626E56544E6E502F2F325A5652473150596B482F647639474F57746D6244542F6131662F4E464E5064446E2F656D46742F7A5A425232542F566B5A54597639484D48582F4D316B336255372F4F44662F616B4A43636B52712F31582F61564D7953573556622F2F2F4F465A694F485A535A55582F2F30394D4E3064695654622F5266395856304A7A62586E2F616C482F656E466C6430662F62315A6C2F304A4F5232722F557A6331575039734E586A2F4F4667345630722F52552F2F5A6B70305A545A702F316A2F6556683053316C3664762F2F63474E7857564271576A542F2F305579556E6C565646662F622F396852554E716156502F5558722F4D6E4A34526C622F54484A302F3231525345662F576D4646516639545133442F55304E5353576E2F6455662F64305653635739352F33722F55484E766430633257762F2F5955354D614578684D7A4C2F2F7A566A523256615558502F6250394F5A464E6C4E546E2F55327A2F6156424E4D6E622F555564362F3249306333502F53587052556638306230482F56486C4C4D557A2F656E6A2F5A6D70344E3251352F322F2F566A5133546C5A344D2F2F2F6144526B545739564E306A2F2F334A304F5456774D546A2F5976397064326832556A6E2F5446662F4F484A315A55622F5A325A562F7A42334E554C2F52316831526639746156542F5333706B646B582F55306A2F55335659614464732F326A2F624559315754644553662F2F4D326C6B6257353059314C2F2F327734534456525454482F6376394E616C427064472F2F61446E2F616C64334E45582F565455352F304530656D7A2F576B6C495176396C5348582F4E464E774D557A2F56316A2F596B45315A4735742F7A542F61475A69516B4A7061502F2F4E48646E6555566F6347502F2F31464463564E7264486A2F57763976563039335958722F62446A2F53456C76536B6E2F634564792F31464A5A45542F646B3951535039345A6C6E2F5757686C64302F2F6158442F61325A474E6B4E6D2F30662F567A4E505931567151762F2F5230564E4F5745795744542F2F324E5752565A785930662F61663973537A4E435A33442F6354442F6154647463566A2F6555526C2F3235325755622F546D64525266397365446E2F61307074536E722F56546A2F53475A49614652482F31622F53306431566A56704F502F2F4D5751345A3268704D464C2F2F7A5A73546C426A576D582F65663832543052366448442F4D546A2F5A6D704759302F2F576D6B782F3152455457332F51336475552F39746255372F525667334F56442F63336E2F566C427957565A502F302F2F4E485A7A564777334D502F2F6257343054335A704E55662F2F325A345746425A557A542F41503441414141414141443567414141414141776550554143413D3D222C226D61782D6B6579223A2264494141414141414141442F626C3970674141414141442F4141415441575A6D5A6D622F5A6A4D355A7638744D6D4C2F596A67744E44662F4E7A542F4C574A6B4E5445742F7A502F4D4751794E4459344D662F2F4D4463315A6A684D4F47372F2F316C56636A6C585345372F5566395662314A79636D762F5344542F5A5859784E44442F616B31752F304658626D4C2F53555A50626639505358502F54465A47516A4C2F536E662F4E3145794D4531722F327A2F53484249556C644F59762F2F5547784851566C4A636C662F2F3364564D6D46465A58662F65663961525668365332482F52334C2F574778696233662F647A4E6E2F304A494F47722F5258707955503948596B7A2F626E41355232332F537A6E2F5532567761564A6A2F30622F4F446C366145646D63502F2F627A4672566B3834526C722F2F334D315645395052577A2F517639554D4749305547372F6133442F54584E546155482F53485A562F33686955336A2F64334D324F5039756347372F52544E6C6557542F596B542F65584A4F645735712F32482F555446546245527053762F2F613045776247356D526E582F2F3034775256464464307A2F4D663968635768774D54442F6357482F556A51786132332F636C42532F3278445454622F4D3246444D2F38324D466E2F646D59326230372F6256482F5157316B6456646D2F326A2F56564E505444525461662F2F6454686D556B4E4455316E2F2F7A466C4D6D7859656D762F6466396A5A454D325A6E6A2F646C542F6558466A53304C2F545868582F3031684D7A482F4E334E44647638336548582F556E644F54322F2F566D7A2F4E31525663315A7A2F307A2F535564565A546C485A762F2F6248684B575670305132482F2F306876623034355233442F617639345A575634536A6E2F5354662F544446366131502F4D6A6C592F3349775256542F576D4577577639694D56542F546D45785354622F616C502F5446463265454E332F30722F55575A4A596B527455762F2F616E5A51625846736446482F2F32703661465A776358502F4E2F38354E3352785545502F54554C2F646E4E3262584C2F5A466C362F3164495132372F576D6C765250394B55446E2F4E566C305255502F556C582F566B6C4F524646712F33622F646C4634523064334E502F2F596E64474D44633253556A2F2F7A5642596D4E475256482F4E66393353575677626B332F63556A2F54546C4F6332372F645538302F33424D646D6A2F644851774D6639356457662F654655324D7A622F52456E2F616A6C78566D63322F326A2F4D486C695532525753662F2F4E6C5231566C566E5357762F2F7A68355A326C526330332F6276397052484275546A6A2F5431622F5530464A5758502F4D586B332F325A335746502F4E7A5932645039755247332F643068305645762F5656502F5A456C6C63456C692F336E2F5357317A646C4D33622F2F2F656B453461464D31546A482F2F3074714D32563455444C2F522F3958626D52595245502F4F55542F4E5852315A546A2F646B5A532F3168725747372F523142346350396852446A2F564442775532582F54456A2F63545A446232566A2F31542F597A52544E33567755762F2F596C67795A57524A61566E2F2F305935616B46596255622F4E5039506345745161304C2F5647542F615664494E7A482F516C424A2F334A515356482F4E30566E5366396D6556482F4F564A76596A6A2F5244502F5231644D626D464E2F336E2F646B4931656D4A5954762F2F56414141414141414141442F2B4141414141414141414434674141414141416C502F344143413D3D222C2266696C656E616D6573223A5B5B223133322F3330303030332F62343562373931352D383237382D346664392D623234382D6632333237306563636431642F30222C223133322F3330303030332F62343562373931352D383237382D346664392D623234382D6632333237306563636431645F737461742F30225D5D2C226D61782D6F7665726C617070696E672D6E756D223A317D2C7B226D696E2D6B6579223A2264494141414141414141442F626C3970674141414141442F41414154415441774D44442F4D6A6B775A7638744E324C2F4F4745744E444C2F5957482F4C574A6B5A6A51742F32582F5A4451794D5456695A502F2F5A4467315A6E645259334C2F2F33466E546B4A565430372F575038346557686A53474C2F51577A2F565770574F44502F4F454E512F3368365154482F4F56686A4D503879546B332F554764685131542F6146482F4D317056536C4E612F30372F54454A75516A6C79592F2F2F5632526A52336733527A502F2F314E30563363345532622F5166395A543239486246442F5445762F596E46795330662F526B78302F7A42756158622F5247464D59663977566D6E2F566B7036566E622F566D482F56565A33566E526A2F33442F63474A76554659335A502F2F616A683553456C786146442F2F324531646A593554456A2F6466394A63545279576E502F546D582F55556C576458722F4E6B4E702F327778546C6A2F65545279542F3969626C622F5344684E516B662F616C722F4D544648596B6F782F31542F52324A4A4F45395959762F2F4E477059576C6332536D372F2F304A6C6344563263456A2F555039364E574D784D30582F55576E2F4F564E72646D372F4F55467A2F3039334F58502F637A5669577639486146722F5255686D5333722F626B762F4E3231525957704F2F32662F534770495A57393161762F2F546B74586256553461584C2F2F7A4E314D46644D5755582F5250395162545A425A33442F6331622F6544685755556A2F5A6C64732F30466B516C722F516B6874625039705432332F56306C725931662F6348542F536A4131536D68572F306E2F636B644265474644592F2F2F524539504E335A445656722F2F7A4A554F5846746154622F542F387764335A325432542F5A6E4C2F4D566C44526C6E2F524456472F33526E53336E2F55304A365566396C5A55482F4D6B70756331662F4F58622F5133593262544E502F30502F545670474F5568475A502F2F635546585248645052476E2F2F326331556B5A496430502F5266393152556330576B4C2F5A54442F624642524E55482F62574A462F3270436247542F53554670527639515744442F643074725A576A2F6155662F4D584E4355544A482F7A542F4E6B6C525A55565665502F2F5355525655485A6C4D6B622F2F3346785A7A4A6C4D32582F61663969565464684E6C622F556C582F52555A744D47542F4F47387A2F303558576A6A2F59544535596639596431482F646A6C425345722F4D55582F59315135596D6C4F2F326A2F55444269526E427861662F2F536E52466332513463576E2F2F7A5A6D556C6C496157662F537639425A566C764D44482F4F44482F63555A616230542F596D394A2F7A5A33526C662F545852585566396F54566E2F4E54463351556E2F55576A2F5531687A4E5852422F316E2F6545466F626D707565662F2F5357396A4D58465362546A2F2F31647055327451616A482F54503877634552745630622F636D4C2F4D6B706B656E582F546D35522F32784F57484C2F54486C55567639585547762F61475630616B582F516D4C2F52324E61596E64562F7A662F4F4735434F56524463502F2F5630683254564A70626A502F2F323161616B5676536D6E2F6466387A645768355655332F646D482F4D6E46305930332F4F46646E2F334A575655582F515842474E663979526B722F57566C7864546A2F59566E2F555663775A46564C2F7A542F52334A484F575A695A762F2F55314644525646574D484C2F2F327874593170514F546E2F65503959613270526457332F5258502F4E46466C4E6C662F6247644E2F33426862552F2F543231324D7639594F457A2F645574304D54662F63314C2F54446778655764612F33542F4D3342514D5570304D2F2F2F53553973576C59774D45722F2F304643614464325554502F5966394953585A565533622F4F556E2F65576C3459586A2F62306C702F7A4E6E5254502F64457074532F396E5A557A2F56475257656D7A2F546D6A2F646B64716131706B2F334C2F55455A4D5255467757662F2F5131706154475256597A6E2F2F3341335131424D4E32662F5776394A55566F79576D482F6346502F54305A364E31662F536C4A4F2F325A5659576A2F646B5932645039554D6E442F64315934576B482F5133442F566B4E6D525656512F324C2F4D5845775455466D64662F2F636B34345533524B546D542F2F334A315A6A5A336254442F6576396E63456C365A546E2F517A622F64444A715A32332F4D4864332F306852656D4C2F4F486C33656638304F57662F5A45785357466A2F5932372F55584A77626D68492F32542F4E4652796132557A622F2F2F62335A5963326B774D54622F2F336846536A6B304D454C2F625039615A6B7448656C4C2F6445542F51307836616E442F593274362F7A59786547622F62545657647639345632622F6433645259334C2F6357662F546B4A56543035592F7A6A2F6557686A53474A4262502F2F565770574F444D345131442F2F336836515445355747502F4D503879546B31515A32482F5131542F6146457A576C582F536C4E612F30354D516D372F516A6C79592F39585A47502F52336733527A502F5533542F5633633455325A422F316E2F543239486246424D532F2F2F596E4679533064475448542F2F7A427561585A4559557A2F59663977566D6C57536E722F566E622F566D4656566E662F566E526A2F334277596D2F2F554659335A5039714F486E2F53456C786146442F5954582F646A5935544568312F306E2F63545279576E4E4F5A662F2F55556C5764586F3251326E2F2F327778546C68354E484C2F542F3969626C5A494F45332F516B662F616C6F784D55662F596B6F782F315248596B6E2F4F45395959763830616C6A2F41414141414144364141443967414141414141742B77494143413D3D222C226D61782D6B6579223A2264494141414141414141442F626C3970674141414141442F4141415441575A6D5A6D622F5A6D566A4F663874596A662F595459744E47622F4E574C2F4C574A6D5A4445742F7A6A2F4F5467344D5463794E2F2F2F4D4759354F476C49646A622F2F324633574864465658442F55763930554852744E6E6A2F5457502F527A6872546E6E2F4F465A6C2F326451576A482F4F5564475550387A4E33722F4D32567257474C2F636E6A2F626D49306255316D2F31442F55465A755247314256662F2F4F453932616D51324E6C482F2F3156485630746F6345762F5976387852474A58636D542F4E55482F646B395864576E2F54444A4A2F335A516556502F6555644251663932566B582F6157567761307A2F5958502F6345566851324E742F30542F575570765331597956502F2F546E5A304D3268366255502F2F33424D654774555154662F5676394B5633704F5356662F4E6D6E2F546D6470536C622F5A5670512F306848636D662F61584A615A5038335A6B4C2F524774476457332F656D502F516E4A70566D5A732F33502F566C4E355255467153502F2F656A5578533164346330502F2F7A6C46556D78725A56482F57763944633252324E58442F6545762F4F45354264484C2F54554A472F334E4A52576E2F57585668562F396D526D482F516A42306555582F6155502F65546C49593046342F324C2F64557843636B317A62762F2F57475635576E56755A7A582F2F7A6877516B6C6D4F48662F5176397A646A6C334D6B332F6233502F5A6D744E636C442F563170682F33593452456A2F53326778645039785A464C2F4E455A756347482F5A57762F5A555979593170582F31542F5648686E5631703163502F2F5A584A56636D56365232622F2F7A6434525774575346542F5A503955626D63305454662F5545622F4E5756585458662F5431704C2F31527964457A2F624641775A2F39684141442F4141414141414434414144396741414141414173484C304143413D3D222C2266696C656E616D6573223A5B5B223133322F3330303030332F64353266323434392D353134342D343138312D383630332D6335393562376332393164622F30222C223133322F3330303030332F64353266323434392D353134342D343138312D383630332D6335393562376332393164625F737461742F30225D5D2C226D61782D6F7665726C617070696E672D6E756D223A317D5D7D5D2C22656C655F696473223A5B31395D2C2273746172742D6B6579223A6E756C6C2C22656E642D6B6579223A6E756C6C2C22746F74616C2D6B762D73697A65223A302C22746F74616C2D6B762D636E74223A302C226D756C7469706C652D66696C65732D7374617473223A6E756C6C7D" - raw, error := hex.DecodeString(hexString) - require.NoError(t, error) - meta, error := ddl.DecodeBackfillSubTaskMeta4Test(raw) - require.NoError(t, error) - fmt.Println(meta) -} - func TestBackfillingSchedulerLocalMode(t *testing.T) { store, dom := testkit.CreateMockStoreAndDomain(t) sch, err := ddl.NewBackfillingSchedulerForTest(dom.DDL()) diff --git a/pkg/ddl/backfilling_import_cloud.go b/pkg/ddl/backfilling_import_cloud.go index 8fd053a7ad3e2..baffa33f4d780 100644 --- a/pkg/ddl/backfilling_import_cloud.go +++ b/pkg/ddl/backfilling_import_cloud.go @@ -123,7 +123,6 @@ func (m *cloudImportExecutor) RunSubtask(ctx context.Context, subtask *proto.Sub if jobKeys == nil { jobKeys = sm.RangeSplitKeys } - // TODO[0224]: print all.StartKey, all.EndKey and sm.RangeSplitKeys here err = local.CloseEngine(ctx, &backend.EngineConfig{ External: &backend.ExternalEngineConfig{ StorageURI: m.cloudStoreURI, diff --git a/pkg/ddl/backfilling_read_index.go b/pkg/ddl/backfilling_read_index.go index 58b3bf050f570..cb67f32d0ee3f 100644 --- a/pkg/ddl/backfilling_read_index.go +++ b/pkg/ddl/backfilling_read_index.go @@ -24,7 +24,6 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/failpoint" - brlogutil "github.com/pingcap/tidb/br/pkg/logutil" "github.com/pingcap/tidb/pkg/config" "github.com/pingcap/tidb/pkg/ddl/ingest" "github.com/pingcap/tidb/pkg/ddl/logutil" @@ -301,10 +300,7 @@ func (r *readIndexExecutor) buildExternalStorePipeline( kvMeta = &external.SortedKVMeta{} s.metaGroups[summary.GroupOffset] = kvMeta } - logutil.DDLLogger().Warn("[date0224] onClose before merge", brlogutil.Key("startKey", kvMeta.StartKey), brlogutil.Key("endKey", kvMeta.EndKey), - brlogutil.Key("summary.Min", summary.Min), brlogutil.Key("summary.Max", summary.Max)) kvMeta.MergeSummary(summary) - logutil.DDLLogger().Warn("[date0224] onClose after merge", brlogutil.Key("startKey", kvMeta.StartKey), brlogutil.Key("endKey", kvMeta.EndKey)) s.mu.Unlock() } var idxNames strings.Builder diff --git a/pkg/disttask/framework/storage/subtask_state.go b/pkg/disttask/framework/storage/subtask_state.go index 0149f681a9718..a0acbd0c19272 100644 --- a/pkg/disttask/framework/storage/subtask_state.go +++ b/pkg/disttask/framework/storage/subtask_state.go @@ -17,12 +17,9 @@ package storage import ( "context" - brlogutil "github.com/pingcap/tidb/br/pkg/logutil" "github.com/pingcap/tidb/pkg/disttask/framework/proto" "github.com/pingcap/tidb/pkg/sessionctx" - "github.com/pingcap/tidb/pkg/util/logutil" "github.com/pingcap/tidb/pkg/util/sqlexec" - "go.uber.org/zap" ) // StartSubtask updates the subtask state to running. @@ -50,7 +47,6 @@ func (mgr *TaskManager) StartSubtask(ctx context.Context, subtaskID int64, execI // FinishSubtask updates the subtask meta and mark state to succeed. func (mgr *TaskManager) FinishSubtask(ctx context.Context, execID string, id int64, meta []byte) error { - logutil.BgLogger().Warn("[date0218] FinishSubtask", zap.Int64("id", id), brlogutil.Key("meta", meta)) _, err := mgr.ExecuteSQLWithNewSession(ctx, `update mysql.tidb_background_subtask set meta = %?, state = %?, state_update_time = unix_timestamp(), end_time = CURRENT_TIMESTAMP() where id = %? and exec_id = %?`, diff --git a/pkg/disttask/framework/storage/task_table.go b/pkg/disttask/framework/storage/task_table.go index a51f08f44d6c5..65f76474c6f1e 100644 --- a/pkg/disttask/framework/storage/task_table.go +++ b/pkg/disttask/framework/storage/task_table.go @@ -24,17 +24,14 @@ import ( "github.com/docker/go-units" "github.com/pingcap/errors" "github.com/pingcap/failpoint" - brlogutil "github.com/pingcap/tidb/br/pkg/logutil" "github.com/pingcap/tidb/pkg/disttask/framework/proto" "github.com/pingcap/tidb/pkg/kv" "github.com/pingcap/tidb/pkg/sessionctx" "github.com/pingcap/tidb/pkg/sessionctx/vardef" "github.com/pingcap/tidb/pkg/util" "github.com/pingcap/tidb/pkg/util/chunk" - "github.com/pingcap/tidb/pkg/util/logutil" "github.com/pingcap/tidb/pkg/util/sqlexec" clitutil "github.com/tikv/client-go/v2/util" - "go.uber.org/zap" ) const ( @@ -718,9 +715,7 @@ func (*TaskManager) insertSubtasks(ctx context.Context, se sessionctx.Context, s args = make([]any, 0, len(subtasks)*7) ) sb.WriteString(`insert into mysql.tidb_background_subtask(` + InsertSubtaskColumns + `) values `) - for i, subtask := range subtasks { - logutil.BgLogger().Warn("[date0218] insertSubtasks", zap.Int("i", i), zap.Int64("id", subtask.TaskID), zap.Int64("step", int64(subtask.Step)), - brlogutil.Key("meta", subtask.Meta)) + for _, subtask := range subtasks { markerList = append(markerList, "(%?, %?, %?, %?, %?, %?, %?, %?, CURRENT_TIMESTAMP(), '{}', '{}')") args = append(args, subtask.Step, subtask.TaskID, subtask.ExecID, subtask.Meta, proto.SubtaskStatePending, proto.Type2Int(subtask.Type), subtask.Concurrency, subtask.Ordinal) diff --git a/pkg/lightning/backend/external/split.go b/pkg/lightning/backend/external/split.go index 3fee9e68a5575..adc41f0b7e28c 100644 --- a/pkg/lightning/backend/external/split.go +++ b/pkg/lightning/backend/external/split.go @@ -20,7 +20,6 @@ import ( "context" "slices" - brlogutil "github.com/pingcap/tidb/br/pkg/logutil" "github.com/pingcap/tidb/br/pkg/storage" "github.com/pingcap/tidb/pkg/util/logutil" "go.uber.org/zap" @@ -229,8 +228,6 @@ func (r *RangeSplitter) SplitOneRangesGroup() ( } if r.recordRegionSplitAfterNextProp { r.regionSplitKeys = append(r.regionSplitKeys, slices.Clone(prop.firstKey)) - lastKey := r.regionSplitKeys[len(r.regionSplitKeys)-1] - r.logger.Warn("[date0218] SplitOneRangesGroup", zap.Int("len(key)", len(lastKey)), brlogutil.Key("key", lastKey)) r.recordRegionSplitAfterNextProp = false } diff --git a/pkg/lightning/backend/external/util.go b/pkg/lightning/backend/external/util.go index 9c26aa47fef4a..38d8c3dc1dd5e 100644 --- a/pkg/lightning/backend/external/util.go +++ b/pkg/lightning/backend/external/util.go @@ -25,7 +25,6 @@ import ( "github.com/docker/go-units" "github.com/pingcap/errors" - brlogutil "github.com/pingcap/tidb/br/pkg/logutil" "github.com/pingcap/tidb/br/pkg/storage" "github.com/pingcap/tidb/pkg/kv" "github.com/pingcap/tidb/pkg/lightning/log" @@ -267,7 +266,6 @@ func NewSortedKVMeta(summary *WriterSummary) *SortedKVMeta { if summary == nil || (len(summary.Min) == 0 && len(summary.Max) == 0) { return &SortedKVMeta{} } - logutil.BgLogger().Warn("[date0224] NewSortedKVMeta", brlogutil.Key("summary.Min", []byte(summary.Min)), brlogutil.Key("summary.Max", []byte(summary.Max))) return &SortedKVMeta{ StartKey: summary.Min.Clone(), EndKey: summary.Max.Clone().Next(), diff --git a/pkg/lightning/backend/external/writer.go b/pkg/lightning/backend/external/writer.go index e22aca77caa9b..3261f31508ff1 100644 --- a/pkg/lightning/backend/external/writer.go +++ b/pkg/lightning/backend/external/writer.go @@ -33,7 +33,6 @@ import ( "github.com/pingcap/tidb/pkg/lightning/backend/encode" "github.com/pingcap/tidb/pkg/lightning/backend/kv" "github.com/pingcap/tidb/pkg/lightning/common" - "github.com/pingcap/tidb/pkg/lightning/log" "github.com/pingcap/tidb/pkg/lightning/membuf" "github.com/pingcap/tidb/pkg/metrics" "github.com/pingcap/tidb/pkg/util/logutil" @@ -190,7 +189,7 @@ func (b *WriterBuilder) Build( filenamePrefix := filepath.Join(prefix, writerID) keyAdapter := common.KeyAdapter(common.NoopKeyAdapter{}) if b.keyDupeEncoding { - keyAdapter = common.DupDetectKeyAdapter{Logger: log.Logger{logutil.BgLogger()}} + keyAdapter = common.DupDetectKeyAdapter{} } p := membuf.NewPool( membuf.WithBlockNum(0), @@ -416,7 +415,6 @@ func (w *Writer) Close(ctx context.Context) error { zap.Int("kv-cnt-cap", cap(w.kvLocations)), zap.String("minKey", hex.EncodeToString(w.minKey)), zap.String("maxKey", hex.EncodeToString(w.maxKey))) - // TODO[0224]: note that the minKey and maxKey here can be decoded w.kvLocations = nil w.onClose(&WriterSummary{ diff --git a/pkg/lightning/backend/local/engine_mgr.go b/pkg/lightning/backend/local/engine_mgr.go index 40f09faf6aa7a..24b111fdfa7ab 100644 --- a/pkg/lightning/backend/local/engine_mgr.go +++ b/pkg/lightning/backend/local/engine_mgr.go @@ -89,7 +89,7 @@ func newEngineManager(config BackendConfig, storeHelper StoreHelper, logger log. if err != nil { return nil, common.ErrOpenDuplicateDB.Wrap(err).GenWithStackByArgs() } - keyAdapter = common.DupDetectKeyAdapter{Logger: logger} + keyAdapter = common.DupDetectKeyAdapter{} } alloc := manual.Allocator{} if RunInTest { diff --git a/pkg/lightning/common/key_adapter.go b/pkg/lightning/common/key_adapter.go index 0d30f2a737c97..0cb6c86f7438f 100644 --- a/pkg/lightning/common/key_adapter.go +++ b/pkg/lightning/common/key_adapter.go @@ -16,10 +16,7 @@ package common import ( "github.com/pingcap/errors" - "github.com/pingcap/tidb/br/pkg/logutil" - "github.com/pingcap/tidb/pkg/lightning/log" "github.com/pingcap/tidb/pkg/util/codec" - "go.uber.org/zap" ) // KeyAdapter is used to encode and decode keys so that duplicate key can be @@ -71,12 +68,10 @@ var _ KeyAdapter = NoopKeyAdapter{} // DupDetectKeyAdapter is a key adapter that appends rowID to the key to avoid // overwritten. -type DupDetectKeyAdapter struct { - Logger log.Logger -} +type DupDetectKeyAdapter struct{} // Encode implements KeyAdapter. -func (d DupDetectKeyAdapter) Encode(dst []byte, key []byte, rowID []byte) []byte { +func (DupDetectKeyAdapter) Encode(dst []byte, key []byte, rowID []byte) []byte { dst = codec.EncodeBytes(dst, key) dst = reallocBytes(dst, len(rowID)+2) dst = append(dst, rowID...) @@ -86,21 +81,17 @@ func (d DupDetectKeyAdapter) Encode(dst []byte, key []byte, rowID []byte) []byte } // Decode implements KeyAdapter. -func (d DupDetectKeyAdapter) Decode(dst []byte, data []byte) ([]byte, error) { +func (DupDetectKeyAdapter) Decode(dst []byte, data []byte) ([]byte, error) { if len(data) < 2 { - d.Logger.Warn("[date0218] Decode error 1", logutil.Key("data", data)) return nil, errors.New("insufficient bytes to decode value") } rowIDLen := uint16(data[len(data)-2])<<8 | uint16(data[len(data)-1]) tailLen := int(rowIDLen + 2) if len(data) < tailLen { - d.Logger.Warn("[date0218] Decode error 2", logutil.Key("data", data), zap.Uint16("rowIDLen", rowIDLen), zap.Int("tailLen", tailLen), zap.Stack("stack")) return nil, errors.New("insufficient bytes to decode value") } _, key, err := codec.DecodeBytes(data[:len(data)-tailLen], dst[len(dst):cap(dst)]) if err != nil { - d.Logger.Warn("[date0218] Decode error 3", logutil.Key("data", data), zap.Uint16("rowIDLen", rowIDLen), zap.Int("tailLen", tailLen), - logutil.Key("key", key), zap.Error(err)) return nil, err } if len(dst) == 0 { diff --git a/pkg/lightning/common/key_adapter_test.go b/pkg/lightning/common/key_adapter_test.go index 2a1e2e915c304..a3d75c0944e0e 100644 --- a/pkg/lightning/common/key_adapter_test.go +++ b/pkg/lightning/common/key_adapter_test.go @@ -17,8 +17,6 @@ package common import ( "bytes" "crypto/rand" - "encoding/hex" - "fmt" "math" "sort" "testing" @@ -86,121 +84,6 @@ func TestDupDetectKeyAdapter(t *testing.T) { } } -func TestDecode(t *testing.T) { - // hexTexts := []string{ - // "7480000000000000FF6E5F698000000000FF0000100130303030FF30323231FF2D6464FF34662D3438FF3237FF2D626564382DFF37FF33336330393531FFFF3566373374753037FFFF42365A5730764BFF4BFF467952426577FF3965FF4E32714442FF6A3164FF5861557AFF6C4E736AFF645769FF4557594A33FF466FFF476F5352716EFF39FF4A546235765971FFFF324849706B514344FFFF537273487A6652FF68FF314E70506132FF4A6DFF4A69626441FF496663FF50394563FF6F4A6331FF426D68FF713353547AFF504BFF634938614A35FF30FF4C584D3971486AFFFF61796A724D5A5731FFFF7645674850784BFF43FF6D6959734F75FF3857FF7159675768FF4A4431FF63494F36FF44497053FF75314DFF3968574C6CFF5169FF30524274366AFF46FF544D5951536F4AFFFF6E4C4E6E53574F42FFFF61534A31734539FF45FF6C7159587669FF3957FF483447697AFF477177FF7A624330FF6A707359FF456931FF5A62656956FF6D56FF63316D376132FF41FF78797669486676FFFF66446F78754F464BFFFF64646851514442FF43FF593961464177FF6D68FF6634566239FF717A6EFF57643473FF33766478FF383979FF7866553275FF4247FF474141694466FF47FF62484A42475079FFFF6F307364594D7839FFFF66376251616843FF59FF664133334949FF4A47FF6335585062FF545158FF39566336FF59394D38FF385869FF4469545759FF4562FF336568785456FF45FF3636374B6C5279FFFF414A41374A436C35FFFF7558516751566EFF6BFF66316F646767FF5678FF575430486EFF436833FF41344B33FF53714E4EFF71445AFF524D6E6154FF4575FF70443659516EFF52FF7738776167694DFFFF7A62427633655449FFFF55677266307A73FF49FF4F4355427057FF5A6CFF494C6C596FFF777A77FF3859734BFF75314D73FF786653FF6F504E4963FF5946FF426E6633746AFF6AFF626E4A32756136FFFF624535696A395A77FFFF65786E527A554AFF69FF546D686C4B4BFF5663FF75676C3165FF4D7941FF35646E76FF32465943FF633650FF736E614B61FF4253FF533064595A78FF61FF39765871733542FFFF7031454E32385063FFFF6D41533054434DFF62FF563168517932FF7158FF654E59337AFF365A75FF6F657576FF77494E53FF4C3961FF574A776E64FF555AFF654531676C69FF39FF7A6A74766B3633FFFF396A596E30596837FFFF32784B6464626FFF65FF6E5038645741FF3076FF4D4E395663FF794A71FF31796F5AFF34727579FF70506AFF7876457267FF527AFF5376356C6165FF36FF50716B6B305030FFFF6252586556675A62FFFF61396D394F3266FF36FF6761754A564BFF6854FF6330317954FF486853FF48383471FF694A5955FF307861FF415736376DFF6566FF524546305843FF51FF64433736624F75FFFF74774B4E3654556EFFFF6C366B53704E66FF7AFF6D616748636FFF736DFF4E79544372FF6F6D36FF32725A39FF466A5736FF334269FF62466C5A6AFF7A64FF416962396A70FF46FF726E4D37635848FFFF394F54437154356EFFFF6562695842574DFF72FF685133795461FF395AFF616A353849FF38357AFF6E487A62FF6E454B53FF394C6CFF7746424936FF334EFF753472697931FF58FF716C6A4D496849FFFF4657526738636475FFFF7337754D4F7863FF47FF4A4F72685645FF4277FF684B465772FF305964FF66663166FF30524865FF32796CFF68426D5679FF3133FF7A37724C3555FF31FF4B6E4B52000000FCFF0000000000000000F780000000001B37E00008", - // "7480000000000000FF6E5F698000000000FF0000100130643762FF65376164FF2D3864FF37632D3437FF3364FF2D613464342DFF30FF31663664353364FFFF6232666369477833FFFF31357144524E33FF38FF653764304B6AFF6563FF7243555144FF526449FF55794263FF69773166FF714466FF6D75594941FF6561FF42784A34584CFF34FF6637496A445044FFFF6D445A486D384543FFFF7665423361714FFF47FF756536363777FF4758FF6D4E387561FF38374DFF51536958FF50493058FF313572FF344174424FFF5A67FF6E4339436D68FF79FF56736956483755FFFF4F62363770354161FFFF4F614D4D35766DFF59FF4C3845633949FF6E4FFF474F596757FF6C4532FF71597441FF7A41494BFF474658FF7A565A6B69FF6663FF52533277726CFF72FF32653062335648FFFF6A4B52716E61747AFFFF4173495175354DFF43FF437130394631FF354DFF6B4A6F7864FF336F6BFF736E5336FF42755277FF497A6DFF4C67683139FF3141FF36596F4C4548FF30FF7951755545646DFFFF756E663358353758FFFF594865385A6E44FF58FF576768483070FF7A4BFF4367417076FF476457FF5061664DFF6369424DFF6B6970FF6976545468FF5450FF6A50386B4359FF4BFF33625544306C6CFFFF6358795078457943FFFF3452317A57526FFF6AFF504243676345FF6C5AFF5247486974FF534362FF4E414272FF37535A59FF696470FF494D746963FF7369FF44786A487A72FF31FF51506846374D34FFFF4365517735627570FFFF47716C48536863FF6AFF68614A774158FF5857FF67416C656DFF4D3747FF755A526EFF73756E46FF41666AFF6266495173FF5345FF785976444B78FF61FF59616A4C545567FFFF514B75715A513552FFFF6B69366F594143FF59FF417775447372FF304BFF32537A336DFF696A31FF516E5575FF726E726EFF665371FF476B4E576EFF7961FF567741484237FF4AFF39376559484348FFFF3943696F41593546FFFF58355831777147FF53FF446F324A3532FF4334FF6D49713443FF475962FF47674C66FF6C354E68FF356149FF58756E4E31FF4837FF496C7043366EFF35FF6A516239515349FFFF714E344544594C75FFFF436134666B777AFF51FF724642497542FF366DFF776C767A54FF337734FF4B6E4A73FF7758466CFF634652FF6833765A70FF6879FF39575A6D3351FF6CFF43313168794141FFFF5A334A74746A7870FFFF34664148455747FF79FF664D5A683162FF7678FF554F375456FF73754EFF76467136FF334E6851FF417045FF4B56386430FF7379FF665868395261FF62FF49614B696C6572FFFF4B396C4C72776B4CFFFF3252646A625571FF32FF4C445532334AFF3531FF7664506134FF65665AFF37453169FF4A32514EFF745070FF347A584734FF3865FF506541644236FF39FF45384B327A514BFFFF4B726C5534546250FFFF4D6F3861424878FF71FF7461636C6932FF4978FF4839333732FF503879FF6D64646EFF7478324CFF783367FF6B3757546CFF5348FF6E5965715237FF30FF72597561675647FFFF706B425365453950FFFF6B703436493859FF53FF517776745851FF714DFF7362555972FF4D6773FF45584A69FF4E306A63FF345A72FF546C655952FF6B31FF334866757352FF50FF6E354C79655177FFFF514D4C6C4469386EFFFF375A7475563864FF62FF594953536234FF4646FF7465394F46FF304871FF56646A58FF777A6E7AFF4F554FFF64754B634BFF5935FF74524B707739FF65FF5157356B666979FFFF41346F6C7A486738FFFF4252597642514CFF58FF595935546471FF6E6BFF6A51377172FF785A31FF656A3858FF6476384DFF716575FF7269477833FF3135FF7144524E3338FF65FF3764304B6A6563FFFF7243555144526449FFFF55794263697731FF66FF7144666D7559FF4941FF656142784AFF34584CFF34663749FF6A445044FF6D445AFF486D384543FF7665FF423361714F47FF75FF65363637774758FFFF6D4E38756138374DFFFF51536958504930FF58FF313572344174FF424FFF5A676E4339FF436D68FF79567369FF56483755FF4F6236FF3770354161FF4F61FF4D4D35766D59FF4CFF38456339496E4FFFFF474F5967576C4532FFFF715974417A4149FF4BFF4746587A565AFF6B69FF6663525332FF77726CFF72326530FF62335648FF6A4B52FF716E61747AFF4173FF495175354D43FF43FF7130394631354DFFFF6B4A6F7864336F6BFFFF736E5336427552FF77FF497A6D4C6768FF3139FF314136596FFF4C4548FF30795175FF5545646DFF756E66FF3358353758FF5948FF65385A6E4458FF57FF67684830707A4BFFFF4367417076476457FFFF5061664D636942FF4DFF6B6970697654FF5468FF54506A5038FF6B4359FF4B336255FF44306C6CFF635879FF5078457943FF3452FF317A57526F6AFF50FF42436763456C5AFFFF5247486974534362FFFF4E41427237535AFF59FF696470494D74FF6963FF736944786AFF487A72FF31515068FF46374D34FF436551FF7735627570FF4771FF6C485368636AFF68FF614A7741585857FFFF67416C656D4D3747FFFF755A526E73756EFF46FF41666A626649FF5173FF5345785976FF444B78FF6159616AFF4C545567FF514B75FF715A513552FF6B69FF366F59414359FF41FF7775447372304BFFFF32537A336D696A31FFFF516E5575726E72FF6EFF665371476B4EFF576EFF7961567741FF484237FF4A393765FF59484348FF394369FF6F41593546FF5835FF583177714753FF44FF6F324A35324334FFFF6D49713443475962FFFF47674C666C354EFF68FF35614958756EFF4E31FF4837496C70FF43366EFF356A5162FF39515349FF000000FF0000000000F70000FD800000000018689B0008", - // "7480000000000000FF6E5F698000000000FF0000100131623639FF39353165FF2D3532FF64312D3437FF3762FF2D383261332DFF35FF38666132623431FFFF3266653250325632FFFF5974793453306EFF36FF65574E616531FF684FFF33747A3136FF303937FF58416E4AFF726D714CFF78314FFF62584B7567FF4350FF5079764D3531FF57FF524C416B4C6F4AFFFF3149436B366C6330FFFF6D624E49466354FF67FF38767737334CFF6C31FF4B496D6743FF5A3244FF5230386AFF71355337FF70355AFF62525A6648FF494AFF595652363539FF70FF783532566E354EFFFF797034744F344D30FFFF62454755394251FF4CFF787061766747FF6E45FF6E6852584BFF384B62FF61714754FF73355441FF393463FF3079556569FF6A65FF563151365466FF35FF49654E4C626375FFFF526F715A54514330FFFF6939644D377359FF45FF4C6C64514759FF7352FF314F416D37FF395A32FF3544645AFF69593474FF514858FF6478654F58FF3968FF53676564366BFF69FF4F786F696F6641FFFF6B646A30506C5248FFFF31445347726844FF6EFF505A50734D6EFF4144FF757A4F6F7AFF4A5434FF3447735AFF6F6D5269FF387645FF66474A6B38FF6A35FF4C5633303768FF65FF7332475049424CFFFF3068444E54484974FFFF5A767448706170FF71FF727435684B6CFF7775FF7A4F736850FF6C505AFF43625659FF62754177FF494135FF4F694C6E4BFF4169FF5557316B705AFF36FF35526861736A62FFFF67363055436E7931FFFF7851667A445047FF48FF437533566A71FF6E48FF73306E724DFF353432FF51317242FF6F4D5A4CFF546C32FF5A42695143FF4263FF476941414935FF71FF4736546A74664CFFFF344F5071356D3745FFFF43646A476C4866FF62FF7539357A306DFF6E33FF654A766465FF6A7A52FF7A674F71FF63616A44FF477330FF5A6C736F62FF7136FF487461327039FF6FFF64475071346557FFFF507A6C7A72655038FFFF7552504554657AFF75FF664354394C71FF4C33FF6861506B53FF564475FF4B594466FF7374386FFF6C684FFF7331324C71FF4C72FF57516B325456FF6DFF6962454D55326EFFFF7259336263696648FFFF666B77616B6258FF31FF593057664E6AFF5170FF4748527355FF354F61FF6A524A53FF696E6D56FF6C7751FF4966427232FF3359FF42395A494A43FF6FFF4941424E70514AFFFF5378324D4773346BFFFF59566877305557FF75FF7A3332777046FF7056FF53475A514AFF306748FF59506341FF484C725AFF74444AFF32536F6C44FF774DFF3674585A4C73FF65FF45514638427671FFFF444A4D366F614937FFFF414E7257305039FF76FF636275727639FF7776FF4146664331FF716665FF4F783153FF334D6C4EFF47736EFF336D353476FF4658FF6132354F6F58FF75FF684E4B69355550FFFF53345A4178324179FFFF444F654375546CFF4CFF42733143344CFF4B56FF525970696EFF335950FF68576B78FF58576F34FF424A77FF556130695AFF6478FF7A55426C4B39FF42FF77525432593451FFFF34775143796D7473FFFF6D4B4C59726A32FF43FF564A43664568FF514FFF676459664FFF506B47FF66497A75FF4F6F3153FF316959FF476167746FFF4137FF4B6544727A65FF53FF416B5161394776FFFF49763578747A7952FFFF38327651533779FF41FF506C51344B4FFF5869FF63626B3545FF396F57FF5A435157FF4337384FFF514C59FF4D30387158FF3964FF357575454470FF76FF6C75676E724E79FFFF6D5276676F675565FFFF306A6136597555FF35FF59676F4D7262FF394EFF426135514DFF69306EFF32623334FF65744174FF4C7046FF7250325632FF5974FF793453306E36FF65FF574E616531684FFFFF33747A3136303937FFFF58416E4A726D71FF4CFF78314F62584BFF7567FF4350507976FF4D3531FF57524C41FF6B4C6F4AFF314943FF6B366C6330FF6D62FF4E4946635467FF38FF767737334C6C31FFFF4B496D67435A3244FFFF5230386A713553FF37FF70355A62525AFF6648FF494A595652FF363539FF70783532FF566E354EFF797034FF744F344D30FF6245FF47553942514CFF78FF70617667476E45FFFF6E6852584B384B62FFFF61714754733554FF41FF393463307955FF6569FF6A65563151FF365466FF3549654EFF4C626375FF526F71FF5A54514330FF6939FF644D37735945FF4CFF6C645147597352FFFF314F416D37395A32FFFF3544645A695934FF74FF514858647865FF4F58FF3968536765FF64366BFF694F786FFF696F6641FF6B646AFF30506C5248FF3144FF53477268446EFF50FF5A50734D6E4144FFFF757A4F6F7A4A5434FFFF3447735A6F6D52FF69FF38764566474AFF6B38FF6A354C5633FF303768FF65733247FF5049424CFF306844FF4E54484974FF5A76FF744870617071FF72FF7435684B6C7775FFFF7A4F7368506C505AFFFF43625659627541FF77FF4941354F694CFF6E4BFF4169555731FF6B705AFF36355268FF61736A62FF673630FF55436E7931FF7851FF667A44504748FF43FF7533566A716E48FFFF73306E724D353432FFFF513172426F4D5AFF4CFF546C325A4269FF5143FF4263476941FF414935FF71473654FF6A74664CFF344F50FF71356D3745FF4364FF6A476C486662FF75FF39357A306D6E33FFFF654A7664656A7A52FFFF7A674F7163616AFF44FF4773305A6C73FF6F62FF7136487461FF327039FF6F644750FF71346557FF507A6CFF7A72655038FF7552FF504554657A75FF66FF4354394C714C33FFFF6861506B53564475FFFF4B594466737438FF6FFF6C684F733132FF4C71FF4C7257516BFF325456FF6D696245FF4D55326EFF725933FF6263696648FF666BFF77616B625831FF59FF3057664E6A5170FFFF4748527355354F61FFFF6A524A53696E6DFF56FF6C7751496642FF7232FF335942395AFF494A43FF6F494142FF4E70514AFF537832FF4D4773346BFF5956FF687730555775FF7AFF33327770467056FFFF53475A514A306748FFFF59506341484C72FF5AFF74444A32536FFF6C44FF774D367458FF5A4C73FF65455146FF38427671FF444A4DFF366F614937FF414EFF725730503976FF00FF00000000000000F7FF0000000000000000F780000000000245680008", - // "7480000000000000FF6E5F698000000000FF0000100132393462FF61316461FF2D3834FF63612D3435FF6366FF2D613536342DFF39FF31363235353535FFFF36633734444F344DFFFF704D6B43454457FF66FF493573396C6BFF6558FF7955627743FF576575FF43467773FF52366762FF41695AFF7265383735FF3352FF707253677878FF76FF50566955694834FFFF646A6C4A39503256FFFF38725A73487472FF69FF644C63657546FF484AFF4C6B4F425AFF4A5334FF6A476F71FF4D51384BFF48374DFF557A684154FF4B35FF4C55754F3152FF4EFF436252624E4338FFFF6E39535662423154FFFF6270665471544FFF63FF386C36744136FF3264FF4B68484A74FF524367FF6B363566FF79656F53FF54656AFF3551394F33FF3736FF41346A50416BFF45FF4F374558637575FFFF593631427A436245FFFF72654B49745A39FF53FF56756E423474FF3351FF6F7A687245FF643366FF54336E49FF3142495AFF71544FFF3475697A36FF6F76FF44716D633470FF50FF696D584B486B62FFFF375865776D36466BFFFF305A6175743761FF38FF386655574974FF534AFF7454495539FF786B41FF74696958FF33694F45FF4D346CFF7043304E48FF3278FF6F4957753238FF6EFF354B4F6F574A57FFFF5648416F7771576BFFFF4367637A553750FF65FF5632746D5666FF6541FF564350656DFF556B46FF3777506AFF76455664FF766D39FF65724E5968FF3856FF78337134624AFF32FF6F4861484C5271FFFF6659625476364159FFFF424F6230716945FF35FF496E31594C54FF6638FF4E5330564FFF74395AFF577A6138FF506B6A49FF566679FF6E6E4B5562FF454CFF427376366752FF56FF6B504846484B67FFFF4B384E37486F6D57FFFF4E424162735874FF6CFF4F5137696353FF4F4EFF3059446B51FF4F386AFF38456A37FF69367956FF626E6FFF445234564BFF7632FF7A5556705237FF77FF7844474B44374FFFFF714E64703947586FFFFF73623573557763FF4EFF423849446734FF3272FF6834565467FF6D7A6EFF48434875FF44636348FF4F6362FF566B777A4CFF4D62FF5A324D594E30FF35FF5576337235754CFFFF6E63664C4E4A7741FFFF39337677706875FF53FF683931656374FF4A6BFF3969566954FF456C63FF794B4337FF39613152FF55444FFF6470483930FF4B79FF334154616A55FF38FF576A4A3954496BFFFF78324D503756646BFFFF31616476675052FF54FF49564F333773FF3433FF776636336AFF376B70FF6D343741FF784C786CFF7A7749FF494D47616DFF7436FF65564F663334FF31FF72715935465042FFFF703339594A345077FFFF5A70464D794F69FF65FF6D6563465748FF4439FF6977646B78FF326565FF736F7468FF7363777AFF416432FF3345707946FF5544FF37744569684AFF43FF72376866656A46FFFF51306677364A4775FFFF6A6733624F6947FF44FF557A514B4348FF316AFF41786F6353FF507041FF52424949FF51474872FF57314DFF4F306E4353FF6834FF4D4B6F473151FF45FF335570396E6253FFFF4F41746245643642FFFF5453576E6C7042FF68FF467A53537852FF384CFF7375614543FF5A4930FF794C346FFF6970634AFF496B62FF4E71334C72FF4752FF6F567A627474FF74FF6E69585A585233FFFF6931553773726D36FFFF58724C7448576BFF49FF676A4C744841FF624FFF6E4B7A5351FF797675FF69524B4BFF73656248FF6A5764FF6242366A45FF7366FF6F626F635453FF77FF5059336B345667FFFF6849706168744979FFFF72385768766278FF57FF666C36306173FF4C53FF6B6F515569FF51464FFF424C3759FF4B666F4EFF594B78FF53444F344DFF704DFF6B4345445766FF49FF3573396C6B6558FFFF7955627743576575FFFF43467773523667FF62FF41695A726538FF3735FF3352707253FF677878FF76505669FF55694834FF646A6CFF4A39503256FF3872FF5A7348747269FF64FF4C63657546484AFFFF4C6B4F425A4A5334FFFF6A476F714D5138FF00FE000000000000F980000000002808060008", - // "7480000000000000FF6E5F698000000000FF0000100133373332FF38656665FF2D6433FF62382D3464FF6434FF2D393063312DFF39FF65626666356139FFFF6662656433467554FFFF75756C65467865FF30FF7675416D4455FF6977FF49534F3071FF6C4261FF67573136FF48436637FF486354FF6F41523253FF3369FF583669426377FF42FF6F34516B327333FFFF43644731416F6748FFFF7153427A496367FF51FF34586651484FFF5449FF6C5671596BFF386872FF45563978FF5347365AFF4F5970FF524C64464CFF3677FF427948535639FF61FF584566374C6874FFFF4F73375146493465FFFF35485841397246FF4FFF306B556F5068FF3357FF484D423870FF5A7141FF4D5A564AFF52736248FF643930FF7431666339FF6161FF6F6177664631FF6AFF33323479446370FFFF6A4E773073743870FFFF684E4C61664B53FF46FF343571674352FF4A33FF587A65356EFF6F7169FF66765732FF42303641FF694732FF6141626D34FF724EFF4A7A4A313355FF62FF50774E70336676FFFF6E66736C71516545FFFF4A4D5770626A4EFF42FF6F67386C4765FF5739FF5546374849FF6E4B52FF30464442FF63304431FF737649FF3761564E6DFF306BFF327855683937FF44FF504E6578663432FFFF734B6A5150515A4AFFFF69727638423439FF37FF716846507362FF7631FF7535513142FF526341FF56386855FF43397568FF594175FF30764E6350FF7947FF566F47787561FF45FF7A766453353452FFFF58465A5365464C53FFFF45524F32363942FF33FF553651583074FF3861FF714C696364FF6A656AFF6364666BFF6A58776FFF4A576AFF7349304F58FF6566FF50716B6C6A68FF62FF614A4E7A713656FFFF65364B74484F6C71FFFF706565566F314CFF4FFF4C414D517967FF3637FF62497A4B76FF6D3532FF7830466FFF36787770FF366132FF636B344368FF5754FF433731565535FF49FF53417751486875FFFF4B6773415A595155FFFF665736675A5154FF64FF773336314F7AFF5861FF6B58697354FF4A6B4CFF4C396641FF32376D53FF314E38FF596B344D66FF7264FF70787A68527AFF6DFF6F4F73485A4378FFFF4746314A746F5442FFFF66665553696A7AFF58FF796766523343FF6479FF5133776538FF724C45FF3067524AFF646B326EFF77676BFF647A6E5256FF3567FF747379753543FF37FF77416B6C37764AFFFF75794C6B31753542FFFF42676D35355557FF38FF41344A486445FF4357FF4547733835FF78414FFF686B3862FF4D673977FF31304CFF3046493869FF4649FF337539416F69FF48FF39335531307164FFFF336E617334724B37FFFF464F7A637A4341FF41FF506E34634B6EFF594BFF4E32496B72FF55766AFF47535962FF69324941FF4E3753FF3941384233FF6D53FF6F6354385442FF43FF49697043624659FFFF467A6D6578646C37FFFF454A4D435A3252FF49FF5339456E6E6FFF6139FF5969593572FF394741FF31713377FF74587044FF793337FF4E4277596DFF5141FF6F70624A4148FF50FF6551774C626E30FFFF624F653179357238FFFF466F4F58533265FF34FF4B61454A4C78FF4834FF5962324855FF4D656CFF41725155FF72684F75FF4B7772FF564C573241FF7436FF536877377357FF31FF31793151484553FFFF6C47705473427677FFFF3551316A453875FF74FF3177756E5238FF3148FF5A574C686AFF395850FF5474566AFF67435873FF4F3850FF3244453431FF3577FF377941466734FF32FF52325551705464FFFF70776E463231724DFFFF71424179706550FF6FFF725963707179FF5058FF3441325267FF346568FF50794767FF7067446BFF6C6D34FF4E33467554FF7575FF6C6546786530FF76FF75416D44556977FFFF49534F30716C4261FFFF67573136484366FF37FF4863546F4152FF3253FF3369583669FF426377FF426F3451FF6B327333FF436447FF31416F6748FF7153FF427A49636751FF34FF586651484F5449FFFF6C5671596B386872FFFF45563978534736FF5AFF4F5970524C64FF464CFF3677427948FF535639FF61584566FF374C6874FF4F7337FF5146493465FF3548FF58413972464FFF30FF6B556F50683357FFFF484D4238705A7141FFFF4D5A564A527362FF48FF643930743166FF6339FF61616F6177FF664631FF6A333234FF79446370FF6A4E77FF3073743870FF684EFF4C61664B5346FF34FF35716743524A33FFFF587A65356E6F7169FFFF66765732423036FF41FF694732614162FF6D34FF724E4A7A4AFF313355FF6250774EFF70336676FF6E6673FF6C71516545FF4A4DFF5770626A4E42FF6FFF67386C47655739FFFF55463748496E4B52FFFF30464442633044FF31FF737649376156FF4E6DFF306B327855FF683937FF44504E65FF78663432FF734B6AFF5150515A4AFF6972FF763842343937FF71FF68465073627631FFFF7535513142526341FFFF56386855433975FF68FF59417530764EFF6350FF7947566F47FF787561FF457A7664FF53353452FF58465AFF5365464C53FF4552FF4F3236394233FF55FF36515830743861FFFF714C6963646A656AFFFF6364666B6A5877FF6FFF4A576A734930FF4F58FF656650716BFF6C6A68FF62614A4EFF7A713656FF65364BFF74484F6C71FF7065FF65566F314C4FFF4CFF414D5179673637FFFF62497A4B766D3532FFFF7830466F367877FF70FF366132636B34FF4368FF5754433731FF565535FF49534177FF51486875FF4B6773FF415A595155FF6657FF36675A515464FF77FF3336314F7A5861FFFF6B586973544A6B4CFFFF4C39664132376DFF53FF314E38596B34FF4D66FF726470787AFF68527AFF6D6F4F00FF00000000FA000000FC8000000000259F730008", - // "7480000000000000FF6E5F698000000000FF0000100134353163FF62613037FF2D6164FF31612D3438FF3666FF2D623434362DFF65FF32636661303765FFFF37343130355A5675FFFF754A6E304D684BFF6AFF58556B6E7578FF7061FF4343667337FF755355FF64414D4CFF3042484FFF576C76FF76746C336FFF7441FF5A4C4247344CFF73FF4132615268484EFFFF663251345152634EFFFF4774594B524877FF50FF6C6A42594A75FF347AFF3333546134FF516664FF79566741FF595A6870FF4B5543FF3161694C50FF4755FF416F4B586E6EFF49FF38795339333834FFFF5164460000000000FFFA00000000000000F8800000000032A3760008", - // "7480000000000000FF6E5F698000000000FF0000100135333038FF30636530FF2D3638FF65612D3466FF6139FF2D396532352DFF33FF38343063333537FFFF633939663678516DFFFF76375557616173FF34FF4F4667793476FF4856FF3371576377FF5A6C6CFF32413263FF58376264FF73796DFF305971636EFF4371FF79356A324767FF68FF6448666B6F6343FFFF6F41473538414271FFFF517436766E6C64FF4DFF573834773855FF6D75FF7166586873FF313845FF5A724751FF78504172FF6E6D74FF7770664930FF3566FF395873455A41FF51FF71313444393553FFFF495A4539546B5644FFFF6D4D48324B6B32FF6FFF6D467130656FFF7775FF646D4B7856FF534941FF78304C35FF6E4C7175FF47764DFF377A46786DFF4754FF6E4147727945FF78FF62625566376F50FFFF5656766F34696575FFFF64524E484A6451FF49FF4E4A6C7A4A44FF6C74FF4837465755FF353441FF3448557AFF69443156FF6A4363FF62716F6E49FF7547FF5847366D5245FF4AFF62526253505041FFFF3175755245375334FFFF6B6A3251575364FF64FF4F5936526744FF696BFF4362457354FF743365FF6F667765FF4357734AFF644B59FF4F79754647FF5377FF3261526B7341FF70FF46356B72343257FFFF38396D4155304574FFFF34775A58357578FF39FF6F446E337755FF3135FF6C4C657266FF464F51FF6D6E7A35FF55624F59FF735668FF697A353136FF4548FF4D4D386B5376FF71FF6C645061746C65FFFF333975726E4F7834FFFF76615A44613130FF6FFF56666D4D4C73FF6F6EFF5263783330FF346B31FF4A385772FF35517173FF797334FF3956623232FF7964FF737363594C77FF5AFF6F674A37456156FFFF695679796F576738FFFF545356594E7437FF57FF446631643846FF7947FF5452463470FF453965FF564B6631FF4F78336AFF4A6E4EFF4D524F6F58FF5643FF776832613963FF44FF4A374937386973FFFF4976446F32377864FFFF7A6B595A657262FF5AFF6E5961584D51FF5830FF6755336C72FF434478FF6D76437AFF39374C52FF545831FF796D736C52FF5276FF4577686D6D6BFF43FF445A754E593052FFFF3563766F57797A61FFFF7345657A624B50FF6FFF654967676254FF4443FF78506C6668FF485A38FF44343572FF314B4878FF434573FF435156486BFF6652FF6B33306A3652FF4EFF4E356446697032FFFF4545727354694C4BFFFF73626A41444166FF76FF553246627431FF3463FF6641444B30FF43456DFF776C6A75FF57556744FF665659FF6B6E654F47FF374FFF34634D734965FF59FF54597541657163FFFF7246316F486B4E38FFFF67526957794F44FF64FF38713370424CFF6736FF7754556A67FF524A51FF33516E55FF4C63516AFF636954FF5970733074FF754AFF4B4B6E4A7066FF54FF646A746F6B5A6BFFFF5771486A33745551FFFF57614F37593573FF78FF4B3333556431FF4D73FF455A454566FF534735FF35694B64FF45304C41FF52326DFF4B4D475659FF4658FF745443757964FF57FF69325631723071FFFF6975767538674755FFFF77706D4F6A4172FF75FF6662737A6279FF424AFF43486E364EFF315350FF675A6A75FF6D325778FF75796FFF4637497578FF6648FF576A326A3452FF57FF50374C36543735FFFF4F61367658713069FFFF6B756D3457557AFF49FF7A486F4A634BFF7442FF59764D5A44FF44676EFF3245436AFF63367636FF5A4568FF4943764D30FF7968FF6E664E576153FF59FF4A4E427A433442FFFF3134525742695042FFFF3847435630426AFF32FF75435A41596BFF6543FF734B6F4950FF683248FF6D316871FF4238505AFF665767FF353678516DFF7637FF555761617334FF4FFF46677934764856FFFF33715763775A6C6CFFFF32413263583762FF64FF73796D305971FF636EFF437179356AFF324767FF68644866FF6B6F6343FF6F4147FF3538414271FF5174FF36766E6C644DFF57FF38347738556D75FFFF7166586873313845FFFF5A724751785041FF72FF6E6D74777066FF4930FF3566395873FF455A41FF51713134FF44393553FF495A45FF39546B5644FF6D4DFF48324B6B326FFF6DFF467130656F7775FFFF646D4B7856534941FFFF78304C356E4C71FF75FF47764D377A46FF786DFF47546E4147FF727945FF78626255FF66376F50FF565676FF6F34696575FF6452FF4E484A645149FF4EFF4A6C7A4A446C74FFFF4837465755353441FFFF3448557A694431FF56FF6A436362716FFF6E49FF7547584736FF6D5245FF4A625262FF53505041FF317575FF5245375334FF6B6AFF325157536464FF4FFF5936526744696BFFFF4362457354743365FFFF6F667765435773FF4AFF644B594F7975FF4647FF5377326152FF6B7341FF7046356BFF72343257FF38396DFF4155304574FF3477FF5A5835757839FF6FFF446E3377553135FFFF6C4C657266464F51FFFF6D6E7A3555624FFF59FF735668697A35FF3136FF45484D4D38FF6B5376FF716C6450FF61746C65FF333975FF726E4F7834FF7661FF5A446131306FFF56FF666D4D4C736F6EFFFF5263783330346B31FFFF4A385772355171FF73FF797334395662FF3232FF7964737363FF594C77FF5A6F674AFF37456156FF695679FF796F576738FF5453FF56594E743757FF44FF66316438467947FFFF5452463470453965FFFF564B66314F7833FF6AFF4A6E4E4D524FFF6F58FF5643776832FF613963FF444A3749FF37386973FF497644FF6F32377864FF7A6BFF595A6572625AFF6EFF5961584D515830FFFF6755336C72434478FFFF6D760000000000FF00F9000000000000F9800000000000BA4E0008", - // "7480000000000000FF6E5F698000000000FF0000100135353065FF62373062FF2D6462FF31642D3430FF3762FF2D613863342DFF65FF35306635363633FFFF3266376170595442FFFF686A7574627859FF76FF56544F72417AFF7568FF4A466C6E56FF6F3664FF45595348FF754B664FFF497074FF4875457438FF3569FF6967526B3163FF51FF5235694A46414DFFFF446A697670736B62FFFF6246367A354D6FFF6DFF395355565255FF4A64FF7379506558FF315376FF32715077FF336F6D6AFF337231FF3136386C50FF5A48FF484A30766C76FF32FF6139376A727037FFFF3656384A4966734EFFFF534E33754E565AFF73FF317241314F77FF6D49FF6A546F5369FF446C61FF444F5657FF4D353466FF514338FF6A4B31437AFF3670FF7033684F5335FF4DFF32687543454463FFFF69763362674A7157FFFF67523474424C33FF41FF5043374A6F73FF4745FF456C344251FF4C7A43FF5A46424EFF49675675FF677036FF4C69344743FF6B67FF656B39337670FF68FF7753445A324300FEFF0000000000000000F780000000000721210008", - // "7480000000000000FF6E5F698000000000FF0000100135353065FF62373062FF2D6462FF31642D3430FF3762FF2D613863342DFF65FF35306635363633FFFF3266376170595442FFFF686A7574627859FF76FF56544F72417AFF7568FF4A466C6E56FF6F3664FF45595348FF754B664FFF497074FF4875457438FF3569FF6967526B3163FF51FF5235694A46414DFFFF446A697670736B62FFFF6246367A354D6FFF6DFF395355565255FF4A64FF7379506558FF315376FF32715077FF336F6D6AFF337231FF3136386C50FF5A48FF484A30766C76FF32FF6139376A727037FFFF3656384A4966734EFFFF534E33754E565AFF73FF317241314F77FF6D49FF6A546F5369FF446C61FF444F5657FF4D353466FF514338FF6A4B31437AFF3670FF7033684F5335FF4DFF32687543454463FFFF69763362674A7157FFFF67523474424C33FF41FF5043374A6F73FF4745FF456C344251FF4C7A43FF5A46424EFF49675675FF677036FF4C69344743FF6B67FF656B39337670FF68FF7753445A324300FEFF0000000000000000F780000000000721210008", - // "7480000000000000FF6E5F698000000000FF0000100136306335FF32646530FF2D3765FF65642D3439FF3738FF2D623362622DFF32FF61333236653139FFFF30313138706B5337FFFF6556533574547AFF77FF536F6E714A37FF4E38FF4479766F65FF6E6F33FF63485044FF39395849FF616858FF4A644E7966FF6339FF374E56664C74FF4EFF34415359535442FFFF544D486F39555A34FFFF6F7A4A73546857FF57FF716B71554451FF4531FF3932644A6CFF663665FF44366E4CFF30615872FF70734FFF376E4B5175FF596AFF587A64715873FF4FFF7450716B734879FFFF41557059386A3854FFFF58486D4F325862FF6BFF696C57696242FF6876FF6778516A77FF325348FF63537546FF6E497355FF456A68FF3064544445FF4B76FF4937754A7238FF44FF5831566C30725AFFFF3743474975697458FFFF464738346B4D52FF36FF753676557768FF6C73FF4E486C5448FF6A5652FF6778754AFF48485859FF464679FF64534E516FFF4755FF46684746416CFF32FF796268506B5544FFFF4436645957784F4CFFFF746169556F4C5AFF41FF524C39413131FF4763FF5074373146FF624966FF6D384F6AFF75504C65FF476159FF746B446659FF7873FF316344614232FF71FF73324E44365373FFFF335575686D575433FFFF474B4D56695951FF48FF356F4E36396AFF6235FF6E4169636BFF375676FF55665777FF57454C34FF55385AFF64434D6364FF5261FF39656E356E74FF54FF7A49507A347357FFFF4D7548476E4A4166FFFF45654135727775FF64FF3743484D6A5AFF3743FF53546A3768FF575461FF764A4A52FF6163465AFF6B4F5AFF6156456136FF3044FF586767446A55FF41FF526857374C7374FFFF5243544261724E50FFFF6D6F5635383358FF64FF335A6E574A72FF4A67FF36754A586CFF765A38FF766C4378FF306E5473FF674C54FF6469414876FF6168FF657763424243FF6DFF486C6E6E5A667AFFFF56513730684C664EFFFF5745654C366B67FF76FF796177734377FF7636FF39766E4C52FF386343FF615A5945FF6C706175FF373753FF71736E7462FF7043FF65416B473377FF72FF4F7168774C6E69FFFF5265743670484E77FFFF79537469656671FF47FF7A414E736931FF5A36FF3061684D76FF437276FF42593743FF71626F44FF5A4644FF63356B3376FF6848FF577031754B57FF32FF5075424F795146FFFF766F6C476E494C4FFFFF593047746B786AFF55FF6554486E7739FF4258FF6850376A57FF4B384DFF784F3151FF714A6277FF426B4DFF427042304AFF496DFF6C57716D6450FF62FF4D664A4463746EFFFF436F595648433459FFFF4E585853725946FF4FFF647741343038FF686AFF4942644676FF4E3068FF38713576FF47524A71FF767148FF4D324B6647FF7452FF546D38696741FF71FF35345066385374FFFF4F56765244536550FFFF7555484E48306EFF78FF746D58314959FF5371FF74576B4E4DFF76496CFF38457471FF59355238FF4B487AFF5869724455FF4756FF345677556878FF42FF745A6A584C4661FFFF5A6B577652466F49FFFF39703248324C39FF31FF44674B394B79FF3351FF7661414953FF367134FF4E616873FF6E344B53FF666A35FF5566564E47FF4849FF693943354345FF36FF674651424D4E70FFFF3333314F444D5762FFFF37624864503358FF4CFF357850797077FF4B39FF45624D5530FF446F6CFF77584134FF4A4E4252FF733176FF6E46786145FF424CFF554138534E4FFF35FF754C35494B3756FFFF787067486A397136FFFF57397873667146FF49FF4D4A534B5935FF3556FF5764775757FF683362FF49764479FF4F416C77FF4F5246FF55706B5337FF6556FF533574547A77FF53FF6F6E714A374E38FFFF4479766F656E6F33FFFF63485044393958FF49FF6168584A644EFF7966FF6339374E56FF664C74FF4E344153FF59535442FF544D48FF6F39555A34FF6F7AFF4A7354685757FF71FF6B715544514531FFFF3932644A6C663665FFFF44366E4C306158FF72FF70734F376E4BFF5175FF596A587A64FF715873FF4F745071FF6B734879FF415570FF59386A3854FF5848FF6D4F3258626BFF69FF6C576962426876FFFF6778516A77325348FFFF635375466E4973FF55FF456A68306454FF4445FF4B76493775FF4A7238FF44583156FF6C30725AFF374347FF4975697458FF4647FF38346B4D5236FF75FF36765577686C73FFFF4E486C54486A5652FFFF6778754A484858FF59FF46467964534EFF516FFF4755466847FF46416CFF32796268FF506B5544FF443664FF5957784F4CFF7461FF69556F4C5A41FF52FF4C394131314763FFFF5074373146624966FFFF6D384F6A75504CFF65FF476159746B44FF6659FF7873316344FF614232FF7173324EFF44365373FF335575FF686D575433FF474BFF4D5669595148FF35FF6F4E36396A6235FFFF6E4169636B375676FFFF5566577757454CFF34FF55385A64434DFF6364FF526139656EFF356E74FF547A4950FF7A347357FF4D7548FF476E4A4166FF4565FF413572777564FF37FF43484D6A5A3743FFFF53546A3768575461FFFF764A4A52616346FF5AFF6B4F5A615645FF6136FF3044586767FF446A55FF41526857FF374C7374FF524354FF4261724E50FF6D6FFF563538335864FF33FF5A6E574A724A67FFFF36754A586C765A38FFFF766C4378306E54FF73FF674C54646941FF4800FE0000000000FA80000000003265A30008", - // "7480000000000000FF6E5F698000000000FF0000100136656465FF31363732FF2D3261FF32342D3439FF6331FF2D623038322DFF30FF38363431316564FFFF35363365744E524FFFFF443276644D6C58FF4DFF7741477A3262FF6F55FF573856644EFF4C5752FF426A3236FF4B53766DFF363961FF4F61387157FF5436FF557168437945FF4DFF6451345264336BFFFF4D45507750625A7AFFFF4E744958655538FF34FF324767733774FF716FFF33564A4A61FF536F69FF38536D46FF74463549FF505343FF4973675366FF3031FF464C4731614CFF57FF6F7158526F7246FFFF56676E3745705647FFFF796A36626F5246FF41FF5A5236754379FF6574FF5A34556B73FF496276FF6F613265FF794B5675FF547A6BFF674D527459FF3232FF355A3978726BFF4DFF32766858625739FFFF6F693468514F6A56FFFF426D45794B4B45FF79FF554E6D6C316CFF7858FF364F303279FF366A39FF73324655FF6C69576BFF6B4231FF4B53674270FF4663FF454A38416773FF79FF665161696E4B55FFFF5063707259617276FFFF536F576B594246FF5AFF7A565A637854FF5533FF466F4D4A72FF334B31FF34726A73FF6B6B6D72FF6A6159FF746F676862FF6559FF573272774F71FF50FF767A4865393957FFFF5A33667453463636FFFF7A4A56754D597AFF42FF3065424B325AFF4D33FF7355744C51FF7A6A30FF344B5546FF654B7851FF6D6D38FF58747A6341FF4249FF684A3833354BFF55FF6D624653506D46FFFF3132303266366F58FFFF42624433724C6EFF79FF55626E6C5734FF485AFF5A64564574FF763153FF35784543FF694D6546FF726534FF51626D5471FF746FFF78747A364450FF72FF696B554B775A36FFFF6468774D5A6D4772FFFF6E436E73303169FF79FF5167424B7A44FF4B37FF4156773052FF35325AFF30377231FF6A7A5042FF45466CFF4747775634FF7762FF6A4C33667953FF30FF724A666B695830FFFF52334B4C71795763FFFF6D73464E624832FF4FFF79434D477033FF744DFF734C6A6268FF466A79FF4D664A6AFF4972494FFF4A5146FF644F47794CFF566AFF747074457774FF69FF4D7A49326E3337FFFF707533783043386CFFFF6A4E5256654A79FF48FF77566D574972FF4347FF786152454DFF47567AFF31555635FF66527859FF366E35FF4435764C66FF414AFF4B5772537054FF59FF495156724F506DFFFF754450316B346E42FFFF543439424E4777FF44FF4C5472674464FF4C39FF4163646665FF733538FF44755941FF4B353464FF537239FF3967313031FF696CFF704A35573866FF6BFF38786374505461FFFF4767317137354E61FFFF72317962426B62FF61FF387332414C41FF376CFF67656A4567FF714742FF63456F50FF38555349FF714836FF6C5166475AFF7937FF3232784E7177FF45FF697A6357727049FFFF647A4767675A5851FFFF506A5666346347FF5AFF315862534869FF6A72FF6666616E77FF354F71FF3732726CFF63595733FF38364AFF3476754442FF4B38FF514A54464D50FF6DFF4B53426A384E70FFFF4F6A4264564E7766FFFF34686652784264FF4AFF6B3344423568FF3236FF5241763849FF786F4FFF746A4B4BFF36416B63FF33524BFF7950636E56FF5362FF355158395542FF4DFF5135774850774EFFFF5875393347624B57FFFF32343945435778FF33FF4B4F47457638FF7344FF35534B6C49FF586B55FF47794E4AFF76486A49FF526555FF3042653233FF6D50FF45616B673978FF35FF4B435A38513035FFFF4B437A5263317775FFFF52746570635661FF65FF737978417443FF4E71FF4E53475230FF783061FF62367469FF45386848FF4B7266FF5A744E524FFF4432FF76644D6C584DFF77FF41477A32626F55FFFF573856644E4C5752FFFF426A32364B5376FF6DFF3639614F6138FF7157FF5436557168FF437945FF4D645134FF5264336BFF4D4550FF7750625A7AFF4E74FF495865553834FF32FF4767733774716FFFFF33564A4A61536F69FFFF38536D46744635FF49FF505343497367FF5366FF3031464C47FF31614CFF576F7158FF526F7246FF56676EFF3745705647FF796AFF36626F524641FF5AFF52367543796574FFFF5A34556B73496276FFFF6F613265794B56FF75FF547A6B674D52FF7459FF3232355A39FF78726BFF4D327668FF58625739FF6F6934FF68514F6A56FF426DFF45794B4B4579FF55FF4E6D6C316C7858FFFF364F303279366A39FFFF733246556C6957FF6BFF6B0000000000FF0000F80000000000FA80000000000DA62D0008", - // "7480000000000000FF6E5F698000000000FF0000100137636266FF66366239FF2D3238FF63392D3466FF3935FF2D393034322DFF63FF34643237363438FFFF3839303054436A51FFFF6242586A457362FF49FF786553493636FF3057FF703469646DFF4A4352FF514D7250FF4B333344FF455730FF3962703077FF4247FF556230657841FF4FFF5A464667577455FFFF6F3176334E784A46FFFF3965354679447AFF59FF6336714A4164FF6766FF624F793868FF353351FF32476561FF4E7A7361FF523447FF6E61646A6AFF3452FF48657639365AFF79FF5172343633706DFFFF7342347868395751FFFF62684D54484A63FF64FF78654B686D63FF5244FF6869766759FF50544FFF33766A46FF677A5870FF737749FF5975543257FF5261FF644B35386957FF74FF69733834374C32FFFF6B61326D7A445568FFFF497169455A6E54FF4DFF586358724174FF475AFF49586C6F50FF755730FF4D565865FF446F5745FF776E31FF616A664E53FF5242FF445275417067FF77FF364C32564F3869FFFF7449437576614439FFFF6672335764714CFF31FF707454443851FF3563FF6257687276FF6D4748FF57387732FF324F674CFF68536BFF4B4F75654BFF7461FF736854557463FF4EFF4E66396E48416DFFFF314655656E774B4DFFFF354E474135374EFF75FF434474525A65FF436AFF3835477464FF4F3162FF366F3032FF47324F74FF553453FF664F696B39FF5777FF747436365430FF4AFF32546573673877FFFF7358324E7277696BFFFF56514D396B4A74FF54FF4B445A435761FF5169FF4541444577FF636D58FF497A6344FF6B427578FF585061FF6F58384D52FF795AFF47677070554CFF59FF70305731336D5AFFFF6E574C374C57494FFFFF434E6A70576354FF4CFF586754495341FF595AFF515A387731FF514A47FF44366533FF526D6C79FF663741FF5830487443FF3232FF38587149536BFF4FFF666A666476424EFFFF5278594952617153FFFF456551756B6B76FF48FF596957713879FF576AFF7577723656FF7A6F4CFF72387741FF77306835FF623441FF6C76747432FF3342FF675270567231FF72FF3236645A717445FFFF346838343778314BFFFF306C674E654873FF32FF35347A743036FF5962FF53666E6847FF7A764DFF485A544EFF6348356DFF76656EFF566C446778FF4658FF363538465A43FF78FF42664679593938FFFF554C4C4475374B67FFFF574A3934527363FF49FF414B36313270FF3537FF496B643164FF626E69FF55444575FF39706E5AFF4E4B50FF395375394DFF6236FF486C724F6F57FF4CFF56594973615950FFFF6864376264674F77FFFF516E6361396B6CFF6FFF303338454552FF3645FF7032507072FF4D4F4BFF55626439FF52776238FF456D33FF4F46633248FF7357FF6E5165723053FF67FF596D6978556677FFFF386B486D564E374AFFFF65664462376651FF64FF773349655037FF356AFF41356E5332FF346E66FF70595355FF3363676DFF596442FF5072784C4BFF794EFF30363344587AFF63FF4E735967527346FFFF57627173444C696DFFFF6E71616E487647FF49FF4E4836304575FF6277FF4F4C6E416DFF6E796BFF4B487974FF55434543FF525439FF5056617A6CFF466CFF6D636E697467FF47FF62546947315644FFFF35435A37526F6245FFFF65685632386274FF31FF684D336D686FFF6867FF333952784AFF636463FF56667775FF784B4141FF535973FF6A36315779FF744DFF646D5A4B5A75FF64FF65423156535647FFFF426139596E464648FFFF596F38767A6269FF33FF4A6155446936FF6769FF7772505448FF476862FF4D315130FF4278415AFF653942FF4154436A51FF6242FF586A45736249FF78FF65534936363057FFFF703469646D4A4352FFFF514D72504B3333FF44FF455730396270FF3077FF4247556230FF657841FF4F5A4646FF67577455FF6F3176FF334E784A46FF3965FF354679447A59FF63FF36714A41646766FFFF624F000000000000FFF900000000000000F8800000000027B8D50008", - // "7480000000000000FF6E5F698000000000FF0000100138613730FF32366438FF2D6266FF36612D3432FF3366FF2D623066612DFF61FF62393938373665FFFF6133633051516467FFFF47736650616C6EFF37FF6564766E7130FF5851FF554B704635FF765876FF6D786166FF61455658FF7A7650FF4B396B4A31FF7775FF6D4365763157FF78FF394E5530503842FFFF584632544531704FFFFF56327530475039FF78FF35764B346F74FF6244FF4F54657378FF736757FF6A6F6744FF58364472FF63356BFF73544C6154FF6461FF333239327548FF59FF6A3068624E4E62FFFF5A72413070464E4BFFFF30334F4C737874FF59FF506651567530FF7057FF7A5234514BFF67794DFF326A3038FF75645748FF75726DFF487A356B4DFF5067FF737A74435434FF6AFF43496A35306775FFFF39566E597772374CFFFF694B3746784531FF54FF377944796954FF4664FF706859526EFF763132FF35427249FF3077514BFF353230FF6B58686C6DFF5233FF644B497A6433FF46FF664E3450596D55FFFF7579335A4759584CFFFF7442364830324BFF54FF366D31627272FF3854FF4C57374368FF4B4B5AFF3561644DFF7A443145FF704362FF73634C5053FF5962FF356D646D3569FF70FF46306373615743FFFF353177795A693859FFFF38375537736D4EFF63FF323336394145FF4C7AFF5274786471FF424244FF6E684932FF77735463FF595A56FF6D4D000000FC0000FD8000000000205B3A0008", - // "7480000000000000FF6E5F698000000000FF0000100139383764FF65316161FF2D6434FF66362D3436FF3836FF2D616164622DFF64FF33346465633961FFFF36353664664D7A6EFFFF36577064566E35FF7AFF5A386C76356AFF4F6AFF4348614370FF546D68FF67687A50FF334F7859FF656E6CFF6E73444959FF5A62FF553871764B4EFF38FF50776A716C574DFFFF383331334A583839FFFF494C4139427544FF68FF5154584E4663FF3539FF7842576F43FF423554FF39746161FF645A6972FF375655FF524C737331FF386BFF52677168436EFF42FF3457566E6E6267FFFF515A5258505A7036FFFF62674F54697264FF6FFF616E70394546FF506BFF5171373470FF765842FF4A67654CFF65465046FF396155FF6F76533349FF5048FF7034394F7A43FF4DFF4A7369666B4279FFFF334A47474D655965FFFF6D623935784E4EFF35FF5555416A6766FF5269FF744A746273FF79394CFF77717959FF32464330FF726878FF626D30466AFF4A34FF4F6A646C4E49FF75FF6742634E467A76FFFF435A383668726D6DFFFF3737384C545572FF68FF314974594A50FF7039FF72764F4A38FF325677FF69724968FF6B484A35FF57766AFF5548396F4FFF6653FF53496E427746FF6AFF35774F53544B44FFFF4153385366634F6FFFFF6C6B7039737A62FF39FF50634E756E4BFF4335FF5132377830FF634469FF587A5070FF63326547FF474362FF676F794B48FF4A4AFF74616E744F33FF68FF67657950613045FFFF4531794736777A79FFFF6D7A314D626779FF55FF5537774B4346FF305AFF4675764156FF43674FFF34623753FF706F3768FF736357FF7A61646753FF4834FF6A50474A596FFF6BFF48326242764175FFFF68754B524B353737FFFF79346B556B4732FF36FF445065326C7AFF7A7AFF5A54496D5AFF376B30FF3043306AFF75563841FF536257FF4F337A3450FF3745FF4C506430546FFF6CFF675A307177416AFFFF354B7766397A7071FFFF64335A6C335148FF63FF416454395A32FF7636FF3478627874FF77324EFF556F3669FF6962704DFF735034FF3165595962FF5747FF5457316E4571FF51FF634B6753336E51FFFF486F3752517A7A65FFFF4F31626F497A6BFF37FF6B633061736DFF5A6AFF535A527A36FF514D30FF54374333FF486D364AFF5A4665FF626A35626DFF724AFF745557306B72FF56FF6F4E5141616479FFFF7847677879695333FFFF71525457396836FF59FF6F6741704251FF4938FF4C69697335FF373036FF56563844FF704B4D48FF734F34FF37356A7537FF7162FF794E34747934FF74FF4E526841663770FFFF4C70664E77794164FFFF48466A4E543377FF4AFF63385A413656FF724AFF4155585648FF4D7754FF64637631FF61593462FF647677FF7A6341744AFF6C71FF4A44794B4459FF7AFF5A664A4961414EFFFF336C5A3066304661FFFF4E445654537244FF5AFF30764F343438FF3941FF38576A4355FF444F4CFF7650756EFF6E376568FF684330FF574B483156FF7166FF596D4E374869FF66FF6A3178796C7556FFFF515470566C446C35FFFF574C433567686EFF34FF5567566B446CFF4875FF4959657934FF467678FF68746A67FF50635765FF725A74FF735378384FFF484CFF665451347676FF43FF78576E64463248FFFF62417A636B713346FFFF6B454A63597978FF49FF515058533975FF7839FF386D70757AFF557347FF30783871FF53614433FF724270FF6271664650FF6A74FF517757324E6DFF49FF304B3468475351FFFF34464F594E6A3743FFFF46533344665476FF4FFF37465051484CFF3171FF4874423676FF534738FF4A625064FF36365263FF484270FF38664D7A6EFF3657FF7064566E357AFF5AFF386C76356A4F6AFFFF4348614370546D68FFFF67687A50334F78FF59FF656E6C6E7344FF4959FF5A62553871FF764B4EFF3850776AFF716C574DFF383331FF334A583839FF494CFF413942754468FF51FF54584E46633539FFFF7842576F43423554FFFF39746161645A69FF72FF375655524C73FF7331FF386B526771FF68436EFF42345756FF6E6E6267FF515A52FF58505A7036FF6267FF4F546972646FFF61FF6E70394546506BFFFF5171373470765842FFFF4A67654C654650FF46FF3961556F7653FF3349FF5048703439FF4F7A43FF4D4A7369FF666B4279FF334A47FF474D655965FF6D62FF3935784E4E35FF55FF55416A67665269FFFF744A74627379394CFFFF77717959324643FF30FF726878626D30FF466AFF4A344F6A64FF6C4E49FF75674263FF4E467A76FF435A38FF3668726D6DFF3737FF384C54557268FF31FF4974594A507039FFFF72764F4A38325677FFFF697249686B484AFF35FF57766A554839FF6F4FFF665353496EFF427746FF6A35774FFF53544B44FF415338FF5366634F6FFF6C6BFF7039737A6239FF50FF634E756E4B4335FFFF5132377830634469FFFF587A5070633265FF47FF474362676F79FF4B48FF4A4A74616EFF744F33FF68676579FF50613045FF453179FF4736777A79FF6D7AFF314D62677955FF55FF37774B4346305AFFFF467576415643674FFFFF34623753706F37FF68FF7363577A6164FF6753FF48346A5047FF4A596FFF6B483262FF42764175FF68754BFF524B353700FE0000FD80000000000BC2B80008", - // "7480000000000000FF6E5F698000000000FF0000100161363638FF32333562FF2D6136FF30662D3437FF6433FF2D396466662DFF39FF32653336383536FFFF6438326647743758FFFF66767538344869FF49FF307154745267FF5238FF5861395970FF5A6B37FF384E574FFF6167526EFF413336FF3674584254FF7476FF6F704F466677FF78FF47463546384143FFFF6B52453032434277FFFF555333746D6130FF6BFF556848426242FF5367FF3479327654FF78384BFF635A4368FF4F336F71FF63386DFF3679475A47FF4646FF345137555673FF52FF6837554671656BFFFF4D61666B49557675FFFF53695335526254FF6CFF376538566E4AFF5151FF514977434BFF77426BFF4453534DFF33636172FF71324EFF4F4F384E6AFF7848FF4C78477A6733FF74FF6A656646713831FFFF734C613470636472FFFF4842504D365362FF47FF6433726D6657FF6B53FF4E5067436DFF347A4BFF7A746C67FF6F506174FF533275FF5768653854FF684EFF39564B523058FF5AFF6C486553656C50FFFF78694D586342514CFFFF566973576C5430FF6EFF624D41666E42FF5574FF644C434345FF777263FF71456673FF50344536FF587873FF7731346230FF6158FF356741716955FF31FF54366D384D7A62FFFF397053484C435567FFFF5777416673677AFF33FF484B55354E47FF5545FF6A4D4F3857FF353442FF37686C37FF5A45704BFF386242FF6D70475778FF6572FF654B7A356379FF6FFF3975597347616FFFFF4873434266785637FFFF446132624B5A66FF32FF62526D6F4233FF5158FF4C6539666BFF506B49FF48363751FF6D444F42FF616132FF4752506252FF4866FF66654B57485AFF54FF4D56784E77496FFFFF337A38796A617A37FFFF62465538444362FF4AFF33534E345545FF4332FF34356E4B50FF635875FF55476356FF64693171FF757736FF34494F4F39FF7641FF646A6F57654CFF4AFF6B465971657774FFFF364A7751455A506DFFFF4B627873485173FF50FF534533766E4BFF6531FF4A3335444BFF456338FF42335674FF7335494CFF4B4970FF556357316CFF3435FF34456E6B3174FF4EFF515A6130624E68FFFF4F4C4E67686B6977FFFF37674548633346FF59FF71637038474AFF7979FF41444A7664FF534875FF4363646CFF78566C39FF416356FF534F454C32FF7A5AFF5A436F304E4CFF73FF4941794D584D65FFFF49414745794F726EFFFF3176446C33316AFF54FF683667615149FF7351FF4D5166486AFF556D4FFF546F516EFF314C3075FF784E58FF74476C3843FF305AFF476762437454FF38FF62555643596945FFFF30534C3467364B73FFFF69475353447844FF59FF323650455446FF5452FF6E696B697AFF737778FF74684466FF58503863FF695839FF4477714D63FF5A64FF6D4F70323650FF38FF6F36523155365AFFFF614D55674C504C54FFFF4D67376366444CFF72FF385147425074FF614AFF5679474169FF50536CFF6A324872FF59514376FF44674FFF4365765344FF4133FF6E414E635965FF6CFF31546258626F79FFFF656F6C71654F6354FFFF74477846453834FF34FF325671693866FF4648FF664E4A6577FF4D5441FF47423751FF48676352FF65326AFF354E654672FF474EFF475076534E4EFF53FF4B6F6850447043FFFF4866527746333574FFFF496C4343327656FF77FF434E6F4F3366FF7473FF4535664B38FF316473FF47384C32FF6E747A4FFF4E5533FF57776A5732FF6777FF756C33545A68FF46FF4A5533784B7644FFFF756A676E76505632FFFF35484C4A6B6954FF4DFF35636E4B3749FF3238FF7A616D4C69FF6D6A53FF50454834FF397A4B65FF317048FF3447743758FF6676FF753834486949FF30FF71547452675238FFFF58613959705A6B37FFFF384E574F616752FF6EFF413336367458FF4254FF74766F704FFF466677FF78474635FF46384143FF6B5245FF3032434277FF5553FF33746D61306BFF55FF68484262425367FFFF347932765478384BFFFF635A43684F336FFF71FF63386D367947FF5A47FF4646345137FF555673FF52683755FF4671656BFF4D6166FF6B49557675FF5369FF53355262546CFF37FF6538566E4A5151FFFF514977434B77426BFFFF4453534D336361FF72FF71324E4F4F38FF4E6AFF78484C7847FF7A6733FF746A6566FF46713831FF734C61FF3470636472FF4842FF504D36536247FF64FF33726D66576B53FFFF4E5067436D347A4BFFFF7A746C676F5061FF74FF533275576865FF3854FF684E39564BFF523058FF5A6C4865FF53656C50FF78694DFF586342514CFF5669FF73576C54306EFF62FF4D41666E425574FFFF644C434345777263FFFF71456673503445FF36FF587873773134FF6230FF6158356741FF716955FF3154366DFF384D7A62FF397053FF484C435567FF5777FF416673677A33FF48FF4B55354E475545FFFF6A4D4F3857353442FFFF37686C375A4570FF4BFF3862426D7047FF5778FF6572654B7AFF356379FF6F397559FF7347616FFF487343FF4266785637FF4461FF32624B5A6632FF62FF526D6F42335158FFFF4C6539666B506B49FFFF483637516D444FFF42FF616132475250FF6252FF486666654BFF57485AFF544D5678FF4E77496FFF337A38FF796A617A37FF6246FF55384443624AFF33FF534E3455454332FFFF34356E4B50635875FFFF55476356646931FF71FF75773634494FFF4F39FF7641646A6FFF57654CFF4A6B4659FF71657774FF364A77FF51455A506DFF4B62FF787348517350FF53FF4533766E4B6531FFFF4A3335444B456338FFFF42335674733549FF4CFF4B4970556357FF316CFF343534456EFF6B3174FF4E515A61FF30624E68FF4F4C4EFF67686B6977FF3767FF454863334659FF71FF637038474A7979FFFF41444A7664534875FFFF4363646C78566CFF39FF416356534F45FF4C00FE0000000000FA800000000011D6A30008", - // "7480000000000000FF6E5F698000000000FF0000100161616132FF66333061FF2D3464FF62322D3464FF6235FF2D613031632DFF62FF32623035643863FFFF32646234346B6748FFFF43366438767175FF39FF466E3657444DFF6656FF717A567033FF326678FF4B437A49FF6946644BFF64345AFF724D75396AFF6276FF773646717073FF4FFF50434967777931FFFF5630466B63686942FFFF746A554A306279FF74FF557061687532FF6478FF4947765A45FF5A6575FF69644F31FF6431546AFF42464BFF5A7433536AFF7A69FF7342774F5467FF4EFF676A74574F3545FFFF4C69784F43534E64FFFF49306678564A33FF41FF373643524445FF504DFF6851594F4EFF595233FF68566B66FF4F48766CFF477079FF3261763179FF386EFF6C517A685246FF30FF596C6262517772FFFF6E787855356D674AFFFF35524F46304733FF56FF397539715133FF4448FF6F314A4249FF6E376FFF32444662FF30327867FF755A33FF7A6E41414DFF4A63FF575877547537FF72FF73456B47647031FFFF346E477962465939FFFF46764470624E33FF47FF377373616275FF7164FF744F737351FF6B446DFF4C464377FF35525877FF5A3978FF6B59756774FF4F4FFF58433575416AFF42FF6E4C596F61354CFFFF466875356651476FFFFF6E314B466B7271FF45FF737177726952FF5537FF7759704758FF78474BFF6A50386EFF7A305770FF58416BFF5366327230FF4B45FF69415A547330FF4DFF4E67504E414639FFFF7942676478356C72FFFF48686E557A7335FF68FF7A685034486CFF5236FF6E76595A51FF6B7771FF78496639FF717A3654FF743777FF583636437AFF5A50FF4C5778314630FF65FF5A793151687736FFFF396A616578723955FFFF6A583432736E45FF64FF70656334676CFF4E70FF5532464136FF314F77FF336E6739FF53376948FF53364BFF6865786C6DFF7451FF78344E573173FF52FF486B7052346954FFFF4D66304453624F33FFFF777A4232764A6DFF4DFF3376444A7137FF4C6CFF726F6D6669FF33526DFF38394534FF345A7A32FF637972FF544D327439FF7752FF6E7250665039FF59FF4844335A576D6EFFFF66684863394D3768FFFF6D627763723975FF34FF67716B656F30FF6342FF7569387A66FF66795AFF76707330FF5A4E6A65FF455A68FF6937503554FF356EFF764B3865554BFF6FFF30306D544C7943FFFF4349564F51436F54FFFF32764330485875FF72FF32734676546CFF7941FF475578544FFF777559FF6846517AFF6A7A754BFF6E4846FF5A3850644FFF6658FF78584253784EFF6BFF6F6742366B7A74FFFF6277527759526B52FFFF457A387232714FFF75FF6E3174573151FF5955FF3852506151FF773161FF4D6E316FFF57314E66FF71397AFF6953414354FF3344FF44744F73524FFF67FF31566646343054FFFF4662354B4C474949FFFF694F494B695233FF71FF483533787674FF724DFF6369616B53FF713958FF4A314F47FF36575151FF414434FF6C766B5861FF6847FF78643547706CFF34FF75413945527275FFFF4D42306D754D4A49FFFF69624531456B72FF34FF514344443333FF547AFF59304D4447FF673977FF7278704CFF724B3773FF363557FF6B4C6A7634FF516DFF4E5274513162FF31FF37533652494352FFFF69486A316D646133FFFF536B6A5A653743FF4EFF596953594A61FF757AFF484D553062FF4E7137FF5A777876FF4B69616BFF395A6AFF694A44426EFF4E63FF343650423671FF71FF62596B5650684CFFFF6E6D4A7857674653FFFF5853464A42796BFF49FF374A367A514FFF5035FF6D754D5732FF49784BFF3655646FFF616E496FFF397774FF50346B6748FF4336FF643876717539FF46FF6E3657444D6656FFFF717A567033326678FFFF4B437A49694664FF4BFF64345A724D75FF396AFF6276773646FF717073FF4F504349FF67777931FF563046FF6B63686942FF746AFF554A30627974FF55FF70616875326478FFFF4947765A455A6575FFFF69644F31643154FF6AFF424600000000FF0000F90000000000FA80000000002821C10008", - // "7480000000000000FF6E5F698000000000FF0000100161616132FF66333061FF2D3464FF62322D3464FF6235FF2D613031632DFF62FF32623035643863FFFF32646234346B6748FFFF43366438767175FF39FF466E3657444DFF6656FF717A567033FF326678FF4B437A49FF6946644BFF64345AFF724D75396AFF6276FF773646717073FF4FFF50434967777931FFFF5630466B63686942FFFF746A554A306279FF74FF557061687532FF6478FF4947765A45FF5A6575FF69644F31FF6431546AFF42464BFF5A7433536AFF7A69FF7342774F5467FF4EFF676A74574F3545FFFF4C69784F43534E64FFFF49306678564A33FF41FF373643524445FF504DFF6851594F4EFF595233FF68566B66FF4F48766CFF477079FF3261763179FF386EFF6C517A685246FF30FF596C6262517772FFFF6E787855356D674AFFFF35524F46304733FF56FF397539715133FF4448FF6F314A4249FF6E376FFF32444662FF30327867FF755A33FF7A6E41414DFF4A63FF575877547537FF72FF73456B47647031FFFF346E477962465939FFFF46764470624E33FF47FF377373616275FF7164FF744F737351FF6B446DFF4C464377FF35525877FF5A3978FF6B59756774FF4F4FFF58433575416AFF42FF6E4C596F61354CFFFF466875356651476FFFFF6E314B466B7271FF45FF737177726952FF5537FF7759704758FF78474BFF6A50386EFF7A305770FF58416BFF5366327230FF4B45FF69415A547330FF4DFF4E67504E414639FFFF7942676478356C72FFFF48686E557A7335FF68FF7A685034486CFF5236FF6E76595A51FF6B7771FF78496639FF717A3654FF743777FF583636437AFF5A50FF4C5778314630FF65FF5A793151687736FFFF396A616578723955FFFF6A583432736E45FF64FF70656334676CFF4E70FF5532464136FF314F77FF336E6739FF53376948FF53364BFF6865786C6DFF7451FF78344E573173FF52FF486B7052346954FFFF4D66304453624F33FFFF777A4232764A6DFF4DFF3376444A7137FF4C6CFF726F6D6669FF33526DFF38394534FF345A7A32FF637972FF544D327439FF7752FF6E7250665039FF59FF4844335A576D6EFFFF66684863394D3768FFFF6D627763723975FF34FF67716B656F30FF6342FF7569387A66FF66795AFF76707330FF5A4E6A65FF455A68FF6937503554FF356EFF764B3865554BFF6FFF30306D544C7943FFFF4349564F51436F54FFFF32764330485875FF72FF32734676546CFF7941FF475578544FFF777559FF6846517AFF6A7A754BFF6E4846FF5A3850644FFF6658FF78584253784EFF6BFF6F6742366B7A74FFFF6277527759526B52FFFF457A387232714FFF75FF6E3174573151FF5955FF3852506151FF773161FF4D6E316FFF57314E66FF71397AFF6953414354FF3344FF44744F73524FFF67FF31566646343054FFFF4662354B4C474949FFFF694F494B695233FF71FF483533787674FF724DFF6369616B53FF713958FF4A314F47FF36575151FF414434FF6C766B5861FF6847FF78643547706CFF34FF75413945527275FFFF4D42306D754D4A49FFFF69624531456B72FF34FF514344443333FF547AFF59304D4447FF673977FF7278704CFF724B3773FF363557FF6B4C6A7634FF516DFF4E5274513162FF31FF37533652494352FFFF69486A316D646133FFFF536B6A5A653743FF4EFF596953594A61FF757AFF484D553062FF4E7137FF5A777876FF4B69616BFF395A6AFF694A44426EFF4E63FF343650423671FF71FF62596B5650684CFFFF6E6D4A7857674653FFFF5853464A42796BFF49FF374A367A514FFF5035FF6D754D5732FF49784BFF3655646FFF616E496FFF397774FF50346B6748FF4336FF643876717539FF46FF6E3657444D6656FFFF717A567033326678FFFF4B437A49694664FF4BFF64345A724D75FF396AFF6276773646FF717073FF4F504349FF67777931FF563046FF6B63686942FF746AFF554A30627974FF55FF70616875326478FFFF4947765A455A6575FFFF69644F31643154FF6AFF424600000000FF0000F90000000000FA80000000002821C10008", - // "7480000000000000FF6E5F698000000000FF0000100162343433FF35613234FF2D3933FF30352D3430FF6237FF2D616236382DFF31FF34386137373836FFFF3731323077746254FFFF48687641495734FF65FF4F4F4A513079FF4E30FF615147564AFF777948FF49715350FF7A4C336EFF6A6E68FF36676C7071FF4B39FF644E4C355869FF55FF4B765878323437FFFF714539413152436AFFFF36433151696564FF79FF6E4F636F754EFF466FFF4569487936FF467841FF71354877FF6C4A5646FF437539FF513964456FFF5663FF58456C323148FF34FF4E57677A776974FFFF6234774152465363FFFF48726E6A4E7A59FF7AFF734345306E79FF4F44FF533868654BFF696444FF67525155FF74573969FF665856FF66724C4C6DFF4846FF4A7242326C35FF76FF6E78334D646B50FFFF62357A6F4A754835FFFF346F7533724E6DFF44FF415050325572FF5174FF79494E5950FF764537FF4C727371FF67456D47FF334C61FF56794B6962FF3031FF43675275724EFF6BFF6E7A7A33655A53FFFF4F634F474C7A4638FFFF44674B38396769FF52FF4C657841586BFF4A32FF4557623237FF363179FF6D766678FF4A615272FF665261FF6B69496F78FF4474FF305859776A35FF52FF55445161615650FFFF354D4A796A56566EFFFF48567275706737FF6FFF463759633253FF4966FF53776E5262FF546147FF7659566EFF41624669FF4C7830FF4B6F4F7365FF5074FF426959586638FF69FF566E505A546275FFFF574C536D66634B71FFFF776F676E6B4E7AFF72FF473568435068FF316FFF4B6B43544DFF59694FFF4F71726DFF72567633FF614466FF654E6F4A56FF3574FF6157324F446BFF78FF577A41716F4965FFFF3962485233416639FFFF4E684B574F716EFF37FF61544A446238FF7368FF3458717232FF777A44FF65615742FF66626E6BFF723652FF5379565359FF6232FF333571487745FF4AFF69544B55694849FFFF474858356879456CFFFF4A7937576D6B53FF5AFF497679634479FF5269FF5445797855FF674D6DFF49686231FF5152506EFF495963FF4A6E4E7870FF324EFF4447745A546AFF68FF3743595175644BFFFF7A6A5A594D5A6568FFFF51624F5A4A326EFF39FF576A7A554475FF6E67FF4F51556E34FF616773FF33375556FF55627461FF4C4F37FF347766367AFF6445FF7A576C575A71FF36FF625149466C6541FFFF5571494233624B50FFFF76505A5242504BFF77FF3237686E7343FF4B6FFF38714B6470FF6D556EFF34514569FF62625238FF314B38FF7438795855FF6E31FF666B39374938FF6CFF70426A724A7A39FFFF5A4D704C7059624EFFFF663776376C3361FF6DFF486870315234FF5268FF58724E4A54FF356B4FFF4155626CFF52316C37FF587046FF446F627770FF4E73FF594A38326F45FF74FF57696C41636939FFFF78305576617A7861FFFF6A6F4F49677054FF58FF565A36673752FF3139FF5845305238FF573932FF64486B47FF57563255FF574D49FF6E4B487357FF4267FF6A34746F4B4EFF34FF65363146305649FFFF6773447556677157FFFF32486239733954FF65FF4D424F305443FF774FFF554F5A5244FF725643FF6A753049FF55543230FF4E6858FF63546E3131FF577AFF4932446D6537FF34FF76514541766273FFFF7349394736414C45FFFF47684D39613369FF72FF33534F6F356CFF666AFF7439713830FF67704FFF494C364FFF484C7961FF487A6BFF3949786169FF7663FF314739754874FF34FF6D6C6A4B6A4351FFFF30476D6F4C507064FFFF336B4179386B76FF4EFF3369334D7456FF664BFF7251585561FF4C7834FF37695353FF646C744DFF554465FF3577746254FF4868FF764149573465FF4FFF4F4A5130794E30FFFF615147564A777948FFFF497153507A4C33FF6EFF6A6E6836676CFF7071FF4B39644E4CFF355869FF554B7658FF78323437FF714539FF413152436AFF3643FF315169656479FF6EFF4F636F754E466FFFFF4569487936467841FFFF713548776C4A56FF46FF437539513964FF456FFF566358456CFF323148FF344E5767FF7A776974FF623477FF4152465363FF4872FF6E6A4E7A597AFF73FF4345306E794F44FFFF533868654B696444FFFF67525155745739FF69FF66585666724CFF4C6DFF48464A7242FF326C35FF766E7833FF4D646B50FF62357AFF6F4A754835FF346FFF7533724E6D44FF41FF50503255725174FFFF79494E5950764537FFFF4C72737167456DFF47FF334C6156794BFF6962FF3031436752FF75724EFF6B6E7A7AFF33655A53FF4F634FFF474C7A4638FF4467FF4B3839676952FF4CFF657841586B4A32FFFF4557623237363179FFFF6D7666784A6152FF72FF6652616B6949FF6F78FF4474305859FF776A35FF52554451FF61615650FF354D4AFF796A56566EFF4856FF72757067376FFF46FF37596332534966FFFF53776E5262546147FFFF7659566E416246FF69FF4C78304B6F4FFF7365FF5074426959FF586638FF69566E50FF5A546275FF574C53FF6D66634B71FF776FFF676E6B4E7A72FF47FF3568435068316FFFFF4B6B43544D59694FFFFF4F71726D725676FF33FF614466654E6FFF4A56FF3574615732FF4F446BFF78577A41FF716F4965FF396248FF5233416639FF4E68FF4B574F716E37FF61FF544A4462387368FFFF3458717232777A44FFFF6561574266626EFF6BFF723652537956FF5359FF6232333571FF487745FF4A69544BFF55694849FF474858FF356879456CFF4A79FF37576D6B535AFF49FF76796344795269FFFF5445797855674D6DFFFF49686231515250FF6EFF4959634A6E4EFF7870FF324E444774FF5A546AFF68374359FF5175644BFF7A6A5AFF594D5A6568FF5162FF4F5A4A326E39FF57FF6A7A5544756E67FFFF4F51550000000000FFFA00000000000000F880000000003283460008", - // "7480000000000000FF6E5F698000000000FF0000100163316638FF39626566FF2D6232FF63312D3430FF6339FF2D626531652DFF61FF30383264353437FFFF3036393453687133FFFF39514472723631FF6FFF6A5249503066FF736BFF6472363364FF626268FF656F7A77FF41615948FF616646FF7554656B62FF4E67FF5A54437A3779FF7AFF4E625A52366E67FFFF513970463578414BFFFF4555614A505958FF43FF4C4773325351FF6F52FF425662336CFF6D4A59FF5A796750FF30454166FF735665FF4E4269686BFF384FFF674461354C34FF47FF65714D4F666758FFFF544B63555636696EFFFF36307A56394557FF57FF473577776456FF646FFF503257354FFF415043FF44324764FF72764B45FF6A4451FF395071356BFF3054FF4F425152767AFF4BFF36475570394F66FFFF496C303748595252FFFF4E665058726944FF71FF4C69644D4347FF4358FF51566D7847FF4A6137FF6E786A6FFF79634B77FF733246FF79746E4D62FF4B6CFF74513768654EFF7AFF73483034435763FFFF586B375841694941FFFF64523776484E74FF33FF437943345A45FF4737FF6A68507A4AFF62647AFF78683039FF794A3147FF46566EFF5332517074FF6751FF4F74774A5657FF6FFF694D3143667267FFFF62584969697A4255FFFF7376545A476579FF7AFF6E5350797A6BFF3855FF614D787234FF46754CFF5A414F57FF72466E63FF795A6DFF7947495368FF7965FF71583134594AFF51FF39633258505576FFFF4A4E506F646F4134FFFF4D4A5876346D69FF53FF504163436B50FF4942FF4445564B73FF676442FF646A366FFF72387157FF325232FF7257777179FF6862FF41556358636EFF64FF7944516A6E7569FFFF6362446754333476FFFF484E70776E5850FF30FF626241474E74FF6267FF52374E3743FF647946FF6143565AFF4F4B774CFF564637FF4D35797638FF3034FF455347425A36FF6EFF6E415068303964FFFF31726D6C334D6433FFFF41764F4D716A6DFF6CFF307452416A6FFF3955FF5052735543FF683457FF39633473FF4A42346CFF574447FF433850374FFF7572FF5A6D4648374FFF39FF5152677A4F3845FFFF6E4E7946797A6265FFFF443162624F3157FF78FF35364964755AFF7649FF48694E5855FF6F4970FF42563871FF656F6C49FF746C42FF6F78343364FF6B72FF5A4F39693050FF54FF34645061733037FFFF56785A7A37594C37FFFF7A653135684830FF70FF637270636D69FF6E37FF537974777AFF735236FF61464F68FF38766B56FF646F58FF747450737AFF5057FF6D5946645A30FF31FF62566F6271554EFFFF764E7A41676D4156FFFF48484A4E385256FF32FF354A6E6F6C6FFF3649FF613869445AFF523574FF4B423464FF4C356666FF675163FF584D6A3945FF4A57FF38363432394DFF4EFF304A5758534139FFFF394866354F59514AFFFF4843785A466D6AFF38FF354F31414379FF4C78FF3952504557FF444E34FF55313168FF67384757FF396D79FF6A414F564FFF456BFF794636546756FF45FF4A415855675773FFFF4D6467564D58447AFFFF4F50504A524A7AFF54FF30656F337862FF4E62FF575532676EFF756534FF68436554FF4C446958FF6A5064FF64734E7053FF6F4EFF616732747656FF79FF476A554F5A3130FFFF496B795866397944FFFF754656666F4E6AFF65FF58736F544962FF3537FF714A664569FF577863FF4D735956FF5A764465FF317656FF3962797046FF5979FF424F51484F49FF72FF626661386C6952FFFF396E30636F324758FFFF616C616A343456FF53FF7A6A74314346FF3662FF637449726DFF614E70FF5155354FFF64747454FF623531FF6B53687133FF3951FF44727236316FFF6AFF5249503066736BFFFF6472363364626268FFFF656F7A77416159FF48FF616646755465FF6B62FF4E675A5443FF7A3779FF7A4E625AFF52366E67FF513970FF463578414BFF4555FF614A50595843FF4CFF47733253516F52FFFF425662336C6D4A59FFFF5A796750304541FF66FF7356654E4269FF686BFF384F674461FF354C34FF4765714DFF4F666758FF544B00FF0000000000F90000FD80000000002D4E780008", - // "7480000000000000FF6E5F698000000000FF0000100163666463FF66343537FF2D3035FF38652D3435FF3537FF2D616431332DFF63FF33613161373065FFFF346566614B6B4536FFFF384F4663346768FF5AFF353467574C4AFF5935FF314C525637FF71626EFF6A61526EFF35635456FF484942FF3134395855FF584DFF435745536952FF4EFF58326C3174416AFFFF7449444341473057FFFF4272716A53306BFF4AFF36375A584C64FF6D6FFF754F4F4977FF427055FF6E776776FF78634E4EFF686870FF566D587A65FF6774FF59556D764B6EFF36FF42623639317877FFFF7434366C55646542FFFF63374A6436706BFF62FF564D51486C33FF306CFF6B7052314EFF505745FF4241766BFF69726942FF4F4D6FFF7A6251466AFF7272FF72767946474EFF44FF66797162723854FFFF6E326E4D52386978FFFF5645786A444B71FF6CFF697A424E7933FF626FFF73764B354EFF356C4AFF57623753FF39766931FF455230FF6969514C58FF6C4FFF74324C656174FF79FF6B484C74573862FFFF6154324D48547748FFFF57563464685967FF45FF65505541674DFF4D58FF334E695232FF4F3737FF4941514CFF43496648FF4E534EFF5835324F50FF4558FF4F4174443569FF52FF34685441783647FFFF3276634F6578786DFFFF6A5A646F594931FF42FF317755576643FF4B70FF785277667AFF676A6EFF54445850FF35325945FF7A7338FF724B72634BFF4671FF696459674A71FF75FF33726238424A79FFFF4F6C436C5353584BFFFF77473471545355FF6CFF4373506C4E68FF556BFF4D66644771FF39706FFF4B504746FF6F32726EFF534643FF374845766DFF4737FF306175575274FF41FF64624C374E5A74FFFF44563830346D6A76FFFF7A69417A795572FF4AFF3372716B3651FF4138FF746B436B6EFF7A4B50FF4B6F5539FF617A6854FF434B52FF4E31314663FF4A78FF5A3144456846FF54FF534F4F6E703434FFFF30614E6956575937FFFF656F6F616A3632FF6BFF526C664F7238FF5641FF53444F4C44FF456B35FF5452466CFF504D564EFF766D43FF7657436B6FFF7669FF4834476A4F4BFF63FF30377556785264FFFF5635464446443563FFFF316D7563787352FF53FF377831617768FF6C34FF6437505A4DFF717936FF3864686FFF46724953FF444234FF304B66456DFF7138FF68736862385AFF59FF524F446776654CFFFF7467636F467A435AFFFF363535776B6667FF71FF4B6148514341FF7275FF707730336BFF62424FFF324F3561FF304E4366FF614250FF3648625375FF7773FF785A7262716DFF41FF71563847376A6AFFFF6975317644477336FFFF617A364F72347AFF44FF6B6C7874744EFF5A71FF375A70487AFF76516AFF4D38644CFF4F69616DFF44414FFF4958585971FF6D6CFF354441596C52FF48FF644D706B56454FFFFF6C45684971764F36FFFF6147517A6F3357FF77FF7672574D776DFF726BFF6B61644F50FF70596FFF6E433535FF575A367AFF4E5175FF6167313052FF3464FF6E447079414EFF47FF46725931475447FFFF5032425078776A61FFFF6A6367704A7054FF44FF324E355A716FFF3733FF4C47356E37FF365230FF77374A47FF32717848FF586969FF3437303561FF5763FF6D4C385A504AFF70FF7563354D526B58FFFF77485473394D7354FFFF3077785445334AFF73FF74466F54314BFF6863FF636C5A4672FF717768FF6A757874FF4F387662FF55546AFF594D6B6C43FF4957FF766A6B4B4237FF35FF576F4D6C795077FFFF3753493063506F6FFFFF66496771787450FF77FF5952575A5A56FF356BFF4153614461FF41324FFF78775651FF4C526955FF343951FF474B6B4536FF384FFF46633467685AFF35FF3467574C4A5935FFFF314C52563771626EFFFF6A61526E356354FF56FF484942313439FF5855FF584D435745FF536952FF4E58326CFF3174416AFF744944FF4341473057FF4272FF716A53306B4AFF36FF375A584C646D6FFFFF754F4F4977427055FFFF6E77677678634EFF4EFF686870566D58FF7A65FF677459556DFF764B6EFF36426236FF39317877FF743436FF6C55646542FF6337FF4A6436706B62FF56FF4D51486C33306CFFFF6B7052314E505745FFFF4241766B697269FF42FF4F4D6F7A6251FF466AFF7272727679FF46474EFF44667971FF62723854FF6E326EFF4D52386978FF0000FF000000000000F700FE80000000002DE78C0008", - // "7480000000000000FF6E5F698000000000FF0000100164646137FF64643962FF2D6132FF32342D3464FF3864FF2D383635662DFF32FF62383262303263FFFF63353764564A4F74FFFF53474D466B7830FF59FF4E6662575762FF6C4EFF6A62535A47FF464A51FF334B5A55FF524F6D79FF394254FF524E343852FF4834FF693649706752FF5AFF30373671697433FFFF5647314900000000FFFB00000000000000F880000000001CD3F30008", - // "7480000000000000FF6E5F698000000000FF0000100165623939FF66663762FF2D3039FF65372D3461FF6566FF2D393265642DFF38FF34613130643631FFFF3030303359754470FFFF31426A6A53454EFF4BFF4A4E6A4A6F48FF7875FF3354767375FF6E5779FF666D6938FF6B726B42FF467148FF6658513250FF4A45FF7266484E3349FF67FF5A7A504B4E3349FFFF6F55657041596654FFFF4668565A4D6F6EFF47FF443668737163FF5162FF5A58774D77FF6B7963FF4970454BFF5A585658FF674D75FF706D5A3275FF514EFF786F485A3769FF61FF47666737357457FFFF537A545249635844FFFF314865444A4755FF44FF563956704D59FF7833FF494C523652FF37597AFF4D636D35FF7A366558FF355445FF79534D3146FF4945FF7A3746685132FF35FF704B36446A7731FFFF4657654856555041FFFF486C5075786639FF6EFF77394336454AFF5044FF66715A3745FF4C4D6AFF50567056FF33473572FF6C7674FF7434367238FF7648FF686844597938FF79FF4E543968666C5AFFFF5A6F514F4D47707AFFFF4A333942396878FF36FF36684242794FFF4456FF53326E7768FF617778FF6E304561FF31674762FF506342FF6A56516231FF3935FF386470515935FF6AFF69536E79434656FFFF486B614263777A43FFFF7174464C575164FF45FF545954675073FF706FFF6E7048516DFF524630FF58586672FF6337674BFF676959FF534E716D72FF3179FF793843784A75FF4FFF34345564774C34FFFF717A78594B5A4F55FFFF38384153585537FF74FF424F45414234FF4657FF506E7A4951FF444844FF714A3230FF73704B44FF514934FF6D30435376FF4935FF77724F793055FF43FF7A6E46424D3044FFFF4B306F4F72414556FFFF626456646B6967FF73FF4D45356A4A6EFF656BFF4B4D724652FF4A537AFF4A4A7033FF3466334EFF505157FF5754535534FF7070FF78704761624DFF5AFF64585337516349FFFF6E32634C47557766FFFF47383444525039FF66FF663833626E6AFF6B56FF4139623654FF63634BFF64475342FF6F6F6B50FF713055FF64576F7A59FF6873FF77774B346C46FF41FF39506B57423773FFFF7131336833434431FFFF6E523667493145FF70FF484C34547A58FF6365FF30306A7853FF51704EFF4A776832FF59636771FF7A5657FF6866386A5AFF4F48FF6F5438593169FF6FFF5A5A5445756E51FFFF6268346730753858FFFF6A676B6274674BFF63FF47696543744CFF7335FF343658536FFF5A6D74FF4D6E4250FF68705656FF43764BFF4C34435556FF4956FF437262475174FF6CFF4D647958776E6AFFFF6C584F574E745566FFFF70376F596F4345FF51FF5A496D347978FF7170FF6C48496468FF644439FF706E664FFF4C6F7A65FF7A7A59FF3854755876FF396FFF3741637A6A4DFF68FF71567863305370FFFF6562767576733768FFFF706F61786D3667FF74FF586B41723368FF5730FF5461464977FF4F4F50FF39485058FF34447230FF466134FF576A625057FF5371FF4E665543304FFF45FF4F35697972584DFFFF31574D7844507758FFFF42313152704D4BFF31FF395769484730FF4942FF4F48626F4CFF31626EFF63696950FF686D5777FF693739FF72644E5876FF3554FF3765516D3536FF71FF6C5144465A3558FFFF58617071384E414FFFFF4A784A35727075FF78FF57694A753558FF7971FF444252676DFF393962FF4D717245FF39725667FF794852FF3273526F46FF5371FF526147576448FF4BFF544D366B4B4331FFFF30784D6E79475A34FFFF614B6E3170486FFF6FFF676865615567FF6D74FF6A75615153FF374733FF51556F37FF634D5278FF787668FF6E59754470FF3142FF6A6A53454E4BFF4AFF4E6A4A6F487875FFFF33547673756E5779FFFF666D69386B726BFF42FF467148665851FF3250FF4A45726648FF4E3349FF675A7A50FF4B4E3349FF6F5565FF7041596654FF4668FF565A4D6F6E47FF44FF36687371635162FFFF5A58774D776B7963FFFF4970454B5A5856FF58FF674D75706D5AFF3275FF514E786F48FF5A3769FF61476667FF37357457FF537A54FF5249635844FF3148FF65444A475544FF56FF3956704D597833FFFF494C52365237597AFFFF4D636D357A3665FF58FF35544579534DFF3146FF49457A3746FF685132FF35704B36FF446A7731FF465765FF4856555041FF486CFF50757866396EFF77FF394336454A5044FFFF66715A37454C4D6AFFFF50567056334735FF72FF6C7674743436FF7238FF7648686844FF597938FF794E5439FF68666C5AFF5A6F51FF4F4D47707AFF4A33FF394239687836FF36FF684242794F4456FFFF53326E7768617778FFFF6E304561316747FF62FF5063426A5651FF6231FF3935386470FF515935FF6A69536EFF79434656FF486B61FF4263777A43FF7174FF464C57516445FF54FF5954675073706FFFFF6E7048516D524630FFFF58586672633767FF4BFF676959534E71FF6D72FF3179793843FF784A75FF4F343455FF64774C34FF717A78FF594B5A4F55FF3838FF415358553774FF42FF4F454142344657FFFF506E7A4951444844FFFF714A323073704BFF44FF5149346D3043FF5376FF493577724FFF793055FF437A6E46FF424D3044FF4B306FFF4F72414556FF6264FF56646B696773FF4DFF45356A4A6E656BFFFF4B4D7246524A537AFFFF4A4A7033346633FF4EFF505157575453FF5534FF7070787047FF61624DFF5A645853FF37516349FF6E3263FF4C47557766FF4738FF344452503966FF66FF3833626E6A6B56FFFF413962365463634BFFFF644753426F6F6BFF50FF71305564576FFF7A59FF687377774BFF346C46FF4139506BFF57423773FF713133FF6833434431FF6E52FF366749314570FF48FF4C34547A586365FFFF30306A785351704EFFFF4A776832596367FF71FF7A5657686638FF6A5AFF4F486F5438FF593169FF6F5A5A54FF45756E51FF626834FF6730753858FF6A67FF6B6274674B63FF47FF696543744C7335FFFF343658536F5A6D74FFFF4D6E4250687056FF56FF43764B4C3443FF5556FF4956437262FF475174FF6C4D6479FF58776E6AFF6C584FFF574E745566FF7037FF6F596F434551FF5AFF496D3479787170FFFF6C48496468644439FFFF706E664F4C6F7AFF65FF7A7A59385475FF5876FF396F374163FF7A6A4DFF68715678FF63305370FF656276FF7576733768FF706FFF61786D366774FF58FF6B417233685730FFFF54614649774F4F50FFFF39485058344472FF30FF466134576A62FF5057FF53714E6655FF43304FFF454F3569FF7972584DFF31574DFF7844507758FF4231FF3152704D4B31FF00FF00000000000000F7FF0000000000000000F7800000000018F45D0008", - // "7480000000000000FF6E5F698000000000FF0000100166393765FF32373365FF2D3234FF61342D3464FF6637FF2D386332632DFF30FF32383964663865FFFF6561623378306D6CFFFF437A376C6E555AFF6DFF6E4639345739FF357AFF416F537775FF586367FF414B7471FF65346D33FF386C38FF673145344AFF7776FF6A4C384D4964FF48FF797174467A7838FFFF58785758674F5667FFFF4E776D74637852FF63FF314E62594E39FF6B61FF6B72343930FF4A7569FF30337763FF6D477042FF35614CFF3338534A58FF4550FF377774485439FF44FF514F6573335231FFFF577A41696A494B74FFFF6631467A683148FF6FFF30504B793668FF3455FF5030756168FF766C4EFF79366773FF37514737FF5A4D6CFF477657546BFF794EFF62757A423861FF7AFF59445953724362FFFF5572676A51785467FFFF354434494D4950FF4FFF3967785A3773FF706AFF4769363631FF435839FF46333747FF536D5361FF524F63FF714D547577FF3167FF4E6C4B51416EFF48FF49517879724F57FFFF4C76396432746930FFFF6842444743346DFF4EFF465948754A43FF5548FF4C61374D48FF745647FF67785973FF5A713746FF774142FF3442433758FF5479FF474969706534FF64FF624D4A30365661FFFF30534D5777456551FFFF39633548447475FF76FF3567695A5973FF7669FF5479653058FF317676FF73465A71FF34536C35FF64676AFF354F336937FF4934FF754C31305856FF71FF614B343844504EFFFF334D7632754F4754FFFF6D483162636750FF47FF6772574C5843FF5863FF6164434234FF4E5250FF7631556DFF6255386BFF594267FF4A56636537FF6568FF41685A304249FF5AFF63646D5163366CFFFF386C455732346D33FFFF4962687A304766FF79FF6D4669674C4BFF4141FF616D617452FF46426FFF6633554CFF4E594155FF4B7A6FFF3666467071FF7967FF6E553032384DFF4AFF6A735674574F6DFFFF4257594174697972FFFF63706D4D357A47FF48FF50746E4F3375FF376AFF674E4D4D38FF685231FF41477168FF67384635FF6B4A76FF686E654B55FF4154FF5A504D6E6753FF77FF415442565A7252FFFF584437455763594EFFFF5A6B784C6F3744FF75FF314A744A7147FF7561FF7970646F50FF534364FF77327565FF5A4A6236FF67596AFF5256346C6AFF417AFF483378375274FF74FF33626562316974FFFF503974574F6F3165FFFF4677464A4A4457FF4AFF486C66344F44FF3159FF5362424861FF616D77FF44424D44FF69327176FF574B55FF6D37557852FF6B58FF6172744D3372FF63FF624B66624E4A64FFFF42594B76794E4147FFFF7276676B446A41FF4BFF384767386D57FF4479FF5368476130FF514942FF77767951FF77674571FF426F6CFF4973683141FF4578FF7A6133523161FF55FF465A563252636CFFFF7764577573484167FFFF6733796F7A4D46FF4DFF396C51594C7AFF4979FF4F714C4444FF47596AFF37346444FF4C585A43FF786C66FF6766573559FF6636FF70785A557055FF6EFF715076754A6F59FFFF5646697A416E4E37FFFF70577971654E55FF71FF377378516568FF5071FF6730667642FF426358FF6F397777FF445A4861FF6A4236FF6E71416F50FF4342FF784471336175FF66FF6E76794A304A53FFFF6768727273354D4CFFFF3332386D6F6958FF41FF726752624C32FF7265FF4763474451FF6F6D56FF6A62495AFF47316239FF385873FF5038545573FF6474FF697533626A48FF72FF424C326C32506EFFFF674B4D634A665265FFFF564B6868684A54FF5AFF6633724B7455FF7131FF7039786E78FF623542FF65344961FF55337879FF475547FF7178306D6CFF437AFF376C6E555A6DFF6EFF4639345739357AFFFF416F537775586367FFFF414B747165346DFF33FF386C38673145FF344AFF77766A4C38FF4D4964FF48797174FF467A7838FF587857FF58674F5667FF4E77FF6D7463785263FF31FF4E62594E396B61FFFF6B723439304A7569FFFF303377636D4770FF42FF35614C333853FF4A58FF4550377774FF485439FF44514F65FF73335231FF577A41FF696A494B74FF6631FF467A6831486FFF30FF504B7936683455FFFF5030756168766C4EFFFF79366773375147FF37FF5A4D6C477657FF546BFF794E62757AFF423861FF7A594459FF53724362FF557267FF6A51785467FF3544FF34494D49504FFF39FF67785A3773706AFFFF4769363631435839FFFF46333747536D53FF61FF524F63714D54FF7577FF31674E6C4BFF51416EFF48495178FF79724F57FF4C7639FF6432746930FF6842FF444743346D4EFF46FF5948754A435548FFFF4C61374D48745647FFFF677859735A7137FF46FF774142344243FF3758FF5479474969FF706534FF64624D4AFF30365661FF30534DFF5777456551FF3963FF354844747576FF35FF67695A59737669FFFF5479653058317676FFFF73465A7134536CFF35FF64676A354F33FF6937FF4934754C31FF305856FF71614B34FF3844504EFF334D76FF32754F4754FF6D48FF316263675047FF67FF72574C58435863FFFF61644342344E5250FFFF7631556D625538FF6BFF5942674A5663FF6537FF656841685AFF304249FF5A63646DFF5163366CFF386C45FF5732346D33FF4962FF687A30476679FF6DFF4669674C4B4141FFFF616D61745246426FFFFF6633554C4E5941FF55FF4B7A6F366646FF7071FF79676E5530FF32384DFF4A6A7356FF74574F6DFF425759FF4174697972FF6370FF6D4D357A4748FF50FF746E4F3375376AFFFF674E4D4D38685231FFFF41477168673846FF35FF6B4A76686E65FF4B55FF41545A504DFF6E6753FF77415442FF565A7252FF584437FF455763594EFF5A6BFF784C6F374475FF31FF4A744A71477561FFFF7970646F50534364FFFF773275655A4A62FF36FF67596A525634FF6C6AFF417A483378FF375274FF74336265FF62316974FF503974FF574F6F3165FF4677FF464A4A44574AFF48FF6C66344F443159FFFF5362424861616D77FFFF44424D44693271FF76FF574B556D3755FF7852FF6B58617274FF4D3372FF63624B66FF624E4A64FF42594BFF76794E4147FF7276FF676B446A414BFF38FF4767386D574479FFFF5368476130514942FFFF77767951776745FF71FF426F6C497368FF3141FF45787A6133FF523161FF55465A56FF3252636CFF776457FF7573484167FF6733FF796F7A4D464DFF39FF6C51594C7A4979FFFF4F714C444447596AFFFF373464444C585AFF43FF786C66676657FF3559FF663670785AFF557055FF6E715076FF754A6F59FF564669FF7A416E4E37FF7057FF7971654E5571FF37FF73785165685071FFFF6730667642426358FFFF6F397777445A48FF61FF6A42366E7141FF6F50FF4342784471FF336175FF666E7679FF4A304A53FF676872FF7273354D4CFF3332FF386D6F695841FF72FF6752624C000000FCFF0000000000000000F78000000000319DA90008", - // // ERROR! "7480000000000000FF6E5F698000000000FF0000100166666666FF66656339FF2D6237FF61362D3466FF3562FF2D626664312DFF38FF39383831373237FFFF3066393869487636FFFF61775877455570FF52FF7450746D3678FF4D63FF47386B4E79FF385665FF67505A31FF39474650FF33377AFF33656B5862FF7278FF6E62346D4D66FF50FF50566E446D4155FFFF384F766A64363651FFFF5547574B68704BFF62FF314462577264FF3541FF764F577569FF4C3249FF76507953FF79474141FF765645FF6965706B4CFF6173FF70456143636DFF44FF594A6F4B563254FFFF4E767433687A6D43FFFF704C786B544137FF56FF4A577A4E4957FF3669FF4E67694A56FF655A50FF48477267FF69725A64FF376642FF446B46756DFF7A63FF42726956666CFF73FF56537945416A48FFFF7A35314B57787343FFFF3945526C6B6551FF5AFF437364763570FF784BFF384E417472FF4D4246FF73494569FF59756157FF664661FF4230747945FF6943FF793948634178FF62FF754C42724D736EFFFF5865795A756E6735FFFF38704249663877FF42FF73763977324DFF6F73FF666B4D7250FF575A61FF76384448FF4B683174FF716452FF34466E7061FF656BFF654632635A57FF54FF547867575A7570FFFF65725572657A4766FFFF3778456B564854FF64FF546E67344D37FF5046FF3565574D77FF4F5A4BFF5472744CFF6C503067FF610000FF0000000000F80000FD80000000002C1CBD000800", - // } - // hexTexts := []string{ - // // ERROR! "7480000000000000FF6E5F698000000000FF0000120166666666FF66613838FF2D6533FF31372D3461FF6633FF2D383930332DFF36FF38383331373866FFFF646339617672767AFFFF7568587A324C67FF54FF324B6356456EFF5873FF666A4E3137FF453867FF53636653FF306B616AFF796A30FF74454D4E33FF5367FF42524D486648FF43FF356641667A4776FFFF3573366D4B715731FFFF72347568573271FF68FF303731387239FF6F77FF6832384E4CFF6C4D75FF30466973FF5A797664FF373266FF796C69304CFF794CFF743970554157FF62FF5A6B7055754B62FFFF6A764C6D32507531FFFF624A7043676D35FF36FF736F444A6F73FF4D79FF624D707967FF765133FF4968655AFF38454762FF797754FF537A783234FF4963FF633548453253FF6BFF6172374A733234FFFF7A79534B674B5136FFFF4C5A5363364970FF49FF73684C55544CFF6955FF43736E7277FF425857FF5A74676CFF38544268FF4A7943FF756D703436FF4864FF4C4B666B6B51FF78FF33553047744E54FFFF7441706747724471FFFF4238764F596F44FF38FF5643735A3343FF434CFF4169456175FF475942FF61387244FF32547258FF713874FF6B654B6874FF6C45FF477074666F41FF75FF3646496F513967FFFF617550354F774650FFFF4C65414B466776FF34FF5977544B7262FF6378FF637941394EFF535233FF57756D77FF74555362FF654F30FF4A32794243FF7349FF4E4F79503352FF55FF3633344E6E6775FFFF6C3553364A355958FFFF4875597A523846FF31FF335677364263FF5A51FF675556676AFF6D5442FF77354D57FF52456453FF4F6D65FF3742553157FF5357FF596B62695977FF36FF37756677566B4AFFFF4F774E3478786451FFFF3543775A5A3372FF53FF485951733050FF437AFF4B376F3748FF687350FF4A395438FF51626A7AFF396F4FFF7369574465FF7448FF503644634534FF72FF32556558645476FFFF4E4B444D45477730FFFF426E6553363637FF66FF304644595062FF4144FF4954587361FF34735AFF46744471FF75683431FF6B6157FF614F556143FF7743FF656F64334E6EFF4CFF776744584A3549FFFF6C6A566B54334D44FFFF57384442323756FF32FF6B6833576744FF3073FF376D503973FF626542FF736C504FFF396C5A55FF663976FF4455337555FF4D37FF4F316B514D35FF4BFF324E3658396665FFFF70576B4D37593831FFFF42537949506A70FF39FF6278586F4F78FF4C69FF6477324277FF69344BFF75374948FF76666452FF536242FF31695A5354FF4A78FF43426544414AFF55FF57377974594D32FFFF6C394D3767574A65FFFF796D36654D776FFF68FF664635445736FF5543FF306F305253FF72635AFF4F634C52FF47764F6FFF48374AFF54724E6D69FF4356FF5349306D6149FF4AFF796B356E385955FFFF4D5670564C534543FFFF7A4C5353635868FF6AFF567A50556248FF6A67FF613074794BFF363834FF65515975FF73706756FF6E6C35FF63424E4D6BFF455AFF4E6741633945FF75FF5952526C763039FFFF3361776E476D6A66FFFF6B57725133624FFF4BFF773631425345FF534BFF487A375234FF50594FFF445A4C49FF4C723443FF313042FF7676336837FF4C69FF4A5100000000FB00FE800000000004031F000800", - // // ERROR! "7480000000000000FF6E5F698000000000FF0000120166666666FF66636233FF2D3236FF63392D3435FF3534FF2D383036372DFF36FF33646231663863FFFF32336361646A7055FFFF7175656D5A4749FF51FF4C694F446548FF3073FF7741484C53FF487276FF67454E6CFF684C7166FF4F6435FF3444744C46FF4B56FF5A75424F6C50FF72FF6F6C764A376B48FFFF58795A4F4A473157FFFF67773536593335FF57FF557863663163FF6E78FF4154755A53FF363574FF486E7A73FF714A3931FF625A63FF6745534839FF4B34FF385161646462FF4CFF69417773306C39FFFF4C574B5A66496D6EFFFF696D484C626373FF63FF31627359515AFF4D38FF5A4B577064FF494365FF35354165FF49516542FF306F54FF47766F5263FF5230FF724565323731FF6FFF766E52355A3147FFFF4E5A6F4750387864FFFF44536B4163474CFF34FF57744B6C4B4AFF4D63FF366E526C56FF38354BFF38323530FF6352626EFF57724BFF7245573578FF5373FF316D36466543FF47FF727A57757A3648FFFF53416C464C766D70FFFF4E727A5A535362FF50FF50594A435A63FF7254FF6E6939757AFF766367FF4D43796FFF7831786CFF543679FF634D533961FF526DFF4362535A4147FF31FF42484F685A6F49FFFF50365664786B6D49FFFF42465068434550FF61FF347A58375268FF4667FF7369316C73FF643441FF63446F75FF454B415AFF383337FF56456C6E74FF6272FF6C3532614B63FF66FF6D5A576B635969FFFF7366493056476E57FFFF556A5750384348FF5AFF73354C423639FF7453FF626E654C77FF354432FF47306658FF5863625AFF35306EFF6D51637769FF4F49FF4A594B667939FF6CFF645233546B4E57FFFF5563393242467654FFFF664D7141367064FF50FF624455537630FF484AFF56696D7875FF6A4F4FFF4C793241FF6A384732FF6D7461FF6E38447146FF754BFF4D425A713231FF62FF474A4A4C364930FFFF6F6A766F6B785132FFFF54464C364D6A42FF41FF35496673666DFF756DFF41316D5170FF71484FFF76774F61FF6655636CFF736733FF4B30615467FF7A72FF7A4369506641FF35FF475A6D51323175FFFF54534C64754B7744FFFF5765594C374E33FF78FF4B4B49524163FF5042FF7049413463FF37436CFF46496B41FF70474135FF625754FF6132423151FF7479FF505341464236FF6BFF514D586E336853FFFF3577645350744667FFFF4669716C503670FF74FF425058534E45FF6765FF4947637155FF74536DFF59515463FF53356658FF506673FF41507A6266FF3071FF6467384B5A6CFF30FF7A614573555645FFFF554F424171546758FFFF684E4B67546B75FF68FF5A633069666EFF7147FF426E486A42FF70797AFF75776C39FF6C696D78FF336E34FF4C616D4A51FF3045FF58536B334771FF4EFF496A44364C7076FFFF4C347A635A423230FFFF70355846376D68FF68FF306576616F71FF7945FF7846685265FF4D7A57FF6A725933FF7A645136FF467342FF506742736CFF4746FF666772323469FF5AFF4A505752337662FFFF6A32706362494242FFFF3250366F475778FF55FF6B544352745AFF5844FF345541524BFF456654FF35335A62FF4B77536EFF316E71FF6258455562FF4B5AFF564B6C676978FF6DFF6B4F525563714CFFFF63716E4E53377963FFFF4268306A797863FF39FF464958337A58FF3846FF705636574BFF424D45FF79663154FF44375773FF736976FF7034745257FF6C36FF56744B686D56FF45FF4F526C6C544143FFFF726D6A717A497369FFFF6E35566D30674EFF34FF334653436938FF364BFF4B4774334AFF30516BFF4C706257FF7A54494AFF796741FF4E646A7055FF7175FF656D5A474951FF4CFF694F4465483073FFFF7741484C53487276FFFF67454E6C684C71FF66FF4F6435344474FF4C46FF4B565A7542FF4F6C50FF726F6C76FF4A376B48FF58795AFF4F4A473157FF6777FF353659333557FF55FF78636631636E78FFFF4154755A53363574FFFF486E7A73714A39FF31FF625A63674553FF4839FF4B34385161FF646462FF4C694177FF73306C39FF4C574BFF5A66496D6EFF696DFF484C62637363FF31FF627359515A4D38FFFF5A4B577064494365FFFF35354165495165FF42FF306F5447766FFF5263FF5230724565FF323731FF6F766E52FF355A3147FF4E5A6FFF4750387864FF4453FF6B4163474C34FF57FF744B6C4B4A4D63FFFF366E526C5638354BFFFF38323530635262FF6EFF57724B724557FF3578FF5373316D36FF466543FF47727A57FF757A3648FF53416CFF464C766D70FF4E72FF7A5A53536250FF50FF594A435A637254FFFF6E6939757A766367FFFF4D43796F783178FF6CFF543679634D53FF3961FF526D436253FF5A4147FF3142484FFF685A6F49FF503656FF64786B6D49FF4246FF506843455061FF34FF7A583752684667FFFF7369316C73643441FFFF63446F75454B41FF5AFF38333756456CFF6E74FF62726C3532FF614B63FF666D5A57FF6B635969FF736649FF3056476E57FF556AFF57503843485AFF73FF354C4236397453FFFF626E654C77354432FFFF47306658586362FF5AFF35306E6D5163FF7769FF4F494A594BFF667939FF6C645233FF546B4E57FF556300FF0000000000F90000FD80000000001BB8C2000800", - // // ERROR! "7480000000000000FF6E5F698000000000FF0000120166666666FF66656339FF2D6237FF61362D3466FF3562FF2D626664312DFF38FF39383831373237FFFF3066393869487636FFFF61775877455570FF52FF7450746D3678FF4D63FF47386B4E79FF385665FF67505A31FF39474650FF33377AFF33656B5862FF7278FF6E62346D4D66FF50FF50566E446D4155FFFF384F766A64363651FFFF5547574B68704BFF62FF314462577264FF3541FF764F577569FF4C3249FF76507953FF79474141FF765645FF6965706B4CFF6173FF70456143636DFF44FF594A6F4B563254FFFF4E767433687A6D43FFFF704C786B544137FF56FF4A577A4E4957FF3669FF4E67694A56FF655A50FF48477267FF69725A64FF376642FF446B46756DFF7A63FF42726956666CFF73FF56537945416A48FFFF7A35314B57787343FFFF3945526C6B6551FF5AFF437364763570FF784BFF384E417472FF4D4246FF73494569FF59756157FF664661FF4230747945FF6943FF793948634178FF62FF754C42724D736EFFFF5865795A756E6735FFFF38704249663877FF42FF73763977324DFF6F73FF666B4D7250FF575A61FF76384448FF4B683174FF716452FF34466E7061FF656BFF654632635A57FF54FF547867575A7570FFFF65725572657A4766FFFF3778456B564854FF64FF546E67344D37FF5046FF3565574D77FF4F5A4BFF5472744CFF6C503067FF610000FF0000000000F80000FD80000000002C1CBD000800", - // } - // hexTexts := []string{ - // // 3 start keys - // "7480000000000000FF6E5F698000000000FF0000130130303030FF31393762FF2D3431FF33622D3431FF6531FF2D383734632DFF64FF30393934373132FFFF6661363079773247FFFF31433758776A77FF33FF7645716B5174FF594BFF4B6F517A32FF704E35FF364F4A6DFF54366F43FF463642FF6B3465596FFF5161FF707147764B42FF59FF32666D4C6C6A6DFFFF6659665966773555FFFF7576626B6D324AFF61FF674A324D4D6BFF4D4CFF66556C4F43FF787653FF356A686BFF4F635376FF484661FF4678664B45FF4C66FF474930503347FF42FF48475A57526C6BFFFF733547486E736376FFFF377A444D563132FF6CFF77655853526BFF316CFF6C546E4259FF357561FF6A6D6535FF66587370FF54516BFF4339365234FF7265FF303877524577FF37FF566F6459306936FFFF614A443637776333FFFF787A4F396D6B37FF4EFF62424A4D7176FF7743FF717668584FFF6B6362FF53696865FF70486C74FF597670FF6A63494139FF4948FF576935775269FF43FF38367167643970FFFF334C76434261736BFFFF51666131377352FF49FF476A74706838FF6A72FF79797A5744FF665A36FF65576430FF316B6B6AFF4A5048FF5768334454FF3547FF596D31356941FF79FF74347335566D76FFFF4A36476266714534FFFF4F4B673330637AFF34FF4A4731644447FF6935FF4E48526A6DFF523247FF68416B71FF546D3250FF6F616CFF7441497947FF504BFF364557313345FF71FF486D576B6B6F75FFFF66716A67664A5978FFFF59484A70514533FF73FF6A6B49465556FF6543FF6A76325436FF33616FFF35495661FF51324637FF696C7AFF6E334E5953FF426FFF4B6263457375FF6DFF3956354B683767FFFF7A49726851635134FFFF4D4A4E4176666BFF69FF5971535A6B53FF6136FF4A62544446FF49706BFF76444851FF55427234FF474F4EFF7459517677FF4F45FF6D4539716932FF55FF684E6F346A4E64FFFF323449436C305756FFFF664146314A4B79FF38FF6B774C53324EFF6C5AFF33306C6F34FF7A6A64FF52504338FF73714559FF685958FF636D683868FF654AFF743057435764FF6FFF3736705A416959FFFF5A59516251395545FFFF79315843775546FF6FFF573862627368FF4B59FF75734A5072FF613543FF3253687AFF5A475769FF49556FFF4F526A5377FF5659FF76396A30374BFF44FF46586C68564E34FFFF65693658494A4248FFFF4C323070394959FF44FF565568795A7AFF5437FF7A4432665AFF413168FF524E4777FF39593057FF374A65FF6D55516448FF3736FF6473496D4D73FF61FF5337396A7A6F64FFFF3974596742324137FFFF384D4E526A6675FF53FF4B4562733755FF7463FF4A61727563FF655161FF6D703647FF524B4D69FF365876FF7A4549316DFF5053FF646841557763FF59FF345A7677543063FFFF67304B516D326642FFFF5344745773556EFF43FF463241456578FF7765FF79556F6F31FF7A4F58FF51763053FF4F665169FF595239FF5759424C4CFF6D6AFF6B3334703335FF52FF5034774B504762FFFF4E4A796746473433FFFF59646F6A386A48FF30FF6E3348565672FF7266FF4D3371446EFF334B48FF38504C6BFF396B516CFF445373FF504648724BFF7575FF464E35483554FF67FF477A3132316F35FFFF5137587574556A4FFFFF69566A466E757AFF51FF4B4254366131FF5439FF424E73354AFF774573FF486D334CFF706F3473FF506446FF33485A434BFF7751FF30534471634CFF6EFF5A335244586549FFFF50717537654C4342FFFF524A4D48536844FF42FF784435356744FF4531FF4F74723742FF57615AFF4A337547FF41655053FF73644FFF4779773247FF3143FF3758776A7733FF76FF45716B5174594BFFFF4B6F517A32704E35FFFF364F4A6D54366FFF43FF4636426B3465FF596FFF5161707147FF764B42FF5932666DFF4C6C6A6DFF665966FF5966773555FF7576FF626B6D324A61FF67FF4A324D4D6B4D4CFFFF66556C4F43787653FFFF356A686B4F6353FF76FF484661467866FF4B45FF4C66474930FF503347FF4248475AFF57000000FC000000FC800000000000A7400008", - // "7480000000000000FF6E5F698000000000FF0000130130303030FF30323231FF2D6464FF34662D3438FF3237FF2D626564382DFF37FF33336330393531FFFF3566373374753037FFFF42365A5730764BFF4BFF467952426577FF3965FF4E32714442FF6A3164FF5861557AFF6C4E736AFF645769FF4557594A33FF466FFF476F5352716EFF39FF4A546235765971FFFF324849706B514344FFFF537273487A6652FF68FF314E70506132FF4A6DFF4A69626441FF496663FF50394563FF6F4A6331FF426D68FF713353547AFF504BFF634938614A35FF30FF4C584D3971486AFFFF61796A724D5A5731FFFF7645674850784BFF43FF6D6959734F75FF3857FF7159675768FF4A4431FF63494F36FF44497053FF75314DFF3968574C6CFF5169FF30524274366AFF46FF544D5951536F4AFFFF6E4C4E6E53574F42FFFF61534A31734539FF45FF6C7159587669FF3957FF483447697AFF477177FF7A624330FF6A707359FF456931FF5A62656956FF6D56FF63316D376132FF41FF78797669486676FFFF66446F78754F464BFFFF64646851514442FF43FF593961464177FF6D68FF6634566239FF717A6EFF57643473FF33766478FF383979FF7866553275FF4247FF474141694466FF47FF62484A42475079FFFF6F307364594D7839FFFF66376251616843FF59FF664133334949FF4A47FF6335585062FF545158FF39566336FF59394D38FF385869FF4469545759FF4562FF336568785456FF45FF3636374B6C5279FFFF414A41374A436C35FFFF7558516751566EFF6BFF66316F646767FF5678FF575430486EFF436833FF41344B33FF53714E4EFF71445AFF524D6E6154FF4575FF70443659516EFF52FF7738776167694DFFFF7A62427633655449FFFF55677266307A73FF49FF4F4355427057FF5A6CFF494C6C596FFF777A77FF3859734BFF75314D73FF786653FF6F504E4963FF5946FF426E6633746AFF6AFF626E4A32756136FFFF624535696A395A77FFFF65786E527A554AFF69FF546D686C4B4BFF5663FF75676C3165FF4D7941FF35646E76FF32465943FF633650FF736E614B61FF4253FF533064595A78FF61FF39765871733542FFFF7031454E32385063FFFF6D41533054434DFF62FF563168517932FF7158FF654E59337AFF365A75FF6F657576FF77494E53FF4C3961FF574A776E64FF555AFF654531676C69FF39FF7A6A74766B3633FFFF396A596E30596837FFFF32784B6464626FFF65FF6E5038645741FF3076FF4D4E395663FF794A71FF31796F5AFF34727579FF70506AFF7876457267FF527AFF5376356C6165FF36FF50716B6B305030FFFF6252586556675A62FFFF61396D394F3266FF36FF6761754A564BFF6854FF6330317954FF486853FF48383471FF694A5955FF307861FF415736376DFF6566FF524546305843FF51FF64433736624F75FFFF74774B4E3654556EFFFF6C366B53704E66FF7AFF6D616748636FFF736DFF4E79544372FF6F6D36FF32725A39FF466A5736FF334269FF62466C5A6AFF7A64FF416962396A70FF46FF726E4D37635848FFFF394F54437154356EFFFF6562695842574DFF72FF685133795461FF395AFF616A353849FF38357AFF6E487A62FF6E454B53FF394C6CFF7746424936FF334EFF753472697931FF58FF716C6A4D496849FFFF4657526738636475FFFF7337754D4F7863FF47FF4A4F72685645FF4277FF684B465772FF305964FF66663166FF30524865FF32796CFF68426D5679FF3133FF7A37724C3555FF31FF4B6E4B52000000FCFF0000000000000000F780000000001B37E00008", - // "7480000000000000FF6E5F698000000000FF0000130130303030FF30323231FF2D6464FF34662D3438FF3237FF2D626564382DFF37FF33336330393531FFFF3566373374753037FFFF42365A5730764BFF4BFF467952426577FF3965FF4E32714442FF6A3164FF5861557AFF6C4E736AFF645769FF4557594A33FF466FFF476F5352716EFF39FF4A546235765971FFFF324849706B514344FFFF537273487A6652FF68FF314E70506132FF4A6DFF4A69626441FF496663FF50394563FF6F4A6331FF426D68FF713353547AFF504BFF634938614A35FF30FF4C584D3971486AFFFF61796A724D5A5731FFFF7645674850784BFF43FF6D6959734F75FF3857FF7159675768FF4A4431FF63494F36FF44497053FF75314DFF3968574C6CFF5169FF30524274366AFF46FF544D5951536F4AFFFF6E4C4E6E53574F42FFFF61534A31734539FF45FF6C7159587669FF3957FF483447697AFF477177FF7A624330FF6A707359FF456931FF5A62656956FF6D56FF63316D376132FF41FF78797669486676FFFF66446F78754F464BFFFF64646851514442FF43FF593961464177FF6D68FF6634566239FF717A6EFF57643473FF33766478FF383979FF7866553275FF4247FF474141694466FF47FF62484A42475079FFFF6F307364594D7839FFFF66376251616843FF59FF664133334949FF4A47FF6335585062FF545158FF39566336FF59394D38FF385869FF4469545759FF4562FF336568785456FF45FF3636374B6C5279FFFF414A41374A436C35FFFF7558516751566EFF6BFF66316F646767FF5678FF575430486EFF436833FF41344B33FF53714E4EFF71445AFF524D6E6154FF4575FF70443659516EFF52FF7738776167694DFFFF7A62427633655449FFFF55677266307A73FF49FF4F4355427057FF5A6CFF494C6C596FFF777A77FF3859734BFF75314D73FF786653FF6F504E4963FF5946FF426E6633746AFF6AFF626E4A32756136FFFF624535696A395A77FFFF65786E527A554AFF69FF546D686C4B4BFF5663FF75676C3165FF4D7941FF35646E76FF32465943FF633650FF736E614B61FF4253FF533064595A78FF61FF39765871733542FFFF7031454E32385063FFFF6D41533054434DFF62FF563168517932FF7158FF654E59337AFF365A75FF6F657576FF77494E53FF4C3961FF574A776E64FF555AFF654531676C69FF39FF7A6A74766B3633FFFF396A596E30596837FFFF32784B6464626FFF65FF6E5038645741FF3076FF4D4E395663FF794A71FF31796F5AFF34727579FF70506AFF7876457267FF527AFF5376356C6165FF36FF50716B6B305030FFFF6252586556675A62FFFF61396D394F3266FF36FF6761754A564BFF6854FF6330317954FF486853FF48383471FF694A5955FF307861FF415736376DFF6566FF524546305843FF51FF64433736624F75FFFF74774B4E3654556EFFFF6C366B53704E66FF7AFF6D616748636FFF736DFF4E79544372FF6F6D36FF32725A39FF466A5736FF334269FF62466C5A6AFF7A64FF416962396A70FF46FF726E4D37635848FFFF394F54437154356EFFFF6562695842574DFF72FF685133795461FF395AFF616A353849FF38357AFF6E487A62FF6E454B53FF394C6CFF7746424936FF334EFF753472697931FF58FF716C6A4D496849FFFF4657526738636475FFFF7337754D4F7863FF47FF4A4F72685645FF4277FF684B465772FF305964FF66663166FF30524865FF32796CFF68426D5679FF3133FF7A37724C3555FF31FF4B6E4B52000000FCFF0000000000000000F780000000001B37E00008", - // // 3 end keys - // // ERROR! "7480000000000000FF6E5F698000000000FF0000130166666666FF66613838FF2D6533FF31372D3461FF6633FF2D383930332DFF36FF38383331373866FFFF646339617672767AFFFF7568587A324C67FF54FF324B6356456EFF5873FF666A4E3137FF453867FF53636653FF306B616AFF796A30FF74454D4E33FF5367FF42524D486648FF43FF356641667A4776FFFF3573366D4B715731FFFF72347568573271FF68FF303731387239FF6F77FF6832384E4CFF6C4D75FF30466973FF5A797664FF373266FF796C69304CFF794CFF743970554157FF62FF5A6B7055754B62FFFF6A764C6D32507531FFFF624A7043676D35FF36FF736F444A6F73FF4D79FF624D707967FF765133FF4968655AFF38454762FF797754FF537A783234FF4963FF633548453253FF6BFF6172374A733234FFFF7A79534B674B5136FFFF4C5A5363364970FF49FF73684C55544CFF6955FF43736E7277FF425857FF5A74676CFF38544268FF4A7943FF756D703436FF4864FF4C4B666B6B51FF78FF33553047744E54FFFF7441706747724471FFFF4238764F596F44FF38FF5643735A3343FF434CFF4169456175FF475942FF61387244FF32547258FF713874FF6B654B6874FF6C45FF477074666F41FF75FF3646496F513967FFFF617550354F774650FFFF4C65414B466776FF34FF5977544B7262FF6378FF637941394EFF535233FF57756D77FF74555362FF654F30FF4A32794243FF7349FF4E4F79503352FF55FF3633344E6E6775FFFF6C3553364A355958FFFF4875597A523846FF31FF335677364263FF5A51FF675556676AFF6D5442FF77354D57FF52456453FF4F6D65FF3742553157FF5357FF596B62695977FF36FF37756677566B4AFFFF4F774E3478786451FFFF3543775A5A3372FF53FF485951733050FF437AFF4B376F3748FF687350FF4A395438FF51626A7AFF396F4FFF7369574465FF7448FF503644634534FF72FF32556558645476FFFF4E4B444D45477730FFFF426E6553363637FF66FF304644595062FF4144FF4954587361FF34735AFF46744471FF75683431FF6B6157FF614F556143FF7743FF656F64334E6EFF4CFF776744584A3549FFFF6C6A566B54334D44FFFF57384442323756FF32FF6B6833576744FF3073FF376D503973FF626542FF736C504FFF396C5A55FF663976FF4455337555FF4D37FF4F316B514D35FF4BFF324E3658396665FFFF70576B4D37593831FFFF42537949506A70FF39FF6278586F4F78FF4C69FF6477324277FF69344BFF75374948FF76666452FF536242FF31695A5354FF4A78FF43426544414AFF55FF57377974594D32FFFF6C394D3767574A65FFFF796D36654D776FFF68FF664635445736FF5543FF306F305253FF72635AFF4F634C52FF47764F6FFF48374AFF54724E6D69FF4356FF5349306D6149FF4AFF796B356E385955FFFF4D5670564C534543FFFF7A4C5353635868FF6AFF567A50556248FF6A67FF613074794BFF363834FF65515975FF73706756FF6E6C35FF63424E4D6BFF455AFF4E6741633945FF75FF5952526C763039FFFF3361776E476D6A66FFFF6B57725133624FFF4BFF773631425345FF534BFF487A375234FF50594FFF445A4C49FF4C723443FF313042FF7676336837FF4C69FF4A5100000000FB00FE800000000004031F000800", - // // ERROR! "7480000000000000FF6E5F698000000000FF0000130166666666FF66636233FF2D3236FF63392D3435FF3534FF2D383036372DFF36FF33646231663863FFFF32336361646A7055FFFF7175656D5A4749FF51FF4C694F446548FF3073FF7741484C53FF487276FF67454E6CFF684C7166FF4F6435FF3444744C46FF4B56FF5A75424F6C50FF72FF6F6C764A376B48FFFF58795A4F4A473157FFFF67773536593335FF57FF557863663163FF6E78FF4154755A53FF363574FF486E7A73FF714A3931FF625A63FF6745534839FF4B34FF385161646462FF4CFF69417773306C39FFFF4C574B5A66496D6EFFFF696D484C626373FF63FF31627359515AFF4D38FF5A4B577064FF494365FF35354165FF49516542FF306F54FF47766F5263FF5230FF724565323731FF6FFF766E52355A3147FFFF4E5A6F4750387864FFFF44536B4163474CFF34FF57744B6C4B4AFF4D63FF366E526C56FF38354BFF38323530FF6352626EFF57724BFF7245573578FF5373FF316D36466543FF47FF727A57757A3648FFFF53416C464C766D70FFFF4E727A5A535362FF50FF50594A435A63FF7254FF6E6939757AFF766367FF4D43796FFF7831786CFF543679FF634D533961FF526DFF4362535A4147FF31FF42484F685A6F49FFFF50365664786B6D49FFFF42465068434550FF61FF347A58375268FF4667FF7369316C73FF643441FF63446F75FF454B415AFF383337FF56456C6E74FF6272FF6C3532614B63FF66FF6D5A576B635969FFFF7366493056476E57FFFF556A5750384348FF5AFF73354C423639FF7453FF626E654C77FF354432FF47306658FF5863625AFF35306EFF6D51637769FF4F49FF4A594B667939FF6CFF645233546B4E57FFFF5563393242467654FFFF664D7141367064FF50FF624455537630FF484AFF56696D7875FF6A4F4FFF4C793241FF6A384732FF6D7461FF6E38447146FF754BFF4D425A713231FF62FF474A4A4C364930FFFF6F6A766F6B785132FFFF54464C364D6A42FF41FF35496673666DFF756DFF41316D5170FF71484FFF76774F61FF6655636CFF736733FF4B30615467FF7A72FF7A4369506641FF35FF475A6D51323175FFFF54534C64754B7744FFFF5765594C374E33FF78FF4B4B49524163FF5042FF7049413463FF37436CFF46496B41FF70474135FF625754FF6132423151FF7479FF505341464236FF6BFF514D586E336853FFFF3577645350744667FFFF4669716C503670FF74FF425058534E45FF6765FF4947637155FF74536DFF59515463FF53356658FF506673FF41507A6266FF3071FF6467384B5A6CFF30FF7A614573555645FFFF554F424171546758FFFF684E4B67546B75FF68FF5A633069666EFF7147FF426E486A42FF70797AFF75776C39FF6C696D78FF336E34FF4C616D4A51FF3045FF58536B334771FF4EFF496A44364C7076FFFF4C347A635A423230FFFF70355846376D68FF68FF306576616F71FF7945FF7846685265FF4D7A57FF6A725933FF7A645136FF467342FF506742736CFF4746FF666772323469FF5AFF4A505752337662FFFF6A32706362494242FFFF3250366F475778FF55FF6B544352745AFF5844FF345541524BFF456654FF35335A62FF4B77536EFF316E71FF6258455562FF4B5AFF564B6C676978FF6DFF6B4F525563714CFFFF63716E4E53377963FFFF4268306A797863FF39FF464958337A58FF3846FF705636574BFF424D45FF79663154FF44375773FF736976FF7034745257FF6C36FF56744B686D56FF45FF4F526C6C544143FFFF726D6A717A497369FFFF6E35566D30674EFF34FF334653436938FF364BFF4B4774334AFF30516BFF4C706257FF7A54494AFF796741FF4E646A7055FF7175FF656D5A474951FF4CFF694F4465483073FFFF7741484C53487276FFFF67454E6C684C71FF66FF4F6435344474FF4C46FF4B565A7542FF4F6C50FF726F6C76FF4A376B48FF58795AFF4F4A473157FF6777FF353659333557FF55FF78636631636E78FFFF4154755A53363574FFFF486E7A73714A39FF31FF625A63674553FF4839FF4B34385161FF646462FF4C694177FF73306C39FF4C574BFF5A66496D6EFF696DFF484C62637363FF31FF627359515A4D38FFFF5A4B577064494365FFFF35354165495165FF42FF306F5447766FFF5263FF5230724565FF323731FF6F766E52FF355A3147FF4E5A6FFF4750387864FF4453FF6B4163474C34FF57FF744B6C4B4A4D63FFFF366E526C5638354BFFFF38323530635262FF6EFF57724B724557FF3578FF5373316D36FF466543FF47727A57FF757A3648FF53416CFF464C766D70FF4E72FF7A5A53536250FF50FF594A435A637254FFFF6E6939757A766367FFFF4D43796F783178FF6CFF543679634D53FF3961FF526D436253FF5A4147FF3142484FFF685A6F49FF503656FF64786B6D49FF4246FF506843455061FF34FF7A583752684667FFFF7369316C73643441FFFF63446F75454B41FF5AFF38333756456CFF6E74FF62726C3532FF614B63FF666D5A57FF6B635969FF736649FF3056476E57FF556AFF57503843485AFF73FF354C4236397453FFFF626E654C77354432FFFF47306658586362FF5AFF35306E6D5163FF7769FF4F494A594BFF667939FF6C645233FF546B4E57FF556300FF0000000000F90000FD80000000001BB8C2000800", - // // ERROR! "7480000000000000FF6E5F698000000000FF0000130166666666FF66656339FF2D6237FF61362D3466FF3562FF2D626664312DFF38FF39383831373237FFFF3066393869487636FFFF61775877455570FF52FF7450746D3678FF4D63FF47386B4E79FF385665FF67505A31FF39474650FF33377AFF33656B5862FF7278FF6E62346D4D66FF50FF50566E446D4155FFFF384F766A64363651FFFF5547574B68704BFF62FF314462577264FF3541FF764F577569FF4C3249FF76507953FF79474141FF765645FF6965706B4CFF6173FF70456143636DFF44FF594A6F4B563254FFFF4E767433687A6D43FFFF704C786B544137FF56FF4A577A4E4957FF3669FF4E67694A56FF655A50FF48477267FF69725A64FF376642FF446B46756DFF7A63FF42726956666CFF73FF56537945416A48FFFF7A35314B57787343FFFF3945526C6B6551FF5AFF437364763570FF784BFF384E417472FF4D4246FF73494569FF59756157FF664661FF4230747945FF6943FF793948634178FF62FF754C42724D736EFFFF5865795A756E6735FFFF38704249663877FF42FF73763977324DFF6F73FF666B4D7250FF575A61FF76384448FF4B683174FF716452FF34466E7061FF656BFF654632635A57FF54FF547867575A7570FFFF65725572657A4766FFFF3778456B564854FF64FF546E67344D37FF5046FF3565574D77FF4F5A4BFF5472744CFF6C503067FF610000FF0000000000F80000FD80000000002C1CBD000800", - // } - // hexTexts := []string{ - // // "get key boundary on subtask finished" - // "7480000000000000ff6e5f698000000000ff0000130130303030ff31366137ff2d3939ff64362d3463ff3762ff2d616536302dff32ff34633066393264ffff3965336442514965ffff6f634c69765653ff70ff725244676845ff704cff386c504377ff6a7441ff635a6746ff4e484f5aff786b55ff7150645a69ff7130ff4948674d3936ff66ff4c6462625a3955ffff4a7a716c544d5568ffff51794e6c783534ff74ff534359783258ff6630ff6d706b3763ff334342ff50736d6fff334c4745ff643146ff5a61577333ff354fff6f4d69584252ff79ff65556657795544ffff4d597a7039414969ffff61435559566472ff43ff4955686f3563ff4e30ff3147353678ff5a6b34ff57506732ff504a7a4cff467337ff3749457258ff4948ff694336675643ff77ff6f4f4444556f68ffff4b6858557135326fffff3861675a69706dff45ff64486d4d6169ff4169ff6e514a4f61ff723133ff61794737ff3275354dff32304aff7371495271ff3172ff6a6846536358ff77ff4657563666456affff4a5476664c4f444cffff6e7058686b5475ff53ff41585236796fff7743ff5851387a32ff63376cff68765346ff4f455555ff4e4567ff4779496b4eff444fff514261526f4bff4cff72547743783153ffff734e496d44576341ffff557654536f3754ff79ff6b6c786f6731ff4c50ff7677684d7aff654f4aff7654444aff514c6f4aff30386bff75334e4764ff6537ff756d63766748ff39ff705a4d3671637affff74334442574a3171ffff6e7a38526b5a69ff79ff3871676c7036ff7333ff5361635265ff61694cff31704631ff47436b54ff565774ff5130415835ff4d33ff316d744d6f38ff32ff4b31304c553658ffff313530626f333341ffff54506175507545ff5aff563556436669ff6845ff63744f5546ff446a52ff48735974ff61387969ff684d44ff6462515059ff5a49ff595171744550ff6fff4d365841624932ffff6e3937666646694cffff436b75715a6335ff31ff714f38423446ff7839ff355153554fff6b4b77ff326c7678ff42375a67ff625839ff68556c7777ff694fff647945677744ff31ff6934586f61724cffff4472565559484c75ffff646d30696a5165ff49ff686b3534364eff497aff7138435967ff79784aff76474238ff44796438ff304665ff6373515545ff6a37ff397657466878ff33ff514a6862755600feff0000000000000000f7800000000025b6ad0008", - // // ERROR! "7480000000000000ff6e5f698000000000ff0000130166666666ff66656339ff2d6237ff61362d3466ff3562ff2d626664312dff38ff39383831373237ffff3066393869487636ffff61775877455570ff52ff7450746d3678ff4d63ff47386b4e79ff385665ff67505a31ff39474650ff33377aff33656b5862ff7278ff6e62346d4d66ff50ff50566e446d4155ffff384f766a64363651ffff5547574b68704bff62ff314462577264ff3541ff764f577569ff4c3249ff76507953ff79474141ff765645ff6965706b4cff6173ff70456143636dff44ff594a6f4b563254ffff4e767433687a6d43ffff704c786b544137ff56ff4a577a4e4957ff3669ff4e67694a56ff655a50ff48477267ff69725a64ff376642ff446b46756dff7a63ff42726956666cff73ff56537945416a48ffff7a35314b57787343ffff3945526c6b6551ff5aff437364763570ff784bff384e417472ff4d4246ff73494569ff59756157ff664661ff4230747945ff6943ff793948634178ff62ff754c42724d736effff5865795a756e6735ffff38704249663877ff42ff73763977324dff6f73ff666b4d7250ff575a61ff76384448ff4b683174ff716452ff34466e7061ff656bff654632635a57ff54ff547867575a7570ffff65725572657a4766ffff3778456b564854ff64ff546e67344d37ff5046ff3565574d77ff4f5a4bff5472744cff6c503067ff610000ff0000000000f80000fd80000000002c1cbd000800", - // } - // hexTexts := []string{ - // // "close writer", all valid - // // minKey, maxKey - // "7480000000000000ff6e5f698000000000ff0000130130303030ff31366137ff2d3939ff64362d3463ff3762ff2d616536302dff32ff34633066393264ffff3965336442514965ffff6f634c69765653ff70ff725244676845ff704cff386c504377ff6a7441ff635a6746ff4e484f5aff786b55ff7150645a69ff7130ff4948674d3936ff66ff4c6462625a3955ffff4a7a716c544d5568ffff51794e6c783534ff74ff534359783258ff6630ff6d706b3763ff334342ff50736d6fff334c4745ff643146ff5a61577333ff354fff6f4d69584252ff79ff65556657795544ffff4d597a7039414969ffff61435559566472ff43ff4955686f3563ff4e30ff3147353678ff5a6b34ff57506732ff504a7a4cff467337ff3749457258ff4948ff694336675643ff77ff6f4f4444556f68ffff4b6858557135326fffff3861675a69706dff45ff64486d4d6169ff4169ff6e514a4f61ff723133ff61794737ff3275354dff32304aff7371495271ff3172ff6a6846536358ff77ff4657563666456affff4a5476664c4f444cffff6e7058686b5475ff53ff41585236796fff7743ff5851387a32ff63376cff68765346ff4f455555ff4e4567ff4779496b4eff444fff514261526f4bff4cff72547743783153ffff734e496d44576341ffff557654536f3754ff79ff6b6c786f6731ff4c50ff7677684d7aff654f4aff7654444aff514c6f4aff30386bff75334e4764ff6537ff756d63766748ff39ff705a4d3671637affff74334442574a3171ffff6e7a38526b5a69ff79ff3871676c7036ff7333ff5361635265ff61694cff31704631ff47436b54ff565774ff5130415835ff4d33ff316d744d6f38ff32ff4b31304c553658ffff313530626f333341ffff54506175507545ff5aff563556436669ff6845ff63744f5546ff446a52ff48735974ff61387969ff684d44ff6462515059ff5a49ff595171744550ff6fff4d365841624932ffff6e3937666646694cffff436b75715a6335ff31ff714f38423446ff7839ff355153554fff6b4b77ff326c7678ff42375a67ff625839ff68556c7777ff694fff647945677744ff31ff6934586f61724cffff4472565559484c75ffff646d30696a5165ff49ff686b3534364eff497aff7138435967ff79784aff76474238ff44796438ff304665ff6373515545ff6a37ff397657466878ff33ff514a6862755600feff0000000000000000f7800000000025b6ad0008", - // "7480000000000000ff6e5f698000000000ff0000130166666666ff31343863ff2d3339ff30332d3433ff6165ff2d613238322dff31ff65326465336635ffff37653830646e3553ffff716e684f527431ff41ff53486b656238ff3171ff66726e5458ff485235ff53796f6aff32673231ff574175ff69634c446dff785aff663159784742ff63ff5049687737334cffff5a5a4f6d7258484affff4850777545474dff73ff576c73473852ff4961ff41316e4945ff39364eff35576f38ff6c78494fff49674fff324d566d4cff3946ff4e5267395942ff59ff42316335397941ffff5245376149584452ffff776e5539574168ff43ff767652724378ff6632ff4e50776e33ff5a5732ff77316a47ff37696775ff6a4253ff4e326b4242ff4635ff44644a397a33ff31ff78624b32366531ffff5037716256363949ffff4c777436333631ff59ff79654e704a68ff4d5aff4348646c49ff426147ff4451776fff46546c4bff346c34ff3458315955ff6865ff765644305572ff63ff694b50774f5270ffff524b44784176766cffff36355653444768ff70ff516434466a4dff6e67ff6255576e53ff525346ff7349675aff76757738ff57554bff3930324c6eff516fff4778716b5a35ff46ff70616d374d7546ffff786834757744314fffff68596d6b716e6aff6aff32516f6c6c69ff4633ff6933574c55ff366357ff784a4268ff39537450ff356d4cff516e535775ff3269ff4a774544426bff54ff4c6f5161467545ffff726539543574586cffff59657274654f69ff6dff4966546e3865ff4969ff684f7a5530ff33584eff6c5a4530ff4d514666ff68564dff764458584bff4e73ff573750324c47ff44ff4b744f446a7951ffff4d7658376c625a7affff553565586e3656ff48ff316d49464c63ff6a37ff715a6b376eff333639ff4c624b44ff49594b4fff58466eff3269676335ff7234ff316b4472564aff6eff564c3364393161ffff4d6c56724b495968ffff6d794237493773ff6eff57624e584f31ff6d36ff784d72454bff374443ff58787349ff35536e78ff757832ff383274726cff524aff636d4d377151ff4eff6c513435793735ffff58525267565a4e5affff35414b57494f6aff69ff553079383433ff7458ff736345426cff4a7055ff6e715553ff59704134ff714e50ff7744554535ff6e66ff766b6e394757ff45ff71467167445877ffff7472534c62464669ffff764d314f6d6c32ff73ff6c5567694f4cff3339ff39724a6e30ff676b47ff4a66534cff4a4e775aff386349ff426c4b7633ff3865ff6f4c51657950ff65ff566d61324b7564ffff71397a4734685264ffff76634c44747834ff35ff66694d424848ff6c37ff4254686867ff6b4778ff55394c59ff6b573366ff764b68ff454953447aff326bff525538786266ff6cff5432726345675affff345a493654746b46ffff5645724c6c6f4aff45ff656150703049ff4a5aff654f4a4344ff753948ff754c4172ff64574936ff327151ff754a4c6643ff7074ff6c3978523079ff43ff59694a49643935ffff424d387046375374ffff39536e76346352ff70ff685275636578ff527aff4750614574ff6a4338ff33677638ff347a6d79ff624d35ff5353533946ff3871ff3642704b546bff59ff4c42724e646837ffff4c5246706569496effff7a587845733030ff77ff6b376d483538ff4c56ff565637396cff683179ff586f4f61ff75516a6aff697461ff396269506bff6738ff5042335a5163ff62ff63796c484c7172ffff4c484a786f4a3231ffff41307558305a44ff76ff4b3733455547ff5373ff786a337654ff6f4374ff6b6e3953ff356d334bff6b314dff4a646e3553ff716eff684f52743141ff53ff486b6562383171ffff66726e5458485235ffff53796f6a326732ff31ff57417569634cff446dff785a663159ff784742ff63504968ff7737334cff5a5a4fff6d7258484aff4850ff777545474d73ff57ff6c734738524961ffff41316e494539364effff35576f386c7849ff4fff49674f324d56ff6d4cff39464e5267ff395942ff59423163ff35397941ff524537ff6149584452ff776eff553957416843ff76ff76527243786632ffff4e50776e335a5732ffff77316a47376967ff75ff6a42534e326bff4242ff463544644aff397a33ff3178624bff32366531ff503771ff6256363949ff4c77ff743633363159ff79ff654e704a684d5affff4348646c49426147ffff4451776f46546cff4bff346c34345831ff5955ff6865765644ff305572ff63694b50ff774f5270ff524b44ff784176766cff3635ff565344476870ff51ff6434466a4d6e67ffff6255576e53525346ffff7349675a767577ff38ff57554b393032ff4c6eff516f477871ff6b5a35ff4670616dff374d7546ff786834ff757744314fff6859ff6d6b716e6a6aff32ff516f6c6c694633ffff6933574c55366357ffff784a4268395374ff50ff356d4c516e53ff5775ff32694a7745ff44426bff544c6f51ff61467545ff726539ff543574586cff5965ff7274654f696dff49ff66546e38654969ffff684f7a553033584effff6c5a45304d5146ff66ff68564d764458ff584bff4e73573750ff324c47ff444b744fff446a7951ff4d7658ff376c625a7aff5535ff65586e365648ff31ff6d49464c636a37ffff715a6b376e333639ffff4c624b4449594bff4fff58466e326967ff6335ff7234316b44ff72564aff6e564c33ff64393161ff4d0000ff0000000000f80000fd80000000002a54a00008", - - // "7480000000000000ff6e5f698000000000ff0000130130303030ff34303562ff2d6131ff39632d3430ff3234ff2d613734632dff63ff35613836376435ffff3262366449643741ffff324b314e655936ff4eff376845415964ff7572ff5957783837ff513336ff35527846ff6c65646fff6c4468ff6734466d61ff4634ff444173773344ff31ff50344a766f4131ffff6b73546839393663ffff794245746f394eff54ff393544414570ff3353ff63526b6a78ff473765ff38423946ff554f3941ff705641ff4a6e513737ff7a32ff635664664344ff34ff6544705673466bffff596d70416377526affff656a644138516dff66ff686c32626741ff4e66ff6465467153ff6f4a42ff71565a62ff42575a74ff68306aff4e4265466cff6e35ff37546b624854ff6aff756d4351795855ffff664f47433652566bffff5743586b6c3379ff75ff61644f55687aff6f44ff6172765156ff365448ff52623276ff6f307257ff744148ff3747546770ff7250ff796858554f65ff6fff6861687a555775ffff566d63336c613655ffff417535336c4f4dff42ff657248396978ff7772ff6273365754ff773064ff3476644fff5865564fff62414fff4c73424850ff6f63ff4a505a4d4544ff54ff46704d5a6d3041ffff6c6c74387a4a5031ffff39686444716d4cff6cff355369367966ff3268ff70366b6851ff677a51ff45715855ff69477530ff797741ff3054715878ff5a39ff375a36756774ff35ff4c594f5a544b61ffff354d70616f686849ffff4e39426d776a7aff49ff613053435557ff4567ff6f3138414bff7a506eff58517a35ff37463867ff506c42ff424976674eff6c48ff39744a355247ff6bff6a366a714b4766ffff4a4a7946564f6436ffff6e774b4b6c4d4dff48ff7053724b3853ff326bff364d35326fff39616fff706e4742ff69504e63ff313769ff4763535671ff356fff7755486b6d31ff30ff6f576a54494c71ffff36434c4978467361ffff56497132444f74ff52ff7a304f464e45ff3941ff5162756a59ff486e74ff30483842ff71774149ff6c4c30ff7164734f56ff394dff336361725071ff65ff30487878675a69ffff7765593639505734ffff4134633458636bff59ff56726f54696eff6765ff6844647845ff6b3962ff4d667530ff69366e32ff7a7253ff4e44553434ff3851ff793638623552ff57ff75344651587563ffff4d554f73426a6753ffff346c7a63634b33ff5aff644a57665673ff7569ff6950533562ff366c69ff42346762ff4c5a3641ff703175ff774b69535aff746aff62457638696cff36ff39533750515a70ffff5a73566249544746ffff6b763175387753ff47ff69766d5a7367ff6169ff6c7a6a7141ff313575ff33646355ff475a3968ff556858ff42525a7046ff5970ff50754c353530ff46ff4578393574654bffff4b654e387a726353ffff306b39664e6a33ff37ff774265357446ff695aff5449554531ff6c7359ff71474256ff66737867ff4e784aff666b56394eff5650ff6d6f3864416bff41ff686b567835396fffff3542477163524f4affff31753559516254ff52ff37764d365956ff344cff6d6c6b5a58ff335847ff4b35755aff346e4671ff586c47ff4f4b61756eff5363ff6e617765764eff76ff364c764a433636ffff306a70576c637a66ffff5a764476516775ff69ff466775764650ff7641ff677537574dff625370ff4a585054ff79747234ff4f4c61ff4772757170ff4172ff3965464f4877ff48ff596a4a62483965ffff50514549546f3965ffff6847387778784dff39ff79675262567aff4b00fe0000000000fa8000000000332d430008", - // "7480000000000000ff6e5f698000000000ff0000130166666666ff66616332ff2d6162ff62352d3430ff6438ff2d393566632dff35ff61376535666335ffff6632353050464538ffff7357344f4b7559ff53ff4e4e50446e50ff6639ff3554524f46ff674858ff31356c49ff79415638ff4d764cff3632634c7aff6145ff6d5051335231ff4dff596431554f4c38ffff6669636935696f4effff38724963755734ff6cff704b43424e49ff3035ff6138475365ff42584fff53787049ff6e617368ff6e4b34ff597643636bff4e50ff785862654869ff63ff703663636e725affff5a53634730724145ffff6a386d64624d6eff49ff354332587761ff776eff3853537744ff47427aff44657150ff5647654aff47566aff6c4b667239ff6c59ff7a41737a4931ff48ff73516242446470ffff376c4d706c767532ffff554345766b6c73ff50ff7a644f394a70ff3875ff72684a7a79ff7a6935ff6b465759ff78725456ff314c4bff5473363251ff6334ff7938526d6578ff73ff4b615877775378ffff336f367455624252ffff51584846646957ff4eff7151784a7273ff6134ff587564556dff4b7978ff727a5445ff734f7146ff363469ff3830314571ff4b37ff6b384a6a6177ff65ff463941326c466fffff57306d4447336d65ffff4a593463597734ff76ff476669506e6aff3678ff4835693542ff735457ff39513779ff51323035ff504247ff5744776161ff6d4fff3468474b6344ff50ff50516b4d6e6446ffff3534635962465372ffff6b736852467152ff6fff657047685052ff6450ff647252434dff676f33ff73545231ff4d52624bff6a6c71ff53334b6869ff587aff624139615178ff53ff726d4269774d31ffff5056525061464a6dffff73544a32344963ff74ff4749427a4450ff6b71ff54466d3858ff634c54ff43674265ff49513752ff435350ff50427a4d55ff3372ff625943526f61ff74ff4c575862765753ffff32394a4835525339ffff534c5436524953ff4fff69533747754fff496eff456a515655ff543432ff39454b56ff3163614dff307264ff4453417654ff4b42ff317779667372ff43ff4d506b5772354affff555853546a4f7973ffff4f4b314c764d6aff56ff435053744e55ff4372ff3544454744ff534f5aff434c7135ff637a7079ff524b55ff32796a496fff7358ff62754d354236ff59ff7161544456525affff67576831716c5377ffff386c54514c666cff44ff537055305a30ff456fff4e4c754370ff5a7936ff5746574aff50426f6dff477752ff4a68505063ff4f32ff636e4b4c5741ff52ff7a455665626838ffff654d484e6b7a4745ffff48564f684f4966ff6bff504b30313270ff7876ff637934766eff757339ff4b745a41ff724d6255ff794474ff4c564a7451ff6744ff453546454244ff73ff634d61644c7959ffff38754635706f6a35ffff35633470425134ff49ff307a4939464fff5368ff3072776549ff343559ff37324871ff4270526bff305264ff41484e7432ff6459ff4c624b415853ff34ff4b726343394464ffff67716b796d513873ffff43576e486f5a47ff68ff4e516674464fff4a6fff447a737849ff4f496dff4b494775ff53587761ff4d4b52ff707a687045ff7a39ff65697943324dff74ff356f454e766641ffff6d4c6c534a424946ffff3948776255524bff6cff675065796c51ff6735ff4147775743ff615248ff4245316aff344d6658ff4e5279ff5336725544ff6b44ff654a30573633ff71ff7930644139745affff32563130704a5176ffff4c685752504543ff54ff58683257684cff4265ff6268446953ff315969ff70317461ff45566867ff6f484fff4950464538ff7357ff344f4b755953ff4eff4e50446e506639ffff3554524f46674858ffff31356c49794156ff38ff4d764c363263ff4c7aff61456d5051ff335231ff4d596431ff554f4c38ff666963ff6935696f4eff3872ff49637557346cff70ff4b43424e493035ffff613847536542584fffff537870496e6173ff68ff6e4b34597643ff636bff4e50785862ff654869ff63703663ff636e725aff5a5363ff4730724145ff6a38ff6d64624d6e49ff35ff4332587761776effff385353774447427affff44657150564765ff4aff47566a6c4b66ff7239ff6c597a4173ff7a4931ff48735162ff42446470ff376c4dff706c767532ff5543ff45766b6c7350ff7aff644f394a703875ffff72684a7a797a6935ffff6b465759787254ff56ff314c4b547336ff3251ff6334793852ff6d6578ff734b6158ff77775378ff336f36ff7455624252ff5158ff48466469574eff71ff51784a72736134ffff587564556d4b7978ffff727a5445734f71ff46ff363469383031ff4571ff4b376b384aff6a6177ff65463941ff326c466fff57306dff4447336d65ff4a59ff346359773476ff47ff6669506e6a3678ffff4835693542735457ffff39513779513230ff35ff504247574477ff6161ff6d4f346847ff4b6344ff5050516bff4d6e6446ff353463ff5962465372ff6b73ff68524671526fff65ff70476850526450ffff647252434d676f33ffff735452314d5262ff4bff6a6c7153334bff6869ff587a624139ff615178ff53726d42ff69774d31ff505652ff5061464a6dff7354ff4a3234496374ff47ff49427a44000000fcff0000000000000000f7800000000032b1710008", - - // "7480000000000000ff6e5f698000000000ff0000130130303030ff33663936ff2d3037ff37302d3430ff3735ff2d396266322dff30ff65613561626434ffff34623130634e3547ffff4f596377376c73ff46ff56563762777aff7662ff33765a5362ff69564aff54454a36ff53575a44ff72724dff47774c4268ff6a59ff76636633645aff43ff6e684949787141ffff596b687578745a50ffff6374676d353162ff32ff6244366c724cff4d6dff4b65694f33ff436778ff7478666aff63523864ff5a7233ff4a4e795963ff5237ff36735a434948ff73ff614c35434f6369ffff4765597063336731ffff62456a69713055ff49ff7a6631436373ff5070ff6c3361766fff6c634aff6c7a486dff50477473ff695559ff456d4f5157ff7236ff49556b34384fff36ff66654333306b76ffff707978744b564442ffff333268424e5831ff59ff3051754f5349ff6c6aff7575585034ff485667ff36496459ff4d767255ff6c4f79ff5a4d664a30ff5642ff4a454f396d57ff37ff584e6d79324151ffff3976496d43537778ffff53684163707747ff6fff476e664b4556ff334aff6e585a6e75ff533673ff6655446dff4f624176ff46396bff666c346b57ff3453ff4f74397a616dff36ff41476456465362ffff4730753359376d4effff38376a42427244ff6aff55695332496eff556fff3856623876ff526545ff4f4c3747ff62553645ff575742ff736d796a51ff7a71ff6577476f5665ff42ff4e476a53373558ffff6c3578385838574affff454f664a746536ff69ff587958744b59ff7a76ff7063715950ff6a5a34ff45325279ff5554576fff614543ff6a6953517aff3272ff7846564c7274ff6dff5148475a614541ffff5343705343524969ffff7547774552716fff79ff7a50736f7747ff365aff614e4c684cff613332ff35634765ff5a51736cff4e6453ff653539536cff6950ff4d327651477aff62ff347373497a5151ffff346f4154794b314cffff7a78666a783764ff39ff6f5634374e56ff7833ff6834644d6fff553748ff72743935ff70313862ff697768ff7652394c57ff3872ff756546676655ff30ff77354247587545ffff6d69544b7a647645ffff53485375586837ff6cff686c46355937ff4449ff3369646d6eff746352ff6c384835ff514d3172ff4d6a50ff69746f6839ff6a57ff773445553539ff41ff347a6c5a494842ffff654875345370314cffff5758624135646eff6dff346866624242ff6968ff3477677945ff687063ff51437153ff6b74785aff6f574fff77617a6c38ff4849ff6f4a49704772ff51ff496444764f5048ffff786659596865774fffff69706b66463643ff66ff4757334f6355ff6a42ff47454d3961ff325834ff63564556ff71634769ff6c4b33ff4267707130ff6937ff6d7158794465ff6eff7659464e675145ffff6c78396b4a6d4a7affff55384866486854ff47ff564b47755635ff6938ff3164386768ff693052ff366c4e50ff635a6579ff364f44ff7a74703138ff666aff46634f5a6931ff54ff444d6d43776e53ffff6d6d4e4558373950ffff73795650725956ff4fff4f347673546cff3730ff6d6e344f76ff693547ff66785850ff59533465ff79454bff5169346774ff4650ff525659536670ff4eff7657484178674bffff6277494a6550504cffff4a766869714b6dff4bff643041313433ff6135ff556e383751ff564334ff6e7a6944ff6a76586fff706f35ff716f535248ff4a74ff463747446934ff34ff4e63494f434441ffff5550574e6c50316dffff4c63414f43646dff50ff3561626f4d44ff4937ff6c7a59416cff496277ff6c446661ff56396c78ff587758ff44634e3547ff4f59ff6377376c7346ff56ff563762777a7662ffff33765a536269564affff54454a3653575aff44ff72724d47774cff4268ff6a59766366ff33645aff436e6849ff49787141ff596b68ff7578745a50ff6374ff676d35316232ff62ff44366c724c4d6dffff4b65694f33436778ffff7478666a635238ff64ff5a72334a4e79ff5963ff523736735aff434948ff73614c35ff434f6369ff476559ff7063336731ff6245ff6a6971305549ff7aff66314363735070ffff6c3361766f6c634affff6c7a486d504774ff73ff695559456d4fff5157ff723649556bff34384fff36666543ff33306b76ff707978ff744b564442ff3332ff68424e583159ff30ff51754f53496c6affff7575585034485667ffff364964594d7672ff55ff6c4f795a4d66ff4a30ff56424a454fff396d57ff37584e6dff79324151ff397649ff6d43537778ff5368ff41637077476fff47ff6e664b4556334affff6e585a6e75533673ffff6655446d4f6241ff76ff46396b666c34ff6b57ff34534f7439ff7a616dff36414764ff56465362ff473075ff3359376d4eff3837ff6a424272446aff55ff695332496e556fffff3856623876526545ffff4f4c3747625536ff45ff575742736d79ff6a51ff7a71657747ff6f5665ff424e476aff53373558ff6c3578ff385838574aff454fff664a74653669ff58ff7958744b597a76ffff70637159506a5a34ffff45325279555457ff6fff6145436a6953ff517aff3272784656ff4c7274ff6d514847ff5a614541ff534370ff5343524969ff7547ff774552716f79ff7aff50736f7747365affff614e4c684c613332ffff356347655a5173ff6cff4e6453653539ff536cff69504d3276ff51477aff62347373ff497a5151ff346f41ff54794b314cff7a78ff666a78376439ff6fff5634374e567833ffff6834644d6f553748ffff72743935703138ff62ff697768765239ff4c57ff3872756546ff676655ff30773542ff47587545ff6d6954ff4b7a647645ff5348ff53755868376cff68ff6c463559374449ffff3369646d6e746352ffff6c384835514d31ff72ff4d6a5069746fff6839ff6a57773445ff553539ff41347a6cff5a494842ff654875ff345370314cff5758ff624135646e6dff34ff68666242426968ffff3477677945687063ffff514371536b7478ff5aff6f574f77617aff6c38ff48496f4a49ff704772ff51496444ff764f5048ff786659ff596865774fff6970ff6b6646364366ff47ff57334f63556a42ffff47454d3961325834ffff63564556716347ff69ff6c4b33426770ff7130ff69376d7158ff794465ff6e765946ff4e675145ff6c7839ff6b4a6d4a7aff5538ff486648685447ff56ff4b477556356938ffff3164386768693052ffff366c4e50635a65ff79ff364f447a7470ff3138ff666a46634fff5a6931ff54444d6dff43776e53ff6d6d4eff4558373950ff7379ff56507259564fff4fff347673546c3730ffff6d6e344f76693547ffff66785850595334ff00fe000000000000f980000000003078f50008", - // "7480000000000000ff6e5f698000000000ff0000130166666666ff66333966ff2d3262ff62382d3437ff3734ff2d626435312dff33ff30643234363831ffff30373566384c386effff5955723957484eff51ff556f5272726bff4834ff6576313430ff6a4d6eff41576e62ff49464f6dff4f4973ff4c56464232ff4a77ff375132304d6bff6cff48704852574e62ffff506c474159497257ffff77553261456577ff79ff5a45587a4b61ff4772ff586c626f77ff773367ff4248386aff457a7250ff47624cff6e7039476dff4b39ff536570695263ff46ff38397a68476670ffff6f316b564f38465affff7335544f4f456cff42ff54306234506eff6b70ff4d73536941ff487655ff78625378ff77733638ff6e706eff4533657964ff6244ff79724e756e6aff61ff5131536c44694affff6b41306c6e664675ffff4e30455143774cff31ff617168703130ff7161ff5234316b6dff725052ff6c434d36ff33614333ff363059ff7666366f4eff6d51ff416d64755766ff68ff55534f4c345369ffff7538665243435359ffff3165326c587a6bff75ff636443366678ff7654ff7971634b42ff4d7857ff4d613331ff37734376ff377875ff52774e4f6fff566cff375455735673ff4cff49475565394766ffff6c784a595a744361ffff486f6f4e394770ff6aff786565784a39ff4937ff4c317a6b53ff323958ff72304554ff5a61305aff623154ff4e61314936ff6a53ff4c5176784377ff4aff51664962446d52ffff6a76506d716c7451ffff6a7a6856707173ff37ff393774715043ff4d42ff7673766d72ff64597aff5748436eff5a696f44ff4a5039ff3559744543ff5255ff56494e44516aff76ff76517847477734ffff6277463037364948ffff35416263464551ff35ff774965706e4dff7148ff4d394e736eff754f34ff704c7668ff74743031ff797567ff7855363336ff4449ff6a3971566736ff68ff30796253645649ffff365475565567496bffff3879676951734dff6eff6944706e4e38ff4f56ff5341495973ff317937ff66775853ff37363674ff6e446dff774874544bff5553ff644965704962ff79ff496d737653376fffff7a41386853354e31ffff4b6a3365785032ff47ff576e64584443ff3944ff3574756538ff764652ff586b586eff47507870ff614438ff5430705365ff4c48ff7136436f6563ff54ff63345337757052ffff6258326564496959ffff46396a41586d46ff34ff4f704b506b42ff5464ff6957483731ff425049ff72504951ff37456749ff667951ff39526f6238ff4433ff47574c6e614dff79ff7642357a62584effff5400000000000000fff800000000000000f88000000000253ffe0008", - - // "7480000000000000ff6e5f698000000000ff0000130130303030ff32393066ff2d3762ff38612d3432ff6161ff2d626466342dff65ff64343231356264ffff6438356677516372ffff71674e42554f4eff58ff387968634862ff416cff556a563833ff384350ff787a4131ff39586330ff324e4dff5067614354ff6851ff335a554a535aff4eff4c426e42397263ffff5764634778374733ffff53745777385366ff41ff594f6f476c50ff4c4bff6271724b47ff464c74ff306e6976ff44614c61ff705669ff564a7a5676ff5661ff555677567463ff70ff70626f50563764ffff6a38794849716850ffff61357636394c48ff75ff497134725a73ff4e65ff514956757aff364369ff6c314e58ff7934724fff626e56ff48384d4247ff6a5aff313147624a31ff54ff476249384f5862ffff346a585a57364a6effff42657035767048ff50ff7a3563313345ff5169ff39536b766eff394173ff4f773973ff7335625aff47685aff4548664b7aff6e4bff376d51616a4eff67ff486a48656f756affff4e4b576d55386972ffff337530574c5945ff44ff506d36416770ff7356ff7838565148ff66576cff4164425aff42486d6cff694f6dff57496b6357ff7074ff4a30354a6856ff49ff72474178614363ffff444f4f377643555affff325439716d6936ff4fff307776764f64ff6672ff3159434659ff443546ff74674b79ff53427a51ff656541ff324a6e7357ff3976ff4376366d334fff43ff4d5a4639484664ffff71415744774f4469ffff67355246487743ff45ff754547345a42ff6530ff6c50513541ff6d6245ff6a426c64ff49416946ff505830ff774b6b6568ff6947ff317342513247ff34ff36495165455578ffff4944555076653246ffff71716732653365ff69ff625537613656ff5255ff45466d3064ff386f33ff4e575a38ff61313961ff587751ff763941484aff3145ff63543962694eff68ff50306246707169ffff4a74457364387169ffff36665259486967ff4aff4165596f3031ff3831ff71465a6f44ff626f49ff36774657ff4d745751ff684d59ff3531774149ff5168ff535873357441ff59ff7841686e6a6e79ffff496f633171526d38ffff5769536b506a31ff4cff3070446d5746ff7262ff324a647a75ff4e6e51ff6c4e5872ff4c795456ff57506bff6865746a45ff4262ff47635a627755ff37ff386e4239544370ffff5748764d52696e33ffff6d5a6a456f4a69ff75ff33756879554dff7661ff327174634dff385767ff72565545ff41704635ff72464aff5959717538ff6159ff51573064554bff34ff47724739666266ffff5351434551563072ffff6c6d635a503939ff78ff586b6a51756dff4573ff3451653657ff6c674dff70616d4fff4f6d7632ff58384cff754b743137ff7352ff4c383179675aff74ff337050314a7433ffff494f6c5a5630304affff41426837765133ff61ff484976555376ff3949ff7969786178ff6f4969ff33674533ff744a6d4bff67654cff5464567a6cff4e68ff76476a6b5a64ff72ff50464c45417059ffff435a5a4c64556339ffff703743504c3767ff5aff49515a325a61ff7053ff4f467a3757ff4a524eff66556168ff76463674ff543270ff7756385a41ff4370ff564366455550ff62ff3171304d416675ffff724e3853744a4e64ffff72756636776d30ff7aff6770497a6539ff4336ff74326a676dff307777ff48517a62ff38797779ff343967ff644c525858ff636eff5172706e6848ff64ff3454726b65336fffff6f76587369303136ffff78454a39343042ff6cff5a664b477a52ff7444ff434c7a6a70ff636b7aff36317866ff6d355676ff785766ff7777516372ff7167ff4e42554f4e58ff38ff7968634862416cffff556a563833384350ffff787a4131395863ff30ff324e4d506761ff4354ff6851335a55ff4a535aff4e4c426eff42397263ff576463ff4778374733ff5374ff577738536641ff59ff4f6f476c504c4bffff6271724b47464c74ffff306e697644614cff61ff705669564a7aff5676ff5661555677ff567463ff7070626fff50563764ff6a3879ff4849716850ff6135ff7636394c4875ff49ff7134725a734e65ffff514956757a364369ffff6c314e58793472ff4fff626e5648384dff4247ff6a5a313147ff624a31ff54476249ff384f5862ff346a58ff0000000000fa0000fd80000000002dfb020008", - // "7480000000000000ff6e5f698000000000ff0000130166666666ff66656339ff2d6237ff61362d3466ff3562ff2d626664312dff38ff39383831373237ffff3066393869487636ffff61775877455570ff52ff7450746d3678ff4d63ff47386b4e79ff385665ff67505a31ff39474650ff33377aff33656b5862ff7278ff6e62346d4d66ff50ff50566e446d4155ffff384f766a64363651ffff5547574b68704bff62ff314462577264ff3541ff764f577569ff4c3249ff76507953ff79474141ff765645ff6965706b4cff6173ff70456143636dff44ff594a6f4b563254ffff4e767433687a6d43ffff704c786b544137ff56ff4a577a4e4957ff3669ff4e67694a56ff655a50ff48477267ff69725a64ff376642ff446b46756dff7a63ff42726956666cff73ff56537945416a48ffff7a35314b57787343ffff3945526c6b6551ff5aff437364763570ff784bff384e417472ff4d4246ff73494569ff59756157ff664661ff4230747945ff6943ff793948634178ff62ff754c42724d736effff5865795a756e6735ffff38704249663877ff42ff73763977324dff6f73ff666b4d7250ff575a61ff76384448ff4b683174ff716452ff34466e7061ff656bff654632635a57ff54ff547867575a7570ffff65725572657a4766ffff3778456b564854ff64ff546e67344d37ff5046ff3565574d77ff4f5a4bff5472744cff6c503067ff610000ff0000000000f80000fd80000000002c1cbd0008", - // } - - // hexTexts := []string{ - // "7480000000000000FF995F698000000000FF0000010166666666FF30323237FF2D3338FF63612D3436FF3766FF2D613134332DFF61FF35643937313130FFFF636534307850794EFFFF6B69426D334D64FF36FF583465764455FF774BFF44394C767AFF6F7050FF55635962FF6A756933FF575045FF6B75333565FF794FFF6E6D6A6E7A32FF62FF55726462344B42FFFF4F62763063385A42FFFF524F3137747751FF54FF4A744A636F50FF496FFF7963414876FF4D4468FF5878434BFF6F514A30FF634A42FF7542426B5AFF3337FF33556C35534FFF54FF334E474F30476BFFFF3273627065623046FFFF4E685237437879FF4DFF374864644373FF5048FF3365327653FF647141FF57454443FF507A4533FF484D69FF37484C7362FF6D65FF6E5567657163FF74FF70713548623169FFFF4966674F626A417AFFFF6E6C5975724B59FF79FF305A31627731FF5276FF4438683863FF6D794BFF41366335FF7A5A4E47FF623231FF4E68753036FF3869FF686C4C503741FF50FF42674C58446D47FFFF616855486344317AFFFF58714663397437FF74FF596365686443FF6E62FF44714B4945FF685846FF32417048FF75656142FF526B74FF62464F6838FF7744FF61767145544FFF56FF76685850596B56FFFF7A5A43796F79314EFFFF556D776B72434AFF31FF646A6E567569FF7563FF4A6B313356FF477169FF69583465FF57363531FF396645FF554638367AFF4672FF316A364B5066FF79FF486A6C584C7942FFFF78483639616F6155FFFF3759524F753276FF66FF44774965624EFF3130FF4247506946FF335179FF4A306362FF6E346452FF724534FF6C705A4663FF554BFF545151333237FF4DFF7A4E476F796547FFFF4D4E4A483350734AFFFF6151616F397962FF4DFF616A65483032FF574CFF5530576467FF653142FF51706B4CFF626A6169FF566B77FF4972313168FF7133FF684F62614946FF48FF5A37756F50787AFFFF6B71436A44523559FFFF4F64524B6D4B4EFF55FF423352326A4CFF4366FF4964617172FF797864FF4D6B4F4AFF684B4368FF5A5238FF536C555A4DFF4834FF3456484C4359FF57FF544451694E506FFFFF6155346E50377437FFFF4B377369514165FF50FF4C6678377461FF6249FF5032454E45FF766A56FF50453469FF76743364FF4B5558FF334E394C4EFF6B4DFF524937525149FF41FF56614548355661FFFF626E536B656D4F76FFFF34430000000000FF00F9000000000000F980000000000C0F130008", - // // ERROR: "7480000000000000FF995F698000000000FF0000010166666666FF30323237FF2D3338FF63612D3436FF3766FF2D613134332DFF61FF35643937313130FFFF636534307850794EFFFF6B69426D334D64FF36FF583465764455FF774BFF44394C767AFF6F7050FF55635962FF6A756933FF575045FF6B75333565FF794FFF6E6D6A6E7A32FF62FF55726462344B42FFFF4F62763063385A42FFFF524F3137747751FF54FF4A744A636F50FF496FFF7963414876FF4D4468FF5878434BFF6F514A30FF634A42FF7542426B5AFF3337FF33556C35534FFF54FF334E474F30476BFFFF3273627065623046FFFF4E685237437879FF4DFF374864644373FF5048FF3365327653FF647141FF57454443FF507A4533FF484D69FF37484C7362FF6D65FF6E5567657163FF74FF70713548623169FFFF4966674F626A417AFFFF6E6C5975724B59FF79FF305A31627731FF5276FF4438683863FF6D794BFF41366335FF7A5A4E47FF623231FF4E68753036FF3869FF686C4C503741FF50FF42674C58446D47FFFF616855486344317AFFFF58714663397437FF74FF596365686443FF6E62FF44714B4945FF685846FF32417048FF75656142FF526B74FF62464F6838FF7744FF61767145544FFF56FF76685850596B56FFFF7A5A43796F79314EFFFF556D776B72434AFF31FF646A6E567569FF7563FF4A6B313356FF477169FF69583465FF57363531FF396645FF554638367AFF4672FF316A364B5066FF79FF486A6C584C7942FFFF78483639616F6155FFFF3759524F753276FF66FF44774965624EFF3130FF4247506946FF335179FF4A306362FF6E346452FF724534FF6C705A4663FF554BFF545151333237FF4DFF7A4E476F796547FFFF4D4E4A483350734AFFFF6151616F397962FF4DFF616A65483032FF574CFF5530576467FF653142FF51706B4CFF626A6169FF566B77FF4972313168FF7133FF684F62614946FF48FF5A37756F50787AFFFF6B71436A44523559FFFF4F64524B6D4B4EFF55FF423352326A4CFF4366FF4964617172FF797864FF4D6B4F4AFF684B4368FF5A5238FF536C555A4DFF4834FF3456484C4359FF57FF544451694E506FFFFF6155346E50377437FFFF4B377369514165FF50FF4C6678377461FF6249FF5032454E45FF766A56FF50453469FF76743364FF4B5558FF334E394C4EFF6B4DFF524937525149FF41FF56614548355661FFFF626E536B656D4F76FFFF34430000000000FF00F9000000000000F980000000000C0F13000800", - // } - - // hexTexts := []string{ - // // endKeys without 00 - // "7480000000000000FF995F698000000000FF0000010166666664FF36303766FF2D6334FF39392D3439FF3233FF2D616139622DFF38FF62326533323336FFFF66643332615A7569FFFF42393377363447FF45FF6C5233775763FF3278FF4244435655FF464750FF454A4153FF4977506EFF533278FF38616F3669FF6245FF467047685A47FF44FF66423578454537FFFF6471616155347566FFFF535766446A4D78FF48FF57624D316449FF3144FF515257514DFF4A6450FF364E7858FF51744A6DFF63304FFF6E586E6458FF544CFF504530444977FF54FF63723039664E56FFFF314E4A4E69683650FFFF4E716B54625634FF43FF466854317669FF6D43FF73554B4F51FF6F4669FF6F4F5236FF754B6D36FF494737FF6862577377FF634DFF503541644152FF45FF41727A546B4643FFFF304A36697459334CFFFF716C666C59596CFF45FF456E4E6C5235FF376FFF32714B7577FF464C72FF5A504158FF524C6870FF515038FF6337727045FF5870FF30717A71764EFF76FF6935384C527545FFFF514F707038594B4DFFFF6B38655A516D65FF76FF38764B6B6263FF6F4DFF7538764D7AFF4D484FFF7161596DFF596C6A50FF707575FF3573476C42FF636AFF675578744F38FF67FF566D7168676D42FFFF4857323733305932FFFF4D46334F7A7539FF50FF4C6352726655FF5836FF4530753050FF674848FF646B7834FF326C7373FF303168FF3851687971FF6E57FF32637237654AFF45FF446C3335576669FFFF6A336B4F4C34745AFFFF45353573756A62FF4CFF596F64706B51FF375AFF447747624BFF6A344DFF4D664567FF35754E75FF425250FF396136594EFF3150FF45425A706A58FF58FF72317137656361FFFF677143594656676FFFFF685A6E52517030FF4BFF4231324F6D53FF4E36FF46584D7638FF6F6F4BFF5A716B58FF67326431FF6E696BFF7165655A4FFF3361FF4C46514B794BFF4AFF7A4E4C6B555854FFFF42526C7365746251FFFF7A6F4866533171FF72FF64786C6A3331FF4678FF4F3533436BFF467669FF524C6E77FF4857666AFF42656AFF615A78794EFF3959FF51764F374A58FF70FF306D364F326334FFFF6E684573595A5430FFFF49365849687939FF4AFF666362464B55FF6E36FF65486F5862FF453946FF77677932FF51614167FF444878FF7934677431FF6768FF685268346A32FF36FF4358414E653542FFFF39787A4B5A487437FFFF4B424D4D734246FF47FF787A71303375FF4B34FF454F413237FF397244FF39365038FF72653659FF347141FF7978487A5AFF786AFF67717A37376FFF4DFF69726A52455566FFFF6C7776663574614DFFFF59756457646941FF36FF743433416D57FF5237FF505A587836FF6C4931FF66564D6BFF35717169FF753031FF784F443131FF7A32FF706745514354FF57FF37363866744B4DFFFF6B53664659415048FFFF6151677A706450FF41FF6F615674576FFF496FFF5A706C6C51FF66426FFF39696464FF48344E36FF683270FF6369545341FF5470FF3746314D4C69FF58FF5558646F757058FFFF6D4A357246347669FFFF76796372784347FF41FF756F59456753FF764FFF6A4C467269FF634159FF6656516AFF6D637258FF444870FF454B463847FF4148FF4F5863437535FF70FF3763754B4B356BFFFF61465244424F5357FFFF7730464E4F3970FF69FF756F51774276FF505AFF6337303130FF654C56FF6B7A3573FF79637666FF49466BFF4178475944FF6F61FF793400000000FB00FE80000000000B9C2D0008", - // "7480000000000000FF995F698000000000FF0000010166666666FF30323237FF2D3338FF63612D3436FF3766FF2D613134332DFF61FF35643937313130FFFF636534307850794EFFFF6B69426D334D64FF36FF583465764455FF774BFF44394C767AFF6F7050FF55635962FF6A756933FF575045FF6B75333565FF794FFF6E6D6A6E7A32FF62FF55726462344B42FFFF4F62763063385A42FFFF524F3137747751FF54FF4A744A636F50FF496FFF7963414876FF4D4468FF5878434BFF6F514A30FF634A42FF7542426B5AFF3337FF33556C35534FFF54FF334E474F30476BFFFF3273627065623046FFFF4E685237437879FF4DFF374864644373FF5048FF3365327653FF647141FF57454443FF507A4533FF484D69FF37484C7362FF6D65FF6E5567657163FF74FF70713548623169FFFF4966674F626A417AFFFF6E6C5975724B59FF79FF305A31627731FF5276FF4438683863FF6D794BFF41366335FF7A5A4E47FF623231FF4E68753036FF3869FF686C4C503741FF50FF42674C58446D47FFFF616855486344317AFFFF58714663397437FF74FF596365686443FF6E62FF44714B4945FF685846FF32417048FF75656142FF526B74FF62464F6838FF7744FF61767145544FFF56FF76685850596B56FFFF7A5A43796F79314EFFFF556D776B72434AFF31FF646A6E567569FF7563FF4A6B313356FF477169FF69583465FF57363531FF396645FF554638367AFF4672FF316A364B5066FF79FF486A6C584C7942FFFF78483639616F6155FFFF3759524F753276FF66FF44774965624EFF3130FF4247506946FF335179FF4A306362FF6E346452FF724534FF6C705A4663FF554BFF545151333237FF4DFF7A4E476F796547FFFF4D4E4A483350734AFFFF6151616F397962FF4DFF616A65483032FF574CFF5530576467FF653142FF51706B4CFF626A6169FF566B77FF4972313168FF7133FF684F62614946FF48FF5A37756F50787AFFFF6B71436A44523559FFFF4F64524B6D4B4EFF55FF423352326A4CFF4366FF4964617172FF797864FF4D6B4F4AFF684B4368FF5A5238FF536C555A4DFF4834FF3456484C4359FF57FF544451694E506FFFFF6155346E50377437FFFF4B377369514165FF50FF4C6678377461FF6249FF5032454E45FF766A56FF50453469FF76743364FF4B5558FF334E394C4EFF6B4DFF524937525149FF41FF56614548355661FFFF626E536B656D4F76FFFF34430000000000FF00F9000000000000F980000000000C0F130008", - - // // endKeys with 00 - // // ERROR! "7480000000000000FF995F698000000000FF0000010166666664FF36303766FF2D6334FF39392D3439FF3233FF2D616139622DFF38FF62326533323336FFFF66643332615A7569FFFF42393377363447FF45FF6C5233775763FF3278FF4244435655FF464750FF454A4153FF4977506EFF533278FF38616F3669FF6245FF467047685A47FF44FF66423578454537FFFF6471616155347566FFFF535766446A4D78FF48FF57624D316449FF3144FF515257514DFF4A6450FF364E7858FF51744A6DFF63304FFF6E586E6458FF544CFF504530444977FF54FF63723039664E56FFFF314E4A4E69683650FFFF4E716B54625634FF43FF466854317669FF6D43FF73554B4F51FF6F4669FF6F4F5236FF754B6D36FF494737FF6862577377FF634DFF503541644152FF45FF41727A546B4643FFFF304A36697459334CFFFF716C666C59596CFF45FF456E4E6C5235FF376FFF32714B7577FF464C72FF5A504158FF524C6870FF515038FF6337727045FF5870FF30717A71764EFF76FF6935384C527545FFFF514F707038594B4DFFFF6B38655A516D65FF76FF38764B6B6263FF6F4DFF7538764D7AFF4D484FFF7161596DFF596C6A50FF707575FF3573476C42FF636AFF675578744F38FF67FF566D7168676D42FFFF4857323733305932FFFF4D46334F7A7539FF50FF4C6352726655FF5836FF4530753050FF674848FF646B7834FF326C7373FF303168FF3851687971FF6E57FF32637237654AFF45FF446C3335576669FFFF6A336B4F4C34745AFFFF45353573756A62FF4CFF596F64706B51FF375AFF447747624BFF6A344DFF4D664567FF35754E75FF425250FF396136594EFF3150FF45425A706A58FF58FF72317137656361FFFF677143594656676FFFFF685A6E52517030FF4BFF4231324F6D53FF4E36FF46584D7638FF6F6F4BFF5A716B58FF67326431FF6E696BFF7165655A4FFF3361FF4C46514B794BFF4AFF7A4E4C6B555854FFFF42526C7365746251FFFF7A6F4866533171FF72FF64786C6A3331FF4678FF4F3533436BFF467669FF524C6E77FF4857666AFF42656AFF615A78794EFF3959FF51764F374A58FF70FF306D364F326334FFFF6E684573595A5430FFFF49365849687939FF4AFF666362464B55FF6E36FF65486F5862FF453946FF77677932FF51614167FF444878FF7934677431FF6768FF685268346A32FF36FF4358414E653542FFFF39787A4B5A487437FFFF4B424D4D734246FF47FF787A71303375FF4B34FF454F413237FF397244FF39365038FF72653659FF347141FF7978487A5AFF786AFF67717A37376FFF4DFF69726A52455566FFFF6C7776663574614DFFFF59756457646941FF36FF743433416D57FF5237FF505A587836FF6C4931FF66564D6BFF35717169FF753031FF784F443131FF7A32FF706745514354FF57FF37363866744B4DFFFF6B53664659415048FFFF6151677A706450FF41FF6F615674576FFF496FFF5A706C6C51FF66426FFF39696464FF48344E36FF683270FF6369545341FF5470FF3746314D4C69FF58FF5558646F757058FFFF6D4A357246347669FFFF76796372784347FF41FF756F59456753FF764FFF6A4C467269FF634159FF6656516AFF6D637258FF444870FF454B463847FF4148FF4F5863437535FF70FF3763754B4B356BFFFF61465244424F5357FFFF7730464E4F3970FF69FF756F51774276FF505AFF6337303130FF654C56FF6B7A3573FF79637666FF49466BFF4178475944FF6F61FF793400000000FB00FE80000000000B9C2D000800", - // // ERROR! "7480000000000000FF995F698000000000FF0000010166666666FF30323237FF2D3338FF63612D3436FF3766FF2D613134332DFF61FF35643937313130FFFF636534307850794EFFFF6B69426D334D64FF36FF583465764455FF774BFF44394C767AFF6F7050FF55635962FF6A756933FF575045FF6B75333565FF794FFF6E6D6A6E7A32FF62FF55726462344B42FFFF4F62763063385A42FFFF524F3137747751FF54FF4A744A636F50FF496FFF7963414876FF4D4468FF5878434BFF6F514A30FF634A42FF7542426B5AFF3337FF33556C35534FFF54FF334E474F30476BFFFF3273627065623046FFFF4E685237437879FF4DFF374864644373FF5048FF3365327653FF647141FF57454443FF507A4533FF484D69FF37484C7362FF6D65FF6E5567657163FF74FF70713548623169FFFF4966674F626A417AFFFF6E6C5975724B59FF79FF305A31627731FF5276FF4438683863FF6D794BFF41366335FF7A5A4E47FF623231FF4E68753036FF3869FF686C4C503741FF50FF42674C58446D47FFFF616855486344317AFFFF58714663397437FF74FF596365686443FF6E62FF44714B4945FF685846FF32417048FF75656142FF526B74FF62464F6838FF7744FF61767145544FFF56FF76685850596B56FFFF7A5A43796F79314EFFFF556D776B72434AFF31FF646A6E567569FF7563FF4A6B313356FF477169FF69583465FF57363531FF396645FF554638367AFF4672FF316A364B5066FF79FF486A6C584C7942FFFF78483639616F6155FFFF3759524F753276FF66FF44774965624EFF3130FF4247506946FF335179FF4A306362FF6E346452FF724534FF6C705A4663FF554BFF545151333237FF4DFF7A4E476F796547FFFF4D4E4A483350734AFFFF6151616F397962FF4DFF616A65483032FF574CFF5530576467FF653142FF51706B4CFF626A6169FF566B77FF4972313168FF7133FF684F62614946FF48FF5A37756F50787AFFFF6B71436A44523559FFFF4F64524B6D4B4EFF55FF423352326A4CFF4366FF4964617172FF797864FF4D6B4F4AFF684B4368FF5A5238FF536C555A4DFF4834FF3456484C4359FF57FF544451694E506FFFFF6155346E50377437FFFF4B377369514165FF50FF4C6678377461FF6249FF5032454E45FF766A56FF50453469FF76743364FF4B5558FF334E394C4EFF6B4DFF524937525149FF41FF56614548355661FFFF626E536B656D4F76FFFF34430000000000FF00F9000000000000F980000000000C0F13000800", - // } - - hexTexts := []string{ - "7480000000000000FF9D5F698000000000FF0000020166666666FF63303764FF2D6230FF66322D3466FF3465FF2D383039652DFF31FF66383065363631FFFF3939326264424865FFFF54677252634C7AFF6AFF5079747A4652FF6D61FF4F3647707AFF636C7AFF504D4337FF35636C37FF736779FF6B6B626637FF4E49FF424552723843FF52FF72765032504875FFFF30394B33316D3453FFFF6749794E6A454DFF33FF464657706C30FF5933FF6542735A44FF576949FF33714E38FF675A6C73FF4F5559FF6A6F304236FF344DFF476367723275FF6CFF334A6A6A464578FFFF33417A5172436E6DFFFF775A4839676E46FF4EFF4F5934333038FF6756FF4A66507761FF573565FF58315268FF426D676BFF6A4D4BFF3941503841FF3679FF6C5430495939FF44FF4857364154584FFFFF3543474252314F4EFFFF726C7645394874FF4DFF6A51586A3156FF6858FF515953554FFF526955FF53596F46FF45343531FF487A78FF653430376CFF5230FF684D31573457FF32FF6D6D306C336A4CFFFF4D4D363251756841FFFF52615451486C48FF7AFF54376F50424DFF4D57FF5245456B70FF627433FF614D5943FF31527271FF685647FF6968784533FF6758FF383442686559FF76FF36445831536B69FFFF4675727166644150FFFF4273346D493054FF6AFF353844495478FF4267FF7642556D49FF624A64FF7937326FFF496E7971FF773037FF546B565558FF3648FF54516B367349FF46FF59346D6B4C704DFFFF6B32393542503330FFFF35476167524E62FF6CFF5A3854477050FF5238FF454C657071FF707279FF516F7632FF564B6237FF6D6475FF4D71466F39FF4F75FF64596977676DFF30FF51637674637234FFFF53387A6A4E534943FFFF724F5954544768FF59FF59375646694EFF646CFF444D647058FF766B54FF4B63516BFF4F497372FF5A6F42FF5467335A6EFF6C4AFF467A7144584BFF50FF39764D42304467FFFF3150316D4C66534EFFFF313531537A304DFF45FF686734356E45FF536AFF486231355AFF495846FF38755A70FF49587274FF54636EFF5936356C75FF5671FF38336C4C5851FF45FF76436A52427071FFFF56666E6467334A4CFFFF5644694377537AFF71FF4A7A6A785461FF6939FF714A467277FF656237FF45465971FF52695A63FF4E6E64FF3736484B67FF5A70FF374847354C4DFF76FF43713534545574FFFF73494F5832564269FFFF784549704E4E53FF41FF647447617748FF6155FF7079676335FF694663FF74744356FF30727338FF51426AFF4D33437234FF4478FF636530334C44FF47FF634137745A5972FFFF786B314B35547034FFFF4659375277336AFF77FF4F676C675A4FFF4D32FF4741384869FF69426BFF6859564BFF53544158FF4A5356FF48616E4A39FF7A4DFF645271326F41FF57FF786B6A786B6936FFFF6D42794F6D567747FFFF686A47356C4A38FF49FF656C727A3475FF6D67FF6658424176FF554E51FF51777357FF3543614AFF54426EFF384B526646FF6767FF655949783249FF53FF743539796F5945FFFF5449344E38704B6DFFFF4F4358466A5A75FF46FF70417A6E3969FF594BFF3648445545FF646C4DFF424F3237FF71386A39FF684B6AFF5562446532FF4330FF646B416F4530FF70FF5A565268794A74FFFF3337323667367633FFFF71397458304855FF41FF52304B584568FF3136FF6F416C4946FF383369FF32546976FF4335686CFF4C756CFF7A615A524AFF6B37FF41645142596DFF49FF747732784B6E6EFFFF43446D7552797349FFFF454F3473624C34FF65FF3852416C4F79FF6B33FF64484A716DFF6A5152FF77596D76FF36634F51FF4A6F6FFF5A64424865FF5467FF7252634C7A6AFF50FF79747A46526D61FFFF4F3647707A636C7AFFFF504D433735636CFF37FF7367796B6B62FF6637FF4E49424552FF723843FF52727650FF32504875FF30394BFF33316D3453FF6749FF794E6A454D33FF46FF4657706C305933FFFF6542735A44576949FFFF33714E38675A6CFF73FF4F55596A6F30FF4236FF344D476367FF723275FF6C334A6AFF6A464578FF33417AFF5172436E6DFF775AFF4839676E464EFF4FFF59343330386756FFFF4A66507761573565FFFF58315268426D67FF6BFF6A4D4B394150FF3841FF36796C5430FF495939FF44485736FF4154584FFF354347FF4252314F4EFF726CFF76453948744DFF6AFF51586A31566858FFFF515953554F526955FFFF53596F46453435FF31FF487A78653430FF376CFF5230684D31FF573457FF326D6D30FF6C336A4CFF4D4D36FF3251756841FF5261FF5451486C487AFF54FF376F50424D4D57FFFF5245456B70627433FFFF614D5943315272FF71FF685647696878FF4533FF6758383442FF686559FF76364458FF31536B69FF467572FF7166644150FF4273FF346D4930546AFF35FF38444954784267FFFF7642556D49624A64FFFF7937326F496E79FF71FF773037546B56FF5558FF364854516BFF367349FF4659346DFF6B4C704DFF6B3239FF3542503330FF3547FF6167524E626CFF5AFF38544770505238FFFF454C657071707279FFFF516F7632564B62FF37FF6D64754D7146FF6F39FF4F75645969FF77676DFF30516376FF74637234FF53387AFF6A4E534943FF724FFF595454476859FF59FF375646694E646CFFFF444D647058766B54FFFF4B63516B4F4973FF72FF5A6F42546733FF5A6EFF6C4A467A71FF44584BFF5039764DFF42304467FF315031FF6D4C66534EFF3135FF31537A304D45FF68FF6734356E45536AFFFF486231355A495846FFFF38755A70495872FF74FF54636E593635FF6C75FF567138336CFF4C5851FF4576436AFF52427071FF56666EFF6467334A4CFF5644FF694377537A71FF4AFF7A6A7854616939FFFF714A467277656237FFFF4546597152695AFF63FF4E6E64373648FF4B67FF5A70374847FF354C4DFF76437135FF34545574FF73494FFF5832564269FF7845FF49704E4E5341FF64FF74476177486155FFFF7079676335694663FFFF74744356307273FF38FF51426A4D3343FF7234FF4478636530FF334C44FF47634137FF745A5972FF786B31FF4B35547034FF4659FF375277336A77FF4FFF676C675A4F4D32FFFF474138486969426BFFFF6859564B535441FF58FF4A535648616EFF4A39FF7A4D645271FF326F41FF57786B6AFF786B6936FF6D4279FF4F6D567747FF686AFF47356C4A3849FF65FF6C727A34756D67FFFF6658424176554E51FFFF51777357354361FF4AFF54426E384B52FF6646FF6767655949FF783249FF53743539FF796F5945FF544934FF4E38704B6DFF4F43FF58466A5A7546FF70FF417A6E3969594BFFFF3648445545646C4DFFFF424F323771386AFF39FF684B6A556244FF6532FF4330646B41FF6F4530FF705A5652FF68794A74FF333732FF3667367633FF7139FF745830485541FF52FF304B5845683136FFFF6F416C4946383369FFFF32546976433568FF6CFF4C756C7A615AFF524AFF6B37410000FF000000FA00000000FB8000000000169B070008", - "7480000000000000ff9d5f698000000000ff0000020166666666ff63303764ff2d6230ff66322d3466ff3465ff2d383039652dff31ff66383065363631ffff3939326264424865ffff54677252634c7aff6aff5079747a4652ff6d61ff4f3647707aff636c7aff504d4337ff35636c37ff736779ff6b6b626637ff4e49ff424552723843ff52ff72765032504875ffff30394b33316d3453ffff6749794e6a454dff33ff464657706c30ff5933ff6542735a44ff576949ff33714e38ff675a6c73ff4f5559ff6a6f304236ff344dff476367723275ff6cff334a6a6a464578ffff33417a5172436e6dffff775a4839676e46ff4eff4f5934333038ff6756ff4a66507761ff573565ff58315268ff426d676bff6a4d4bff3941503841ff3679ff6c5430495939ff44ff4857364154584fffff3543474252314f4effff726c7645394874ff4dff6a51586a3156ff6858ff515953554fff526955ff53596f46ff45343531ff487a78ff653430376cff5230ff684d31573457ff32ff6d6d306c336a4cffff4d4d363251756841ffff52615451486c48ff7aff54376f50424dff4d57ff5245456b70ff627433ff614d5943ff31527271ff685647ff6968784533ff6758ff383442686559ff76ff36445831536b69ffff4675727166644150ffff4273346d493054ff6aff353844495478ff4267ff7642556d49ff624a64ff7937326fff496e7971ff773037ff546b565558ff3648ff54516b367349ff46ff59346d6b4c704dffff6b32393542503330ffff35476167524e62ff6cff5a3854477050ff5238ff454c657071ff707279ff516f7632ff564b6237ff6d6475ff4d71466f39ff4f75ff64596977676dff30ff51637674637234ffff53387a6a4e534943ffff724f5954544768ff59ff59375646694eff646cff444d647058ff766b54ff4b63516bff4f497372ff5a6f42ff5467335a6eff6c4aff467a7144584bff50ff39764d42304467ffff3150316d4c66534effff313531537a304dff45ff686734356e45ff536aff486231355aff495846ff38755a70ff49587274ff54636eff5936356c75ff5671ff38336c4c5851ff45ff76436a52427071ffff56666e6467334a4cffff5644694377537aff71ff4a7a6a785461ff6939ff714a467277ff656237ff45465971ff52695a63ff4e6e64ff3736484b67ff5a70ff374847354c4dff76ff43713534545574ffff73494f5832564269ffff784549704e4e53ff41ff647447617748ff6155ff7079676335ff694663ff74744356ff30727338ff51426aff4d33437234ff4478ff636530334c44ff47ff634137745a5972ffff786b314b35547034ffff4659375277336aff77ff4f676c675a4fff4d32ff4741384869ff69426bff6859564bff53544158ff4a5356ff48616e4a39ff7a4dff645271326f41ff57ff786b6a786b6936ffff6d42794f6d567747ffff686a47356c4a38ff49ff656c727a3475ff6d67ff6658424176ff554e51ff51777357ff3543614aff54426eff384b526646ff6767ff655949783249ff53ff743539796f5945ffff5449344e38704b6dffff4f4358466a5a75ff46ff70417a6e3969ff594bff3648445545ff646c4dff424f3237ff71386a39ff684b6aff5562446532ff4330ff646b416f4530ff70ff5a565268794a74ffff3337323667367633ffff71397458304855ff41ff52304b584568ff3136ff6f416c4946ff383369ff32546976ff4335686cff4c756cff7a615a524aff6b37ff41645142596dff49ff747732784b6e6effff43446d7552797349ffff454f3473624c34ff65ff3852416c4f79ff6b33ff64484a716dff6a5152ff77596d76ff36634f51ff4a6f6fff5a64424865ff5467ff7252634c7a6aff50ff79747a46526d61ffff4f3647707a636c7affff504d433735636cff37ff7367796b6b62ff6637ff4e49424552ff723843ff52727650ff32504875ff30394bff33316d3453ff6749ff794e6a454d33ff46ff4657706c305933ffff6542735a44576949ffff33714e38675a6cff73ff4f55596a6f30ff4236ff344d476367ff723275ff6c334a6aff6a464578ff33417aff5172436e6dff775aff4839676e464eff4fff59343330386756ffff4a66507761573565ffff58315268426d67ff6bff6a4d4b394150ff3841ff36796c5430ff495939ff44485736ff4154584fff354347ff4252314f4eff726cff76453948744dff6aff51586a31566858ffff515953554f526955ffff53596f46453435ff31ff487a78653430ff376cff5230684d31ff573457ff326d6d30ff6c336a4cff4d4d36ff3251756841ff5261ff5451486c487aff54ff376f50424d4d57ffff5245456b70627433ffff614d5943315272ff71ff685647696878ff4533ff6758383442ff686559ff76364458ff31536b69ff467572ff7166644150ff4273ff346d4930546aff35ff38444954784267ffff7642556d49624a64ffff7937326f496e79ff71ff773037546b56ff5558ff364854516bff367349ff4659346dff6b4c704dff6b3239ff3542503330ff3547ff6167524e626cff5aff38544770505238ffff454c657071707279ffff516f7632564b62ff37ff6d64754d7146ff6f39ff4f75645969ff77676dff30516376ff74637234ff53387aff6a4e534943ff724fff595454476859ff59ff375646694e646cffff444d647058766b54ffff4b63516b4f4973ff72ff5a6f42546733ff5a6eff6c4a467a71ff44584bff5039764dff42304467ff315031ff6d4c66534eff3135ff31537a304d45ff68ff6734356e45536affff486231355a495846ffff38755a70495872ff74ff54636e593635ff6c75ff567138336cff4c5851ff4576436aff52427071ff56666eff6467334a4cff5644ff694377537a71ff4aff7a6a7854616939ffff714a467277656237ffff4546597152695aff63ff4e6e64373648ff4b67ff5a70374847ff354c4dff76437135ff34545574ff73494fff5832564269ff7845ff49704e4e5341ff64ff74476177486155ffff7079676335694663ffff74744356307273ff38ff51426a4d3343ff7234ff4478636530ff334c44ff47634137ff745a5972ff786b31ff4b35547034ff4659ff375277336a77ff4fff676c675a4f4d32ffff474138486969426bffff6859564b535441ff58ff4a535648616eff4a39ff7a4d645271ff326f41ff57786b6aff786b6936ff6d4279ff4f6d567747ff686aff47356c4a3849ff65ff6c727a34756d67ffff6658424176554e51ffff51777357354361ff4aff54426e384b52ff6646ff6767655949ff783249ff53743539ff796f5945ff544934ff4e38704b6dff4f43ff58466a5a7546ff70ff417a6e3969594bffff3648445545646c4dffff424f323771386aff39ff684b6a556244ff6532ff4330646b41ff6f4530ff705a5652ff68794a74ff333732ff3667367633ff7139ff745830485541ff52ff304b5845683136ffff6f416c4946383369ffff32546976433568ff6cff4c756c7a615aff524aff6b37410000ff000000fa00000000fc090001", - } - for i, hexText := range hexTexts { - keyAdapter := DupDetectKeyAdapter{} - bytes, err := hex.DecodeString(hexText) - require.NoError(t, err, "Failed to decode hex for case %i", i) - require.Equal(t, 2*len(bytes), len(hexText)) - dst, err := keyAdapter.Decode(nil, bytes) - require.NoError(t, err, "case %i: %x", i, dst) - } -} - -func TestNext(t *testing.T) { - // decode - hexText := "7480000000000000FF9D5F698000000000FF0000020166666666FF63303764FF2D6230FF66322D3466FF3465FF2D383039652DFF31FF66383065363631FFFF3939326264424865FFFF54677252634C7AFF6AFF5079747A4652FF6D61FF4F3647707AFF636C7AFF504D4337FF35636C37FF736779FF6B6B626637FF4E49FF424552723843FF52FF72765032504875FFFF30394B33316D3453FFFF6749794E6A454DFF33FF464657706C30FF5933FF6542735A44FF576949FF33714E38FF675A6C73FF4F5559FF6A6F304236FF344DFF476367723275FF6CFF334A6A6A464578FFFF33417A5172436E6DFFFF775A4839676E46FF4EFF4F5934333038FF6756FF4A66507761FF573565FF58315268FF426D676BFF6A4D4BFF3941503841FF3679FF6C5430495939FF44FF4857364154584FFFFF3543474252314F4EFFFF726C7645394874FF4DFF6A51586A3156FF6858FF515953554FFF526955FF53596F46FF45343531FF487A78FF653430376CFF5230FF684D31573457FF32FF6D6D306C336A4CFFFF4D4D363251756841FFFF52615451486C48FF7AFF54376F50424DFF4D57FF5245456B70FF627433FF614D5943FF31527271FF685647FF6968784533FF6758FF383442686559FF76FF36445831536B69FFFF4675727166644150FFFF4273346D493054FF6AFF353844495478FF4267FF7642556D49FF624A64FF7937326FFF496E7971FF773037FF546B565558FF3648FF54516B367349FF46FF59346D6B4C704DFFFF6B32393542503330FFFF35476167524E62FF6CFF5A3854477050FF5238FF454C657071FF707279FF516F7632FF564B6237FF6D6475FF4D71466F39FF4F75FF64596977676DFF30FF51637674637234FFFF53387A6A4E534943FFFF724F5954544768FF59FF59375646694EFF646CFF444D647058FF766B54FF4B63516BFF4F497372FF5A6F42FF5467335A6EFF6C4AFF467A7144584BFF50FF39764D42304467FFFF3150316D4C66534EFFFF313531537A304DFF45FF686734356E45FF536AFF486231355AFF495846FF38755A70FF49587274FF54636EFF5936356C75FF5671FF38336C4C5851FF45FF76436A52427071FFFF56666E6467334A4CFFFF5644694377537AFF71FF4A7A6A785461FF6939FF714A467277FF656237FF45465971FF52695A63FF4E6E64FF3736484B67FF5A70FF374847354C4DFF76FF43713534545574FFFF73494F5832564269FFFF784549704E4E53FF41FF647447617748FF6155FF7079676335FF694663FF74744356FF30727338FF51426AFF4D33437234FF4478FF636530334C44FF47FF634137745A5972FFFF786B314B35547034FFFF4659375277336AFF77FF4F676C675A4FFF4D32FF4741384869FF69426BFF6859564BFF53544158FF4A5356FF48616E4A39FF7A4DFF645271326F41FF57FF786B6A786B6936FFFF6D42794F6D567747FFFF686A47356C4A38FF49FF656C727A3475FF6D67FF6658424176FF554E51FF51777357FF3543614AFF54426EFF384B526646FF6767FF655949783249FF53FF743539796F5945FFFF5449344E38704B6DFFFF4F4358466A5A75FF46FF70417A6E3969FF594BFF3648445545FF646C4DFF424F3237FF71386A39FF684B6AFF5562446532FF4330FF646B416F4530FF70FF5A565268794A74FFFF3337323667367633FFFF71397458304855FF41FF52304B584568FF3136FF6F416C4946FF383369FF32546976FF4335686CFF4C756CFF7A615A524AFF6B37FF41645142596DFF49FF747732784B6E6EFFFF43446D7552797349FFFF454F3473624C34FF65FF3852416C4F79FF6B33FF64484A716DFF6A5152FF77596D76FF36634F51FF4A6F6FFF5A64424865FF5467FF7252634C7A6AFF50FF79747A46526D61FFFF4F3647707A636C7AFFFF504D433735636CFF37FF7367796B6B62FF6637FF4E49424552FF723843FF52727650FF32504875FF30394BFF33316D3453FF6749FF794E6A454D33FF46FF4657706C305933FFFF6542735A44576949FFFF33714E38675A6CFF73FF4F55596A6F30FF4236FF344D476367FF723275FF6C334A6AFF6A464578FF33417AFF5172436E6DFF775AFF4839676E464EFF4FFF59343330386756FFFF4A66507761573565FFFF58315268426D67FF6BFF6A4D4B394150FF3841FF36796C5430FF495939FF44485736FF4154584FFF354347FF4252314F4EFF726CFF76453948744DFF6AFF51586A31566858FFFF515953554F526955FFFF53596F46453435FF31FF487A78653430FF376CFF5230684D31FF573457FF326D6D30FF6C336A4CFF4D4D36FF3251756841FF5261FF5451486C487AFF54FF376F50424D4D57FFFF5245456B70627433FFFF614D5943315272FF71FF685647696878FF4533FF6758383442FF686559FF76364458FF31536B69FF467572FF7166644150FF4273FF346D4930546AFF35FF38444954784267FFFF7642556D49624A64FFFF7937326F496E79FF71FF773037546B56FF5558FF364854516BFF367349FF4659346DFF6B4C704DFF6B3239FF3542503330FF3547FF6167524E626CFF5AFF38544770505238FFFF454C657071707279FFFF516F7632564B62FF37FF6D64754D7146FF6F39FF4F75645969FF77676DFF30516376FF74637234FF53387AFF6A4E534943FF724FFF595454476859FF59FF375646694E646CFFFF444D647058766B54FFFF4B63516B4F4973FF72FF5A6F42546733FF5A6EFF6C4A467A71FF44584BFF5039764DFF42304467FF315031FF6D4C66534EFF3135FF31537A304D45FF68FF6734356E45536AFFFF486231355A495846FFFF38755A70495872FF74FF54636E593635FF6C75FF567138336CFF4C5851FF4576436AFF52427071FF56666EFF6467334A4CFF5644FF694377537A71FF4AFF7A6A7854616939FFFF714A467277656237FFFF4546597152695AFF63FF4E6E64373648FF4B67FF5A70374847FF354C4DFF76437135FF34545574FF73494FFF5832564269FF7845FF49704E4E5341FF64FF74476177486155FFFF7079676335694663FFFF74744356307273FF38FF51426A4D3343FF7234FF4478636530FF334C44FF47634137FF745A5972FF786B31FF4B35547034FF4659FF375277336A77FF4FFF676C675A4F4D32FFFF474138486969426BFFFF6859564B535441FF58FF4A535648616EFF4A39FF7A4D645271FF326F41FF57786B6AFF786B6936FF6D4279FF4F6D567747FF686AFF47356C4A3849FF65FF6C727A34756D67FFFF6658424176554E51FFFF51777357354361FF4AFF54426E384B52FF6646FF6767655949FF783249FF53743539FF796F5945FF544934FF4E38704B6DFF4F43FF58466A5A7546FF70FF417A6E3969594BFFFF3648445545646C4DFFFF424F323771386AFF39FF684B6A556244FF6532FF4330646B41FF6F4530FF705A5652FF68794A74FF333732FF3667367633FF7139FF745830485541FF52FF304B5845683136FFFF6F416C4946383369FFFF32546976433568FF6CFF4C756C7A615AFF524AFF6B37410000FF000000FA00000000FB8000000000169B070008" - keyAdapter := DupDetectKeyAdapter{} - bytes, err := hex.DecodeString(hexText) - require.NoError(t, err, "Failed to decode hex") - require.Equal(t, 2*len(bytes), len(hexText)) - dst, err := keyAdapter.Decode(nil, bytes) - require.NoError(t, err) - - // encode the next key - nextKey := kv.Key(dst).Next() - encoded := keyAdapter.Encode(nil, nextKey, EncodeIntRowID(1)) - fmt.Println(hex.EncodeToString(encoded)) - - // must can decode the 'encoded' - next, err := keyAdapter.Decode(nil, encoded) - require.NoError(t, err) - - // cmp - require.Less(t, dst, next) -} - func TestDupDetectKeyOrder(t *testing.T) { keys := [][]byte{ {0x0, 0x1, 0x2},