diff --git a/auto/gui.files.go b/auto/gui.files.go index a87cff787..8ef98efa4 100644 --- a/auto/gui.files.go +++ b/auto/gui.files.go @@ -28,7 +28,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["angular.min.js"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffec7d7b73db4692f8fffa1463febc216953a06c6753fbb32ce712d9ded3c6b15d9695bb2a45b90289a1880804183c24ab6c7df7ebee1900f3044159f1ee561d2bb1484c4f4f774f4f4f77cf03d3293bccd6d7797cbe2cd9e870cc1eef3dfa96fd23bcc866ecc72c3f67611a01445ae6f1ac2ab3bc60a38273562e393b7cfbe6c3fba31f4f3ebc7d7fcc1671c2c7c10ea0fb214918a12b58ce0b9e5ff22860270567d902aac5052bb22a9f7336cf22cee0e77976c9f394476c760d8db19f8f3eec16e575c2115712cf795a607361c9e6503ae36c915540529c120daf8f0e5fbe397e49cd073b3bd307bf17499c966c966757d0f65356e6159f405b6919a715af7faf93aac0ffc56ff6600a35cf936c1626ecfe53b608930280c2f4bc4ac25cfe46a09d61055f0a90c5bc1ceeefec5c86392baed339b0959eb383ba46b0caa22ae1a36153369cb0d3e13a2ce661b2cef97c5906651ea64512967c7836de2744559ecc42407fc0862037c2dfd40f8081457c3e5a54f020ce5236babf2ccbf5bb3cbb8c239e4fd8fd065ffd6ccc3eed30f8688041c41761959445f0b1c817ffc94378f6265c51a3ffbd7b78fcfed5ee87ec82a7d0f886ba87597611f3baae565354b5080a4076c76558c6f357d059c5eb0c1b1f0922f1038259c41f9fb2610262dc1d4e9a82a25a8882e0f7224b87f4fc068486ffeb222af32c4900e9f0e5254fcbc3324f40f08acc8a79b6868e25b61af9d0c320098b926a013b6995244200d82f590a1a855c921ab4cfb1c6d10b78be2759266da8e6735e14af52846f1a8ec232acdbc34fbc60a37b02affa5821e73e5fc5e5687872f496a086e37d0daaa109d5b72dbad9d19a90143e677b662b4850b0c8f297e17ca92815470198b0f801d916198cb0243b1f0d086a3061f43788a3fa5b798dc215df89e37d0b8fc69d55cba870a3fcbed96f5973f41836774a4c253c3d2f976c973d3a6b6b375d655605ea15c4052f3fc42b9e55a52213ab83507982735e8eea01fb900da7447ff17d11a7737e308447a2c9b1563590da316ab4c428e7799ee523fa17ca14ee27ecaf7b7bf2c18da26e1274a3b2f5d4b5c5a253d994014084dca1e0921868387834bc3b813ddab324b625055dad5b2d7718a3e3fa69b741528d387c4fb2798850b518b1bbc1445ebe80626174eaa7c0d0db9f345b804f710e09f3524c4cb2e7548337cf56eb84131d07ecd3cdbe5e86b38deff9518a1c690db6e52927de0abb32c90a9f9f9e69cf61b2e4890dbebaa6113b1c6a4f530076e058e75999cdb3e470097307b8129aae4a989cafb3bc04f1857663a2ec1d8837e657deda0ea6c0174a5f226336a9d5fa3c8729ee285d64b29e5b091f0ea638e30dc68dbeb50a8205853a90c4c4939eb7aa0e569c8df0714c5a017f9e1144214d213c79f8d01c8b0800e004771a9fe9e31d0dc66598c4d16b4213a711fff87641b48cd9f3037b3621b61addc5795e00dbf67f96f3f0c2b0f2863db9196b6a7a3f4b4783663088fe3d16721aa843c9252434f8754de8a93087c96e1ce8e213f324726658ab4e7e6e1a2744534ecea31f5af56fa087f96a08eecb0b9e285e0d3c8ce25c3e07ab1de763b5144d0916e250539f9759355f62c1c93a42ef5114dd98641ccd3d44e47c05feb6930ebba82622caaed204fc35272130d1f13c2e2e1a52ccee6bbd18b5c3c8ec82939d6ba2571d0da7f723f1c6294c59ca6397b56baa8c86ff2fe5e555965fd0501d8ed1e684c968b804bf54430e902da66eb862599528173794a91ab51ce40cbbbd20eca9999cc8965a4b817d5c7f9a85f38b28cfd6d07705f9e340ce05bf9e65611ec960e766a3ae1343e8ce7369737bf084e33212f6174ac847d4d9516704e1cea1d93df3f82d265880dc70e90d0665d68b85d7601f9223347162407d311f10c540a72cdf0345a386b6b1e26542582b9a62ca148ca4570519f310e26731cd51d47b0501e732ccb9889d1119bb8acb65608e089aa05469bc411c0e271f711f2e2c7d91741f3634d58084e8e8c584a9dc3492edd2f7f760504afe3584eb6782a090139b7e27cdc8ec8bb8909e4c2f8a410b39f4a6ed039dd60c409871b6a1cdc32d1aa491bfa139cf98f1816b5345d34e3a5b174fd9dec42a014fdf577494fe785df2e24356868913e06d556e80f8218aa017017d4361084f74b89b7d377b75c76fe6ee7f4a4100040a5ed41d86e3907c61ca6238faccec2ecd810edeaea9078293f73f8027b32ed16375f85560298e16ac2ac273ce84878af3db322cd80cdc4e9672b0031c0c468d2305eb11f1394e14d1c4c40476e42a8460b9cc58585c50f20c1c9b1c7fafc20bce42365f66f19c07ecc78aac4e94a5c392ea98a8a0caac3a47142b1655391285f3711c2618095610c91419d92d5e225aca1491d1b210011125048e2235c8d922ce8b925dc6455c06ecbf963c95893f8101ccdf1a338a364198a36c7001d82a237b19a6982cccd912fe2958789e4d902ac9bd89e38f0aa652741477b412344744d62f48154e2ed9bc5a61ea405085062509e77c341d7dff14fefbed73f060ffd7e2c1b8ad04bf7e3d807f46a7bfed9f3d18070fee8f3fff06ff4e276c70ffd1606c7bdff7daca2e5fdb2001881ab4150e0610d562900856ef0adce2876cb0bf0a3fee821251d193bd078fbf7df0e4bbbd3dc30f671cb39c0e2b00043d5444f04cc5becb04ae07146edb95f1839e48757bffa321b057d840d3079f65301c79f40afe2dd4e0ab19a5ea444253823103013d2856050c6587908603a6b7750af52cd3eb00413d924f3b3226243c67ce825c9fef911c4a36f11493e927ef8f70e2cb52500dc1942ba434d3435a63aa63455e84f4a6ecdec08f961554453521498919d7d59366a24f646b269450b03c4f8f086befffc6ddb3c7d71096ac3491ba455910e0b0afa8f4ec044d30f8dd391b09d44e11ba4427481e5862bbe9e6d4f0d884eccdf9074b608e3950e9b73dc0b2ca5345fa1d23a26d14c70561ff171a1ead1bf03d92466344d238fce6ce478dee8e350e08366831ebd012b38a9264323f375da3d6c4a30d60a5747fc78905fb183c224c224dd89cb2ea7b6e2a9a8cd37cb5c675b85bb08e22c3daa89103e1880dbae0f153afe1b989f28b073fc8d8c303afa48094333f5a1406547e74077d12085e31770a144d11b5a73b5c0642197413d68ef589b707fe39a6f7b08931303f50f4b0c14a54d2db10a302820f02a26cdd11dde92d310f3c4298dd26733e06a113c3bacf1519bda024daa1be2e3252ff9856a07d5641983e1c76e0acbfbd4adf81b7c3f3f21aaa8d7d6aee576f5bc3cafcda838516c220e209287603f27f0ecb6500fedf08faf86fec81902541a8811a48c811209a5028bc32726895d6b2880d3b9bd642407fdb1a98b7f11b360fcbf912022f9f682da1780c9bcd8203d0e786e2c7b90cd26ff26f074db1b50740f9bd3ee34c2cc16cebeb340b37fd3811d4dcc28da11d0ebd8c05006e652760141ed64b5af7e2e2e56a5d5ebf9dfd0ef2d603f3b16106cce5305b00eeb8fe750c9e1c58bf9c1d7442c84447f07b16a7238882861e02ea552f1d1725f89ce4a4dba5fe3446b429a44dffb97328f8f1e651a8b38de966dc416f91e5a52011880873ee1146bd12877f7f0ed7466a05e30f8852b33ce685d198e8f10066b062a4e21a3b2465fad0f5c78a1b6d03a1e5636f958a351aeb48c97a48b066795394344135a3a2431fe4de002dd96522dfe963dca0badb24f41aed535a89dad26e19abd5d20d6e9f794d93b2c6a4ecacd04c9311653a32d0c29ab90a74e768a3042e795e00f8b6dccb6a96d5ea2173916bdcb6416d7d7deb36e56af9b68dea8bec66ab729746c79e14df52bda5197a065876a6b6ef664bf530b5c080a8e7744ff3ebec58ac18a914b8027fdc5e952d9c991d88bd86551af105e68b87ee6c00425ca4b8ccb9ef4a0c588b76c2dec529ed1f60f7b0092fe6a2ccd66b68d989b906c240ddd1022df57965739884c557104d0cfaf227c825c2f5d4dc8d98f618ca65ce1eb2a9699155a04e1c25dcdf2362e80d5d71a08e06ed312d917b30adf37815e6d77d30cdc334bd2d2a474f18ea8084bee3f99ca7252ea3fcd93af1484dabdf6cd207b1e598621cc26fad00b9b16adab09ee3240510106139550ea73ad1c4d405a0d0b06fca9522b84592810d8566dcb6085d12dc6da289d6e1d8e8ab604d9c677899a600b45a5ed7f49b6f36fbaf4deae580a4e576ee84366517c39e6b23750d69b4cd6a5d866d05c17ee1d659a2dc3261ffde32b54d4b2fc1da837fa360fdb600a9c7906b935829b709f2d4222e9f7475438b809e418c45818cf8ba6cd9f71d4aa1eed9fc67b1a010018edb5f3aedb29f955ff8c66ea8d72d5a4afbad60181eb08bbe3f533c490c73cd2ffeb637f4334c2fd11b5aad31a4a3b38b1cac30efa5260664dc1f272557bd5ea4b76e366d45c904d67d2d5c441625de7a2ffd3d18dc1e8e9bf9b0835189ed74efccab0cf218c9466d90b3b32ced39250f06be19b9e96768de535905e9e051d718086166459963def33bf7a4897bb9deb81837bb58acdb99d54646872972e92b9491f4eba9d2b853449be4d34738bd25c3a3b83ce625ee7429bc92994ec135a13d2bb8bd11f79f40ddeb36c294d25aad65ba4d399a8580eedd38f626d3164170f2fe651ace12da5a3e7215371b79f0b48d0bd3df4f8ebac90000738ba99443dfad13b886e309588bf0923729506746834c220e2af68fe3b76f023ce4969ec78b6b2b43aa56c8d625edaf58d249b2e229fb84a9a2120ce0ee07d049da1ebc5e27b1d8833da5f35b374a782d7201ebac70a6782748d0841a71a505fa1d30b94d0249115cff241249dd95efb67ba2b78217550eff642b2e4e18cec5565bbdcf9a230ff76ae5e27f546152b8b57c622bf7987dfe6cb12f3edd28416327ba861b7649d2e6d8d776b8e4f30b84f1ee6ee372bce19eb6b8a0ef3e2fd6394e5bffd53d4e9ff90e3274552237d7bd714add05702b82d0706c4dceeea3ce64ac2ae9fa8c0cbb8a71873187fab8918f371a446b31b49ddc10b4ddedc149c13fbc3ea64486a600b2c0cf887d52473fc2e866e2073022d740f315ab6d22c3831d4972bde36843d7788fd555f4dfb926d132eb47a06bbc97027db567c39ad07199070598cc72349ca0e10fd78ab1faa878721f0330d1985cb4d3fb96d11f8d9df903e72433c0730c035fe291f4a323efa91cc3d03b56c700101fe232a1bd8bef9b47033ff48f5944fb8f9ac3748c76c3d7c5c14063ca718863db6d879ea94962761c49711e8e532dfaf1558cebd4577cb6469bd78c47189b381a15fbd60e3963b818e34a9c099468c0ed439287d6528f77f8daa3d44466c5eb3a6ec7b9cf9163e85f4148935d05cd512ca595faabd14c737cd3a5d69d87fd0495f4afaeba32c7ef555dbf7e9e50cd5ba8675557fc6adad9b58a627bf0deb1da9f4505499cc27482bbb0d14ccbd85b61bccf6a4ccfe3573ecf4a9ec8ba957572cb5339e4d5c3ff749d0adbfab4554fc3e2e01f432767e6c088a46bb4559e83a32e6bdc0ff847987da2d1a79b491dcedaa4601320be971f61aaea30f212ec98270bb105cb48e268391c9bdf96b03a5fc60bb199a2c6d43cd6b64e187810f865847b0182fb60a9dee544b4163c6397d562bb83282bb633379ae0a1b538fa433980582cb3aba11b57186d40e6eac54faabcf0e0e6751aae887eccda6109e0912cf4e85cf320a5ab77dd305f5ff6e214d646f95b2d5ad64575e40d91b893206ed7cab973a72341e7ccaed44346f1b3d5d1214a7b180fb103c5a043995ddb43e491b2a357ec8ef1aff68b5d7a066aa3a007b35fc0b0c9b4dd01b60fec88c73bb5a64ec31d622e22ca523e61f1fece964ad5a42c1d5c5950ad797399bc2f0d1090057bdc8a5daded15029ac276dc24a084e1047b1a9fa9c97addf477c4db75e596e37d0b54526efb2af8d970b5803ebc119347b105c7ebaa588eec69d033c05d5bd70cb87ee3b0afd26678f0afc6e57376d4b510afe1e96d77f4532e1e235c27a83b07530c0e86697b6ea179a92146e73d1669cf95239579bf1239380e93a4bb1f6af3a1f47adb7b23c34448c5b3d2fddafea026a95eb8dd40f4b23197d05335c4f65e5b377c297f1e60ccc79e37ca5a5f81b2513be6090ff397f56ee24eb746bd5745a3f354a75ab9ee89c8dae8d153bd2951e271bc16790c7e70726d776b51e62aa9ae9b57fa2a6f9b6def54e182bc5ef8b739663a57767f1a2b685836769ee1903d07783c599d75d647616a387df7ac3716c14db2dbc522b286966df3c6224a1d5097840ecfd77df6c9f66e5570ef7e5cdf4e525f53a7a9b23ddab88bcd70291da8e42231fadaca6e0b274080cb29e2b85411e3fabb755cca452a41e26d7b4a4b1db1be5df727ced750e361376defc23c5c15c10500bbb46f13f6eef2cf9fd95f6f1b87a282f68c42b0d93b8842206ab3d47ea3be7fd274ea2968efed83b3afcf323a2b9d3c8bdbc8d6d906075a23c772a02502a7ba58508d9b757a6697e90358f109ec31dc5878b15302432327169753ec6e2eadadc58168cbed87284c0887e093b0324f2521d6fe7ec7a893b79238c9d8d7dde106c6612f6c2740c06a16c5e661582fff0a9c43fb64c850580d80b16b53399a13c43094278b5b0ad12e388e9ae822d125644ac3c1698f0a3fe916ceb579cda8e7426f0711ed5911ac233451fef20512ea391709ed9a9ab70f87f1aea1c218cfb586587e2d781dbe61e69d6371bf89e9ca231ecdf56d7c9ada2993bba246ca6692f1d8933715e828267338ce544869c3c18479d6b9442f765bf25e66eb6e9249fa0d43425b1cb3a6b657ed2ba90b2f7f7877f413dd0dd0ca69aeab0afaac0d541ea651b63aa6ed25a3277b13f6e4b1825a9f4c699dfbe4fdc6d9d47fab8e58afc7d5b7d7617e8ed7dde0ad30b84a91e06ff079793da38a3d08f5cac56649d44a50792e94b3548a2ee6f9326ed4e5febb220c73d06fb85847f3ee8daf8725ad538a73600e1784ae9ce374466c7bb7823038b6f00ca688535c7632b8836b1b3456ac43437e66ddeebdb99bb1b902521327dd8e6e18cfc50b31aa0fd8b77bffffbb7da32cce61bace721c318fbe7bf2b76f8d299b3006af92f0bc60df007e81eb615b6f3c261fc351e0396621ae81b46637bb318952c3ef47da0f634b9c40ba895871f9e486a9b8d97a8e5bbfccc0c44ca8c1b0cfe3a8fb808833a5301097f14c6b0cb753546f969dce158c362f7e86b3acf207f0383209a2d7d21316bd376fc4ed5e34d781bd4b94eab59d30751ca525cf2f811a9d5db1fa8fcbff94b86e9a5612aca370c2663525ca16d89036a38a0356ed26580caf25c0cc09606e3496689e49f0b14baf545b2c1fc96acf653529821d05ab882308af951137f08a7a2d6651f5795315a4a3c886dc2e8f6cc2a03527d8b4737875b7de2278ae22b069c013d9498d9736a92be998c475d25a2562759ad7eeaf24432a4bbd97dc6e90dc9895da62a278a4c6c2d64a6d2c111ee70a17abc62ad789f01d1591ea54243a1530b3c72bdc1d099a3c6169a51113c5e771594c10a80ebbe4fdcaf6892f897eafa685fe0804ec403d8c455ff180357d0967d4f4186fc8684a1eedd5de31b6ccf4db388046b62b31ebac09323519abfe5ac253d02dacb523c89e09dae8cfe7cfec899cc7686f70558a45fb01de56c3af8eebece3d5128c3f1b89f23a83fb8cc11731ce5a81885a35f18292d1382833490e511214f89690d163c546caa61f1e480c120438175200df5f1688d6270c390391683435f1853616244899bdceae787e0893001a345562fa0513d9ec77551fd2c62e906ae24f544c054a694bf1af341a847dd57550b92e6bc2aec2f6e640bad849ecd2a29b440bf13a14fe117ee27370cb566bbc4aa0a81284380fe35479c5005e819d776d1ac7371db003fd52c006af1e0911e8338dbafa2329c46c77bba98cda16dc0052ac3dde30e7b768da9778a8141077eea40bb22ff90c70d3faf5a811134acd71cd822c6774536de16c133fd4a6ed2db7bdda7eaba7cbbaff5d326f5bc5f5a1169fa401fed0e5904a49d31b5a37e91ee79c16b270f2be27656804b1f2e9b6fd66886d5b316f10b153076a797bdf8dd22c67202d8d9f72a3bebf41ae860dd3104043fdad0db5088c4e62a3385de318a333de8ed14cc560385ec51f79346a660dad56eb90192f94a8099ac5299e87ec4f8fe9dad0439a7b1af7c7e765ef31eff96d81e539386a8fbf650fd43f562e9420a7070e5053357a48e9f1186f341db2bfc7db90d687a62f20e6e77ec47452f105cdffe46e5e3dc39de33bb36a7dc03ac34d7ab6e2f896ab7f213da303eeca9f0e699aa05fa267db50d687a42f51b35eb47412f105ad5ffc094a0681665ede52c734e29dc70a3d8d86c955785dbca956339e7f15fd76de08a192df4b4cef40c4774cae8b58f5b42c1d2f0873f2f0a59c69dfd9f4f4d7e9afbf9e4dcd3cb780853080be349efd017be2918cc2bd533a832008a6984a11088517af22df7d3c96a9fce960f3d409be3afadbff9e52f49ec1de24444273aa49edd1d92659e10699f4cb46a623fd2540db2bd3ff323d9fe045383e6a22ca33c4977c34cc281d2e56b6bbe852c9102f6a7cca8687cafaa36c5cbe09b2f591f1753ff3a48aac124a4d99ab94f2d414e03e905f95266e14b47cb5466f18009f09e5c13cd4c1009dda014bcf7729797830d093fea71227bebb60f0fcd9946a3eaf5fb0d325a62a8dffa868e14a1152978cfea8a03250979eff8c94285c24717af1b4c541629880bfbd0247bd2c730c23cb3c3195129f05f741db0a9e17419516cb78a19c0ec204e12f61e25ef8a68b81fa2c95d51ff15a03308f5512e1cb0ac88706693b81056520d95f102a2eaf0d691937e0369dd966add5e5b78611ef3dc7f2fd06f4c6165a642a5898e43c8cae6f451e458f7efa36d380079208e19d4ac71148938e35f231025e6b7f5aa73a538762ba3356dfb131d25ee0f97f4aad779b2eb36ead7653e03e489f12caefe3e860f8b0e5d8b196018677ed63ae9608c2883d9c5d90bd38f40d8c5eac7ea91c9b469c259b5f63819f3b1d31b4bab3f504f972684f5927790225842f5896abe4cee7d0120f584213ff61ec0e12efc27214c4733cbc643d9e2759e1c2432bfcc6f39bfa257528c1ff050000ffff010000ffff9c8eb9b5fc7a0000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffec7d7b73db4692f8fffa1463febc216953a06c6753fbb32cfb1cd9ded3c6b15d969dbb2a45b90289a1880804183c24ab6c7df7ebee1900f3044159f1ee561d2bb1484c4f4f774f4f4f77cf03d3293bccd657797cb62cd9e870cc1eee3df89efd233ccf66ecc72c3f63611a01445ae6f1ac2ab3bc60a38273562e393b7cfbe6c3fba31f3f7e78fbfe982de2848f831d40f73c4918a12b58ce0b9e5ff028601f0bceb205548b0b5664553ee76c9e459cc1cfb3ec82e7298fd8ec0a1a633f1f7dd82dcaab8423ae249ef3b4c0e6c292cda174c6d922ab80a438251a5e1f1dbe7c73fc929a0f7676a6f77e2f92382dd92ccf2ea1edc7accc2b3e81b6d2324e2b5eff5e275581ff8bdfecde146a9e25d92c4cd8ddc76c1126050085e9599584b9fc8d403bc30abe14208b7939dcdfd9b90873565ca573602b3d6307758d60954555c247c3a66c386127c37558ccc3649df3f9b20cca3c4c8b242cf9f074bc4f88aa3c998580fe800d416e84bfa91f00038bf86cb4a8e0419ca56c74775996eb77797611473c9fb0bb0dbefad9987dde61f0d10083882fc22a298be053912ffe9387f0ec4db8a246ff7bf7f0f8fdabdd0fd9394fa1f10d750fb3ec3ce6755dada6a86a111480ec8ecbb08ce7afa0b38ad719363e1244e20704b3883f3d66c304c4b83b9c340545b51005c1ef45960ee9f935080dffd74554e6599200d2e1cb0b9e9687659e80e0159915f36c0d1d4b6c35f2a18741121625d50276d22a498400b05fb214340ab92435689f638da317f07c4fb24cda50cde7bc285ea508df341c856558b7879f78c14677045ef5b142ce5dbe8acbd1f0e3d15b821a8ef735a8862654dfb6e87a476b4252f894ed99ad2041c122cb5f86f3a5a2541c0560c2e207645b6430c292ec6c3420a8c184d1df208eea6fe5150a577c278ef72d3c1a77562da3c2b5f2fb7abf65cdd163d8dc093195f0f4ac5cb25df6e0b4addd74955915a8571017bcfc10af7856958a4cac0e42e509ce7839aa07ec7d369c12fdc5b3224ee7fc60088f449363ad6a20b563d4688951cef33ccb47f42f9429dc4fd85ff7f6e4836b45dd24e84665eba96b8b45a7b229038008b945c12531d070f060787b027bb067496c4b0aba5ab75aee3046c7f5d36e83a41a71f89e64f310a16a3162778389bc7801c5c2e8d44f81a1b73f69b6009fe21c12e6a5989864cfa9066f9eadd609273a0ed8e7eb7dbd0c671bdff3a31439d21a6ccb534ebc15766592153e3f39d59ec364c9131b7c7545237638d49ea600ecc0b1ceb3329b67c9e112e60e7025345d9530395f677909e20bedc644d93b106fcc2fbdb51d4c812f94be44c66c52abf5590e53dc51bac8643db712de1f4c71c61b8c1b7d6b15040b0a75208989273d6b551dac381be1e398b402fe3c2188429a427872ffbe39161100c009ee243ed5c73b1a8c8b3089a3d784264e23fee9ed826819b3a707f66c426c35ba8bf3bc00b6edff2ce7e1b961e50d7b723dd6d4f46e968e06cd6010fd7b2ce4345087924b4868f0eb9ad053610e93dd38d0c527e649e4ccb0569dfc5c374e88a69c9c47cf5bf56fa087f96a08eecb0b9e285e0d3c8ce25c3e07ab1de763b5144d0916e250539f9759355f62c1c77584dea328ba36c9389a7b88c8f90afc6d271d76514d44945da609f86b4e4260a2e3795c9c37a498ddd77a316a8791d905273bd744af3a1a4eef47e28d5398b294c72e6bd754190dff5fcacbcb2c3fa7a13a1ca3cd0993d170097ea9861c205b4cdd70c5b22a512e6e2853356a39c819767b41d8533339912db59602fbb8fe3c0be7e7519eada1ef0af2c7819c737e35cbc23c92c1cef5465d2786d09de7d2e6f6e009c76524ec2f94908fa8b3a3ce08c29d43b37beaf15b4cb000b9e1d21b0ccaac170bafc13e244768e2c480fa6a3e208a814e59be078a460d6d63c5cb84b05634c594291849af0a32e621c4cf629aa3a8f71202ce659873113b2332761997cbc01c113441a9d27883381c4e3ee23e5c58fa22e93e6c68aa0109d1d18b0953b96924dba5efefc1a094fc5b08d7cf0441212736fd4e9a91d91771213d995e14831672e84ddb073aa9198030e374439b875b3448237f43739e31e303d7a68aa69d74b62e1eb3bd8955029ebeafe828fdf1aae4c587ac0c1327c0dbaadc00f13c8aa017017d4361084f74b8eb7d377b75c76fe6ee7f4a4100040a5ed41d86e3907c61ca6238faccec2ecd810edeaea907828fef9f8327b32ed16375f85560298e16ac2ac233ce84878af3db322cd80cdc4e9672b0031c0c468d2305eb11f1394e14d1c4c40476e4328460b9cc58589c53f20c1c9b1c7fafc273ce42365f66f19c07ecc78aac4e94a5c392ea98a8a0caac3a43142b1655391285f3711c2618095610c91419d92d5e225aca1491d1b210011125048e2235c8d922ce8b925dc4455c06ecbf963c95893f8101ccdf1a338a364198a36c7001d82a237b19a6982cccd912fe295878964d902ac9bd89e38f0aa652741477b412344744d62f48154e2ed9bc5a61ea405085062509e77c341d3d7b0cfffdf625b8b7ff6b716fdc56825fbf1ec03fa393dff64fef8d837b77c75f7e837fa71336b8fb6030b6bdef3b6d6597af6d9000440dda0a0703886a314804ab77096ef17d36d85f859f764189a8e8d1debd87dfdf7bf4c3de9ee187338e594e87150082ee2b2278a262df6502d73d0ab7edcaf8414fa4bab9ffd110d82b6ca0e983cf32188e3c7a05ff166af0d58c527522a129c19881801e14ab0286b24348c301d3db3a817a96e97580a01ec9a71d1913129e336741aecf332487924d3cc564fac7f74738f16529a88660ca15529ae921ad31d5b1222f427a53766fe047cb0aaaa29a90a4c48cebea4933d127b235134a28589ea74784b5f77fedeed9e32b084b569a48dda22c0870d857547a76822618fcee9c8d046aa7085da213240f2cb15d77736a786c42f6e6fc832530c71ca8f4db1e6059e5a922fd8e11d1368ae382b0ff0b0d8fd60d7886a4d11891340ebfbbf551a3bb638d03820d5acc3ab4c4aca22499cccf75d7a835f168035829dddf7162c13e068f0893481336a7acfa9e9b8a26e3345fad711dee06aca3c8b0366ae4403862832e78fcd46b786ea2fce2c10f3276ffc02b2920e5d48f168501951fdc429f048257cc9d02455344ede90e97815006dd84b5637de2ed817f8ee93d6c620ccc0f143d6cb01295f436c4a880e08380285b7744777a4bcc038f1066b7c99c8f41e8c4b0ee7345462f288976a8af8b8cd43fa615689f5510a60f871d38eb6f2fd377e0edf0bcbc826a639f9afbd5dbd6b032bff260a185308878028add80fc9fc3721980ff37823efe1bbb276449106aa0061272048826140aaf8c1c5aa5b52c62c3cea6b510d0dfb606e66dfc9acdc372be84c0cb275a4b281ec366b3e000f4b9a1f8712e83f49bfcdb41536ced01507eafcf38134b30dbfa3acdc24d3f4e04353770636887432f6301805bd909188587f592d69db878b95a97576f67bf83bcf5c07c6c98017339cc16803bae7f1d832707d62f67079d1032d111fc9ec5e908a2a0a187807ad54bc745093e2739e976a93f8d116d0a69d37fee1c0a7ebc7914ea6c63ba1977d05b647929480422c29c7b8451afc4e1df9fc3b5915ac1f803a2d42c8f796134267a3c8019ac18a9b8c60e49993e74fdb1e246db4068f9d81ba5628dc63a52b21e12ac59de14254d50cda8e8d007b937404b7699c877fa1837a8ee3609bd46fb9456a2b6b45bc66ab57483db675ed3a4ac31293b2b34d36444998e0cb4b066ae02dd39da28810b9e1700be2df7b29a65b57ac85ce41ab76d505b5fdfba4db95abe6da3fa22bbd9aadca5d1b127c5b7546f69869e01969da9edbbd9523d4c2d3020ea39ddd3fc3a3b162b462a05aec01fb757650b67660762af6195467c81f9e2a13b1b8010e7292e73eebb1203d6a29db077714afb07d81d6cc28bb928b3f51a5a7662ae81305077b4404b7d5ed91c2661f10d441383befc097289703d357723a63d867299b3876c6a5a6415a8134709f7f788187a43571ca8a3417b4c4be41e4ceb3c5e85f9551f4cf3304d6f8acad113863a20a1ef783ee76989cb287fb64e3c50d3ead79bf4416c39a61887f05b2b406eac9a36ace73849010444584e95c3a94e343175012834ec9b72a5086e91646043a119b72d429704779b68a2753836fa2a5813e7195ea62900ad96d735fdeebbcdfe6b937a392069b99d3ba14dd9f9b0e7da485d431a6db35a97615b41b05fb8759628b74cd8bfb74c6dd3d24bb0f6e0df2858bf2d40ea31e4da2456ca6d823cb588cb275dddd022a0671063512023be2e5bf6ac4329d43d9bff2c161422c071fb4ba75df6b3f20bdfd80df5ba454b69bf150cc30376d1f7678a278961aef9c5dff6867e86e9257a43ab3586747476918315e6bdd4c4808cfbe3a4e4aad78bf4d6cda6ad2899c0baaf858bc8a2c45befa5bf0383dbc371331f76302ab19dec9d7a95411e23d9a80d727696a53da7e4c1c0372337fd0ccd7b2aab201d3cea1a0321ccac2873cc7bfee09e34712fd71b17e366178b753bb3dac8e830452e7d8532927e3d551a778a68937cfa08a7b764781497c7bcc49d2e855732d329b826b46705b737e2fe13a87bd54698525aabb54cb72947b310d0bd1bc7de64da22083ebe7f9986b384b6968f5cc5cd461e3c6de3c2f4f78f47dd640080b9c554caa1efd6095cc3f104ac4578c19b14a833a34126110715fbc7f1db37011e724bcfe2c5959521552b64eb92f6572ce92459f1987dc65451090670f703e8246d0f5eaf9358ecc19ed2f9ad6b25bc16b98075563853bc132468428db8d202fd0e98dc2481a408ae7f1289a4eeca77db3dd15bc18b2a877fb21517270ce762abadde67cd91873bb572f13faa3029dc5a3eb1957bccbe7cb1d8179f6e94a0b1135dc30dbb246973ec6b3b5cf2f939c27877b77139de704f5b5cd0779f17eb1ca7adffea1ea74f7c0719ba2a919bebde38a5ee02b811416838b62667f74167325695747d46865dc6b8c398437ddcc8c71b0da2b518da4e6e08daeef6e063c13fbc3ea64486a600b2c0cf887d52473fc2e866e23918912ba0f992d53691e1c18e24b9da71b4a16bbcc7ea2afaef5c936899f523d035de4b81bedab3614de8b8cc83024c66391a4ed0f0876bc5587d523cb94f0198684c2edae97dcbe88fc6cefc81739219e03986812ff148fad191f7548e61e81deb395bb1ed6e40cf8c21313b4e8a38cfaca986f6f832c6e5e34b3e5ba3296a86090c191c248ad9694782a1c586ba8ba37a120d786348f2d05a81f18e2a7bf098c8ac305ac7ed388e39728cc84b8834b2cba03921a5b4527f359a694e55bab4adf30c9ea092fed5354aa6de6faa51a2fa9fa0505deb11aea336b7a0da7e9eac03487d9636fa62727b29f274d38dfac52d51e5c0543f915a27acb63eb9d4d31a38f8c730c419851b51698db6ca73707a658dbb01ff04963c1a7dbe9ed4a1a14d0a3601e27bf909ccbe538c1ad8314f16623b939110d1f22136bf2d6175ee89176263428da979ac6d4330f020f0cb08d7d583bb605edee544b416886297d562bb858825b6b3209ae0a1b538fa4339cc572cb3cba11b57186d40e6eac5cfaabcf010e4551aae887ecc806109e0912cf4e85cf350a2ab77dd30df5ef6e244d346f95b2d5ad645758a0d91b8130a6e37c5b90ba623d9e5cc54d44346f159d5d1214a7b180fb19bc3a0439912db03d991b23b56ec34f1af9c8b1d6f066aa3a007b35fc1b0c9b4dd01b63fe9886d3bb5a64e691d625c1f65299fb0787f674ba56ad27f0eae2ca8d6bcb94cded73adbc8823d6ec50ed1f638bea6b01da7f2959096604fe25335f1ad9bfe8ed8b5aedc72bc6f814acaede00b3f1b8ee9ebc31b3179145b70bcae8ae5c89e063d03dcb50dcc80eb370efb2a6d8687e86a5c3e67475d57f01a9ede76473f31e231c275b2b77330c5e06098b6e7069a971a6274de0991f65c855199f72b91836388e7bbfba1361f4aafb7bd37324c84543c2b75aeedb56912d485db0d44271be3f29eaa21b6cadabae14b9ff3000335f6b451d6fa3a918dda314f7898bfac77e676ba35ea1d251a9d273ad5cad54944d6468f9eea4d89128fe3b5c863f083932bbb5b8b32574975dd62d25779dbcc75a70a17e4f5c2bfcd91cdb9b293d2588dc2b2b1f33c84ec39c0e3c990acb33e0a53c3e93b51bdb1086e38dd2e169135b4cc95371651ea80ba247410bdeeb3cfb677ab827bf7b6fa7665fa9a3a4995adc6c6bd66864be94025175cd1d756762e3801025c9a10478f8a18d7b2ada3472e5209126fae535a72cd9fdeba3f71be861af7bb697b17e6e1aa08ce01d8a57d9bb077977ff9c2fe7ad3381415b4671482cdde421402519ba5f61bf5fdb3a6538f417b6f1e9c7d7b96d159e9e459dcecb5ce3638d01a3996032d1138d5c5826adcac9353bb4c1fc08a4f608fe1c6c28b5d07181a39b1b89c627773696d2d0e445b6e3f44614238049f8595792c09b1f6ca3b469dbce1c349c6beee0e37300e7b613b010256b328360fc37a2955e01cdaa72c86c26a008c5d9bcad19c2086a13ca5db528876c1716c4317892e21531a0e4e7b54f849b770ae8d60463d177a3b8868cf5d601da189f2972f9050cf8c4868d7d4bc7d388cf7f614c678ae35c4f26bc1ebf00d33ef1c8b7b374c571ef168ae6fe3d3d44e99dc61345236668cc79ebca940473199c371a6424a1b0e26ccb366247ab1db92f7325bb7934cd26feb11dae29835b57d5fdf485d78f9fcddd14f74cebe95d35c5715f4591ba83c4ca36c754c5b35468ff626ecd14305b53e99d29af1c7f71b6753ff0d3562ed1b97cc5e87f9195e1d8337ace0bd2b09fe069f97d733aa58cf677207de6649d44a50792e67b3548a2eb9f93a6ed4a5f3db220c73d06fb858fcf2ee33af87252d2e8a33550e1784ae6fe374de6a7bb7823038b6c30ca688535c1c32b8852b103456ba0e481accbadd7b736760739da2264eba69dc309e8b1762541fb0eff7feff0ffb46599cc3749de538621efcf0e86fdf1b5336610c5e25e159c1be03fc02d7fdb6de784c3e86a3c07364415ca968cd6e766312a586df8fb41fc69638817413b1e222c70d5371b38d1bb751998189995083619fc751f7610b674a61202eb699d6186ea6a8de2c3bedd11f6d5efc0c6759e50fe071641244afa5272c7a6fde2edb65b2ccab68bd4b94ea159830751ca525cf2f801a9d5db1648f6bf694b86e9a5612aca370c2663525ca76d29036768ac34aed86520caf25c0cc09606eda95689e48f0b14baf545b2c1fc96a4f653529821d05ab882308af951137f08a7a2d6651f5695315a4a3c886dc2e8f6cc2a03527d8b4737875b7de2278aa22b069c0d3cd498d97367c2be998c4756a5925627592d7eeaf24432a4bbd2fdb6e90dc9895da62a278a4c6c2d64a6d2c111ee70a17abc62ad789f01d1591ea54243a1530b3c72bdc69089a3c6169a51113c56771594c10a80ebbe45dc5f6e929897eafa685fe0804ec403dd8445ff1b0327d0967d4f4186f9b684a1eecd5de31b6ccf49b2d8046b62b31ebac09323519abfe5ac253d02dacb523c89e09dae8cf972fec919cc7689f6d558a45fb01defcc22f8febece3e5128c3f1b89f23a83fb84c11731ce5a81885a35f18292d1382833490e511214f8c68dd143c546caa6ef1f480c120438175200df5f1688d6270c390391683435f1853616244899bdce2e797e0893001a345562fa650dd9ec77551fd2c62e906ae24f544c054a694bf1af341a847dd57550b97a6ac22ec3f6163eba24496cada25b390bf16a11fe097ee27370cb566b3c965f5409429c8571aa5cd78fd749e75d1bb0f1ad01ec40bf60afc1ab474204fa44a3aefe480a31dbddee04a3b6053780146b8f37ccf92d9af685182a05c49d3be982ec4b3e03dc007e356ac48452735c5920cb19ddfa5a38dbc40fb5697bcb6dafb6dfeae9b2ee7f97ccdb56717da8c52769803f74d1a252d2f486d64dbac739a7852c9cbcef48191a41ac7cba6dbf1962db56cc1b44ecd4815adedef78c34cb19484be3a75cabef4290ab61c33404d0507f03422d02a393d8284ed738c6e8bcb463345331188e57f1271e8d9a5943abd53a64c6cb196a8266718a670bfbd363ba36f490e69ec6fdf179d97bcc7b165a60790a8edac3efd93df58f950b25c8e98103d4548d1e527a38c6db4187eceff136a4f5a1e92b88f9b91f319d547c45f33fb99b57cf43e7f8fea95a1fb0ce70939ead38be31ea5f48cfe8b0b8f2a7439a26e8d7e8d93694f521e96bd4ac172d9d447c45ebe77f829241a0999737d4318d78e7113d4fa36172195e156faad58ce7df44bf9db72ba8e4f712d33b10f12d93eb22563d794a6702c29c3c7c2967da77363df975faebafa75333cf2d60210ca02f8d677fc01e7924a370ef94ce20088229a6520442e1c5abc8771f8e652a7f3ad83c7582af8efef6bfa714bde799370991d09c68527b70ba4956b84126fdba91e9487f09d0f6faf1bf4ccf2678a98c8f9a88f20cf1051f0d334a878b95ed2eba5432c44b0f1fb3e1a1b2fe281b976f556c7d647c75ce3ca922ab845253e62aa53c8104b80fe457a5896b052d5fadd11b06c0274279300f753040a776c0d2b35d4a1e1e0cf4a4ff89c489ef01183c7d32a59a4feb97d57489a94ae33f2a5ab85284d425a33f2aa80cd4a5673f23250a17499c9e3f6e71901826e06fafc0512fcb1cc3c8324f4ca5c467c15dd0b682e74550a5c5325e28477a3041f84b98b817bee9929d3e4b65f547bc2200cc63954478f13ff9d0206d27b0a00c24fb0b42c5e595212de336d9a633dbacb5bafcd630e2bd3358be2b80de7e428b4c050b939c87d1d58dc8a3e8d14fdf661ae2820984b72a1d47204d3ad6c8c70878adfd699dea4c1d8ae9ce587d5fc5487b19e6ff29b5de6dbaccbab5da4d81fb507a4a289fc5d1c1f07ecbb1632d030cefdac75c2d1184117b38bb207b71e81b18bd58fd5a39368d384b36bf12023fb73a62687567eb09f2e5d09eb23ee6099410be6059ae925b9f43cbb84c7094fe87b13b48bc57ca5110cff1f092f5789e64850b0fadf01bcfafeb17bea104ff170000ffff010000ffffb824ab32487a0000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["app.js"] = bs @@ -73,7 +73,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["favicon.png"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffec7d6b7bdc36aef0f7fe0a66b6177b5f6bc64ed2f43daeed3dbea45bf792f8b19dede9e9d3b30f47e28c584ba2425276665def6f3f00a9fb65a4f13889f76c3f241e8924088200088024b4f7e4e4f5f1e5cf672f89afc3e0e093bd278ef3c964428e45bc907cee6bb271bc499e6eef3c27dfd12b31254742ce098d3ca81169c9a7891652910dc518d13e23c7af5f5d9e9f1ebdb97c7d7e41663c609b6304771804c480534432c5e435f3c6e48d6244cca01957448944ba8cb8c263041ee7e29ac9887964ba80cec88fa7978ed28b8021ac80bb2c52d81dd5c485d229233391004a3c3238fc707afcf2d5c54bd3fdf813c78151e1e04840a3f9fe88452312cd1d1ac7fb23b5885ce83e9a9b572e8e48040193fba38bace458cb6044dc802ab53fc24a81a0572304c9a877f009217b21d394b83e958ae9fd51a267ceff1f1505bed6b1c3de26fc7a7ff45fce9b43e7588431d57c1a30000b3db2085a9dbedc67de9c95da453464fba36bce6e622175a9ea0df7b4bfefb16b2083631eb660e05c731a38caa501dbdf196f3700794cb992c79a8ba804ab518d26da17b25123e0d1154c5c00148362ed269a701721f992cdf647337a8d8fe3180879f00936d05c07ec202722f99ddcdee23cbf82f97d053d6d6cdedded4d6cadbc030b6c2a84565ad278e22a35c99fc6218fc6f06694e281dca07cc6f4a80e40020d6ee8624965f34cf42286116bf64e634fa68490a9f016e4d6fc2424a69e07d83b53a1b50877c957dbf1bbafd3b21950c899d190078b5d32fa9605d74c739792572c61a32d92bfd8228712a6668b281a2907589fcf2c88bb4fcc1f7f678bf84fe1df33f8f71cfe7d99775fede2dc0e0b60afd15b12fcbf52072195731e395ac4bb6467fc250b2b75c7481a271491503105d96c45eb471605628bfc2822eac25f500a4a80ac0092c720d19c4940f10630ccc1d4baa0200728781e8ab477a08d546979805cdd2cc5d9e92e9d01af7497e690bda5905b4b73c85e4e85a9901e93967691886ae30ac45cd4c8bc4bb6bfaef255e98d01e37c59b0572c144761dd450e0675715def802bed44c29926a0af74de95796dd8db41f6b6a8d51ac2c082248cf2361e577140612e790452c49c6920dcab0c0f903aab6480fb33fec819c76874609da2604addabb944658cbd0809e8cfa71b4f9fbdd8224f9f6fe37f3b9b5f572928a9c713b54b9e95069fd167277e479e17ef33423e85d74fb3d777f571019b45638f824eabf179c06680ed76c1e895e1ed6c17af0de7d380cf91fe38c8affb699511385b239af4c5b9204f78880a9d46ba451260f9ca9bddf85c33c7c80c36bd011d58d13d37cc52fff9f6762b24afa1c6ecf89f8212ebc3c21bab90068153a162274269e3ff0c99c729d908e9bb94a65fbdf82a7eb7990348e50a0c8018d404b0f4817d5396bebc3221933f03ef8319a00925f932406091d5b8a2b0f17cbc9bd7257f06a248d0325358f349ec03a51508158141881b825335958c5e2934110201cd258ba5803601b0e044c1e20db6c60dd77e19a2e52735267f9ee4af6b449040a66c56ee7276dc9b181104236162ad844ff6cc08b1c8e3d7755be3e5352cb5c6ce38d89b40b95d42c110239722069192046d187c17d1ebdc14a1d75862ffa01aca7e7a6c4693002c0600cf4c3d3ea766ddb72b9cc12005825850208e4ccb706d04e9a9f6e14c25d87b801b0fe75909eab71151d2b53f1d23302f9e1b0b80f88633f747cf9e8e88b556463b3b5f8d26303a849e7715d7fa4120c4e71e685de71d2cc86d26439cb74e8252f36cf0a59f466ef37119130109cfc14248e239681d761acdc4386237a5e19b8a60d36a11a5f6817dc82dc0a98eb20ef027fc2b086ecd0f6b4a82917a9577b4b159eda04ce379b0887db49e48fecb717d762de16f128f329a7dce4295cb7f0104442252b03eb0e297734d8304fe6752c1a4ef8f6e6fcbc3c51a4adfdd8d0eded8b7c063e4f6b3b4f66777d529321d4d2c094a949c04bc4ad7742c9e14b1276ea2ea68694a983f8deaf5806de773b48351cfa40f6528b5311ebcf4b8b608befd3c9a023df6a6392783046ba4d614fed14aff05a3e4fd862c4a2a489a611ce4a896e71094e7398b05ce61efc4f99e579bb1fa100e3d8f203858dd855ca45511e32a51fb3042a118841150e58659caf4608520fbf0c909c9afb98762b302d6b038e80babbcd520d45d31ef413b03773f32f2e1547c2bd131edc3c687a5e6f4e47dd250f98946061e84b498cd7a31b6e0ee473f58c735957a201bcea0badf83cfb985f83e2948a722198632acdc523b2c8cf5a24f7a10e612a4f72649d0ae3d8b9274e1c71fb0bcd8d5be63a1b6f5d13cf8864ba5619dbfd922220a16049cf39b88f0198998cb94a272f13549694a6ea88cd06e4a4d89c212c105f109c09ff1f969841e7baea6017061175490099cd073769e9657d75239d08105c4fcefa4dd5657847a5da4b5676aedf9cf4a6b5aa58e09168c321e01b79279cc0303ebd9414ebbee0ed0fcaa2bfcb83485973ec69e90068934c612f1a92253c6c09da0d718874a34987b608abae08b410b6f4c8ae84698e034a488a1d5995632d1283030aaa0c7252ba632f5dde8a3ff59b35206d829689ca8b06ca39018dcc5d432faa0925c37211a2c1580b4cdf8bb51cb64565f541e4b0f85e55c150e364f02b09381976bac5f61f20c1e362c9667e34e930d34aed177da2c20b40ac48b65f2e0a05b1c8f08f790de690f9ca9e592914ad1ed2d3639c6820dfc353e3d016bd84c213c32aa2d4cf46ef0ef0f8076cde65c2a75957a501384b04df46ad58c6957b1dc800e018d5566d0c56093610cf14f95f166d620be84817dca238fbd4383b4017e80a55c36b888a512d0e6eeae0f562107258703c9a9c009747d4bce0b4d755210bc15c3a6219e03716e7c06f677125d45c69a7d637f342dece1b014b062cc60c817f6c75ab05c1a59d57c91feea87d680012ab08d833a703001e19e8e08d9b8bd45b8674cbac03e74ce4a2cffd9663b762b63cebd568e6e47fb142a7f409cbb4a6a8e8d7d05eb5f55ccebfa3395fc4cef9445ae2ae599f4925c8c1bbd0d5957eb15eb419f7641b781a77213528bc2a6cf4a4b6e44a09da83a0bb4b497caae222cf4fb573f98dade952f5f3d4abe00c05ed2b1970f1cc32869e0a2a4cda0bdd739a649f7a0d61faf0d9039226651cfb8bf31351f60c0275c3217e9b7d6b833cb3604bf2df825a5e4af631e5dd3807771cf60b2a456ada3f8bc8f2e2fa5146b92a57d0c1f932de68198f6b9c37f853a34680b763c0411e606fa373c608afc4e68704317ea55124e99bcbb6be86fae01c3b4fb2dd201eb68a10dac298f2832dfd1c723af2fc23eeafe20dcf747dc00813f0c6d0da847445a371089e760d02310b42f58f71a9cbed733e3e8ad43dfeefab4434d45e0dc5afa1f90ed6a0048dca0e75b18a5598ca3398b059075271121b5cc61c31a298d2c33ba960e6e7f1f4677b0dd83ce36395a6e7c199ef948fc84fb7f3d5cf42355e0bc1b597d2f5cd46aea23dd0dc5cfc1c97b1d0560a5fdcc541f1d3b413da9c17a251eef942491eb33f78af549f7e93c129211b0d943ae70f7437d84e9b148200eea2166a802ee314f92d9727568d0b7337161b7667fe2da5f6f89331d2ab3938394dabcaff904255d2e061499edec16c7ade19399d7ed11897607897644f662c94350c86dbb8fb8e3520c78406c0fac7c97077d066dbe0957df69ebc5d5a3d19cc951ab7e229f7f4e86ae82783850728fb5ac82fdda211eb2f0a71d90631f5156cbc6db2e636d6ef83d229be5b824ee5695229286571e2c241901f061b1c87cbbbb147cc4d6c7b339c61f7fc9f6ec37367f7d3c11483bbc2cf4884f0ee239641ba86c8b83691465c711d2311b45b2665ca6c0a727220304fe2328d30ccaf4ee461cfe48de681ef07f980d98351792059873e118fe3c0e8f465375a57a08707cf6e6c109e0c6491aeeacf917f018519d481aeceedcdd7df62fe2eb9da4d5c8393cad4720e83b622e125afdf285169a065f60d4661a23c7840c64c5bdbbc3a78d8ebaa791f1b62ef1b1cc649b1f9b968316cf37f1fba4a348f470428203fff094cccc97540e00e5c32812e075b0d7df9327fb2401dd38e351a73a1c4c733cdbeb0bd91761cc7a271778af62ad5863afdb919dbcc073a1a6a14a5c3c6a305a4694e641aed7e6f46c8ee93097a7d177cd9c7c32b0efd96c85ce3fa65eefdb6af89b3db4b79e90a527ff1eb33b745fdfc758a19999f69edc9fb5adff0116b7353aedee7f61757619e042fb4ce2d0d5633a02d06280afbbf75f3fdad802a3d55cefebabf56c40cfde32ea9ff20a94f636c6790057169d5b578471c0b0b85e3afebb59af301cbab3bd3d7857fa4d8c678d4e8a65966c40f37576c81f64147b2b0da27a22c02ee47d3d807d690ccddded350e043403684b463e3a38e12a2d5f76eae2bdeddcd705e68f9dfb4ae190403d8ffa02f5879e07835d2b0a6c150e02aac4073e9ad52ec210f46f5f8c1564d097227a10ef7088f8d6bdc5429a3f2aa9629cfdde6d03bcb57c9c565e855a0d859391a7046cd44653b32bd04d960ee84f8682c75d827f670fbdcea5031cf57a933ffcf55eaa0e71dbeb6dde8bf7feafe195212900d0da8bc81feed97bdc9c297eda0d9a49f59039be32a7bf54fba50b8665f6a8f63860d15cfb769febe3debe68f3faea447e2534770b65b1ce158c920f0bf440ffb54416ec19ef218340c0dbf1250f19a801702cd9eee8dbdd30dc556a7477b70b88985ae0eecd246791172cacff8b8dcc0c54af8eb6cff7035cba28798eedf72fca2260ae3c58fe18769dabcf7c7dfdfd47b96e519180fc9e527e65195f1f99fc19c36e32673755d24740927969028e863bde7395b9eb8670f55270497fa5558cab902a2d4cdfb23b812182fb9748c5c679ca9871c4f4a4291b17498c37ebc9847c236412765e0b1bd4b382aee75cfbc9740cf6e924efbbf44b32984bc55413931fcc555f726e2bac87c81212b8d0cd5cc8c5c4136e82de467ad9bc69be958adf3b59b852491b518e9225d7451fa8f316a6b0d98d8ebbafd82ebf0968b6ff99be11f2caea473c2a013651264df6c9040a6c2da3574644991b2c1833b791725424a068dfc10843330ff60433317a1eaf8a7f719cdb6376edfa02146e3e8e3c5257b93b978ea0b80ea718e8278c4d4d1941db7e8b00c2189534a99d2889a500c32334f916c80248434e238de99e3429ccc13130ae960b80f7b9cf8280a797df5335be3731432ea8935e3833b7f13a4823f32a1921b2bb6cc5f88b3a97f80a232d190d793413f9f00fca558f60656b39547966e48edcd0dc22c946d23588ec3e6ee710b2fbbfd900f08a6f8e60be15938e2687766c5d72d63679c5ac15171ea19d99b771179ea7279d1872ef2df05940e51c305860c8b7423f902da1b2123b86f46e758907cd419753d0f49acfb86bf8b4c686e4f3d0a3caffba1ce02dce9d6c167c5a5a206e80f604ffc335b996dac83ce256362e1fb7b7e1c2deba28563b4c7d919d6685c27cc5b76d6c1a1802951cd00be134a260a7daec186fe5e42f087d3f833a9ab492d48c19ade2866c6721c0cc64cefbb6d566d4632da335858ec769205289708279ab3d690bd3845f1d36a5ad8376623d5786ffbc76c5cc1737fba327882c30d5cb7760c71981ab004acdca22eb80ff7c00d04130d1fe6f015ab76a1a636b58a77b3321c334870afe1ca519d290df5e9a795ab2b9820db2d355c6e2336f6fbf0019738cfefe0293c76480c6917178c79fa6373b30cede52ea71a917cdbd92bd804ec1e02f08069d5b34814f0fac2c9dc05283b51a6d7914e3c5e63464d4a0703164e4f92c105de27f33d034974d4da846a5046b860ae6741f884c22714f08114b3d7dccd2f636e178ced38cdfc14eb807eba341af35969df9501d3cb144d84da4a2814345dc4b7de5396a4075c756cedba2e6ed5b0a2d936827f8f7dfdb2618fc651c056088d7d1233b73b88e1a2543cc02da96ef706498fe80a409284624157b618bcd86a001372617480165f237a202c59f005498bc80a04c36b8393fec6d8e3b77329a236d177964e28d7b1200dca19f7c58896cde2ab018f00e3d56da22578cc538ee90c3104c0648933ed210cb5cc307e2403360a5cae8151ee6d442ac32ae8e1934f23bce397689ac56e7112fd90a83df34a0d1d583616208faca484c3f32869300eb0c294f3065f21a04425c59e91b93538d992492c033c4245f3e45fbedcb1726c725759115712b0726c6c57d213bdb6246c0c48032cb5c36a4afb6ac8da71a5c3765a651ca771db4a8b9ecdd3b644dad3b5049523cdb6954249a10cb95641cc0207c73cb717ff4ad08b3f336a95e44506d5a71901aa4f68c69bbba8b9b1931cacae8c226fd889486e519e72155f99976708344d939433bac9e7ce2e1894aed2e1a3a5f87d9cf1528eb2d8094dc35a402971343945edba281bbe5d61443f2179dde770e725c2fb4bcf75cbc348a1a77dd28784131888b06611bf178d72671cdd144892a860a2a3e66d2181c34d1025d3397187f1bf86b6173e4b2acf1f019ac2deb172c988d864c6b39aa823769a6e25ddb9ad73aa5a569b534cf2174d0bdbc3d75d03ce3d0bad9d612b26ee7af41715e24c50a96624b58705026963c1a5ebacd47af599a83aacaee2525fe697e6579fd08e105f4b724463868187924d39cef0194f1f2544a9b41e9634271dd77b9f5189dc40188b61b81b80a56797ef9804c6cc466c6c12c2fe509026e05bf79709a30304a92bea3d8270664e7e07ae2ad95c06b96aca6df6fc45a8fce6f5cd15b1c9849afe94aaee640b66d28f5f5f370de255e68eaf52ecb3b436de56d3b446df58678a9054263fc59f3525b4a3bbc54d3b7b5178c9560ab37c9dd9e3ea36fa92988870641d59e48c3ceaaa6621bcc902548e9f06e7b6c88737b13ade4ca26117f9be0f1291050a81e53b48ea3fdd1e47f7ea1ce3f0e9dffde76fec3f9fbf8d7db9dad17cfef3e9d741a1d669cc3fc5053b5dd7f6899aadc156b292b7cd10bccf80ed4b1e138d094331bcd257956a7c598fc98ba5ef85ec164a0f7458320373ecdf1cf4e976735b4addb63c96b149bf16c6499717257d0d67ad08ecb9e5f17ffb7a134d4ffbb0f4e2973ad8a52ee3013559fe48d17cf0b7fcf98ab0198609bed2edf56e6ef19170f7900ff7930da8df1e696f1f9c886b3694af1768454e63b0f1b7fdfacf411058b25546998bdf665fb5985f5b4dc19d5fe323d67cbfb355dcd33ca9a8eca5a0e5faca2e00c80aa8afbe7e4a45072991ab3f5eea9c8f21c3c853efba0dac912b84b3fd9d24243e133fa5055a59405804c0612736e3901361b939f38e825607a5732e39df119e1ba0884305c10c604854573a06f29eab1f1cfcd2cfe96e0b156aa32c9c10f62ccf2343f640fd9bbb82967e06080d1bc1eaf4d975e3d54e2cf86d8c748ace1ba68b8d40d71b6ee65c7bc186ec6b48e60983b6baa768aa1291de8d69e575365347cda92f0dbd4204b578225aaa15df7f54729ec9d7a0cfcc6127c593cd24e665284c8ea78db9d8498175c44a5c831a878cc805aaf50c45e6f52a952781f349745585ed2e0456a083483174b46f2e827b9926da39935b02bbfc8079d688c2ca5fd9329d776ded3303fc15c8826f48beb39da75e904a7df668ac8378797e6334a5693b5c49e96e0b7caf475ee61a9914d0162328098d0665730b1de6565f2caf7a47a2e4955717a103e51e0f3a394990ecd31d7e26249fd8e52fb05a5f7c31f17062f9ba5185143c1357952ac6097560d0ce3af30f9ed2fff8fa876c5f13805ca567ad4d71cf96988bf11bea2c6c753f21870f3706af1e0246e038431eeb45acccc175128192b9dbfb0391fad6e0016404bd34307c006c3cc27d98a13600f64959b9b677d341e62bedb86df33167719f0e51a2b9bf045e3d101fe9f4df052a55436e14b00ec899ed2f31263ddfa57cb39d202c9cdc29047fba39d0f175528d3b5cd722f97d776baed4520b01480f30ac6048ec5ddde2d5cc1ecb7fcd67399cb082c35a11b1c52473347b170a0d342f4701fd6d16f620d13db8ff0cf22b1d8990d73aa091e46036b2c6219f6f734fa1f608b25d50443ce0db59c032856a5f6d3008c54628878e4d0786b6894f2922bc4cd7a3767c6c69d9abbc4511aa742ef6f6174a78b27f8c0a6c58fb15d3333bd86aa21d5ae0fbe223886c1226f8d11af2cd2d57d8afa036c2aa51faca9463c4b0cf3c7a6d2aa9b4a6b6f220dfe86d047d844cabea3d3b183947e724d3dba1da4860154d9c929be0ef4c07b357d118df76ff7b6da2678678645e6f8029eea2567e0dc0be890d802d2771ac340b6b60ace7a016e9528a20ee3d7e6548f1a97f0f9602ee38ff4dd058bbcefa73188d0eb44cf052e1c78b511a810724d36bee74713b5398c046568ab596725325450fa60843867f87d0773ae1e34fd85f96e0ec62eb33764632811ea90ee4d88064a838981dfa47e0f144a2f1b548894bebb179d1af0d6205513b70fc63a67548221c38273b08e99d2c0b5c0c20484095cc7c8186259c930c234e0dd9b2c4dcc3ea462b1b940ad1c23458c836f5f5a0db3aa6e29015c47bb94f11a4a0f5ce2d7a1d183055eeaa72d229340e4cd5974966fa61434c3d7b686375a12ac2991a7dce2a1622fed8ed0e3a09ffd2cc0497674b08586a6c66114ad46c77aab07a6e53aa46cb785527ccff0d8659d2a04df0e08d8949da7274b8851a1eb99fd5aff3dc5b98af7a3de28a9715efab98f65ac67abaccc7b8d668f9df97284d303e20ddae4991aefcd824d5256089c9d4cbf9fe1dec07fa5a0ff47f27e52ef0688fde6f49e1e4f066245b24187e3bcf70fc6646f94e12c18ec61a27d3cb7636f4ae2cedd00ce32cba95a9d4770b0b6eb0f688f2a7523a4d73adaac70a8299a825a36ea38afd4187981cae355cd6d47e8bfbdbc3cbb301bbc308a36c34ab1cb1f2e7af4713af558f11169e0f7b59e5d988fb91e4971a3986c2199294f8b072e649526ff06243c8c44b40845a24027d1b98dcb9b0bf36d1c78bea2617ffec1cc7a5f92c99ae6bec5a5419fb353f23d5b0c38e5ec0dbac68e375bb3f5e8ec1420e30edcc81975dc6d3590b3e87cae7257f89a7065d78169dbe786c56013b4358b983449c5dad2d174ce44db3c3cba5b3b2b7dc8fedf640b65d55d07ab14a4510a1d3b0f89fcd87b0e84060cd033ffe7c9ce57db87380c0271433a95e15fd6db9f687cc69c45ae5cc47850232913982b7b36cfa33c58983bbee58d5149dd2b736f1198220650285d6acbb4258aff23bdbc4be338dffb0610b3fcc4adc4ee4c6276d00308d89e23f330bb4b7e343096223478993bc1e684513a63744e79edb3e895e32df92fe79a060973121914b978b0db6a4a22bb5d4fe773c9e6e6882f5e7dc56d3c373df5984c41928305a1d7400c1370a29adc7e06603fbbaba1b19a7e2c2bc67447db92e74cb26bce6eea9ff23b2f17a22e497f5678a445d26259392a50c02f12a6d9f7273827bf93df94cdf06e0b6184927d00dd59fe36403a680a6f62fde6fc61f4e6cfa52f33dd576d16df10c8b76b5dfc3ec0401c07e9cd57e2c194267efc118feb9ad35ddd49a0b0d2b2343c36f54e2dfd2a2927e749d3f1e0273085fd0426e80c16e6a9d73ad33ea7699eeb49a00b6d6cbfa0919dc89ce1f98d0c61e4e988c35b4af6cdcb43930b6a63563ea4594a9a69f8d9410d3060aa6e6f11e229de60f985fe8a39824a5f75cafbb265d56c9b26c16e969e6866aeeb63f3ec37a626a5a05ccdeb66cb8c4679824fd2443b15e6d9f80294ad490369a09ba7ca5786b2a4a25ec13359eecf5242cf467aa1c3a948ea8b6cc12f144babec5266852aeba48430103366f0772aa3cc322999b4493480f9ccd34c15d9a98a37265112ac03c231ad9f7ef9621c9bf77a813561c541773f7068c0e7d12e71765ec4e016f80c69b93fc26cf3b0a478dadf1f3d7bf1623439d89bca49a1084b1fb8c8d49fbf93e12d33cbbeb28c1e8b786167ea73177e7e4d9e6eef3c27dfd12b31254742cef36b4e33816b3b6e891d630c8183740ba976f325a4ebb643df97da928a1b8069e90ea904663ee26c6aa23bbc511e7912d68d9324f269d85a416a3f91e4f01ddec03c7ff913b970fd10a8d65a37f124074be528d157b0aeb8f0bbadda118bc805f77cd1dae11190d3c3088dcf031ed70014e9ee9a4a7065dafc150c0c0e98cc13e9298559029ad87c07c2a9f0b2155e35eba8027a8a9c7016b653d88e236648384cab2e5b6972be0069be4800a16bdadacbdf18d31c10a1118d5834902ae59f1d3c5b2472e3911b24e6347785439598e91b93ed4712637a9a3396985448cc4a1c5b60906643ac24819c8b0016cc31c8c0c45a597f1578ce642e691862273f4069824b2ae637dc226d82f494a4ed309207d232aea441acf78916de94eb69e25e316dfabda212cc46707927a0a1de810aaabd58d6f3098d38f03f202062b050d980cef1ced6782ec43c6026df633c5111d8c10b672e8004f9efee5e77cc782f6cc555865d4a3269c93e31110697ba3e181cc5ef492093eeee9f01a91179721ab92bf5f95bf25b3241ff3dc08333a383ea737787cfc9314c46841a9bfca0bd95fa0433ded31287cbae59e04d81c0b5374b66770be44e82f8795426e45272fc15d155babfe65a26d1e42dc5cdb7d24347a7abf231ca06acb1bfa9547e0eedf37717dd83da760c45ed146ef5cf218e87e92918ec6086d1d88c6a7470943d2fe152dbd125f866a021eb3d658aa9b02bf041b960e969bb7ca763c3c3c9e3dfecf145537ad051d1c935d73d9a3868aeb2019dfdf6366172e13c1d6f8f9ff5d7cec936f94d4d0a1af6b6b349eb504255cf40e2b856011c02939e1d6c121d025dff170000ffff010000ffff22cff9758f9f0000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffec7d697bdc3692f0f7fc0ab8278734afd82dd98ef3ae2269568733510edb8f644f369b273b0f9a44371191040d806af7289adfbe5500efa3c956cbb666271f6c3589abaa5055a82a00c58347672f4f5ffffcea39f175181c7d72f0c8713e994cc8a9889792cf7d4db64eb7c9e3ddbda7e43b7a25a6e444c839a1910735222df934d1422ab2a51823da67e4f4e58bd717e7276f5ebfbcb824331eb0ed3176771c04c474a788648ac96be68dc91bc588984133ae88128974197185c7083ccec5359311f3c8740983911fcf5f3b4a2f03867d05dc6591c2e1a8262e944e1999890440e29181e187f3d3e72f2e9f9be1c79f380e6085c8918046f3c3118b46249a3b348e0f476a19b9307c3437af5cc44804019387a3cbace454cb6044dc802a7538c24a81a05723ec9251efe813420e42a629717d2a15d387a344cf9cff3f2a0a7cad6387bd4df8f5e1e8bf9c37c7cea90863aaf93460d02d8cc8226875fefc907973566a17d1901d8eae395bc442ea52d505f7b47fe8b16b2083631e760071ae390d1ce5d2801dee8d771b1d794cb992c79a8ba8d457a31a4db42f64a346c0a32b98b8002806c5da4d34e12ef6e44b363b1ccde8353e8e6320e4d127d840731db0a39c88e477727383f3fc02e6f7058cb4b57d7b7b30b1b5f2016c675321b4d292c61357a949fe340e79348637a3140ee406e533a647f50e24d06041972b2a9b67a2973160acd93b8d23991242a6c25b921bf39390987a1e40ef4c85d622dc275fedc6efbe4ecb6640216746431e2cf7c9e85b165c33cd5d4a5eb0848d7648fe62871c4b989a1da268a41c607d3eb35ddc7e62fef87b3bc47f0cff9ec0bfa7f0efcb7cf8ea1017162de87b83d192e0ff950608a99cf3c8d122de277be32f5958a93b46d238a188848a29c8662b583fb228103be447115117fe825250026405803c0589e64c02880b8030efa63604053940c1f350a4bd236da44acb23e4ea6629ce4e77e90c78a5bb34efd95bd9736b69deb39753612aa4c7a4a55d24a21a5e81988b1a99f7c9eed755be2abd31dd385f16ec150bc55158f79183415d5cd707e04a3b9170a609e82b9d0f655e1bf67690bd2d68b5868058908451dec6e32a0e28cc258f408a98330d847b95c1015267950c707fc61f39e3188d0eac53144ca97b3597a88c71142101fcf974ebf193673be4f1d35dfc6f6ffbeb2a0525f578a2f6c99312f2197df6e277e469f13e23e46378fd387b7d5bc70bd82c1a7b14745a8dcf03360368770b46afa0b7b75bbc369c4f033e47fa23925ff7d32a2370b64634e98b73411ef110153a8d748b24c0f295375bf85c33c7c80c365d800eace89e05b3d47fbabbdbda93d7506316ffc7a0c4faa0f0c62aa441e054a8d80950daf83f43e6714ab642fa2ea5e957cfbe8adf6de71da4720506400c6a0258fac8be294b5f5e9990c99f81f7c10cd084927c1920b0c86a5c51d8783edecfeb923f035124689929acf924f681d20a848a0012624170aaa692d12b85264220a0b964b114d02600169c2858bcc1d65870ed977bb4fca4c6e4cf93fc758d0812c894cdca6dce8e0713238260244cac95f0c981c1108b3c7e5db7359e5fc3526bec8ca3830994db25140c31f25ac4205292a00d83ef227a9d9b22f41a4bec1f5443d94f8fcd681280c500dd33538fcfa959f7ed0a6720483b4128281047a665b83682f454c770a612ec3d808d87f3ac04f5db8828e9da9f8e1198674f8d05407cc39987a3278f47c45a2ba3bdbdaf4613c00e7bcf878a6be36027c4e71e685de71d2cc86d26439cb74e8252f30cf9d24f23b7395ec64440c273b01092780e5a879d4733318ed8a284bea90836ad16516a1fd887dc029cea281b007fc2bf82e0d6fcb0a62418a957f9405bdbd501ca349e07cbd847eb89e4bf1cd767d712fe26f128a3d9e72c54b9fc179d8048440ad60756fc72ae6990c0ff4c2a98f4c3d1cd4d195daca1f4edede8e88d7d0b3c466e3e4b6b7f765b9d2233d0c492a044c949c0ab744d71f1a4883db188aad8d294307f1ad5eb01dbcee76807a39e491fcabdd4703c7aee716d017cfb7934057a1c4c734e0609d648ad29fca395f10b46c9c70d5994548034681ce5a096e71094e7058b05ce61efc4f99e579bb13a0ac79e47b03b58dd855ca65511e22a51fb2042a11804115065c12c657aa0c22efbe0c909c9afb98762b306d4b038e84babbcd520d05d31ef013bebee6e64e4c3a9f856a263da078d0f4bcdf9d9fba4a1f2138d0c3c0868319bf5426cbbbb1bfd601dd754ea816c3883ea7e0f3c17b6c7f749413a15c9309061e596da6161ac977dd2837dae00fa609204eddab32849177efc01cb8b5ded3b166a5b1fcd836fb8541ad6f9c50e1151b024e09c2f22c26724622e538acae5d724a529595019a1dd949a128525820be223e87fc6e7e7117aecb99a868e0bbba0024ce0849eb3f7b8bcba96ca810e2c20e67f271db6ba22d4eb22ad3d53ebc07f525ad32a754cb06094f108b895cc631e18584f8e72da750f80e6575de1c7a5297ced63ec09699048632c119f2a32650cdc097a8d71a84483b907a6a80bbe18b4f0c6a4886e84094e430a185a9d6925138d0203a3daf5b864c554a6be1b7cf43f6b56ca003b058d1315966d141283bb985a461f5492eb264483a50290b6197f376a99ccea8bca63e9a1b09cabc2c1e649007632f0728df52b4c9ef5870d8be5d9b8d3640b8d6bf49db68b1e5a05e2d92a7970d02d8e47847b48ef7404ced46ac948a5e8e6069b9c62c116fe1a9f9f81356ca6101e19d5b64ff46ef0ef0f0076cde65c2975957a501384b04df46ad58c6957b1dc800e018d5566d0c56093610cf14f157c336b105f02629ff2c863efd0206d743fc0522e1b5cc4520968737bdbd7572107258703c9a9c009747d4bce4b4d755210bc15c2a6219e77e22c7c06f677125d45c69a7d637f342dece17d2960c59801ca97f6c7467db934b2aaf932fdd5df5ba30f50816d1cd401830908f70c44c8d6cd0df6fb8a4917d887ce5989e53fdb6e876e6dc8b9d7cad1ed609f43e50f08735749cdb1b1af60fdab8a795d7fa6929fe99db2c855a53c935e928b7163b421eb6abd623de8d32ee836f0546e426a51d8f45969c98d08b41355678196f652d95584857effea0753dbbbf2e5ab47c91780be570cece5886318250d5c94b419b4f73a719a7423b539be3640e68898453d787f636ade03c2675c3217e9b711de99651b82df16fc9252f2d7318fae69c0bbb867305952abd6517cde4797e7528a0dc9d28ec3c7648b7920a67deef05fa10e0dda821df74184b9e9fd1b1e30457e273458d0a57a918453266f6f1bfa9b6b80301d7e8774f475b2d4a6af298f2832dfc9c723af2fc23eeafe20dcf747dc003bbf1fda9aae1e1069dd40249e83418f40d0be60dd4b70fa5ece8ca3b7097dbbebd30e351581736be97f4476ab0120b140cfb7304ab3184773168b4e369d44eca9650e1bd64809b3cce85a89dce1216077b4db03ce2e39596d7c199ef948fc84fb7f3d5cf42355e0bc1b597d2f5cd46aea23dd0dc52fc0c97b190560a5fdcc541f1d3bbb7a54ebeb8578b8539244aecfdc2bd627dde7f3484846c0660fb9c2dd0ff511a6c7028130a8fb98a14a770f7992cc96ab4383be9d894bbb35fb13d7fe664b9c1950999d1ca4d4f65dcd2728e97231a0c86c67b7386e0d9fccbc6e8f48b43b48b423b2174b1e82426edb7dc41d9702e101b13db0f25d1ef419b4f9265c7da7ad17568f46732647adfa897cfe3919ba0ae2e140c93dd6b20af66b8778c8c29f0e404e7d0459adc2b75dc6dadcf03b4436cb7149dcad2a45240dafdc5b483282ce87c522f3edee52f0115b9fcee6187ffc25dbb3dfdafef5e144202d7a59e8119f1c8473c83650d91607d328ca8e23a4381b45b2615ca680a727220304fe2328d30ccaf4ee461cff48de681ef07f980d980d1792259873e118fe3c0c8f465375a57a0870faeacdbd13c08d9334dc59f32fe031a23a9134d8dfbbbdfdec5fc4d73b4bab910b78da8c403076c45c24b4fae50b2d340dbec0a8cd34468e0919c88a7b7b8b4f5b1d75cf23e36dbdc6c732936d7f6c5a0e5a3cdfc4ef938e22d1c309090efcfd5332335f523900908fa34880d7c15e7e4f1e1d920474e38c479dea7030cdf16caf2f645f84311b9d5ce2bd8a8d628dbd6e4776f202cf859a862a71f1a8c16815519a07b95e9ad3b339a4c35c9ec6d83573f2d1c0b167b33506ff987abd6fabe16ff6d0de6642969efc7bc8eed05d7d1f63856666da7b727f36b6fe0758dcd6e8b4bbff85d5d965800bed3389a8ab877404a0c500df74efbf7eb4b1a58f5673bd6facd6b3013d7bcba87fca2b503ada18e7015c59746e5d11c601c3e27ae9f8ef66bdc270e8deeeeee05de937319e353a2b9659b205cd37d921bf172c0ed642a27a22c02ee47d23807d690ccdfddd0d0e043403682b301f1d9d719596af3a75f1de76eeeb02f3c7ce7da57048a09e477d81fa63cf0364378a025b85831d55e2031fcd6a176108fab72fc60a32e84b11dd8b7738447cebde6221cd1f955431ce7eefb601de5a3e4d2baf43ad86c2c9c853ea6cd44653b32bd04d968ede1f0ded1e7709fe9d3df43a970e70d4eb4dfef0d77ba93ac46dafb7792fdefbbf865786a4808e365e44fe70cfdee3e64cf1d36ed04caa87ccf19539fda5da2f5d302cb347b5c7018be6dab7fb5c1ff7f6459bd75727f20ba1b95b288b4dae60947c58a007faaf25b2e0c8780f190402de8e5ff390811a00c792ed8fbedd0fc37da546b7b7fb0088a905eede4c721679c1d2fabfd8c8cc40f5ea68fb7cdfc3a58b92e7d87effa22c02e6ca83e58f61d7b9faccd797df7f94eb161509c8ef29e55796f1f589c99f31ec26737653257d0420999726e068b8e33d5799bb6e08572f0597f4575ac5b80aa9d2c2f42dfb134011dcbf442a36ce53c68c23a6274dd9b84c62bc594f26e41b2193b0f35ad8a091150c3de7da4fa663b04f27f9d8a55f92c15c2aa69a90fc60aefa920b5b6133405690c08561e6422e279e7013f436d2cbe64df3ad54fcdec9c2954ada887292acb82e7a4f83b73085cd6e74da7dc576f54d40b3fdcff442c82bab1ff1a804d8449934d9271328b0b58c5e1911656eb060ccdc46ca519180a27d071886661eec096662f43c5e15ffe234b7c7ecdaf50528dc1c8f3c5257b93b9762505c87530cf413c6a6a68ca06dbf4300608c4a9ad44e94c45280e1119a7c0b6409a421e791c6744f9a14e6e0181857cb25f4f7b9cf8280a797df53357e30312817d4492f9c99db781da49179958c10d95db612fe453f75cc7362f26826723a34a73a270357a418729c45b8eaf55f19e9240b9adb2de3f1b80dcb02117b9f7f351e6fb23af781463ee0e658e05c65d78e3b672abbe69ce187379973b8f31da714d9bcb7531b79606d3c5aa053dceb8476863d3be13c3feb84907b6f419c022ae700c11223db15b2820a112a2bb138a457c84b5364cef39cc382a6f98cbb461c6b93453e0f3daafcafcb71ece278cd76218ea5757001c242f03f343d6a199ccc23eed8e32a7973132eede5926251c70c1fd9a15d28cc0d1bdbc666bb2150c901f5174e230ae6b84d02f2564efe82bd1f66bd8e26ad243538a3f1df506159a433f30cf2b16db519f5580bb6a6d0f1380d442af84e306f359b6d619ad7acc374b675d01caea704f19fd66ed2f96271387a84c002533d7f07e6aa91c74a47a9f55c2457f09f0ee874509fe8e6b4745a37de1ab8358cf0839990619a2a067f8ed24470c86fcfcd3cadd843c206d9213263d89ab7375f808c396699fa0273e4641d8d23e3d78f3f4d2fb0e076424ba9c7a55e36b7840e023a05bfa620180c6ec1043e3db2b274062b2ad66ab4e5518cf7b7d3c85883c205cac8f359bcbdc4ff06d134654f4da846a53c72860ae61023884c2271eb0b014b031a988cee6dc2f138abc1dfc141b807668001af35649fb98a1d3cb142d84d40a6014345dc4b63e5a97860ad8dad9cb76d0eb4ef9cb44ca29de0df7f6f9be0581a2c0042bc751fd9994373c1281962ec84b6b48e23c3f44724cdb33122a9d80b5b6cf63d4d776372891450264d252a50fc099d0a93fe1094c91637c7a4bded71e7864d13d376914726deba2301c0ebfbc98795c8a6e702c308530560a51d72c5588c78871c5030892e4d964c432c936d008803cd80952ad82b3cb3aa855807af8e1934f23bce397685ac56e711ef120b03df34a0d1d5bd416208fac2484c3f30869300ea0c284f3065d23704425c59e91b93738d093392c033c4245f3e4633f5cb6726952775911571c70a26c6c5ed2f3bdb6246c0c48032cb5c76e742ed58535635b86eca4ca394ef3a68518b4c746f0436b5ee402549f108ab51916842ac5692710048f8e632e7e1e85b1166c78a52bd885db569c5416a90daa3b4edea2e6e26fe282ba34b9bdb24521a96679c8754e567dac10d1265e70cedb07a8e8dfb272ab59b85e8631e673fd7a0acb7045272d7900a3c6b8cc47a6d8b061e0ab0a61892bf18f4ae7390c37aa9e59de7e2b951d4b8b948c1d98b415c3408db88c7fb36576d0e264a54812aa8f898496370d0440bf4405d62c20ac05f4b9b0a98658d87cf606d59bf64c16c34645acbc123bc303415efdad6bcd6292d4daba579de4307ddcbbb704df7a97d4fb12532dfce5f83c2d9488a352cc596e8e7a0843379d0bf7469915eb334d55695dd4b4afcd3fc66f6e681d04b186f452874101a79c0d61c630290f18e584a9b4159724271dd7787f7149dc40180b61b81b80a56797e3542260464130061329bf20401b782df3c381b1a182549df89f333d36527723d61e54a7c39cbc9d3ef3762ad07e737aee92d0e4c18d87425d77320dbf6cdfac6b93fef12ef6df57a97e50db0b6f2b68db0b67a43bcd402a031feac79a92da51d5eaa19dbda0bc64ab0d59be46ecf12d2b7d414c44383a06a4fa4d1755553b10d66c8f2c07478b73d36c485bd705772659388bf4df094180828548f295ac7d1e168f23fbf50e71fc7ce7fef3affe1fc7dfcebcddeceb3a7b79f4e3a8d0e83e7303fd4546df71f5aa62a77c55aca0a5ff41213db03756c380e34e5cc06ad499ebc6a39263fa6ae17be573019e87dd120c88d4f73cab5d3e5590f6cebf658f21ac5663c1b59669cdc15b4b5ee75e0b2e7d7c5ff6d200df5ffee0253ca5ceb82943bcc44d52779ebd9d3c2df33e66a0026d876bbcbb793f97bc6c5431ec07f1e60bb35dede313e1fd972b64d295e0291ca7cce62ebefdb9531a260b9822a0db3d7be6c3f92b199967b45b5bf4acfd9f27e4d57f38cb2a6a3b296c317eb2838d34155c5fd73725628b94c8dd97a77546479aaa1429f7d50ed6409dca59f6c69a1a1f0197da8aa52ca024026d18a399e9d009b8dc94f1cf41230bd2b99f1cef88c705d0442182e086382c2a239d0b714f5d8fae776167f4bf0f42e5599e4e0773f667936237280ec5d5c0834fd6080d1bc1e6f4c975e3d54e2cf86d8c748ace1ba68b8d40d71b6ee64c73c1b6ec6b46230cc9d35553bc5d0940e746b2faa19411a3e6d49f86d0694952bc10ad5d0aefbfaa314367500067e6309be2c9edc273329426475bcd44f424c7f2ea252e418543c267aad572862af8b54aa145e7bcd651196973478911a02cde0c50a4c1efc2457928a34932376a551f9a0138d91a5747c32e5dace7b1ae62798f2d1847e713d47bb2e9de0f4135411f9e6f8b5f95a94d5642db1a715f0ad337d9d7b586a64339d98442726b4d9154cac0f5999bcf275b09ebb605598ee854f14f8fc28656640739ab7b83f53bf8ad57e0febfdf0c7a581cb266346d050704d3a182bd8a55503c3f86b4c7efbcbff23aa5d713c4e81b2959e6836279b1ae26f84afa8f1f1943c06dc3c9c5a3c1f8adb00618c3bad1632f3e1174ac64ae72f6c6a4bab1b8005d0d2f4d001b0c130f3e5b9e2a0db3d59e5e6825d1f8d8798efb6e1f78cc55d067cb9c6da267cd1787484ff6713bc5229954df85207f6444fe97985b16efdabd51c693bc9cdc2904787a3bd0f175528d3b5cd722f97d776baed7d27b01480f30ac6048ec5ddde1d5cc1ec270b377399cb00ac34a11b1c52073307b170a0d342f470efd7d16f420d13db0ff0cf22b1d0990d73aa099e43036b2c6219f47734faef618b25d50443ce0db59c032856a5f6d3008c546288e6989eb20a50f3922bc4cd7a3767c6c69d9a2bd3511aa742ef6f6974a78b87f7c0a6c56fce5d3333bd86aa21d5ae0fbe223886c1326f8d11af2cd2d57d58fc036c2aa5dfe5a9463c4b0cf3c7a6d2ba9b4a1b6f220dfe54d247d844ca3e17d4b183947e594e3db81da4860154d9c9293e8274cf7b357d118df76ff7b6da2678358845e6f8029eea25afc0b9173020b105a4ef3486e9d9da2a38eb4577eb44117518bf34a77ad4b804cf0773197fa4ef2e59e47d3f8d41845e267a2e70e1c01b9c4085906bb2f53d3f99a8ed612428f7b69e7556224305a40f46880b869fb130d70740d35f9acf0361ec327b43b68612a1ded39d09d100693031f0d3dbef8142e99d8a0a91d27777a253a3bf0d48d584ed83b1ce2b2ac19061c10558c74c69e05a606102c204ae63640cb1ac6418611afddd992c4dc83ea462b1294fad1c23458c836f5f5a0db3ae6e2975b8897629c335941eb8c46f42a37b0bbcd44f5b44264fca9b57d1ab7c33a5a019beb635bcd18a604d893ce516f7157b6977841e06fdecd70fceb2a3832d3434358ea3683d3ad65bdd332d372165bb2d94c2fb0a8f5dd6a942f0ed80804dd9797ab4821815ba9a11ef2cce55b81ff446498df3d2af9aac623d5b656dde6b347be8cc97039c1e106fd0264f487967166c92b242e0ec64fadd0cf706fc6b05fd3f92f7937a3740ec37e777f478b22ed6241b0c38ce47ff604cf64619ce02648f13ede3b91d7b531277ee067096594ed5fa3c82c8daa13fa03daad44248af15dbac70a8299a76b50aeb38afd4c0bc00e5e1aae6b623f4dfbe7efdead26cf002166d869562af7fb8ecd1c7e9d463c507a481dfd77a7669be597b22c54231d94232539e160f5cc82a4dfe0d48781c8968198a44814ea2731b973777fedb38f0624dc3fee28399f5be24930dcd7d0b4b833eafcec9f76c39e094b337e81a3bde6ccdd6a357e7d033eec08d9c51c7dd56d373169dcf55ee1a1f4daeec3a306dc7dcb2106c83b666119326775a5bd69dce99689b8707776b67adeff5ff9b6ca1acbbeb609582344aa163e721911f7bcf81d0800178e6ff3ca7fb7afb10c7412016a45319fe65b3fd89c6d7da59e4ca658c0735923281b9b267f33cca83a5b9e35bde1895d4bd32f716812962e80aa54bed98b644f17fa49777691ce77bdfd0c52c3f712b7138937f1ef400766ccf917998c4263f1a184b111ab8cc9d6073c2289d313aa7bcf6f5f7caf196fc97734d838439890c8a9443386c35f392ddaea7f3b9647373c417afbee2369e9b9e7a4ca620c9c192d06b20860938514d6e3e836e3fbbad81b19e7e2c2bc67447db92e79564d79c2dea5f2cbc2817a22e497f5678a445d26259392a50f45fe485b3efcf704e7e27bf299bc8de160286927d00dd59fe04428a348537b17e73713f7af3e7d207a8eeaa368b4f25e4dbb52e7e0661208c83f4e60b716f4a13bf7189c775cde9aeee5c575869551a1e9b7aa79665969493f3a4e978f04b9fc27ee91374060bf30c739dd9add36cd6f55cd78536b61f0ac94e64cef0fc460630f274c4e12d2587e6e5b14979b5352b1fd22ce50635fceca0061830553737d8e339de60f985fe8a39824a1fafcac7b265d5a4a2268f70969e6866aeeb63f3ec376660a5a05ccdeb66cb8c46791e53d2043b15e6d9f81294adc976697a374f958f29a56c548c51a4382de52d6da4173a9e8aa4bec816fc42b1b4ca2e6556a8b24e4a08d363c60cfe5e05cb2c9392499b440398cf3ccd54919daa78631225c13a201cd3faf197cfc6b179af975813561c74f70387067c1eed1367ef590c6e81cf909687234caa0f4b8aa7fdc3d19367cf4693a383a99c148ab0f41d8f4cfdf97b19dc32b3ec2bcbe8a9889776a63e77e1e7d7e4f1eede53f21dbd12537222e43cbfe63413b8b6e396d829c6103848b7906a3f5f42ba6e3bf47d902ea9b801987def984a60e613cea626bac31be5912761dd384b229f86ad15a4f613498edfe10dcc8be73f914bd70f816aad75134f72b0544e127d05eb8a0bbfdbaa9db0885c72cf17ad039e00393d8cd0f83ce071ad8322ab5f5309ae4d9bbf8281c1019279223da5304b40139aef4038155eb6c2ab661d55404f9133cec2760a5b3c628684c3ecf1b29526174b90e6cb0400baa6ada3fc8d31cd01101ad1884503a952fed9c1b3a5bc74911b24e6347785439598e985c9f62389313dcd194b4c2a2466258e2d2048933e56725dce45000be618646062adacbf0a3c673297340c71901fa034c12515d338ee9036417a4cd27618c903691957b23dd6c7440b6fcaf53471af9836e35e51096623b8bc13d050ef4005d55eac1af98c461cf81f00103158a86cc0e078676b3c17621e3093d6329ea808ece0a533174082fc77f7a87b06df4b5b711db44bb9342dd92726c2e052d70783a3f83d0964d23dfc132035024fce2377ad317f4b7e4b26e8bf0778706674547dee1ef0293985c9885063931fb4b7d69860c67b5a22baec9a05de14085c7bb362767740ee24889f4765425e4b8ebf22bacef0d75ccb249abca5b8f9567ae818745d3e46d98035f63795cacfb17dfeeeb21ba95dc750d44ee14eff1c223e4c4fc16007338cc606abd1d149f6bc824bed40afc137030d591f29534c855d810fca054b4fdbe53bc50d0f278f7fb3c7174de951474527d75c7768e2a0b9ca060cf6dbdb84c9a5f378bc3b7ed25f3b27dbe437352968d8dbce26ad4309553d88c471ad023804260b3dd8243a04bafe2f000000ffff010000ffff2c48dac776a00000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["index.html"] = bs @@ -93,7 +93,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["lang-el.json"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffd459ef6e1cb90dff9ea7200c04b001772fbddedd877c299ca4b9ba499c4562370860a0d08e34bb8267a43949e3cd5ee0a24f53a0afd147e99394a4a4f9b7bb712e77c9391f126bc81f258a222952fbfe1e001c9ccc4fe199da1c3cec87c791b1b06d60320f12514a38b352313d8f7bd62bd558af83759b0c18503a9853de273e0f470c3564a98e5955760d27c69a4d6d5b0f175e2c154fee8236cb3fb3cc6d98349531b6358582d7ca5d2bc792135206ee99298aec6346e147ed9237c27f23e9f1fc022e82aef4cf22686b883b252560653d5b380e12d1361ba797ab00fffd0f7cfbe08fdfc1dfc4955dc023eb96208c84b052505ab2016a018fad094e2f5ab4bc7fc873fd1af9a8c21355a9c08aa551226b5f586354119464e6f03b416cd1d6ca846ee3634206ad4d6505fa8c48ab8c0811f417a9d929f96f4fea9cb2ff1830c76e392525a0118b4ac1c5dccc1934f8cc80a01c14b6ae0578d508874a49b83cd0cd433afacb0310d969c13a64c88d11b52e90112c34ca95d6d520d0a235eeba004966426fdb802dd9f8497c1697ff528ba5cd39673914e220129f6ab4c0df95f37846c9eda7a4011017adb527062c74f0209c02bd34d6a1e2eb953250597b45ae85aa41b11266a9fc0ca347014a3c3d39871267f11b1f541d6df01966edd58d33d56813491693685ff041d40d7e5fc7fd79d00604cc7ce808181f12cf851776aaa94481705c58723c48586cc06f4c1156a851b7872fb1d474638db38103104a67eb6c18a88564c35874010706c3c41f0306f91600a7f5cc87b5ae2a58a0c618ada43e390f7a4ec88e54542d1ad74d76fb3bac9f4cc0666365e228927fbc38859316f106a381930ecc85f76beb38657d88bd77027432b7479859bde0738d2a1a18dd703be9494419e5520eecc68955d985a8e0490e67864c69bba183fb6e1f6b24384e9adbc4083e9515ebc97f1389c313e65de4f27e775023fc99524d4e298c1c1322e8399ac053d6ae948877e3849260b6985a674ada09843926d51de8481f8a8cadb2458bd017825c92e9841a7e66c03be0f4f698fd9e2f38387ca61f7de38fa2c407f8fd142fdb8089c448ca7fafd44f2d1ac467f19dbc287ac65a9dd9ee13c3ecf449a4c5e18071266ad5b1f82333d1db13874791fcf21991f0fff4599695360ccbc3c4301ddd0cc9980b5e96f01a331bf3069f1d6069794f6492e7bac6bb7c60b80fb1d30478ae4ecb6c5ab6d7162d42e722acfa9493cf38a62785170f9d3d5ed14d4bf907dea4445538c597b52e0117975651220ba0de61b0cfe01c25b1e0c3b530e5395190631cfef3080a6148b8f528293087825fa1eb15b8ff325ecc774799641c8e3b588b588f0d3f13c0a96badd6a3fa9891bbe851e4d5c98b69853c2525a04a15269c52a1748d7b3f8c0eb08793c53abb457f1f13b640317027c044dc02d3014da04cca404f56dd56779bdc0904112d968723069c292563c13da144d86b71cde1c57f130997ca855c374e2c4ca368337225be95c9d3fc8a6e72be89070eb7d661c597fd2f15c90b05ea927c9c218d138b85df20980bf80899d20650c9f40e953e3300bd0a30a4f14e2e35ba359587e3d099c10bac1cc8cf89ee31b35130098c9b5452c46dc5bdfe86d3750aae9313e661cf30580ea208763e58e4a49c4c15e2a0dea10a32b49d76bf48242fd40689827186344e2cdb3aec861fa79e6af89900ec6f8f9c5da71a684cc820db34d143f33031da86821ebe81a7d6b5350326a404c4bc0f732c256d61ab9d55d42d887e9a95c386a54f2b53520fccf191863d832b6d58613e5c285cc4a3c9806c36cbf0fd80e924dae09170c88c7a6e6fcbb0267f47e7e2d704ea03a85256b67c385ee5936698aae115364514b6e8b4a4e83144afa6168bb23e16f1d803d71cbfb041278879ca28acd76392c5f96798c283dbe07cfffbd7bfc74a7e86f9e316e8de12cba5534bbedcc8aff1e475917a8f7651e9a2da80b816bae2365e04787fbf75d5fd1b3ead4f927f8ff23737b3810aa864a997ad8b357f7ff0823a3dea6ae8aac55b555fd33233e82d5353aa70296da38132286653bc1c4753773a7fb905fb4d2a53b84d43666af9c2767c61d301724726d14498fb4e99c20503d528584b5cf1eb05aa89ad6ba0d708ecf44816bcfe999a4483a545d3740d304e517619d5d172d827d3db074f1cdb43494ed23584e83d35ebc5eec3778ed4a2b24b3c5aa17ba37dbd1b181e02c605224d4aec5d2147af1f80858396bc05acd3da4ad2e402beff7650d5f9e0c80df0943d793a0ef19aa8f0fe45ed792ba6ad17383e8ecaf84614698f52f895224763a186dc435403e3de35c57eb5d130477dffc3dd35dd6757af3760d68c4a45cba5cda212e6aadbc15efef6141853bc5fe0ec9ffa8bd2b6a8462a522ee3bbec65fbe0c19f14a49ae8f2208744ea73fa8723cc6e5b5be19b2f6d040ed333e1d196bebfaf3203e3f0c9d079d96af01488ea5d29d51cd3db273f5ff61bf868815d8b74f83a15aa223349ebbd87fca9f2bd0a6ed865ed5de816d4bee97a65fcb4483ffce1bb3e50f89dbcc2b2f06877ac1ce740e97e0ca17f1275389c1d1df3a1c2e11f8e988b9e82c082dce9f01f47a3350c5e26bb77741715bdcda8add13fb5ea960d65d0cec91a7ab6f88823df8d8b535e982b931a953c4c8c867cff497a2a1d7c65f6d2d17bf2b9c5ea2f79effd9b08ed39ef13e7e6a6131bfd0a35fc4c00aa2398c5834ca40ea96ea8f3484dc694d403ff7a7e3e7fcd4de48f17a7193a2646707a0625481e46c61bfa5d40487ede135cc1511e3ae6444059acd6ec1c220c9ed23b0f94927e4b1826314faf5fc15a3e9acf36f73ed57b3fd8bd8882d143cda852d30337d2fc0ab154bcec42853555c7b1eda6b7ae0de7e482dea9b0f443097dad384c58f95a846205ea1d0608d6fe599a1af8fe1de06b553d1afe6dec99df768df15bac467902d61cf5a547bc80a7a772b2e75d7f0c2c4ea8e967361289837b37f7fe0f0000ffff010000ffff40ae204d65200000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffd459e16e1cb90dfe9fa7200c04b001772fbddedd8ffc299ce4727593388bc46e10c040a19dd1ee0a9e91e6248d377b818b3e4d81be461fa54f5292926634b3b3712ed7e49c1f8935e44789a2488ad4bebf07000727f3537826b7070ffbe171602c4ceb99cc83482c4b3833a5647a1af7ac57b2314e7963b70990513a9895ce453e0f070c99b364c7ac2ab381136df4b636ad830b27569227b75ee9d59f59e6364c9c4a6bd3ea42c26b69afa565c9112901f7cc1444f63183f0a376c51be1bf81f4787e01175e55ea17e195d1c41d9322b0328e2d1c069168b49605a1e0476b0debbd434bd0666bd56aede13fff866f1ffcf13bf8abb8320b7864ec0a842ec1af252c0d990b15069cc55bb568f190dcc330ed6f900f2a3c9195f4bc87388a64e58aa0b32c99997f478829da5a6adfd9684848a08dae8c40f71271950121807e2c15fb2fffed499dfff61f1973e8c16352046ab1a8245cccf59c41d967027869a130752dc0c9465854aa84cb03d53c242fb93c0091fc1b8c4546b9d5a2560532bc8146daa5b13508b4688dbb2ea02433a1636ec12cd9f8517c1696ff528bc5cd25efcb5deea9420bfc4d5a87671423644cca80b868ad1c3160a1bc036125a895361615dfaca586ca982b722d540d8ab5d02be96618681250e2e9c9392c7116b7755ed6c1069f61d65edd30538d3629c96225da179c177583dfd7617f0e94060133e73b02c64789e7c20b5bd954a240382e5c723c94b0d882dbeac2af51a36e0f5f62a9f1c61a6b3c07202cada99361a016251bc6a00b58d01826ee1830c8770038ad633e6c5455c10235c66825f5c979d0737c72a4a26ad1b876b4dbdf61fd6802361b2b134681fcd3c5299cb488d7180d9c74602e9cdb18cb29eb43ecbd13a093d93dc2ccea059f2b5451c3e0329ca44711a9a58d39b01b47566516a28227299c1932a64d43b3ab711f6b20384c9abbc4003e2d2bd693ff46128727ccbbc8e5fd4e5003fc99944d4a298c1c1202e8399ac051d6aea408d7e8881261a6185b674c9a04c21c93ea043ad07391a155766801fa42904b329d50f96702bc034e6f8fd9eff98283c367ead137ee28487c80df4ff1b2f598487449f9ef95fcb94583b8243ec90ba267acd599e93e31cc4e9f045a18e68c92fc7a193dbb070dc999c099a86507e38fc4c4f0881c1e05f2cb6744c2ffe3e7725929cdb0348c0cddd1754ec6e4f17209af3115322ffbec002bc346201b3e57355efe99a53fc48e13a0235855a6b36003efd002742efcbacf51c929423e93785391b3e09ddeb494b0e04dcc6c85957cbbab25e0e2a59194f93cc877981d66708e92584ce25a9823ad28c8930eff710485d024dc3a94149874c1add1570bdcff32dce4774799681c0e54d88850c0e59f1160e5b5929b41edcdc8297a107975f2625c7d8f49112863490aa754595de3de0f8303ece124b1ce6e214086841d5088f411301277c0744023289312d0915577d5dd2577025e048ba5e18001675296a1421f5106b058e8655f81fd5a5c73f4f1df48424d5261d88d230bd3329a943c8d6f797244b7a6ca806ff6cc1f37caafb978f8b52269214f4aba30431c47160bbf413037040132a665d092e91d2a7e26003a1da898f4d0eba9dc1c46d60c5e60254261407487898f624d6058c512256c2becf5ff385da7e026fa681af60c8de5258a6027854553ccf1547166f51355a4beedb4fb552269a1d69728186688e3c832adc546fc71ecd1f2cf0860777c64cd26d65443420299a6090e9c8691d1369413e01b786a6c5b3360448a40bc16608ea5a9294c355995dd82e8a7595b6c80faac3326f5c0141f71d833b8728735a6cb85c4451c9a0cc866b304df0f184fa2341e0987cca0877766e937e4efe85cfc90417d0555ded22c1f0e57f9a41976d4705c9987b431dac6883721da362b2bca49c98c351674121b3b4a151828649c630891446d225d44d888601f5f73ce802d3a5e489d5a62cfd13db4ccf056f1768bf3fdf79fff1aaefe19e60f5ba0ab54ac5656aef8bea558426f5345ec9fda45a58a6a0be25aa88a9f228487f7f75b5bddbf61037d92fc7b94bfb999652aa0924bb56a6de85b7a6713d4ad526746b73f5ef4ea9a9699416f999ad2533c53325002850c8ef7f560ea4ee72fb760bf49a90bbb6dc84c2dd710966b083a40ee2a4b3411e6db53a6700d436513963757fc02836a62fbede94505bb559205a77ea1465763b5d3345d138f532cbb2c6e6939ecf5e9fd86270e2d6e494ed235b5e83d35ebc5eec3f75ca944655678b442f546fb7a37901f02c6052275bc4cbada925e70006b1955f216b0746cab922617f0fdb759a1e9bc2537c05376e4e938c4aba9c23b1fb5e7ade8b65ee0f83828e31a51c43d96c2ad25391a0b35e41ea2ca8c7bd714fbcd46c31cf5fd0f77d7749f5dbdde8049332a4f0d97538b4ae8ab6e077bf9bb53604cf17e81b37f6c7996a6453562617419de962fdb070ffe2421d6619707292462ebd53f7e6176dbd90adfb6712370189f3a8f76f4fd7d95c98cc32743e765aaec3913d5bb92b239a6f75b7e82ed37f0d102538b74f83a16c7223149ebbd87fca9f2bd0a366ffcf62e740b6adf74bd326edc181cfef05d1f28fcd65f61297a341d2bc72950ba1f74e85f893a1cce8e8ef950e1f00f47cc454f416041ee74f8f7a3c11a1a2f93e91ddd45456f336aabd5cfadbc654309343959432f291f71e4d3b830e585bed2b1394ac3c868c8f79fc4e7deec2bb1a9f495706eb0fa8bde7bff26407bcefbc8b9b91988c5dea3ff48ccc1cf6cf967045091c12c1e2422b56c7543ad50ec7ac6a41ef897f3f3f96bee6a7fba384dd0213180e33b2f41d23030ded00f1fa2e4f74bc1e51d25a963ce1294e26ac59e237cf65b41e79e65493f96e419ced16b9d3786cfedb3cdbd4ff5de49a617913078581a94712af331c5cf222bc9cb2ea4df50e91cde01e86d6ecb09bba07735ac0b51425d4b8e2156be16be58837c87d1838d4192a61785fe61e26b553d18fe6d68e2df769dfa5b2c557902d61cf5a547478fa727d34dc0bbfe18589850d1ef88241206f76eeefd0f0000ffff010000ffffa184a70d71210000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["lang-en.json"] = bs diff --git a/cmd/translate/main.go b/cmd/translate/main.go index 89bc4249a..35da177e1 100644 --- a/cmd/translate/main.go +++ b/cmd/translate/main.go @@ -10,12 +10,14 @@ import ( "encoding/json" "log" "os" + "regexp" "strings" "code.google.com/p/go.net/html" ) var trans = make(map[string]string) +var attrRe = regexp.MustCompile(`\{\{'([^']+)'\s+\|\s+translate\}\}`) func generalNode(n *html.Node) { translate := false @@ -24,6 +26,10 @@ func generalNode(n *html.Node) { if a.Key == "translate" { translate = true break + } else { + if matches := attrRe.FindStringSubmatch(a.Val); len(matches) == 2 { + translation(matches[1]) + } } } } else if n.Type == html.TextNode { @@ -44,12 +50,7 @@ func generalNode(n *html.Node) { func inTranslate(n *html.Node) { if n.Type == html.TextNode { - v := strings.TrimSpace(n.Data) - if _, ok := trans[v]; !ok { - av := strings.Replace(v, "{%", "{{", -1) - av = strings.Replace(av, "%}", "}}", -1) - trans[v] = av - } + translation(n.Data) } else { log.Println("translate node with non-text child <") log.Println(n) @@ -60,6 +61,15 @@ func inTranslate(n *html.Node) { } } +func translation(v string) { + v = strings.TrimSpace(v) + if _, ok := trans[v]; !ok { + av := strings.Replace(v, "{%", "{{", -1) + av = strings.Replace(av, "%}", "}}", -1) + trans[v] = av + } +} + func main() { fd, err := os.Open(os.Args[1]) if err != nil { diff --git a/gui/app.js b/gui/app.js index bd7881efb..3b4e0a049 100644 --- a/gui/app.js +++ b/gui/app.js @@ -514,8 +514,6 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca $scope.restart = function () { restarting = true; - $scope.restartingTitle = "Restarting" - $scope.restartingBody = "Syncthing is restarting." $('#restarting').modal({backdrop: 'static', keyboard: false}); $http.post(urlbase + '/restart'); $scope.configInSync = true; @@ -537,14 +535,13 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca }; $scope.upgrade = function () { - $scope.restartingTitle = "Upgrading" - $scope.restartingBody = "Syncthing is upgrading." - $('#restarting').modal({backdrop: 'static', keyboard: false}); + restarting = true; + $('#upgrading').modal({backdrop: 'static', keyboard: false}); $http.post(urlbase + '/upgrade').success(function () { - restarting = true; - $scope.restartingBody = "Syncthing is restarting into the new version." + $('#restarting').modal({backdrop: 'static', keyboard: false}); + $('#upgrading').modal('hide'); }).error(function () { - $('#restarting').modal('hide'); + $('#upgrading').modal('hide'); }); }; diff --git a/gui/index.html b/gui/index.html index c76287632..16dff4b2d 100644 --- a/gui/index.html +++ b/gui/index.html @@ -391,8 +391,12 @@ - -

{{restartingBody}} Please wait

+ +

Syncthing is restarting. Please wait...

+
+ + +

Syncthing is upgrading. Please wait...

diff --git a/gui/lang-en.json b/gui/lang-en.json index 8730fc954..cf4522e86 100644 --- a/gui/lang-en.json +++ b/gui/lang-en.json @@ -11,6 +11,7 @@ "Bugs": "Bugs", "CPU Utilization": "CPU Utilization", "Close": "Close", + "Connection Error": "Connection Error", "Copyright © 2014 Jakob Borg and the following Contributors:": "Copyright © 2014 Jakob Borg and the following Contributors:", "Delete": "Delete", "Disconnected": "Disconnected", @@ -46,6 +47,7 @@ "Max Outstanding Requests": "Max Outstanding Requests", "No": "No", "Node ID": "Node ID", + "Node Identification": "Node Identification", "Node Name": "Node Name", "Notice": "Notice", "OK": "OK", @@ -65,6 +67,7 @@ "Rescan Interval (s)": "Rescan Interval (s)", "Restart": "Restart", "Restart Needed": "Restart Needed", + "Restarting": "Restarting", "Save": "Save", "Scanning": "Scanning", "Select the nodes to share this repository with.": "Select the nodes to share this repository with.", @@ -84,6 +87,8 @@ "Syncing": "Syncing", "Syncthing has been shut down.": "Syncthing has been shut down.", "Syncthing includes the following software or portions thereof:": "Syncthing includes the following software or portions thereof:", + "Syncthing is restarting.": "Syncthing is restarting.", + "Syncthing is upgrading.": "Syncthing is upgrading.", "Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…", "The aggregated statistics are publicly available at {%url%}.": "The aggregated statistics are publicly available at {{url}}.", "The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.", @@ -101,6 +106,7 @@ "Unknown": "Unknown", "Up to Date": "Up to Date", "Upgrade To {%version%}": "Upgrade To {{version}}", + "Upgrading": "Upgrading", "Upload Rate": "Upload Rate", "Usage": "Usage", "Use Compression": "Use Compression",