public void run() {
            this.runtime = System.currentTimeMillis();
            Logger.getLogger(Localization.getInstance().get("name")).info(
                    "$" + Thread.currentThread().getId() + " " + Localization.getInstance().get("thread_spawn1") + this.min + ". "
                            + Localization.getInstance().get("thread_spawn2") + this.max + ".");
            try {
                if (slicedInputs) {
                    for (String in : slice) {
                        for (String ta : targets) {
                            this.output.putAll((dictionaryAttack(in, ta, method)));
                        }
                    }
                } else {
                    for (String in : inputs) {
                        for (String ta : slice) {
                            this.output.putAll((dictionaryAttack(in, ta, method)));
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            this.runtime = System.currentTimeMillis() - this.runtime;
            this.listener.finished(this.runtime, this.output);
            Logger.getLogger(Localization.getInstance().get("name")).info("$" + Thread.currentThread().getId() + " " + Localization.getInstance().get("thread_done1"));
        }