代码 重构 总结
Posted weiluoyan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码 重构 总结相关的知识,希望对你有一定的参考价值。
最近一直在重构应用中心代码,在重构的过程中,想到了之前看的一本书
叫代码重构之道,之前看的时候会觉得有些不理解,但是还是记了其中的知识点
通过这次重构,对重构又有了更新的认识
重构,就是在不影响现有的业务情况下,修改代码的行为,这里修改代码的过程中为了使整个业务更加清晰,在熟悉原有的逻辑的情况下,重新
画了流程图、重新进行了业务设计和技术设计,而且重构也不是一次性的,它贯穿软件的整个生命周期,只要觉得不合理都是重构的时机
为什么我想要重构?
首先,我在接手这个应用中心后,会有很多的问题导致badcase,而去深究这些原因,大都是设计的不合理,或者很多情况没有考虑到,
而且发现好多if-else,更严重的是在foreach循环中套查询语句,
所以,我决定重构,重构的好处也有很多:
比如让代码更加容易理解、改善内部的结构、后期修改更容易,同时提高了编程速度,加快了业务的迭代
那么怎么重构呢,我总结了有以下方面:
1、重复代码问题:解决重复的常有手法:抽取到单独的函数,放在基类中,使用模版函数模式,就是提取一个通用的方法,或者写工具类
在使用的时候直接调用工具类
2、过长的类或者函数:这种非常的无意义,做的事情太多,那就成了定制,其他地方也用不了,所以要拆成多个小类或者短函数,尽量一个函数
只做一件事,拆分类的原则是单一原则,内聚,常用手法:子类化
3、命名随意:这样会导致后期修改非常费劲,别人在读你代码的时候也特别费劲,所以类名应该是名词或名词短语,函数应是动词或动词短语
4、去掉无效注释
5、切忌foreach循环中套查询语句
6、使用监控,即使发现有问题的接口
7、合理使用缓存,查询语句,尽量不要在model层加缓存,它就是简单的查询,接口业务中哪里需要加缓存,从缓存中取不到数据再从数据库取
8、做之前还是要想清楚业务,在什么时候去写一条语句,而不是前面写了后面除了问题再删,不仅增加了数据的操作,也使整个接口看起来冗余复杂
这是最近重构代码的一些经验总结。
!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tJZCI6IjQzNjMtMTU5MTE4MTExNjM0NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLmnIAifSx7ImNoYXIiOiLov5EifSx7ImNoYXIiOiLkuIAifSx7ImNoYXIiOiLnm7QifSx7ImNoYXIiOiLlnKgifSx7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLmnoQifSx7ImNoYXIiOiLlupQifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiLkuK0ifSx7ImNoYXIiOiLlv4MifSx7ImNoYXIiOiLku6MifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlnKgifSx7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLmnoQifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLov4cifSx7ImNoYXIiOiLnqIsifSx7ImNoYXIiOiLkuK0ifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmg7MifSx7ImNoYXIiOiLliLAifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLkuYsifSx7ImNoYXIiOiLliY0ifSx7ImNoYXIiOiLnnIsifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLkuIAifSx7ImNoYXIiOiLmnKwifSx7ImNoYXIiOiLkuaYifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIyMDgzLTE1OTExODEyMTY5NzEiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi5Y+rIn0seyJjaGFyIjoi5LujIn0seyJjaGFyIjoi56CBIn0seyJjaGFyIjoi6YeNIn0seyJjaGFyIjoi5p6EIn0seyJjaGFyIjoi5LmLIn0seyJjaGFyIjoi6YGTIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5LmLIn0seyJjaGFyIjoi5YmNIn0seyJjaGFyIjoi55yLIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5pe2In0seyJjaGFyIjoi5YCZIn0seyJjaGFyIjoi5LyaIn0seyJjaGFyIjoi6KeJIn0seyJjaGFyIjoi5b6XIn0seyJjaGFyIjoi5pyJIn0seyJjaGFyIjoi5LqbIn0seyJjaGFyIjoi5LiNIn0seyJjaGFyIjoi55CGIn0seyJjaGFyIjoi6KejIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5L2GIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi6L+YIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi6K6wIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi5YW2In0seyJjaGFyIjoi5LitIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi55+lIn0seyJjaGFyIjoi6K+GIn0seyJjaGFyIjoi54K5In1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiMzc2NC0xNTkxMTgxMjQ5NDM3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1LCJiYWNrLWNvbG9yIjoiIiwicGFkZGluZyI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IumAmiJ9LHsiY2hhciI6Iui/hyJ9LHsiY2hhciI6Iui/mSJ9LHsiY2hhciI6IuasoSJ9LHsiY2hhciI6IumHjSJ9LHsiY2hhciI6IuaehCJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuWvuSJ9LHsiY2hhciI6IumHjSJ9LHsiY2hhciI6IuaehCJ9LHsiY2hhciI6IuWPiCJ9LHsiY2hhciI6IuaciSJ9LHsiY2hhciI6IuS6hiJ9LHsiY2hhciI6IuabtCJ9LHsiY2hhciI6IuaWsCJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuiupCJ9LHsiY2hhciI6IuivhiJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjYwNTktMTU5MTE4MTI2NzkyNSIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOltdLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiOTk2MS0xNTkxMTgxMjkwODQ0IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1LCJiYWNrLWNvbG9yIjoiIiwicGFkZGluZyI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IumHjSJ9LHsiY2hhciI6IuaehCJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuWwsSJ9LHsiY2hhciI6IuaYryJ9LHsiY2hhciI6IuWcqCJ9LHsiY2hhciI6IuS4jSJ9LHsiY2hhciI6IuW9sSJ9LHsiY2hhciI6IuWTjSJ9LHsiY2hhciI6IueOsCJ9LHsiY2hhciI6IuaciSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuS4miJ9LHsiY2hhciI6IuWKoSJ9LHsiY2hhciI6IuaDhSJ9LHsiY2hhciI6IuWGtSJ9LHsiY2hhciI6IuS4iyJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuS/riJ9LHsiY2hhciI6IuaUuSJ9LHsiY2hhciI6IuS7oyJ9LHsiY2hhciI6IueggSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuihjCJ9LHsiY2hhciI6IuS4uiJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6Iui/mSJ9LHsiY2hhciI6IumHjCJ9LHsiY2hhciI6IuS/riJ9LHsiY2hhciI6IuaUuSJ9LHsiY2hhciI6IuS7oyJ9LHsiY2hhciI6IueggSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6Iui/hyJ9LHsiY2hhciI6IueoiyJ9LHsiY2hhciI6IuS4rSJ9LHsiY2hhciI6IuS4uiJ9LHsiY2hhciI6IuS6hiJ9LHsiY2hhciI6IuS9vyJ9LHsiY2hhciI6IuaVtCJ9LHsiY2hhciI6IuS4qiJ9LHsiY2hhciI6IuS4miJ9LHsiY2hhciI6IuWKoSJ9LHsiY2hhciI6IuabtCJ9LHsiY2hhciI6IuWKoCJ9LHsiY2hhciI6Iua4hSJ9LHsiY2hhciI6IuaZsCJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuWcqCJ9LHsiY2hhciI6IueGnyJ9LHsiY2hhciI6IuaCiSJ9LHsiY2hhciI6IuWOnyJ9LHsiY2hhciI6IuaciSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IumAuyJ9LHsiY2hhciI6Iui+kSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuaDhSJ9LHsiY2hhciI6IuWGtSJ9LHsiY2hhciI6IuS4iyJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IumHjSJ9LHsiY2hhciI6IuaWsCJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjkzNDMtMTU5MTE4MTM1NTY3OSIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLnlLsifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLmtYEifSx7ImNoYXIiOiLnqIsifSx7ImNoYXIiOiLlm74ifSx7ImNoYXIiOiLjgIEifSx7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLmlrAifSx7ImNoYXIiOiLov5sifSx7ImNoYXIiOiLooYwifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLkuJoifSx7ImNoYXIiOiLliqEifSx7ImNoYXIiOiLorr4ifSx7ImNoYXIiOiLorqEifSx7ImNoYXIiOiLlkowifSx7ImNoYXIiOiLmioAifSx7ImNoYXIiOiLmnK8ifSx7ImNoYXIiOiLorr4ifSx7ImNoYXIiOiLorqEifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLogIwifSx7ImNoYXIiOiLkuJQifSx7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLmnoQifSx7ImNoYXIiOiLkuZ8ifSx7ImNoYXIiOiLkuI0ifSx7ImNoYXIiOiLmmK8ifSx7ImNoYXIiOiLkuIAifSx7ImNoYXIiOiLmrKEifSx7ImNoYXIiOiLmgKcifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlroMifSx7ImNoYXIiOiLotK8ifSx7ImNoYXIiOiLnqb8ifSx7ImNoYXIiOiLova8ifSx7ImNoYXIiOiLku7YifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLmlbQifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLnlJ8ifSx7ImNoYXIiOiLlkb0ifSx7ImNoYXIiOiLlkagifSx7ImNoYXIiOiLmnJ8ifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlj6oifSx7ImNoYXIiOiLopoEifSx7ImNoYXIiOiLop4kifSx7ImNoYXIiOiLlvpcifSx7ImNoYXIiOiLkuI0ifSx7ImNoYXIiOiLlkIgifSx7ImNoYXIiOiLnkIYifSx7ImNoYXIiOiLpg70ifSx7ImNoYXIiOiLmmK8ifSx7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLmnoQifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLml7YifSx7ImNoYXIiOiLmnLoifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIyODkxLTE1OTExODE1Mzg2MTkiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbXSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjMwNTMtMTU5MTE4MTUzODg3OCIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLkuLoifSx7ImNoYXIiOiLku4AifSx7ImNoYXIiOiLkuYgifSx7ImNoYXIiOiLmiJEifSx7ImNoYXIiOiLmg7MifSx7ImNoYXIiOiLopoEifSx7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLmnoQifSx7ImNoYXIiOiLvvJ8ifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI3MjM3LTE1OTExODE1NTc4NDUiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi6aaWIn0seyJjaGFyIjoi5YWIIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi5ZyoIn0seyJjaGFyIjoi5o6lIn0seyJjaGFyIjoi5omLIn0seyJjaGFyIjoi6L+ZIn0seyJjaGFyIjoi5LiqIn0seyJjaGFyIjoi5bqUIn0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi5LitIn0seyJjaGFyIjoi5b+DIn0seyJjaGFyIjoi5ZCOIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5LyaIn0seyJjaGFyIjoi5pyJIn0seyJjaGFyIjoi5b6IIn0seyJjaGFyIjoi5aSaIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi6ZeuIn0seyJjaGFyIjoi6aKYIn0seyJjaGFyIjoi5a+8In0seyJjaGFyIjoi6Ie0In0seyJjaGFyIjoiYiJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiYyJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuiAjCJ9LHsiY2hhciI6IuWOuyJ9LHsiY2hhciI6Iua3sSJ9LHsiY2hhciI6IueptiJ9LHsiY2hhciI6Iui/mSJ9LHsiY2hhciI6IuS6myJ9LHsiY2hhciI6IuWOnyJ9LHsiY2hhciI6IuWboCJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuWkpyJ9LHsiY2hhciI6IumDvSJ9LHsiY2hhciI6IuaYryJ9LHsiY2hhciI6IuiuviJ9LHsiY2hhciI6IuiuoSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuS4jSJ9LHsiY2hhciI6IuWQiCJ9LHsiY2hhciI6IueQhiJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuaIliJ9LHsiY2hhciI6IuiAhSJ9LHsiY2hhciI6IuW+iCJ9LHsiY2hhciI6IuWkmiJ9LHsiY2hhciI6IuaDhSJ9LHsiY2hhciI6IuWGtSJ9LHsiY2hhciI6IuayoSJ9LHsiY2hhciI6IuaciSJ9LHsiY2hhciI6IuiAgyJ9LHsiY2hhciI6IuiZkSJ9LHsiY2hhciI6IuWIsCJ9LHsiY2hhciI6Iu+8jCJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjAwNjgtMTU5MTE4MTYwODE3MSIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLogIwifSx7ImNoYXIiOiLkuJQifSx7ImNoYXIiOiLlj5EifSx7ImNoYXIiOiLnjrAifSx7ImNoYXIiOiLlpb0ifSx7ImNoYXIiOiLlpJoifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoiZiJ9LHsiY2hhciI6Ii0ifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5pu0In0seyJjaGFyIjoi5LilIn0seyJjaGFyIjoi6YeNIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi5ZyoIn0seyJjaGFyIjoiZiJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJjIn0seyJjaGFyIjoiaCJ9LHsiY2hhciI6IuW+qiJ9LHsiY2hhciI6IueOryJ9LHsiY2hhciI6IuS4rSJ9LHsiY2hhciI6IuWllyJ9LHsiY2hhciI6IuafpSJ9LHsiY2hhciI6IuivoiJ9LHsiY2hhciI6IuivrSJ9LHsiY2hhciI6IuWPpSJ9LHsiY2hhciI6Iu+8jCJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjExOTMtMTU5MTE4MTY1OTY3MCIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOltdLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNDk3Mi0xNTkxMTgxNjU5OTA4IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1LCJiYWNrLWNvbG9yIjoiIiwicGFkZGluZyI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IuaJgCJ9LHsiY2hhciI6IuS7pSJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuaIkSJ9LHsiY2hhciI6IuWGsyJ9LHsiY2hhciI6IuWumiJ9LHsiY2hhciI6IumHjSJ9LHsiY2hhciI6IuaehCJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IumHjSJ9LHsiY2hhciI6IuaehCJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuWlvSJ9LHsiY2hhciI6IuWkhCJ9LHsiY2hhciI6IuS5nyJ9LHsiY2hhciI6IuaciSJ9LHsiY2hhciI6IuW+iCJ9LHsiY2hhciI6IuWkmiJ9LHsiY2hhciI6Iu+8miJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjY3ODktMTU5MTE4MTY3MjkzNCIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLmr5QifSx7ImNoYXIiOiLlpoIifSx7ImNoYXIiOiLorqkifSx7ImNoYXIiOiLku6MifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLmm7QifSx7ImNoYXIiOiLliqAifSx7ImNoYXIiOiLlrrkifSx7ImNoYXIiOiLmmJMifSx7ImNoYXIiOiLnkIYifSx7ImNoYXIiOiLop6MifSx7ImNoYXIiOiLjgIEifSx7ImNoYXIiOiLmlLkifSx7ImNoYXIiOiLlloQifSx7ImNoYXIiOiLlhoUifSx7ImNoYXIiOiLpg6gifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLnu5MifSx7ImNoYXIiOiLmnoQifSx7ImNoYXIiOiLjgIEifSx7ImNoYXIiOiLlkI4ifSx7ImNoYXIiOiLmnJ8ifSx7ImNoYXIiOiLkv64ifSx7ImNoYXIiOiLmlLkifSx7ImNoYXIiOiLmm7QifSx7ImNoYXIiOiLlrrkifSx7ImNoYXIiOiLmmJMifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlkIwifSx7ImNoYXIiOiLml7YifSx7ImNoYXIiOiLmj5AifSx7ImNoYXIiOiLpq5gifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLnvJYifSx7ImNoYXIiOiLnqIsifSx7ImNoYXIiOiLpgJ8ifSx7ImNoYXIiOiLluqYifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLliqAifSx7ImNoYXIiOiLlv6sifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLkuJoifSx7ImNoYXIiOiLliqEifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLov60ifSx7ImNoYXIiOiLku6MifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIxMzc4LTE1OTExODE3MTIzNzIiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbXSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6Ijg1OTMtMTU5MTE4MTcxMjU3MyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLpgqMifSx7ImNoYXIiOiLkuYgifSx7ImNoYXIiOiLmgI4ifSx7ImNoYXIiOiLkuYgifSx7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLmnoQifSx7ImNoYXIiOiLlkaIifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmiJEifSx7ImNoYXIiOiLmgLsifSx7ImNoYXIiOiLnu5MifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLmnIkifSx7ImNoYXIiOiLku6UifSx7ImNoYXIiOiLkuIsifSx7ImNoYXIiOiLmlrkifSx7ImNoYXIiOiLpnaIifSx7ImNoYXIiOiLvvJoifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI0NzI3LTE1OTExODE3NTY1ODQiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbXSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjE0ODctMTU5MTE4MTc1Nzg3MiIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiIxIn0seyJjaGFyIjoi44CBIn0seyJjaGFyIjoi6YeNIn0seyJjaGFyIjoi5aSNIn0seyJjaGFyIjoi5LujIn0seyJjaGFyIjoi56CBIn0seyJjaGFyIjoi6ZeuIn0seyJjaGFyIjoi6aKYIn0seyJjaGFyIjoi77yaIn0seyJjaGFyIjoi6KejIn0seyJjaGFyIjoi5YazIn0seyJjaGFyIjoi6YeNIn0seyJjaGFyIjoi5aSNIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5bi4In0seyJjaGFyIjoi5pyJIn0seyJjaGFyIjoi5omLIn0seyJjaGFyIjoi5rOVIn0seyJjaGFyIjoi77yaIn0seyJjaGFyIjoi5oq9In0seyJjaGFyIjoi5Y+WIn0seyJjaGFyIjoi5YiwIn0seyJjaGFyIjoi5Y2VIn0seyJjaGFyIjoi54usIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5Ye9In0seyJjaGFyIjoi5pWwIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5pS+In0seyJjaGFyIjoi5ZyoIn0seyJjaGFyIjoi5Z+6In0seyJjaGFyIjoi57G7In0seyJjaGFyIjoi5LitIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5L2/In0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi5qihIn0seyJjaGFyIjoi54mIIn0seyJjaGFyIjoi5Ye9In0seyJjaGFyIjoi5pWwIn0seyJjaGFyIjoi5qihIn0seyJjaGFyIjoi5byPIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5bCxIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi5o+QIn0seyJjaGFyIjoi5Y+WIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5LiqIn0seyJjaGFyIjoi6YCaIn0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5pa5In0seyJjaGFyIjoi5rOVIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5oiWIn0seyJjaGFyIjoi6ICFIn0seyJjaGFyIjoi5YaZIn0seyJjaGFyIjoi5belIn0seyJjaGFyIjoi5YW3In0seyJjaGFyIjoi57G7In1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiMTExNy0xNTkxMTgxODgyOTU2IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1LCJiYWNrLWNvbG9yIjoiIiwicGFkZGluZyI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IuWcqCJ9LHsiY2hhciI6IuS9vyJ9LHsiY2hhciI6IueUqCJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuaXtiJ9LHsiY2hhciI6IuWAmSJ9LHsiY2hhciI6IuebtCJ9LHsiY2hhciI6IuaOpSJ9LHsiY2hhciI6IuiwgyJ9LHsiY2hhciI6IueUqCJ9LHsiY2hhciI6IuW3pSJ9LHsiY2hhciI6IuWFtyJ9LHsiY2hhciI6IuexuyJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6Ijk5MjAtMTU5MTE4MTg5MjAyMyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOltdLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNTY0Mi0xNTkxMTgxODkyOTkzIiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1LCJiYWNrLWNvbG9yIjoiIiwicGFkZGluZyI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IjIifSx7ImNoYXIiOiLjgIEifSx7ImNoYXIiOiLov4cifSx7ImNoYXIiOiLplb8ifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLnsbsifSx7ImNoYXIiOiLmiJYifSx7ImNoYXIiOiLogIUifSx7ImNoYXIiOiLlh70ifSx7ImNoYXIiOiLmlbAifSx7ImNoYXIiOiLvvJoifSx7ImNoYXIiOiLov5kifSx7ImNoYXIiOiLnp40ifSx7ImNoYXIiOiLpnZ4ifSx7ImNoYXIiOiLluLgifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLml6AifSx7ImNoYXIiOiLmhI8ifSx7ImNoYXIiOiLkuYkifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlgZoifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLkuosifSx7ImNoYXIiOiLmg4UifSx7ImNoYXIiOiLlpKoifSx7ImNoYXIiOiLlpJoifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLpgqMifSx7ImNoYXIiOiLlsLEifSx7ImNoYXIiOiLmiJAifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLlrpoifSx7ImNoYXIiOiLliLYifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlhbYifSx7ImNoYXIiOiLku5YifSx7ImNoYXIiOiLlnLAifSx7ImNoYXIiOiLmlrkifSx7ImNoYXIiOiLkuZ8ifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiLkuI0ifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmiYAifSx7ImNoYXIiOiLku6UifSx7ImNoYXIiOiLopoEifSx7ImNoYXIiOiLmi4YifSx7ImNoYXIiOiLmiJAifSx7ImNoYXIiOiLlpJoifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLlsI8ifSx7ImNoYXIiOiLnsbsifSx7ImNoYXIiOiLmiJYifSx7ImNoYXIiOiLogIUifSx7ImNoYXIiOiLnn60ifSx7ImNoYXIiOiLlh70ifSx7ImNoYXIiOiLmlbAifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlsL0ifSx7ImNoYXIiOiLph48ifSx7ImNoYXIiOiLkuIAifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLlh70ifSx7ImNoYXIiOiLmlbAifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIzMDY4LTE1OTExODE5NTc4OTUiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi5Y+qIn0seyJjaGFyIjoi5YGaIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5Lu2In0seyJjaGFyIjoi5LqLIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5ouGIn0seyJjaGFyIjoi5YiGIn0seyJjaGFyIjoi57G7In0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5Y6fIn0seyJjaGFyIjoi5YiZIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi5Y2VIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5Y6fIn0seyJjaGFyIjoi5YiZIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5YaFIn0seyJjaGFyIjoi6IGaIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5bi4In0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi5omLIn0seyJjaGFyIjoi5rOVIn0seyJjaGFyIjoi77yaIn0seyJjaGFyIjoi5a2QIn0seyJjaGFyIjoi57G7In0seyJjaGFyIjoi5YyWIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNzQ3NS0xNTkxMTgyMDA4MTMzIiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1LCJiYWNrLWNvbG9yIjoiIiwicGFkZGluZyI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W10sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIxNzcxLTE1OTExODIwMDgzMjUiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoiMyJ9LHsiY2hhciI6IuOAgSJ9LHsiY2hhciI6IuWRvSJ9LHsiY2hhciI6IuWQjSJ9LHsiY2hhciI6IumajyJ9LHsiY2hhciI6IuaEjyJ9LHsiY2hhciI6Iu+8miJ9LHsiY2hhciI6Iui/mSJ9LHsiY2hhciI6IuagtyJ9LHsiY2hhciI6IuS8miJ9LHsiY2hhciI6IuWvvCJ9LHsiY2hhciI6IuiHtCJ9LHsiY2hhciI6IuWQjiJ9LHsiY2hhciI6IuacnyJ9LHsiY2hhciI6IuS/riJ9LHsiY2hhciI6IuaUuSJ9LHsiY2hhciI6IumdniJ9LHsiY2hhciI6IuW4uCJ9LHsiY2hhciI6Iui0uSJ9LHsiY2hhciI6IuWKsiJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuWIqyJ9LHsiY2hhciI6IuS6uiJ9LHsiY2hhciI6IuWcqCJ9LHsiY2hhciI6IuivuyJ9LHsiY2hhciI6IuS9oCJ9LHsiY2hhciI6IuS7oyJ9LHsiY2hhciI6IueggSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuaXtiJ9LHsiY2hhciI6IuWAmSJ9LHsiY2hhciI6IuS5nyJ9LHsiY2hhciI6IueJuSJ9LHsiY2hhciI6IuWIqyJ9LHsiY2hhciI6Iui0uSJ9LHsiY2hhciI6IuWKsiJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuaJgCJ9LHsiY2hhciI6IuS7pSJ9LHsiY2hhciI6IuexuyJ9LHsiY2hhciI6IuWQjSJ9LHsiY2hhciI6IuW6lCJ9LHsiY2hhciI6IuivpSJ9LHsiY2hhciI6IuaYryJ9LHsiY2hhciI6IuWQjSJ9LHsiY2hhciI6IuivjSJ9LHsiY2hhciI6IuaIliJ9LHsiY2hhciI6IuWQjSJ9LHsiY2hhciI6IuivjSJ9LHsiY2hhciI6IuefrSJ9LHsiY2hhciI6IuivrSJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuWHvSJ9LHsiY2hhciI6IuaVsCJ9LHsiY2hhciI6IuW6lCJ9LHsiY2hhciI6IuaYryJ9LHsiY2hhciI6IuWKqCJ9LHsiY2hhciI6IuivjSJ9LHsiY2hhciI6IuaIliJ9LHsiY2hhciI6IuWKqCJ9LHsiY2hhciI6IuivjSJ9LHsiY2hhciI6IuefrSJ9LHsiY2hhciI6IuivrSJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6Ijk4NDgtMTU5MTE4MjA3NTM4OCIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOltdLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNTYxNi0xNTkxMTgyMDc1NTc0IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1LCJiYWNrLWNvbG9yIjoiIiwicGFkZGluZyI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IjQifSx7ImNoYXIiOiLjgIEifSx7ImNoYXIiOiLljrsifSx7ImNoYXIiOiLmjokifSx7ImNoYXIiOiLml6AifSx7ImNoYXIiOiLmlYgifSx7ImNoYXIiOiLms6gifSx7ImNoYXIiOiLph4oifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI1MjY5LTE1OTExODIwODk5MTEiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbXSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjMzNjQtMTU5MTE4MjA5MDA4MyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiI1In0seyJjaGFyIjoi44CBIn0seyJjaGFyIjoi5YiHIn0seyJjaGFyIjoi5b+MIn0seyJjaGFyIjoiZiJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJjIn0seyJjaGFyIjoiaCJ9LHsiY2hhciI6IuW+qiJ9LHsiY2hhciI6IueOryJ9LHsiY2hhciI6IuS4rSJ9LHsiY2hhciI6IuWllyJ9LHsiY2hhciI6IuafpSJ9LHsiY2hhciI6IuivoiJ9LHsiY2hhciI6IuivrSJ9LHsiY2hhciI6IuWPpSJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjcwNDUtMTU5MTE4MjEwNjg1OCIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOltdLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNjE1OS0xNTkxMTgyMTA3MDUyIiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1LCJiYWNrLWNvbG9yIjoiIiwicGFkZGluZyI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IjYifSx7ImNoYXIiOiLjgIEifSx7ImNoYXIiOiLkvb8ifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiLnm5EifSx7ImNoYXIiOiLmjqcifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLljbMifSx7ImNoYXIiOiLkvb8ifSx7ImNoYXIiOiLlj5EifSx7ImNoYXIiOiLnjrAifSx7ImNoYXIiOiLmnIkifSx7ImNoYXIiOiLpl64ifSx7ImNoYXIiOiLpopgifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLmjqUifSx7ImNoYXIiOiLlj6MifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI3NTc1LTE1OTExODIxNDM0MTciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbXSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjIwNzMtMTU5MTE4MjE0NDEyOCIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiI3In0seyJjaGFyIjoi44CBIn0seyJjaGFyIjoi5ZCIIn0seyJjaGFyIjoi55CGIn0seyJjaGFyIjoi5L2/In0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi57yTIn0seyJjaGFyIjoi5a2YIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5p+lIn0seyJjaGFyIjoi6K+iIn0seyJjaGFyIjoi6K+tIn0seyJjaGFyIjoi5Y+lIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5bC9In0seyJjaGFyIjoi6YePIn0seyJjaGFyIjoi5LiNIn0seyJjaGFyIjoi6KaBIn0seyJjaGFyIjoi5ZyoIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiLlsYIifSx7ImNoYXIiOiLliqAifSx7ImNoYXIiOiLnvJMifSx7ImNoYXIiOiLlrZgifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlroMifSx7ImNoYXIiOiLlsLEifSx7ImNoYXIiOiLmmK8ifSx7ImNoYXIiOiLnroAifSx7ImNoYXIiOiLljZUifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLmn6UifSx7ImNoYXIiOiLor6IifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmjqUifSx7ImNoYXIiOiLlj6MifSx7ImNoYXIiOiLkuJoifSx7ImNoYXIiOiLliqEifSx7ImNoYXIiOiLkuK0ifSx7ImNoYXIiOiLlk6oifSx7ImNoYXIiOiLph4wifSx7ImNoYXIiOiLpnIAifSx7ImNoYXIiOiLopoEifSx7ImNoYXIiOiLliqAifSx7ImNoYXIiOiLnvJMifSx7ImNoYXIiOiLlrZgifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLku44ifSx7ImNoYXIiOiLnvJMifSx7ImNoYXIiOiLlrZgifSx7ImNoYXIiOiLkuK0ifSx7ImNoYXIiOiLlj5YifSx7ImNoYXIiOiLkuI0ifSx7ImNoYXIiOiLliLAifSx7ImNoYXIiOiLmlbAifSx7ImNoYXIiOiLmja4ifSx7ImNoYXIiOiLlho0ifSx7ImNoYXIiOiLku44ifSx7ImNoYXIiOiLmlbAifSx7ImNoYXIiOiLmja4ifSx7ImNoYXIiOiLlupMifSx7ImNoYXIiOiLlj5YifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIzNjMzLTE1OTExODIyNTU2MzgiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbXSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjM0MTktMTU5MTE4MjI2MjAyMyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NSwiYmFjay1jb2xvciI6IiIsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiI4In0seyJjaGFyIjoi44CBIn0seyJjaGFyIjoi5YGaIn0seyJjaGFyIjoi5LmLIn0seyJjaGFyIjoi5YmNIn0seyJjaGFyIjoi6L+YIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi6KaBIn0seyJjaGFyIjoi5oOzIn0seyJjaGFyIjoi5riFIn0seyJjaGFyIjoi5qWaIn0seyJjaGFyIjoi5LiaIn0seyJjaGFyIjoi5YqhIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5ZyoIn0seyJjaGFyIjoi5LuAIn0seyJjaGFyIjoi5LmIIn0seyJjaGFyIjoi5pe2In0seyJjaGFyIjoi5YCZIn0seyJjaGFyIjoi5Y67In0seyJjaGFyIjoi5YaZIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5p2hIn0seyJjaGFyIjoi6K+tIn0seyJjaGFyIjoi5Y+lIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi6ICMIn0seyJjaGFyIjoi5LiNIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi5YmNIn0seyJjaGFyIjoi6Z2iIn0seyJjaGFyIjoi5YaZIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi5ZCOIn0seyJjaGFyIjoi6Z2iIn0seyJjaGFyIjoi6ZmkIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi6ZeuIn0seyJjaGFyIjoi6aKYIn0seyJjaGFyIjoi5YaNIn0seyJjaGFyIjoi5YigIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5LiNIn0seyJjaGFyIjoi5LuFIn0seyJjaGFyIjoi5aKeIn0seyJjaGFyIjoi5YqgIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi5pWwIn0seyJjaGFyIjoi5o2uIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5pONIn0seyJjaGFyIjoi5L2cIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5LmfIn0seyJjaGFyIjoi5L2/In0seyJjaGFyIjoi5pW0In0seyJjaGFyIjoi5LiqIn0seyJjaGFyIjoi5o6lIn0seyJjaGFyIjoi5Y+jIn0seyJjaGFyIjoi55yLIn0seyJjaGFyIjoi6LW3In0seyJjaGFyIjoi5p2lIn0seyJjaGFyIjoi5YaXIn0seyJjaGFyIjoi5L2ZIn0seyJjaGFyIjoi5aSNIn0seyJjaGFyIjoi5p2CIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiODg2Mi0xNTkxMTgyMzI1Mzk0IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1LCJiYWNrLWNvbG9yIjoiIiwicGFkZGluZyI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W10sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI5MTI4LTE1OTExODIzMjU2NzYiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsImJhY2stY29sb3IiOiIiLCJwYWRkaW5nIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi6L+ZIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi5pyAIn0seyJjaGFyIjoi6L+RIn0seyJjaGFyIjoi6YeNIn0seyJjaGFyIjoi5p6EIn0seyJjaGFyIjoi5LujIn0seyJjaGFyIjoi56CBIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5LqbIn0seyJjaGFyIjoi57uPIn0seyJjaGFyIjoi6aqMIn0seyJjaGFyIjoi5oC7In0seyJjaGFyIjoi57uTIn0seyJjaGFyIjoi44CCIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX1d-->以上是关于代码 重构 总结的主要内容,如果未能解决你的问题,请参考以下文章