diff --git a/auto/gui.files.go b/auto/gui.files.go index b544bcf9..d68796c2 100644 --- a/auto/gui.files.go +++ b/auto/gui.files.go @@ -18,7 +18,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["angular.min.js"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffd41c5d6fdbb6f63dbf82f3ba496e1d3b19ee868bbae9b0a5dd90dbf503cdda97200fb245c76a644aa3a82646e6ff7ecf21299914295949daae33b0c5260fcf37cf074575f2f04391264c9019cfae0aca1f13c14b3a22f38c898495b4fa9da76581ffa9dfe4e1646ff2f022cd66514a1e3c268b282d00286217651a71fd1b81f68212be14822773114cf7f63e469c146b3617cb845d90a36ac57895c5654ac3a09e0b46e4ec7c38950b4a9ece22407344024e0bc483a39c2ee0d7f28409ca3f021b47e4f0003e5332999055b1b757a31aa32c3c4b53cac3e0b41a3d163c05228b127e271923e183629ee520c483a510f990dcec11f820a19cd38fcf2281f40fa6f528721271a1c490f2827838a9f08c2fa878fd02a6505d537302b86154d22c60fa66d39c5c2417eef86a7df20ce50fac5196c514919c9d7b909c3094d5c701e53ce39e7505a5ec39ceb994c03e3475d9e234cf3c52a45121dee531e82c864946af08ea2f1c5a404b0aea9bd14828bdca2930dd29f80abb28c88c2e324ec92ccbd282a459760923024c6d332c84040651e4f84d123f26c11f4921280344605f50d01c1c52da9dbce199c8e6594a1404f9258ec18c052d0050ac7370f640d06b01bfb47595b76f4606f297d1f52965f18b595e18e85f97e222435f788b8ef247b24a04095ffc9a17c32d6a56ae669477227f0be82256b9f4a94140cd90dadbc35b63d67ee747ae27ef8eff4dc423d861e95bfa570940a66e406304f4032b592c55b405e98f1f901c2f215ad086e211f96f494a899a55faefad7983c0ef3298fdc2d87316cd521a1b34d41481b90ca205dde245e7ece4fa8f6cde8253cedc05e5298effaa82b5e9df384cb6e3263a6bfdbb37ec8dcb8e1a2138e95f7cde886e6572eadf7c7a4f99ea7b77729f0df7ce1614b1fd528a2585fc348f64e87e6789bc13e19ba828ae321e772335a034e27c3be2435e69a8ce2890014ecbf99cd298c66195507a4749fc240b127e63e613138b8129618930d7c9a930f89651010c5fca981e0c31884769182c9398064de8b6a4859f8dc5d036f1dd929bedc26e5e7c99d56665e36afab7088280ade66e66391525676d42762abd4db337b3687e19f32c076701b2e04ae02a97743dcb221eeba268d3adf886b80644235d762ba40676146209e635df8328cfd375b82d8c9af2b730153a638fc8e1907c477eb4e5313560715fd714b2ae4365785990f5190a105675e123124c8a3504981598a2c02d571406ffb0c3a2a60cf6def42a5c61043670bdc1f250d54f1d0a32dcd15cb7fdfe7af60192ed185ca308cd4a6a38869ae779345f1ac893d8f13faf026485f633a2390a6080b2390cbc7b7b729cadf28c4160434c7dd563a841e23d4be27347138e318def7e1e8dd2b7b7a5b0d666d91550c7e80825ef55381c591002c3678830fb75ad3e2413d90ed89049ac6374f5314a7b58ef75838441c161ef3963362b453d6dcd8321d1762461a44dc132bae3e4781915afaf1854a739e5622d0de581c74fd5964d9dd98d3322f8ba050b124593d6c2bd8cc472bc8aaec38311f92f79a82c21214ed8af6b418b3f3301e5cabea78771a050f5221eba1c5a946bc5b593869ab10f6d0bac95f886405e9f2f4948db54eb28e5a0af081e40d71a963b3d3a6a907331d80e662e50438d7de8734ebbd36c86b15d9b557589bdf769b3b7f493db4cf79afd2354aea22cac708fc3cdc4854558b6b0a312c2415c3a8276b564315d240c8a5a7fa2873a925dc21e6781997d7ca9d1400db6815e0876f13748a215f3a9c8f21c287b31cb130fa1624c8091d94346ce6f5757e0f2efd9c1f95864ef80003f06d340b279a426c02eb342f0f07038b5e5d0cb8fc8009b5e287d06e4efbfc976f4244ee9a0298b9a06371b9070b0e5120f51de503e87fc115d506d984764f0dd70e09556abc410a899dcf3ec180adf2f606fec03f613b6c83e83c525ee181b4efec9ac6e992e48c048dde4f5b60cda4ad82dae42b94137ba9c27ab88afbde8da546adbd6f695cf6e6048ef3baa7753d9eaac52260a89ffa01f56cba0f95ca8534648535ed7c1fda6484c7c00060fd3a66e651a9cd3240d818a3f58e2699f2758e2f0f1c2ea6f90590cfe00e7499a7ac1f815fc3d79766e7b20023655538d8fb1964ca9248b3a044df89269e52d278ca0428246a62214cf86db97e9a04542dc364db29098be1b36317604a2e0595268d9eb00ed51ebc91c45fa372835bbbcad3e753f751ba5ada0c42cdab5e506f0af565d6e90eca5333718eed49919165d95e1c1d717d698664c2a4d9fbb75c5f69f3bec6da8fc1f13a111043af354bb28efe94e33203336a7d2d18c07312d6c6a888f941780dbc7dfe7544f9a40de7ddf4ebb879d5f452b7a2bed007c0b4f26480737b6c855450b9de04ffe14289649f1cac769d309ab27638d75cdc3555d836868bbecc0a2594e8c53ca2ec4124a423ccff28a3b084bd55dc815766ddc640be495c70d80196afbe957a2591a27c238d16f397a0b836fab676e7d4f3de509f9d05b2f461fe96e92de479a8d63520b68fc3a97fb69ac9e39e8d0676d3917ea54f07191a7890883114a16e546bb7b0d0c557abd1e0bc80de0479e0e3acf0ae7bc0b48813afe77fafad5b8904f3693c53ab438198ec8cd9246316cddc7e42638ce18f023f6ff04d70c40a5781aab9f494c3e14190b3616619f450678aa3e68ebb8e58178abbeadc377fb3140db197eb1ccae82ddcad04b2dc81dcfab3d3e8afebc2b4655684bce41937ac58331342f94c5e1cd6654ed0e97152401c23dbf06aff0eac0023ba5e9429d3d36d285952d5c79b78c8deb2762e0813a2c20a67a78fc214b183825f1e80d819f0327191f3f002778c325d35690439b556abbd38eb52d10c5b163809d9abf31650492f19a452ba0b9e9a17dff46b7d5ef87f9f2ca81468f0adaad1f1f45e72198f9d8afa192dd4fb17c7a30a29fca688b2415d47c84d1565bb0caa7bfd93ab5e9be6ab6e558d18ab7af3c7c180757f2bc1c53a43a33578f43fc478c724e9e84367036267a48790f499bd2ba9adf91b3fe8994d1f058ccc09dfe6ad42c2312678c8e4832bdada0bd7c7e5b19b9ba77a0ea40db2c73c003d2684ec3099900c30190ab47f6ab119dbf1d9c7594f285e13bd6073511d49dab1af590483e4120097962ef515575c2c4a347be66d8843d4bcecd56c5564ac7b3bd6af156e2a903aa39b7d360f599711a5df66892d5a32ec0d4b2a595c479592c433735b7c4b47191711156fd69c4e95d43cfd7b01333b1a4bce2b3ad3233bbccd638de3b8c636de206ee9686ab33422450503543f91dbc9a354c048e3975dc9ef5ecc90de1cfd879bb8b7a64968fb0b02de8690af5c8cbb5455b0747c77f26d0be3e75ae5deeb4c63ca5117f5e3d61eb2cc1ccbb9c169f6736d7bab7dd2787e792ad9d094aae9b484e023f970b9e409d9dae5d77864d64b2bacdf9b77716799462e60bbfcb14b2aa86ffd789605e07c651f3ec03e786ceed14c37280a7a5a9cab33e0e53c1d9973e7cbd3126ccb7307bbb5647afd8b63a0594a478f22d4d01016ad3d5fb1848aa02cab98de254509eb516d1b36ac39ebbd7caeedc7ea1de7ad6f6c8d1a7697c1c73ecb48347fd776e79bebcc8581c76caac6ec1e7d9a7280e2d9e9de25053718a435ce540d5e9feecdc9db37dd3c81fae7bd6d189a984a3bb12078baf38f39363d5463852b4fc39cb10425544376a033dd68c346f1036b3197e542beae7d73591ea9b2a60a50bfdabada442cd17e88d8954755b60fbaa6a2ca594ee6ddccb1d3f4d7fae6d64d9c0134dad2701f734c2bfa52fc51bc4868d7a5cffd40f5d6e7b5b492ff35e57da41f196174eeb3b12de4ba506847ed347de0b744bf41d4c692bdd92a9faa5a356a6dacecc779caaebf6d93ac36c6dff1c5c3a5ab5c1fbfabfd6e322bd3d5e42dfdebe875a11c807e8cdcbbcbd4c31c14b3177b347bd41a52b98633bfb84ea06be1c836aa17aab27b4251a35dfa1d3d8cc15f56dee11f9e9c7030090a2d76218ea0fa311995512190fd722f9a84a5da8329eae7dff3dd100332f40f3a1a346f344830f7d9dd5fee1b45972eb654ff5b2aad636b0aaec2ef13ae7250dbc6add16b35afab45e0ada31742353688b6ea2f1b384434ecef85a92ae7ff5a7be45f0d444e0f2804e9f9a2f34ae8c37f6524f916f3569ab335e95049a0ded259a91954b5026a195493135cab1c649efca2496aa8a678587b84343e8546d7643a33613a9cd444ce7c90ad21a9049a1e1292d5ee2e4221105befb33af6a21b4887c85b479314ca33fb05a3485a0bababc48b38c87f26b9a5da82fd14c921ee26de47ae6f0a0ea2d9172e3e633f0083db8c26c8ba6d8dc98efb3ea938680450011d96fb156dcebd5c67b042c2f6113cbdb8d1e11e5f45864bf25d7340e6b055aabb6c146060197a159c2f0d64c7f7e9a9b5c0e4a33d481a0edd2e20169bdf9a8b03c2587073ffc873c34ff38b5ba849c1c7940a73eaadd5afa6188776303f27b721bd6faf0740f665ef663a6938b7b907fe1276fde7ae41918bbf2075c13ecf2b315c517cabf223f9357428d3f1dda6c82dec7cf6ec3591f96eee366bd78e964e21ed42f3f8393154b483977f4318b79efdd9b16a2517a15ad8b57d5fbca9fdfbfbd77a84df677713c5f96ecf2e4d92766d6c7eac0b85625af6343658a7954697985aff78493f1cde1e8a7cde4a2d9ae4be09d68f59004d65dcb7e7dcaddd4402c4baee4230d834cb63dea7cae4b13a687a87f1403dae2e360640ccb536afdaf6ed4c38247ac98a765ecccc882fe71f3650e752308701fe9af06898d8196ae809cc0979b9f282b60497e34c07bfe03c22ef6e5edf5a381dddc9d699c6328d2064f9f4ce4caa79a82eb28869a4a96fc55ca131843495d3afaab84c5f802ffc54be4c490224dd8e5e32d0ea98611a1e96a44222138d47773c1d3a6d3e3d8f80198b780c67f5cb262992c445df9861f137af53e4afd2773f29d8a3e673ed56732215794401829d39805421551a06d2fb0e20c34fb1ea112b16e684b9e174e9da5fa26f39637758e540b72dec19c58aa1342425190824429a751bcbe137bf210a99dbfdd3c240551083fa9769c11ed63b57e1a47a9eeabc9ca9dff0f0000ffff010000ffff8b36c44026470000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffd41c5d6fdbb6f6bdbf82f3ba496e1d39192e868bb8c9b0a5dd90dbb50d9ab52f411e648bb6d9c8944751498cccfffd1e7e4822454a569276eb0c6cb1c9c3f3cdf341511d3ffb94a784723465d94d8ed921e2acc02334cb2827b4c0e5ef755ae4e23ff51b3d1b3f193f5ba4d9344ed1d343348fd31c8062ba28d298e9df02e84950c0979c3332e3c1e4c993eb98a17c43677c49e8021d952ba2559614290e836a2e18a18bcbe1442e28583a8d01cd110a18ce259e0a2e128cb22c4d310b83f372f484b31430cc0bf84d328ac2a7f92c5b03874f979caf87e8ee09828fc0bd66f8fa65cc05f2fd4935bac0fcdd6b1812b2d6a38278ccb8e25c8a089c8849855db042b1249803c0dd76d2989c93853bbeda9cbe149205d628cd122c905c5c7a909c5221a8c59e9ec78c65ccb32ec798be12732e25d03c4e5db6185e67a514727c3c46e76046bac8d114cf3386d134cbd21ca5597605239c636653e45c02032f72fc8e248728f89de41c534004d6010967e02bd26ae88c653c9b65295210e8e7240175e7380740be59831f061cdf72f8a5ada01c713b3290bf896fcf314d5e4fd7b981fe5dc11799b0d97b61e6dfc98a7014befe659d0f6bd4b4584d31eb44fe1ed0c5f494829cd7717a6e105033a89c42e1bd316bc7f123d7930fc77f16b318f647fa1eff590090a91bd01802fdc04a9a4815d520fdf1039293256c64dc50bc40fe2b493152b34affbd356f10f84dc6999f297d45e3698a1383869a423097c15ec7355ee19c9d5cff9ecd5a70ca9987a03c17e3bfa8386afab71846f5b889ce5affe18c9eb9eca8112426fd8b2fed28b428c8b97ff3e93d65aaefc3e96336dc075b5081ede7822f31a48e592c03ef074be49d08cfe23cbfc958d28dd480d288d7f5880f79a9a12a1f407c3f2f66338c139c84653a101f3247e13732fa9ba3867609253c1c4eeca930f896620e0c5cc9201b0c45548dd330589204070d6837b788cfd662a1ce34f764a35ed8cd842f95d9ac6c5d95fd1ac36e76f5d5ce2cc3bc60b44d48bf9adb7479378d675709cbd6606ea007ce00c6bec29b6916b344571cdb1655770958e5bb39c8b114c055d160f2260b870810866535f21c05e37c037b67053ce6c29bf23cac1727318f9bc2d96e37f11956610436c47a83e5a1caeda19f3b8dbc3490b9aefefe6efa09f248043acb4333cb0f2348e7afe2d9d2404e12c7305e05c8eae12781e62880014c6730f0e1fde949b65a6714f6acc0d4573d861a24de0b925c3a9a684a657ef7f3689465bd2d25ca3d9add0075511c423976130e4716044f603214307b551139446374b0bfbf6f439244879ff263d49cb0deeb0684422ead6bd2c66c56f06ada9a07430adb2142519b8265841393d132cedfdd5028bcd698f18d3494075e7cca6660e2cc6e9d11ce362d58045161d24ab837315f46abf836dc1fa1ffa267ca1212e294feb2e138ff23e39089f73cf5b5032554cf93a1cba145b9525c3b692887fad0b6c05a896f11a4acd91285b84db58e52f6fb8ae00174ad61b9d3f3a306391783ed60e60235d4d8873ee7b4bba06618dbb5595507d37b9f36fb1e3fb9ede449b3b781a28c17b915eec57033b789fa229bdb5149c0415c3a8256aaa0099e130af59a3ff5418944af608fd3c0cc3e16051735d806ca7cd8c5df0812ad98cf79b65e03652f66d9677315630211993d64e47cbdba04977f2ff62f239e7d0002ec044c03c9e6b99a00bb4ca19d0f0f86135b0ebdfc080d443f07c5c000fdf517aa474f93140f9ab2a86970b3010a073597a2bb3fc36c06f9235e606d98e768f0dd70e09556abc410a899dcd7d9490a35e297b7b72871f7089d675fc0e21277227a29f6d9ac6e992e2060a46ef27a5b066d455d8d2b576ed08d6ecdc82a661b2fba3695dab6b57de58b1b18d27b9be81e65ab1332992824fefd7e582d83aea1f73f121090a6bcae23f69b2231f601183c4c9aba95697086491a02157fb01427519e6029864fe656c52f9815c11fe03c49532f88dec2dfd39797b6070ac0a66acaf148d492299664850e4113be645a7acb29454221412353212c4e24db97e9a08542b16d9a6421317d376c62ec0844c14b926bd9ab00ed51ebe94c88f46f506a76755f7dea7eea3e4a5b418999b76bcb0de05fadbadc20d94b676e30dca933332cba2a13673a7fb3c634635269fa48a92bb6ffd4616f43e5ff98088d20d099a7da45f988779a413063732a1dcd7848d0c2a686b8c62c07dc3efebea47a520279f7633bed1e767e1baff0bdb403f02d3c99201ddcd82297152d74823ffa53205f92fcad8fd3a613964f6d1aebcc0319a306d1d076d9218a663911a5982ef8124a4274d022ee202c54772157d8b571932d90571e370066a8ed275f89667142b87158dd72f41606df968f93fa1e07cac3dfa1b75e8caff16e92dec76d8d63440b287ab796fb2952c7e93af4595bce853ae72ccad729e161301292c56ba3ddbd05864abdde461c7203f891a7835e67b973de05a4401dff3b7ff736cae5433b32df841627c311ba5be23881ad7b88ee82938c023f7cef0f70cd00541aaf812d75dc3efe946734d85a847d16198873e6415bc72d8f885bf56d1d47db07e36da7daf932bb09762b432fb520773c4bf5f8a8f0e75d31aa445b30069ad42b9e46d0bc609a8477db51b93b5c56040910eed52d7885570716d8394ee7eaecb1912eac6ce1ca5b3316550f7bc00375581098aae1e85346283825f2e84d00bf024e32163d0527386392692bc8099b956a7bd08eb52d10278963809d9abf33650492c986c62ba0b9eda17dff46b7d5ef87f9fb95038d1ee6b85b3f3e8ace63217930ec57c9eee73a3e3d18d14f65b4394939361f61b4d516b4f4e96f6aa736dd57cdb61c2b5af1f6ad870fe3e04a9e978b14a9ceccd5e310ff11a39c9327a10d9c8d891e523e42d2a6b4aee677e4ac7f2265343c5664e04e7f356a96114a328a47884cee2b682f9faf2b2357f70e5415689b650e78401acf7038466360380072d5c85e39a2f3b783b38a52be30fcc0faa0222274e7aa463d24924f1010412fec3daaaa4e9878fedcd70c9bb017e4d26c556ca5743cdb2b17d7124f1c50cdb99d06cbcf94e1f8aa4793ac1e7501a6962dad245e17f9327453734b4c8bf28cf1b0ec4f63861f1a7abe869d98f12566259f6d9599d965b6c6f1de615cd4266ee06e69b83a23048182aa19ca1fe0d5b4612270cc89e3f6b4674f6e087f412fdb5dd423b37c8425da829ea6508fbc5c5bb4757038fa8340fb7aec5c09dc698d598a63f6aa7cc2d6598299f70c2d3e2f6cae756fbb870e2e255b3b13945c37969c047e2ee78c409d9d6e5c77864d64b25ae7fcfb3b8b3c4a31f385df65725955c3ffab4430ab02e3a879f621e686c38ea61af0b43455ebac8fc39470f6a50f5f6f2c12e67b98bd5faba357d4ad4e0e25a938f996a68000b5edea7d0c246501e5dc46712a28cf5a8be845b9612fdd8b560f6ebf84de7ad6f682a3cfd3f838e6d869078ffa1fdcf2fcfd228be2b0536675117b9d7d8ee2d0e2d9290e3515a73814ab1ca82add5f5cba73b66f1af9c375cf2a3a5195707457e260f115677e72b4dc08478a963f671942a88ae84e6da043cd48f36a5d339b898f6a45fdfcba26527d5309ac74a17fb5955442f3b9f0462255dd16d8beaa1a4b29a57b1bf772c7cfd39f6b1b5936f04453eb49c0238df06fe94bc59d5ac3463dae7fea872ef7bdada49779af2beda078cf0ba7d51d09efa5520342bf8522ef05ba25fa0ea6b495eec954f5424c2b536d67e63b4ed575fb6c9d61b6b67f0e2e1daddae07dfd5feb7191de1e6fa06f6fdf43ad08e403f4e665de5ea6188b4b310fb347b541a52b98633bfb04f34e3a140be5fb2aa12dd048de90dd0738294ec59aa1d2301ea169c9a5f1c02c968f9fd42529e389d9f7df230d30f502341f246a342f34f8d0d72ded1d4c9a65b45e76ac9795f5b38155656c89d7390369e055eb6acc6ae971b514b463e846a6c516ddc4d14bc220cf666c234957bffa53af111c9b085c1e8423a7e6db732be3c5b1d453b85b8dd7ea8295695eb3a19d4533b27209cac4b23229a64689d538bd5d99c45255c5acc4c1ecd0103a551bd8d0a8cd446a3391e0195941aa023229343185c54b421684e7e255955959df088b8877b49ccb5e1afdbed5762904e575e4799a652c945fd36ca1bec453497a286e18573307fb65bf2828376e33038fd0572bccb6688acdadf9f2a43e3d08680c10b1fdca64c9bd5e6dbc1b40d7051f217963d123a29c8e78f62bb9c5495829d05a55071019045c86a6848a9b30fdf9696e723928cd500582b68b88fba8f536a3c2720c21eb87ffa067e61fa7fe9690e3230fe8c447b55b4b3f0cc57dd700fd46eec35a1f9e1ec1cc9b7ecc7472f108f2affde4cd9b8c2c036397fe20d604bbfc6c85c5abc95f919fc96b9ec69f0e6d36411fe367f7e1ac0f4b8f71b35ebc7432f108ea575fc0c9f225a49c07fa98c5bcf73e4d0bd138bd8937f9dbf2f5da2fefdfde7bd126fbbb389e2d0b7a75faf23333eb6375605c959257ac6326d3b0d2f24abcb2138ea3bb83d18fdbf1a2d9824be09d68f59004d69dc85e7572ddd440224b2e728dc32093ad8c3a73ebd284e921ea9f578056f7241819c3f2e459fffb0dd5306731cd6769913833b24a3f6cbea0a16ef900ee23fdd520b135d0e21590e3e25ddc17ca0aa2243f1a88bbfb0344177bf246fad1c06ed82e34ce088ab4c1f18bb15c79ac29b88e62a8a9a0e4cf429eaa184aead2d19f052c16ef9b2fde084e0c295242af0e6b1c520d2384d3d508c59c33a8ef669ca54da71763d153306f0ecd7c54d07c49e6bcaa7cc36b826f3ec6a9ffb44dbe27d1e71ca7fc8cc7e806230823459ad080ab220ab4ed05569c81663f0a28c2370d6dc933c089b354df4eae795367439520971dccf1a53af543580892a33865384e360f624f1e0cb5f3b79b07922385f0b36ac719d13e56e9a7713cea3cd0d1eefc7f000000ffff010000ffff0b2288f970450000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["app.js"] = bs @@ -63,7 +63,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["favicon.png"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffec5c6d73db3892fe9e5f81b0ee26499d49d97999db72645565eccc8e6b6792549cdcded5d67e804848c4980438006847ebf1fdf6eb06f82e52966429f1dece075b24013480c683ee076083e3c767ef4f3ffdcf87b7243669327934c61f9250313ff198f08898fb34cb4e3cbd10a189b998db47a11446c92461eac4bb28534e8d4a3c122654eb130f3325925e7a2892d168f2889071ca0c25614c9566e6c4cbcdccff935727c4c6643efb2de75727de7ffb9fdff8a732cda8e1d3848158a891092875fef6844573d6282768ca4ebc2bceae33a94c23eb358f4c7c12b12b1e32dfde1c102eb8e134f17548137672141c2e098a980e15cf0c97a2216b291bcd4d2cd5528e848b4ba258021a836413e686f01025c58acd4ebc19bdc2db2003454e1e6101c34dc2269512c9efe4e606aef43b19b17750d3d367b7b7e391cb5555e0844da534da289a8d42ad47d55d907211c013af688759244cc78c19d7427b4fcc22834e18f6c560619b42c854460b72632f09c968144183fca93446a6c7e43f0fb32faf8bb41974da9fd194278b63e2fdc4922b667848c93b9633ef80540f0ec81b05da3e209a0aed6ba6f8cc89b87d647fe2a303123f87bf17f0f712fe5ec1dff75513ee5d4d21e29af1796c8ec98bc3c356f534981a51d586caf023164a4571f08f899082b5f2e7c97fc4afaafc2955732e7c23b3637214bc62692b6f60c5a552489dd190f5f7a94aee14a580799c6411139a4513636790511344f0722a0edb70ea0c70319c5a498e564aee4dad244755efa652454c399d2ca9cf56468c828bb6d269c2e7a0ef10e611536d5524722e3b1a3f2687afdb186d3cb135fbaf6aa8665273379c301b6060af3abace949c2ba67555495c80e5f9512da418ea722a701103c6cc80a0eaca9f5255898579cbfc3ed916109aff83018a9e978f4ba12118599a81b6fd2baed11256f222aeb3842eda6a6e9759ab3817d8b28ed2b936be90fe3407136f1a5d80c7d67cf8683e5cd59d82808f244fc5503dfe3491e165a556d0a9b5cb605dcae953295b39551dd509531a5ece95cc4584b54805433a9f3e7dfee2fb03f2fce521fe3b7af6ba0d4445239e6b98f90d4094988131202fbb630c63038f1be3d0e917cc56114414dc40c70c246c06ad3daced40ab7b4787f5e326e46d275fdfadab52c1a55bed870179cc53f4815474b029e81560d1c79afbcdd7cb6687c7233bc8e0b947ce753f1a5b4360fdd563df279f644610dbbeef9e81f8caefdb9a485921642c2e2336a37902ee197803b3f9f8dcdad9c2f78c235e09419f4a4103aa4843af057a6fd7e14f1515913719f3745ea6a0b5f0885621ba3d1feffca3e77fb2de963836e0bd78ee1553dc5d8f26a472be639dd224990cf8609708bfd094aa5d8d5617cdb2435a373ceb24e31878c4faf313ef134f199133e05bda58264143030d05fb885867b67b45b5560176f8adb49b27cebfe486454f8ea147549929a3869c9c90c3db8a86cd93451623e320d5956ff37a6547a0ab58fbe70c400d26e37782bfc74f7efae9384d9f34bb9d555d9ae66006454121dc4d55213a54f8f333c501600b7badd3120470e7f863c2c34b2098113717cc1850bd7efacc9bb446b9afe9a19cd70d2f4b8e47ae0d55fb46302805a8cacbf1085ae0c03a8033971fd1fd2357301a4a5e1f102992050122772d089f11c142b0ead0abd7e423d306b448aea912c8da8a995088871e72e0678f41fe8ccfcf0502acd21008f6fae00306c64f23c06b95da4e873eb384d8ff7e516d23674f5e1ce8c8e61ac72fda29167edea4ecc53bc62216c16c7f3169286f482cda8256cd88f2c9a79811d7dfdcf12712534da68c81cda457802c182430528600c4f915622da8271e49735479d11c23ab4cc81940efd76dd141038d9d111f6a347295863dd900c9805efc29ec17c9c0271673bc81e4a2e96b8118b83b648f6b2057c320afbb58ee814902d377c6bf783d43d57ed0ba5d9e144b8067f33c01d30df8ecc0b905dc521e16fcc82cbb9230cf911b90a768efd1113eab25f482fcfb35305e3a8c7b63bc682367fa3e08cf93cac9200dca85f5919105816219985e444126c17913fcfd1972211c5a52ecfaadfba8e3dddaeb066f727383e28233ae5888aab636b9e182ba620ae39382ef4afe668b9e9ffd3de0e20a284754a13ba15386ebfc296a1a56fb38376e6efa0bada8b1a3958a332ef57bb0efdd11a8a856e5241b283b3feb153ca043f48da46f061a5abb9175c421dfab06e2fc6c581fb664175f5bf413775b622505ff8733a5601f4cae77d2f750a629acb336ef7f837ca01e4ef1f269a19167a5762e6c43abc75b6a6a3cea47ca9600fa7322a734b1b3b2d0ef8c276c37ea9c836cb615983a736d6e1bf923360c48184daee942bfcbd32953b7b7aebd0764a0d00f0b630b4db9a0681f7ed80b3c7f96e1be9418cb74273a4cb0891baad096d98d06770cdbcfa23603a0b8dda91b569079e447c06a612919ed42f10208e4867ac722fb05ee6eace5369e624c8b1ddaee62074dbc358eebf0c48c899027354d7c0b02c623bab2391b62733cca932586b294b39b6b2f74bbe6d5a49f79377549a3c8aa722d3526e8394b25be89a2066ddd37dd6e9265dc4c68d064dbd507c493b1799b12e4b6d6e257930f8c29524a7ab505831650f6743647122d61e9a7acac1dd16851eee61495ac60275f85d75a40009271ab7827c60a5f0d6d65cd51213031d41a9ab132b6a510b6c70f90dbba2d59a707c76b6b4594fa2998ed3d35b4638a7056f870a2a8610f851b8018014b55185bfdb7425d018ebc5b514e33f4f829338a87b7b770b717a47dcef6a1963cdb8b52646e76a3951da3cb4ed72ba674bd4b7f3f2d6ebbee4685fd17db9b797a804411555f75f79f8f2b2e11834f31d79618dc9f17942f66fe9fb282d35c29f061e4e39b5f486e7852b8c9ddccbf78abe9a717dab034809fe65a0d5bb817db5d6ae0f4c3e7a606c8d3a343a297077d2b45507da9efa38b30cb3f3085010b9d152fdc0a200a8a26c747b7b7ff8e9d7808a6bc451470016268b21b55ee80307c0352b00715dc831c7c630250bc3128a00d7d7d2384cc45c8deff853c3e21b980252617acf1f260688b9516058966ea6a69fdbf9d76d1c4c652892d59bdce437c6bebadeaa537796f232eb6aaa0787b52bdf41da86036bbab863f78cb37e72d2b2af9167b5c25cdd9628fcb71adafb0bbe5aedd16d7a8fdee181fbd554a2add1f1fc130cdbd270d1226e626261372f8100325de49c34376af0089269b858e23936df4bf8af3b9b981a7818d0b2a42713c8cc439060b767b7b5c46e3909b9b99e24c44c9c2ed906121ab6a4b5ff71f1cb111922dca1c10b0a7effff275a31c5a08ad427eaae0357cfc830dec5c2fa6ad0c04296ea1912c2a224349cca38809ff8b5e2fa8ad37360c2050acb95b43d9587c60d38a128dcb76dc99f3f960a7db35d82dc2c27663bcfdf10894a343992bcd822ac63f10cc8cbcc9459e61342119911fa5ca5367979b8673b08a52113a6d56a6a1b63937713e0d42998e429aa4f1a8aa74a4180cbac6775c3f03ee352c81dc830dea5db36b21c89f4bb5184532cc71c7b058629d356ff7dd5dae758e9dfd21c710b6bdd60543096a005a766abd42bbaedaf3f545cbd93717cc5c4b75e9ec154965044caf9c2608701e410b5d1e3bcb2b2be1b2ce68c47ae6834df4234e1339efb5f32e4371be62c0d6bb3c68bf6146d384015aedff2aa6a56938e297ed6285716f1ba1bb5c2dfb0289a94588aff97c80969e56db7dce03b6ec57fc72c07cf5f56dc9998cb3765575109d662cd5183d3765041764074462ac3d538c704d28c9949c262c7501a60b400439c7807b183a526f4f062de11f6141b200d9dfc52c4978f6bad58f6c6d2bdc32c72e72cc86bcd9d0bf5e3ca92ac34340131733b9072c7523013baa2f35f055c00308a9751e900fd6f4925826d1aec7de6e2be36261d098942b89cd87de09f493dd60a0adba557c284ca486e6e2ea085aa2535e89f208559cface6ac3724ce5d087ef0c103cfdba8f0721b2803a61d0312c265113301e6fbf004b5c9a0b25e86abedf044747d45a9270f9d5236a0b9ccda44a8b507fbcf48a5373b8347c6b87be3b571a32b1808f073d32af15f11e53ed5b1ff4048f3b948202615fa304ff56442b92efbeeb4b8db8328bdb9e2d631b080955bac66184a105e8f91938494c5b2ac14586a1ccc5727f49af75474196f38dc575b37bc5094ad2d9906e9ccbb37db74133002fb7258a0d2bde1ae1e1bedf72ae5804c6c3b668a99dcd95d6c0e05fc3cc26f80fd9fbf2def872b5b02809e35c5cba20c89e7578cd69c16a64ee084bcf46452b54b567b4dc48fefe7bdf4866caf6025a8831e7c20d16ba3d7b7c8c587f178274f082333c2ce45e1a30e295f304e6a93316d225d848032b282017d8777096502ca23ac64b1027ed715030414fc1e34b50fab360ad20dc9ed65b0007e5e0ad026bbb7f21eead19ecd434a1e272a0fecedaaf77b36460aaad9c191403f4f035c9ea499125a03df4197830f827098bd80bb711e8e6014ae99b056bc19eba18c17eacf7a2eec21ddc10dae0b9433923c5c42e011126b946c4b80884eea1825de9ae88f040aaffa6bcdc408bd102d4c643ab16f02c780633ea330878f0275d9426a7ae745b7d576dbd306a43bdbfb5f31083312870d28c2a7bb268e57b389e1de352b3dcc1aa9a8f0c7665c1423d6541b0021953d6f9d01c56e4c0d34362978180c205620007be10bfc6888f47286b69f764d841b7e5fd356682b8f386c0bff11c0b4ee70372c95886284c39d819135343c62c9de09b4d9b613c823b7726666a5b0bea6bd92acd01c846ca80a08928616d7b5788003e773c88dc3bcc3ec268a5a15fb505d3470f7af697363944d6dc4bc2b344c5b6687b4634ac68c904c00240ee5e92b54eedd54e561fab9b9c22e35b25bbdff5a2c12f4173c1929977471bec32d61d3ac283354d55c09465a654c6e4ccde2d3768f3955926ef66e798eb0f76be363b6f469cee84a30f09dc1d53c728e59d30f55a5080971da6de93ba065377591b87bb1677f3f5aa57e823db2eb6d8f6d31d93b2341c6e63c249d8dcad7e74a1ef357327b9e0bfe50c5f0bc8cd3c6c37539373f668b462d33d69359bbec00f96401fa1a97cc6c1eaccdcf651e3cc47407e299c123ed7144f2f83834b928a4ba119d643e4f48e663a6aec94620d8c25c0aa39c6955374b9ee555193830fc1b0af097b67e2eb4ea50fd4c4ab26934b5f733a61e6d684c207eb4e295bb83da9fe7774564fab72e2b87c5b4e9dea04e41a6bdffbce1aa7baa179e352eb9983f7483ddb93a5a46cf68411d26168285301f92b87f902e80915b3c498cf0858f448326dcf473334375b00db35ea4e683740b104ee0cfbf1f5179acd9764310b2fa7f24bdf96412f141b707408aa240ca0e8237087f72281ce378f2fff42d17a2dd73980fff5773edca928dc43c81490e010077ca6648a9fc1026aa7490a540691526f42e8037b56be9ba15c21b8c581e5f8d7059234c6a155f8030359ac730aa3bcaf95ad6d6c7572a45f537d63db0decbcf3b4c7ce065f0349c621b015d938ec3208dbc377eaad58d067b7b77bc0c3856d81fbac013602874dc7880fbb746b4c467c4bf32d56a87513fad6a9d8f016ebc21707397e6c08f1c71be684dbcecd99c5f594996bfc1484a307b86a5dd84911e24b06802f7ea3e98ad96d37ebe161e11ec6600a69689245551a898693f07016a3c539b436736cd8dc87bc18bdf7e2b33c84b7abc567f949978195a72e92ff55579e7dcbc1c6677076bc101cf60fcdc8acbef49ed38b7dd93a94b77409c528a3dda906bcd7f23763575dc60007017742edd7919e20755b4a11364efbc940f464d3bfdddc9485f11b1836fabbb8b7df88c48db141b7543926c46d47d02a025c67c57bccdcf064f61b38c1fbcc1d23aa65fe7d7083b6070a0343d6f49cbd1a9d4a99acd65a7f1a214b7a5ba59b158e7cbbee0f7aed15bae977e8bd0ff701fb79ce2ff687fcdeb40c9a762d55f44f3c2ffefcf9fc5f754e6cd2f57dce873bd9e9d76667cdafcb7d7dfeb536fdc14bf7d561f7f142205ef82d2efb25df5f5d64b74d9d7433fefa5bced4c27f1e1c062feece5d7f30f8d7eef7825796a359d6c9007db55f8404d2613f1bfd7f000000ffff010000ffff954a9464475a0000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffec5ceb73db3892ff9ebf0261dde5516752761e735b8eacaa8c9dd949ed4c928a93dbbbdada0f100989189300038076b41edfdfbedd00df22654996126fed7cb04512400368f4e3d76083e38767ef4f3ffddf8737243669327930c61f9250313ff198f08898fb34cb4e3cbd10a189b998db47a11446c92461eac43b2f4b4e8d4a3c122654eb130f2b25925e784892d168f2809071ca0c25614c9566e6c4cbcdccff935717c4c6643efb92f3cb13ef7ffdcfaffd539966d4f069c2802cf4c804b47afbe6844573d6682768ca4ebc4bceae32a94ca3ea158f4c7c12b14b1e32dfde1c102eb8e134f17548137672141c2e118a980e15cf0c97a2416ba91acd4d2cd5528d848b0ba258021c836213e686f01029c58acd4ebc19bdc4db2003464e1e6003c34dc2261513c9efe4fa1aaef43b19b177d0d393a73737e391ab5575e0884da534da289a8d42ad47d55d907211c013af188759244cc78c1937427b4fcc22834918f6d560635b42c854460b726d2f09c96814c180fca93446a6c7e4bf0fb3afaf8ab2194cda9fd194278b63e2fdcc924b667848c93b9633ef80540f0ec86b05dc3e209a0aed6ba6f8cc91b879607fe2a303123f83bfe7f0f702fe5ec2df0fd510eedc4d41e28af1796c8ec9f3c3c356f734981a51f586ccf023164a4571f18f899082b5eae7c97fc52fabfa2955732e7c23b3637214bc6469ab6e60c9a552489dd190f5cfa92aee34a520f3a86411139a45136335c8a8094af072292edb70e90ce462b8b4a21cada4dc5b5a518eaad94da58a98723c59629fed8c1805176da6d384cf81df21e811536d5624722e3b1c3f2687afda32da78627bf65fd6a29a49cddd728236c0c25e76789d2939574cebaa93b810966747359162a94b55e0220619330384aa2b7f4a554516f496f97db4ad4068fe0f0652f4ac7c5c120dc1c8d20cb8ed5f728d96b0a217719d2574d16673bbcd5acdb9c0917598ceb5f185f4a7399878d398023cb6e6c347f3e1baee3404f948f2540cf5e34f13195e546c059e5abb0cd6a5549f8ad9cab1eaa82e98d2f062ae642e22ec452a58d2f9f4c9b3e73f1c90672f0ef1dfd1d3576d415434e2b906cd6f08442933b006e445778d616de071631d3af3026d154144c10d74cc40c26630dac3da0eb4a67774583f6e8abc9de4abdb795532b874abfd62401ef2147d2015a61efe7864970cfcf0c839e20763abd6d6fb3cf47df249660425d5f7dd33412f2b2f4e2fb1c4fda0569797119bd13c01670b2880d97a7c6ead66e149c611af88a087a4301f5594a10f022eb6fbf0a78a8ac89b8c793a2f4b50f73da255884eccc73bffe8d99facef24ceb77bcf9f7985c2baebd18454ae74ac539a2493018fea0ae11786528d6b9a83828bc239ba9b0ad1a0ab803f3f531c967c61af754a32d01127ab256fa0c081a484871780a2226ece99313022fde429ccb039f979b2c8624404a4ba0249036c500c8c942dc723379c82bd23e0aff5e623e8d42ddb00c75d7d5ce79fb8d20616ecea8048912c0800942b41f88c081682b58239bd221f99365419724595403452c844411e26c501773c04fa333e7f2b90d5157f8070bdc0adc1247e1ac1ca55a5ed7298264b88fdef17dd366af6d4f5518c6dad71fcbc5d626192372967f18eb1884520f7cf2715c786c9a256b47a864ad9e453cc889b6fee700189a92653c6c016d04b30b2b02ea07c86d0109c0b352c0a6a1124698e2c2f86636455097d21f0fdaa4d3a188fb2d6186f1f34fae086666d20c720bbf8536872438e9bc25b0c7d2db9054c0ad5e35a76ab6590576df1ed9b4e9830aa66fcabd7b354ed07addbc64d71b924f06c9e2760c4403e3be2dc12dc921e36fcc82c6a90a0e5e8f3c813b47c68e09fd6147a85fc873564bc349d7796f1628c9ce9bb48789e54e616dd7b2eacb788ac102896316a500a32094e89e0ef2f500bc5a145c5c625dd471d3bdfc6c3dee4fa1ac905675cb110596d8d72c31877c914c627052b9efccd367d7bf6f7808b4b70a55125dd099d328c5fa7c86988625137aeaffb1bade8b1c3950a0b2dcd7b70eedd15a8208447ec0a9e780d297b7bd64b788087391819d2a78186d69e631d728863aa85787b36cc0fdbb22b5f5bcc137711622505ff8733a5601f4cae7732f750a629c40f9bcfdf593b670960a4a778f9a4e0c8d3923be776a0d5e32d39351ef54bca9602f4e7444e6962b5b2e0ef8c43a8bf1376ce8136db4a983aba36b783fc090706488c265774a1dfe5e994a99b1b37de0332d0e8c785b18da65c50b40f3fee453c7f91e1be9818cb74273c4c70881bb2d0b6d90d07772cb69f456d068071bb6337444679e447806a21448a76c17801007243be6393fd0aee6eace5369e624c8b9dc76e7c8326de1ac7757062c644c8931a26be0102e3115d399c0d65733cca932584b254b35b6b2f70bb111ff623ef262f69145956aec5c6043d67c9c4d751d480adfb86db4db08c61750326dba9de239c8cc3db1420b7b916bf9c7c604c9192d2cb2d10b480b6a7b339826809a19fb2b47604a345b9af5174b2029d7c135c6b05022419b7407762acf095c756d61c19028aa1d6e08ca5b12d84b033be87d8d66d353a3e385c5b33a2e44f816cefc8a11d4384b3c28713450dbb2fd800c8080855616df5df0a7605b8f22ea29c66e8f15366140f6f6ee06e2f92f639db075bf26c2f4c91b9d90d57762c5d565d2f99d2f57ef5ddb8b86ddc8d0cfb1fb637f3740f8122b2be9aeebf1e565c02069f62ae2d30b83b2e285f51ec1d153c62a9ce5e7d1f6c709a2b059e8c7c7cfd2bc90d4f0a67b91b2d8cb75242bdd086a501fc3423361ce15e2c78c981d30f9f9b1c204f8e0e895e5efaad1841f585be0b2fc22cffc014be8eefc4bd702b002e289a1c1fdddcfc274ee23e18f4165cc030c4d06437acdc016cf80ed0600f2cb80344f8ce30a0786f508836ccf5b5103217217bff17f2f084e402024d2e58e315c2d0462b2d1a12cdd4e5d22ec076dc45131b4b25b6c4f63a0ff1ddadb76a96dee4bdcd27d8aa83e21d4af5ea77a083d9ecb61efe402fdf1dbdace8e47bec749560678b9d2e87b8bec11e97bb761b5da3f61b647cf44629a9747f9604c332f7b6344898989b984cc8e17d4c9778270d0fd99dd2249a9816268e78b6317f5c639b6e737d0d4f834f3c65e00e40d9d8b1f7f3719a1e8305bbb9392e9372c8f5f54c7126a264e1f6c9b09165b505b1fb4f91d84892ad943941c099beffcbb7cd7568496895f8532573e1e31f6ddae27a395e653a48710b83645191f748621e454cf85ff57a495e5927c30b6d35e28122f26e2d6523f8c0a1152d1a972e33a5c118307160a7db3dd88dc2c2766336f9f10898a343992bcd822a833d10cc8cbcc9799e61ae1c19919fa4ca5367979b8673b08b92113a6d76a6a1b73937713e0d42998e429aa4f1a8ea74a4182cbac6375dbf80dc6b0881dc830dfa5d736a21d09f4bb5184532cc71dfb008b1ce9ab7fb9e2ed73ac7c9fe9863eeda5efb82a50436002c3bb55ea1dd57edf9fa72e6ecfb0b66aea4ba70f68aa43202a457aa090a388f6084ae8ed5f2ca4ab8aa331ab11e7db0857ec46922e7bd76de55284e0f0cd87a5707ed3768344d1848abfd5f65b6340d47fca2ddac30ee6d23749bab655fa130b512e26b3e1f80a5a7d5a69ff3802dfb15bf18305f7d735b7226e3acdd559d4aa7194b35e6d04d19c180ec8048cc24678a11ae09259992d384a5e40a04852c4022c85b4c2787a523f52665d022fe11029205d07e14b324e1ad3d91969bb9c50ab7ccb1cb1fb3896f3601b0579e5455e13e48131733b90759eae60376585f72e09b080f4848cdf3807cb0a697c4328976bdf6767319838541635246129b2fbd23e827bb918136eb56e1a130911a868bd1118c44a7bc22e511aa38f59dd586704ce530874706009e7ed5878350b2003a61ea310493c809588f375f01252ee942297435de6f0a4787d45a9430fcea21b5859ccda44a8bd477bcf48a3361181abeb14bdfd595064d6ce0e33186ac997a76fd38a6dab73ee83126f3978402615fa604ff51e42c92478ffa4a23aecce2a667e3d8a64342976e7098676805f4ed1938492c5b6ac1458609cd45b8bfc4d77aa240cbf9c6e2ba39bde27c20e96c4b374e9dd9b9dbd419102fb7258a032bde1de1d1b52f39572c02e36147b434ce66a435b0f857a0d904ff217a5fde215fee16829230cec5854b85ec89c36b4c0b56237307347a362a5a09ab3dabe556f2f7dffb56325376163042cc3c176eb1d0edd9c351c4fabb10a883179ce15118f7ea8011afd413d053672ca42bb0f906965040ce71eee02ca15944758c97404edac38e60829e80c797c0f4a7c15aa9b83da3b7021c948bb74a58dbf30b716fcde0a4a609151703fd7762bfdecd9201555ba91914d3f4f065c96aa5c812e01efa0c3cf6fab38420f6dc6d043a3d402a7d5ab096d8539729d82febbd5277ee8e6f086df0549d9c9142b14b8108935ca3c4b83c84eed1825df1aec8f340a8ffbabcdc808bd102d8c643cb16f02c78c230ea3308e4e484a48bd2e4d49d6ecbef6aace7466dc8f737560f3125830226cd286eb847abdfc6f1ec1843cd7207ab1a3e22d8950d0bf6940dc10a644c59e7437388c801a787c4868120850b94015cf882fc1a2b3e1e21ada5dd936107dda6f7d79809e24ed301fec6d32ca8ce07e482b10ca530e560674c4c0d19b37482ef376d85f108eedcc998a91d2db0af65ab340741365206044d4429d676760509c073c783927b8bd947315a69e8576dc1f4c1839efda54d0e9235f792f04451b12ddad68886152d91005800a8dd0bb2d6e9bddac9ea43759353447cab68f7bb5e34f8a5d09cb364e6dd32061bc6baa34778bca6c90a5059664a664cceecddf280368fcc32793b3ac75a7fa0f3b5d17933ef7427187d88e0ee903ae62aef04a9d78402bcec20f59ed23590baabda38e2b5b81daf57b3421fd976b1c5b69fee9894a5e5701b138ec2e66ef5a34b80af913bc905ff92337c2d2037f3b0dd4a4dccd9c3d10a4df794d568fa1c3fc7017384a1f21907ab3373db478d931f01f9b5704af85c034bd12fd124a9b0149a613d044e6f19a683c68e29d6c05800ac9a6b5c394557eb4e1d3531f89018f60d61ef487c5d55fa404dbc4a995cf99aea84955b0a850fd65529dbb8ad54ff3f3aabd5aa541c576f4bd5a9ce41ae11fbde556b1ceb86f4c695d69a83f7083ddbca5242367bce08e1300c94a980fc9583be80f4848a5960cc67042c7a2499b6a7a4199a9b2d04db0dea56d16e08c5927067388f6f1f68365f92c52cbc98caaf7d5b06bda2d81047274115850129fa08d8e1bd4860f2cd43ccbf52b45ecb7d0ec8fffa3b1fee6c14ee21640a4070880b3e5332c58f3c01b4d32405288392526f42e8037b62be5ba18c105c706031fe5521491af3d02af9030359c4398551de57646b075b9d1fe9e754dfda76d33b6f3df3b1b3c5d7009271096c47361bbb4cc5f6f09d7a2b23f4e9cdcd1ee4e1dc8ec07ddc000781cba663940f1bba359411dfd27c8f08b51e425f9c8a036fa12e7c7190e3a77450fe78c39c703bb939b3723d65e60a3f08e1e00146ad0bab1421be6400f1c52f105d32bbed663d3c04ee610ca69086265954ad1168380af727182d4ea3b59163c3e6dee760f4cec16779146f57c167f92d9781c85317c5ffae91675f38d8f8fecd8e03c161ffd0ccccea2bef39c3d857ad03794b9750ac32da9d6ac17b2d7f3377d5550c70117027f43102c9c708dd964a84cdd37e3c903dd9f46fd7d76563fc1286cdfe2eeeed171071636cd02d558e09e5b643681500aeabe23d566e7832fb259ce07de60e13d534ff3eb841db230a034bd6f49cbd1c9d4a99ace65a7f19214b7c5bc59b158e7cbbe90f7aed15bce977e8bd0ff721f6f39c9fef4ff27bcb3218da9554d1bfb05efcf9f3db7f579dd864eafbd4875bd1e9b74667cdcfca7d7bfcb536fcc14bf74d5df7313f005ef8452efb9ddadf5c66b72d9d742bfef625676ae13f0b0e83e7b7d7ae3f87fb5bf76bb82bdbd12ceb5480b9da2f2402e8b01f45fe27000000ffff010000fffffbb43a6f25590000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["index.html"] = bs diff --git a/gui/app.js b/gui/app.js index cca00625..f0243e7b 100644 --- a/gui/app.js +++ b/gui/app.js @@ -5,13 +5,12 @@ var syncthing = angular.module('syncthing', []); var urlbase = 'rest'; -var refreshInterval = 10000; // ms syncthing.controller('SyncthingCtrl', function ($scope, $http) { var prevDate = 0; + var getOK = true; var restarting = false; - $scope.getOK = true; $scope.connections = {}; $scope.config = {}; $scope.myID = ''; @@ -21,8 +20,6 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { $scope.seenError = ''; $scope.model = {}; $scope.repos = {}; - $scope.lastUpdated = new Date(); - $scope.heartbeat = 0; // Strings before bools look better $scope.settings = [ @@ -46,11 +43,10 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { ]; function getSucceeded() { - $scope.lastUpdated = new Date(); - if (!$scope.getOK) { + if (!getOK) { $scope.init(); $('#networkError').modal('hide'); - $scope.getOK = true; + getOK = true; } if (restarting) { $scope.init(); @@ -63,18 +59,9 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { if (restarting) { return; } - if ($scope.getOK) { + if (getOK) { $('#networkError').modal({backdrop: 'static', keyboard: false}); - $scope.getOK = false; - $scope.heartbeat = 0; - } - } - - function heartbeat() { - if ($scope.getOK){ - $scope.$apply(function () { - $scope.heartbeat = ($scope.heartbeat + 1) % 5; - }); + getOK = false; } } @@ -458,9 +445,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { }; $scope.init(); - - setInterval($scope.refresh, refreshInterval); - setInterval(heartbeat, 650); + setInterval($scope.refresh, 10000); }); function nodeCompare(a, b) { diff --git a/gui/index.html b/gui/index.html index a1323e7d..f868421d 100644 --- a/gui/index.html +++ b/gui/index.html @@ -88,10 +88,6 @@ .ng-cloak { display: none !important; } - - .navbar-text { - margin-top: 14px; - } @@ -102,10 +98,7 @@ @@ -233,7 +226,7 @@
This Node