text:
// Copyright (c) 2015 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

package com.uber.jenkins.phabricator;

import com.google.common.annotations.VisibleForTesting;
import com.uber.jenkins.phabricator.conduit.ConduitAPIClient;
import com.uber.jenkins.phabricator.conduit.ConduitAPIException;
import com.uber.jenkins.phabricator.conduit.Differential;
import com.uber.jenkins.phabricator.conduit.DifferentialClient;
import com.uber.jenkins.phabricator.credentials.ConduitCredentials;
import com.uber.jenkins.phabricator.tasks.ApplyPatchTask;
import com.uber.jenkins.phabricator.tasks.SendHarbormasterResultTask;
import com.uber.jenkins.phabricator.tasks.SendHarbormasterUriTask;
import com.uber.jenkins.phabricator.tasks.Task;
import com.uber.jenkins.phabricator.utils.CommonUtils;
import com.uber.jenkins.phabricator.utils.Logger;
import hudson.EnvVars;
import hudson.Launcher;
import hudson.model.AbstractBuild;
import hudson.model.BuildListener;
import hudson.model.Cause;
import hudson.model.CauseAction;
import hudson.model.Executor;
import hudson.model.Job;
import hudson.model.ParameterValue;
import hudson.model.ParametersAction;
import hudson.model.Result;
import hudson.model.Run;
import hudson.tasks.BuildWrapper;
import hudson.util.RunList;

import org.kohsuke.stapler.DataBoundConstructor;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class PhabricatorBuildWrapper extends BuildWrapper {
    private static final String CONDUIT_TAG = "conduit";
    private static final String DEFAULT_GIT_PATH = "git";
    private static final String DIFFERENTIAL_SUMMARY = "PHABRICATOR_DIFFERENTIAL_SUMMARY";
    private static final String DIFFERENTIAL_AUTHOR = "PHABRICATOR_DIFFERENTIAL_AUTHOR";
    private static final String DIFFERENTIAL_BASE_COMMIT = "PHABRICATOR_DIFFERENTIAL_BASE_COMMIT";
    private static final String DIFFERENTIAL_BRANCH = "PHABRICATOR_DIFFERENTIAL_BRANCH";

    private final boolean createCommit;
    private final boolean applyToMaster;
    private final boolean skipForcedClean;
    private final boolean createBranch;
    private final boolean patchWithForceFlag;

    @DataBoundConstructor
    public PhabricatorBuildWrapper(boolean createCommit, boolean applyToMaster,
                                   boolean skipForcedClean,
                                   boolean createBranch, boolean patchWithForceFlag) {
        this.createCommit = createCommit;
        this.applyToMaster = applyToMaster;
        this.skipForcedClean = skipForcedClean;
        this.createBranch = createBranch;
        this.patchWithForceFlag = patchWithForceFlag;
    }

    /** {@inheritDoc} */
    @Override
    public Environment setUp(AbstractBuild build,
                             Launcher launcher,
                             BuildListener listener) throws IOException, InterruptedException {
        EnvVars environment = build.getEnvironment(listener);
        Logger logger = new Logger(listener.getLogger());
        if (environment == null) {
            return this.ignoreBuild(logger, "No environment variables found?!");
        }

        final Map<String, String> envAdditions = new HashMap<String, String>();

        String phid = environment.get(PhabricatorPlugin.PHID_FIELD);
        String diffID = environment.get(PhabricatorPlugin.DIFFERENTIAL_ID_FIELD);
        if (CommonUtils.isBlank(diffID)) {
            this.addShortText(build);
            this.ignoreBuild(logger, "No differential ID found.");
            return new Environment(){};
        }

        LauncherFactory starter = new LauncherFactory(launcher, environment, listener.getLogger(), build.getWorkspace());

        ConduitAPIClient conduitClient;
        try {
            conduitClient = getConduitClient(build.getParent(), logger);
        } catch (ConduitAPIException e) {
            e.printStackTrace(logger.getStream());
            logger.warn(CONDUIT_TAG, e.getMessage());
            return null;
        }

        DifferentialClient diffClient = new DifferentialClient(diffID, conduitClient);

        if (!CommonUtils.isBlank(phid)) {
            logger.info("harbormaster", "Sending Harbormaster BUILD_URL via PHID: " + phid);
            String buildUrl = environment.get("BUILD_URL");
            Task.Result sendUriResult = new SendHarbormasterUriTask(logger, diffClient, phid, buildUrl).run();

            if (sendUriResult != Task.Result.SUCCESS) {
                logger.info("harbormaster", "Unable to send BUILD_URL to Harbormaster");
            }
        }

        Differential diff;
        try {
            diff = new Differential(diffClient.fetchDiff());
            diff.setCommitMessage(diffClient.getCommitMessage(diff.getRevisionID(false)));
            diff.decorate(build, this.getPhabricatorURL(build.getParent()));

            logger.info(CONDUIT_TAG, "Fetching differential from Conduit API");

            envAdditions.put(DIFFERENTIAL_AUTHOR, diff.getAuthorEmail());
            envAdditions.put(DIFFERENTIAL_BASE_COMMIT, diff.getBaseCommit());
            envAdditions.put(DIFFERENTIAL_BRANCH, diff.getBranch());
            envAdditions.put(DIFFERENTIAL_SUMMARY, diff.getCommitMessage());
        } catch (ConduitAPIException e) {
            e.printStackTrace(logger.getStream());
            logger.warn(CONDUIT_TAG, "Unable to fetch differential from Conduit API");
            logger.warn(CONDUIT_TAG, e.getMessage());
            return null;
        }

        String baseCommit = "origin/master";
        if (!applyToMaster) {
            baseCommit = diff.getBaseCommit();
        }

        final String conduitToken = this.getConduitToken(build.getParent(), logger);
        Task.Result result = new ApplyPatchTask(
                logger, starter, baseCommit, diffID, conduitToken, getArcPath(),
                DEFAULT_GIT_PATH, createCommit, skipForcedClean, createBranch,
                patchWithForceFlag
        ).run();

        if (result != Task.Result.SUCCESS) {
            logger.warn("arcanist", "Error applying arc patch; got non-zero exit code " + result);
            Task.Result failureResult = new SendHarbormasterResultTask(logger, diffClient, phid, false, null, null, null).run();
            if (failureResult != Task.Result.SUCCESS) {
                // such failure, very broke
                logger.warn("arcanist", "Unable to notify harbormaster of patch failure");
            }
            // Indicate failure
            return null;
        }

        return new Environment(){
            @Override
            public void buildEnvVars(Map<String, String> env) {
                EnvVars envVars = new EnvVars(env);
                envVars.putAll(envAdditions);
                env.putAll(envVars);
            }
        };
    }

    /**
     * Abort running builds when new build referencing same revision is scheduled to run
     */
    @Override
    public void preCheckout(AbstractBuild build, Launcher launcher, BuildListener listener) throws IOException,
            InterruptedException {
        String abortOnRevisionId = getAbortOnRevisionId(build);
        // If ABORT_ON_REVISION_ID is available
        if (!CommonUtils.isBlank(abortOnRevisionId)) {
            // Create a cause of interruption
            PhabricatorCauseOfInterruption causeOfInterruption =
                    new PhabricatorCauseOfInterruption(build.getUrl());
            Run upstreamRun = getUpstreamRun(build);

            // Get the running builds that were scheduled before the current one
            RunList<AbstractBuild> runningBuilds = (RunList<AbstractBuild>) build.getProject().getBuilds();
            for (AbstractBuild runningBuild : runningBuilds) {
                Executor executor = runningBuild.getExecutor();
                Run runningBuildUpstreamRun = getUpstreamRun(runningBuild);

                // Ignore builds that were triggered by the same upstream build
                // Find builds triggered with the same ABORT_ON_REVISION_ID_FIELD
                if (runningBuild.isBuilding()
                        && runningBuild.number < build.number
                        && abortOnRevisionId.equals(getAbortOnRevisionId(runningBuild))
                        && (upstreamRun == null
                        || runningBuildUpstreamRun == null
                        || !upstreamRun.equals(runningBuildUpstreamRun))
                        && executor != null) {
                    // Abort the builds
                    executor.interrupt(Result.ABORTED, causeOfInterruption);
                }
            }
        }
    }

    private void addShortText(final AbstractBuild build) {
        build.addAction(PhabricatorPostbuildAction.createShortText("master", null));
    }

    private Environment ignoreBuild(Logger logger, String message) {
        logger.info("ignore-build", message);
        return new Environment(){};
    }

    private ConduitAPIClient getConduitClient(Job owner, Logger logger) throws ConduitAPIException {
        ConduitCredentials credentials = getConduitCredentials(owner);
        if (credentials == null) {
            throw new ConduitAPIException("No credentials configured for conduit");
        }
        return new ConduitAPIClient(credentials.getGateway(), getConduitToken(owner, logger));
    }

    private ConduitCredentials getConduitCredentials(Job owner) {
        return getDescriptor().getCredentials(owner);
    }

    @SuppressWarnings("UnusedDeclaration")
    public boolean isCreateCommit() {
        return createCommit;
    }

    @SuppressWarnings("UnusedDeclaration")
    public boolean isApplyToMaster() {
        return applyToMaster;
    }

    @SuppressWarnings("UnusedDeclaration")
    public boolean isCreateBranch() {
        return createBranch;
    }

    @SuppressWarnings("unused")
    public boolean isPatchWithForceFlag() {
        return patchWithForceFlag;
    }

    private String getPhabricatorURL(Job owner) {
        ConduitCredentials credentials = getConduitCredentials(owner);
        if (credentials != null) {
            return credentials.getUrl();
        }
        return null;
    }

    private String getConduitToken(Job owner, Logger logger) {
        ConduitCredentials credentials = getConduitCredentials(owner);
        if (credentials != null) {
            return credentials.getToken().getPlainText();
        }
        logger.warn("credentials", "No credentials configured.");
        return null;
    }

    /**
     * Return the path to the arcanist executable
     * @return a string, fully-qualified or not, could just be "arc"
     */
    private String getArcPath() {
        final String providedPath = getDescriptor().getArcPath();
        if (CommonUtils.isBlank(providedPath)) {
            return "arc";
        }
        return providedPath;
    }

    // Overridden for better type safety.
    @Override
    public PhabricatorBuildWrapperDescriptor getDescriptor() {
        return (PhabricatorBuildWrapperDescriptor)super.getDescriptor();
    }

    @VisibleForTesting
    static String getAbortOnRevisionId(AbstractBuild build) {
        ParametersAction parameters = build.getAction(ParametersAction.class);
        if (parameters != null) {
            ParameterValue parameterValue = parameters.getParameter(
                    PhabricatorPlugin.ABORT_ON_REVISION_ID_FIELD);
            if (parameterValue != null) {
                return (String) parameterValue.getValue();
            }
        }
        return null;
    }

    @VisibleForTesting
    static Run<?, ?> getUpstreamRun(AbstractBuild build) {
        CauseAction action = build.getAction(hudson.model.CauseAction.class);
        if (action != null) {
            Cause.UpstreamCause upstreamCause = action.findCause(hudson.model.Cause.UpstreamCause.class);
            if (upstreamCause != null) {
                return upstreamCause.getUpstreamRun();
            }
        }
        return null;
    }
}


text:
namespace model {

class Application : public ui::IObservable<Application>
{
public:
	Application() = default;
	Application(Application&) = delete;
	Application(Application&&) = delete;
	void run();
	const RubberGame * getGame() const
	{
		return game;
	}
private:
	RubberGame* game = nullptr;
};

}

#endif

redpajama_set_name: RedPajamaGithub


text:
#include <QtWidgets/QFileDialog>
#include <qrkernel/settingsManager.h>

#include "visualInterpreterPreferencesPage.h"
#include "ui_visualInterpreterPreferencePage.h"

using namespace qReal;

VisualInterpreterPreferencesPage::VisualInterpreterPreferencesPage(QWidget *parent)
		: PreferencesPage(parent)
		, mUi(new Ui::visualInterpreterPreferencesPage)
{
	setWindowIcon(QIcon(":/icons/preferences/bug.png"));
	mUi->setupUi(this);

	QString const binFolder = qApp->applicationDirPath();
	QDir binDir(binFolder);
	binDir.cdUp();
	SettingsManager::setValue("qrealSourcesLocation", binDir.absolutePath());

	mUi->qrealSourcesLineEdit->setText(SettingsManager::value("qrealSourcesLocation"
			, binFolder.mid(0, binFolder.lastIndexOf("/"))).toString());
	mUi->pythonPathLineEdit->setText(SettingsManager::value("pythonPath").toString());
	mUi->tempPathLineEdit->setText(SettingsManager::value("tempScriptPath", binFolder + "/temp.py").toString());
	mUi->genTimeoutSpinBox->setValue(SettingsManager::value("generationTimeout").toInt());

	connect(mUi->qrealSourcesPushButton, SIGNAL(clicked()), this, SLOT(setQRealSourcesLocation()));
	connect(mUi->pythonPathPushButton, SIGNAL(clicked()), this, SLOT(setPythonPath()));
	connect(mUi->tempPathPushButton, SIGNAL(clicked()), this, SLOT(setTempScriptPath()));
}

VisualInterpreterPreferencesPage::~VisualInterpreterPreferencesPage()
{
	delete mUi;
}

void VisualInterpreterPreferencesPage::setQRealSourcesLocation()
{
	QString const location = QFileDialog::getExistingDirectory(this, tr("Specify directory:"));
	mUi->qrealSourcesLineEdit->setText(location);
}

void VisualInterpreterPreferencesPage::setPythonPath()
{
	QString const path = QFileDialog::getOpenFileName(this, tr("Specify python path:"));
	mUi->pythonPathLineEdit->setText(path);
}

void VisualInterpreterPreferencesPage::setTempScriptPath()
{
	QString const path = QFileDialog::getOpenFileName(this, tr("Specify temp script file:"));
	mUi->tempPathLineEdit->setText(path);
}

void VisualInterpreterPreferencesPage::save()
{
	SettingsManager::setValue("qrealSourcesLocation", mUi->qrealSourcesLineEdit->text());
	SettingsManager::setValue("pythonPath", mUi->pythonPathLineEdit->text());
	SettingsManager::setValue("tempScriptPath", mUi->tempPathLineEdit->text());
	SettingsManager::setValue("generationTimeout", mUi->genTimeoutSpinBox->value());
}

void VisualInterpreterPreferencesPage::restoreSettings()
{
	mUi->qrealSourcesLineEdit->setText(SettingsManager::value("qrealSourcesLocation").toString());
}


text:
package org.giweet.step.tree;

import static org.junit.Assert.*;

import java.util.ArrayList;
import java.util.List;

import org.giweet.step.StepDeclaration;
import org.giweet.step.StepDeclarationImpl;
import org.giweet.step.StepInstance;
import org.giweet.step.StepTokenValue;
import org.giweet.step.StepType;
import org.giweet.step.tokenizer.StepTokenizer;
import org.giweet.step.tokenizer.TokenizerStrategy;
import org.junit.Ignore;
import org.junit.Test;

@Ignore("StepTokenizer has been reimplemented. Hence StepDeclarationTree must also be reimplemented")
public class StepDeclarationTreeTest {

	private final StepTokenizer stepTokenizer = new StepTokenizer(TokenizerStrategy.TOKENIZE_STEP_INSTANCE);

	@Test
	public void canSearchRawStepsWithOneStepDeclarationAvailable() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration stepDeclaration = new StepDeclarationImpl("hello $the world");
		stepDeclarations.add(stepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		assertStepDeclarationNotFoundInStepDeclarationTree(underTest, "hello");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "hello $the world", "hello le petit world");
	}

	@Test
	public void canSearchRawStepsWithMultipleStepDeclarationAvailable() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration stepDeclaration = new StepDeclarationImpl("hello");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("hello the");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("hello the world");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("$hello the world");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("$hello $the world");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("$hello $the");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("$hello $the $world");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("hello $the world");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("hello $the universe");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("hello the $world");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("foo $bar");
		stepDeclarations.add(stepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		assertStepDeclarationNotFoundInStepDeclarationTree(underTest, "NotExisting");

		assertStepDeclarationFoundInStepDeclarationTree(underTest, "hello", "hello");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "hello the world", "hello the world");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "$hello the world", "Bonjour the world");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "$hello $the world", "Bonjour le world");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "hello $the world", "hello le world");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "hello the $world", "Hello the monde");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "$hello $the $world", "this is correct");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "$hello $the $world", "this is also correct");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "hello $the world", "hello le petit world");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "hello the $world", "hello the petit world");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "$hello $the world", "bonjour le world");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "foo $bar", "foo foo and foo bar");
	}

	@Test
	public void canSearchStepsBySearchingThroughDifferentBranchesOfTheTree() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration stepDeclaration = new StepDeclarationImpl("test searching through the wrong branch");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("test $1 through another branch");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("test $1 through the wrong branch again");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("$1 through $2 right branch");
		stepDeclarations.add(stepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		assertStepDeclarationFoundInStepDeclarationTree(underTest, "$1 through $2 right branch", "test searching through the right branch");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "test $1 through another branch", "test searching through the right branch through another branch");
	}

	@Test
	public void canSearchAllRawStepsWithOnlyOneDynamicToken() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration stepDeclaration = new StepDeclarationImpl("$any");
		stepDeclarations.add(stepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		assertStepDeclarationNotFoundInStepDeclarationTree(underTest, "");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "$any", "hello");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "$any", "hello the");
		assertStepDeclarationFoundInStepDeclarationTree(underTest, "$any", "hello the world");
	}

	@Test
	public void canSearchEvenIfInputContainsMeaninglessStepTokens() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration stepDeclaration = new StepDeclarationImpl("hello the world");
		stepDeclarations.add(stepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		assertStepDeclarationFoundInStepDeclarationTree(underTest, "hello the world", "hello, the world!");
	}

	@Test
	public void canSearchStepDeclarationWithSpecificType() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration givenStepDeclaration = new StepDeclarationImpl("test", StepType.GIVEN);
		stepDeclarations.add(givenStepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		SearchResult<StepDeclaration> searchResult = underTest.search(new StepInstance(StepType.GIVEN, "test"));
		assertEquals(givenStepDeclaration, searchResult.getStepDeclaration());

		searchResult = underTest.search(new StepInstance(StepType.WHEN, "test"));
		assertNull(searchResult);

		searchResult = underTest.search(new StepInstance(StepType.THEN, "test"));
		assertNull(searchResult);
	}

	@Test
	public void canSearchStepDeclarationWithMultipleTypes() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration givenThenStepDeclaration = new StepDeclarationImpl("test", StepType.GIVEN, StepType.THEN);
		stepDeclarations.add(givenThenStepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		SearchResult<StepDeclaration> searchResult = underTest.search(new StepInstance(StepType.GIVEN, "test"));
		assertEquals(givenThenStepDeclaration, searchResult.getStepDeclaration());

		searchResult = underTest.search(new StepInstance(StepType.THEN, "test"));
		assertEquals(givenThenStepDeclaration, searchResult.getStepDeclaration());

		searchResult = underTest.search(new StepInstance(StepType.WHEN, "test"));
		assertNull(searchResult);
	}

	@Test
	public void canSearchStepDeclarationsWithSameValueButDifferentTypes() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration givenStepDeclaration = new StepDeclarationImpl("test test", StepType.GIVEN);
		stepDeclarations.add(givenStepDeclaration);
		StepDeclaration whenStepDeclaration = new StepDeclarationImpl("test test", StepType.WHEN);
		stepDeclarations.add(whenStepDeclaration);
		StepDeclaration thenStepDeclaration = new StepDeclarationImpl("test test", StepType.THEN);
		stepDeclarations.add(thenStepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		SearchResult<StepDeclaration> searchResult = underTest.search(new StepInstance(StepType.GIVEN, "test test"));
		assertEquals(givenStepDeclaration, searchResult.getStepDeclaration());

		searchResult = underTest.search(new StepInstance(StepType.WHEN, "test test"));
		assertEquals(whenStepDeclaration, searchResult.getStepDeclaration());

		searchResult = underTest.search(new StepInstance(StepType.THEN, "test test"));
		assertEquals(thenStepDeclaration, searchResult.getStepDeclaration());
	}

	@Test
	public void canSearchStepDeclarationsWithDifferentValuesAndDifferentTypes() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration givenStepDeclaration = new StepDeclarationImpl("test test", StepType.GIVEN);
		stepDeclarations.add(givenStepDeclaration);
		StepDeclaration whenStepDeclaration = new StepDeclarationImpl("test test test", StepType.WHEN);
		stepDeclarations.add(whenStepDeclaration);
		StepDeclaration thenStepDeclaration = new StepDeclarationImpl("test test test test", StepType.THEN);
		stepDeclarations.add(thenStepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		SearchResult<StepDeclaration> searchResult = underTest.search(new StepInstance(StepType.GIVEN, "test test"));
		assertEquals(givenStepDeclaration, searchResult.getStepDeclaration());

		searchResult = underTest.search(new StepInstance(StepType.WHEN, "test test"));
		assertNull(searchResult);

		searchResult = underTest.search(new StepInstance(StepType.WHEN, "test test test"));
		assertEquals(whenStepDeclaration, searchResult.getStepDeclaration());

		searchResult = underTest.search(new StepInstance(StepType.THEN, "test test test"));
		assertNull(searchResult);

		searchResult = underTest.search(new StepInstance(StepType.THEN, "test test test test"));
		assertEquals(thenStepDeclaration, searchResult.getStepDeclaration());

		searchResult = underTest.search(new StepInstance(StepType.GIVEN, "test test test test"));
		assertNull(searchResult);

		searchResult = underTest.search(new StepInstance(StepType.GIVEN, "test test test test test"));
		assertNull(searchResult);
	}

	@Test
	public void canSearchAndReturnStepTokenValue() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration stepDeclaration = new StepDeclarationImpl("hello the world");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("hello the world from $1");
		stepDeclarations.add(stepDeclaration);
		stepDeclaration = new StepDeclarationImpl("$1 $2");
		stepDeclarations.add(stepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		SearchResult<StepDeclaration> searchResult = underTest.search(new StepInstance(StepType.GIVEN, "hello the world"));

		StepTokenValue[] stepTokenValues;
		assertEquals(0, searchResult.getStepTokenValues().length);

		searchResult = underTest.search(new StepInstance(StepType.GIVEN, "hello the world from giweet"));

		stepTokenValues = searchResult.getStepTokenValues();
		assertEquals(1, stepTokenValues.length);
		assertEquals("1", stepTokenValues[0].getDynamicToken().toString());
		assertEquals(4, stepTokenValues[0].getDynamicTokenPosition());
		assertEquals("giweet", stepTokenValues[0].getValue());
		assertEquals(8, stepTokenValues[0].getStartPosition());
		assertEquals(8, stepTokenValues[0].getEndPosition());
		assertEquals(1, stepTokenValues[0].getTokens().length);
		assertArrayEquals(stepTokenizer.tokenize("giweet"), stepTokenValues[0].getTokens());

		searchResult = underTest.search(new StepInstance(StepType.GIVEN, "goodbye giweet and good luck!"));

		stepTokenValues = searchResult.getStepTokenValues();
		assertEquals(2, stepTokenValues.length);
		assertEquals("1", stepTokenValues[0].getDynamicToken().toString());
		assertEquals(0, stepTokenValues[0].getDynamicTokenPosition());
		assertEquals("goodbye", stepTokenValues[0].getValue());
		assertEquals(0, stepTokenValues[0].getStartPosition());
		assertEquals(0, stepTokenValues[0].getEndPosition());
		assertEquals(1, stepTokenValues[0].getTokens().length);
		assertArrayEquals(stepTokenizer.tokenize("goodbye"), stepTokenValues[0].getTokens());

		assertEquals("2", stepTokenValues[1].getDynamicToken().toString());
		assertEquals(1, stepTokenValues[1].getDynamicTokenPosition());
		assertEquals("giweet and good luck", stepTokenValues[1].getValue());
		assertEquals(2, stepTokenValues[1].getStartPosition());
		assertEquals(8, stepTokenValues[1].getEndPosition());
		assertEquals(7, stepTokenValues[1].getTokens().length);
		assertArrayEquals(stepTokenizer.tokenize("giweet and good luck"), stepTokenValues[1].getTokens());
	}

	@Test
	public void testEmptyStepNotAllowed() throws Exception {
		List<StepDeclaration> stepDeclarations = new ArrayList<StepDeclaration>();
		StepDeclaration stepDeclaration = new StepDeclarationImpl("");
		stepDeclarations.add(stepDeclaration);

		StepDeclarationTree<StepDeclaration> underTest = new StepDeclarationTree<StepDeclaration>(stepDeclarations);

		assertStepDeclarationNotFoundInStepDeclarationTree(underTest, "");
	}

	private <T extends StepDeclaration> void assertStepDeclarationFoundInStepDeclarationTree(StepDeclarationTree<T> tree, String expectedStepDeclarationValue, String actualRawStep) throws Exception {
		SearchResult<T> searchResult = tree.search(new StepInstance(StepType.GIVEN, actualRawStep));
		assertNotNull(searchResult);
		assertEquals(expectedStepDeclarationValue, searchResult.getStepDeclaration().getValue());
	}

	private <T extends StepDeclaration> void assertStepDeclarationNotFoundInStepDeclarationTree(StepDeclarationTree<T> tree, String actualRawStep) throws Exception {
		SearchResult<T> searchResult = tree.search(new StepInstance(StepType.GIVEN, actualRawStep));
		assertNull(searchResult);
	}
}


text:
#include <nxt_main.h>

/*
 * The strerror() messages are copied because:
 *
 * 1) strerror() and strerror_r() functions are not Async-Signal-Safe,
 *    therefore, they can not be used in signal handlers;
 *
 * 2) a direct sys_errlist[] array may be used instead of these functions,
 *    but Linux linker warns about this usage:
 *
 * warning: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead
 * warning: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead
 *
 *    causing false bug reports.
 */

static u_char *nxt_bootstrap_strerror(nxt_err_t err, u_char *errstr,
    size_t size);
static u_char *nxt_runtime_strerror(nxt_err_t err, u_char *errstr, size_t size);

nxt_strerror_t     nxt_strerror = nxt_bootstrap_strerror;
static nxt_str_t   *nxt_sys_errlist;
static nxt_uint_t  nxt_sys_nerr;

nxt_int_t
nxt_strerror_start(void)
{
    char        *msg;
    u_char      *p;
    size_t      size, length, n;
    nxt_uint_t  err, invalid;

    /* The last entry. */
    size = nxt_length("Unknown error");

    /*
     * Linux has holes for error codes 41 and 58, so the loop
     * stops only after 100 invalid codes in succession.
     */

    for (invalid = 0; invalid < 100 && nxt_sys_nerr < 65536; nxt_sys_nerr++) {

        nxt_set_errno(0);
        msg = strerror((int) nxt_sys_nerr);

        /*
         * strerror() behaviour on passing invalid error code depends
         * on OS and version:
         *   Linux returns "Unknown error NN";
         *   FreeBSD, NetBSD and OpenBSD return "Unknown error: NN"
         *     and set errno to EINVAL;
         *   Solaris 10 returns "Unknown error" and sets errno to EINVAL;
         *   Solaris 9 returns "Unknown error";
         *   Solaris 2 returns NULL;
         *   MacOSX returns "Unknown error: NN";
         *   AIX returns "Error NNN occurred.";
         *   HP-UX returns "Unknown error" for invalid codes lesser than 250
         *     or empty string for larger codes.
         */

        if (msg == NULL) {
            invalid++;
            continue;
        }

        length = nxt_strlen(msg);
        size += length;

        if (length == 0  /* HP-UX empty strings. */
            || nxt_errno == NXT_EINVAL
            || memcmp(msg, "Unknown error", 13) == 0)
        {
            invalid++;
            continue;
        }

#if (NXT_AIX)

        if (memcmp(msg, "Error ", 6) == 0
            && memcmp(msg + length - 10, " occurred.", 9) == 0)
        {
            invalid++;
            continue;
        }

#endif
    }

    nxt_sys_nerr -= invalid;

    nxt_main_log_debug("sys_nerr: %d", nxt_sys_nerr);

    n = (nxt_sys_nerr + 1) * sizeof(nxt_str_t);

    nxt_sys_errlist = nxt_malloc(n + size);
    if (nxt_sys_errlist == NULL) {
        return NXT_ERROR;
    }

    p = nxt_pointer_to(nxt_sys_errlist, n);

    for (err = 0; err < nxt_sys_nerr; err++) {
        msg = strerror((int) err);
        length = nxt_strlen(msg);

        nxt_sys_errlist[err].length = length;
        nxt_sys_errlist[err].start = p;

        p = nxt_cpymem(p, msg, length);
    }

    nxt_sys_errlist[err].length = 13;
    nxt_sys_errlist[err].start = p;
    nxt_memcpy(p, "Unknown error", 13);

    nxt_strerror = nxt_runtime_strerror;

    return NXT_OK;
}

static u_char *
nxt_bootstrap_strerror(nxt_err_t err, u_char *errstr, size_t size)
{
    return nxt_cpystrn(errstr, (u_char *) strerror(err), size);
}

static u_char *
nxt_runtime_strerror(nxt_err_t err, u_char *errstr, size_t size)
{
    nxt_str_t   *msg;
    nxt_uint_t  n;

    n = nxt_min((nxt_uint_t) err, nxt_sys_nerr);

    msg = &nxt_sys_errlist[n];

    size = nxt_min(size, msg->length);

    return nxt_cpymem(errstr, msg->start, size);
}


text:
            <a href="<?=base_url();?>" class="logo">

                DealGuru

                    Toggle navigation

<?php if($this->session->userdata('id_user')!="")
                                            echo '';
                                             ?>

                        <?php
                        if($this->session->userdata('id_user')!="")
                        {
                        ?>

                                    <img src="<?=$this->session->userdata('user_image_url')==""?'img/user.png':$this->session->userdata('user_image_url');?>" class="img-circle" alt="User Image" />

                                        <?= $this->session->userdata('full_name')?> - Web Developer
                                        <?= $this->session->userdata('date_created');?>

                                        Profile

                                        <a href="<?=base_url();?>user/logout" class="btn btn-default btn-flat">Sign out

                            <?php }
                            else
                            {
                            ?>
                              Login

<a href="<?=base_url();?>user/register"> Register
                            <?php }?>


text:
package admission

import (
	"fmt"
	"io"
	"sort"
	"strings"

	"github.com/golang/glog"

	"k8s.io/apimachinery/pkg/util/validation/field"

	oadmission "github.com/openshift/origin/pkg/cmd/server/admission"
	allocator "github.com/openshift/origin/pkg/security"
	securityinformer "github.com/openshift/origin/pkg/security/generated/informers/internalversion"
	securitylisters "github.com/openshift/origin/pkg/security/generated/listers/security/internalversion"
	oscc "github.com/openshift/origin/pkg/security/scc"
	scc "github.com/openshift/origin/pkg/security/securitycontextconstraints"
	admission "k8s.io/apiserver/pkg/admission"
	kapi "k8s.io/kubernetes/pkg/api"
	kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
	kadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission"
	"k8s.io/kubernetes/pkg/serviceaccount"
)

func init() {
	admission.RegisterPlugin("SecurityContextConstraint",
		func(config io.Reader) (admission.Interface, error) {
			return NewConstraint(), nil
		})
}

type constraint struct {
	*admission.Handler
	client    kclientset.Interface
	sccLister securitylisters.SecurityContextConstraintsLister
}

var _ admission.Interface = &constraint{}
var _ = oadmission.WantsSecurityInformer(&constraint{})
var _ = kadmission.WantsInternalKubeClientSet(&constraint{})

// NewConstraint creates a new SCC constraint admission plugin.
func NewConstraint() *constraint {
	return &constraint{
		Handler: admission.NewHandler(admission.Create, admission.Update),
	}
}

// Admit determines if the pod should be admitted based on the requested security context
// and the available SCCs.
//
// 1.  Find SCCs for the user.
// 2.  Find SCCs for the SA.  If there is an error retrieving SA SCCs it is not fatal.
// 3.  Remove duplicates between the user/SA SCCs.
// 4.  Create the providers, includes setting pre-allocated values if necessary.
// 5.  Try to generate and validate an SCC with providers.  If we find one then admit the pod
//     with the validated SCC.  If we don't find any reject the pod and give all errors from the
//     failed attempts.
// On updates, the BeforeUpdate of the pod strategy only zeroes out the status.  That means that
// any change that claims the pod is no longer privileged will be removed.  That should hold until
// we get a true old/new set of objects in.
func (c *constraint) Admit(a admission.Attributes) error {
	if a.GetResource().GroupResource() != kapi.Resource("pods") {
		return nil
	}
	if len(a.GetSubresource()) != 0 {
		return nil
	}

	pod, ok := a.GetObject().(*kapi.Pod)
	// if we can't convert then we don't handle this object so just return
	if !ok {
		return nil
	}

	// if this is an update, see if we are only updating the ownerRef.  Garbage collection does this
	// and we should allow it in general, since you had the power to update and the power to delete.
	// The worst that happens is that you delete something, but you aren't controlling the privileged object itself
	if a.GetOldObject() != nil && oadmission.IsOnlyMutatingGCFields(a.GetObject(), a.GetOldObject()) {
		return nil
	}

	// get all constraints that are usable by the user
	glog.V(4).Infof("getting security context constraints for pod %s (generate: %s) in namespace %s with user info %v", pod.Name, pod.GenerateName, a.GetNamespace(), a.GetUserInfo())

	sccMatcher := oscc.NewDefaultSCCMatcher(c.sccLister)
	matchedConstraints, err := sccMatcher.FindApplicableSCCs(a.GetUserInfo())
	if err != nil {
		return admission.NewForbidden(a, err)
	}

	// get all constraints that are usable by the SA
	if len(pod.Spec.ServiceAccountName) > 0 {
		userInfo := serviceaccount.UserInfo(a.GetNamespace(), pod.Spec.ServiceAccountName, "")
		glog.V(4).Infof("getting security context constraints for pod %s (generate: %s) with service account info %v", pod.Name, pod.GenerateName, userInfo)
		saConstraints, err := sccMatcher.FindApplicableSCCs(userInfo)
		if err != nil {
			return admission.NewForbidden(a, err)
		}
		matchedConstraints = append(matchedConstraints, saConstraints...)
	}

	// remove duplicate constraints and sort
	matchedConstraints = oscc.DeduplicateSecurityContextConstraints(matchedConstraints)
	sort.Sort(oscc.ByPriority(matchedConstraints))

	providers, errs := oscc.CreateProvidersFromConstraints(a.GetNamespace(), matchedConstraints, c.client)
	logProviders(pod, providers, errs)

	if len(providers) == 0 {
		return admission.NewForbidden(a, fmt.Errorf("no providers available to validate pod request"))
	}

	// all containers in a single pod must validate under a single provider or we will reject the request
	validationErrs := field.ErrorList{}
	for _, provider := range providers {
		if errs := oscc.AssignSecurityContext(provider, pod, field.NewPath(fmt.Sprintf("provider %s: ", provider.GetSCCName()))); len(errs) > 0 {
			validationErrs = append(validationErrs, errs...)
			continue
		}

		// the entire pod validated, annotate and accept the pod
		glog.V(4).Infof("pod %s (generate: %s) validated against provider %s", pod.Name, pod.GenerateName, provider.GetSCCName())
		if pod.ObjectMeta.Annotations == nil {
			pod.ObjectMeta.Annotations = map[string]string{}
		}
		pod.ObjectMeta.Annotations[allocator.ValidatedSCCAnnotation] = provider.GetSCCName()
		return nil
	}

	// we didn't validate against any security context constraint provider, reject the pod and give the errors for each attempt
	glog.V(4).Infof("unable to validate pod %s (generate: %s) against any security context constraint: %v", pod.Name, pod.GenerateName, validationErrs)
	return admission.NewForbidden(a, fmt.Errorf("unable to validate against any security context constraint: %v", validationErrs))
}

// SetInformers implements WantsInformers interface for constraint.

func (c *constraint) SetSecurityInformers(informers securityinformer.SharedInformerFactory) {
	c.sccLister = informers.Security().InternalVersion().SecurityContextConstraints().Lister()
}

func (c *constraint) SetInternalKubeClientSet(client kclientset.Interface) {
	c.client = client
}

// Validate defines actions to vallidate security admission
func (c *constraint) Validate() error {
	if c.sccLister == nil {
		return fmt.Errorf("sccLister not initialized")
	}
	return nil
}

// logProviders logs what providers were found for the pod as well as any errors that were encountered
// while creating providers.
func logProviders(pod *kapi.Pod, providers []scc.SecurityContextConstraintsProvider, providerCreationErrs []error) {
	names := make([]string, len(providers))
	for i, p := range providers {
		names[i] = p.GetSCCName()
	}
	glog.V(4).Infof("validating pod %s (generate: %s) against providers %s", pod.Name, pod.GenerateName, strings.Join(names, ","))

	for _, err := range providerCreationErrs {
		glog.V(4).Infof("provider creation error: %v", err)
	}
}


text:
from __future__ import absolute_import, unicode_literals
from google.appengine.ext import ndb
from gaeforms.base import IntegerField
from gaeforms.ndb.form import ModelForm
from gaeforms.ndb.property import SimpleCurrency

__author__ = 'Bea'

class Tema(ndb.Model):
    titulo = ndb.StringProperty(required=True)
    descricao = ndb.StringProperty(required=True)

    @classmethod
    def query_ordenada_por_titulo(cls):
        return cls.query().order(Tema.titulo)

class TemaForm(ModelForm):
    _model_class = Tema
    _include = [Tema.titulo,Tema.descricao]

class Licao(ndb.Model):
    titulo = ndb.StringProperty(required=True)
    descricao = ndb.StringProperty(required=True)
    tema = ndb.KeyProperty(Tema, required=True)

    @classmethod
    def query_ordenada_por_titulo(cls):
        return cls.query().order(Licao.titulo)

    @classmethod
    def query_por_tema_ordenada_por_nome(cls, tema_selecionado):
        if isinstance(tema_selecionado, basestring):
            tema_selecionado = ndb.Key(Tema, int(tema_selecionado))
        return cls.query(cls.tema==tema_selecionado).order(cls.titulo)

class LicaoForm(ModelForm):
    _model_class = Licao
    _include = [Licao.titulo,Licao.descricao,Licao.tema]

class KanjiOrder(ndb.Model):
    image = ndb.BlobProperty()

class KanjiSound(ndb.Model):
    sound = ndb.BlobProperty()

class Cartao(ndb.Model):
    frase = ndb.StringProperty(required=True)
    resposta = ndb.StringProperty(required=True)
    imagem = ndb.KeyProperty(KanjiOrder)
    audio = ndb.KeyProperty(KanjiSound)
    licao = ndb.KeyProperty(Licao)
    kanji = ndb.StringProperty(required=True)
    alternativa0 = ndb.StringProperty(required=True)
    alternativa1 = ndb.StringProperty(required=True)
    alternativa2 = ndb.StringProperty(required=True)

    @classmethod
    def query_ordenada_por_frase(cls):
        return cls.query().order(Cartao.frase)
    @classmethod
    def query_por_licao_ordenada_por_frase(cls, lid):
        if isinstance(lid, basestring):
            lid = ndb.Key(Licao, int(lid))
        return cls.query(cls.licao==lid).order(cls.frase)

class CartaoForm(ModelForm):
    _model_class = Cartao
    _include = [Cartao.frase,Cartao.resposta,Cartao.alternativa0,Cartao.alternativa1,Cartao.alternativa2,Cartao.licao,Cartao.imagem,Cartao.audio,Cartao.kanji]


text:
package org.apache.beam.sdk.microbenchmarks.coders;

import java.io.IOException;
import java.util.Arrays;
import org.apache.beam.sdk.coders.AvroCoder;
import org.apache.beam.sdk.coders.DefaultCoder;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Param;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Warmup;

/**
 * Benchmarks for {@link AvroCoder}.
 */
@State(Scope.Benchmark)
@Fork(1)
@Warmup(iterations = 5)
public class AvroCoderBenchmark {

  @DefaultCoder(AvroCoder.class)
  private static class Pojo {
    public String text;
    public int count;

    // Empty constructor required for Avro decoding.
    @SuppressWarnings("unused")
    public Pojo() {
    }

    public Pojo(String text, int count) {
      this.text = text;
      this.count = count;
    }

    // auto-generated
    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (o == null || getClass() != o.getClass()) {
        return false;
      }

      Pojo pojo = (Pojo) o;

      if (count != pojo.count) {
        return false;
      }
      if (text != null
          ? !text.equals(pojo.text)
          : pojo.text != null) {
        return false;
      }

      return true;
    }

    @Override
    public int hashCode() {
      return 0;
    }

    @Override
    public String toString() {
      return "Pojo{"
          + "text='" + text + '\''
          + ", count=" + count
          + '}';
    }
  }

  AvroCoder<Pojo> coder = AvroCoder.of(Pojo.class);

  @Param({"true", "false"})
  boolean isWholeStream;

  Pojo shortPojo;
  Pojo longPojo;

  @Setup
  public void setUp() {
    shortPojo = new Pojo("hello world", 42);

    char[] bytes60k = new char[60 * 1024];
    Arrays.fill(bytes60k, 'a');
    longPojo = new Pojo(new String(bytes60k), 42);
  }

  @Benchmark
  public Pojo codeShortPojo() throws IOException {
    return CoderBenchmarking.testCoder(coder, isWholeStream, shortPojo);
  }

  @Benchmark
  public Pojo codeLongPojo() throws Exception {
    return CoderBenchmarking.testCoder(coder, isWholeStream, longPojo);
  }
}


text:
package magnus4j.chess;

/**
 * Side representation.
 */
public enum Side {

    WHITE,

    BLACK;

    /**
     * Return the opposite side.
     *
     * @return the opposite side.
     */
    public Side opposite() {
        return (this == BLACK) ? WHITE : BLACK;
    }
}


text:
require 'test/unit'
require 'test/unit/rr'

require 'app'

class TestHelpers < Test::Unit::TestCase
  class Mock
    include App::Helpers

    attr_accessor :redis
  end

  sub_test_case '#analyze' do
    def setup
      stub(Morphological).split { ['splitted', 'chunk'] }

      @mock = Mock.new
    end

    test 'return splited chunk' do
      assert_equal ['splitted', 'chunk'], @mock.analyze('chunk')
    end
  end

  sub_test_case '#countup' do
    def setup
      @redis_double = Object.new
      stub(@redis_double).multi.yields
      stub(@redis_double).sadd
      stub(@redis_double).incr

      @mock = Mock.new
      @mock.redis = @redis_double
    end

    sub_test_case 'only specify category' do
      test 'store to redis' do
        @mock.countup('my_category')

        assert_received(@redis_double) do |o|
          o.multi
        end
        assert_received(@redis_double) do |o|
          o.sadd('categories', 'my_category')
        end
        assert_received(@redis_double) do |o|
          o.incr('count')
        end
        assert_received(@redis_double) do |o|
          o.incr('my_category')
        end
      end
    end

    sub_test_case 'specify category and word' do
      test 'store to redis' do
        @mock.countup('my_category', 'my_word')

        assert_received(@redis_double) do |o|
          o.multi
        end
        assert_received(@redis_double) do |o|
          o.sadd('my_category:words', 'my_word')
        end
        assert_received(@redis_double) do |o|
          o.incr('my_category:count')
        end
        assert_received(@redis_double) do |o|
          o.incr('my_category:my_word')
        end
      end
    end
  end

  sub_test_case '#calculate' do
    def setup
      @mock = Mock.new
      stub(@mock).calculate_by_category { 1 }
      stub(@mock).calculate_by_word { 2 }
    end

    test 'return score' do
      assert_equal 1.3862943611198906, @mock.calculate('my_category', ['my_words1', 'my_words2'])
    end
  end

  sub_test_case '#calculate_by_category' do
    def setup
      redis_double = Object.new
      stub(redis_double).get('my_category') { 1 }
      stub(redis_double).get('count') { 2 }

      @mock = Mock.new
      @mock.redis = redis_double
    end

    test 'return score' do
      assert_equal 0.5, @mock.calculate_by_category('my_category')
    end
  end

  sub_test_case '#calculate_by_word' do
    def setup
      redis_double = Object.new
      stub(redis_double).get('my_category:my_word') { 1 }
      stub(redis_double).get('my_category:count') { 2 }
      stub(redis_double).scard('words') { 3 }

      @mock = Mock.new
      @mock.redis = redis_double
    end

    test 'return score' do
      assert_equal 0.4, @mock.calculate_by_word('my_category', 'my_word')
    end
  end
end


text:
module.exports = {
  docs: {
    Introduction: [
      'introduction/motivation',
      'introduction/installation',
      'introduction/basic-usage',
      'introduction/examples',
    ],
    Tutorial: [
      'tutorial/1-requests-aborts',
      'tutorial/2-batch-requests',
      'tutorial/3-request-keys',
      'tutorial/4-reacting-to-request-actions',
      'tutorial/5-resetting-requests',
      'tutorial/6-interceptors',
      'tutorial/7-local-updates',
      'tutorial/8-optimistic-updates',
      'tutorial/9-caching',
      'tutorial/10-automatic-normalisation',
    ],
    Drivers: [
      'drivers/using-drivers',
      'drivers/axios-driver',
      'drivers/fetch-driver',
      'drivers/graphql-driver',
      'drivers/promise-driver',
      'drivers/mock-driver',
    ],
    Guides: [
      'guides/actions',
      'guides/selectors',
      'guides/server-side-rendering',
      'guides/usage-with-redux-saga',
      'guides/usage-with-react',
      'guides/usage-with-typescript',
    ],
    'API reference': [
      'api-reference/request-action',
      'api-reference/handle-requests',
      'api-reference/success',
      'api-reference/error',
      'api-reference/abort',
      'api-reference/get-query',
      'api-reference/get-query-selector',
      'api-reference/get-mutation',
      'api-reference/get-mutation-selector',
      'api-reference/reset-requests',
      'api-reference/abort-requests',
      'api-reference/stop-polling',
      'api-reference/clear-requests-cache',
      'api-reference/join-request',
      'api-reference/add-watcher',
      'api-reference/remove-watcher',
      'api-reference/is-request-action-query',
      'api-reference/is-request-action',
      'api-reference/is-response-action',
      'api-reference/local-mutation-action',
      'api-reference/response-data',
      'api-reference/create-requests-store',
    ],
  },
};


text:
package org.flxbox2d.dynamics.joints;

import org.flxbox2d.B2FlxB;
import org.flxbox2d.collision.shapes.B2FlxShape;

import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.JointDef;
import com.badlogic.gdx.physics.box2d.joints.WheelJoint;
import com.badlogic.gdx.physics.box2d.joints.WheelJointDef;

/**
 * A wheel joint. This joint provides two degrees of freedom: translation
 * along an axis fixed in bodyA and rotation in the plane. You can use a
 * joint limit to restrict the range of motion and a joint motor to drive
 * the rotation or to model rotational friction. This joint is designed
 * for vehicle suspensions.
 *
 * @author Ka Wing Chin
 */
public class B2FlxWheelJoint extends B2FlxJoint
{

	/**
	 * The axis.
	 */
	private Vector2 _axis;

	/**
	 * Create a wheel joint.
	 * @param spriteA	The first body.
	 * @param spriteB	The second body.
	 * @param jointDef	The joint definition.
	 */
	public B2FlxWheelJoint(B2FlxShape spriteA, B2FlxShape spriteB, WheelJointDef jointDef)
	{
		super(spriteA, spriteB, jointDef);
	}

	/**
	 * Create a wheel joint.
	 * @param spriteA	The first body.
	 * @param spriteB	The second body.
	 */
	public B2FlxWheelJoint(B2FlxShape spriteA, B2FlxShape spriteB)
	{
		this(spriteA, spriteB, null);
	}

	/**
	 * Create the jointDef.
	 */
	@Override
	protected void setupJointDef()
	{
		if(jointDef == null)
			jointDef = new WheelJointDef();
	}

	/**
	 * Set the default. If the bodies are null, a static body will be created.
	 */
	@Override
	protected void setDefaults()
	{
		if(bodyA == null)
			bodyA = B2FlxB.getGroundBody(bodyB.getPosition());
		if(bodyB == null)
			bodyB = B2FlxB.getGroundBody(bodyA.getPosition());

		anchorA = bodyA.getWorldCenter();
		anchorB = bodyB.getWorldCenter();
		_axis = new Vector2(1, 0);
	}

	/**
	 * Creates the joint.
	 * @return	This joint. Handy for chaining stuff together.
	 */
	@Override
	public B2FlxWheelJoint create()
	{
		((WheelJointDef) jointDef).initialize(bodyA, bodyB, anchorA, _axis);
		joint = B2FlxB.world.createJoint(jointDef);
		return this;
	}

	@Override
	public void destroy()
	{
		super.destroy();
		_axis = null;
	}

	public B2FlxWheelJoint setAxis(Vector2 axis)
	{
		_axis.set(axis);
		return this;
	}

	public B2FlxWheelJoint setEnableMotor(boolean enableMotor)
	{
		((WheelJointDef)jointDef).enableMotor = enableMotor;
		return this;
	}

	public B2FlxWheelJoint setMotorSpeed(float motorSpeed)
	{
		((WheelJointDef)jointDef).motorSpeed = motorSpeed;
		return this;
	}

	public B2FlxWheelJoint setMaxMotorTorque(float maxMotorTorque)
	{
		((WheelJointDef)jointDef).maxMotorTorque = maxMotorTorque;
		return this;
	}

	public B2FlxWheelJoint setFrequencyHz(float frequencyHz)
	{
		((WheelJointDef)jointDef).frequencyHz = frequencyHz;
		return this;
	}

	public B2FlxWheelJoint setDampingRatio(float dampingRatio)
	{
		((WheelJointDef)jointDef).dampingRatio = dampingRatio;
		return this;
	}

	@Override
	public WheelJoint getJoint(){return (WheelJoint)joint;}
	@Override
	public B2FlxWheelJoint setJointDef(JointDef jointDef){super.setJointDef(jointDef);return this;}
	@Override
	public B2FlxWheelJoint setBodyA(Body bodyA){super.setBodyA(bodyA);return this;}
	@Override
	public B2FlxWheelJoint setBodyB(Body bodyB){super.setBodyB(bodyB);return this;}
	@Override
	public B2FlxWheelJoint setAnchorA(Vector2 anchorA){super.setAnchorA(anchorA);return this;}
	@Override
	public B2FlxWheelJoint setAnchorB(Vector2 anchorB){super.setAnchorB(anchorB);return this;}
	@Override
	public B2FlxWheelJoint setCollideConnected(boolean collideConnected){super.setCollideConnected(collideConnected);return this;}
	@Override
	public B2FlxWheelJoint setShowLine(boolean showLine){super.setShowLine(showLine);return this;}
	@Override
	public B2FlxWheelJoint setLineThickness(float lineThickness){super.setLineThickness(lineThickness);return this;}
	@Override
	public B2FlxWheelJoint setLineColor(int lineColor){super.setLineColor(lineColor);return this;}
	@Override
	public B2FlxWheelJoint setLineAlpha(float lineAlpha){super.setLineAlpha(lineAlpha);return this;}
	@Override
	public B2FlxWheelJoint setSurvive(boolean survive){super.setSurvive(survive);return this;}
}


text:
import {expect} from "chai";
import * as parser from "./ast-parser";

describe("Async", () => {
	it("should accept promises for returned values", done => {
		let env = SandBoxr.createEnvironment();
		env.init();

		let foo = env.objectFactory.createFunction(function () {
			let promise = new Promise(function (resolve) {
				setTimeout(function () {
					let result = env.objectFactory.createPrimitive(50);
					resolve(result);
				}, 4);
			});

			return promise;
		});

		env.global.define("foo", foo);

		let ast = parser.parse("foo()===50;");
		let sandbox = SandBoxr.create(ast);
		let result = sandbox.resolve(env);

		result.then(value => {
			expect(value.toNative()).to.be.true;
			done();
		});
	});

	it("should return a promise as a result", done => {
		let ast = parser.parse("true===true;");
		let sandbox = SandBoxr.create(ast);

		sandbox.resolve().then(value => {
			expect(value.toNative()).to.be.true;
			done();
		});
	});
});


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace T4TS
{
    public class ModuleOutputAppender : OutputAppender<TypeScriptModule>
    {
        public ModuleOutputAppender(StringBuilder output, int baseIndentation, Settings settings)
            : base(output, baseIndentation, settings)
        {
        }

        public override void AppendOutput(TypeScriptModule module)
        {
            BeginModule(module);

            var interfaceAppender = new InterfaceOutputAppender(Output, BaseIndentation + 4, Settings, module.IsGlobal);
            foreach (var tsInterface in module.Interfaces)
                interfaceAppender.AppendOutput(tsInterface);

            EndModule(module);
        }

        private void BeginModule(TypeScriptModule module)
        {
            if (module.IsGlobal)
            {
                Output.AppendLine("// -- Begin global interfaces");
            }
            else
            {
                if (Settings.CompatibilityVersion != null && Settings.CompatibilityVersion < new Version(0, 9, 0))
                    Output.Append("module ");
                else
                    Output.Append("declare module ");

                Output.Append(module.QualifiedName);
                Output.AppendLine(" {");
            }
        }

        private void EndModule(TypeScriptModule module)
        {
            if (module.IsGlobal)
                Output.AppendLine("// -- End global interfaces");
            else
                Output.AppendLine("}");
        }
    }
}


text:
require 'optparse'

module RuboCop
  # This module contains help texts for command line options.
  module OptionsHelp
    TEXT = {
      only:                 'Run only the given cop(s).',
      only_guide_cops:     ['Run only cops for rules that link to a',
                            'style guide.'],
      except:               'Disable the given cop(s).',
      require:              'Require Ruby file.',
      config:               'Specify configuration file.',
      auto_gen_config:     ['Generate a configuration file acting as a',
                            'TODO list.'],
      force_exclusion:     ['Force excluding files specified in the',
                            'configuration `Exclude` even if they are',
                            'explicitly passed as arguments.'],
      format:              ['Choose an output formatter. This option',
                            'can be specified multiple times to enable',
                            'multiple formatters at the same time.',
                            '  [p]rogress (default)',
                            '  [s]imple',
                            '  [c]lang',
                            '  [d]isabled cops via inline comments',
                            '  [fu]ubar',
                            '  [e]macs',
                            '  [j]son',
                            '  [h]tml',
                            '  [fi]les',
                            '  [o]ffenses',
                            '  custom formatter class name'],
      out:                 ['Write output to a file instead of STDOUT.',
                            'This option applies to the previously',
                            'specified --format, or the default format',
                            'if no format is specified.'],
      fail_level:          ['Minimum severity (A/R/C/W/E/F) for exit',
                            'with error code.'],
      show_cops:           ['Shows the given cops, or all cops by',
                            'default, and their configurations for the',
                            'current directory.'],
      fail_fast:           ['Inspect files in order of modification',
                            'time and stop after the first file',
                            'containing offenses.'],
      debug:                'Display debug info.',
      display_cop_names:    'Display cop names in offense messages.',
      display_style_guide:  'Display style guide URLs in offense messages.',
      rails:                'Run extra Rails cops.',
      lint:                 'Run only lint cops.',
      auto_correct:         'Auto-correct offenses.',
      no_color:             'Disable color output.',
      version:              'Display version.',
      verbose_version:      'Display verbose version.'
    }
  end

  # This class handles command line options.
  class Options
    DEFAULT_FORMATTER = 'progress'
    EXITING_OPTIONS = [:version, :verbose_version, :show_cops]

    def initialize
      @options = {}
    end

    def parse(args)
      define_options(args).parse!(args)

      validate_compatibility

      [@options, args]
    end

    # Cop name validation must be done later than option parsing, so it's not
    # called from within this class.
    def self.validate_cop_list(names)
      return unless names

      namespaces = Cop::Cop.all.types.map { |t| t.to_s.capitalize }
      names.each do |name|
        next if Cop::Cop.all.any? { |c| c.cop_name == name } ||
                namespaces.include?(name)
        fail ArgumentError, "Unrecognized cop or namespace: #{name}."
      end
    end

    private

    def define_options(args)
      OptionParser.new do |opts|
        opts.banner = 'Usage: rubocop [options] [file1, file2, ...]'

        add_only_options(opts)
        add_configuration_options(opts, args)
        add_formatting_options(opts)

        option(opts, '-r', '--require FILE') { |f| require f }

        add_severity_option(opts)
        add_flags_with_optional_args(opts)
        add_boolean_flags(opts)
      end
    end

    def validate_compatibility
      if @options.key?(:only) &&
         (@options[:only] & %w(Lint/UnneededDisable UnneededDisable)).any?
        fail ArgumentError, 'Lint/UnneededDisable can not be used with --only.'
      end
      return unless (incompat = @options.keys & EXITING_OPTIONS).size > 1
      fail ArgumentError, "Incompatible cli options: #{incompat.inspect}"
    end

    def add_only_options(opts)
      add_cop_selection_csv_option('except', opts)
      add_cop_selection_csv_option('only', opts)
      option(opts, '--only-guide-cops')
    end

    def add_cop_selection_csv_option(option, opts)
      option(opts, "--#{option} [COP1,COP2,...]") do |list|
        @options[:"#{option}"] = list.split(',').map do |c|
          Cop::Cop.qualified_cop_name(c, "--#{option} option")
        end
      end
    end

    def add_configuration_options(opts, args)
      option(opts, '-c', '--config FILE')

      option(opts, '--auto-gen-config') do
        validate_auto_gen_config_option(args)
        @options[:formatters] = [[DEFAULT_FORMATTER],
                                 [Formatter::DisabledConfigFormatter,
                                  ConfigLoader::AUTO_GENERATED_FILE]]
      end

      option(opts, '--force-exclusion')
    end

    def add_formatting_options(opts)
      option(opts, '-f', '--format FORMATTER') do |key|
        @options[:formatters] ||= []
        @options[:formatters] << [key]
      end

      option(opts, '-o', '--out FILE') do |path|
        @options[:formatters] ||= [[DEFAULT_FORMATTER]]
        @options[:formatters].last << path
      end
    end

    def add_severity_option(opts)
      table = RuboCop::Cop::Severity::CODE_TABLE.merge(A: :autocorrect)
      option(opts, '--fail-level SEVERITY',
             RuboCop::Cop::Severity::NAMES + [:autocorrect],
             table) do |severity|
        @options[:fail_level] = severity
      end
    end

    def add_flags_with_optional_args(opts)
      option(opts, '--show-cops [COP1,COP2,...]') do |list|
        @options[:show_cops] = list.nil? ? [] : list.split(',')
      end
    end

    def add_boolean_flags(opts)
      option(opts, '-F', '--fail-fast')
      option(opts, '-d', '--debug')
      option(opts, '-D', '--display-cop-names')
      option(opts, '-S', '--display-style-guide')
      option(opts, '-R', '--rails')
      option(opts, '-l', '--lint')
      option(opts, '-a', '--auto-correct')

      @options[:color] = true
      option(opts, '-n', '--no-color') { @options[:color] = false }

      option(opts, '-v', '--version')
      option(opts, '-V', '--verbose-version')
    end

    # Sets a value in the @options hash, based on the given long option and its
    # value, in addition to calling the block if a block is given.
    def option(opts, *args)
      long_opt_symbol = long_opt_symbol(args)
      args += Array(OptionsHelp::TEXT[long_opt_symbol])
      opts.on(*args) do |arg|
        @options[long_opt_symbol] = arg
        yield arg if block_given?
      end
    end

    # Finds the option in `args` starting with -- and converts it to a symbol,
    # e.g. [..., '--auto-correct', ...] to :auto_correct.
    def long_opt_symbol(args)
      long_opt = args.find { |arg| arg.start_with?('--') }
      long_opt[2..-1].sub(/ .*/, '').tr('-', '_').to_sym
    end

    def validate_auto_gen_config_option(args)
      return unless args.any?

      warn '--auto-gen-config can not be combined with any other arguments.'
      exit(1)
    end
  end
end


text:
export * from "./toastr.wrapper";
export * from "./jQuery.wrapper";


text:
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class NaTools
    Inherits System.Windows.Forms.Form

    'Form 覆寫 Dispose 以清除元件清單。
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    '為 Windows Form 設計工具的必要項
    Private components As System.ComponentModel.IContainer

    '注意: 以下為 Windows Form 設計工具所需的程序
    '可以使用 Windows Form 設計工具進行修改。
    '請不要使用程式碼編輯器進行修改。
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.components = New System.ComponentModel.Container()
        Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(NaTools))
        Me.TabPage1 = New System.Windows.Forms.TabPage()
        Me.LinkLabel1 = New System.Windows.Forms.LinkLabel()
        Me.serverLocation = New System.Windows.Forms.Label()
        Me.Label8 = New System.Windows.Forms.Label()
        Me.Label6 = New System.Windows.Forms.Label()
        Me.toolsVersion = New System.Windows.Forms.Label()
        Me.Label4 = New System.Windows.Forms.Label()
        Me.Label3 = New System.Windows.Forms.Label()
        Me.PathLabel = New System.Windows.Forms.Label()
        Me.Label2 = New System.Windows.Forms.Label()
        Me.Label1 = New System.Windows.Forms.Label()
        Me.PictureBox1 = New System.Windows.Forms.PictureBox()
        Me.Label15 = New System.Windows.Forms.Label()
        Me.TabPage4 = New System.Windows.Forms.TabPage()
        Me.LinkLabel3 = New System.Windows.Forms.LinkLabel()
        Me.Button16 = New System.Windows.Forms.Button()
        Me.Button17 = New System.Windows.Forms.Button()
        Me.Button18 = New System.Windows.Forms.Button()
        Me.Button15 = New System.Windows.Forms.Button()
        Me.Label14 = New System.Windows.Forms.Label()
        Me.Label13 = New System.Windows.Forms.Label()
        Me.websiteIn = New System.Windows.Forms.TextBox()
        Me.TabPage5 = New System.Windows.Forms.TabPage()
        Me.serverStatus = New System.Windows.Forms.Button()
        Me.FolderBrowserDialog2 = New System.Windows.Forms.FolderBrowserDialog()
        Me.TabPage6 = New System.Windows.Forms.TabPage()
        Me.updateButton = New System.Windows.Forms.Button()
        Me.startLoL = New System.Windows.Forms.Button()
        Me.TabPage7 = New System.Windows.Forms.TabPage()
        Me.Label10 = New System.Windows.Forms.Label()
        Me.TabPage2 = New System.Windows.Forms.TabPage()
        Me.delBakProp = New System.Windows.Forms.Button()
        Me.backProp = New System.Windows.Forms.Button()
        Me.restoneProp = New System.Windows.Forms.Button()
        Me.Button9 = New System.Windows.Forms.Button()
        Me.Button8 = New System.Windows.Forms.Button()
        Me.Button7 = New System.Windows.Forms.Button()
        Me.Button6 = New System.Windows.Forms.Button()
        Me.Button5 = New System.Windows.Forms.Button()
        Me.Button4 = New System.Windows.Forms.Button()
        Me.Button3 = New System.Windows.Forms.Button()
        Me.Button2 = New System.Windows.Forms.Button()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.Label7 = New System.Windows.Forms.Label()
        Me.TabControl1 = New System.Windows.Forms.TabControl()
        Me.TabPage3 = New System.Windows.Forms.TabPage()
        Me.Label5 = New System.Windows.Forms.Label()
        Me.browsePath = New System.Windows.Forms.TabPage()
        Me.Label9 = New System.Windows.Forms.Label()
        Me.FolderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog()
        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
        Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components)
        Me.WebBrowser1 = New System.Windows.Forms.WebBrowser()
        Me.TabPage1.SuspendLayout()
        CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.TabPage4.SuspendLayout()
        Me.TabPage5.SuspendLayout()
        Me.TabPage6.SuspendLayout()
        Me.TabPage7.SuspendLayout()
        Me.TabPage2.SuspendLayout()
        Me.TabControl1.SuspendLayout()
        Me.TabPage3.SuspendLayout()
        Me.browsePath.SuspendLayout()
        Me.SuspendLayout()
        '
        'TabPage1
        '
        Me.TabPage1.BackColor = System.Drawing.Color.White
        Me.TabPage1.Controls.Add(Me.LinkLabel1)
        Me.TabPage1.Controls.Add(Me.serverLocation)
        Me.TabPage1.Controls.Add(Me.Label8)
        Me.TabPage1.Controls.Add(Me.Label6)
        Me.TabPage1.Controls.Add(Me.toolsVersion)
        Me.TabPage1.Controls.Add(Me.Label4)
        Me.TabPage1.Controls.Add(Me.Label3)
        Me.TabPage1.Controls.Add(Me.PathLabel)
        Me.TabPage1.Controls.Add(Me.Label2)
        Me.TabPage1.Controls.Add(Me.Label1)
        Me.TabPage1.Controls.Add(Me.PictureBox1)
        Me.TabPage1.Location = New System.Drawing.Point(4, 22)
        Me.TabPage1.Name = "TabPage1"
        Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
        Me.TabPage1.Size = New System.Drawing.Size(867, 346)
        Me.TabPage1.TabIndex = 0
        Me.TabPage1.Text = "資訊主頁"
        '
        'LinkLabel1
        '
        Me.LinkLabel1.AutoSize = True
        Me.LinkLabel1.Location = New System.Drawing.Point(359, 102)
        Me.LinkLabel1.Name = "LinkLabel1"
        Me.LinkLabel1.Size = New System.Drawing.Size(115, 13)
        Me.LinkLabel1.TabIndex = 14
        Me.LinkLabel1.TabStop = True
        Me.LinkLabel1.Text = "http://lolnx.pixub.com/"
        '
        'serverLocation
        '
        Me.serverLocation.AutoSize = True
        Me.serverLocation.Font = New System.Drawing.Font("微軟正黑體", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.serverLocation.Location = New System.Drawing.Point(224, 290)
        Me.serverLocation.Name = "serverLocation"
        Me.serverLocation.Size = New System.Drawing.Size(60, 21)
        Me.serverLocation.TabIndex = 13
        Me.serverLocation.Text = "Label9"
        '
        'Label8
        '
        Me.Label8.AutoSize = True
        Me.Label8.Font = New System.Drawing.Font("微軟正黑體", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label8.Location = New System.Drawing.Point(86, 290)
        Me.Label8.Name = "Label8"
        Me.Label8.Size = New System.Drawing.Size(98, 21)
        Me.Label8.TabIndex = 12
        Me.Label8.Text = "目前伺服器 :"
        '
        'Label6
        '
        Me.Label6.AutoSize = True
        Me.Label6.Font = New System.Drawing.Font("微軟正黑體", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label6.Location = New System.Drawing.Point(224, 185)
        Me.Label6.Name = "Label6"
        Me.Label6.Size = New System.Drawing.Size(42, 21)
        Me.Label6.TabIndex = 11
        Me.Label6.Text = "美服"
        '
        'toolsVersion
        '
        Me.toolsVersion.AutoSize = True
        Me.toolsVersion.Font = New System.Drawing.Font("微軟正黑體", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.toolsVersion.Location = New System.Drawing.Point(224, 236)
        Me.toolsVersion.Name = "toolsVersion"
        Me.toolsVersion.Size = New System.Drawing.Size(60, 21)
        Me.toolsVersion.TabIndex = 8
        Me.toolsVersion.Text = "Label5"
        '
        'Label4
        '
        Me.Label4.AutoSize = True
        Me.Label4.Font = New System.Drawing.Font("微軟正黑體", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label4.Location = New System.Drawing.Point(86, 237)
        Me.Label4.Name = "Label4"
        Me.Label4.Size = New System.Drawing.Size(132, 21)
        Me.Label4.TabIndex = 7
        Me.Label4.Text = "LoLToolsX 版本: "
        '
        'Label3
        '
        Me.Label3.AutoSize = True
        Me.Label3.Location = New System.Drawing.Point(359, 89)
        Me.Label3.Name = "Label3"
        Me.Label3.Size = New System.Drawing.Size(155, 13)
        Me.Label3.TabIndex = 6
        Me.Label3.Text = "作者: NitroXenon @ 巴哈姆特" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10)
        '
        'PathLabel
        '
        Me.PathLabel.AutoSize = True
        Me.PathLabel.Font = New System.Drawing.Font("微軟正黑體", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.PathLabel.Location = New System.Drawing.Point(224, 137)
        Me.PathLabel.Name = "PathLabel"
        Me.PathLabel.Size = New System.Drawing.Size(60, 21)
        Me.PathLabel.TabIndex = 5
        Me.PathLabel.Text = "Label3"
        Me.PathLabel.Visible = False
        '
        'Label2
        '
        Me.Label2.AutoSize = True
        Me.Label2.Font = New System.Drawing.Font("微軟正黑體", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label2.Location = New System.Drawing.Point(86, 137)
        Me.Label2.Name = "Label2"
        Me.Label2.Size = New System.Drawing.Size(108, 21)
        Me.Label2.TabIndex = 4
        Me.Label2.Text = "LoL安裝路徑: "
        '
        'Label1
        '
        Me.Label1.AutoSize = True
        Me.Label1.Font = New System.Drawing.Font("微軟正黑體", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(136, Byte))
        Me.Label1.Location = New System.Drawing.Point(86, 185)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(98, 21)
        Me.Label1.TabIndex = 3
        Me.Label1.Text = "目前客戶端: "
        '
        'PictureBox1
        '
        Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image)
        Me.PictureBox1.InitialImage = CType(resources.GetObject("PictureBox1.InitialImage"), System.Drawing.Image)
        Me.PictureBox1.Location = New System.Drawing.Point(228, 9)
        Me.PictureBox1.Name = "PictureBox1"
        Me.PictureBox1.Size = New System.Drawing.Size(414, 77)
        Me.PictureBox1.TabIndex = 0
        Me.PictureBox1.TabStop = False
        '
        'Label15
        '
        Me.Label15.AutoSize = True
        Me.Label15.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label15.Location = New System.Drawing.Point(58, 25)
        Me.Label15.Name = "Label15"
        Me.Label15.Size = New System.Drawing.Size(229, 16)
        Me.Label15.TabIndex = 32
        Me.Label15.Text = "推薦 -  LoL美服登入動畫網頁選擇: "
        '
        'TabPage4
        '
        Me.TabPage4.Controls.Add(Me.Label15)
        Me.TabPage4.Controls.Add(Me.LinkLabel3)
        Me.TabPage4.Controls.Add(Me.Button16)
        Me.TabPage4.Controls.Add(Me.Button17)
        Me.TabPage4.Controls.Add(Me.Button18)
        Me.TabPage4.Controls.Add(Me.Button15)
        Me.TabPage4.Controls.Add(Me.Label14)
        Me.TabPage4.Controls.Add(Me.Label13)
        Me.TabPage4.Controls.Add(Me.websiteIn)
        Me.TabPage4.Location = New System.Drawing.Point(4, 22)
        Me.TabPage4.Name = "TabPage4"
        Me.TabPage4.Padding = New System.Windows.Forms.Padding(3)
        Me.TabPage4.Size = New System.Drawing.Size(867, 346)
        Me.TabPage4.TabIndex = 6
        Me.TabPage4.Text = "大廳網頁修改"
        Me.TabPage4.UseVisualStyleBackColor = True
        '
        'LinkLabel3
        '
        Me.LinkLabel3.AutoSize = True
        Me.LinkLabel3.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.LinkLabel3.Location = New System.Drawing.Point(293, 25)
        Me.LinkLabel3.Name = "LinkLabel3"
        Me.LinkLabel3.Size = New System.Drawing.Size(299, 16)
        Me.LinkLabel3.TabIndex = 31
        Me.LinkLabel3.TabStop = True
        Me.LinkLabel3.Text = "http://lolnx.pixub.com/lol-tools-tw/lol-lobby-theme/"
        '
        'Button16
        '
        Me.Button16.Location = New System.Drawing.Point(622, 230)
        Me.Button16.Name = "Button16"
        Me.Button16.Size = New System.Drawing.Size(114, 46)
        Me.Button16.TabIndex = 30
        Me.Button16.Text = "刪除已備份設定檔"
        Me.Button16.UseVisualStyleBackColor = True
        '
        'Button17
        '
        Me.Button17.Location = New System.Drawing.Point(622, 46)
        Me.Button17.Name = "Button17"
        Me.Button17.Size = New System.Drawing.Size(114, 46)
        Me.Button17.TabIndex = 28
        Me.Button17.Text = "備份設定檔"
        Me.Button17.UseVisualStyleBackColor = True
        '
        'Button18
        '
        Me.Button18.Location = New System.Drawing.Point(622, 138)
        Me.Button18.Name = "Button18"
        Me.Button18.Size = New System.Drawing.Size(114, 46)
        Me.Button18.TabIndex = 29
        Me.Button18.Text = "還原設定檔"
        Me.Button18.UseVisualStyleBackColor = True
        '
        'Button15
        '
        Me.Button15.Location = New System.Drawing.Point(238, 230)
        Me.Button15.Name = "Button15"
        Me.Button15.Size = New System.Drawing.Size(140, 61)
        Me.Button15.TabIndex = 3
        Me.Button15.Text = "修改"
        Me.Button15.UseVisualStyleBackColor = True
        '
        'Label14
        '
        Me.Label14.AutoSize = True
        Me.Label14.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label14.Location = New System.Drawing.Point(189, 185)
        Me.Label14.Name = "Label14"
        Me.Label14.Size = New System.Drawing.Size(225, 20)
        Me.Label14.TabIndex = 2
        Me.Label14.Text = "第二步: 按""修改"" 按鈕進行修改"
        '
        'Label13
        '
        Me.Label13.AutoSize = True
        Me.Label13.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label13.Location = New System.Drawing.Point(181, 72)
        Me.Label13.Name = "Label13"
        Me.Label13.Size = New System.Drawing.Size(241, 20)
        Me.Label13.TabIndex = 1
        Me.Label13.Text = "第一步: 請輸入要修改的大廳網址"
        '
        'websiteIn
        '
        Me.websiteIn.Location = New System.Drawing.Point(187, 115)
        Me.websiteIn.Name = "websiteIn"
        Me.websiteIn.Size = New System.Drawing.Size(235, 20)
        Me.websiteIn.TabIndex = 0
        '
        'TabPage5
        '
        Me.TabPage5.Controls.Add(Me.serverStatus)
        Me.TabPage5.Location = New System.Drawing.Point(4, 22)
        Me.TabPage5.Name = "TabPage5"
        Me.TabPage5.Padding = New System.Windows.Forms.Padding(3)
        Me.TabPage5.Size = New System.Drawing.Size(867, 346)
        Me.TabPage5.TabIndex = 4
        Me.TabPage5.Text = "伺服器狀態"
        Me.TabPage5.UseVisualStyleBackColor = True
        '
        'serverStatus
        '
        Me.serverStatus.Location = New System.Drawing.Point(314, 106)
        Me.serverStatus.Name = "serverStatus"
        Me.serverStatus.Size = New System.Drawing.Size(241, 109)
        Me.serverStatus.TabIndex = 5
        Me.serverStatus.Text = "按此查詢"
        Me.serverStatus.UseVisualStyleBackColor = True
        '
        'TabPage6
        '
        Me.TabPage6.Controls.Add(Me.updateButton)
        Me.TabPage6.Location = New System.Drawing.Point(4, 22)
        Me.TabPage6.Name = "TabPage6"
        Me.TabPage6.Padding = New System.Windows.Forms.Padding(3)
        Me.TabPage6.Size = New System.Drawing.Size(867, 346)
        Me.TabPage6.TabIndex = 5
        Me.TabPage6.Text = "其他選項"
        Me.TabPage6.UseVisualStyleBackColor = True
        '
        'updateButton
        '
        Me.updateButton.Location = New System.Drawing.Point(371, 134)
        Me.updateButton.Name = "updateButton"
        Me.updateButton.Size = New System.Drawing.Size(127, 53)
        Me.updateButton.TabIndex = 0
        Me.updateButton.Text = "檢查更新"
        Me.updateButton.UseVisualStyleBackColor = True
        '
        'startLoL
        '
        Me.startLoL.Location = New System.Drawing.Point(344, 378)
        Me.startLoL.Name = "startLoL"
        Me.startLoL.Size = New System.Drawing.Size(191, 46)
        Me.startLoL.TabIndex = 4
        Me.startLoL.Text = "啟動遊戲"
        Me.startLoL.UseVisualStyleBackColor = True
        '
        'TabPage7
        '
        Me.TabPage7.Controls.Add(Me.Label10)
        Me.TabPage7.Location = New System.Drawing.Point(4, 22)
        Me.TabPage7.Name = "TabPage7"
        Me.TabPage7.Padding = New System.Windows.Forms.Padding(3)
        Me.TabPage7.Size = New System.Drawing.Size(867, 346)
        Me.TabPage7.TabIndex = 7
        Me.TabPage7.Text = "UI安裝"
        Me.TabPage7.UseVisualStyleBackColor = True
        '
        'Label10
        '
        Me.Label10.AutoSize = True
        Me.Label10.Font = New System.Drawing.Font("微軟正黑體", 27.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label10.Location = New System.Drawing.Point(294, 150)
        Me.Label10.Name = "Label10"
        Me.Label10.Size = New System.Drawing.Size(278, 47)
        Me.Label10.TabIndex = 4
        Me.Label10.Text = "測試中... 不開放"
        '
        'TabPage2
        '
        Me.TabPage2.Controls.Add(Me.delBakProp)
        Me.TabPage2.Controls.Add(Me.backProp)
        Me.TabPage2.Controls.Add(Me.restoneProp)
        Me.TabPage2.Controls.Add(Me.Button9)
        Me.TabPage2.Controls.Add(Me.Button8)
        Me.TabPage2.Controls.Add(Me.Button7)
        Me.TabPage2.Controls.Add(Me.Button6)
        Me.TabPage2.Controls.Add(Me.Button5)
        Me.TabPage2.Controls.Add(Me.Button4)
        Me.TabPage2.Controls.Add(Me.Button3)
        Me.TabPage2.Controls.Add(Me.Button2)
        Me.TabPage2.Controls.Add(Me.Button1)
        Me.TabPage2.Controls.Add(Me.Label7)
        Me.TabPage2.Location = New System.Drawing.Point(4, 22)
        Me.TabPage2.Name = "TabPage2"
        Me.TabPage2.Padding = New System.Windows.Forms.Padding(3)
        Me.TabPage2.Size = New System.Drawing.Size(867, 346)
        Me.TabPage2.TabIndex = 1
        Me.TabPage2.Text = "伺服器切換"
        Me.TabPage2.UseVisualStyleBackColor = True
        '
        'delBakProp
        '
        Me.delBakProp.Location = New System.Drawing.Point(641, 247)
        Me.delBakProp.Name = "delBakProp"
        Me.delBakProp.Size = New System.Drawing.Size(114, 46)
        Me.delBakProp.TabIndex = 27
        Me.delBakProp.Text = "刪除已備份設定檔"
        Me.delBakProp.UseVisualStyleBackColor = True
        '
        'backProp
        '
        Me.backProp.Location = New System.Drawing.Point(641, 62)
        Me.backProp.Name = "backProp"
        Me.backProp.Size = New System.Drawing.Size(114, 46)
        Me.backProp.TabIndex = 11
        Me.backProp.Text = "備份設定檔"
        Me.backProp.UseVisualStyleBackColor = True
        '
        'restoneProp
        '
        Me.restoneProp.Location = New System.Drawing.Point(641, 155)
        Me.restoneProp.Name = "restoneProp"
        Me.restoneProp.Size = New System.Drawing.Size(114, 46)
        Me.restoneProp.TabIndex = 10
        Me.restoneProp.Text = "還原設定檔"
        Me.restoneProp.UseVisualStyleBackColor = True
        '
        'Button9
        '
        Me.Button9.Enabled = False
        Me.Button9.Location = New System.Drawing.Point(393, 247)
        Me.Button9.Name = "Button9"
        Me.Button9.Size = New System.Drawing.Size(114, 46)
        Me.Button9.TabIndex = 9
        Me.Button9.Text = "陸服"
        Me.Button9.UseVisualStyleBackColor = True
        '
        'Button8
        '
        Me.Button8.Location = New System.Drawing.Point(49, 155)
        Me.Button8.Name = "Button8"
        Me.Button8.Size = New System.Drawing.Size(114, 46)
        Me.Button8.TabIndex = 8
        Me.Button8.Text = "美服"
        Me.Button8.UseVisualStyleBackColor = True
        '
        'Button7
        '
        Me.Button7.Location = New System.Drawing.Point(49, 247)
        Me.Button7.Name = "Button7"
        Me.Button7.Size = New System.Drawing.Size(114, 46)
        Me.Button7.TabIndex = 7
        Me.Button7.Text = "韓服"
        Me.Button7.UseVisualStyleBackColor = True
        '
        'Button6
        '
        Me.Button6.Enabled = False
        Me.Button6.Location = New System.Drawing.Point(218, 62)
        Me.Button6.Name = "Button6"
        Me.Button6.Size = New System.Drawing.Size(114, 46)
        Me.Button6.TabIndex = 6
        Me.Button6.Text = "SEA服"
        Me.Button6.UseVisualStyleBackColor = True
        '
        'Button5
        '
        Me.Button5.Location = New System.Drawing.Point(218, 155)
        Me.Button5.Name = "Button5"
        Me.Button5.Size = New System.Drawing.Size(114, 46)
        Me.Button5.TabIndex = 5
        Me.Button5.Text = "EUW服"
        Me.Button5.UseVisualStyleBackColor = True
        '
        'Button4
        '
        Me.Button4.Location = New System.Drawing.Point(218, 247)
        Me.Button4.Name = "Button4"
        Me.Button4.Size = New System.Drawing.Size(114, 46)
        Me.Button4.TabIndex = 4
        Me.Button4.Text = "EUNE服"
        Me.Button4.UseVisualStyleBackColor = True
        '
        'Button3
        '
        Me.Button3.Location = New System.Drawing.Point(393, 62)
        Me.Button3.Name = "Button3"
        Me.Button3.Size = New System.Drawing.Size(114, 46)
        Me.Button3.TabIndex = 3
        Me.Button3.Text = "大洋洲服"
        Me.Button3.UseVisualStyleBackColor = True
        '
        'Button2
        '
        Me.Button2.Location = New System.Drawing.Point(393, 155)
        Me.Button2.Name = "Button2"
        Me.Button2.Size = New System.Drawing.Size(114, 46)
        Me.Button2.TabIndex = 2
        Me.Button2.Text = "PBE服"
        Me.Button2.UseVisualStyleBackColor = True
        '
        'Button1
        '
        Me.Button1.Enabled = False
        Me.Button1.Location = New System.Drawing.Point(49, 62)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(114, 46)
        Me.Button1.TabIndex = 1
        Me.Button1.Text = "台服"
        Me.Button1.UseVisualStyleBackColor = True
        '
        'Label7
        '
        Me.Label7.AutoSize = True
        Me.Label7.Font = New System.Drawing.Font("微軟正黑體", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label7.Location = New System.Drawing.Point(45, 22)
        Me.Label7.Name = "Label7"
        Me.Label7.Size = New System.Drawing.Size(178, 21)
        Me.Label7.TabIndex = 0
        Me.Label7.Text = "請選擇欲切換之伺服器 :"
        '
        'TabControl1
        '
        Me.TabControl1.Controls.Add(Me.TabPage1)
        Me.TabControl1.Controls.Add(Me.TabPage2)
        Me.TabControl1.Controls.Add(Me.TabPage3)
        Me.TabControl1.Controls.Add(Me.browsePath)
        Me.TabControl1.Controls.Add(Me.TabPage4)
        Me.TabControl1.Controls.Add(Me.TabPage7)
        Me.TabControl1.Controls.Add(Me.TabPage5)
        Me.TabControl1.Controls.Add(Me.TabPage6)
        Me.TabControl1.Location = New System.Drawing.Point(0, 0)
        Me.TabControl1.Name = "TabControl1"
        Me.TabControl1.SelectedIndex = 0
        Me.TabControl1.Size = New System.Drawing.Size(875, 372)
        Me.TabControl1.TabIndex = 3
        '
        'TabPage3
        '
        Me.TabPage3.Controls.Add(Me.Label5)
        Me.TabPage3.Location = New System.Drawing.Point(4, 22)
        Me.TabPage3.Name = "TabPage3"
        Me.TabPage3.Padding = New System.Windows.Forms.Padding(3)
        Me.TabPage3.Size = New System.Drawing.Size(867, 346)
        Me.TabPage3.TabIndex = 2
        Me.TabPage3.Text = "語言切換"
        Me.TabPage3.UseVisualStyleBackColor = True
        '
        'Label5
        '
        Me.Label5.AutoSize = True
        Me.Label5.Font = New System.Drawing.Font("微軟正黑體", 27.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label5.Location = New System.Drawing.Point(292, 150)
        Me.Label5.Name = "Label5"
        Me.Label5.Size = New System.Drawing.Size(278, 47)
        Me.Label5.TabIndex = 3
        Me.Label5.Text = "測試中... 不開放"
        '
        'browsePath
        '
        Me.browsePath.Controls.Add(Me.Label9)
        Me.browsePath.Location = New System.Drawing.Point(4, 22)
        Me.browsePath.Name = "browsePath"
        Me.browsePath.Padding = New System.Windows.Forms.Padding(3)
        Me.browsePath.Size = New System.Drawing.Size(867, 346)
        Me.browsePath.TabIndex = 3
        Me.browsePath.Text = "語音修改"
        Me.browsePath.UseVisualStyleBackColor = True
        '
        'Label9
        '
        Me.Label9.AutoSize = True
        Me.Label9.Font = New System.Drawing.Font("微軟正黑體", 27.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label9.Location = New System.Drawing.Point(294, 150)
        Me.Label9.Name = "Label9"
        Me.Label9.Size = New System.Drawing.Size(278, 47)
        Me.Label9.TabIndex = 4
        Me.Label9.Text = "測試中... 不開放"
        '
        'OpenFileDialog1
        '
        Me.OpenFileDialog1.FileName = "HUDAtlas.tga"
        Me.OpenFileDialog1.Filter = "遊戲UI檔案|HUDAtlas.tga"
        Me.OpenFileDialog1.Title = "請選擇 HUDAtlas.tga 檔案"
        '
        'NotifyIcon1
        '
        Me.NotifyIcon1.Text = "NotifyIcon1"
        Me.NotifyIcon1.Visible = True
        '
        'WebBrowser1
        '
        Me.WebBrowser1.Location = New System.Drawing.Point(822, 404)
        Me.WebBrowser1.MinimumSize = New System.Drawing.Size(20, 20)
        Me.WebBrowser1.Name = "WebBrowser1"
        Me.WebBrowser1.ScrollBarsEnabled = False
        Me.WebBrowser1.Size = New System.Drawing.Size(20, 20)
        Me.WebBrowser1.TabIndex = 5
        Me.WebBrowser1.Url = New System.Uri("", System.UriKind.Relative)
        Me.WebBrowser1.Visible = False
        Me.WebBrowser1.WebBrowserShortcutsEnabled = False
        '
        'NaTools
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(875, 436)
        Me.Controls.Add(Me.WebBrowser1)
        Me.Controls.Add(Me.startLoL)
        Me.Controls.Add(Me.TabControl1)
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
        Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
        Me.MaximizeBox = False
        Me.Name = "NaTools"
        Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
        Me.Text = "LoLToolsX"
        Me.TabPage1.ResumeLayout(False)
        Me.TabPage1.PerformLayout()
        CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
        Me.TabPage4.ResumeLayout(False)
        Me.TabPage4.PerformLayout()
        Me.TabPage5.ResumeLayout(False)
        Me.TabPage6.ResumeLayout(False)
        Me.TabPage7.ResumeLayout(False)
        Me.TabPage7.PerformLayout()
        Me.TabPage2.ResumeLayout(False)
        Me.TabPage2.PerformLayout()
        Me.TabControl1.ResumeLayout(False)
        Me.TabPage3.ResumeLayout(False)
        Me.TabPage3.PerformLayout()
        Me.browsePath.ResumeLayout(False)
        Me.browsePath.PerformLayout()
        Me.ResumeLayout(False)

    End Sub
    Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
    Friend WithEvents LinkLabel1 As System.Windows.Forms.LinkLabel
    Friend WithEvents serverLocation As System.Windows.Forms.Label
    Friend WithEvents Label8 As System.Windows.Forms.Label
    Friend WithEvents Label6 As System.Windows.Forms.Label
    Friend WithEvents toolsVersion As System.Windows.Forms.Label
    Friend WithEvents Label4 As System.Windows.Forms.Label
    Friend WithEvents Label3 As System.Windows.Forms.Label
    Friend WithEvents PathLabel As System.Windows.Forms.Label
    Friend WithEvents Label2 As System.Windows.Forms.Label
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
    Friend WithEvents Label15 As System.Windows.Forms.Label
    Friend WithEvents TabPage4 As System.Windows.Forms.TabPage
    Friend WithEvents LinkLabel3 As System.Windows.Forms.LinkLabel
    Friend WithEvents Button16 As System.Windows.Forms.Button
    Friend WithEvents Button17 As System.Windows.Forms.Button
    Friend WithEvents Button18 As System.Windows.Forms.Button
    Friend WithEvents Button15 As System.Windows.Forms.Button
    Friend WithEvents Label14 As System.Windows.Forms.Label
    Friend WithEvents Label13 As System.Windows.Forms.Label
    Friend WithEvents websiteIn As System.Windows.Forms.TextBox
    Friend WithEvents TabPage5 As System.Windows.Forms.TabPage
    Friend WithEvents serverStatus As System.Windows.Forms.Button
    Friend WithEvents FolderBrowserDialog2 As System.Windows.Forms.FolderBrowserDialog
    Friend WithEvents TabPage6 As System.Windows.Forms.TabPage
    Friend WithEvents updateButton As System.Windows.Forms.Button
    Friend WithEvents startLoL As System.Windows.Forms.Button
    Friend WithEvents TabPage7 As System.Windows.Forms.TabPage
    Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
    Friend WithEvents delBakProp As System.Windows.Forms.Button
    Friend WithEvents backProp As System.Windows.Forms.Button
    Friend WithEvents restoneProp As System.Windows.Forms.Button
    Friend WithEvents Button9 As System.Windows.Forms.Button
    Friend WithEvents Button8 As System.Windows.Forms.Button
    Friend WithEvents Button7 As System.Windows.Forms.Button
    Friend WithEvents Button6 As System.Windows.Forms.Button
    Friend WithEvents Button5 As System.Windows.Forms.Button
    Friend WithEvents Button4 As System.Windows.Forms.Button
    Friend WithEvents Button3 As System.Windows.Forms.Button
    Friend WithEvents Button2 As System.Windows.Forms.Button
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents Label7 As System.Windows.Forms.Label
    Friend WithEvents TabControl1 As System.Windows.Forms.TabControl
    Friend WithEvents TabPage3 As System.Windows.Forms.TabPage
    Friend WithEvents browsePath As System.Windows.Forms.TabPage
    Friend WithEvents FolderBrowserDialog1 As System.Windows.Forms.FolderBrowserDialog
    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    Friend WithEvents Label5 As System.Windows.Forms.Label
    Friend WithEvents Label10 As System.Windows.Forms.Label
    Friend WithEvents Label9 As System.Windows.Forms.Label
    Friend WithEvents NotifyIcon1 As System.Windows.Forms.NotifyIcon
    Friend WithEvents WebBrowser1 As System.Windows.Forms.WebBrowser
End Class