diff --git a/auto/gui.files.go b/auto/gui.files.go index 7bc4555ab..c9635ce6e 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("1f8b080000096e8800ffec7dff73db36b2f8effe2b107d72a594c89493f432f789a3f4a56e72cfd734c9c449efcdb8be37940449ac295225293b7e89fff7b7bb00497ca528dbedddcd3c4d1b4bc462b1582c16bb8b05381ab1a36c7d95c78b65c9fa4703f6f8e0d1b7ec6fd1793661df67f98245e90c20d2328f279b32cb0bd62f3867e592b3a3776f3f7e38fefed3c7771f4ed83c4ef820dc03742f938411ba82e5bce0f9059f85ec53c15936876a71c18a6c934f399b6633cee0e722bbe079ca676c72058db19f8e3fee17e555c21157124f795a607351c9a6503ae16c9e6d80a438251ade1c1fbd7a7bf28a9a0ff7f6460f7e2d92382dd924cf2ea1ed67accc377c086da5659c6e78f57b9d6c0afc5ffc660f4650739164932861f79fb17994140014a58b4d12e5f23702ed051bf852002fa66570b8b77711e5acb84aa7d0ad74c1c6558d7095cd3609ef0775593064a7c13a2aa651b2cef9745986651ea54512953c381b1c12a24d9e4c22403f6601f08df0d7f543e8c03c5ef4e71b78106729ebdf5f96e5fa7d9e5dc4339e0fd9fd1a5ff56cc0beec31f86880e18ccfa34d5216e1e7229fff278fe0d9db68458dfed7fed1c987d7fb1fb3739e42e35bea1e65d979ccabba5a4d51d5222804de9d9451194f5fc360156f326cbc2f88c40f30661e7f7ec68204d8b81f0ceb8262331705e1af459606f4fc1a9886ffeb2c2af32c490069f0ea82a7e5519927c0788567c5345bc3c052b76afed0c330898a926a4177d24d920806e0b860c9f10ff0f840768d467d339df2a2789dc2f3a681595446155e05f77dbe8acb7ef0e9f85d0ac2c9838144849f78cefab28517ec40ad8c1f4418ceb3fc55345d2a83cf915013163fc08322839990648b7e8fa07a43467fc378567d2baf9009e23b517c68e1d108b76a1915ae95dfd74ad71c9cc5e64ea953094f17e592edb347674ded9ad56655a05e415cf0f263bce2d9a6547862b28306395cf0b25f4dac872c1811fdc577459c4ef9388047a2c981563594a3dbaf47d928e7799ee57dfa17ca94de0fd99f0f0ee4836b455c24e86ec2329f5bd272fb9e2731a01f3f0aeeaec78f0eac2eef48415beb56cb2db3fea47ada3ef3556d09df936c1a2154c5461c2fd045173f40b198f5d553e8d0bb1fe111ae19cdd334ba881780215dbcbc8cae708871b968ca339af4f67354f2515e8a954396a91a699aadd60927fac7eccbf5a15e86cb81eff9718a9cd0086dca534e3c29eccac4637c7e7aa63d87d58c2736f8ea8aa66a10684f530076e058e759994db3e46809ca1dd67a8d1b1226e7eb2c2f81ed91dd98287b0fc312f34b6f6d47a7c058495f61c76c5237eb450e6bd0713acf1cf560a5aad0b965fa616f842b556f508b6f236f5850a8f3126c99d731982d68b3cce3bc2819826ca205af2c992486876bb156922d840f61c9cc83a2b266546c641181f514c97513adaba8417ac9d932bae02cba88e2249ac092c03e8a1a43d6e3694f4555a06e960dca96d8650c56dc2a2aa74b0267c03ff8bbffe904d693cb25acdfacf73fcbfd8f7fef11a48a4d5402a1bfaa41d0844cb3927e1fbded858d3e13eb6bba188a6a30171ad502cb1eeb23404cb310fe3c27d842ae1df0e4e14353f721008013dc697ca62f54551b00701125f1ec0d6103d3b104eda10c9e6b65cd79b9c953425cad5d2fc6ec31fbe61b968430b2fcf3bb390dfb808d6ba5517dae8d151317fd8a1805db2357c38dae4203aaae767a70e658b727398fce8db6f7f46fd70329cffd4b203bbb1c8413f8db0f261c18ce3769027699a23bb5d5c552758d82b91ee8daeb3e54edd5ba554cfb13314f7aaa6656d157d2800640551326709483f13308b1e4d0b09b90ddc6e2a7b38b400e2d16e8b4a69ccf5e365ab1860ef2550066e70f3c51ac5178388b73f91c56f1381fa8a5b83261216a60f579996da64b2cf8b49ea1d52f8aae4d328ea71e2272be023fc949875d541101c32bc7d34108183e3c8f8bf39a1473f81a83551d305ac5c139ca35d6e370c8850e66c4bd666d33c747cc237544eaafaaf1aa19cbf5d80adae2140c24e571bdc036d2285ab2d7d71a533ff87f292f2fb3fc9c16876080ab5c94f48325a85fad4d806c30b5c315cb4d892c7743b9668862e675e3b13103bf7e65f744f76fc1e7c6ceb4386ab00d2968195b2f57b7ce40e2053a875c1a081dd881da62268c0528214f46a754355f84d38136c29945b51b8c2c002e7d96b0cc3a75e10d68ade418570331cd6fdd0f58db81dfcb0f4051bfa64df50860c5154d31c55e44d23705ada011ace3c226238b01ec826219e55c446210192ce0e53234e71859532a37de220e872b8ab88fe68e694e741fd534558084e8f88721537b5373b66daa7c003557f23f82b9fe4e1014f6c4a6df493376f687b8906677278a410a398ca66db09f561d0067f8cc22125bc20954f4b7d173b4033134e1b790e2994f3e706d71abdb4927ebe2193b185a25e0eafa8a8ed3efaf4a5e7cccca287102bcdb945b205ece66c03c405f5318c1131deefad0ddbd4a28b6f7eebf4b410078ca5ed42d4ae5889c3a8a9739c6cc1c2ecd130cdfad6904c24f1f5e82edb52ed1f51adb7126d022c773f036d07510ae162e9bcb085c0ff09f58ca4147805710553852d02c333ec55562363431818eb98cc0a528331615e7b51f83bf57d139f8246cbacce229b824df6f4823cdb23428a98e890aaa4c360b44b162b34d8e44e1ea1f4709864236e0ca1719e9345e225a8a499242b310011165bc9241e8ca07bb888bb80cd9df973c952166810154e31a63d7364191f4e1081780ad32d2a5518a61e99c2de11ff0c916d910a992bd3771fcb68115144ddb3dad04551591f53352850b4f36ddac30f825a84265934453de1ff5bf7b06fffde36bf8e0f097e2c1a0a904bf7e19c33ffdd37f1c9e3d18840fee0fbefe03fe1d81d377ff51cfe185dc6b2abb9c0f830420aad75418f7d843865112d0889760c83f64bdc355f4791f84888a9e1c3c78fced83274f0f4c6f88718ca73bb40010f45061c17315fb3e13b81e50bcc9ae8c1f3440364eb3a36ebb936f44ab069f6430d3f8ec35fcab4502ea09a8ae1fb412180bcf39471fa9a780215b10d230a9f4b64ea19ea5551d202822f2694b3490f8e28cc791c5f31d924391509ee28ecca70fc7b8de65298cbae8942bbe61c62eb5c6547b8a8c076944d9a3811f2d64adb26a489c120bad6b24cd28b488440ec90bb00c4e0f0bebc5d23db22757e023ad3496ba59591060d095557a048dd60efcee5c68046a270b5dac1324f72cb65db7f7d430d404ef2de70377ecc6e3b14abfdbef70b91df68c681ac57941d8ff85a647b3c27f87a4d11c913406dfdcf9acd12daddab6c006adce3aa4c4aca20434cdcf75dbac35f1681358293ddc7362c13106630703764336a52d9f03371575746fba5a6308f4065d4796616d94c89eb0b17a6df0f8a93682dd44f9d9831fecd8c3b1975340ca991f2d32032a3fba833109455f31e001148d10b567385c0a42997443d6ccf5a17704fe39aaf7a8761fa457b355072b0e4767454cfb37196e283496866ecf96b857d14798fd7a5768004ca70eebe6d4cc1805651309eaeb2c23f18f298dc1a71584eac3690776f8bbcbf47d0ec3939757506de01373bf78db1256e6571e2cb44b0bce4c486e1990ff53542e4330edfa30c67f610f042f0942f5c180430edfcf8442e695338754692d0bb7afb569cdbbf3b7ad81791bbf6653dab7e85b81342f533c8acdee8203d06786e2c7b955d76df16f264db1b3054011bb2ef34c6c13ee6aebd49b8bdd7a22a8b981194369329d940500eea42760161e55dbaef7e2e2d56a5d5ebd9bfc0afcd67dee81a106cc2d5b9b016e97fd4d0c961c68bf9c8d5b21640c23fc358bd37e30648187806a6756c745713d2739e96e113fad23da12d244fddce111fc78432434d8edbb691abd45969782442022cab98719d56e31fefd295a1b5113f43fc001cdf29817466362c44358c18abe8a6be0e0946943571fcb6fb415841686bd5104d668ac2512eb21c15ae54d56d20255cf8a167990292d5a1ccb44bed745b94175b74ae834db47b42db6a3de32322aa419dc3cf3aa2691e2a1c766b7bb24ae2c034a4518e1a839730d5a88af9218bae9dc9acc16b55b2538a9414a8cc829994d5a7f0c47da115b170adb55a0db7fed11ef2d0270c1f30250ed3af8b29ac5c10e2227a2a8bb36a8a5c0ecdca64c68d9b5513d0fc66c552660b5a49bb565d368c2a38b8d1c462d276e47d1d922219549e3697e9d9d887d32950257dc03531fb3b933b005ae67b049677c8e91f0c01d0c4188f314f7850f5d71116bab52a8fb38a51c15760f9bf0622eca6cbd86969d982b208c53385aa00d4e2f6f8e92a8f803581383bcfc0e7c99e12e72ee464cf9bb7273b7036f2a5a6415a813cf12ee1f1131f502971baca3c1e588720a3c98d679bc8af2ab2e98a6519ade149563240c714042dff37ccad31237887e6f9978a46e185c6f930791b64f2e1ee1b7f6b6dc583569584f7101030870309d22872bbd6862e40250683834f94a0eec3cc9408742336e5d846b3b66fe68ac75d875fafe5eede61a46b6c900ad96d732ffe69bede67b1d791a13b75af2e482ec3c302c3cdfae4f55432a6db35a9b625bc5e9a670cb2c516ea9b07f6f9edaaaa51363edc9bf95b17e5d80d4a3c7b98dad14da057e6a0ea78fbbbaa24540cf24c6a2503abc6dbaecbb16a150d3aaff595d508800c3ed4fad7ad9df959ff9d661a8b66d1a4abb6de01816b08bbedf933d490c6bcdcffeb6b78c332c2fb3b7b459657047ef2ef680f269d5b8880c7b9849c1486fd56cdab09209ac879ab75ca7f7f22a5719ac153bbb5762abd7c3968e4a6ca707675e619047b1b64a835c9d6569c725b9d7f3adc8f53843f39eca2a484b1f7589011766529439867d9fba174dcc607bebeab839c462dbd2acd637064ce14b57a6f4a55d4f9506ad2cdac69f2ecce9cc193e8bcb135e620e4fe1e5cc6804a60965e360be2666d640ddabc6c394dc5aad65b45139de8880ee3c233b59b741107efaf02ac5a308b4a3e22aae5394f0249c0bd35f3f1db7930100664eaee4839914629ab8d105afa3bbce4806a93b9c30ec6f27efde867808345dc4f32b2bf8ab56c8d6e210c9924e5a16cfd8178c8295a0dcf63f82bc511af67a9dc422d77d44e71baf15d759f8f9ebac7046af8748d0901a71b9fcddce85dd2436a630ae7b7c8cb8ee8a29d923d159788b4d0eff642b2e4ee04e45f2b03e66f589a37b95e0f0df365152b82578680bee807dfd6a755f7cda5182340e75e935748ea4cd918d77b4e4d37384f1e6e471399730132f2ee8bbcf4275cec1c63675cfc1e70e574a192677253261dde95e6a82c38d0842a5b03339fb8f5ae3cc2aa7ab236ae2ec131ec6a0f4435e4b106d3351eebbc1687bd8c34f05fff8e68482149a00c8027f47ec8372faa90677275e8212b9029a2f59a5ef181ea04992ab3d471bbac47b34aa22ff872d48fc2ad992782f05fa46d696edae93320f0b5099653f18a2528fd68ab2faac58699f4350d11838b4772e2ca5af9f50685f407a78a8a3e70b2a927cb4c434953329fac07a0e9a0cb62e06b292e3a08cf334a8aa434f2e63dcf4bee493356a997a06c06c40f957344a23e486801a922c0ecf4a34604421c981b56fe49d30f6bc309159deaf8edb7140baef986ce2e85b581f32535aa9be1acdd4e79c5d82d47aba555049ffeac22223e6371516517d375969db21709de66917483f25d6f1a82efb085d31b9cd0679f6ea46dc74334b39ced58d5bd6f92f07d90ac9dec3da0e73dee9cd1ade5d857693e76060ca1af743fe19b4e6acffe57a58b9583629d80470e6d56750b14e0e6960273c998bac2823b0a0c515ecfe368455311c5e88fc860a53fd58cb6630f020f0ab196ecf87f761bebfcf8968cda1c3d1a8d8b6c5f28fed4881c654c014cf7e534e0816cbec3270e38a665b90b946e88bca0b3cb4799546ab780a7dc7281196001e7151cd758781334f3aba46ce0d73b77c15e798b6f2d6c2664d78d57034babbc3a14777124c4bb0c7e9a957a2aed875aa548bd20e935e24731874286b4b73f67da624c78a4413ffceb1487833501b051d3a7b8b0e9b9db607c0b6b91cfe5fabd454219d23f47d6759ca872c3edcdb51a8eaf097a3571654a3965caaeab6062976c19e932241b4b9f94013d8960b1014b78f604fe33335f0ababec16ffaeaadcf4f8d0029594db0e0a7eb65c45a04f6fc4e4116cd1e3f5a658f6ede5cb33c15d5960065cb779d85568333c1e57e1f2d91f6a5cddab783aeb1dfdc088c72aaa829dad932906c3c0d43d3790bcd460a375fd06c5423bee42a89df70b91a3c7e0f3b68f43a53e94516f46af6fa808297856e858cb35a903b485db7c43bb177dd78ea22132656dd9f0858f79881e0f7b510b6b75e3cd56e998263cca5f5589b9ad268b7a8d8e46e7a94eb572ad1791b5d5c8a67a23a2c46354cdf318ecd7e4ca1ed6a2cc55525d17c67415de26badb2ac20559abf06f7d1873aa24521abb315836701e87902307783c518475d645602a383d11d5eb4360bee96e3e84aca14577bc3e845207c425a123e6d5987db12d57155c5a26766aab2f29d3d7d469aa641aebeb92b941e74025371cd18e5676ee9d002186efc5c9a322c6bd5cebe4918b5482c4db0f95965ceba7a3ae5eeb843a4db3b16a7f2b0601f723e76ba8f5b0bd77efa33c5a15e139002b1c6c02b977c7bc325a2c78ce679df85701df390b6b2ab673b102fd29fafc9292a194049f6e5c5d899a23f697a7df1e1c7802a4ae268f404ba6c7292c0b1774fcab5b7353b556f7c624a2e23d74cf32933d4d5d28752cb9d93abcfef149c13c746eaf6e13f3f6f2af5fd99fdbd59835d81d8000eb93a71df19a23da1d965a51b75a6e37966e50680477fe6f182dc2e5a8633c0169d8124f8866336b01dbba727dd1568767b00eb52f441f38a652564c3e010c4fdb59dc5966b749eaae82786311bbb1d4f4ecde748d3eddad24a037d62a0ae2e8c53adb1221d09ab22204128173ba5850b51f797a6697e9168ae2f4d8464a6dc28ab4228cfd38b1b8bc7e777369650e8d455b6e474be984f078be0833ea9924c43a0be4d0c5f2e2222719c685c7158c6ff6b4985555556df9b7bb1454e915024d601f2a0bc49a0530766d2a47e3073104f25202ea543d651da7d4740ee90c3399e3b0043b54f8d1678f7562a8d7d4da99a715a69bb055583f15631ba93534dc03691dd92d1016cda8b146c9a9fb3c98549bc58b485585b71c79b70ddbad8ee04d37d823bfd9e7abf2b366beb5db6f060e574fece05c739c11eb0805287ff90274ea514c09ed7279778ed8d12d7885b18c54d268c58bc09bf76977afef8a398166880cf16821a53a5650053b64e66a5f49f81b0c3cfb88021dc53a1d01292aa46db4de9079f215c428b6db559d56cbbbd9a4d1efbe13d2e2b050b47ce23f485c78f9f2fdf18f747d4dc3a7a92e2a180baaa1f2289d65ab134a13ec3f3918b2278f3d862d652b7dfab0d5b2f5dfe826b2ae30a3e34d942ff0aa35bc918c6e95c6df45c97865a2894c3226b5de763e5422b0f1dc916a09145d0a77bbdea8495b774518eedabee52237c37b7aa99a9494fb220e2a3b6c5abae594d321665fe2859e64d91b21bcb869ab770777066964b2961b058c8eb80362662e797d19b2c62a7abf8ba116e73f88f93a66df1efcffa78746599c93f18173e1d1d3277ff9d6b0010963f83a891605fb06f00b5c0f9b7a8301d92d8e02cf21377121b2d33ed21b932835fc7ea4dd3036c409a4db8815d7306f0992d4077f3039d78c7f985b5030a5f378d67e3ccf1984ef899be04615860e82ea5664936ce38f59e3b421884e991458f4811b77feb7e993dc00f666d3e4e4e25b4b5e474e61dd9bf247bdb71ad693ca366bd6263aff2612cd302c48bbc43585ca6e663f1ab24945ac727621a25304e2646c737a01c3b11260e204304f884834cf25f8c02592aa8a968f64b517b29a64c19e8255f8b484d7da7e36f08a7a0d6651f5455d15b8a3f0866c310f6fa2b0d144d8b47366b6b7de2078a122b069c09b44eab707d0e92265ef2371dd10a212b13acd2b9b58922185a53a04643748b6cd4a6d3151cc54238b64a5369608337485992103b5d78930281596ea54243a15b0e0c72b4c7d470f8ba51b8d9859bc88cb62884055080087e4421e773c700cc141450bfd1108f4203b7dc57b2be84b34a1a60778b3535df2e8a09a82d832d36f91021ad9bec4ac774d90a9f15835e2129e826c61ad3d41f644d0467f281e7b58f71cf49cc86cebe12d6bfcf2a4daea132fcfe88bf26abbf439832f629e350c11b52ae20525fd415866921ca2242cf01569fdc78a05229b7e3896182408f45c70011c0259205a1f32ec19b044a3a9763ab4b92041caec4d76c9f323d08aa8d0548ee9172365935f5579486bbd40a2893f51301528a52dc5ecd268109a5d9741e54e9521bb8c9acb6ce9424291104c975b17e25d70fc33fcc4e7e0fbaed678054eb149106211c5a9f2de267c8f44de7622085f1fc5c6fa3db5355edd3d22d0e71a75d54752885bcb4dfe32b52d7a0348b1f6608bb9d0a069de60a65240bd730700b1fbb29f219e48baead76c42ae39ae0792e58c2e562f9c6de287dab48de866549b6fd572598dbf8be74dab988cd1e09334c01fbaaf5829a947431b26dd589d52d6089a0df7240f0dcf563edd75dc0cb6edcae62d2c76ca40c56fc3d6b78e780b5a6a3be55a7da7964c3d09d2084023fd4d5a150b8c4162fd385de31ca3cb391cb3998a4171bc8e3ff359bf5e35b45a8dd964bce4ab226812a77890bd3b3da669430f69eda9cd1f9f817ec0bc176f082c2fc0507bfc2d7ba0feb1e2f204391a3b404dd1e8c0a5c703bc643b607f8d7721ad0b4db720e6a76ec4b452718be67f7437af5ebe91e30b432b79c03ac136395b717cc5e7bf909cd1cd24ca9f166e9aa0b791b35d28eb42d26dc4ac132dad44dca2f5f3df41c8c0c5cdcb1bca9846bcf33cb8a7d128b98cae8ab79bd584e77f887c3baff251c9efc426da9cb95b725dc4aa5bdc74922dcac9c2977ca624efd1e92fa35f7e391b99c16f010b6e007da92dfb317be2e18cd27b27777a61188e30ca20100a2b5e45beff7820e3fba3def6a5136c75b4b7ff3db9e8bd3c631b1309cda9c6b54767db78459b8bb79b998ec890006ddee2f1a7d162883798f9a899519c21bee0fd20a328b9c8a068a34b2543bca5fa190b8e945d5ad9b87c0d766323e33bf3a6c96666955068cadccb95476201f7587e559ab856d0f2d51aad61007c2e8407e350e31e1ab53d962ef629ee38eee97b01a71227be4ea7f7e2f9886abea8de52d7c6a64d1affb6a1dd2cd70b0c1d3cfa6d039581ba74f11352a2f42289d3f3670d0e62c310eced1518ea6599a31b59e6d68b22f159781fa4ade079116ed26219cf9583a8189afc394adc491874a35b97fdb3ea23deb403ea7193ccf0fd39644303b79dc08232e0eccf0815975706b78c9bdbebc16c02deea9e5cdd11effdfcf2953b082ef69e0a1625398f665737228fbc473f7ddb69880b2610de29771c8e34c958cd1fc3e1b592c15bc5990614c39db1f6424eedede5ff27d4fab0e93c6b976a3705ee5b525242f95d3c1b070f9b1e3bf6eb40f1ae7d9dab388230e2c0441b64a71efa2646a7aede968f7523ce123367cc0d79a73386f695765e205f05f692f5294fa084f085cb7295dcf91a5ac66582b3f43f8c1c2af1ea4647413cc553c0d6e36992152e3cb4f16f3cbfaedef48a1cfc5f000000ffff010000ffff641a09bcf9830000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffec7dff73db36b2f8effe2b107d729594c89493f432f789a3f4a56e72cfd734c9c449efcdb8be37940449ac2952e5173b7e89fff7b7bb00497ca528dbedddcd3c4d1b4bc462b1582c16bb8b05381eb3a374739545cb55c1064743f6f8e0d1b7ec6fe1793a65dfa7d99285c91c2092228ba6659166391be49cb362c5d9d1bbb71f3f1c7fffe9e3bb0f276c11c57c18ec01ba9771cc085dce329ef3ec82cf03f629e72c5d40b52867795a6633ce66e99c33f8b94c2f7896f0399b5e4163eca7e38ffb79711573c41547339ee4d85c58b019944e395ba42590142544c39be3a3576f4f5e51f3c1dedef8c1af791c25059b66e925b4fd8c1559c947d056524449c9abdf9bb8ccf17ff19b3d1843cd659c4ec398dd7fc616619c0350982ccb38cce46f04daeb97f025075ecc8afee1dede4598b1fc2a9941b792259b543582753a2f633ee8d765fd113bed6fc27c16c69b8ccf564550646192c761c1fb67c343425466f13404f413d607be11feba7e001d5844cbc1a28407519ab0c1fd55516cde67e94534e7d988ddaff155cf86eccb1e838f0618ccf9222ce3220f3ee7d9e23f7908cfde866b6af4bff68f4e3ebcdeff989ef3041adf52f7284dcf235ed5d56a8aaa164101f0eea4088b68f61a062b7f9362e30341247e80318be8f333d68f818dfbfd515d90970b5110fc9aa7499f9e5f03d3f07f9d454596c63120edbfbae04971546431305ee1593e4b3730b0d4ad9a3ff43088c3bca05ad09da48c63c1001c172c39fe011e1fc8aed1a897b319cff3d7093c6f1a98874558e15570dfe7eba818f43f1dbf4b4038797f2811e1275ab0816ce1053b502be30711068b347b15ce56cae07324d484c50ff0204f6126c4e972d023a8de88d1df209a57df8a2b6482f84e141f5a7834c2ad5a46856be5f7b5d2350767b1b953ea54cc9365b162fbecd15953bb66b55915a85710e7bcf818ad795a160a4f4c76d020074b5e0caa89f590f5c7447ffe5d1e25333ee9c323d1e450ab1ac8d11dd4a36c94f32c4bb301fd0b654aef47eccf0707f2c1b5222e12743761592c2c69b97dcfe308d04f1ef5efaec78f0eac2eef48415beb56cb2db3fea47ada3ef3556d09dfe374162254c5461c2fd045173f40b198f5d553e8d0bb1fe111ae19cdd324bc8896802159bebc0caf708871b968ca539af4f67354f2615688954396a91a6996ae373127fa27eccbf5a15e86cb81eff971829cd0086dca134e3cc9edcac4637c7e7aa63d87d58cc736f8fa8aa66abfaf3d4d00d8816393a5453a4be3a315287758eb356e48988c6fd2ac00b6877663a2ec3d0c4bc42fbdb51d9d02632579851db3492d37cb0cd6a0e364913aeac14a55a173cbf4c3de1857aadeb016df46deb02057e725d832af23305bd0665944595e300429c325af2c993882871bb156922d840f61c9ccfa7965cda8d8c82202eb2994eb265a576183f492b35578c15978114671388525817d143546acc7939e8a2a47dd2c1b942db1cb08acb87558cc5604ce807ff077ffd309ac27972b58bf59ef7f56fb1fffde2348159ba804427f5583a00999a405fd3e7adb0b1a7d26d6d7643912d5602e34aa05963d364080886621fc794eb0b95c3be0c9c387a6ee43000027b8d3e84c5fa8c45a0b4a432e3ecfd963cf224ac6a2b1ca69bf2a72a1ad8b308ee66f8830b0420b50448d1c8048e611701f8b5d4d01bf3ee2d8636d5008455919c2381663d41063510686632c06654a1213a7978a3c28e866209901fb3b9ad7eb4d9881e99c0af1c20a58c8c0dace913832c7792d324e6468a2d7a294c3d7380e2c40b593c00ff56750a46fb0e123687830b46ae28068e072605e3065985c7cc38f6097de1c4c31fef9dd824679c826b5f6d606927134e75b91c62a327d103d48bd1651d5cf4a62ea3e4ed82357d79ab5090de6badae9c199c34e13e4fa04f55a533f2041d370768ec4c06424e125e47cbee7691b677eb5b20fa5161c5c025bd2cb613085bf83fe94c334e565128335afacb89a4d622d90cdb2743dd4d7bcfb50b557afc862b13811dab5a7aee72afa4a87a0d958d504b51f6660320f032c3934ac6d7b2e1a1d279043838f26ad09e7f397cd5a5a43f7b3751f9c951f78acf830f0701e65f239d87e5136544bd19ec1425cb7d5e7455ace5658f06933475f51145d9b641ccf3c44647c0ddeb5930ebba8220286578ea7831030977916e5e73529e6f0356e8e3a6064fb814b9d69acc7e190e6d137dfb07b8d45648e8f29e7d7cd12a2ba3c9a8b558fada02d4ac0ac561ed76659238da225db2aab310dfaff2fe1c5659a9d9349d11fa26d14c683fe0a166dad4d806c30b5c3e5abb24096bba15c3344710ebaf1d898815fbfb27ba2fbb7e073e39d581c35d88614b48cad97ab5b6720f102430a5c9a951dd881da622e4c4c2821ff57a754357a85ab8a96e59945b51b8cec462e3d5d58fd3a75e10d68adf818571b31cd6fdd0fb00881dfab0f40d1a0a64df523613d104d31c5cb40d2cb9cec2eb43684254f76269800f98a8c098cdf2132b0458a5560ce31b2c1556ebc451c8e0006e23e5a38a639d17d54d3540112a2e31f464ced4dcdd9b6a9f201d45cc1ff08e6fa3b4150d8139b7e27cdd8d91fa25c3a6b9d280629e4309ab69b775a752088e6671691d8124ea07cb08d9ea31d88a109bf8514cf7cf2816b8b5bdd4e32dde4cfd8c1c82a49cbc257749c7c7f55f0fc635a84b113e05d596c8178399f03f3007d4d61084f74b8eb4377f72aa1d8debbff2e04018f0e0ebca85b94ca11850228caea183373b8b4f841f06e4323107cfaf0126caf4d810efbc48e4e8216395e808f8a0ea770d071d95c81a33005af9b251c7404f89261852301cd32e7335c25e6231313e898cb101c51f057c2fcbcf67ef1f73a3c07f783cd56693403e7e6fb9234d23c4dfa05d53151419569b944146b362f33240a57ff288c3180566e462c4f49a7f102d152249b149a85088828a235af7c25e1b95f447954808fb5e289dc98101840356e70c7c32628949e3fe102b0754aba344c703323632bf8073cf9653a42aa64ef4d1cbf95b082a269bba795a0aa22b27e46aa70e14967e51a43a6822a54367138e383f1e0bb67f0df3fbe060f0e7fc91f0c9b4af0eb9709fc3338fdc7e1d98361f0e0fef0eb3fe0dff188f5ee3fea397c997b4d65970b63900044f59a0a931e7bc830b6061af1120cf987ac77b80e3fef831051d19383078fbf7df0e4e981e16579dd3624e8a1c282e72af67d26703da028a5dbe74303a4749a1d75dbad0e56e51bd1aac1a729cc343e7f0dff6af1a37a02aaeb07ad04c6c273ced147ea2960c81684344c2abdad53a867695507088a887cda124326be38a3b864f17c87e450fc9c271824f8f4e118d7bb348151179d7245c5cc88b7d6986a4f91f1208d287b34f0a36d74a8ac1a11a7c442eb1a4973ef42c4af47e4055806a78785f562e91ed9932bf091d61a4bddaccc09b0df95557adc95d60efcee5c68046a270b5dac1324f72cb65db7f7d430d404ef2de703834893c944a5dfed77b8dc0e7b46348de2bc20ecff42d3a359e1bf43d2688e481afbdfdcf9acd12daddab6c006adce3aa4c4aca284c1cdcf75dbac35f1681358293ddc7362c131066307c3bc2336a38d4247880d3f754c78b6de6018f4065d4796616d94c89eb0b17a6df0f8714784b7b3073fd8b187132fa78094333f5a6406547e7407631288be62c003281a236acf70b8148432e946ac99eb23ef08fc7354ef51ed3e48af66ab0e561c8ece8a9876fd52dc866a2c0ddd9e2d70876b8030fbf55ee210984e1dd6cda9b9310acad623d4d75946e21f51f28b4f2b08d587d30eecf07797c9fb0c86272baea0dad027e67ef1b625acc8ae3c58686f1f9c9980dc3220ffa7b0580560da0d608cffc21e085e1284ea8301871cbe9f0985cc2be60ea9d25a166e5f6bd39a77e76f5b03f3367ecd66b4db35b002695ea678149bdd85ed9b0c5bfce7ce8b7f3369f29d2d008ad8759967627379575ba7de92eed61341cd0dcc184aaeeaa42c0070273d01b3f0a8daacbf17e5afd69be2eaddf457e0b7ee730f0d35606ef4db0c70bbec6f22b0e440fb656cd20a216318c1af69940cfa23d6f71050ede7ebb828aee72427d92de2a775445b429aa89f3b3c821f6f888406db586e862df4e669560812c5aea98719558e01fefd29dc185113f43fc0014db388e7466362c40358c1f2818a6be8e0946943571fcb6fb415841686bd5104d668ac2512eb21c15ae54d56d20255cf8a16799089505a1ccb44bed745b94175b74ae834dbc7b42db6a3de32f270a419dc3cf3aa269118a4c766b7bb24aedc144a6019e3a83933545a88af525fbae9dc9acc16b55ba5c5a9414a8cc829f9705a7f0c47da115b170adb55a0db7fed11ef2d02203325761dfc2ac1c2e46007911351d45d1bd412a7766e53a641eddaa89e3d65b62ad3f65a9214db72b034e1d1c5460ea39649b9a3e86c9190caa4f134bf494fc43e994a812bee8109b3e9c219d802d7b35f2673bec04878df1d0c4188f304f7850f5d71116bab52a8fb28a17424760f9bf062ce8b74b381969d982b208c53385aa00d4e2f6f8ee230ff03581381bcfc0e7c99e32e72e6464c59df7273b7036f2a5a6415a813cd63ee1f1131f5fa2e37584783cb11e51478306db2681d66575d30cdc224b9292ac74818e28084bee7d98c27056e10fdde32f148dd30b8de260fe2b007b97884dfdadb7263d5a46133c3050c20c0c1748a1caef4a289b10b40a1e1d0e42b39b08b38051d0acdb87511aeed98f9a3b1d661d7e9fb7bb59b6b18d92603b45a5ecbfc9b6fb69bef75e46942dc72dbb6429ad2f3be61e1f9767daa1a52699bd5da14db3a4acadc2db344b9a5c2febd796aab964e8cb527ff56c6fa7501528f1ee736b6526817f8a9399c3eeeea8a16013d93188b02e9f0b6e9b2ef5a84424dc6ff67754121020cb73fb5ea657f577ee65b87a1dab66928edb6816358c02efa7e4ff6c411ac353ffbdbde32ceb0bcccdfd26695c11dbdbbd8039138abc44564d8c3ccff467aab669386954c603dd4bce53a49985719ee60add839c2125bbd1eb67454623b3d38f30a833cc0b7551ae4ea2c4b3b2ec9bd9e6f45aec7199af75456415afaa84b0cb830d3bcc830ecfbd4bd686206db5b57c7cd2116db9666b58131600a5fba326520ed7aaa346c65d136fe74614e67cef079549cf0027378722f67c663304d281b07f33531b306ea5e351ea6e4d67a23a38dcaa1580474e719d9c9ba0d82e0d38757091e60a11d1557719da284e7275d98fefae9b89d0c00307372251fcca410d3c40d2f781ddd75463248dde184617f3b79f736c0a3c3c9325a5c59c15fb542ba11478f56743e377fc6be6014ac00e5b6ff11e48dd2b0379b3812b9ee633a157badb8cec2cfdfa4b9337a3d428246d488cbe5ef769af026b1318571dde363c475574cc91e89cec29b9719fc93aeb938053113c9c3fa98d5e7d4ee5582c37f2bc338774bf0c816dc21fbfad5eabef8b4a304691ce9d26be81c499b231bef68c5c5010f6f4e1e97730933f1a29cbefb2c54e71c6c6c53f71c7cee70a5946172572213d69deea52638dc8820540a3b93b3ffa835ceac72ba3ad8280e67e1610c4a3fe4b504d13613e5be1b8cb6873df894f38f6f4e2848a109802cf077c43e5ea99f6a7077e22528912ba0f99255fa8ee1019a38beda73b4a14bbc47a32af27fd882c4af922d89f752a06f646dd9ee3a29b2200795590cfa2354eae14651569f152bed73002a1a0387f6ce85a5f4f5130aed0b480f0f75f47c4145928f9698a67226451f58cf4193e1d6c54056721c94719e215675e8c965849bde977cba412d53cf003c5806f2af689446c80d013524591cb99668c0884292fbd6be9177c2d8f3c2446679bf3a6ec7b1fa8163b289a36f417dc84c69a5fa6a34539f8e770952eb99684125fdab0b8b8c98df545844f5dd64a56d87c0759aa75d20fd9458c7a3baec2374c5e4361be4d9ab1b71d3cd2ce53857376e59e7bf1c642b247b8ff83bcc79a7376b787715da32cbc0c09435ee07fc3368cdf9e0cbf5a872b16c52b009e0ccabcfa0629d1cd2c04e78bc1059514660418b2bd8fd6d08ab62383c17f90d15a6fab196cd60e041e05773dc9e0feec37c7f9f11d19a4387a351b16d8be51fd991028da980299affa69c10cc57e965df8d2b9c6f41e61aa12f2a2ff0d0e65512aea319f41da344580278c4f546d71d06ce3ce9e81a3937ccddf2559c63daca5b0b9b35e155c3d1e8ee0e871edd49302dc11ea7a75e89ba62d7a9522d4a3b4c7a91cc61d0a1ac2dcd8d0973253956249af8778e45c29b81da28e8d0d95b74d8ecb43d00b6cde5f0ff5aa5a60ae91ca1ef3b4f133e62d1e1de8e425587bf1cbdb2a01ab5e45255b73548b10bf69c1409a2cd7d199ac0b65c9ba1b87d047b1a9da9815f5d65b7f87755e5a6c78716a8a4dc7650f033cd7878de61cb41a4b9a6f60966adc79b325f0dece5cb33c15d5960065cb779d85568533c1e57e1f2d91f6a5cddab783aeb1dfdc088c72aaa829dad932902c3c0d43d3790bcc460a3f3d296a4e32e84da79bf10397a0c3e6ffb3854ea4319f566f406868a908267858eb55c933a409bbbcd37b47bd177ed281a2253d6960d5ff89807e8f1b017b5b056f7246d958e59ccc3ec559598db6ab2a8972f69749eea542b97c111595b8d6caa37264a3c46d5228bc07e8dafec61cd8b4c25d575cd5057e16da2bbad229c93b50affd68731674a22a5b11b836543e77108397280c71345d8a45d04a682d31351bd3e04e69beee643c81a5a74c7eb432875405c623a625e8dd917db7255c1a56562a7b6fa92327d4d9d264aa6b1be2e991b740e5472c311ed6865e7de091060f85e9c3cca23dccbb54e1eb9482548bc335369c9b57e3aeaeab54ea8d3341babf6b76210703f72be815a0fdb7bf73eccc2751e9c03b0c2c126907b77cc2bc2e592677cde897f15f09db3b0a6623b172bd09fc2cf2f29194a49f0e9c6d5b5a839667f79faedc1812740ea6af208b464729cc0b27041c7bfba3537536b756f4c22cadf43f72c33d9d3d48552c7929badc3eb1f9f04cc43e7f6ea36316f2ffffa95fdb95d8d5983dd0108b03e79da11af39a2dd61a91575abe57663e906854670e7ff86d1225c8e3ac61390862df184703eb716b0ad2bd7176d757806eb50fb42f481632a65c5e413c0f0b49dc59d65769ba4ee2a883716b11b4b4dcfee4dd7e8d3dd4a027a63ada2208e5e6cd22d1102ad292b42201138a78b0555fb91a76776996ea1284e8f6da4d426ac482bc2d88f138bcbeb77379754e6d044b4e576b4944e088fe78b30a39e4942acb3400e5d2c2f2e7292615c935dc1f8664f8b595555d5967fbb4bfd2abd42a0e9db87cafa62cd0218bb3695a3f18318faf25202ea543d651da7d4740ee90c3399e3b0043b54f8d1678f7562a8d7d4da99a715a69bb055583f15631ba93534dc03691dd92d1016cda8b146c9a9fb3c98549bc58b485585b71c79b70ddbad8ee04d37d823bfd9e7abf2b366beb5db6f060e574fece05c739c11eb0805287ff90274ea514c09ed7279778ed8d12d78b9b18c54d268c58bc09bf76977afef8a398166880cf16821a53a5650053b64e6ea4049f81b0e3dfb88021dc53a1d01292aa46db4de8879f215c428b6db559d56cbbbd9a4d1efbe13d2e2b050b47ce23f485c78f1f2fdf18f747d4dc3a7992e2a180baaa1b23099a7eb134a131c3c3918b1278f3d862d652b7dfab0d5b2f5dfe826b2ae30a3e34d982df1aa35bc914cdc090dbff382f1ca44139964d5d5d1dbf9508940e9b923d51228ba14ee76bd5193b6ee8a30dcb57dcb456e86f7f452352929f7451c5476d8b474cb29a743ccbec40b3dc9b237467871d356ef0eee0cd2c8642d370a181d7107c4cc5cf2fa32648d55f45620432d2e7e10f375c2be3df8ff4f0f8db22823e303e7c2a3a74ffef2ad610312c6e0751c2e73f60de017b81e36f58643b25b1c059e436ee24264a77da43726516af8fd48bb616c881348b7112bae61de1224a90ffe6072ae19ff30b7a0604a67d1bcfd789e3308df1337c18d2b0c1d04d5adc8a669e98f59e3b421884e991458f4811b6f8a68d3279901eccda6c9c8c5b796bc8e9cc2ba37e58f7a6f35ac27956dd6ac4d74fe4d249a61589076896b0a95ddcc413862d38a58e5ec4248a708c4c9d8e6f402866325c0d409609e1091689e4bf0a14b2455152d1fc96a2f6435c9823d05abf06909afb5fd6ce015f51acca2ea8bba2a7047e10dd9621ede8441a389b069e7cc6c6fbd41f0424560d3803789c4155e3a5da4ec7dc4ae1b425422d6a75965134b32a4b0548780ec06c9b659ab2dc68a996a6491acd5c6626186ae313364a8f63a1606a5c2529d8a58a70216fc688da9efe861b1a4d4889947cba8c8470854850070482ee471c703c7101c54b4d01f81400fb2d357bcb782be84536a7a88373bd5258f0eaa29882d33fd1629a091ed4bcc7ad704991a8f55232ee609c816d6da13644f056df487e2b18775cf41cf89ccb61edeb2c62f4faaad3ef1ca9581286f5e5f025fc43c6b18226a55c40b4a06c3a0482539444990e38bf5068f150b4436fd7022314810e8b9e0023804b240b43e62d83360894653ed746873418268ef02d139a65f8c944e7f55e521a9f5028926fe44c154a094b614b34ba34168765d06953b5546ec326c2eb3a50b094542305d6e9d8b3708f2cff0139f83efbbdee01538791923c4328c12e56d5ff81e89aced4410be748c4df47b6a6bbcba7b44a0cf35eaaa8fa410b7969bfc656a5bf4069062ede11673a141d3bcf74ea5807ae70e0062f7653f033c917435a8d9845c735c0f24cb195dac9e3bdbc40fb5691bd1cda836dfaae5b21a7f17cf9b563119a3c12769803f745fb152528f86364cbab13aa3ac11341bee491e1a9ead7cbaebb8196cdb95cd5b58ec94818adf86ad6f1df116b4d476cab5fa2636997ad24f42000df5f7af552c3006890da26483738c2ee770cc662a06c5f13afacce7837ad5d06a356693f16ab88aa06994e041f6eef498a60d3da4b5a7367f7c06fa01f35ebc21b0bc0043edf1b7ec81fac78acb13e478e2003545a303971e0ff192ed3efb6bb40b695d68ba05313f7523a6958a5b34ffa3bb79f5f28d0c5f335bc903d6e96f93b335c717c3fe0bc919dd4ca2fc69e1a6097a1b39db85b22e24dd46cc3ad1d24ac42d5a3fff1d840c5cdcacb8a18c69c43bcf837b1a0de3cbf02a7f5baea73cfb43e4db79958f4a7e2736d1e6ccdd92eb2256dde2a6936c614616bee43325798f4f7f19fff2cbd9d80c7e0b587003e84b6dd94fd8130f6794de3bb9d30b82608c5106815058f12af2fdc74319df1ff7b62f9d60aba3bdfdefc945efe519db9848684e35ae3d3adbc62bda5cbcddcc7444860468f3168f3f8d9723bcc1cc47cd9ce20cd1051ff4538a928b0c8a36ba5432c4bbcd9fb1fe91b24b2b1b972f4f6f6c647c67de2c2ee7560985a6ccbd5c792416704fe457a5896b052d5f6fd01a06c0e74278300e35e9a151db63c9729fe28e939ebe17702a71e2eb747a2f9e8fa9e68bea2d756d6c2a93e8b79276b35c2f3074f0e8b7122a0375c9f227a444e9451c25e7cf1a1cc48611d8db6b30d48b224337b2c8625328f159701fa42de7591e9449be8a16ca41540c4dfe1cc6ee240cbad1adcbfe59f5116fda01f558c6737c7f0ed9d0c06d27b0a00c38fb334245c595c12de3e6f67a309b80b7ba275777c47b3fbf7ce50e828bbda79c8571c6c3f9d58dc823efd14fdf761aa29c098477ca1d87234d3256f3c77078ad64f05671a601c57067a4bd90537be7fdff09b53e6c3acfdaa5da4d81fb969484507e17cd27fd874d8f1dfb75a07837bece551c41187160a20db2530f7d13a353576fcbc7ba1167899933e686bcd31943fb4a3b2f90affaf692f5298ba184f005ab621ddff91a5a44458cb3f43f8c1c2af1ea46474134c353c0d6e3599ce62e3cb4f16f3cbfaedef48a1cfc5f000000ffff010000ffff476a365b2f860000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["app.js"] = bs diff --git a/cmd/syncthing/gui.go b/cmd/syncthing/gui.go index 6b145c879..ed43ce098 100644 --- a/cmd/syncthing/gui.go +++ b/cmd/syncthing/gui.go @@ -517,7 +517,7 @@ func restGetLang(w http.ResponseWriter, r *http.Request) { var langs []string for _, l := range strings.Split(lang, ",") { parts := strings.SplitN(l, ";", 2) - langs = append(langs, strings.TrimSpace(parts[0])) + langs = append(langs, strings.ToLower(strings.TrimSpace(parts[0]))) } w.Header().Set("Content-Type", "application/json; charset=utf-8") json.NewEncoder(w).Encode(langs) diff --git a/gui/app.js b/gui/app.js index 449c5fb0c..916e2c528 100644 --- a/gui/app.js +++ b/gui/app.js @@ -91,14 +91,27 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca var lang, matching; for (var i = 0; i < langs.length; i++) { lang = langs[i]; - matching = validLangs.filter(function (l) { - return lang.length >= 2 && l.indexOf(lang) == 0; + if (lang.length < 2) { + continue; + } + matching = validLangs.filter(function (possibleLang) { + // The langs returned by the /rest/langs call will be in lower + // case. We compare to the lowercase version of the language + // code we have as well. + possibleLang = possibleLang.toLowerCase() + if (possibleLang.length > lang.length) { + return possibleLang.indexOf(lang) == 0; + } else { + return lang.indexOf(possibleLang) == 0; + } }); if (matching.length >= 1) { $translate.use(matching[0]); - break; + return; } } + // Fallback if nothing matched + $translate.use("en"); }) $(window).bind('beforeunload', function() {