public static void getFilesHashAndUpdate(EcProrgressBar bar,EcButton btn,EcServerButton aquilla) throws NoSuchAlgorithmException, IOException {
        UpdateUtils.bar = bar;
        UpdateUtils.btn = btn;
        UpdateUtils.aquilla=aquilla;
        aquilla.setEnabled(false);
        btn.setEnabled(false);
        updateTextButton("Проверка и обновление","Пожалуйста, подождите...");
        String jsonString = Utils.getInfo("hashes");
        if(!jsonString.equals("error")){
            System.out.println(jsonString);
            JsonObject obj= new JsonParser().parse(jsonString).getAsJsonObject();
            String mainPath = Utils.getMainPath();
            System.out.println(obj.entrySet().size());
            bar.setMaximum(obj.entrySet().size());
            HashMap<String,String> thisFiles = Utils.getMD5Files();
            for (Map.Entry<String,JsonElement> entry : obj.entrySet()) {
                String currentFileName = mainPath + entry.getKey().replaceAll("/", Matcher.quoteReplacement(File.separator));
                File currentFile = new File(currentFileName);
                btn.setText2("Проверка: "+currentFileName);
                btn.repaint();
                if(!currentFile.exists()){
                    Path p = Paths.get(currentFileName);
                    new File(p.getParent().toString()).mkdirs();
                    if(!getFile(entry.getKey(),currentFileName)){
                        btn.setText("Ошибка обновления...","Попробуйте позже");
                        btn.repaint();
                        return;
                    }
                }else{
                    String s1 = entry.getValue().toString().replaceAll("\"","");
                    if(s1.length()>32)s1=s1.substring(1,s1.length());
                    String thisHash = Utils.getMD5File(currentFileName);
                    if(!s1.equals(thisHash)){
                        System.out.println(currentFileName+" - BAD HASH! "+thisHash+"!="+s1);
                        currentFile.delete();
                        if(!getFile(entry.getKey(),currentFileName)){
                            btn.setText("Ошибка обновления...","Попробуйте позже");
                            btn.repaint();
                            return;
                        }
                    }else{
                        System.out.println(currentFileName+" - OK! "+thisHash+"=="+s1);
                    }
                }
                thisFiles.remove(entry.getKey().replaceAll("/",Matcher.quoteReplacement(File.separator)));
                updateProgress(1);
            }
            for(Map.Entry<String,String> entry: thisFiles.entrySet()){
                new File(Utils.getMainPath()+entry.getKey()).delete();
            }
            btn.setEnabled(true);
            updateTextButton("Обновлений не найдено!","");
        }
        aquilla.setEnabled(true);
    }